Verilog设计:非阻塞与阻塞赋值语句解析
需积分: 33 56 浏览量
更新于2024-08-14
收藏 1.19MB PPT 举报
"夏宇闻的Verilog数字系统设计教程"
在Verilog语言中,赋值语句有两种主要类型:非阻塞赋值(non-blocking assignment, <=)和阻塞赋值(blocking assignment, =)。这两者在数字系统设计中扮演着重要的角色,尤其是在综合和仿真过程中。
非阻塞赋值(b <= a):
1. 非阻塞赋值在同一个进程或always块内是并行执行的。这意味着在同一时间片内,块内所有非阻塞赋值语句会同时计算新值,但更新变量的值会发生在所有这些赋值之后。
2. 使用非阻塞赋值时,变量b的新值会在所有赋值都完成后才更新,这使得它更适合于描述组合逻辑。在时序逻辑中,非阻塞赋值可以正确地表示寄存器的赋值行为,因为它考虑了时钟边沿触发的效果。
3. 在可综合代码中,非阻塞赋值通常更受欢迎,因为它们能准确反映硬件的行为,避免因顺序执行而导致的错误。
阻塞赋值(b = a):
1. 阻塞赋值会立即更新变量b的值,并且只有当这个赋值完成之后,才会执行下一条语句。这在描述顺序逻辑时可能导致问题,因为它不是按照硬件的实际工作方式进行的。
2. 在一个always块中,阻塞赋值会导致语句的顺序执行,这在某些情况下是必要的,比如在描述控制逻辑或者进行算术运算时。
3. 对于可综合代码,阻塞赋值在时序逻辑中不推荐,因为硬件中并没有与之相对应的电路概念,可能会导致综合结果不符合预期。
在学习Verilog的过程中,理解这两种赋值方式的差异至关重要。夏宇闻的教程强调了理论与实践的结合,通过课堂讲解、实验操作以及个人自学来深入理解数字系统设计。课程涵盖了复杂数字系统与信号处理的联系、数字系统设计方法、Verilog语言特点等内容,旨在帮助学生掌握设计复杂数字逻辑系统所需的技能和工具。通过这样的学习方法,学生可以更好地理解和运用非阻塞和阻塞赋值语句,以实现有效的数字系统模型、仿真、综合、验证和实现。
2021-10-01 上传
2012-09-05 上传
2021-10-02 上传
2022-07-15 上传
2012-10-30 上传
2018-05-28 上传
2021-09-29 上传
小炸毛周黑鸭
- 粉丝: 23
- 资源: 2万+
最新资源
- Aspose资源包:转PDF无水印学习工具
- Go语言控制台输入输出操作教程
- 红外遥控报警器原理及应用详解下载
- 控制卷筒纸侧面位置的先进装置技术解析
- 易语言加解密例程源码详解与实践
- SpringMVC客户管理系统:Hibernate与Bootstrap集成实践
- 深入理解JavaScript Set与WeakSet的使用
- 深入解析接收存储及发送装置的广播技术方法
- zyString模块1.0源码公开-易语言编程利器
- Android记分板UI设计:SimpleScoreboard的简洁与高效
- 量子网格列设置存储组件:开源解决方案
- 全面技术源码合集:CcVita Php Check v1.1
- 中军创易语言抢购软件:付款功能解析
- Python手动实现图像滤波教程
- MATLAB源代码实现基于DFT的量子传输分析
- 开源程序Hukoch.exe:简化食谱管理与导入功能