
systemverilog
文章平均质量分 92
持续学习_ing
ic设计小白,一周一更,欢迎各位大佬指教~
展开
-
SV基础知识7---面向对象的高级技巧
类型转换 虚方法 对象拷贝 回调函数 参数化的类原创 2021-08-20 21:40:33 · 1405 阅读 · 0 评论 -
SV基础知识6---覆盖率收集
1覆盖率的类型(概述 覆盖率反馈回路 代码覆盖率 断言覆盖率 漏洞率曲线 功能覆盖率)概述覆盖率是衡量验证完备性的一个通用词语,用来衡量设计中已经被测部分和未测部分的比例,通常被定义为已达到所需验证部分的百分比。 覆盖率工具会在仿真过程中收集信息,进行处理得到覆盖率报告,再根据报告找出覆盖之外的盲区,修改现有测试用例或者创建新的测试用例来填补这些盲区,这个过程可以一直迭代进行,直到达到目标覆盖率代码覆盖率代码覆盖率用于衡量你执行了多少设计代码,关注点在设计代码上,而不是测试平...原创 2021-08-16 16:12:29 · 10104 阅读 · 0 评论 -
SV基础知识4----随机化和约束
1 随机约束和分布为什么需要随机和约束随着芯片体积的增大,复杂度日益提高,定向测试已无法满足验证的需求,随机测试的比例逐渐提高。定向测试只能找到你认为可能存在的缺陷,而随机测试可以找到连你都没有想到的缺陷。若只有随机没有约束,那么会产生很多无效和非法的激励。随机的对象不只是一个数据,而是有联系的变量集。通常这些变量会封装在一个数据类中,同时需要在类中声明数据之间的约束关系。约束不但可以指定数据的取值范围,还可以指定数据的随机权重分布。随机的内容器件配置:寄存器和系统信号 环境配置:随.原创 2021-08-10 15:53:42 · 12036 阅读 · 2 评论 -
SV基础知识5---线程与线程间的通信
1 线程的使用线程就是独立运行的程序。verilog中对initial语句块主要有两种分组方式:begin ...end:中的语句顺序执行fork...join中的语句以并发方式执行2 线程的控制在sv中,新增了fork...join_any fork...join_none 语句,其区别如下图wait fork 和 disable forkwait fork :等待所有子线程结束disable 线程名:指定需要停止的线程disable fo...原创 2021-08-09 11:00:32 · 5176 阅读 · 0 评论 -
SV基础知识3---Class类和Package
类和对象的概述类和对象类是将相同的个体抽象出来的描述方式,对象是实体,具有相同属性和功能的对象就属于同一类。类的定义核心就是属性声明和方法定义,所以类是数据和方法的自洽体,既可以保存数据又可以处理数据,这是类与结构体在数据保存上最重要区别。面向对象OOP的基本概念(三要素:封装、继承、多态)验证为什么要用OOP,创建对象(实例说明,对象的销毁)句柄的使用(创建对象、使用对象中的成员变量和方法、深复制和浅复制)、静态变量和静态方法类的成员protected和loca原创 2021-08-17 10:06:47 · 4555 阅读 · 0 评论 -
SV基础知识2---接口及应用
1 接口 1.1 接口是什么接口(interface)是连接设计和测试平台的一个"插排",可以用作设计,也可用作验证;如图:1.2 接口的优势将有关信号封装在同一个接口中,对于设计和验证环境都便于维护和使用。 interface是SV中唯一的硬件和软件环境的媒介交互。 接口可以例化,使得对于多组相同的总线,在例化和使用时变得更加灵活。1.3 接口的使用 在inteface端口列表中只需定义时钟、复位等公共信号,或者不定义任何端口,推荐使用logic定义变...原创 2021-07-27 09:00:04 · 2561 阅读 · 0 评论