Testbench新接触(学习笔记)

以前对工程进行的仿真都是用波形产生激励···(最多一次设置16位的输入·想起来好傻啊)

听说过Testbench,对于我来说还有一层神秘的面纱,今天终于看到关于这个的视频教程,就好好地学习一下·让以后的仿真能够轻松一些。

首先先摘抄一下视频中的三个步骤(深入浅出玩转FPGA-视频8):

1、对被测试设计的顶层接口进行例化(是创建对象的意思?)。

2、给被测试设计的输入接口添加激励。

3、判断被测试设计的输出响应是否满足设计要求。

最简单的testbench:

时钟产生

复位产生

其他激励产生

'timescale 1ns/1ps  //ns为时间的单位,ps为时间的精度。

parameter PERIOD = 20;
initial begin

  clk = 0;  //初始化时钟

  forever

    #(PERIOD/2) clk = ~clk;  //时钟频率

(或者  always begin

        #(PERIOD/2) clk = 0;

        #(PERIOD/2) clk = 1;  //效果相同 )

end



复位:    

rst_n = 0;

#100;  //100ns延时

rst_n = 1;  //撤销复位

以任务的形式:

task reset_task;
input[15:0] reset_time; //复位时间
begin
  reset = 0;
  #reset_time;
  reset = 1;
end
endtask

调用

initial 
begin
reset_task(100); //复位100ns,时间可更改
。。。。
end


推荐书籍:

《设计与验证Verilog HDL》

《Writing Testbench》

原文地址:https://www.cnblogs.com/cheetah/p/2260739.html