verilog中用modelsim仿真,怎么让forever里面的内容运行多少次后停止
答案:3 悬赏:70 手机版
解决时间 2021-04-05 20:30
- 提问者网友:原来太熟悉了会陌生
- 2021-04-05 11:42
verilog中用modelsim仿真,怎么让forever里面的内容运行多少次后停止
最佳答案
- 五星知识达人网友:雾月
- 2021-04-05 12:46
先写个task或function,然后在initial里面调用100次,最后停止就OK了。追问我想请教一下,怎么在initial里调用100次呢?是用for循环吗?那该怎么写呢?谢!追答给你写个完整的吧:
module tb1;
reg clk;
reg a;
reg [6:0] counter;
reg rst_n;
always #5 clk=~clk;
initial
begin
clk=1'b0;
rst_n=1'b1;
#1
rst_n=1'b0;
#1
rst_n=1'b1;
wait(counter==7'd100)
$finish;
end
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
counter <= 7'b0;
else
begin
counter <= counter + 7'b1;
tsk1;
end
end
task tsk1;
begin
#0 a=1;
#10 a=0;
end
endtask
endmodule
module tb1;
reg clk;
reg a;
reg [6:0] counter;
reg rst_n;
always #5 clk=~clk;
initial
begin
clk=1'b0;
rst_n=1'b1;
#1
rst_n=1'b0;
#1
rst_n=1'b1;
wait(counter==7'd100)
$finish;
end
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
counter <= 7'b0;
else
begin
counter <= counter + 7'b1;
tsk1;
end
end
task tsk1;
begin
#0 a=1;
#10 a=0;
end
endtask
endmodule
全部回答
- 1楼网友:由着我着迷
- 2021-04-05 13:37
另写一个
initial
begin
#1000 $finish
end
initial
begin
#1000 $finish
end
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