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

相关推荐
lang201509283 小时前
Spring Boot Actuator深度解析与实战
java·spring boot·后端
lang201509284 小时前
Spring注解配置全解析
java·后端·spring
崎岖Qiu4 小时前
【SpringAI篇01】:5分钟教会你使用SpringAI (1.0.0稳定版)
java·spring boot·后端·spring·ai
qinyuan155 小时前
gorm读取PostgreSQL的json数据类型
后端·go
FPGA-李宇航5 小时前
FPGA中,“按键控制LED灯实验”学习中常见问题、解决思路和措施以及经验总结!!!(新手必看)
学习·fpga开发·按键控制led灯
无心水5 小时前
深入Java线程池:BlockingQueue实现全景解析与实战指南
java·后端·面试
Java水解5 小时前
Rust 性能优化实战:从 unsafe 使用到 SIMD 指令,让服务端响应快 2 倍
后端·rust
Java水解5 小时前
JAVA面试题大全(200+道题目)
java·后端·面试
卷福同学5 小时前
AI浏览器comet拉新,一单20美元(附详细教程)
人工智能·后端