SV之testbench概述

    xiaoxiao2023-11-21  156

    What is the purpose of a testbench ?

    testbench允许我们通过仿真来验证设计的功能,它包括了设计以及驱动设计的激励.

    (1)产生不同类型的输入激励;

    (2)利用产生的激励驱动设计;

    (3)设计处理输入产生输出;

    (4)对比设计的输出与期望的输出;

    (5)如果发现功能bug则修改设计以修复bug;

    Components of a testbench 

     

     

    一个简单的testbench由以上几部分组成,下面详细介绍.

    What is DUT ?

     DUT(design under test)是由verilog或VHDL描述的硬件设计.

    // All verification components are placed in this top testbench module module tb_top; // Declare variables that need to be connected to the design instance // These variables are assigned some values that in turn gets transferred to // the design as inputs because they are connected with the ports in the design reg clk; wire en; wire wr; wire data; // Instantiate the design module and connect the variables declared above // with the ports in the design design myDsn ( .clk (clk), .en (en), .wr (wr), . ... .rdata); // Develop rest of the testbench and write stimulus that can be driven to the design endmodule

    What is an interface ?

    接口就是由许多数据端口组成的一捆线.

    What is a driver ? 

    当一个drver需要驱动一些信号值进入到DUT中时,它会调用接口中的task,而不用具体知道这些信号之间的时序关系,信号之间的时序关系由接口提供.

    How does the driver know what to drive ? 

    generator将产生的有效数据发送到driver,两者之间通过接口通信.

    Why is a monitor required? 

    monitor的作用是收集DUT产生的数据,并将它们发送给scoreboard.

    What is the purpose of a scoreboard? 

    scoreboard有一个DUT的参考模型,参考模型会得出激励所对应的期望结果.输入在送入DUT的同时也会送入scoreboard,所以如果DUT存在错误,其产生的结果就不会与期望的结果匹配.通过比较DUT的输出和参考模型的输出,我们就可以检测到DUT中的错误. 

    Why is an environment required ?

    encironment可以使验证更加灵活,这意味着在将来可以加入更多的component.

    What does the test do ? 

    test可以例化environment对象,并以我们的方式配置它.我们或许会有很多的test,但是直接改变environment是不方便的,因此我们需要参数化的environment.

    最新回复(0)