
systemverilog语法
文章平均质量分 53
南国之邱
苟全性命于乱世,不求闻达于诸侯
展开
-
systemverilog语法(六)
十六、随机化 通过随机化可以通过利用CPU的时间来换取人工检查的时间,提高效率,提供足够的激励。 采用受约束的随机测试法(CRT)产生测试集:使用随机的数据流为DUT产生输入的测试代码。改变伪随机数发生器(PRNG)的种子(seed)。 一般会在测试设计时考虑设计规范的边界处,甚至测试设计规范之外的行为。 1、 简单的随机变量的简单类 例: Randc表示周期随机性,即所有的原创 2017-02-11 17:20:40 · 32729 阅读 · 2 评论 -
systemverilog语法(九)
二十、功能覆盖率 功能覆盖率是用来衡量哪些设计特征已经被测试程序试过的一个指标。 1、 覆盖率的类型: 1) 代码覆盖率:衡量多少代码已经被执行过。一般都通过调用代码覆盖率的命令即可实现。 2) 功能覆盖率:确保设计实现了所有的特性。 3)断言覆盖率:一般检查设计中的关键信号是否正确执行,特别是时序检查时需用到断言。 2、覆盖率一般出现的情况,根据下图进行相应的操作,例: 2、原创 2017-02-12 15:55:30 · 3968 阅读 · 0 评论 -
systemverilog语法(八)
十九、面向对象编程的高级技巧 继承:允许从一个现存的类得到一个新的类并共享其变量和子程序。原始类被称为基类或者超类,而新类因为扩展了基类的功能,被称为扩展类。 OOP真正强大的地方在于它可以使你继承现有类。 1、例:事务基类 扩展类: 将类中的子程序定义成虚拟的,这样 它就可以在扩展类中重新定义,这一点适用于所有的任务和函数,除了new函数。 OOP中类的变量称为属性,而任务原创 2017-02-12 15:25:34 · 3133 阅读 · 0 评论 -
systemverilog语法(七)
十七、线程 线程的量级比进程小,其代码和存储区可共享,而且所消耗的资源比典型的进程小的多。 1、 线程的使用 1) begin ••••end顺序执行、fork•••join并行执行 2) fork•••join、fork•••join_none、fork••••join_any的区别 注意:1)fork•••join_none块后的那个语句执行早于fork_none内的任何语原创 2017-02-12 10:15:47 · 12825 阅读 · 0 评论 -
systemVerilog语法(一)
一、验证导论: 作为一个验证工程师,最重要的原则是“程序漏洞利大于弊” 设计流程:1)阅读硬件规范,解析其中的自然语言表述。2)使用RTL代码之类的机器语言创建相应的逻辑。 验证流程:1)阅读硬件规范,制定验证计划。2)创建测试来检查RTL代码是否实现所有特性。 单一的BFM测试平台: 多个BFM测试平台:二、数据类型: 1、Logic:任何使用wire或者reg的信号在测试平台是都可原创 2017-02-11 00:42:07 · 39849 阅读 · 1 评论 -
systemverilog语法(二)
九、过程语句和子程序 1、过程语句:begin•••end、fork•••join。 用于循环的continue:表示跳过本轮循环剩下的语句直接进入下一轮循环。 Break:用于终止并跳出循环。 2、任务task、函数function以及void函数 任务消耗时间而函数不消耗。 如果你想调用函数并且忽略它的返回值,可以使用void进行结果转换。 例: 3、在子程序中去掉begin•原创 2017-02-11 11:26:02 · 10341 阅读 · 0 评论 -
systemverilog语法(三)
十二、连接设计和测试平台 验证设计的几个步骤:生成输入激励,捕获输出响应,决定对错和衡量进度 测试平台-设计环境: 1、 使用接口将所有信号捆绑起来 例: 在test中使用接口:其中arbif越短越好 例: 在top中使用接口: 例: 2、 使用modport将接口中的信号分组 例: 3、 使用时钟块控制同步信号的时序 一个接口可以包含多个时钟块,每个时钟块对原创 2017-02-11 12:29:39 · 6228 阅读 · 0 评论 -
systemverilog语法(四)
十三:systemverilog断言(SVA) 1、 立即断言:检测设计或者测试模块中信号的正确性 例:检测grant信号的正确性 如果正确产生grant信号,则继续执行,若不符合期望值,则报错。报错信息如下: 2、 定制断言行为:如果想改变默认的消息,可以添加自己的输出信息。 Systemverilog有4个输出消息的函数:info,info,warning,error和原创 2017-02-11 12:45:05 · 4834 阅读 · 0 评论 -
systemverilog语法(五)
十四、面向对象的基础(oop) 1、 oop术语: 类(class):包含变量和子程序的基本构建块。 对象(object):类的实例 句柄(handle):指向对象的指针。一个句柄可以指向很多对象。 属性(property):存储数据的变量 方法(method):任务或者函数中操作的程序性代码 原型(prototype):程序的头,包括程序名、返回类型和参数列表 2、 声明和使用原创 2017-02-11 13:29:21 · 13512 阅读 · 0 评论 -
systemverilog语法(十)
二十一、高级接口 虚接口(virtual interface)是一个物理接口的句柄(handle)。 虚接口和对应的通用方法可以把设计和验证平台分隔开来,保证其不受设计改动的影响。当我们对一个设计引脚名字进行改动时,无须改动驱动这个接口的方法,而只需在例化该实物交易处理器的时候,给虚接口绑定对应连接的实体接口即可。以此来实现实物交易处理器的更大重用性。 虚接口的定义:virtual inter原创 2017-02-12 20:34:06 · 8049 阅读 · 0 评论