testbench编写

Posted on 2019-03-24 22:04  hardy.tan  阅读(175)  评论(0编辑  收藏  举报

TestBench 三步走

1、  对被测试设计的顶层接口进行例化

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

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

时钟的产生

// 定义设计周期为20ns,已定义“ `timescale 1ns/1ps ”

方法一:

parameter PERIOD = 20;
initial begin
    clk = 0 ;
    forever
        # (PERIOD/2 ) clk = ~ clk;
end 

方法二:

parameter PERIOD = 20;
 always begin
         # (PERIOD/2 ) clk = 0;
         # (PERIOD/2 ) clk = 1;
end 

复位的产生

方法一:

initial begin
         rst_n = 0;
         #100 ;
         rst_n =1 ;
end

方法二:

initial begin
         reset_task (100);  //复位100ns, 已定义“ `timescale 1ns/1ps ”
         ………
end
task reset_task;
input[15:0] reset_time ;  // 复位时间
begin
         reset = 0 ;
         #reset_time ;
         reset = 1;
end
endtask

 其他激励产生

 

Copyright © 2024 hardy.tan
Powered by .NET 9.0 on Kubernetes