![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数字IC验证
礼茶的贤
数字IC前端
展开
-
【数字IC前端】学习随笔(4)——约束&随机
安利 路科验证 随机约束和分布可以随机什么内容?声明随机变量的类随机约束和分布可以随机什么内容?器件配置:通过寄存器和系统信号环境配置:随机化验证环境,例如合理的时钟和外部反馈信号原始输入数据:例如MCDF数据包的长度、带宽,数据间的顺序延时:握手信号之间的时序关系,例如valid和ready,rea和ack之间的时序关系协议异常:如果反馈信号给出异常,那么设计是否可以保持后续数据处理的稳定性呢?声明随机变量的类随机化是为了产生更多可能的驱动,因此在软件世界**"class"一侧的原创 2020-09-20 22:28:55 · 1305 阅读 · 0 评论 -
【数字IC前端】Systemverilog语法——文本结构
结构文本(Structure literals)结构文本(Structure literals)是具有常量成员表达式的结构分配模式或模式表达式。 结构文字必须具有类型,该类型可以用前缀显式指示,也可以由类似赋值的上下文隐式指示。PS:’ 号通常可以表示存储地址空间不是连续的typedef struct {int a; shortreal b;} ab;ab c;c = '{0, 0.0}; // structure literal type determined from// the lef原创 2020-06-27 21:32:15 · 434 阅读 · 0 评论 -
【数字IC前端】SystemVerilog断言(SVA)语法
转载自新浪博客1. SVA的插入位置:在一个.v文件中:2. 断言编写的一般格式是:3. 带参数的property、带参数的sequence断言assertion被放在verilog设计中,方便在仿真时查看异常情况。当异常出现时,断言会报警。一般在数字电路设计中都要加入断言,断言占整个设计的比例应不少于30%。以下是断言的语法:1. SVA的插入位置:在一个.v文件中:module ABC (); rtl 代码 SVA断言endmodul...转载 2020-06-24 10:59:23 · 5687 阅读 · 0 评论 -
【数字IC前端】学习随笔(3)——类/对象/继承/句柄
类和对象的概述类和对象为什么要OOP(面向对象编程)?OOP的概念要素创建对象句柄的传递对象的销毁句柄的使用复习整理下。安利下 路科验证。类和对象的概述类和对象对象编程语言更符合人对自然的理解(属性property和功能function)无数的类(class)和对象(object)构成代码世界。类是将相同的个体抽象出来的描述方式,对象是实体,其具备有独立行为的能力,一个对象是万千世界中的“一粒沙”。具有相同属性和功能的对象属于同一类,而不同的类之间可能有联系(继承关系)或者没有联系。在C语.原创 2020-06-21 19:35:49 · 1014 阅读 · 3 评论 -
【数字IC前端】UVM常见问题系列
IC面试常考题搬运自 数字芯片实验室 公众号,安利一波良心博主 1、什么是UVM?它的优势是什么?2、uvm_component和uvm_object有什么区别?3、为什么需要phase机制,不同的phase有什么区别?4、哪些phase是top-down phase、bottom-up phase和parallel phase?5、为什么build_phase是top-down phase,而connect_phase是bottom-up phase?6、uvm phase仿真是怎么开始启动的?7、V转载 2020-06-10 21:21:22 · 9158 阅读 · 1 评论 -
【数字IC前端】学习随笔(2)
Q1: 数字IC验证一些模块时,往往要考虑一些数据回写、反压、读后写、写后读等等情况,为什么要这么考虑?A1: 考虑这些情况,往往是我们想到了模块可能被以什么情况来操作,但是在有关计算机体系结构的教科书中,在指令集并行有关的章节中提到了数据冒险的概念。数据冒险是指指令间存在相关性并且这两条指令相聚非常接近,足以使执行期间的重叠改变相关操作数的访问顺序,数据冒险分成三类:RAW写后读:j在i还没写入时就读取同一位置,会读取旧值WAW写后写:j在i还没写入时就写入同一位置,会被i写入覆盖(存在于i原创 2020-06-09 16:47:38 · 647 阅读 · 0 评论 -
【数字IC前端】SystemVerilog“类”专题
1.SV如何支持使用参数化类编写通用代码的模板?2.当工程师说"class"时,到底在说什么3.如何有效而正确的使用继承和多态性?1.SV如何支持使用参数化类编写通用代码的模板?https://mp.weixin.qq.com/s/MlMandBm4ifNCfVLGmqP_A2.当工程师说"class"时,到底在说什么https://mp.weixin.qq.com/s?__biz=MzIyNjQ0OTcyOA==&mid=2247488770&idx=1&sn=16ec4.原创 2020-05-24 23:46:35 · 370 阅读 · 0 评论 -
【数字IC前端】学习随笔(1)——SystemVerilog数据类型
Systemverilog与Verilog数据类型区分:比较寄存器(register)类型reg和线网(net,如wire)型以及SV中引入的logic类型:reg与wire: Verilog作为硬件描述语言,倾向于设计人员自身懂得所描述的电路中哪些变量应该被实现为寄存器,而哪些变量应该被实现为线网类型。这不但有利于后端综合工具,也更便于阅读和理解。logic: SV作为侧重于验证的语言,并不十分关切logic对应的逻辑应该波综合为寄存器还是线网,因为logic被使用的场景如果是验证环境,那么它只会原创 2020-05-23 22:30:31 · 1877 阅读 · 1 评论 -
【数字IC前端】System Verilog常见问题
SystemVerilog常见问题汇总1、什么是callback?2、什么是factory pattern?3、解释数据类型logic、 reg和wire之间的区别4、clocking block的用处?5、使用SystemVerilog避免Testbench与DUT之间竞争冒险的方法有哪些?6、SystemVerilog中有哪些覆盖率(coverage)的类型?7、virtual interfaces的需求是什么?8、解释Abstract classes和virtual methods9、抽象类(abst原创 2020-05-20 11:36:39 · 7681 阅读 · 2 评论 -
【数字IC前端】UVM寄存器模型专题
1. UVM基础之寄存器模型入门2. UVM RAL模型:用法和应用3. 层次寄存器的创建和集成4. 论文解读《Simpler Register Model Package for UVM Testbenches》(含案例和源码)5. 高级UVM寄存器建模6. 寄存器模型概览(上)7. 寄存器模型概览(下)8. 寄存器模型的集成(上)9. 寄存器模型的集成(中)10. 寄存器模型的集成(下)11. 寄存器模型的常规方法(上)12. 寄存器模型的常规方法(下)13. 寄存器模型的场景应用(终)14. 集成级.原创 2020-05-13 15:15:58 · 735 阅读 · 0 评论 -
Ubuntu 18.04安装VCS+Verdi踩坑总结。
Ubuntu 18.04安装VCS+Verdi踩坑总结。安装参考流程:https://blog.csdn.net/huayangshiboqi/article/details/89525723#comments?tdsourcetag=s_pctim_aiomsg以及一篇PDF,见附件问题1:解决:问题2:解决:执行 sudo apt install net-tools问题3:解决:deb http://mirrors.ustc.edu.cn/ubuntu/ trusty main原创 2020-05-12 23:57:07 · 3432 阅读 · 5 评论 -
【数字IC前端】理解UVM-1.2到IEEE1800.2标准的变化
rockeric.com路科验证的官网,安利一波,很多资源可以下载。 UVM_REG动态地址索引uvm_event_callback并入uvm_callbacksequence的宏得到简化UVM-1.1d到UVM-1.2的变化还是显著的,那已经是很久之前(2014年)的事了。不过,对于多数UVM用户而言,似乎并没有感受到1.1d和1.2版本间的代码差别。UVM从Accellera发布的1.2版到IEEE收编后的1800.2 2017版,我们也还是沿着大多数UVM用户的使用视野来谈。如果你想阅读这些完整的转载 2020-05-12 23:39:12 · 1359 阅读 · 0 评论 -
【数字IC前端】浅谈SystemVerilog与UVM标准的发展(下)
验证范围的变更对UVM提出的要求结论上篇主要分析一下Systemverilog与UVM标准的发展历程。 我们应该已经意识到了UVM产生以来,SoC验证产生了巨大的变化。我们需要考虑的是在这种趋势下,UVM的标准将何去何从。验证范围的变更SoC设计变得越来越复杂,早些年的数据如下,现在自然更复杂了。除了存储器之外,逻辑和数据路径的平均门数已经从2004年的400K门增加到2012年的11.1M门。嵌入式处理器的平均数量已经从2004年的1.06个,增加了一倍多,到2012年的平均数量为2.25个.转载 2020-05-12 23:22:38 · 599 阅读 · 0 评论 -
【数字IC前端】浅谈SystemVerilog与UVM标准的发展(上)
验证语言的发展SYSTEM VERILOG的发展UVM 的发展UVM面临的问题A. UVM MessagingB. UVM Transaction Recording结束语每当一种标准模式,如Systemverilog and UVM ,被广泛采用时,无疑对用户和工具开发商都是有利的。对于用户而言,终于可以在多种工具中采用统一的代码准则了。而对于工具开发商,开发的工具也只需要支持一种特定的语言或者库就可以了。但是呢,标准这些东西毕竟也都是人定的,标准不断发展衍进的过程中,缺点自然也是有的。标准制定的.转载 2020-05-12 23:12:00 · 1142 阅读 · 0 评论