Verilog实现3-8译码器的仿真代码

仿真参考代码如下所示:

`timescale 1ns/1ns
module tb_decoder3_8();
reg in1;
reg in2;
reg in3;
wire out;
initial begin//初始化赋值
in1 <= 1'b0;
in2 <= 1'b0;
in3 <= 1'b0;
end
always #10 in1 <=($random) % 2;//每隔10纳秒随机产生0,1两个数
always #10 in2 <=($random) % 2;
always #10 in3 <=($random) % 2;
initial begin
    $timeformat(-9,0,"ns",6);;//设置显示的时间格式,此处表示的是(打印时间单
                              //位为纳秒,小数点后打印的小数位为 0 位,时间值
                              //后打印的字符串为“ns”,打印的最小数量字符为 6 个)
                              
    //只要监测的变量(时间、in1, in2, sel, out)发生变化,就会打印出相应的信息
    $monitor("@time %t,in1=%b in2=%b in3=%b out=%b",$time,in1,in2,in3,out);
end
decoder3_8 tb_decoder3_8//第一个是被实例化模块的名子,第二个是我们自己定义的在另一个
                         //模块中实例化后的名字。同一个模块可以在另一个模块中或不同的

(                         //另外模块中被多次实例化,第一个名字相同,第二个名字不同
    .in1(in1),
    .in2(in2),
    .in3(in3),
    .out(out)
)
endmodule

代码编写点击下方链接:

用verilog实现3-8译码器功能_自由的luge的博客-CSDN博客


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部