Verilog HDL_运算符

本文详细探讨了算术运算符、位运算符、逻辑运算符、关系运算符、相等运算符、逻辑移位和算数位移运算,以及连接复制、规约运算和条件运算的特性和注意事项。重点在于它们在编程中的实际操作和潜在问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运算符汇总

请添加图片描述

算数运算符

算数运算符与C语言没什么区别。

请添加图片描述
与C语言 不同的是,不是任何数都能相加的。比如12+7=19。12是一个4bit的数,7是一个3bit的数,得到的结果是一个4bit的数,然而19至少是一个5bit的数,所以多的部分会被抛弃(低位保留)。

请添加图片描述

位运算符

请添加图片描述

区别逻辑值和一般数值,也同样区分逻辑运算符和位运算符。取逻辑结果的话,只有1bit;取位结果的话,会保持位的数量。

注意区分位与&和位或|。

异或非就是同或。

其中d的话与0或1进行位操作的话,结果可能存在x。

逻辑运算符

请添加图片描述
如果1与上x,不知道真假,所以结果是x。

关系运算符

在这里插入图片描述
主要区别是x参与的关系运算符。结果不确定的话就是x。

关注最后一个案例,0已经是最小的了,但是仿真器依旧会输出x,这是特殊对待的。

区分2-5和a-b,寄存器变量对负数的操作是取补码,最后display会是一个正数(当作无符号数处理),但直接用数字输出的话,就是一个普通的负数。

相等运算符

请添加图片描述
全等与非全等把x和z单独对待,看作一个数值。

关注d,如果x前面没有数的话,会是xx10。

逻辑移位运算符

请添加图片描述
与C语言类似,不过有承载位数的区别。是一个线性移位,不是环形移位。就是说,多出来的空位用0填充。

第一行第三列,1缺省显示的话是一个32位十进制。

算数位移运算符

在这里插入图片描述

连接与复制操作

请添加图片描述
本质上将各位拆散连接在一块。

除了连接,还可以用于复制,通过两个花括号实现。

注意:要复制的个数是一个常数,在编译的时候就实现了。

这里c是一个从5到0由高位到低位的数,所以101001的5对应1,4对应0,以此类推。
如果reg[0:5]c,那么0对应1,以此类推。
这里可以通过c[n:m]来进行取位操作。

规约/缩减运算符

请添加图片描述
区别于位运算符,这是一个单目运算符,最后肯定会缩减为1bit的数。而位运算符是一个双目运算符,结果也会保持位数不变。

条件运算符

请添加图片描述
与C语言大致一样,但如果第一个操作数是x,那么结果是不定的。

如果能取z的操作数的位置只能是IO口。第一个操作数是x或z的情况不多。

注意事项

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

右边是我女神

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

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

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

打赏作者

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

抵扣说明:

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

余额充值