HDLBits_Verification: Writing Testbenches部分

Tb/clock

代码如下:

module top_module ( );//相当于 module testbench();
    reg clk ; //将顶层模块里的所有变量 在这里定义一下
    dut dut_inst( // 例化顶层模块
        .clk (clk)
    );
    initial begin  //给变量一个初始值
        clk = 1'b0 ;
    end
    always begin  // 变量变化条件#表示延时多长时间
        #5 clk = ~clk ;
    end

endmodule

Tb/tb1

代码如下:

module top_module ( output reg A, output reg B );//
    // generate input patterns here
    initial begin
        A = 1'b0 ;
		B = 1'b0 ;
		#10 A = 1'b1 ;
        #5  B = 1'b1 ;
        #5  A = 1'b0 ;
        #20 B = 1'b0 ;
    end
endmodule

 Tb/and

代码如下:

module top_module(); 
    reg [1:0]in;     //将顶层模块的所有变量定义在这里
    wire out ;
    andgate andgate_inst( //例化顶层模块
        .in (in) ,
        .out (out) 
    );
    //给输入变量赋初始值
    initial begin
        in = 2'b00 ;
       #10 in = 2'b01 ;
       #10 in = 2'b10 ;
       #10 in = 2'b11 ;
    end

endmodule

Tb/tb2

代码如下:

module top_module();
    reg clk ;
    reg in ;
    reg [2:0] s ;
    wire out ;
    
    q7 q7_inst(
        .clk  (clk),
        .in   (in ),
        .s    (s  ),
        .out  (out)
    );
    //给输入变量赋初值
    initial begin
        clk = 1'b0 ;
        in = 1'b0 ;
        s = 3'd2 ;
    end
    initial begin
        #20 in = 1'b1 ;
        #10 in = 1'b0 ;
        #10 in = 1'b1 ;
        #30 in = 1'b0 ;
    end
    initial begin
        #10 s = 3'd6 ;
        #10 s = 3'd2 ;
        #10 s = 3'd7 ;
        #10 s = 3'd0 ;
    end
    always begin
       #5 clk = ~clk; 
    end

endmodule

Tb/tff

代码如下:

module top_module ();
    reg   clk   ;
    reg   reset ;
    reg   t     ;
    wire  q     ;
    
    tff tff_inst(
        .clk  (clk  ),
        .reset(reset),
        .t    (t    ),
        .q    (q    )
    );
    
    initial begin
        clk = 1'b0 ;
        reset = 1'b1 ;
        #10 reset = 1'b0 ;
    end
    always begin
       #5 clk = ~clk ; 
    end
    
	always @(posedge clk) begin
		if (reset) begin
			t <= 'd0;
		end else begin
			t <= 'd1;
		end
	end
    
endmodule

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值