Altifigence Academy

4 / 63 · 개념

NAND·NOR와 반전 기호 읽기

부정의 범위를 구분하고 드모르간 법칙으로 같은 기능의 기호와 식을 연결합니다.

작은 원은 출력값 전체를 반전합니다

NAND는 AND의 결과를, NOR는 OR의 결과를 반전합니다. NAND가 “입력을 각각 반전한 AND”라는 뜻은 아닙니다. 부정부정 0을 1로, 1을 0으로 바꾸는 NOT 연산입니다. 수식 위의 선은 선 아래 식 전체에 NOT을 적용한다는 뜻입니다.이 씌워지는 범위를 먼저 확인하세요.

YNAND=ab,YNOR=a+bY_{NAND}=\overline{ab},\qquad Y_{NOR}=\overline{a+b}
abNANDNOR
0011
0110
1010
1100
출력의 반전 원과 진리표
NAND · 진리표
aby
001
011
101
110

NAND를 선택해 11에서만 출력이 0인지 확인하세요. 이어 NOR로 바꾸면 00에서만 출력이 1입니다. 반전된 출력도 유효한 0/1 신호이며, “아직 계산되지 않은 값”이 아닙니다.

드모르간 법칙은 게이트를 읽는 방법입니다

ab=a+b,a+b=ab\overline{ab}=\overline a+\overline b,\qquad \overline{a+b}=\overline a\,\overline b

AND의 출력에서 반전을 입력으로 옮기면 연산도 OR로 바뀝니다. 반전 원의 위치만 옮기고 AND를 그대로 유지하면 다른 함수가 됩니다. a=0,b=1a=0,b=1에서 NAND는 1이지만 ab\overline a\,\overline b는 0이므로 즉시 반례를 찾을 수 있습니다.

출력 반전을 입력 쪽으로 옮길 때
  1. NAND: Y = NOT (a AND b)
  2. 입력 각각 반전: NOT a와 NOT b를 만든다
  3. OR로 결합: Y = (NOT a) OR (NOT b)

Active-low는 신호가 의미를 가지는 방향입니다

reset_n처럼 0일 때 동작하는 신호를 active-lowactive-low 신호가 0일 때 요청이나 기능이 활성이라는 규칙입니다. 이름 끝의 _n은 흔한 표기 관례이며, 실제 동작은 명세로 정합니다.라고 합니다. 이름의 _n은 관례이고, 동작은 명세와 회로가 결정합니다. 두 요청 req0_n, req1_n 중 하나라도 0일 때 경보 alarm을 1로 만들려면 다음과 같이 계산합니다.

alarm=req0_n+req1_n=req0_nreq1_n\mathrm{alarm}=\overline{\mathrm{req0\_n}}+\overline{\mathrm{req1\_n}}=\overline{\mathrm{req0\_n}\,\mathrm{req1\_n}}

각 신호 위의 선은 그 신호에 NOT을 적용합니다. 마지막 긴 선은 두 신호의 AND 결과 전체에 NOT을 적용하므로 NAND 하나로 구현할 수 있습니다. 예를 들어 두 입력이 11이면 요청이 없으므로 alarm=0이고, 01이면 첫 요청이 활성이라 alarm=1입니다.

신호의 “활성”과 숫자 1은 항상 같지 않습니다. 입력을 읽을 때 논리값, 활성 조건, 반전 기호를 따로 확인하세요.

직접 생각해 보기

두 active-low 허가 permit0_n, permit1_n이 모두 활성일 때만 go=1이 되어야 합니다. NAND와 NOR 중 무엇을 연결하면 될까요?

해설 보기

둘 다 0일 때만 1이어야 하므로 NOR입니다. go=NOT(permit0_n OR permit1_n)입니다. “둘 다”라는 문장만 보고 바로 AND를 선택하면 신호의 활성 방향을 놓칩니다.

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