本文依据网络资料及工作经验整理而成,如有错误请留言。
文章为个人辛苦整理,付费内容,禁止私自转载。
文章专栏:《黑猫的FPGA知识合集》
1 赋值语句
注意:
组合逻辑用阻塞赋值。
时序逻辑用非阻塞赋值。
在同一个always块中不能既用阻塞赋值,又用非阻塞赋值。
不允许在多个always块中对同一个变量进行赋值。
非阻塞赋值只能赋值给reg类型变量。
1.1 非租塞
非阻塞(Non_Blocking)赋值方式( 如 b <= a; )
- 块结束后才完成赋值操作。
- b的值并不是立刻就改变的。
- 这是一种比较常用的赋值方法。(特别在编写可综合模块时)
1.2 阻塞
阻塞(Blocking)赋值方式( 如 b = a; )
- 赋值语句执行完后,块才结束。
- b的值在赋值语句执行完后立刻就改变的。
- 可能会产生意想不到的结果。
本文详细介绍了Verilog中的语句块,包括赋值语句(非阻塞与阻塞)、begin-end/fork-join块、循环语句(forever、repeat、while、for)、条件语句(if-else、case)以及延时控制语句的用法。重点讨论了非阻塞赋值在组合逻辑和时序逻辑中的应用,以及阻塞与非阻塞赋值的区别。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



