Testbench编写步骤

1、定义仿真时间单位,例如:
`timescale    10ps/1ps

 

2、定义测试顶层模块,例如:
module    mod_vlg_tst();
endmodule

 

3、例化待验证的模块,例如:
MuxTwo    mux_two(.a(a),.b(b),.sel(se),.out(out));

 

4、设置时钟,有以下三种方式:
initial 
   clk = 0
always
   #50 clk = ~clk;

initial begin
   clk = 0;
   forever #50 clk = ~clk;
   end

always begin
   #50 clk = 0;
   #50 clk = 1;
end

 

5、为输入信号设置激励,例如: 
always @(posedge clk)
 begin
 #1 a = {$random}%2;
 #2 b = {$random}%2;
 end

 

6、在initial中设置信号初始值和仿真时间,例如:
initial
begin
 a = 0;
 b = 0;
 sl = 0;
 clk = 0;
 #10000 $stop; //设置仿真结束时间
 $display("Running testbench");
 end      

 

7,添加显示语句,监测寄存器的变化,例如:
initial    begin
    $display("a = %d ",a);
    $write("b");
    $strobe("");
    $monitor($time,,"",);
    end

 

posted @ 2014-11-28 15:13  huangqiwei  阅读(2231)  评论(0编辑  收藏  举报