【验证概括 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分别存

在这里插入图片描述
非压缩结构体赋值要加“ ’ ”,如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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/273409.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

html table+css实现可编辑表格

要实现可编辑的 HTML 表格&#xff0c;你可以使用 JavaScript 和 HTML5 的 contenteditable 属性。 <!DOCTYPE html> <html> <head><style>table {border-collapse: collapse;width: 100%;}th, td {border: 1px solid black;padding: 8px;text-align:…

基于采样的自动驾驶规划算法 - PRM,RRT,RRT*,CL-RRT

本文将讲解PRM&#xff0c;RRT&#xff0c;RRT*自动驾驶规划算法原理&#xff0c;不正之处望读者指正 0 前言 机器人运动规划的基本任务&#xff1a;从开始位置到目标位置的运动 &#xff08;1&#xff09;如何躲避构型空间出现的障碍物 &#xff08;2&#xff09;如何满足机器…

SpringBoot集成opencc4j实现繁体中文转为简体中文

背景 繁体中文转为简体中文的需求非常常见&#xff0c;特别是在中文语境下的文本处理和翻译应用中。有很多现成的工具和库可以实现这个功能&#xff0c;比如 OpenCC 、 HanLP 等。从网上下载的 MySQL 版诗词数据库中的诗词数据都是繁体字&#xff0c;这里使用 SpringBoot 集成…

echarts自定义鼠标移上去显示,自定义图例,自定义x轴显示

提示&#xff1a;记录一下echarts常用配置,以免后期忘记 1.自定义鼠标移上去效果 tooltip: { show: true, trigger: "axis", axisPointer: { type: "shadow",//默认自定义效果 }, // //自定义鼠标移上去效果 formatter: (v) > { console.log("打印…

【Git-IDEA】在 IDEA 中使用 Git(clone、pull、push、merge、建立本地分支与远程分支的连接)

【Git-IDEA】在 IDEA 中使用 Git&#xff08;clone、pull、push、merge、建立本地分支与远程分支的连接&#xff09; 1&#xff09;Gitee2&#xff09;配置 Git3&#xff09;初始化本地仓库4&#xff09;连接远程仓库5&#xff09;clone5.1.方式一5.2.方式二 6&#xff09;分支…

C++面试宝典第10题:绘制各种图形

题目 我们需要编写一个图形相关的应用程序,并处理大量图形(Shape)信息,图形有矩形(Rectangle)、正方形(Square)、圆形(Circle)等种类。应用程序需要计算这些图形的面积,并且可能需要在某个设备上进行显示(使用在标准输出上打印信息的方式作为示意)。 (1)请使用面…

网安面试三十道题(持续更新)

91 mof提权 ## 是mysql的提权方式&#xff0c;在Linux下不能用&#xff0c;就是利用了 c:/windows/system32/wbem/mof/目录下的nullevt.mof文件&#xff0c;每分钟都会在一个特定的时间去执行一次的特征 sql语句&#xff1a; ## 通过shell上传这个文件&#xff0c;通过sql语句写…

利用Milvus Cloud和LangChain构建机器人:一种引人入胜且通俗易懂的方法

一、引言 机器人已经深入我们的日常生活&#xff0c;从家庭服务到工业生产&#xff0c;再到医疗和运输等领域。然而&#xff0c;这些机器人往往需要复杂的算法和数据处理技术才能有效地执行任务。在这个过程中&#xff0c;人工智能&#xff08;AI&#xff09;和机器学习&#…

uniapp 手持弹幕全端实现(微信/QQ小程序 + APP)

见下述效果图,本文话少纯干货 代码实现 <template><view class="main"

网络编程第五天

IO多路复用实现TCP服务器和客户端 运行结果&#xff1a; select实现TCP服务器&#xff1a; #include <myhead.h>#define PORT 8888 //1024~49151 #define IP "192.168.170.126" //ifconfig本机IPint deal_cli_connect(int sfd,struct sockaddr_in *pcin…

【产品经理】Axure原型工具教程

