阻塞赋值和非阻塞赋值

本文介绍了阻塞赋值和非阻塞赋值在硬件设计中的基本概念和区别,强调了误用可能导致的逻辑错误和仿真综合不一致性。编码建议包括:对组合逻辑使用阻塞赋值,对时序逻辑使用非阻塞赋值,避免在同一always块中混合使用两种赋值方式,以及在建模锁存器时使用非阻塞赋值。
摘要由CSDN通过智能技术生成

阻塞赋值和非阻塞赋值

阻塞和非阻塞过程赋值的误用不仅在仿真时会产生逻辑错误,而且会造成仿真和综合的不一致,更为严重的这种错误往往不容易发现。为解决这一问题,必须深刻理解阻塞和非阻塞过程赋值的功能和执行过程中的本质区别。

在硬件中过程赋值语句表示的是:用赋值语句RHS(Right Hand Side,表示右边表达式和变量)表达式所推导出的逻辑来驱动该赋值语句LHS(Left Hand Side,表示左边表达式和变量)的变量,且只能出现在always语句和initial语句。

阻塞赋值有符号“=”来完成,“阻塞赋值”由其赋值操作行为而得名:“阻塞”即是说在当前的赋值行为完成前阻塞其他类型的赋值行为。

非阻塞赋值由符号“<=”来完成,“非阻塞赋值“在一个时间步的开始估计RHS表达式的值,并在这个时间步结束时用等式右边的值取代LHS。在估算RHS表达式和更新LHS表达式的中间时间段,其他的对LHS的非阻塞赋值可以被执行。即”非阻塞赋值“从估计RHS开始并不阻碍执行其他的赋值任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值