verilog阻塞赋值和非阻塞赋值的区别

(1).非阻塞(Non_Blocking)赋值方式( 如 b <= a; )

块结束后才完成赋值操作。

b的值并不是立刻就改变的。

这是一种比较常用的赋值方法。(特别在编写可综合模块时)

(2).阻塞(Blocking)赋值方式( 如 b = a; )

赋值语句执行完后,块才结束。

b的值在赋值语句执行完后立刻就改变的。

可能会产生意想不到的结果。

1.非阻塞案例

always @ (posedge clk)begin

b_reg <= a_reg;

c_reg <= b_reg;

end

这个always块描述的电路功能如下:

2.阻塞赋值

always @ (posedge clk)begin

b = a;

c = a;

end

相关推荐
赴前尘3 小时前
golang 查看指定版本库所依赖库的版本
开发语言·后端·golang
萧技电创EIIA9 小时前
如何使用嘉立创EDA绘制元件
嵌入式硬件·学习·硬件工程·pcb工艺
Marktowin9 小时前
Mybatis-Plus更新操作时的一个坑
java·后端
赵文宇9 小时前
CNCF Dragonfly 毕业啦!基于P2P的镜像和文件分发系统快速入门,在线体验
后端
程序员爱钓鱼10 小时前
Node.js 编程实战:即时聊天应用 —— WebSocket 实现实时通信
前端·后端·node.js
Libby博仙10 小时前
Spring Boot 条件化注解深度解析
java·spring boot·后端
源代码•宸11 小时前
Golang原理剖析(Map 源码梳理)
经验分享·后端·算法·leetcode·golang·map
小周在成长11 小时前
动态SQL与MyBatis动态SQL最佳实践
后端
瓦尔登湖懒羊羊11 小时前
TCP的自我介绍
后端