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

相关推荐
FPGA技术联盟1 分钟前
如何在跨时钟域分析中处理好复位信号?
fpga开发
国科安芯14 分钟前
基于ASM1042S2S的箭载通信网络抗辐射加固方案研究
服务器·网络·嵌入式硬件·fpga开发·架构·信号处理
智者知已应修善业29 分钟前
【利用proteus设计微型CPU,完成寻址相加数据的过程。】2025-2-26
驱动开发·经验分享·笔记·硬件架构·proteus·硬件工程
IT_陈寒41 分钟前
React useEffect里面写异步,我的状态怎么老丢?
前端·人工智能·后端
程序员爱钓鱼1 小时前
第一个 Rust 程序 Hello World
后端·rust
DataPulse*3 小时前
Hive常用参数调优十二板斧
hive·hadoop·硬件架构
卷福同学8 小时前
不用服务器,不用配环境,我10分钟上线了一个AI Agent
人工智能·后端·算法
GetcharZp10 小时前
只需 10 分钟,轻松实现异地组网!Netmaker 保姆级部署教程来了
后端
前端兰博11 小时前
03-Spring Boot
后端
前端兰博11 小时前
01-Java开发基础语言
后端