网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

编写一个创建模块dut实例的测试平台

时间:2023-03-13 09:19

人气:

作者:admin

标签: Verilog  时钟信号  CLK  HDL 

导读:编写一个创建模块dut实例(具有任何实例名称)的测试平台,并创建一个时钟信号来驱动模块的clk输入。时钟周期为 10 ps。时钟应初始化为零,其第一个转换为 0 到 1。...

题目说明

编写一个创建模块dut实例(具有任何实例名称)的测试平台,并创建一个时钟信号来驱动模块的clk输入。时钟周期为 10 ps。时钟应初始化为零,其第一个转换为 0 到 1。

93d17892-c01c-11ed-bfe3-dac502259ad0.png

模块端口声明

moduletop_module();

题目解析

生成clock有很多种方式,常见的就是forever和always。

timeunit1ps;
timeprecision1ps;
moduletop_module();
logicclk;

dutu1_dut(
.clk(clk)
);

initialbegin
clk<= 1'b0 ;
    end

    
    always #5 clk <= ~clk ;

 
endmodule
93e47c44-c01c-11ed-bfe3-dac502259ad0.png

点击Submit,等待一会就能看到下图结果:

93fee55c-c01c-11ed-bfe3-dac502259ad0.png

注意图中的Ref是参考波形,Yours是你的代码生成的波形,网站会对比这两个波形,一旦这两者不匹配,仿真结果会变红。

这一题就结束了。

Problem 174-tb1

题目说明

创建一个 Verilog 测试台,它将为输出 A 和 B 生成以下波形

9422e498-c01c-11ed-bfe3-dac502259ad0.png

模块端口声明

moduletop_module(outputregA,outputregB);

题目解析

initial+# n即可。

timeunit1ps;
timeprecision1ps;
moduletop_module(outputlogicA,
outputlogicB);//


//generateinputpatternshere
initialbegin
A<=1'b0 ;
        B <=1'b0 ;
        #10 ;
        A <= 1'b1 ;
        B <= 1'b0 ;
        #5 ;
        A <= 1'b1 ;
        B <= 1'b1 ;
        #5 ;
        A <= 1'b0 ;
        B <= 1'b1 ;
        #20 ;
        A <= 1'b0 ;
        B <= 1'b0 ;
    end
endmodule


9446c25a-c01c-11ed-bfe3-dac502259ad0.png

点击Submit,等待一会就能看到下图结果:

9465b16a-c01c-11ed-bfe3-dac502259ad0.png

注意图中的Ref是参考波形,Yours是你的代码生成的波形,网站会对比这两个波形,一旦这两者不匹配,仿真结果会变红。

这一题就结束了。

Problem 175-and

题目说明

给给定的与门写测试文件,波形参考下图。

949934ea-c01c-11ed-bfe3-dac502259ad0.png

模块端口声明

moduletop_module();

题目解析

和上一题类似。

timeunit1ps;
timeprecision1ps;

moduletop_module();
logic[1:0]in;
wirelogicout;

andgateu_andgate(
.in(in),
.out(out)
);

initialbegin
in<= 2'b00 ;
        #10 ;
        in <= 2'b01 ;
        #10 ;
        in <= 2'b10 ;
        #10 ;
        in <= 2'b11 ;
    end  
        
endmodule

94aa31a0-c01c-11ed-bfe3-dac502259ad0.png

点击Submit,等待一会就能看到下图结果:

94bfffee-c01c-11ed-bfe3-dac502259ad0.png

注意图中的Ref是参考波形,Yours是你的代码生成的波形,网站会对比这两个波形,一旦这两者不匹配,仿真结果会变红。

这一题就结束了。

Problem 176-tb2

题目说明

给定一个q7电路,按照下图编写testbench:

94e3758c-c01c-11ed-bfe3-dac502259ad0.png

模块端口声明

moduletop_module();

题目解析

timeunit1ps;
timeprecision1ps;

moduletop_module();
logicclk;
logicin;
logic[2:0]s;
wirelogicout;

q7u1_q7(
.clk(clk),
.in(in),
.s(s),
.out(out)
);

initialbegin
clk<= 1'b0 ;
        forever
        #5 clk <= ~clk ;
    end
    
    initial begin
        in <= 1'b0 ;
        s  <= 3'd2 ;
        #10 ;
        in <= 1'b0 ;
        s  <= 3'd6 ;
        #10 ;
        in <= 1'b1 ;
        s  <= 3'd2 ;
        #10 ;
        in <= 1'b0 ;
        s  <= 3'd7 ;
        #10 ;
        in <= 1'b1 ;
        s  <= 3'd0 ;
        #30 ;
        in <= 1'b0 ;
        s  <= 3'd0 ;
    end
        
endmodule
950701c8-c01c-11ed-bfe3-dac502259ad0.png

点击Submit,等待一会就能看到下图结果:

952a5cfe-c01c-11ed-bfe3-dac502259ad0.png

注意图中的Ref是参考波形,Yours是你的代码生成的波形,网站会对比这两个波形,一旦这两者不匹配,仿真结果会变红。

这一题就结束了。

Problem 177-tff

题目说明

给题目中给定的tff编写测试文件。

模块端口声明

moduletop_module();

题目解析

timeunit1ps;
timeprecision1ps;
moduletop_module();
logicclk;
logicreset;
logict;
wirelogicq;

tffu_tff(
.clk(clk),
.reset(reset),
.t(t),
.q(q)
);

initialbegin
clk<= 1'b0 ;
        forever
        #5
        clk <= ~clk ;
    end
    
    initial begin
        reset <= 1'b0 ;
        t <= 1'b0 ;
        #3;
        reset <= 1'b1 ;
        t <= 1'b1 ;
        #10;
        reset <= 1'b0 ;
        t <= 1'b1 ;

    end

 
endmodule
95681742-c01c-11ed-bfe3-dac502259ad0.png

点击Submit,等待一会就能看到下图结果:

95901382-c01c-11ed-bfe3-dac502259ad0.png

注意图中的Ref是参考波形,Yours是你的代码生成的波形,网站会对比这两个波形,一旦这两者不匹配,仿真结果会变红。

这一题就结束了。





审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信