笔记为项目总结笔记&#xff0c;若有错误欢迎指出哟~ Axure原型工具教程 Axure简介原型图分类常用操作常用原件常用交互母版常用设备分辨率 Axure简介 Axure是一款专业的原型设计与交互设计软件&#xff0c;可以帮助用户快速创建高保真的原型和交互设计。Axure支持多种常见的交…

添加调试日志,bug消失

参考&#xff1a;就删了个printf&#xff0c;代码崩了&#xff01; 1、运行报错代码 #include "stdio.h" #include "stdlib.h" #include "string.h"void func1() {int arr[10];memset(arr, 1, sizeof(arr)); }void func2() {int index;int* ar…

ArcGIS渔网的多种用法

在ArcGIS中有一个渔网工具&#xff0c;顾名思义&#xff0c;可以用来创建包含由矩形像元所组成网络的要素类。不太起眼&#xff0c;但它的用途却有很多&#xff0c;今天跟大家分享一篇关于渔网的多种用途。 1.马赛克地图制作 2.基于网格的设施密度统计制作马赛克地图 准备材…

怎么使用jupter notebook并配置环境变量

有的时候需要使用Jupyter Notebook运行代码&#xff0c;Jupyter Notebook的主要特点&#xff1a; ① 编程时具有语法高亮、缩进、tab补全的功能。 ② 可直接通过浏览器运行代码&#xff0c;同时在代码块下方展示运行结果。 ③ 以富媒体格式展示计算结果。富媒体格式包括&…

抖店商品卡不出单做不起来?抖店玩法解读+经验分享,建议收藏

我是王路飞。 目前抖店最常见的出单玩法&#xff0c;一个是商品卡&#xff08;自然流量&#xff09;&#xff0c;一个是找达人带货。 新手喜欢商品卡的原因就是“流量免费”&#xff0c;但同样不止一个新手向我反映过&#xff0c;商品卡真的不好出单&#xff0c;还有风险&…

B055-Maven IDEA UML

目录 Maven简介安装与配置Maven常用命令Maven导包导入项目到eclipsepom.xml介绍查找jar包网址eclipse中使用maven命令&#xff1a; eclipse创建maven项目修改jdk版本eclipse创建maven web项目配置阿里云镜像仓库 IDEA简介安装idea创建java项目idea基本配置删除项目idea创建Mave…

十大数据分析工具排行榜出炉

成功的数据分析师不仅要具有一定的资格和教育&#xff0c;还必须精通一些特定的工具。尤其是在数据采集&#xff0c;数据清理&#xff0c;数据仓库&#xff0c;数据分析&#xff0c;以及数据可视化方面。 近几年&#xff0c;数据驱动对IT创新和企业业务发展都有好处&#xff0…

创新科技赋能,易点易动设备管理系统助力企业实现设备管理升级

在当今竞争激烈的商业环境中&#xff0c;企业对设备管理的要求越来越高。高效的设备管理不仅可以提高生产效率&#xff0c;降低成本&#xff0c;还可以确保设备安全和可靠性。然而&#xff0c;传统的手工管理方式已经无法满足企业快速发展的需求。为了解决这一问题&#xff0c;…

浅谈互联网架构演变

更好的阅读体验 \large{\color{red}{更好的阅读体验}} 更好的阅读体验 前言 可以将某个项目或产品的架构体系按照如下方式分层&#xff1a; 业务层面&#xff1a;项目业务体系技术层面&#xff1a; 数据架构&#xff1a;数据持久层策略应用架构&#xff1a;应用层的实现方式 …

阿里云日志表盘配置-图上展示想要的名称

一、背景 目前写出的一些表盘都是_col这种字段展示的&#xff0c;下次来看表盘的时候都不知道是什么意思了&#xff0c;所以想要将_col可视化一些&#xff0c;记录一下在这个阶段学到的知识。主要是阿里云日志在使用 AS起别名的时候会报错。 二、操作和遇到的注意问题点 我写…
最新文章