하이브리드 CPU의 일부인 아날로그 아날로그 곱셈 (재미를 위해)


10

짧은 버전 : 두 개의 아날로그 DC 입력을받는 아날로그 멀티 플라이어를 만들려면 어떻게해야합니까?

긴 버전 :


내가 코멘트 만든 나 자신에게 몇 가지를 (다시) 자신과 생각을보고 결국 있도록하는 동안, 다른 질문에 대한 벤 공룡 비디오를 추천을 " 흠 ... 나는 일부는 순수 아날로그 만들기 위해 쉬울 것 궁금 ".

버스는 다른 전압 레벨이 나중에 ADC를 사용하여 비트로 변환되는 하나의 와이어 일 수 있습니다.

이론적으로 피보나치 수를 계산할 수있는 약간의 혼란이 있습니다.

여기에 이미지 설명을 입력하십시오
그림 1, 첫 번째 피보나치 수를 계산하는 하이브리드 컴퓨터의 작은 데모

시뮬레이터에 연결하십시오 .

위의 gif에서 전압 범위를 벗어나 피보나치 수를 쉽게 볼 수 있습니다. 실제로 250mV = 이진수 1 ( "설정 값"의 LSB)을 사용하여 전파합니다. 커패시터 당 4 비트를 유지하는 DRAM.

gif에서 살펴볼 중요한 부분은 "a + b"텍스트의 오른쪽에있는 연산 증폭기의 출력이며 피보나치 수를 나타냅니다.

모든 작업 사이에서 ADC와 DAC를 사용하여 답을 정량화합니다. 따라서 1.1V를 읽으면 DAC는이를 1.0V로 바꾸어 나중에 DRAM에 저장합니다. 그리고 매 X 클럭마다 커패시터 전체가 플로팅 되지 않도록 전체 DRAM이 양자화기를 통과해야한다 .

ALU는 +,-및 평균 만 수행 할 수 있습니다. 나는 곱셈을 생각하고 멈추었습니다. 나는 전에 다이오드 기반 승수를 만들어 보았지만 다이오드가 일치해야하기 때문에 사용하고 싶지 않습니다. 전위차계로 트리밍 할 수있는 저항을 사용합니다. 어쨌든, 나는 하이브리드 멀티 플라이어, 반 아날로그, 반 디지털을 생각해 냈습니다.

그래서 나는 모든 곳에서 동일한 저항으로 첫 번째를 만들었습니다.

여기에 이미지 설명을 입력하십시오
그림 2, 디지털 숫자와 아날로그 값 사이의 순수 승수 . 디지털 값은 1만큼 오프셋됩니다.

그런 다음 이진 가중치로 이것을 설정했습니다.

여기에 이미지 설명을 입력하십시오
그림 3, 이진 가중치 디지털 숫자와 아날로그 값 사이의 순수 승수 . 디지털 값은 1만큼 오프셋됩니다.

이것은 나에게 R2 / R 사다리를 생각 나게했다. 그러나 나는 그들이 op-amp와 함께 작동하게 할 수 없었다.

그러나 R2 / R 래더의 작동 방식에 대해 생각했으며 출력에 전압 소스를 곱한 것을 기억했습니다. 그래서 마침내이 디자인을 생각해 냈습니다.

여기에 이미지 설명을 입력하십시오
그림 4, 이진 가중치 디지털 숫자와 아날로그 값 사이의 R2 / R 기반 승수

나는 그것을 좋아하지만 유일한 문제는 버스가 아날로그이며 단 하나의 전선이라는 것입니다. 따라서 위의 그림 4에서 솔루션을 사용해야한다면 하이브리드 CPU의 곱셈 영역에서 다른 ADC를 사용해야합니다. 양자화 기 영역에서 재사용 할 수 없습니다.

질문 시간 :

두 개의 아날로그 입력을 취하는 멀티 플라이어를 어떻게 만들어야합니까?

  • 내가 하지 않습니다 기반으로하는 솔루션을 원하는 그 3 개 다이오드 및 4 작전을 앰프 는 트림 다이오드 수 없기 때문에. 내 생각에 그들이 일치하지 않으면 250mV 이상의 응답을 줄 것이라고 생각합니다. 나는 현실 세계에서 이것을 시도하지 않았습니다.
  • 나는 링크에서 MOS 기반 승수를 문자 그대로이 단어 위의 1 인치 이상으로 시도했지만 멍청한 지 모르겠습니다. 시뮬레이터에서 작동시킬 수 없습니다. MOS 구현 실패에 대해서는 아래 gif를 참조하십시오. 또는이 링크 를 클릭 하여 시뮬레이션하십시오.
  • 나는 하지 않는 문제에 마이크로 컨트롤러를 던져합니다.
  • 나는 하지 않는 모터 그 회전 및 용도 일부 헛소리를 사용하고 싶습니다.
  • 저역 통과 구성에서 RC 필터를 사용하여 잡는 것에 대해 생각하고있었습니다.이자형아르 자형
  • 424=0.25
  • 곱셈이 끝나면 값이 이진 값에 최대한 가깝도록 양자화기로 이동합니다. 작은 오류는 괜찮습니다.

