Phép nhân tương tự tương tự, một phần của CPU lai (cho vui)


10

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:

nhập mô tả hình ảnh ở đây
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.

nhập mô tả hình ảnh ở đây
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:

nhập mô tả hình ảnh ở đây
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:

nhập mô tả hình ảnh ở đâ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.
  • e-tRC
  • 424= =0,25
  • 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:

nhập mô tả hình ảnh ở đây
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.


1
Lần đầu tiên tôi thấy một số nhân tương tự, nó đã sử dụng một bộ đuôi dài: analoglib.net/wordpress/wp-content/uploads/2013/10/image5.png
Oldfart

2
tế bào gilbert có hoạt động xuống DC không? Tôi nghĩ nó được sử dụng để trộn RF
Vladimir Cravero

1
@VladimirCravero Một tế bào gilbert về bản chất là một số nhân - hãy nghĩ về nó, nếu bạn nhân hai tín hiệu, một tại F1 và một tại f2, bạn sẽ nhận được đầu ra ở F1-f2 và f1 + f2, đó là những gì một bộ trộn thực hiện. Chúng cũng được sử dụng cho các bộ khuếch đại khuếch đại biến đổi vì lý do này - một tín hiệu sẽ là hằng số (cài đặt khuếch đại) thứ hai sẽ là thứ bạn muốn khuếch đại.
Joren Vaes

Câu trả lời:


5

Nếu bạn muốn xây dựng một hệ số nhân tương tự có một chút sai lệch thì hãy xem xét điều gì xảy ra khi bạn cung cấp tín hiệu tương tự thông qua một công tắc tương tự nhưng điều khiển công tắc tương tự với PWM ở tần số cao (cao hơn đáng kể so với nyquist để tạo ra sự sống dễ dàng hơn).

Nếu PWM là 50% không gian đánh dấu thì tín hiệu tương tự dải cơ sở bị suy giảm một nửa. Rõ ràng bạn cần sử dụng bộ lọc phục hồi để loại bỏ các vật phẩm chuyển đổi. Nhưng với kỹ thuật này, bạn có thể điều chỉnh biên độ tín hiệu tương tự bằng cách thay đổi chu kỳ nhiệm vụ của PWM: -

nhập mô tả hình ảnh ở đây

Bạn cũng có thể làm cho nó thành một số nhân 4 góc phần tư. Một đầu vào tương tự điều khiển một bộ điều biến độ rộng xung. Đầu vào tương tự khác được chuyển đổi.

Chỉ cần một suy nghĩ trong trường hợp bạn quan tâm.

Thêm chi tiết tại đây


Đây là một cách tiếp cận rất thú vị!
Joren Vaes

1
Hmm, sử dụng PWM trong đó biên độ là một điện áp và chu kỳ nhiệm vụ là điện áp tương đối khác , và sau đó LP được lọc. Đó thực sự không phải là một ý tưởng tồi.
Harry Svensson

1
Nó được sử dụng trong một số radio như bộ điều biến và trong LVDT làm giải điều chế vị trí. Tôi cũng áp dụng một bộ giải mã I và Q trong một máy dò kim loại nhạy cảm.
Andy aka

4

Những thứ này tồn tại - Các thiết bị tương tự (đã từng?) Có một số IC nhân mà bạn có thể (có thể?) Mua. Họ cũng có bản chú thích tuyệt vời này mà tôi chắc chắn đề nghị đọc.

VÔiBạnT(t)= =VTôiN,1(t)VTôiN,2(t)VTôiN,1VTôiN,2


1
Bạn vẫn có thể có được các số nhân tương tự. Tôi tin rằng digikey thậm chí có cả một loại sản phẩm cho họ.
Nghe

2
Tuy nhiên, một tế bào Gilbert phụ thuộc rất nhiều vào việc kết hợp bóng bán dẫn (điều này tương đối dễ dàng khi các bóng bán dẫn là một phần của một khuôn duy nhất). OP đã từ chối sử dụng một mạch dựa trên sự phù hợp của các bóng bán dẫn, vì vậy tôi không chắc đây là một câu trả lời hay.
WhatRoughBeast

1
AD633 là hệ số nhân 4 góc cho ra (X1 - X2) (Y1 - Y2) / 10V + Z. Không đặc biệt rẻ.
Spehro Pefhany

3

Tôi chỉ đưa ra đây là một câu trả lời khả thi cho độc giả tương lai.


