顺便说一下,verilog中,always块是并行执行的(这也是verilog和其它高级语言的区别):<br>
always @(posedge clk)<br>
if(reset)<br>
y1 = 0;<br>
else<br>
y1 = y2;<br>
和<br>
always @(posedge clk)<br>
if(reset)<br>
y2 = 1;<br>
else<br>
y2 = y1;<br>
象上面这两个always块在同一个module里的话,就会出现 race condition ,因为两个always 块的执行顺序是未知的,若第一个always块先执行,那么 y1 和y2都等于1,若第二个always块先执行的话,那么y1和 y2就等于0;<br>
这是我的理解,请大家指教!! |