FPGA入门练习
+ -

总线式38译码器

2024-04-30 19 0

总线式38译码器使用的地址线 wire a[2:0],输出为reg类output[7:0]。

源代码如下:

module mut38(input[2:0]  a  ,output reg [7:0] b);

always@(*)
begin
    case(a)
        3'b000: b<=8'b0000_0001;
        3'b001: b<=8'b0000_0010;
        3'b010: b<=8'b0000_0100;
        3'b011: b<=8'b0000_1000;
        3'b100: b<=8'b0001_0000;
        3'b101: b<=8'b0010_0000;
        3'b110: b<=8'b0100_0000;
        3'b111: b<=8'b1000_0000;
    endcase
end

endmodule

认知:

  • 模块的信号必须指定方向,如input ,output.
  • switch所谓的C语言中的,在verilog中就变成了case 和 endcase了。

仿真代码:

`timescale 1ns / 1ps

module mut38_tb();

reg [2:0] a;
wire[7:0]  b;

mut38 mut32_inst(.a(a),.b(b));


initial begin
a<=3'b000;

#20
a<=3'b001;

#20
a<=3'b010;

#20
a<=3'b011;

#20
a<=3'b100;

#20
a<=3'b101;

#20
a<=3'b110;

#20
a<=3'b111;

end

endmodule

认知:
仿真写的临时变量,如reg,wire类型的,不需要input,output,因为只有模块接口需要。

仿真结果如下:
170449159514

0 篇笔记 写笔记

关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!