Altifigence Academy

15 / 63 · 개념

진리표에서 MUX와 Shannon 전개로

선택 논리를 수식으로 유도하고 임의의 논리 함수를 MUX로 분해합니다.

선택 규칙을 식으로 유도하기

sel이 0일 때 a, 1일 때 b를 출력하려면 각 입력에 선택 조건을 곱하고 OR로 결합합니다.

y=s‾a+sby=\overline s a+s b

s=0s=0을 대입하면 a만, s=1s=1을 대입하면 b만 남습니다. a와 b가 같을 때는 sel을 바꿔도 출력이 같으므로, 선택선 오류를 찾으려면 두 데이터가 서로 다른 경우가 반드시 필요합니다.

선택된 입력에서 출력으로 이어지는 경로가 파란색으로 표시됩니다. a와 b를 다르게 놓고 sel을 바꾸세요. a와 b를 같은 값으로 놓으면 선택선을 잘못 연결해도 출력만 보고는 알아내기 어렵습니다.

선택선이 바꾸는 데이터 경로

y = sel ? b : a

MUX로 논리 함수를 나눠 구현할 수 있습니다

임의의 불 함수 F에서 s를 0 또는 1로 고정한 부분 함수를 각각 F0,F1F_0,F_1이라고 합시다.

F=s‾F0+sF1F=\overline s F_0+sF_1

이것이 Shannon 전개입니다. s ? F1 : F0로 임의 함수를 두 부분으로 나눌 수 있습니다. 예를 들어 F=a⊕bF=a\oplus b에서 a를 선택선으로 쓰면 F0=bF_0=b, F1=b‾F_1=\overline b이므로 MUX멀티플렉서 선택 신호에 따라 여러 입력 중 하나를 출력으로 연결하는 조합회로입니다. 선택 비트와 입력 번호의 대응을 명세해야 합니다.와 반전부정 0을 1로, 1을 0으로 바꾸는 NOT 연산입니다. 수식 위의 선은 선 아래 식 전체에 NOT을 적용한다는 뜻입니다. 자세히 보기으로 XOR를 구성할 수 있습니다.

4-to-1 선택과 우선순위

두 선택 비트로 네 입력 중 하나를 고르면 2-to-1 MUX 두 단으로 구성할 수 있습니다. 반면 if (req0) ... else if (req1) ...는 여러 요청이 동시에 1일 때 앞선 요청을 우선합니다. 서로 다른 문제인 주소 선택과 우선순위 선택을 같은 것으로 취급하면 안 됩니다.

SystemVerilog
assign y = sel[1] ? (sel[0] ? d3 : d2)
                 : (sel[0] ? d1 : d0);

이상적인 균형 트리에서 입력 개수가 2m2^m이면 선택 경로는 m단입니다. 실제 지연은 단수뿐 아니라 입력 도착 시각, 부하, 배선에 영향을 받습니다. 함수를 분해하면 여러 구현 방법을 얻을 수 있지만, 그중 어느 방법의 지연이 가장 짧은지까지 보장하지는 않습니다.

직접 생각해 보기

F=ab+a‾cF=a b+\overline a c를 a를 선택선으로 하는 MUX로 표현하세요. 두 데이터 입력에는 무엇을 연결해야 하나요?

해설 보기

a=0a=0이면 F0=cF_0=c, a=1a=1이면 F1=bF_1=b이므로 assign f = a ? b : c;입니다. 선택선이 0일 때와 1일 때의 입력을 뒤바꾸지 않도록 부분 함수를 먼저 계산합니다.

선택은 이 브라우저에만 적용됩니다. 언제든 푸터에서 변경할 수 있습니다.