다음은 MOS 기반의 MOS를 만들지 못한 것을 보여주는 gif입니다.

여기에 이미지 설명을 입력하십시오
그림 5, 위의 wiki 링크에서 회로도를 복사했지만 시뮬레이터에서는 작동하지 않습니다.

작동했을 경우, 기준 전압을 5V에서 -5V로 변경했을 때 1V 값을 보았을 것입니다.


1
아날로그 멀티 플라이어를 처음봤을 때 긴 꼬리를 사용하고있었습니다 : analoglib.net/wordpress/wp-content/uploads/2013/10/image5.png
Oldfart

2
길버트 셀은 DC로 작동합니까? 나는 RF를 혼합하는 데 사용된다고 생각합니다
Vladimir Cravero

1
@VladimirCravero 길버트 셀은 본질적으로 승수입니다. f1과 f2에 각각 2 개의 신호를 곱하면 f1-f2와 f1 + f2에서 출력을 얻을 수 있습니다. 또한 이러한 이유로 가변 게인 증폭기에도 사용됩니다. 하나의 신호는 일정하고 (게인 설정) 두 번째는 증폭하려는 것입니다.
Joren Vaes

답변:


5

구타를 조금 벗어난 아날로그 멀티 플라이어를 구축하려면 아날로그 스위치를 통해 아날로그 신호를 공급하지만 고주파수로 PWM을 사용하여 아날로그 스위치를 제어 할 때 발생하는 상황을 고려하십시오 (상당히 나이키 스트 이상으로 생명을 유지) 쉽게).

PWM이 50 % 마크 공간이면 기저 대역 아날로그 신호는 반으로 감쇠됩니다. 스위칭 아티팩트를 제거하려면 복구 필터를 사용해야합니다. 그러나이 기술을 사용하면 PWM 듀티 사이클을 변경하여 아날로그 신호를 진폭 변조 할 수 있습니다.

여기에 이미지 설명을 입력하십시오

4 사분면 승수로 만들 수도 있습니다. 하나의 아날로그 입력이 펄스 폭 변조기를 제어합니다. 다른 아날로그 입력이 전환됩니다.

당신이 관심이 있다면 그냥 생각.

자세한 내용은 여기


이것은 매우 흥미로운 접근법입니다!
Joren Vaes

1
흠, 진폭이 하나의 전압이고 듀티 사이클이 다른 상대 전압 인 PWM을 사용 하고 LP를 필터링했습니다. 그것은 실제로 나쁜 생각이 아닙니다.
Harry Svensson

1
일부 라디오에서는 변조기로 사용되며 LVDT에서는 위치 복조로 사용됩니다. 민감한 금속 탐지기에서 I 및 Q 복조기로도 적용했습니다.
Andy 일명

4

이런 것들이 존재합니다-아날로그 장치 (사용 했습니까?)에는 구입할 수있는 승수 IC가 있습니다. 그들은 또한 훌륭한 appnote를 가지고 있습니다 .

V영형()=V나는,1()V나는,2()V나는,1V나는,2


1
그래도 아날로그 승수를 얻을 수 있습니다. 나는 digikey가 전체 제품 범주를 가지고 있다고 생각합니다.
난로

2
그러나 길버트 셀은 트랜지스터 정합에 결정적으로 의존한다 (트랜지스터가 단일 다이의 일부인 경우 비교적 쉽다). OP는 트랜지스터의 일치에 의존하는 회로를 사용하여 거부했기 때문에 이것이 좋은 대답인지 확실하지 않습니다.
WhatRoughBeast

1
AD633은 (X1-X2) (Y1-Y2) / 10V + Z를 출력하는 4 사분면 승수입니다. 특별히 싸지는 않습니다.
Spehro Pefhany

3

나는 이것을 미래 독자들에게 실용적인 답변으로 여기에 제시하고 있습니다.


