资源预览内容
第1页 / 共2页
第2页 / 共2页
亲,该文档总共2页全部预览完了,如果喜欢就下载吧!
资源描述
关于阻塞复制和非阻塞赋值阻塞赋值和非阻塞赋值的区别阻塞赋值 =阻塞性过程赋值在其后所有语句执行前执行,即在下一语句执行前该赋值语句完成执行。非阻塞赋值 =过程赋值中,对目标的赋值是非阻塞的(因为延时),但可预订在将来某个时间步发生(根据时延;如果是0时延,那么在当前时间步结束)。当非阻塞性过程赋值被执行时,计算右端表达式,右端值被赋予左端目标,并继续执行下一条语句。预定的最早输出将在当前的时间步结束时,这种情况发生在赋值语句中没有时延时。在当前时间步结束或任意输出被调度时,即对左端目标赋值。在同一个always/initial块里不要混用两种赋值语句阻塞式过程赋值与非阻塞式过程赋值(VHDL中使用非阻塞式)c = a & b; 阻塞式过程赋值c = a & b; 非阻塞式过程赋值两种赋值不会对语句本身的赋值有影响,但会影响以后对赋值结果的引用。书中建议组合逻辑使用阻塞式,时序逻辑使用非阻塞式。且语句块中如果只有一条赋值语句,是阻塞还是非阻塞都没有任何不一样。非阻塞式过程赋值的赋值对象是在未来(即当前仿真时刻结束时)被赋值。例 always (negedge clockB) begin rightshift = rightshift & strobe; selectfist = rightshift | xflag; checkstop = slectfist mask; endendmodule左边的红线是rightshift,其未经过触发器,右边的是selectfist经过触发器了.
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号