总是阻止不会连续触发
always@(posedge clk) begin
for (int i=1;i<=32;i=i+1) begin
clk_a=i;
#0.3215
end
for (int j=31;j>=0;j=j-1) begin
clk_a=j;
#0.3215
end
clk_a=0;
end
在第5个clk中,第7个和第9个时钟始终不会触发|| y块,并且这种行为是通过模拟随机发生的。
答案 0 :(得分:1)
我认为您的时间精度足够小,因此0.3215
不会四舍五入到0.322
。另外,我假设您在两个for
循环中有错别字。
第一个循环:i<=32
应该为i<32
第二个循环:j=j+1
应该是j--
。
唯一可能的解释是,您的竞争条件是第二个循环的末尾和下一个@(posedge clk)
。您应该尝试:
initial @(posedge clk)
forever begin
for (int i=0;i<32;i++) begin
clk_a=i;
#0.3215
end
for (int j=31;j>=0;j--) begin
clk_a=j;
#0.3215
end
clk_a=0;
end