initial begin
forever begin
aa_inst(vdd_en,pad_en);
bb_inst(vdd_en,pad_en);
end
end
................
task aa_inst;
begin
vdd_en = 1'b0;
pad_en = 1'b0;
#1000;
vdd_en = 1'b1;
pad_en = 1'b1;
#2000;
vdd_en = 1'b0;
pad_en = 1'b0;
#1000;
end
endtask
task bb_inst;
begin
vdd_en = 1'b0;
pad_en = 1'b0;
#1000;
vdd_en = 1'b1;
pad_en = 1'b1;
#2000;
vdd_en = 1'b0;
pad_en = 1'b0;
#1000;
end
endtask
在被测试代码中有这样的2个计数模块:
..........
always@(posedge pad_en) begin
num <= num + 1'b1;
end
always@(posedge vdd_en) begin
num1 <= num1 + 1'b1;
end
...................