Menu
CoddyTech

解码器设计

本课属于 Coddy Verilog 学习旅程的“基础知识”单元。第 85 课,共 90 课。

challenge icon

挑战

译码器接收一个二进制数作为输入,并根据这个数恰好启用一个输出。启用的输出称为“独热”,因为只有一位是热的(1),其他位都是冷的(0)。

真值表(2-to-4 译码器)

输入(in)out0out1out2out3
001000
010100
100010
110001

模块接口

端口方向位宽说明
in输入2 位二进制输入(0 到 3)
out0输出1 位当 in = 00 时启用
out1输出1 位当 in = 01 时启用
out2输出1 位当 in = 10 时启用
out3输出1 位当 in = 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: 添加包含 case (in) 的 always @(*) 块
  // 2'b00: out0=1,其余为 0
  // 2'b01: out1=1,其余为 0
  // 2'b10: out2=1,其余为 0
  // 2'b11: out3=1,其余为 0

endmodule

基础知识中的所有课

自己练习: Verilog 在线编译器