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