4 비트 입력은 최대 4 개의 입력을 가질 수 있으므로 출력을 3 비트 긴 이진수로 인코딩 할 수 있습니다.
진실 테이블은 다음과 같이 보일 것이다 :
w x y z y_2 y_1 y_0
---------+------------- number of positive bits
0 0 0 0 | 0 0 0 ~ 0
0 0 0 1 | 0 0 1 ~ 1
0 0 1 0 | 0 0 1 ~ 1
0 0 1 1 | 0 1 0 ~ 2
---------+-------------
0 1 0 0 | 0 0 1 ~ 1
0 1 0 1 | 0 1 0 ~ 2
0 1 1 0 | 0 1 0 ~ 2
0 1 1 1 | 0 1 1 ~ 3
---------+-------------
1 0 0 0 | 0 0 1 ~ 1
1 0 0 1 | 0 1 0 ~ 2
1 0 1 0 | 0 1 0 ~ 2
1 0 1 1 | 0 1 1 ~ 3
---------+-------------
1 1 0 0 | 0 1 0 ~ 2
1 1 0 1 | 0 1 1 ~ 3
1 1 1 0 | 0 1 1 ~ 3
1 1 1 1 | 1 0 0 ~ 4
을하지만! 케이스의 출력물은 2 비트 밖에 없습니다. 또한 사양에 따라 1111 입력이 00 출력으로 잘못된 것으로 간주됩니다. 그러므로 당신은 단순히 진리 테이블에서 가장 중요한 열을 삭제할 수 있습니다 및 다른 변화가 없을 것
w x y z y_1 y_0
---------+--------- number of positive bits
0 0 0 0 | 0 0 ~ 0
0 0 0 1 | 0 1 ~ 1
0 0 1 0 | 0 1 ~ 1
0 0 1 1 | 1 0 ~ 2
---------+-------------
0 1 0 0 | 0 1 ~ 1
0 1 0 1 | 1 0 ~ 2
0 1 1 0 | 1 0 ~ 2
0 1 1 1 | 1 1 ~ 3
---------+-------------
1 0 0 0 | 0 1 ~ 1
1 0 0 1 | 1 0 ~ 2
1 0 1 0 | 1 0 ~ 2
1 0 1 1 | 1 1 ~ 3
---------+-------------
1 1 0 0 | 1 0 ~ 2
1 1 0 1 | 1 1 ~ 3
1 1 1 0 | 1 1 ~ 3
1 1 1 1 | 0 0 ~ invalid, showing zeros
은 이제 출력 기능 y_1
및 y_0
을 최소화하기위한 다른 스타일을 사용할 수 있지만, 나는 카르노 맵이 생각 이것에 적합합니다.
각 출력 함수에 대한 진리표의 라인을 인덱스 (0에서 인덱싱 된 테이블의 라인 수)를 사용하거나 변수 조합을 비교하여 별도의 K- 맵으로 전송합니다.
출력 함수 y_0
의 경우 최종 K-지도는 다음과 같이 표시되며 더 큰 그룹 (용어)이없는 최소 SOP (DNF; 연결 함수의 분리) 함수임을 알 수 있습니다. I는 POS (CNF; disjunctions의 함)을 찾기 위해 선택한 출력의 최상위 비트

y_0 = ¬w·¬x·¬y·z + ¬w·x·¬y·¬z + ¬w·¬x·y·¬z + ¬w·x·y·z
+ w·¬x·y·z + w·x·y·¬z + w·¬x·¬y·¬z + w·x·¬y·z
출력에
1
비트보다
0
비트 적은 경우가 있기 때문이다.
출력 기능은 모든 오른쪽 비트를 표시하여 설명한 y_0
에서도 가능합니다. 이 경우이 K-지도와 기능이 될 것입니다 :
y_1 = (w + x + y + z) · (w + x + y + ¬z) · (w + ¬x + y + z)
· (w + x + ¬y + z) · (¬w + ¬x + ¬y + ¬z) · (¬w + x + y + z)

을하지만은 K-지도에서이 출력 기능을 최소화 할 수 있습니다 :
y_1 = (w + x + y) · (w + y + z) · (w + x + z)
· (¬w + ¬x + ¬y + ¬z) · (x + y + z)

그 후에는 오른쪽 게이트를 사용하거나 Rott의 격자를 사용하여 더 적절한 게이트 조합으로 변환 할 수 있습니다.