SystemVerilog
文章平均质量分 91
Vuko-wxh
道阻且长 行则将至。
展开
-
SystemVerilog学习-10-验证量化和覆盖率
静态转换操作符不对转换值进行检查。转换时指定目标类型,并在要转换的表达式前加上单引号即可。Verilog对整数和实数类型,或者不同位宽的向量之间进行隐式转换。可以将子类的句柄赋值给父类的句柄。但是在将父类的句柄赋值给子类的句柄时,编译将会报错。$cast()系统函数可以将父类句柄转换为子类句柄,只要该父类句柄指向的是一个子类的对象。或者测试量化伴随着复杂SoC系统的验证难度系数成倍增加,无论是定向测试还是随机测试,我们在验证的过程中终究需要回答两个问题:是否所有设计的功能在验证计划中都已经验证?代码中原创 2022-06-30 21:14:47 · 1303 阅读 · 0 评论 -
SystemVerilog学习-09-进程间同步、通信和虚方法
测试平台中的所有线程都需要同步并交换数据。—个线程等待另外一个,例如验证环境需要等待所有激励结束、比较结束才可以结束仿真。比如监测器需要将监测到的数据发送至比较器,比较器又需要从不同的缓存获取数据进行比较。...原创 2022-06-30 21:14:12 · 1574 阅读 · 0 评论 -
SystemVerilog学习-08-随机约束和线程控制
定向激励的测试方法早已经无法满足检查功能完整性的要求。SoC的集成度提高带来的模块之间交互的复杂度也是指数攀升,这就使得verifier无法预测接下来用户使用过程中会发生什么样的状况。原创 2022-06-30 21:13:13 · 829 阅读 · 0 评论 -
SystemVerilog学习-07-类的继承和包的使用
继承是面向对象编程范式的关键概念。类用来创建用户自定义类型. 继承使得用户可以用非常安全,非侵入的方式对类的行为进行增加或者修改。从基类做扩展并产生新的子类的过程叫类的派生,当一个类被扩展并创建之后,该派生类就继承了其基类的数据成员、属性和方法,这就是类的继承。...原创 2022-06-30 21:12:15 · 542 阅读 · 0 评论 -
SystemVerilog学习-06-类的封装
面向对象的编程(object oriented programing,OOP),核心思想是把数据和相关的方法(也叫子程序,即一些处理数据的task或function)封装成一个类(class)。原创 2022-06-30 21:11:35 · 544 阅读 · 0 评论 -
SystemVerilog学习-05-数组
非组合型对于Verilog,数组经常会被用来做数据存储,reg [15:0] RAM [0 : 4095] ; //memory arraySV将Verilog这种声明数组的方式称之为非组合型声明,数组中的成员之间存储数据都是互相独立的。Sv保留了非组合型的数组声明方式,拓展了允许的类型。包括event,logic,bit,byte,int,longint,shortreal和real类型。SV也保留了Verilog索引非组合型数组或者数组片段的能力,这种方式为数组以及数组片段的拷贝带来了方便。原创 2021-11-22 13:44:33 · 6484 阅读 · 0 评论 -
SystemVerilog学习-04-验证环境组件、任务和函数
验证环境结构验证平台是整个验证系统的总称。它包括验证结构中的各个组件,组件之间的连接关系,测试平台的配置和控制。更系统来讲,它还包括编译仿真的流程、结果分析报告和覆盖率检查等。狭义上说,主要关注验证平台的结构和组件部分,他们可以产生设计所需要的各种输入,也会在此基础上进行设计功能的检查。各个组件之间是相互独立的,验证组件与设计之间需要连接,验证组件之间也需要通信,验证环境也需要时钟和复位信号驱动。验证环境组件激励发生器stimulator 激励发生器:是验证环境中的重要部件,有些时候也称为dri原创 2021-11-11 13:11:26 · 1779 阅读 · 0 评论 -
SystemVerilog学习-03-设计特性与接口
设计特性添加接口,将通信和协议检查进一步封装。添加类似c语言的数据类型。添加用户自定义类型,如枚举类型、结构体类型。添加类型转换。添加包(package)从而使得多个设计之间可以共享公共类型和方法。添加方便的赋值操作符和运算操作符,例如++、十=、===。添加priority和uniquecase语句。添加always_comb、always_latch和always_ff等过程语句块。过程语句块SV添加了新的面向硬件的过程语句块,从而使得该语句块可以更清楚地表达设计者的意图。alw原创 2021-11-11 13:10:40 · 809 阅读 · 0 评论 -
SystemVerilog学习-02-数据类型
Verilog数据类型Verilog语言提供两种基本的数据类型,即变量类型(variables)和线网类型(nets),这两种类型都是四值逻辑,即可表示0、1、X和Z值。reg,integer和time等变量类型可以用来存储组合逻辑或者时序逻辑的值。wire,wor,wand和其它线网类型用来连接硬件模块,以及提供特殊的线网逻辑解决方案。线网类型(nets)线网类型用于建模结构化描述中的连接线路和总线线网的值由线网的驱动器决定,驱动器可以是门或模块的实例或者连续赋值的输出。变量类型(vari原创 2021-10-25 14:10:13 · 4097 阅读 · 0 评论 -
SystemVerilog学习-01-系统验证概述
什么是验证无论是我们日常进行求解问题还是进行开发工程,都需要进行测试得到的结果的准确性。用来证明设计的功能正确性,确保设计符合功能描述的过程就是验证。通常情况下,验证的工作量会大于设计的工作量,通常是占(前端设计+验证)总工作量的70%。举个例子,一双鞋子,工厂制作(使用流水线的机器)可能只需要几分钟,而对于消费者来说,首先需要确定鞋子是否合脚(确定鞋子的大小尺寸),然后要确定鞋子的薄厚,款式、样式、颜色、材质等等。把这些都确认好进行购买后,这时,可以说你完成了鞋子的验证工作。这样的一个流程也可以称为是原创 2021-10-21 09:38:11 · 2238 阅读 · 0 评论