【验证概括 SV的数据类型_2023.12.18】
验证概括
验证的过程是保证芯片实现符合规格说明书(Specification,spec)的过程
验证的两项任务:
RTL sim:前仿真,验证功能
GLS-Gate (Level Simulation):后仿真,验证功能和时序
验证功能点
产生激励
分析DUT/DUV(design under test/verification)(就是设计代码RTL)的输出
前仿真与后仿真
RTL前仿真流程:
理解DUT → 制定验证策略方法提取验证点+搭建平台 → 执行平台 → 检查覆盖率
后仿真流程:
环境准备DUT(netlist+SDF)+选择Case(考虑关键路径、频率、速率) → 后仿真及Violation分析
SDF(standard Delay Format):后端经PR布局布线之后生成的包含网表中各器件单元延时、走线延时、信号宽度、时序要求等信息的文件
动态与静态时序分析
动态时序分析
根据电路中提取的延时参数,通过仿真软件动态的仿真电路以验证时序是否满足要求(后仿真)
静态时序分析
通过分析设计中所有可能的信号路径以确定时序约束是否满足时序规范(数字后端工程师)
SV数据类型
SV:用于验证的语言
UVM:用于验证的方法学
initial:只执行一次,本身不可综合,可在module,interface,program中使用
always:只可在module或interface中使用
SV中,module/interface硬件,program/class软件
内建类型(基本数据类型)
verilog中数据类型分为variable(reg,integer,time)和net(wire,wor,wand)型,都为四值逻辑
SV中数据类型有两个属性:type(区分variable和net)和data type(区分4值与2值)
variable可4可2值,net只能4值
SV新数据类型 logic,不用区分reg还是wire,但不能被多驱动(不能使用inout)
logic:4值;bit:2值(引入的原因:减少内存消耗,提高性能)
四值:integer reg logic net-type(wire tri)
二值:byte shortint int longint bit
有符号:byte shortint int longint integer
无符号:bit logic reg net-type(默认单比特,标量)
result_vector=unsigned'(signed_vector);//有符号数转换为无符号数
2值逻辑中没有x,会转变为0
有符号数高位补符号位,无符号数高位补0
数组 定长的,元素一致,有序
定宽数组:
int m[0:15];//16个整数[0],[1]...
int n[16];//16个整数[0],[1]...
多维数组:
int array[0:1][0:2];//6个存储单元,每个存储单元都是int型
int array[2][3]='{'{0,1,2},'{3,4,5}};//非合并数组,'{0,1,2}给array[0],'{3,4,5}给array[1]
==初始化前访问数组成员,logic返回X(四值),int或bit返回0(二值)==
动态数组:
合并数组:连续存放
bit [3:0][7:0] bytes;//用32bit
$display("%h",bytes[3][7]);//结果1,注意和多维数组的区别
非合并数组:不需把数据当作一个整体来访问
bit [7:0] b_unpack[3];//每个b_unpack[]给32bit,只用8bit,浪费空间
int [7:0] b_unpack[3];//语法错误,不可以是多bit数据类型,只能设为reg/logic/bit单比特类型
数组操作:循环 复制 比较
foreach遍历多维数组foreach(md[i,j])
a=b;//直接数组b复制给数组a
==和!=进行比较,结果仅限于内容相不相同
队列(可变长的):先进先出
int q[$]={0,2,5};
q={};//删除整个队列
q[$]={0,2,5};
q[1:$]={2,5};//$在右边表示最大
q[$:1]={0,2};//$在左边表示最小,在右边表示最大
结构体
数据的集合(可包含不同数据类型元素),使用不多(类可实现)
struct和typedef struct(重定义新数据类型)的使用
声明变量一定要放在initia块前面
合并与非合并结构体
非合并赋值方式student1='{18,222,“aa”};不可以student1={18,222,“aa”};
压缩和非压缩结构体:
typedef struct packed{bit [1:0] a,b,c}s;//c,b,a连续存
typedef struct {bit [1:0] a,b,c}student;//c,b,a分别存
10行:非压缩结构体赋值要加“ ’ ”,不加会报错
11行:压缩结构体不注明位宽,赋值易出错
为了代码规范,合并、非合并、压缩、非压缩都要加“ ’ ”
联合结构体union
x改变,y改变,成员公用一块内存空间,一个改变其他的也改变
typedef union packed{bit[7:0] a; byte b;}s;//必须是压缩的共享空间,成员一个位宽
枚举类型
默认int类型,默认0,1,2……,没有定义,后一个值是前一个加一
字符串 可变长
str.toupper()//转成大写
str.tolower()//转成小写
str.putc(i,c)//字符输入,将字符串str中第i个字符替换为字符c
str.substr(i,j)//子串,由str的第i和第j个中间的所有字符组成
strA.compare(strB)与strA.icompare(strB)//结果相同,相同为0,不同为1或-1
相关文章:

