ฉบับย่อ:ฉันจะสร้างตัวคูณแบบแอนะล็อกที่รับอินพุต DC แบบอะนาล็อกสองตัวได้อย่างไร
รุ่นยาว:
ผมได้แสดงความคิดเห็นแนะนำวิดีโอเบนเสพสำหรับคำถามอื่นในขณะที่ทำเพื่อฉันสิ้นสุดขึ้นมาดูบางตัวเอง (อีกครั้ง) และความคิดกับตัวเองว่า " อืมม ... ผมสงสัยว่ามันจะง่ายขึ้นที่จะทำให้บางส่วนอนาล็อกหมดจด "
บัสอาจเป็นเพียงสายเดียวที่ระดับแรงดันไฟฟ้าที่แตกต่างกันในภายหลังจะถูกแปลงเป็นบิตด้วย ADC
เพิ่งล้อเล่นไปนิดหน่อยฉันมาไกลขนาดนี้ซึ่งทางทฤษฎีสามารถคำนวณตัวเลขฟีโบนักชี:
รูปที่ 1 ตัวอย่างเล็ก ๆ ของคอมพิวเตอร์ไฮบริดที่คำนวณตัวเลขฟีโบนักชีครั้งแรก
ลิงก์ไปยังโปรแกรมจำลอง
ใน gif ด้านบนฉันออกจากช่วงแรงดันเพื่อให้ง่ายต่อการดูตัวเลข fibonacci ในความเป็นจริงฉันจะใช้ 250 mV = binary 1 (LSB ที่ "set values") แล้วปล่อยให้มันแพร่กระจายผ่าน DRAM ที่เก็บ 4 บิตต่อตัวเก็บประจุ
ส่วนที่สำคัญในการดูใน gif คือเอาต์พุตของ op-amp ทางด้านขวาของข้อความ "a + b" จะแสดงหมายเลข Fibonacci
ในระหว่างการดำเนินการทุกครั้งฉันจะหาจำนวนคำตอบโดยใช้ ADC ตามด้วย DAC ดังนั้นถ้าฉันจะอ่าน 1.1V ดังนั้น DAC จะเปลี่ยนเป็น 1.0 V ซึ่งหลังจากนั้นจะถูกเก็บไว้ใน DRAM และแล้วเมื่อนาฬิกาทุก X ทั้ง DRAM จะต้องไปผ่าน quantizer เพื่อให้แน่ใจว่าตัวเก็บประจุไม่ลอยออกไป
ALU สามารถทำได้เพียง +, - และโดยเฉลี่ยเท่านั้น ฉันกำลังคิดที่จะทำการคูณและมาหยุด ฉันเคยทำและเห็นตัวคูณที่ใช้ไดโอดมาก่อน แต่ฉันไม่ต้องการที่จะใช้มันเพราะไดโอดจะต้องมีการจับคู่ ฉันควรใช้ตัวต้านทานที่ฉันสามารถตัดด้วยโพเทนชิออมิเตอร์ได้ อะไรฉันก็มาพร้อมกับตัวคูณไฮบริดครึ่งอนาล็อกครึ่งดิจิตอล
ดังนั้นฉันจึงสร้างเป็นครั้งแรกด้วยตัวต้านทานที่เหมือนกันทุกที่
รูปที่ 2 ตัวคูณไร้เดียงสาระหว่างตัวเลขดิจิทัลและค่าแอนะล็อก ค่าดิจิตอลถูกชดเชยด้วย 1
ซึ่งฉันกลายเป็นนี้ด้วยน้ำหนักไบนารี:
รูปที่ 3 ตัวคูณไร้เดียงสาระหว่างตัวเลขดิจิทัลแบบถ่วงน้ำหนักไบนารีและค่าอนาล็อก ค่าดิจิตอลถูกชดเชยด้วย 1
สิ่งนี้ทำให้ฉันนึกถึงบันได R2 / R แต่ฉันไม่สามารถทำให้มันทำงานกับ op-amp ได้
อย่างไรก็ตามฉันคิดเกี่ยวกับวิธีการทำงานของบันได R2 / R และฉันจำได้ว่าเอาท์พุทของพวกเขาถูกคูณด้วยแหล่งกำเนิดแรงดันไฟฟ้า ในที่สุดฉันก็เลยคิดแบบนี้:
รูปที่ 4 ตัวคูณแบบอิง R2 / Rระหว่างตัวเลขดิจิทัลแบบถ่วงน้ำหนักไบนารีและค่าอนาล็อก
ฉันชอบมันปัญหาเดียวที่เกิดขึ้นคือรถบัสเป็นแบบอะนาล็อกแค่สายเดียว ดังนั้นถ้าฉันถูกบังคับให้ใช้วิธีแก้ปัญหาในรูปที่ 4 ด้านบนแล้วฉันถูกบังคับให้ใช้ ADC อื่นที่พื้นที่การคูณของไฮบริดซีพียู ฉันไม่สามารถใช้ซ้ำได้ที่พื้นที่ควอไลเซอร์
เวลาสำหรับคำถาม:
ฉันจะสร้างทวีคูณที่รับสัญญาณอะนาล็อกสองตัวได้อย่างไร
- ฉันไม่ต้องการโซลูชันที่ใช้ไดโอด 3 ตัวนั้นและ op-amps 4 ตัวเพราะคุณไม่สามารถตัดไดโอดได้ ความเชื่อของฉันคือถ้าพวกเขาไม่ตรงกันพวกเขาจะให้คำตอบที่ถูกปิดโดยมากกว่า 250 mV ฉันไม่ได้ลองสิ่งนี้ในโลกแห่งความเป็นจริง
- ฉันได้ลองตัวคูณแบบอิงมอสในลิงค์ข้างบนหนึ่งนิ้วข้างบนนี้ แต่ฉันไม่รู้ว่าฉันเป็นใบ้หรือไม่ ฉันไม่สามารถทำงานในเครื่องจำลองได้ ดู gif ด้านล่างสำหรับความล้มเหลวของการใช้งาน MOS หรือคลิกลิงก์นี้เพื่อจำลองสถานการณ์
- ฉันไม่ต้องการที่จะโยนไมโครคอนโทรลเลอร์ที่มีปัญหา
- ฉันไม่ต้องการใช้มอเตอร์ที่หมุนและใช้ shenanigans บางตัว
- หลังจากเสร็จสิ้นการคูณมันจะถูกนำไปที่ควอไลเซอร์เพื่อให้แน่ใจว่าค่านั้นใกล้เคียงกับค่าไบนารีมากที่สุด ข้อผิดพลาดเล็ก ๆ น้อย ๆ ก็โอเค
นี่คือ gif ที่แสดงให้เห็นว่าฉันล้มเหลวในการพยายามทำให้ MOS เป็นพื้นฐาน:
รูปที่ 5 ฉันคัดลอกแผนผังจากลิงค์วิกิข้างบน แต่มันไม่ทำงานในโปรแกรมจำลอง
ถ้ามันทำงานได้ฉันควรเห็นค่า 1 V อยู่ที่ไหนสักแห่งเพราะฉันเปลี่ยนแรงดันไฟฟ้าของการอ้างอิงจาก 5 V เป็น -5 V