Kurzversion: Wie mache ich einen analogen Multiplikator, der zwei analoge DC-Eingänge benötigt?
Lange Version:
Ich habe einen Kommentar abgegeben, in dem ich Ben Eaters-Videos für eine andere Frage empfohlen habe. Dabei habe ich mir (wieder) einige angesehen und mir gedacht: " Hmmm ... ich frage mich, ob es einfacher wäre, einige Teile rein analog zu machen ."
Der Bus könnte nur ein Draht sein, bei dem verschiedene Spannungspegel später mit einem ADC in Bits übersetzt werden.
Ich habe nur ein bisschen rumgespielt und bin so weit gekommen, dass theoretisch die Fibonacci-Zahlen berechnet werden können:
Abbildung 1, kleine Demo eines Hybridcomputers zur Berechnung der ersten Fibonacci-Zahlen
Link zum Simulator.
Im obigen GIF gehe ich weit aus dem Spannungsbereich heraus, damit die Fibonacci-Zahlen leicht zu erkennen sind. In Wirklichkeit würde ich einfach 250 mV = binär 1 (das LSB bei den "eingestellten Werten") verwenden und es dann durch das ausbreiten lassen DRAM, der 4 Bits pro Kondensator enthält.
Der wichtige Teil, der im GIF betrachtet werden muss, ist die Ausgabe des Operationsverstärkers rechts vom "a + b" -Text. Er zeigt die Fibonacci-Zahlen.
Zwischen jeder Operation würde ich die Antwort mit einem ADC gefolgt von einem DAC quantifizieren. Wenn ich also 1,1 V lesen würde, würde der DAC daraus 1,0 V machen, die anschließend im DRAM gespeichert würden. Und dann müsste einmal pro X-Takt der gesamte DRAM den Quantisierer durchlaufen, um sicherzustellen, dass der Kondensator nicht wegschwimmt .
Die ALU kann nur +, - und Durchschnitt ausführen. Ich dachte über die Multiplikation nach und blieb stehen. Ich habe schon einmal diodenbasierte Multiplikatoren hergestellt und gesehen, aber ich möchte sie nicht verwenden, da die Dioden angepasst werden müssen. Ich benutze lieber Widerstände, die ich mit einem Potentiometer trimmen kann. Jedenfalls habe ich mir einen Hybrid-Multiplikator ausgedacht, halb analog, halb digital.
Also habe ich überall eine Premiere mit identischen Widerständen gemacht.
Abbildung 2, naiver Multiplikator zwischen digitalen und analogen Werten. Der digitale Wert wird um 1 versetzt.
Was ich dann mit binären Gewichten daraus gemacht habe:
Abbildung 3, naiver Multiplikator zwischen binär gewichteten digitalen Zahlen und analogen Werten. Der digitale Wert wird um 1 versetzt.
Dies erinnerte mich an R2 / R-Leitern, aber ich konnte sie nicht mit dem Operationsverstärker arbeiten lassen.
Ich dachte jedoch darüber nach, wie R2 / R-Leitern funktionieren, und erinnerte mich, dass ihre Leistung mit ihrer Spannungsquelle multipliziert wird. Also habe ich mir endlich dieses Design ausgedacht:
Abbildung 4, R2 / R-basierter Multiplikator zwischen binär gewichteten digitalen Zahlen und analogen Werten
Ich mag es, das einzige Problem ist jedoch, dass der Bus analog ist, nur ein Draht. Wenn ich also gezwungen bin, die Lösung in Abbildung 4 oben zu verwenden, muss ich einen anderen ADC im Multiplikationsbereich der Hybrid-CPU verwenden. Ich kann den im Quantisiererbereich nicht wiederverwenden.
Zeit für die Frage:
Wie soll ich einen Multiplikator erstellen, der zwei analoge Eingänge benötigt?
- Ich möchte keine Lösung, die auf 3 Dioden und 4 Operationsverstärkern basiert, da Sie keine Dioden trimmen können. Ich glaube, wenn sie nicht übereinstimmen, geben sie eine Antwort, die um mehr als 250 mV abweicht. Ich habe das in der realen Welt nicht versucht.
- Ich habe den MOS-basierten Multiplikator im Link buchstäblich einen Zentimeter über diesem Wort ausprobiert, aber ich weiß nicht, ob ich dumm bin. Ich kann es im Simulator nicht zum Laufen bringen. Siehe GIF unten für einen Fehler bei der MOS-Implementierung. Oder klicken Sie auf diesen Link für die Simulation.
- Ich möchte keinen Mikrocontroller auf das Problem werfen.
- Ich möchte keinen Motor verwenden, der sich dreht und einige Spielereien verwendet.
- Nachdem die Multiplikation durchgeführt wurde, wird sie zum Quantisierer geleitet, um sicherzustellen, dass der Wert einem Binärwert so nahe wie möglich kommt. So kleine Fehler sind okay.
Hier ist das GIF, das mein Versagen beim Versuch zeigt, das MOS-basierte zu erstellen:
Abbildung 5: Ich habe den Schaltplan aus dem obigen Wiki-Link kopiert, aber er funktioniert im Simulator nicht.
Wenn es funktioniert hätte, hätte ich den Wert 1 V irgendwo sehen müssen, als ich die Spannung der Referenz von 5 V auf -5 V geändert habe.