Joren의 답변을 읽은 후 많은 아날로그 곱셈기가 일치하는 구성 요소에 의존한다는 것을 깨달았습니다. 그래서 나 자신에게 생각했습니다. 왜 컴포넌트를 재사용하여 동일한 컴포넌트가 모든 곳에 사용됩니까? 그렇게하면 모든 것을 자동으로 일치시킵니다.

그래서 일반적인 다이오드 기반 멀티 플라이어를 찾아 모든 다이오드의 양극이 항상 연산 증폭기의 (-) 입력에 연결되어 있음을 알았습니다. 1kΩ 저항의 한 핀에 대해서도 마찬가지입니다.

여기에 이미지 설명을 입력하십시오

시뮬레이션에 연결하십시오 .

위의 이미지에서 2.25 × 3의 곱셈이 계산되어 6.75가됩니다. 똑같은 곱셈이 아래의 괴물에서 이루어집니다.

"1의 값"은 1의 전압 참조입니다. 따라서 0.1V이고 V1 = V2 = 1V이면 그러면 대답은 10V가되고 0.1V가 1이면 숫자 100으로 변환됩니다.

그래서 나는 음극과 1 kΩ 저항의 다른 핀과 전압을 mux하기로 결정했습니다. 대수와 지수 함수가 일치합니다. 아래 gif에서 볼 수 있습니다.

여기에 이미지 설명을 입력하십시오

시뮬레이션에 연결하십시오 .

gif는 약간 거칠기 때문에 의도적으로 8MB를 2MB로 축소합니다. 또한 gif는 55가 아닌 28 초로 2 배 빨라집니다.

"기본 y의 log (x)"와 "pow (y, x)"라고 말하는 것은 사실이 아닙니다. 전압 레퍼런스와 혼동되었습니다. 그것은 임의의 기초를 가진 로그와 포로입니다. 영리한 수학자들은 기본이 무엇이든 상관없이 모든 로그를 다른 로그로 변환 할 수 있음을 알고 있습니다.

오른쪽 하단 연산 증폭기의 출력 끝에 6.7이 표시됩니다. 마우스를 움직이지 않고 숫자를 표시 할 때 CircuitJS가 6.75에서 6.7로 잘립니다. 상기 마우스를 위치 시키면 6.69V를 나타내 었으므로, 60mV 에러 (250mV 미만)가 허용된다. 최고의 시뮬레이터가 아닙니다.


Andy Aka의 답변을 읽은 후에 다른 답변이 이길 수 있는지 확신 할 수 없습니다. 다른 답변이 이길 수 없다면 나는 며칠 안에 그를 받아 들일 것입니다. 나는 내 대답이 Andy의 것보다 낫다고 생각하지 않습니다.


1

나는 최근 1968 년 아날로그 컴퓨터에서 "포물선 승수"회로를 발견했다. A와 B를 곱하기 위해 두 개의 연산 증폭기로 시작하여 A + B와 AB를 계산합니다. 다음으로 X ^ 2 (포물선)를 생성하는 함수 발생기가 필요합니다. 두 개의 함수 발생기를 사용하여 (A + B) ^ 2 및 (AB) ^ 2를 계산합니다. 연산 증폭기로 두 결과를 빼면 4 × A × B가되며, 스케일링 후 원하는대로 A × B가됩니다.

X ^ 2 함수를 어떻게 얻습니까? 저항 다이오드 네트워크를 사용하면 임의의 볼록 기능 (예 : X ^ 2)을 추정 할 수 있습니다. 아이디어는 각 다이오드가 특정 입력 전압 (상단 저항으로 제어)에서 켜지고 출력 (하위 저항으로 제어)을 출력에 제공한다는 것입니다. 결과는 부분 선형 함수입니다. (아래의 구성 요소 값은 임의적입니다. X ^ 2의 값을 계산하지 않았습니다.) 실제 함수 발생기에는 정확도를 높이기 위해 12 개의 다이오드가있을 수 있습니다. 함수 발생기는 하드 와이어 또는 전위차계가있어 사용자가 원하는 기능으로 설정할 수 있습니다.

개략도

이 회로 시뮬레이션CircuitLab을 사용하여 작성된 회로도

포물선 승수는 아날로그 곱셈을 수행하는 고 정확도 방법으로 간주되었습니다. 간단한 언급은 Dornier 240 아날로그 컴퓨터 매뉴얼에 있습니다 . (독일어 는 섹션 9의 Der Parabel-Multiplizier 를 참조하십시오. )

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.