请教一下;非阻塞与阻塞赋值的区别

[复制链接]
2961|1
 楼主| polariszhou 发表于 2009-3-1 09:47 | 显示全部楼层 |阅读模式
久迎21论坛的朋友乐开助人,在下想请教个问题:<br />这些天正在学verilog..看了过程赋值语句.对非阻塞与阻塞赋值的区别不太了解,主要是非阻塞到底是怎么回事,看得不太明白,所以向各位请教..<br /><br />在非阻塞性过程赋值中,对目标的赋值是非阻塞的(因为时延),但可预定在将来某个时间步发生(根据时延;如果是0时延,那么在当前时间步结束)。当非阻塞性过程赋值被执行时,计算右端表达式,右端值被赋于左端目标,并继续执行下一条语句。预定的最早输出将在当前时间步结束时,这种情况发生在赋值语句中没有时延时。在当前时间步结束或任意输出被调度时,即对左端目标赋值.&nbsp;&nbsp;&nbsp;(这是书上的话,没有看明白)<br /><br />麻烦大家,谢谢.
Fourier00 发表于 2009-3-7 11:18 | 显示全部楼层

always @(*) Q=A|B

记住这个就可以了&nbsp;时序逻辑用非阻塞赋值<br />always&nbsp;@(posedge&nbsp;clk&nbsp;or&nbsp;negedge&nbsp;rst_n)<br />Q&nbsp;&lt=&nbsp;D<br />组合逻辑用阻塞&nbsp;就ok<br />always&nbsp;@(*)<br />Q=A|B
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部