深入理解Verilog HDL的阻塞和非阻塞赋值,提升RTL编码能力(一)
Verilog HDL作为芯片设计领域的一门语言,在世界范围内的使用者众多。特别是在我们国内,除了一些军工企业使用VHDL之外,包括企业、高校里面都大多使用Verilog HDL作为工作和教学的语言。相信很多电子相关专业的同学和从业者,对这门语言的第一感觉,都觉得很难,而阻塞赋值和非阻塞赋值有时Verilog HDL这门语言里面最难明白的结构之一。
不管是刚毕业的新同事,还是一些比较有经验的老从业者,有很多都不太清楚在仿真器里面“非阻塞赋值”和“阻塞赋值”究竟是怎么设定执行的。那么今天我就想分享一些我的理解(先不考虑延时的影响),来和大家进行讨论,因为自己水平有限,如果理解有误,欢迎大家指正。
阻塞赋值
阻塞赋值使用“=”作为赋值符号,表示阻止下一句的执行。在具体使用的时候,有两种常用的语法结构:
assign语句中使用。这条大家应该会比较清楚,因为如果使用不正确,编译都没办法通过,在这里就不再讨论。在always块中使用阻塞赋值,来产生组合逻辑。这块的问题会比较多,因为如果使用不正确,在仿真阶段可能没有问题,但是也许会导致综合得到的电路和RTL代码的仿真结果不匹配,这就是很大的风险。非阻塞赋值
推荐阅读
- FMVP|Scout的FMVP争议过大,根本原因在于观众不理解什么是FMVP!
- |“Chovy打法不适合职业!”Doinb点评S赛中单,Cryin游戏理解很好!
- 炸弹人|DK惊险拿下胜利,扣马第五局关键BP带起节奏,史一教游戏理解真强
- dota2|Dota2-单车老师疯狂吐槽7.30e:设计师对这个游戏的理解有问题!
- 坦克英雄|LOL又一坦克英雄被玩坏!既能当刺客又能当战士,绝活哥理解领先版本
- 典韦|王者荣耀:典韦出末世,这是高端理解呢,还是说确实很香
- 手机游戏|LOL手游出工会了,怎么创建以及有何意义,让我们深入了解一下
- 我的世界|我的世界:为什么“梗图”很好玩,玩家:每看一次都有不同的理解
- 剑网3|这也能喷?我不理解,剑网三凌雪大幅增强后,玩家竟直呼不合理
- 地下城与勇士|新手要完全理解DNF,特别是还有这么多职业特别要时间