当前位置: 首页 > article >正文

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 次。

http://www.kler.cn/a/393821.html

相关文章:

  • ios swift开发--ios远程推送通知配置
  • AI大模型开发架构设计(18)——基于大模型构建企业知识库案例实战
  • 大厂的 404 页面都长啥样?看看你都见过吗~~~
  • ubuntu-desktop-24.04上手指南(更新阿里源、安装ssh、安装chrome、设置固定IP、安装搜狗输入法)
  • mac终端使用pytest执行iOS UI自动化测试方法
  • 字符及字符串(ASCII编码系统)
  • 第二十周机器学习笔记:初步认识PINN
  • Ajax 与 Vue 框架应用点——随笔谈
  • Github 2024-11-09Rust开源项目日报 Top10
  • pgsql和mysql的自增主键差异
  • neo4j desktop基本入门
  • RTPS网卡白名单的一个BUG
  • Mybatis经典面试题汇总
  • Altium Designer使用技巧(五)
  • SQL Server 的结构,现在看也不算差
  • 关于 Oracle Database Express Edition 的功能和安装
  • Golang | Leetcode Golang题解之第559题N叉树的最大深度
  • 什么岗位需要学习 OpenGL ES ?说说 3.X 的新特性
  • 鸿蒙5.0版开发:命令行工具(mediatool工具)
  • 网络基础-超文本协议与内外网划分(超长版)
  • Jmeter中的定时器(一)
  • Chromium 中chrome.system.storage扩展接口定义c++
  • Docker入门系列——Docker-Compose
  • 【OpenGL】OpenGL简介
  • 大数据微服务方案
  • ROS2-python服务service和client节点(实现加法运算)