verilog if后必须要有else吗_【逻辑】verilog中阻塞赋值和非阻塞赋值的区别

本文详细介绍了Verilog中阻塞赋值和非阻塞赋值的区别。阻塞赋值使用`=`,在进程内顺序执行,更新实时;非阻塞赋值使用`<=`,计算RHS后在赋值时刻更新LHS,允许并行执行。理解两者执行时间的差异对于避免模块中的冒险和竞争现象至关重要。
摘要由CSDN通过智能技术生成

点击蓝字关注我

1、阻塞赋值对应的电路往往与触发沿没有关系,只与输入电平的变化有关系。阻塞赋值符号:=

2非阻塞赋值对应的电路结构往往与触发沿有关系,只有在触发沿时才有可能发生赋值的情况。非阻塞赋值符号:<=

1、阻塞赋值操作符用等号(即 = )表示。“阻塞”是指在进程语句(initial和always)中,当前的赋值语句阻断了其后的语句,也就是说后面的语句必须等到当前的赋值语句执行完毕才能执行。而且阻塞赋值可以看成是一步完成的,即:计算等号右边的值并同时赋给左边变量。例如:

b122cc85ec8d5968cf283cc30d4c88cd.png

当执行“x=next_x;”时,x会立即的到next_x的值。而下一句“y=x;”必须等到“x=next_x;”执行完毕才能被执行。由于这两条语句都没有延迟(相当于导线),导致他们的等价语句为“y=next_x;”。

赋值是实时的,计算完右面的马上赋值给左边的,然后再执行下一句,操作时串行的,且在一个alway内完成。

2、非阻塞赋值操作符用小于等于号 (即 <= )表示。“非阻塞”是指在进程语句(initial和always)中,当前的赋值语句不会阻断其后的语句。非阻塞语句可以认为是分为两个步骤进行的:

①计算等号右边的表达式的值,(我的理解是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值