Phiên bản ngắn: Làm cách nào để tạo một số nhân tương tự có hai đầu vào DC tương tự?
Phiên bản dài:
Tôi đã đưa ra một nhận xét giới thiệu các video của Ben Eaters cho một câu hỏi khác, trong khi làm như vậy tôi đã tự mình xem một số (một lần nữa) và nghĩ rằng " hmmm ... Tôi tự hỏi liệu có dễ dàng hơn để tạo ra một số phần hoàn toàn tương tự " không.
Bus có thể chỉ là một dây trong đó các mức điện áp khác nhau sau đó sẽ được dịch thành các bit bằng ADC.
Chỉ loay hoay một chút tôi đã đi xa đến mức về mặt lý thuyết có thể tính được các số Fibonacci:
Hình 1, bản demo nhỏ của máy tính lai tính toán các số đầu tiên của Wikipedia
Liên kết với giả lập.
Trong gif ở trên, tôi đi ra khỏi phạm vi điện áp để dễ dàng nhìn thấy các số của Wikipedia, trong thực tế tôi sẽ chỉ sử dụng 250 mV = binary 1 (LSB ở "giá trị đặt") và sau đó cho nó lan truyền qua DRAM giữ 4 bit cho mỗi tụ điện.
Phần quan trọng để xem xét trong gif là đầu ra của op-amp ở bên phải của văn bản "a + b", nó hiển thị các số Fibonacci.
Ở giữa mọi thao tác tôi sẽ định lượng câu trả lời bằng cách sử dụng ADC theo sau là một bộ xử lý tín hiệu. Vì vậy, nếu tôi đọc 1.1V thì DAC sẽ biến nó thành 1.0 V và sau đó sẽ được lưu trong DRAM. Và sau đó, cứ sau mỗi đồng hồ X, toàn bộ DRAM sẽ phải đi qua bộ lượng tử hóa để đảm bảo tụ điện không bị trôi đi .
ALU chỉ có thể làm +, - và trung bình. Tôi đã suy nghĩ về việc nhân lên và dừng lại. Tôi đã thực hiện và thấy các hệ số nhân dựa trên diode trước đây, nhưng tôi không muốn sử dụng chúng vì các điốt phải được khớp. Tôi thay vì sử dụng điện trở mà tôi có thể cắt bằng chiết áp. Dù sao, tôi đã đưa ra một hệ số nhân lai, nửa tương tự, nửa kỹ thuật số.
Vì vậy, tôi đã thực hiện một đầu tiên với điện trở giống hệt nhau ở khắp mọi nơi.
Hình 2, hệ số nhân ngây thơ giữa số kỹ thuật số và giá trị tương tự. Giá trị kỹ thuật số được bù bằng 1.
Mà sau đó tôi đã biến thành điều này với trọng số nhị phân:
Hình 3, hệ số nhân ngây thơ giữa các số kỹ thuật số có trọng số nhị phân và các giá trị tương tự. Giá trị kỹ thuật số được bù bằng 1.
Điều này làm tôi nhớ đến thang R2 / R, nhưng tôi không thể làm cho chúng hoạt động với op-amp.
Tuy nhiên, tôi đã nghĩ về cách các thang R2 / R hoạt động và tôi nhớ rằng đầu ra của chúng được nhân với nguồn điện áp của chúng. Vì vậy, cuối cùng tôi đã đưa ra thiết kế này:
Hình 4, hệ số nhân dựa trên R2 / R giữa các số kỹ thuật số có trọng số nhị phân và các giá trị tương tự
Tôi thích nó, vấn đề duy nhất là xe buýt là tương tự, chỉ là một dây. Vì vậy, nếu tôi buộc phải sử dụng giải pháp trong hình 4 ở trên, thì tôi buộc phải sử dụng một ADC khác tại khu vực nhân của CPU lai. Tôi không thể tái sử dụng cái ở khu vực lượng tử hóa.
Thời gian cho câu hỏi:
Làm thế nào tôi nên tạo một số nhân có hai đầu vào tương tự?
- Tôi không muốn giải pháp dựa trên 3 điốt và 4 op-amps vì bạn không thể cắt điốt. Tôi tin rằng nếu chúng không khớp thì chúng sẽ đưa ra câu trả lời tắt hơn 250 mV. Tôi đã không thử điều này trong thế giới thực.
- Tôi đã thử hệ số nhân dựa trên MOS trong liên kết theo nghĩa đen một inch phía trên từ này, nhưng tôi không biết liệu mình có bị câm không. Tôi không thể làm cho nó hoạt động trong trình giả lập. Xem gif dưới đây cho thất bại của việc thực hiện MOS. Hoặc nhấp vào liên kết này để mô phỏng.
- Tôi không muốn ném một vi điều khiển vào vấn đề.
- Tôi không muốn sử dụng một động cơ quay và sử dụng một số shenanigans.
- Sau khi phép nhân đã được thực hiện, nó sẽ được đưa đến bộ lượng tử hóa để đảm bảo giá trị càng gần với giá trị nhị phân càng tốt. Vì vậy, lỗi nhỏ là được.
Đây là gif cho thấy thất bại của tôi khi cố gắng tạo MOS dựa trên:
Hình 5, tôi đã sao chép sơ đồ từ liên kết wiki ở trên, nhưng nó không hoạt động trong trình giả lập.
Nếu nó hoạt động, thì tôi đã thấy giá trị 1 V ở đâu đó khi tôi thay đổi điện áp của tham chiếu từ 5 V thành -5 V.