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

SystemVerilog学习笔记(一):数据类型

在systemverilog中,主要包含以下数据类型: 

  • 4值类型
  • 2值类型
  • 数组
  • 字符串
  • 结构体和联合体
  • 枚举
  • 自定义类型

  1. 无符号数:无符号数的符号不使用任何标志,即无符号数只能存储正数。无符号二进制数的范围从 0 到 ((2^n) - 1),n 表示位数。
  2. 有符号数:通过有符号数中的符号标志来区分正值和负值。有符号位的零有两种可能表示形式(正 (0) 和负 (1))。有符号二进制数的范围从 -2^(n-1) 到 2^(n-1)-1,n表示位数。有符号二进制数在计算机系统中,一般用补码来表示。

4 值数据类型

序号数据类型2值/4值有符号/无符号
1.reg4>=1unsigned
2.wire4>=1unsigned
3.logic4>=1unsigned
4.integer432signed
5.time464unsigned
6.real464unsigned
状态描述
0状态 0
1状态 1
x or X未知状态 (与 reg 有关)
z or Z高阻态 (与 wire 有关)
  1.  reg 变量用于对锁存器、触发器和存储器等存储元件进行建模,它存储一个值并用于程序赋值。 reg 的默认值为 x
  2. wire 是一种 Verilog 数据类型,用于连接元件以及连接由单个门或连续分配驱动的网络。导线的默认值为 z
  3. Logic 类型是 4 值类型,可以取值 0、1、x 和 z。Logic 类型,可以用来代替 wire 和 reg,因为 wire 数据类型没有多个 driver。默认情况下 Logic 类型是无符号的,其初始值为 x。z。Logic 类型可以在过程块和连续赋值语句中驱动。
  4. 整数是 4 态数据类型,整数可以是 0,1,x 和 z,表示 32 位有符号数。整数的默认值为 x。整数可以保存范围从 -2^31 到 (2^31)-1 的值。
  5. time 是用于模拟时间测量的特殊数据类型。它是 4 值类型,表示 64 位无符号整数,可以与 $time 系统函数结合使用来保存当前的仿真时间。
  6. real 是以 64 位实数实现的实数数据类型。实数可以用十进制记数法 (4.43) 或科学记数法 (42e8) 指定。 real 数据类型的默认值为 0。

2 值数据类型

序号数据类型2值/4值有符号/无符号
1.bit2>=1unsigned
2.byte28signed
3.shortint216signed
4.int232signed
5.longint264signed
  1.  bit 可以是 0 或 1,代表单个位。bit 数据类型的默认值为 0。
  2. byte 可以是 0 或 1,表示 8 位有符号整数。byte 的默认值为0。
  3. shortint 可以是 0 或 1,表示 16 位有符号整数。 shortint 的默认值为 0。
  4. int 可以是 0 或 1,表示 32 位有符号整数。 int 的默认值是 0。
  5. longint 可以是 0 或 1,表示 64 位有符号整数。 longint 的默认值为 0。

数据类型转换

转换意味着将一种数据类型转换为另一种数据类型。 转换有两种类型:

  • 静态转换
  • 动态转换

静态转换 : 转换发生在编译时,不会出现任何运行时错误。静态转换仅适用于固定数据类型。它不适用于面向对象的编程概念。

语法 :data_type'(variable or expression or value);

动态转换 : 转换发生在运行时。如果转换无效,则会报告错误。动态转换用于将分配的值转换为通常无效的变量。 $cast 是系统方法。 $cast 可以是函数或任务。

语法 :$cast(destination_variable, source_expression_or_variable);

 枚举 enum

 枚举数据类型定义一组命名值。

  • 除非指定为其他类型,否则枚举类型存储为“int”类型。
  • 此类型会自动为列表中的每个名称赋予唯一值。
  • 值默认为“int”类型,从 0 开始,然后递增 1。
  • 如果没有为名称指定值,它将获取列表中前一个名称的值并加 1。

语法 :

enum enum_base_type(optional) {
<enum_name_declaration> = constant_expr(optional)...
}<enum_type_identifier>;

 

枚举函数:

序号函数描述
1first()返回枚举的第一个成员的值
2last()返回枚举最后一个成员的值
3next()返回枚举的下一个成员的值
4prev()返回枚举中前一个成员的值
5num()返回给定枚举中的元素数量
6name()返回给定枚举值的字符串表示形式

typedef 枚举数据类型

在 typedef 中可以给出类型名称,以便可以在许多地方使用相同的类型。

语法 :

typedef enum enum_base_type(optional) {
<enum_name_declaration> = constant_expr(optional)...
} <enum_type_identifier>;

