验证学习 SV
文章平均质量分 65
验证学习
海纳百川13
这个作者很懒,什么都没留下…
展开
-
数字验证学习笔记——SystemVerilog芯片验证23 ——数据采样
- 当你**coverpoint**指定采样一个变量或表达式时,SV会创建很多“仓(**bin**)”来记录每个数值被捕捉到的次数。 - 这些bin是**衡量**功能覆盖率的基本单位。 - covergroup中可以定义多个coverpoint,coverpoint中可以自定义多个cover bin或者SV帮助**自动**定义多个cover bin。 - 每次covergroup采样,SV都会在一个或者多个cover bin中留下标记,用来记录采样时变量的数值和匹配的cover bin。原创 2023-01-08 13:09:52 · 993 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证22 ——功能覆盖率策略&覆盖组
功能覆盖策略&覆盖组原创 2023-01-07 20:34:43 · 953 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证21 ——覆盖率类型
- **覆盖率**是衡量设计验证完备性的一个通用词语。 - 随着测试逐步覆盖各种**合理**的**组合**,仿真过程过程会慢慢勾画你的设计情况。 - 覆盖率工具会在仿真过程中**收集信息**,然后进行**后续处理**并且得到**覆盖率报告**。 - 通过这个报告找出覆盖之外的**盲区**,然后**修改**现有测试或者**创建**新的测试来**填补**这些盲区。 - 这个过程可以一直**迭代**进行,直到你对覆盖率满意为止原创 2023-01-07 11:02:53 · 1476 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证20 ——线程间的通信
- 测试平台中的所有**线程**都需要**同步**并**交换数据**。 - 一个线程需要**等待**另一个。 - **多个**线程可能**同时访问**同一个资源。 - 线程之间可能需要交换数据。 - 所有这些数据交换和同步称之为**线程间的通信(IPC)**。原创 2023-01-01 20:39:12 · 673 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证19 ——线程的控制
线程的控制原创 2023-01-01 13:54:03 · 641 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证18 ——线程的使用
- **module**作为SV从Verilog继承过来的概念,自然地保持了它的特点,除了作为RTL模型的外壳包装和实现硬件行为,在更高层的集成层面,模块之间也需要通信和同步。 - 对于硬件的**过程块**,它们之间的通信可理解为不同逻辑/时序块之间的通信或者同步,是通过信号的变化来完成的。 - 从硬件实现的角度来看,Verilog 通过always、initial过程语句块和信号数据连接实现进程间通信。 - 我们可以将不同的module 作为**独立**的程序块,他们之间的同步通过**信号的变化*原创 2022-12-31 21:53:32 · 588 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证17 ——数组约束
数组约束原创 2022-12-28 22:35:19 · 463 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证16 ——约束控制块&随机函数
- 一个类可以包含多个约束块。可以把不同约束块用于不同测试。 - 一般情况下,各个约束块之间的约束内容是互相协调不违背的,因此通过随机函数产生随机数时可以找到合适的解 如果子类继承父类,也继承了父类的约束,这个时候如果在子类里约束,不能违背父类里面的约束。 - 对于其他情况,例如根据不同需求,来选择使能那些约束块,禁止那些约束块的要求,可以使用内建的constraint_mode()函数打开或者关闭约束。原创 2022-12-27 22:53:51 · 870 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证15 ——随机约束和分布
定向测试能找到你认为可能存在的缺陷,而随机测试可以找到你没有想到的缺陷。 随机测试相对于定向测试可以减少相当多的代码量,而产生的激励较定向测试也更多样。我们想要的随机自由是一种合法的随机,需要限定激励和合法范围。同时,伴随测试的进行,约束甚至应该“变形”,变得更趋于为测试得数值范围或者期待得数值范围。原创 2022-12-12 23:04:26 · 486 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证14 ——接口&参数化的类
接口可以用作设计,也可以用作验证 在验证环境中,接口可以使得连接变得简洁而不易出错 interface和module得使用性质很像。它可以定义端口,也可以定义双相信号;它可是使用initial和always,也可以定义function和task。 interface可以在硬件环境和软件环境中传递,例如作为module得端口列表,也可以作为软件方法得形式参数。(interface也可以作为参数) 初学者可以将interface看做一个“插排”,而DUT和TB之间得数据驱动关系都可以使用原创 2022-12-04 20:12:43 · 501 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证13 ——虚方法
除了之前介绍的类的封装和继承,关于类的多态性也是必须关注的。正是由于类的多态性,使得用户在设计和实现类时,不需要担心句柄指向得对象是父类还是子类,只要通过虚方法,就可以实现动态绑定(dynamic binding),或者在SV中称之为动态方法查找。我们将已经编译阶段就可以确定下来调用方法所处作用域得方式称之为静态绑定(static binding),而与之相对得是动态绑定。动态绑定指的是,在调用方法时,会在运行时来确定句柄指向对象的类型,再动态指向应该调用的方法。为了实现动态绑定,我们将bas原创 2022-12-04 16:19:10 · 237 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证12 ——句柄的使用&包的使用
句柄的使用&包的使用原创 2022-11-28 22:18:17 · 532 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证11 ——类的继承
类的第二核心要素,即类的“继承”,继承也符合我们认识实际的观点,在自然界和科学界我们对世界的认识无外乎归纳法和演绎法。归纳论证是一种由**个别**到**一般**的论证方法。它通过许多个别的事例或分论点,然后归纳出它们所**共有**的特性,从而得出一个一般性的结论。所以从具体对象抽象出类的**属性和方法**,就符合定义类时的思维方式。原创 2022-11-27 10:47:02 · 698 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证10 ——类的成员
类是成员变量和成员方法的载体,之所以称为自洽体,是因为其变量和方法应符合‘聚拢’原则,即一个类的功能应该尽可能简单,不应承担过多的职责,更不应该承担不符合它的职责。原创 2022-11-26 21:49:58 · 507 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证9 ——类和对象的概述
这个世界是由无数的类(class)和对象(object)构成的。类是将相同的个体抽象出来的描述方式,对象是实体,其具备有独立行为的能力,一个对象是万千世界中的“一粒沙”。具有相同属性和功能的对象属于同一类,而不同的类之间可能有联系或者没有联系。原创 2022-11-26 17:16:43 · 643 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证8 ——验证环境的结构和组件
激励发生器原创 2022-10-11 23:13:59 · 536 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证7 ——验证环境的结构和组件
测试平台&硬件设计描述原创 2022-10-11 21:35:52 · 702 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证6 ——设计例化和连接
设计例化和连接原创 2022-10-11 21:35:15 · 601 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证5 ——过程块和方法
过程块&方法原创 2022-10-11 21:34:26 · 439 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证4 ——数据类型
结构体&枚举&字符串原创 2022-10-11 21:33:39 · 184 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证3 ——数据类型
数组原创 2022-10-11 21:32:58 · 872 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证2 ——数据类型
数据类型&数据转化原创 2022-10-11 21:32:14 · 448 阅读 · 0 评论 -
数字验证学习笔记——SystemVerilog芯片验证1
芯片开发流程原创 2022-10-11 21:31:19 · 526 阅读 · 0 评论