Menu
Coddy logo textTech

디코더 설계

Coddy Verilog 여정의 기초 섹션에 포함된 레슨 — 90개 중 85번째.

challenge icon

챌린지

디코더(decoder)는 이진수를 입력받아 해당 숫자에 기반하여 정확히 하나의 출력만 활성화합니다. 하나의 비트만 핫(1) 상태이고 다른 모든 비트는 쿨(0) 상태이므로, 활성화되는 출력을 "원핫(one-hot)"이라고 부릅니다.

진리표 (2-to-4 디코더)

Input (in)out0out1out2out3
001000
010100
100010
110001

모듈 인터페이스

PortDirectionWidthDescription
ininput2 bits이진 입력 (0 ~ 3)
out0output1 bitin = 00일 때 활성화
out1output1 bitin = 01일 때 활성화
out2output1 bitin = 10일 때 활성화
out3output1 bitin = 11일 때 활성화

구현할 과제는 case 문을 사용하여 아래 모듈을 완성하는 것입니다.

작업 내용:

  1. in = 2'b00일 때, out0 = 1, 나머지 모두 0
  2. in = 2'b01일 때, out1 = 1, 나머지 모두 0
  3. in = 2'b10일 때, out2 = 1, 나머지 모두 0
  4. in = 2'b11일 때, out3 = 1, 나머지 모두 0

직접 해보기

module decoder (
  input [1:0] in,
  output reg out0,
  output reg out1,
  output reg out2,
  output reg out3
);
  
  // TODO: always @(*) 블록과 case (in) 추가
  // 2'b00: out0=1, 나머지는 0
  // 2'b01: out1=1, 나머지는 0
  // 2'b10: out2=1, 나머지는 0
  // 2'b11: out3=1, 나머지는 0

endmodule

기초의 모든 레슨