文档详情

SystemVerilog数字集成电路功能验证.pptx

发布:2024-07-02约4.74千字共364页下载文档
文本预览下载声明

SystemVerilog芯片验证第1章导论;

课程内容

SysteVerilog验证语言

OOP(封装、派生、继承和多态)

UVM核心机制

预备知识

数字电子技术

VerilogHDL

课程资源(微信公众号:学验证)

Linux操作系统、GVim、DVTEclipse EDA工具:SynopsysVCSandVerdi

课程源代码:/onexu/sv;

芯片设计流程

典型的芯片设计流程;;

验证流程

验证流程;;;;;

test;

配置

transaction;;

SystemVerilog芯片验证

第2章测试平台和数据类型;

顶层模块top_tb;;

测试平台被测设计

加法器模块端口描述;;

测试平台测试模块

避免使用程序块;;;;;;

基本数据类型reg和wire类型

描述时序电路;;;;

类型;;;

基本数据类型常量和字符串

常量;

方法;;;;

系统任务$timeformat用来设置打印时间的格式,它的四个参数分别表示时间的单位值、精度、后缀字符串以及最小显示宽度。系统任务$time可根据当前

所在模块的时间单位返回当前的整数时间(舍去时间的小数部分),而$realtime则是返回一个完整的带小数部分的当前时间。;;;;;;;;;;;

动态数组带有常用内置方法,方法size用于计算动态数组的长度,方法delete用于释放动态数组的存储空间。定长数组没有内置的size方法,只能使用系统函数$size计算数组长度。

多维动态数组中每个子数组的长度可以不相等。;;

方法名;;;;;

0;;;;;;

方法名;;;;;;;;;

方法;;;;;;;

在包中,只有其内部定义的内容和从其他包中导入的符号可见。不能通过层次化引用包外的信号、例程或者模块。可以认为包是完全独立的,可以在任何所需位置插入包,包没有外部关联。;

SystemVerilog芯片验证

第3章结构化过程;;;;;;;;;;;;

任务和函数例程参数的引用传递

constref类型;;;;

SystemVerilog芯片验证

第4章接口;

顶层模块;;;;;;;;;;

输入偏移用于模拟建立时间,隐含为负值。测试平台在建立时间处采样响应,响应值会自动保存在时钟块变量中,然后在时钟事件处将其更新到输入时钟块信号。

默认输入偏移为#1step,#1step指定了输入信号在前一个时间片的最后时刻才被采样,此时DUT的???有输出信号都已经稳定。;

输出偏移用于模拟保持时间,隐含为正值。测试平台在时钟事件前更新

(赋值)输出时钟块信号,驱动值会自动保存在时钟块变量中,然后在保持时间处将其驱动到接口信号。

时钟块的默认输出偏移为#0。DUT的最佳驱动时间应该位于其所有输入信号都已经稳定之后。;;;;;;;;;

SystemVerilog芯片验证

第5章面向对象编程;;;;;;;;

对象、句柄和构造方法在类中使用句柄

在类中使用句柄;;;;;;

functionvoidrev(inputtransactiontr);

tr.a=~tr.a;//使用形参tr访问实参tr指向的对象endtask;;

新创建的transaction对象;;;;;;;;;;;;;;;;;;;;;;;;;;

对象复制简单对象复制;;;;

派生类对象在复制时,不但要复制自身添加的内容,还需要复制从基类继承的内容。

复制派生类对象的规则是在派生类和它的所有基类中都定义用来复制的copy方法(虚方法),每个派生类中的copy方法先调用其上一级基类的copy方法,再复制自身的内容。;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

巧克力蛋糕实物;;;;;;;;;;;;;;

svm-1.1

svm-1.2

Makefile

setting.sh;

`ifndef`define`endif

typedef;;;;;;;;;;;;;

test_simple类中的svm_component_utils宏将特殊化后的参数化代理类

svm_component_registry定义为单例类type_id。type_id中的静态代理类句柄me会在仿真开始前被初始化,即调用svm_factory::get方法。get方法会创建单例类type_id

显示全部
相似文档