在verilog中同时执行不同的begin end语句吗?
以下是代码:
//Sample test values to run simulation (module jkflop_top continues)
initial begin
j=0; k=0; rst=1;
#4
j=1; k=1; rst=0;
#50
j=0; k=1; rst=0;
#20
j=1; k=1; rst=0;
end
//Carry out simulation for 100 units of time
initial begin
#100
$finish;
end
endmodule
What the code does is it provides sample input for a j-k flip flop. As the second begin should be finished after 100 units delay from starting of the program
如果它们是并发的,那么整个程序会运行100次单位?
答案 0 :(得分:1)
不同的初始语句同时运行。这与begin / end无关。
仅限开始/结束组'所有代码都有一个初始值。
这里我们有两个开始/结束语句。它们不同时运行,它们按顺序运行。
for (i=0; i<8; i=i+1)
begin
... // some code
end
for (j=0; j<8; j=j+1)
begin
... // some more code
end
这里我们有两个初始语句,没有开始/结束。它们同时运作。
initial
#50 reset = 1'b0;
initial
#100 clk= 1'b1;