0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

OpenFPGA 来源:OpenFPGA 2023-03-13 09:19 次阅读

题目说明

编写一个创建模块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是你的代码生成的波形,网站会对比这两个波形,一旦这两者不匹配,仿真结果会变红。

这一题就结束了。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Verilog
    +关注

    关注

    28

    文章

    1343

    浏览量

    109974
  • HDL
    HDL
    +关注

    关注

    8

    文章

    327

    浏览量

    47336
  • 时钟信号
    +关注

    关注

    4

    文章

    445

    浏览量

    28506
  • CLK
    CLK
    +关注

    关注

    0

    文章

    127

    浏览量

    17122

原文标题:HDLBits: 在线学习 SystemVerilog(二十四)-Problem 163-177(TestBench)

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何在PetaLinux流程外创建模块

    PetaLinux 是强大的实用工具,支持设计人员轻松创建 Linux 镜像并在自己的目标平台上运行。PetaLinux 还能创建带有模
    发表于 09-28 11:01 1065次阅读

    阿里云云效功能升级,支持快速创建多个应用的独立测试环境

    环境”菜单。从测试环境入口使用新建测试环境模板。模板就是定义哪些应用在起组成了测试环境。点
    发表于 06-25 15:43

    FPGA固件开发- 测试平台编写

    上面介绍的是整个 FPGA 固件系统的实现方法,为了验证设计的正确性,还需要编写测试平台对整个系统进行仿真。由于实际情况下 FPGA 是
    发表于 11-28 15:22

    数字IC验证之“构成uvm测试平台的主要组件”(4)连载中...

      大家好,我是哥,上章典型的uvm验证平台应该是什么样子的?从本章开始就正式进入uvm知识的学习。先
    发表于 01-22 15:33

    Simulink建模仿真实例快速入门

    Simulink建模仿真实例详解Simulink建模仿真实例详解Simulink建模仿真实例详解Simulink建模仿真实例详解
    发表于 12-28 18:15 0次下载

    Verilog HDL硬件描述语言_建模实例

    本章给出了些用Verilog HDL编写的硬件建模实例。verilog相关教程材料,有兴趣的同学可以下载学习
    发表于 04-25 16:09 25次下载

    PCB设计:网络分析仪测试DUT出现2差不多的阻抗?

    用网络分析仪测试DUT的两通道,发现驻波比差很多,第反应是两通道的阻抗致性是不是没做好,
    的头像 发表于 03-24 09:53 3025次阅读

    VHDL测试平台编写综述

    本文概述了VHDL测试台和其他相关主题。它是为数字设计工程师编写的,他几乎没有VHDL或编程经验,以便更好地理解VHDL的编写
    发表于 01-20 15:17 19次下载
    VHDL<b class='flag-5'>测试</b><b class='flag-5'>平台</b><b class='flag-5'>编写</b>综述

    使用物联网平台创建温度警报系统

    电子发烧友网站提供《使用物联网平台创建温度警报系统.zip》资料免费下载
    发表于 11-22 10:46 0次下载
    使用物联网<b class='flag-5'>平台</b><b class='flag-5'>创建</b><b class='flag-5'>一</b><b class='flag-5'>个</b>温度警报系统

    DUT输入定向或随机的激励

    TestBench即测试平台,是为了检验待测设计(design under test,DUT)而搭建的验证环境。
    的头像 发表于 02-24 17:19 956次阅读
    对<b class='flag-5'>DUT</b>输入定向或随机的激励

    DUT 和 testbench 连接教程

    我们知道,不论是哪级的验证,最终都是通过 pin 连接到 DUT 上向其施加激励,**对于 UVM 验证平台中,使用虚接口来实现 DUT 和验证
    的头像 发表于 03-21 11:20 1461次阅读

    SOLIDWORKS曲面建模实例

    关于SOLIDWORKS软件曲面建模,下面众联亿诚通过实例为大家简单介绍SOLIDWORKS曲面建模流程。
    的头像 发表于 04-06 16:10 2236次阅读
    SOLIDWORKS曲面<b class='flag-5'>建模</b><b class='flag-5'>实例</b>

    芯片验证需要围绕DUT做什么?

    TestBench即测试平台,是为了检验待测设计(design under test,DUT)而搭建的验证环境。
    的头像 发表于 06-12 17:38 2123次阅读
    芯片验证需要围绕<b class='flag-5'>DUT</b>做什么?

    可重用的验证组件中构建测试平台的步骤

    writer ) 进行区分,前者负责测试平台的构建和配置,后者可能对测试平台的底层了解较少,但用它来创建
    的头像 发表于 06-13 09:14 559次阅读
    可重用的验证组件中构建<b class='flag-5'>测试</b><b class='flag-5'>平台</b>的步骤

    鸿蒙ArkUI-X跨平台开发:【 编写一个ArkUI-X应用】

    通过构建简单的ArkUI页面跳转示例,快速了解资源创建引用,路由代码编写和UI布局编写等应用开发流程。
    的头像 发表于 05-21 17:36 636次阅读
    鸿蒙ArkUI-X跨<b class='flag-5'>平台</b>开发:【 <b class='flag-5'>编写</b>第<b class='flag-5'>一个</b>ArkUI-X应用】