学习测试脚本编写(一)


verilog中,一般:

  input默认为wire型;

  output信号可以是wire型,也可以是reg型(在always或initial中被赋值);

  inout是双向信号,一般将其设为tri型,表示其有多个驱动源;

测试脚本编写步骤:1、例化 2、激励 3、结果

在测试脚本中:

  input—>reg

  output—>wire

  inout—>wire

1、时钟信号产生

方法1:
parameter PERIOD = 20;

initial begin
clk = 0;

forever #(PERIOD/2) clk = ~clk;
end


方法2:

parameter PERIOD = 20;

always begin

#(PERIOD/2) clk = 0;
#(PERIOD/2) clk = 1;
end


2、复位信号产生

方法1:封装成一个task,复位的时候直接调用

initial begin
rst_task(100);//定义复位时间
$stop;

task reset_task;
input [15:0] reset_time;
begin
rst = 0;
#rst_time;
rst = 1;
end

endtask

方法2:
initial begin

rst = 0;
#100;
rst = 1;
#2000;
$stop;

 

举个例子:

 1 `timescale 1 ns/ 1 ns
 2 module tx_module_vlg_tst();
 3 
 4     reg CLK;
 5     reg RSTn;
 6     reg [7:0] TX_Data;
 7     reg TX_En_Sig;
 8     // wires                                               
 9     wire TX_Done_Sig;
10     wire TX_Pin_Out;
11 
12 //--------------------------------------------------------    
13 tx_module i1 ( 
14     .CLK(CLK),
15     .RSTn(RSTn),
16     .TX_Data(TX_Data),
17     .TX_Done_Sig(TX_Done_Sig),
18     .TX_En_Sig(TX_En_Sig),
19     .TX_Pin_Out(TX_Pin_Out)
20 );
21 
22 //--------------------------------------------------------
23 initial                                                
24 begin                                                  
25     RSTn = 0; #1000 RSTn = 1;
26     CLK = 1; forever #25 CLK = ~CLK;
27 end
28 
29 //--------------------------------------------------------
30 reg [3:0] i;
31 
32 always@(posedge CLK or negedge RSTn)
33     if(!RSTn)
34         begin
35             TX_En_Sig <= 1'b0;
36             TX_Data <= 8'd0;
37             i <= 4'd0;
38         end
39     else
40         case(i)
41             
42             0:
43             if(TX_Done_Sig) begin TX_En_Sig <= 1'b0;i <= i +1'b1;end
44             else begin TX_Data <= 8'b0101_0101;TX_En_Sig <= 1'b1;end
45             
46             1:
47             i <= i;
48         endcase
49 
50 //--------------------------------------------------------                                                                                                       
51 endmodule

 

posted @ 2015-12-23 17:33  冷冷北极  阅读(902)  评论(0编辑  收藏  举报