Sau khi đọc câu trả lời của Joren, tôi nhận ra rằng nhiều số nhân tương tự dựa vào các thành phần phù hợp. Vì vậy, tôi tự nghĩ, tại sao không chỉ sử dụng lại các thành phần để cùng một thành phần được sử dụng ở mọi nơi? Bằng cách đó tôi sẽ tự động kết hợp mọi thứ.

Vì vậy, tôi đã tra cứu hệ số nhân dựa trên diode điển hình và thấy rằng các cực dương của tất cả các điốt luôn được kết nối với đầu vào (-) của op-amp. Tương tự với một chân của điện trở 1 kΩ.

nhập mô tả hình ảnh ở đây

Liên kết với mô phỏng.

Trong hình trên, phép nhân 2,25 × 3 được tính toán cho kết quả 6,75. Phép nhân rất giống nhau được thực hiện trong ... sự quái dị dưới đây.

"Giá trị cho một" là tham chiếu điện áp cho một. Vì vậy, nếu nó là 0,1 V và V1 = V2 = 1 volt. Sau đó, câu trả lời sẽ là 10 V, chuyển thành số 100 nếu 0,1 V là 1.

Vì vậy, tôi quyết định mux cực âm và chân khác của điện trở 1 kΩ và voilà, có một hàm logarit và hàm mũ đẹp phù hợp. Bạn có thể thấy trong gif dưới đây.

nhập mô tả hình ảnh ở đây

Liên kết với mô phỏng.

Gif là một chút hạt, đó là nhằm mục đích giảm quy mô xuống 8 MB xuống còn 2 MB. Ngoài ra gif được tăng tốc gấp 2, 28 giây thay vì 55.

Tôi biết nó nói "log (x) trong cơ sở y" và "pow (y, x)" không đúng. Tôi bối rối với các tham chiếu điện áp. Nó chỉ là đăng nhập và pow với một số cơ sở ngẫu nhiên. Các nhà toán học thông minh sẽ biết rằng nó không quan trọng cơ sở là gì, bạn có thể chuyển đổi bất kỳ nhật ký nào sang bất kỳ nhật ký nào khác.

Số 6,7 được hiển thị ở cuối ở đầu ra của op-amp bên phải phía dưới. CircuitJS cắt ngắn 6,75 đến 6,7 khi trình bày các con số mà không có bất kỳ con chuột nào di chuột. Đặt con chuột ở trên cho thấy 6,69 V, do đó lỗi 60 mV nhỏ hơn 250 mV và có thể chấp nhận được. Theo .. không phải là giả lập tốt nhất.


Sau khi đọc câu trả lời của Andy Aka, tôi không chắc câu trả lời khác có thể đánh bại nó không. Tôi sẽ chấp nhận anh ta trong một vài ngày nếu không có câu trả lời khác đánh bại nó. Tôi không tin rằng câu trả lời của tôi đánh bại Andy.


1

Gần đây tôi đã bắt gặp mạch "Parabol Multiplier" trong một máy tính tương tự năm 1968. Để nhân A và B, bạn bắt đầu với hai ampe kế để tính A + B và AB. Tiếp theo, bạn cần một trình tạo hàm tạo X ^ 2 (tức là một parabola). Với hai bộ tạo hàm, bạn tính (A + B) ^ 2 và (AB) ^ 2. Bạn trừ hai kết quả bằng op amp, kết quả là 4 × A × B, sau khi chia tỷ lệ sẽ cho bạn A × B như mong muốn.

Làm thế nào để bạn có được chức năng X ^ 2? Một hàm lồi tùy ý (chẳng hạn như X ^ 2) có thể được xấp xỉ bằng một mạng diode-điện trở. Ý tưởng là mỗi diode sẽ bật ở một điện áp đầu vào cụ thể (được điều khiển bởi các điện trở trên) và cung cấp một dòng điện (được điều khiển bởi các điện trở dưới) cho đầu ra. Kết quả là một hàm tuyến tính piecewise. (Các giá trị thành phần bên dưới là tùy ý; Tôi không tìm ra các giá trị cho X ^ 2.) Một bộ tạo hàm thực có thể có hàng tá điốt để có độ chính xác cao hơn. Một bộ tạo chức năng có thể được gắn cứng hoặc có thể có chiết áp để người dùng có thể đặt nó thành bất kỳ chức năng mong muốn nào.

sơ đồ

mô phỏng mạch này - Sơ đồ được tạo bằng CircuitLab

Hệ số nhân Parabolic được coi là một cách có độ chính xác cao để thực hiện phép nhân tương tự. Một đề cập ngắn gọn là trong hướng dẫn sử dụng máy tính tương tự Dornier 240 . (Trong tiếng Đức, xem Der Parabel-Multiplizierer trong phần 9.)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.