アナログアナログ乗算、ハイブリッドCPUの一部(楽しみのため)
ショートバージョン: 2つのアナログDC入力を受け取るアナログ乗算器を作成するにはどうすればよいですか? ロングバージョン: 私がコメント作られた私は自分自身にいくつかに(再び)自分と考え方を見てしまったので、やっている間、別の質問のためのベン食いの動画を推薦する「うーん...私はいくつかの部分は純粋にアナログにするために容易になるだろうかしら」。 バスは、異なる電圧レベルが後でADCを使用してビットに変換される1本のワイヤーである場合もあります。 理論的にはフィボナッチ数を計算できる少しここまで来ました。 図1、最初のフィボナッチ数を計算するハイブリッドコンピューターの小さなデモ シミュレーターへのリンク。 上のgifでは、電圧範囲から外れているので、フィボナッチ数が簡単にわかります。実際には、250 mV =バイナリ1(「設定値」のLSB)を使用し、それを介して伝播させます。コンデンサあたり4ビットを保持するDRAM。 gifで確認する重要な部分は、「a + b」テキストの右側にあるオペアンプの出力です。フィボナッチ数を示しています。 すべての操作の合間に、ADCに続いてDACを使用して答えを定量化します。したがって、1.1Vを読み取ると、DACはそれを1.0 Vに変換し、その後、DRAMに保存します。そして、Xクロックごとに、DRAM全体が量子化器を通過して、コンデンサが浮かないようにする必要があります。 ALUは+、-、および平均のみを実行できます。掛け算を考えていて止まりました。以前にダイオードベースの乗算器を作成して見ましたが、ダイオードを一致させる必要があるため、使用しないでください。むしろ、ポテンショメーターでトリミングできる抵抗を使用します。Anywhoo、私はハイブリッド乗算器、半分アナログ、半分デジタルを思いついた。 だから私はどこでも同じ抵抗器で最初のものを作りました。 図2、デジタル数値とアナログ値の間の単純な乗数。デジタル値は1だけオフセットされます。 それから私はバイナリの重みでこれに変えました: 図3、バイナリで重み付けされたデジタル数値とアナログ値の間の単純な乗数。デジタル値は1だけオフセットされます。 これはR2 / Rラダーを思い出させましたが、オペアンプでそれらを動作させることができませんでした。 しかし、私はR2 / Rラダーがどのように機能するかを考え、出力が電圧源で乗算されることを思い出しました。だから私は最終的にこのデザインを思いつきました: 図4、バイナリ加重デジタル数値とアナログ値の間のR2 / Rベースの乗数 私はそれが好きですが、唯一の問題はバスがアナログであり、1本の線だけであることです。したがって、上の図4のソリューションを使用せざるを得ない場合は、ハイブリッドCPUの乗算領域で別のADCを使用せざるを得ません。量子化領域で再利用することはできません。 質問の時間: 2つのアナログ入力を受け取る乗算器をどのように作成すればよいですか? 私はしていないに基づいて解決したいことと、4オペアンプ3個のダイオードあなたがトリムダイオードことができないために。私の信念は、それらが一致しない場合、250 mVを超えるオフの応答を与えると考えています。私はこれを現実の世界では試していません。 文字通りこの単語より1インチ上のリンクでMOSベースの乗数を試しましたが、私が馬鹿げているかどうかはわかりません。シミュレーターで動作させることができません。MOS実装の失敗については、下のgifを参照してください。または、シミュレーションのこのリンクをクリックします。 私は問題にマイクロコントローラを投げたくありません。 私はしていない回転とすると、いくつかのペテンを使用しているモーターを使用したいです。 ローパス構成でRCフィルターを使用してを取得することを考えていましたe− tR Ce−tRCe^{\frac{-t}{RC}} 424= 0.25424=0.25\frac{4}{2^4}=0.25 乗算が行われた後、量子化器に渡され、値がバイナリ値に可能な限り近いことを確認します。したがって、小さなエラーは問題ありません。 これは、MOSベースのものを作成しようとして失敗したことを示すgifです。 図5、上のwikiリンクから回路図をコピーしましたが、シミュレーターでは機能しません。 それがうまくいったなら、リファレンスの電圧を5 Vから-5 Vに変更したときに、どこかで1 Vの値が表示されたはずです。