String

 字符串类型是可变长度的有序字符集合。字符串的长度是集合中字符的数量。

  • 字符串的内存空间是动态分配的。
  • 字符串变量的索引应从 0 到 N–1(其中 N 是字符串的长度)进行编号,以便索引 0 是字符串的第一个(最左边)字符,索引 N–1 是最后一个(最右边)字符字符串的。
  • 未初始化或空字符串用特殊值 "" 表示。空字符串的长度为 0。
操作操作符描述
等于str1==str2如果两个字符串相等则返回 1,否则返回 0
不等str1!=str2如果两个字符串不相等则返回 1,如果相等则返回 0
比较str1 < str2, str1 <= str2, str1 > str2, str1 >= str2如果相应条件为 true,则返回 1;如果为 false,则返回 0
级联{str1, str2, …, strN}所有字符串将连接成一个结果字符串
复制{N{str}}将字符串复制 N 次
索引str[index]返回一个字节,即给定索引处的 ASCII 代码。如果给定索引超出范围,则返回 0

 

函数描述
str.len()返回字符串的长度。
str.putc()修改字符串的一个字符
str.getc()返回一个字符。
str.tolower()返回字符串的小写字母。
str.toupper()返回字符串的大写字母。
str.compare(s)以 ascii 值形式返回字符串比较结果。
str.icompare(s)以 ascii 值的形式返回不区分大小写的字符串比较结果。
str.substr(i,j)返回主字符串的子字符串。

相关文章:

SystemVerilog学习笔记(一):数据类型

在systemverilog中&#xff0c;主要包含以下数据类型&#xff1a; 4值类型2值类型数组字符串结构体和联合体枚举自定义类型 无符号数&#xff1a;无符号数的符号不使用任何标志&#xff0c;即无符号数只能存储正数。无符号二进制数的范围从 0 到 ((2^n) - 1)&#xff0c;n 表…...

Linux软件包管理与Vim编辑器使用指南

目录 一、Linux软件包管理器yum 1.什么是软件包&#xff1f; 2.什么是软件包管理器&#xff1f; 3.查看软件包 4.安装软件 ​编辑 5.卸载软件 Linux开发工具&#xff1a; 二、Linux编辑器---vim 1.vim的基本概念 (1) 正常/普通模式&#xff08;Normal mode&#xff0…...

每日一练 | 包过滤防火墙的工作原理

01 真题题目 包过滤防火墙对哪一层的数据报文进行检查&#xff1f; A. 应用层 B. 物理层 C. 网络层 D. 链路层 02 真题答案 C 03 答案解析 包过滤防火墙是一种基本的安全设备&#xff0c;它通过检查进出网络的数据包来决定是否允许该数据包通过。 这种类型的防火墙主要关注…...

AR眼镜方案_AR智能眼镜阵列/衍射光波导显示方案

在当今AR智能眼镜的发展中&#xff0c;显示和光学组件成为了技术攻坚的主要领域。由于这些组件的高制造难度和成本&#xff0c;其光学显示模块在整个设备的成本中约占40%。 采用光波导技术的AR眼镜显示方案&#xff0c;核心结构通常由光机、波导和耦合器组成。光机内的微型显示…...

SpringBoot(十九)创建多模块Springboot项目(完整版)

之前我有记录过一次SpringBoot多模块项目的搭建,但是那一次只是做了一个小小的测试。只是把各模块联通之后就结束了。 最近要增加业务开发,要将目前的单模块项目改成多模块项目,我就参照了一下我上次搭建的流程,发现总是有报错。上次搭建的比较顺利,很多细枝末节也没有仔细…...

Navicat 17 功能简介 | 单元格编辑器

Navicat 17 功能简介 | 单元格编辑器 本期&#xff0c;我们一起了解 Navicat 17 出色的数据操作功能的单元格编辑器。单元格编辑器支持文本、十六进制、图像和网页四种格式的数据编辑&#xff0c;位于底部的编辑器窗格&#xff0c;为你编辑更大容量的数据信息提供足够的显示和操…...

MySQL【四】

插入数据 向数据表中插入一行数据 INSERT|REPLACE INTO 表名[(字段列表)] VALUES(值列表); ########## 在s表中插入一条记录&#xff1a;学号为s011,姓名为李思&#xff0c;性别为默认值&#xff0c;计算机专业 ########## insert into s(sno,sname,dept)values(s011,李思,计…...

简单叙述 Spring Boot 启动过程

