SystemVerilog学习笔记(五):运算符

运算符是代表特定数学或逻辑动作或过程的字符。

Untitled Diagram-Page-2 drawio (16)

序号运算符
1.算术运算符
2.关系运算符
3.相等运算符
4.逻辑运算符
5.按位运算符
6.移位运算符
7.条件运算符
8.约简运算符
9.连接和复制运算符

算术运算符

使用算术运算符对变量执行基本数学函数。

下表显示了 SystemVerilog 中算术运算符的完整列表。

airthmatic_1

关系运算符

运算符描述
a < ba 小于 b
a > ba 大于 b
a <= ba 小于 或等于 b
a >= ba 大于 或等于 b

这些运算符比较操作数并产生 1 位标量布尔值。

  • 0:如果关系为 false
  • 1:如果关系为 true
  • x:如果任何操作数具有未知的 x 位

相等运算符

相等运算符用于比较表达式。如果比较失败,则结果为 0,否则为 1。 等式运算符有两种类型。

运算符描述
a === ba 相等于 b, 包括 x 和 z
a !== ba 不相等于 b, 包括 x 和 z
a == ba 相等于 b, 结果可能是 unknown
a != ba 不相等于 b, 结果可能是 unknown
  • 如果逻辑相等 (==) 或逻辑不等 (!=) 的两个操作数都包含未知 (x) 或高阻抗 (z) 值,则比较结果将为未知 (x)。否则,要么是真,要么是假。

  • 如果大小写相等(===)或大小写不等(!==)的操作数包含未知(x)或高阻(z)值,则将逐位计算结果。

逻辑操 作符

逻辑运算符与按位运算符类似 在逻辑运算符中,这些表达式返回 1(真)或 0(假)。 为了更好地理解,只有三个逻辑运算符,请遵循下面的备忘单

logical11

按位运算符

位运算符对两个操作数执行按位运算。 它们获取一个操作数中的每一位,并与另一操作数中的相应位执行操作。如果一个操作数比另一个操作数短,它将在左侧用零扩展以匹配较长操作数的长度。

OperatorDescription
~negation
&
|inclusive or
^exclusive or
^~ or ~^exclusive nor (equivalence)

移位运算符

有 2 种类型的移位运算符

  • 逻辑移位运算符
  • 算术移位运算符
OperatorDescription
«shift left logical
»shift right logical
«<shift left arithmetic
»>shift right arithmetic

移位运算符实际上需要两个参数。第一个是我们要移动的信号的名称。第二个参数是我们要移动的位数。

当我们使用逻辑移位运算符时,在信号移位所需位数后,所有空白位置都用 0 填充。

条件运算符

要使用条件运算符,我们在?之前写一个逻辑表达式。然后评估该运算符以确定它是 true 还是 false。根据表达式的真假,将输出分配给两个值之一。

条件运算符的一般语法。

output = <condition> ? <true> : <false>

归约运算符

归约运算符是一元的。 它们对单个操作数执行按位运算以产生单位结果。

运算符描述
&and
~&nand
|or
~|nor
^xor
^~ or ~^xnor

连接和复制运算符

运算符描述
{ }连接运算符
{{ }}复制运算符
  • 连接运算符将两个或多个信号组合成一个向量。
  • 连接使用大括号字符 { 和 } 表示, 用逗号分隔其中的表达式。
  • 复制运算符用于将一组位复制 n 次。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值