【验证概括 SV的数据类型_2023.12.18】
验证概括 验证的过程是保证芯片实现符合规格说明书(Specification,spec)的过程 验证的两项任务: RTL sim:前仿真,验证功能 GLS-Gate (Level Simulation):后仿真,验证功能和时序 验…...

如何在无公网IP环境下远程访问Serv-U FTP服务器共享文件
文章目录 1. 前言2. 本地FTP搭建2.1 Serv-U下载和安装2.2 Serv-U共享网页测试2.3 Cpolar下载和安装 3. 本地FTP发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 科技日益发展的今天,移动电子设备似乎成了我们生活的主角,智能…...

电子工程师如何接私活赚外快?
对电子工程师来说,利用业余时间接私活是个很常见的技术,不仅可以赚取额外收入,也能提升巩固技术,可以说国内十个工程师,必有五个在接私活养家糊口,如果第一次接私活,该如何做? 很多工…...

数据库进阶教学——读写分离(Mycat1.6+Ubuntu22.04主+Win10从)
目录 1、概述 2、环境准备 3、读写分离实验 3.1、安装jdk 3.2、安装Mycat 3.3、配置Mycat 3.3.1、配置schema.xml 3.3.2、配置server.xml 3.4、修改主从机远程登陆权限 3.4.1、主机 3.4.2、从机 3.5、启动Mycat 3.6、登录Mycat 3.7、验证 1、概述 读写分…...

MidJourney笔记(9)-daily_theme-docs-describe
/daily_theme 切换 #daily-theme 频道更新的通知。 但我发现在对话框那里,是没有这个命令的: 但官网是有介绍,不知道是不是版本问题还是这个命令已经无效。 但后来,我发现这个命令是要在Midjourney服务对话框那里才有,在我们后面添加的Mid...
鸿蒙 - arkTs:网络请求封装和使用
1. module.json5文件配置网络请求 {"module": {"requestPermissions": [{"name": "ohos.permission.INTERNET"}]} } 2. 在pages同级创建一个文件夹,起名为api 3. api文件夹下创建index.ts文件,文件内容&…...

多功能演示工具ProVideoPlayer2 mac特色介绍
ProVideoPlayer2 mac是用于大多数任何生产的首选多功能演示工具。ProVideoPlayer 2是一种动态视频播放和处理媒体服务器,可将视频映射(包括播放和实时视频输入)实时控制到一个或多个输出。包括实时效果,调度,网络同步和…...

java设计模式学习之【责任链模式】
文章目录 引言责任链模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用日志示例代码地址 引言 在现实生活中,常常会遇到这样的场景:一个请求或命令需要经过多个层级的处理。例如,一个行政审批流程可能需要通过多个部门的审…...

docker 安装可视化工具 Protainer 以及 汉化
一、创建保存数据的卷 安装网址:Install Portainer BE with Docker on Linux - Portainer Documentation docker pull portainer/portainer二、根据portainer镜像创建容器 docker run -d -p 8000:8000 -p 9000:9000\ --name portainer --restartalways \ -v /var/r…...

