13 / 63 · 개념
DEMUX와 디코더: 선택한 경로로 데이터 보내기
MUX·DEMUX·디코더의 방향과 역할을 비교하고 원핫·원핫 이하 조건을 검증합니다.
내용은 무료로 볼 수 있습니다. 수강 신청하면 학습 기록을 저장할 수 있어요.
MUX는 모으고, DEMUX는 나눕니다
MUX멀티플렉서 선택 신호에 따라 여러 입력 중 하나를 출력으로 연결하는 조합회로입니다. 선택 비트와 입력 번호의 대응을 명세해야 합니다. 자세히 보기는 여러 데이터 입력 중 하나를 출력으로 전달합니다. DEMUXDEMUX 입력 데이터 하나를 선택 신호가 지정한 출력으로 보내는 회로입니다. 선택되지 않은 출력의 값도 명세합니다.는 하나의 데이터 입력 d를 선택한 출력으로 전달하고, 나머지 출력은 0으로 둡니다. 1-to-4 DEMUX의 선택 주소를 라고 하면
enable이 있는 디코더로 같은 기능 보기
아래 그림에서 a1·a0는 선택 주소, enable은 데이터 d라고 읽으세요. 출력 이름 d0~d3은 위 식의 y0~y3에 대응합니다. 같은 조합 함수가 사용 맥락에 따라 다른 이름으로 불릴 수 있습니다.
d[i] = enable AND (2 × a1 + a0 = i)
주소가 10이고 데이터가 1이면 y2만 1입니다. 데이터가 0이면 선택된 출력까지 모두 0입니다. 따라서 항상 정확히 하나가 1이라는 원핫원핫 여러 비트 중 정확히 하나만 1인 표현입니다. 모두 0도 허용하는 조건은 one-hot-or-zero로 구별합니다. 자세히 보기 조건은 틀리고, 전체 동작에는 “최대 하나가 1”인 원핫 이하 조건이 맞습니다.
선택선과 실제 쓰기 사건을 구분하기
네 레지스터레지스터 여러 비트의 상태를 저장하는 회로입니다. 이 과정의 동기식 레지스터는 클록 에지에서 정해진 입력을 저장합니다. 자세히 보기 중 하나에 쓸 때 write_en을 d로 넣고 주소를 선택선으로 사용할 수 있습니다. 그러나 디코더디코더 이진 코드에 대응하는 출력 선을 활성화하는 회로입니다. enable이 있으면 비활성일 때 모든 출력을 0으로 만들 수 있습니다. 자세히 보기 자체는 값을 저장하지 않습니다. 실제 레지스터는 클록 에지에서 해당 write enable과 데이터를 받아 저장합니다. 조합 선택선이 바뀌었다고 즉시 저장값이 바뀌는 것은 아닙니다.
- 주소 + write_en: 어디에 쓸지와 쓸 것인지 정의
- 디코더: 선택된 한 레지스터의 enable 생성
- 클록 에지: 선택된 레지스터가 데이터를 저장
검증에서는 선택된 출력의 값뿐 아니라 나머지 출력이 모두 0인지도 검사합니다. d=0인 네 조합과 d=1인 네 조합을 합쳐 총 8개입니다. 이 기능 검사가 주소 전환 중의 glitch 부재까지 보장하는 것은 아닙니다.
직접 생각해 보기
주소 s1s0=01일 때 d=1과 d=0의 y3y2y1y0를 각각 구하세요. 네 레지스터의 enable이 반드시 정확히 한 개 켜져야 한다는 검사는 언제 실패하나요?
해설 보기
각각 0010과 0000입니다. d 또는 write_en이 0일 때 아무 출력도 켜지지 않는 것이 정상입니다. 정확히 하나 조건은 d=1일 때만 적용합니다.