请教一下;非阻塞与阻塞赋值的区别
久迎21论坛的朋友乐开助人,在下想请教个问题:<br />这些天正在学verilog..看了过程赋值语句.对非阻塞与阻塞赋值的区别不太了解,主要是非阻塞到底是怎么回事,看得不太明白,所以向各位请教..<br /><br />在非阻塞性过程赋值中,对目标的赋值是非阻塞的(因为时延),但可预定在将来某个时间步发生(根据时延;如果是0时延,那么在当前时间步结束)。当非阻塞性过程赋值被执行时,计算右端表达式,右端值被赋于左端目标,并继续执行下一条语句。预定的最早输出将在当前时间步结束时,这种情况发生在赋值语句中没有时延时。在当前时间步结束或任意输出被调度时,即对左端目标赋值. (这是书上的话,没有看明白)<br /><br />麻烦大家,谢谢.always @(*) Q=A|B
记住这个就可以了 时序逻辑用非阻塞赋值<br />always @(posedge clk or negedge rst_n)<br />Q <= D<br />组合逻辑用阻塞 就ok<br />always @(*)<br />Q=A|B
页:
[1]