【SpringBoot篇】详解Bean的管理(获取bean,bean的作用域,第三方bean)
文章目录 🍔Bean的获取🎄注入IOC容器对象⭐代码实现🛸根据bean的名称获取🛸根据bean的类型获取🛸根据bean的名称和类型获取 🎄Bean的作用域⭐代码实现🎈注意 🎄第三方Bean⭐代码实现…...

彭涛:2023年终复盘,工作,团队,个人!
眨眼2023即将结束,2024即将开启,每年这个时候,都会简单总结下自己这一年,既是对今年的一个复盘和回顾,也是对新一年的向往和期待。 我的2023年,大概分为 「个人」,「家庭」,「团队」…...

【数据结构和算法】---二叉树(2)--堆的实现和应用
目录 一、堆的概念及结构二、堆结构的实现2.1堆向下调整算法2.2堆向上调整算法2.3删除堆顶元素2.4插入元素2.5其他函数接口 三、堆结构的应用3.1堆排序3.2Top-k问题 四、堆概念及结构相关题目 一、堆的概念及结构 如果有一个数字集合,并把它的所有元素按完全二叉树…...

【大模型实践】基于文心一言的对话模型设计
文心一言(英文名:ERNIE Bot)是百度全新一代知识增强大语言模型,文心大模型家族的新成员,能够与人对话互动、回答问题、协助创作,高效便捷地帮助人们获取信息、知识和灵感。文心一言从数万亿数据和数千亿知识…...
聊聊PowerJob的StoreStrategy
序 本文主要研究一下PowerJob的StoreStrategy StoreStrategy tech/powerjob/worker/common/constants/StoreStrategy.java Getter AllArgsConstructor public enum StoreStrategy {DISK("磁盘"),MEMORY("内存");private final String des; }StoreStra…...

HTML+CSS+JS网页设计期末课程大作业 web课程设计 web前端开发 网页规划与设计
HTMLCSSJS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计 💥 文章目录一、🚩 网站描述二、🎌 网站介绍三、🏴 网站类型A 个人博客主题B 人物明星主题C 旅游主题D 游戏主题E 动漫主题F 美食主题G 校园主题H 企…...

vscode | python | remote-SSH | Debug 配置 + CLIP4Clip实验记录
安装Extension 本地安装Remote-SSH、python 远程服务器上安装Python 难点:主机和远程服务器上安装Python扩展失败,可能是网络、代理等原因导致解决方法: 主机在官方网站下载Python扩展:https://marketplace.visualstudio.com/it…...
【Linux】实现windows主机与ubuntu虚拟机系统之间文件/字符复制粘贴
环境 硬件:通用PC 系统:Ubuntu 18.04 《 》Windows10 软件 :VMware Workstation 16 Pro 解决 0、现象 使用Ubuntu 虚拟机时,有时需要来回复制文件或者字符串到主机或虚拟机。 1、分析 2、思路 3、解决 //先安装open-vm-to…...

Ubuntu22.04-安装后Terminal无法调出
参考: Ubuntu20.04 终端打开不了的问题排查_ubuntu终端打不开-CSDN博客 https://blog.csdn.net/u010092716/article/details/130968032 Ubuntu修改locale从而修改语言环境_ubuntu locale-CSDN博客 https://blog.csdn.net/aa1209551258/article/details/81745394 问…...

ffmpeg两种windows版本区别说明
版本一 必须拷贝exe和dll文件才能使用,如果缺少dll则exe不正正常执行 如果缺少dll ,执行 exe会报错如下 版本2 直接拷贝exe就能使用,没有依赖的环境...

最新国内AI绘画Midjourney绘画提示词Prompt分享
一、Midjourney绘画工具 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...

Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...
大模型真的像人一样“思考”和“理解”吗?
Yann LeCun 新研究的核心探讨:大语言模型(LLM)的“理解”和“思考”方式与人类认知的根本差异。 核心问题:大模型真的像人一样“思考”和“理解”吗? 人类的思考方式: 你的大脑是个超级整理师。面对海量信…...