Kısa versiyon: İki analog DC girişi alan bir analog çarpanı nasıl yapabilirim?
Uzun versiyon:
Ben başka bir soru için Ben Eaters videoları öneren bir yorum yaptım , bunu yaparken kendimi (tekrar) izlemek ve kendime " hmmm ... Bazı parçaları tamamen analog yapmak daha kolay olacağını merak ediyorum .
Veri yolu, farklı voltaj seviyelerinin daha sonra bir ADC ile bitlere çevrileceği sadece bir tel olabilir.
Sadece biraz karışıklık yaptım, teorik olarak Fibonacci sayılarını hesaplayabilen bu kadar geldim:
Şekil 1, ilk fibonacci sayılarını hesaplayan hibrid bilgisayarın küçük demosu
Bağlantı simülatörüne.
Yukarıdaki gifte voltaj aralığından çıkıyorum, bu yüzden fibonacci sayılarını görmek kolay, gerçekte sadece 250 mV = ikili 1'i ("ayar değerlerinde LSB") kullanacağım ve daha sonra Kondansatör başına 4 bit tutan DRAM.
Gif'te bakılması gereken önemli kısım, "a + b" metninin sağındaki op-amp'in çıkışıdır, Fibonacci sayılarını gösterir.
Her işlem arasında bir ADC ve ardından bir DAC kullanarak cevabı nicelleştireceğim. Eğer 1.1V okuyabilseydim, DAC onu daha sonra DRAM'da depolanacak olan 1.0 V'a çevirirdi. Ve sonra her X saatinde bir kez tüm DRAM, kapasitörün uzaklaşmayacağından emin olmak için nicelleştiriciden geçmelidir .
ALU sadece +, - ve ortalama yapabilir. Çarpmayı yapmayı düşünüyordum ve durdum. Daha önce diyot bazlı çarpanlar yaptım ve gördüm, ancak bunları kullanmak istemiyorum çünkü diyotların eşleştirilmesi gerekiyor. Bir potansiyometre ile kesebileceğim dirençleri tercih ederim. Her neyse, melez çarpan, yarı analog, yarı dijital buldum.
Bu yüzden her yerde aynı dirençlerle bir ilk yaptım.
Şekil 2, dijital sayılar ve analog değerler arasında saf çarpan . Dijital değer 1 ile dengelenir.
Daha sonra ikili ağırlıklar ile buna dönüştüm:
Şekil 3, ikili ağırlıklı dijital sayılar ve analog değerler arasındaki saf çarpan . Dijital değer 1 ile dengelenir.
Bu bana R2 / R merdivenlerini hatırlattı, ama onları op-amp ile çalıştıramadım.
Ancak, R2 / R merdivenlerinin nasıl çalıştığını düşündüm ve çıktılarının voltaj kaynaklarıyla çarpıldığını hatırladım. Sonunda bu tasarımı buldum:
Şekil 4, ikili ağırlıklı dijital sayılar ve analog değerler arasındaki R2 / R tabanlı çarpan
Bunu sevdim, tek sorun otobüsün analog, sadece bir kablo olmasıdır. Bu yüzden yukarıdaki şekil 4'teki çözümü kullanmak zorunda kalırsam, o zaman hibrid CPU'nun çarpma alanında başka bir ADC kullanmak zorunda kalırım. Nicelleştirici alanında yeniden kullanamıyorum.
Soru zamanı:
İki analog giriş alan bir çarpanı nasıl yapmalıyım?
- Ben yok dayanmaktadır çözüm istiyor o 3 diyot ve 4 op-amp Eğer Döşeme diyotlar olamaz çünkü. Benim inancım, eğer yanlış eşleşirlerse, 250 mV'den fazla olmayan bir cevap vereceklerdir. Bunu gerçek dünyada denemedim.
- MOS tabanlı çarpanı bu kelimenin tam anlamıyla bu kelimenin bir inç üzerinde denedim, ama aptal olup olmadığımı bilmiyorum. Simülatörde çalışamıyorum. MOS uygulamasının başarısız olması için aşağıdaki gif'e bakın. Veya simülasyon için bu bağlantıyı tıklayın .
- Ben yok probleme bir mikro denetleyici atmak istiyorum.
- Ben yok bir motor olduğu döner ve kullanımları bazı maskaralık kullanmak istiyorum.
- almak için bir alçakgeçirim oluşumunda bir RC filtresi kullanmayı düşünüyordum
- Hassasiyet mükemmel olmak zorunda değil, şu anda kapasitör başına sadece 4 bit, bu her seviyeye veriyor
- Çarpma işlemi yapıldıktan sonra, değerin mümkün olduğunca bir ikili değere yakın olduğundan emin olmak için nicelleştiriciye götürülecektir. Yani küçük hatalar olur.
İşte MOS tabanlı olanı yapmaya çalışmamdaki başarısızlığı gösteren gif:
Şekil 5, şemayı yukarıdaki wiki bağlantısından kopyaladım, ancak simülatörde çalışmıyor.
Eğer işe yarayacak olsaydı, referans voltajını 5 V'dan -5 V'a değiştirdiğimde bir yerde 1 V değerini görmeliydim.