文章目录 1. 准备阶段&#xff1a;应用启动的入口2. 创建 SpringApplication 对象&#xff1a;开始启动工作3. 配置环境&#xff08;Environment&#xff09;&#xff1a;识别开发环境与生产环境4. 启动监听器和初始化器&#xff1a;感知启动的关键事件5. 创建 ApplicationCont…...

微信小程序自定义tabbar;禁用某个tab;修改某个tab的样式

微信小程序自定义tabbar&#xff1b;禁用某个tab&#xff1b;修改某个tab的样式 原本使用本身的tabBar就已经很舒服了&#xff0c;很合适了的&#xff0c;但是总有一些脑洞大开的产品和客户&#xff0c;给你搞点多样式&#xff0c;没办法牛马就得去做咯&#xff0c;现在就给大…...

力扣113:路径总和II

给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum 22 输出&a…...

JavaScript字符串常用方法

在JavaScript中&#xff0c;字符串是用来表示文本数据的基本数据类型。字符串可以用单引号()、双引号(")、或反引号()包裹。JavaScript中的字符串是不可变的&#xff0c;也就是说&#xff0c;字符串的值一旦创建就无法更改&#xff0c;但可以创建新字符串来替换原有字符串…...

xtu oj 加一

样例输入# 2 4 1 2 3 4 4 3 2 4 1样例输出# 3 5 解题思路&#xff1a;最小操作次数一定是把所有数变成数组中最大值max。 1、找最大值&#xff0c;一开始我把max初始值设为0&#xff0c;如果a[i]>max,maxa[i],WA了。又看了一遍题目&#xff0c;发现所有整数的绝对值小于…...

QTcpSocket 服务端和客户端

前提&#xff1a; pro文件中添加 QT network 服务端主要采用信号槽机制&#xff0c;代码如如下 核心代码头文件#ifndef TCPSERVER_H #define TCPSERVER_H#include <QObject>#include <QTcpServer> #include <QTcpSocket> #include <QDebug> #inclu…...

Isaac Sim+SKRL机器人并行强化学习

目录 Isaac Sim介绍 OmniIssacGymEnvs安装 SKRL安装与测试 基于UR5的机械臂Reach强化学习测评 机器人控制 OMNI GYM环境编写 SKRL运行文件 训练结果与速度对比 结果分析 运行体验与建议 Isaac Sim介绍 Isaac Sim是英伟达出的一款机器人仿真平台&#xff0c;适用于做机…...

项目中用户数据获取遇到bug

项目跟练的时候 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading ‘code’) at Proxy.userInfo (user.ts:57:17) 因此我想要用result接受信息的时候会出错&#xff0c;报错显示为result.code没有该值 导致我无法获取到相应的数据 解决如下 给…...

SpringSecurity+jwt+captcha登录认证授权总结

SpringSecurityjwtcaptcha登录认证授权总结 版本信息&#xff1a; springboot 3.2.0、springSecurity 6.2.0、mybatis-plus 3.5.5 认证授权思路和流程&#xff1a; 未携带token&#xff0c;访问登录接口&#xff1a; 1、用户登录携带账号密码 2、请求到达自定义Filter&am…...

项目技术栈-解决方案-web3去中心化

web3去中心化 Web3 DApp区块链:钱包:智能合约:UI:ETH系开发技能树DeFi应用 去中心化金融P2P 去中心化网络参考Web3 DApp 区块链: 以以太坊(Ethereum)为主流,也包括Solana、Aptos等其他非EVM链。 区块链本身是软件,需要运行在一系列节点上,这些节点组成P2P网络或者半…...

【AI声音克隆整合包及教程】第二代GPT-SoVITS V2:创新与应用

一、引言 随着科技的迅猛发展&#xff0c;声音克隆技术已经成为一个炙手可热的研究领域。SoVITS&#xff08;Sound Voice Intelligent Transfer System&#xff09;&#xff0c;作为该领域的先锋&#xff0c;凭借其卓越的性能和广泛的适用性&#xff0c;正在为多个行业带来前所…...

分清数据链路层、网络层、传输层的区别,以及这些层面的代表协议

目录 数据链路层 网络层 传输层 数据链路层 OSI模型的第二层&#xff0c;负责在相邻节点之间传输帧&#xff0c;处理帧的封装、地址、差错控制和流量控制等。确保数据在物理介质上可靠地传输&#xff0c;并为上层协议提供服务。 以太网&#xff08;Ethernet&#xff09;&…...

git没有识别出大写字母改成小写重命名的文件目录

Git 默认不会跟踪大写字母和小写字母的区别&#xff0c;因为在大多数文件系统中&#xff0c;大写字母和小写字母被认为是相同的文件&#xff0c;只有在区分大小写的文件系统中&#xff08;如 macOS 的 HFS 或 Windows 的 NTFS&#xff09;&#xff0c;这才是一个问题。 如果重命…...

