Verilog赋值语句

在Verilog HDL语言中,信号有两种赋值方式:

第一种是非阻塞赋值方式,Non_Blocking,a<=b

非阻塞赋值符“<=”与小于等于符看起来是一样的,但是其意义是完全不同的,小于等于符是关系运算符,用来比较大小,如b<=a,而非阻塞赋值符是用于赋值操作。

在语句块中,上面语句所赋的变量值不能立即就为下面的语句所用。

块结束后才能完成这次赋值操作,而所赋的变量值是上一次赋值得到的。

在编写可综合的时序模块时,这是最常用的赋值方法。

第二种是阻塞赋值方式,blocking,a=b

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

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

在时序逻辑中使用时,可能会产生意想不到结果。

非阻塞赋值方式和阻塞赋值方式的区别常给设计人员带来问题,主要是对“always”块内的reg型信号的赋值方式不易把握。

截止到目前为止,“always”模块内的reg型信号都是采用下面的赋值方式:a<=b。

这种赋值方式并不是马上执行的,“always”块内的下一条语句执行后,b并不等于a,而是保持原来的值,“always”块结束后,才进行赋值。

对于阻塞赋值方式,b=a,这种赋值方式是马上执行的,也就是说执行下一条语句时,b已等于a。

尽管这种方式看起来很直观,但是可能引起麻烦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shining0596

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值