赋值符号|= 和=区别

|=   按位       加

=    按字节 加

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Verilog 中,赋值运算符 "<=" 和关系运算符 "<=" 是不同的,虽然它们的符号相同,但是它们的含义和用法不同。其中 "<=" 用于非阻塞赋值,而 "<=" 用于比较操作符,如小于等于。在 Verilog 中,"<=" 用于 always 块中,表示并行执行的赋值操作,而 "=" 表示顺序执行的赋值操作。这两种赋值操作符的区别在于执行赋值时的顺序不同。 例如,在 always 块中使用非阻塞赋值 "<=",则会在 always 块中赋值语句执行完后,同时执行赋值操作。而使用阻塞赋值 "=" 则表示顺序执行的赋值操作,即先执行一个赋值操作,再执行下一个赋值操作。因此,阻塞赋值会按照代码中的顺序进行赋值,而非阻塞赋值则是并行执行的,不会受到代码顺序的影响。 举个例子:假设有以下代码: ```verilog always@(posedge clk) begin a <= b; b <= c; end ``` 在这个代码中,当时钟上升沿到来时,a 会被赋值为 b 的值,而 b 则被赋值为 c 的值。如果使用阻塞赋值 "=",则会先执行 a 的赋值操作,再执行 b 的赋值操作。而如果使用非阻塞赋值 "<=",则 a 和 b 的赋值操作会同时进行,完全并行。 因此,在使用赋值操作符时需要根据实际需要选择合适的赋值方式,以确保设计的正确性。需要注意的是,非阻塞赋值 "<=" 在时序逻辑电路中使用较多,而阻塞赋值 "=" 在组合逻辑中使用较多。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值