- 博客(16)
- 收藏
- 关注
原创 深拷贝和浅拷贝
首先和浅拷贝都是指拷贝一个对象,而不是句柄。当只拷贝对象中的成员变量和声明的句柄时,称为浅拷贝。而深拷贝会复制对象中的所有成员变量以及对象中嵌套的其他类的实例的内容。
2022-09-05 15:06:34
161
原创 验证环境结构
测试平台(testbench)是整个验证系统的总称。它包括验证结构中的各个组件、组件之间的连接关系、测试平台的配置和控制。从更系统的意义来讲,它还包括编译仿真的流程、结果分析报告和覆盖率量化等。从狭义上讲,我们主要关注验证平台的结构和组件部分,他们可以产生设计所需要的各种输入,也会在此基础上进行设计功能的检查。按照接口协议时序和测试场景,生成对应的激励向量接收了这些数据之后,需要做出响应通过将待测设计的输入端和输出端数据监测,发送至比较器将这些数据进行预测和比较,发现有问题的数据。...
2022-08-26 14:38:49
249
原创 systemVerilog——从功能描述到覆盖率
概述要实现功能覆盖率的收敛,就需要按照以下步骤考虑:哪些功能需要测试明白在什么条件下需要测试对应的功能为了测试这些功能,需要提供什么样的测试平台组件以便提供激励和监测测试平台如何检查这些功能正常工作由于功能覆盖率不是自动的过程,因此它需要将功能描述同设计实现对应起来。提取功能点一般遵循从外部接口到内部功能再到边界情况的方法。提取功能点 提取接口功能点对于要验证的设计的各个接口,可通过以下问题来获得接口功能点:必须应用哪些传输?什么样的取值范围?什么样的传输顺序?相关的传输带宽是多少?.
2022-07-04 15:21:06
253
原创 systemVerilog——线程的同步
测试平台中的所有线程都需要同步并交换数据。(在测试平台中,不但设计层次的各个硬件模块实例在依靠信号做同步和数据交换,验证环境中的各个组件也需要做同步和数据交换。)一个线程等待另外一个线程结束。验证环境中的同步和数据交换依靠的是软件方式示例:例如验证环境需要等待所有激励结束、比较结束才可以结束仿真。比如监测器需要将监测到的数据发送至检查器,检查器又需要从不同的缓存获取数据进行比较。线程同步类型1——事件(event)可以通过event来声明一个event变量,并且去触...
2022-05-28 11:22:13
295
原创 system Verilog——线程控制
什么是线程 在SV中,可以认为 线程即独立运行的程序。 线程需要被触发,可以结束或者不结束。举例: 在硬件module中的initial和always,都可以看做独立的线程,它们会在仿真0时刻开始,而选择结束或者不结束。硬件模型的线程的特点 硬件模型中由于都是always语句块,所以可以看成是多个独立运行的线程,而这些线程会一直占用仿真资源,因为它们并不会结束。验证环境中线程的特点 initial语句中例化的各个验证环境、验...
2022-05-14 17:48:38
667
原创 验证方法学
一、概述在开展验证时有一整套的工具箱,根据设计的特点选用不同的验证方法,最终取得满意的效果。实际的验证工作中,需要通过多种语言、方法、工具实现验证,比如仿真验证会协同形式验证一同来完善功能覆盖率,也有可能通过语言和脚本之间的整合来最终完成一项验证流程。目前的阶段,已经无法依赖单一的工具、语言或者方法来达到验证的完备性。二、主要方法分类1、动态仿真该方式是通过测试序列和激励生成器给入待测设计适当的激励,伴随着仿真时间,进而判断输出是否符合预期。需要仿真器配合,比较结果和仿真波形,最终判定测试用例
2022-05-13 07:48:44
1069
原创 system Verilog——包
包的定义 如果两个模块(例如A、B模块)重名,就会有命名冲突的问题,尽管对于这两个同名模块,编译的时候不会出现错误 ,但是下一个编译的模块会覆盖上一个编译的模块。在大型的验证项目中,很容易出现模块重名的情况。怎么处理?对于重名的硬件模块:将它们置入到不同编译的库中。对于重名的软件类、方法等:将它们置入到不同的包中。包(package)的使用情况1、我们可能使用不同的验证IP,我们也无法预测这些类名是否可能重名。 通过包(package)可以将关联的类和方法并入到同一个逻辑集合...
2022-05-06 16:00:00
331
原创 systemVerilog——随机变量
概述 随着设计变得越来越大,要产生一个完整的激励来测试设计的功能也变得越来越困难。 定向激励的测试方法早已经无法满足检查功能完整性的要求。 SoC的集成度提高带来的模块之间交互的复杂度也是指数攀升,这就使得验证工程师无法预测接下来用户使用过程中会发生什么样的状况。目前动态仿真验证的主流方法: 随机-约束随机约束测试(CRT,Constrained-Random Test) 随机约束测试即能够产生你感兴趣的、你想不到的的测试向量,通过...
2022-05-06 11:37:55
734
原创 system Verilog——类的封装
类是一种可以包含数据和方法(function,task)的类型。例如一个数据包,可能被定义为一个类,类中可以包含指令、地址、队列ID、时间戳和数据等成员class Packet ;//class定义类 类名 packetclass Packet ;//class定义类 类名 packet//类 packet的成员//数据或类属性bit [3:0] command; bit [40:0] address; bit [4:0] master_id;integer time_r...
2022-05-04 11:53:16
253
原创 system Verilog---interface
接口接口(interface)的特点:接口提供了一种新型的面向抽象级建模的方式。接口的使用可以简化建模和验证大型复杂的设计。使用Verilog的模块端口与SV的接口之间的比较要集成一个子系统,包括处理器单元、存储单元、测试单元的连接等Verilog的方式按照以下步骤进行:逐一对每一个子模块进行端口声明。在上层环境,需要声明非常多的线网用来在各个模块之间进行连接。Verilog方式的缺点:对于标准的总线端口也不得不在多个模块重复声明。相应的通信协议也不得不在多个模块中重复定义.
2022-04-29 11:30:00
1566
原创 System Verilog——过程块和方法
一、硬件过程块在SV中首先要搞清楚哪些语句应该放在“硬件世界”,哪些程序应该放在“软件世界”。硬件世界:module、interface软件世界:program、classalwaysalways是为了描述硬件的行为,可以描述时序电路、组合电路。所以只在module和interface中使用。always中的@(event)敏感列表是为了模拟硬件信号的触发行为。initialinitial非常符合软件的执行方式,即只执行一次。initial和always一样,无法被延迟执行,即在仿真一开
2022-04-25 16:09:14
300
原创 system verilog中常用的数据类型
system verilog中常用的数据类型SV中引入了二值逻辑(取值0和1)的变量,这样可以减小仿真时的内存消耗。类型 数据类型四值逻辑 integer logic reg net-type(如 wire 和 tri )二值逻辑 bit byte shortint int longint无符号位 logic bit reg net-type(如 wire 和 tri )有符号位 byte(8bit) shortint(16bit) int(32bit) long...
2022-04-24 15:08:35
1259
1
【数字IC验证快速入门】1、浅谈数字IC验证,了解专栏内容,明确学习目标_ReCclay的博客-优快云博客_数字ic验证.html
2023-05-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人