告别Python依赖!用SpringBoot+LangChain4j从零搭建企业级RAG知识库(附避坑指南)

告别Python依赖&#xff01;用SpringBootLangChain4j从零搭建企业级RAG知识库&#xff08;附避坑指南&#xff09; 在AI技术快速落地的今天&#xff0c;检索增强生成&#xff08;RAG&#xff09;已成为企业知识管理的热门解决方案。然而&#xff0c;当大多数团队都在Python生态…...

别再让电机只会转不会停了!L298N驱动模块PWM调速的正确接线姿势(附Arduino代码)

L298N驱动模块PWM调速的深度解析与实战指南 引言 在机器人制作和自动化控制领域&#xff0c;电机驱动是基础却至关重要的环节。L298N作为经典的H桥电机驱动模块&#xff0c;因其稳定性和易用性广受创客和电子爱好者青睐。然而&#xff0c;许多初学者在使用PWM调速功能时&#x…...

为什么你的Perplexity本地服务响应慢3.7倍?:NVIDIA驱动版本、vLLM推理后端与量化精度的隐性博弈

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Perplexity本地服务查询 Perplexity 作为一款强调实时信息检索与引用溯源的 AI 工具&#xff0c;其官方未提供公开的本地化部署方案。但开发者可通过构建轻量级代理服务&#xff0c;将本地运行的大语言模型&a…...

除了高精度定位,CORS基准站网还能为你提供哪些意想不到的数据服务?

解锁CORS基准站网的隐藏价值&#xff1a;从厘米级定位到时空大数据平台 当大多数人提起CORS基准站网时&#xff0c;第一反应往往是"高精度定位"。确实&#xff0c;这套由数百个地面站点组成的网络系统&#xff0c;能够为各类GNSS设备提供实时厘米级甚至毫米级的定位修…...

别再手动拼接数据了!用ONNXRuntime和TensorRT实现多Batch推理的Python/C++实战对比

多Batch推理实战&#xff1a;ONNXRuntime与TensorRT的高效对决 在计算机视觉项目的实际部署中&#xff0c;我们常常会遇到这样的场景&#xff1a;摄像头持续采集图像&#xff0c;或者需要同时处理来自多个传感器的数据。如果每次只处理单张图片&#xff0c;就像用吸管喝一大桶…...

SD-PPP终极秘籍:在Photoshop中直接召唤AI助手的实战宝典

SD-PPP终极秘籍&#xff1a;在Photoshop中直接召唤AI助手的实战宝典 【免费下载链接】sd-ppp A Photoshop AI plugin 项目地址: https://gitcode.com/gh_mirrors/sd/sd-ppp 你是否曾为了给设计作品添加AI特效&#xff0c;不得不在Photoshop和AI工具间来回切换、导出导入…...

全面配置指南:Excel MCP Server高效部署与专业运维实战

全面配置指南&#xff1a;Excel MCP Server高效部署与专业运维实战 【免费下载链接】excel-mcp-server A Model Context Protocol server for Excel file manipulation 项目地址: https://gitcode.com/gh_mirrors/ex/excel-mcp-server Excel MCP Server是一个强大的模型…...

多平台矩阵账号防关联技术深度解析:2026年IP隔离与设备指纹的攻防战

一、问题背景&#xff1a;矩阵运营最大的风险不是限流&#xff0c;是封号做矩阵的人都知道一个残酷的事实&#xff1a;你不是被限流死的&#xff0c;你是被关联死的。2025年某MCN机构一次封号事件&#xff1a;32个抖音账号、18个小红书账号、7个视频号账号&#xff0c;一夜之间…...

MobaXterm自定义语法高亮进阶:修复绿色失效与打造个性化终端

1. 为什么你的MobaXterm绿色高亮总是不亮&#xff1f; 第一次用MobaXterm时我就被它的彩色终端吸引了&#xff0c;特别是成功操作会显示醒目的绿色&#xff0c;失败提示则是刺眼的红色。但用了两周后突然发现&#xff1a;所有成功操作的绿色提示全都消失了&#xff01;这就像开…...

从零构建YOLOv8火焰烟雾检测系统:GUI开发、模型训练与实战部署全解析

1. 项目背景与核心价值 火焰烟雾检测在工业安全、森林防火和智能家居等领域有着广泛的应用需求。传统检测方法主要依赖传感器&#xff0c;但存在响应慢、覆盖范围有限等问题。基于计算机视觉的解决方案能够突破物理限制&#xff0c;实现大范围实时监控。YOLOv8作为当前最先进的…...