Versão curta: Como faço para criar um multiplicador analógico que recebe duas entradas DC analógicas?
Versão longa:
Fiz um comentário recomendando os vídeos de Ben Eaters para outra pergunta, enquanto acabava assistindo a mim mesmo (novamente) e pensando comigo mesmo " hmmm ... eu me pergunto se seria mais fácil tornar algumas partes puramente analógicas ".
O barramento pode ser apenas um fio, onde diferentes níveis de tensão serão posteriormente convertidos em bits com um ADC.
Apenas brincando um pouco, cheguei tão longe que, teoricamente, pode calcular os números de Fibonacci:
Figura 1, pequena demonstração do computador híbrido calculando os primeiros números de fibonacci
Link para o simulador.
No gif acima, saio da faixa de tensão para facilitar a visualização dos números de fibonacci. Na realidade, eu usaria apenas o 250 mV = binário 1 (o LSB nos "valores definidos") e, em seguida, deixaria que ele se propaginasse através do DRAM que suporta 4 bits por capacitor.
A parte importante a ser observada no gif é a saída do amplificador operacional à direita do texto "a + b", que mostra os números de Fibonacci.
Entre cada operação, quantificaria a resposta usando um ADC seguido por um DAC. Portanto, se eu lesse 1.1V, o DAC o transformaria em 1.0 V, que posteriormente seria armazenado na DRAM. E então, uma vez a cada relógio X, toda a DRAM precisaria passar pelo quantizador para garantir que o capacitor não flutuasse .
A ALU só pode fazer +, - e média. Eu estava pensando em fazer a multiplicação e parei. Eu já criei e vi multiplicadores baseados em diodo antes, mas não quero usá-los porque os diodos precisam ser compatíveis. Eu prefiro usar resistores que eu possa cortar com um potenciômetro. De qualquer forma, criei um multiplicador híbrido, meio analógico e meio digital.
Então eu fiz o primeiro com resistores idênticos em todos os lugares.
Figura 2, multiplicador ingênuo entre números digitais e valores analógicos. O valor digital é compensado por 1.
Que então eu virei com pesos binários:
Figura 3, multiplicador ingênuo entre números digitais ponderados em binários e valores analógicos. O valor digital é compensado por 1.
Isso me lembrou as escadas R2 / R, mas não consegui fazê-las funcionar com o amplificador operacional.
No entanto, pensei em como as escadas R2 / R funcionavam e lembrei que a saída delas é multiplicada pela fonte de tensão. Então, finalmente criei este design:
Figura 4, multiplicador baseado em R2 / R entre números digitais binários ponderados e valores analógicos
Eu gosto, o único problema, porém, é que o barramento é analógico, apenas um fio. Portanto, se sou forçado a usar a solução na figura 4 acima, sou forçado a usar outro ADC na área de multiplicação da CPU híbrida. Não posso reutilizar o da área do quantizador.
Hora da pergunta:
Como devo fazer um multiplicador que aceite duas entradas analógicas?
- Eu não quero a solução baseada em 3 diodos e 4 amplificadores operacionais, porque você não pode aparar diodos. Minha crença é que, se forem incompatíveis, eles darão uma resposta que está desativada em mais de 250 mV. Eu não tentei isso no mundo real.
- Eu tentei o multiplicador baseado em MOS no link literalmente uma polegada acima desta palavra, mas não sei se sou burro. Não consigo fazê-lo funcionar no simulador. Veja gif abaixo para falha na implementação do MOS. Ou clique neste link para a simulação.
- Eu não quero jogar um microcontrolador no problema.
- Eu não quero usar um motor que gire e use algumas travessuras.
- Após a multiplicação, será levado ao quantizador para garantir que o valor seja o mais próximo possível de um valor binário. Então, pequenos erros estão bem.
Aqui está o gif que mostra minha falha ao tentar criar um baseado em MOS:
Figura 5, copiei o esquema do link wiki acima, mas ele não funciona no simulador.
Se tivesse funcionado, então eu deveria ter visto o valor 1 V em algum lugar, pois mudei a tensão da referência de 5 V para -5 V.