UVM
文章平均质量分 80
ICer消食片
SoC验证工程师
展开
-
《The UVM Primer》chapter6: Polymorphism
多态这个词源于面向对象的类是从其他类里继承。一个正方形就是一个长方形,一个平行四边形,一个梯形,一个多边形。这就让人要发问了:"我声明了一个多边形类型的变量, 然后例化了一个正方形对象,那我可以用这个多边形变量来存放正方形对象吗?" 答案是肯定的,这种语言特性叫做多态。我们有一个 animal 基类和两个基类的继承类 lion 和 chicken。所有的动物类都有一个数据成员 age和一个方法 make_sound( )。这个方法将动物的叫声打印到屏幕上。lion 从 animal 里继承.原创 2022-04-16 23:06:46 · 194 阅读 · 0 评论 -
《The UVM Primer》——chapter5: Classes and Extension
结构体开始考虑两个用来保存几何形状数据的结构体:长方形和正方形。我们使用以下信息来存储和打印有关这些形状的信息:用 rectangle_struct 和 square_struct 来定义变量,然后用这些变量来保存大小并计算面积。typedefstruct { int length; int width;} rectangle_struct;typedefstruct { int side;} square_st原创 2022-04-10 23:10:13 · 291 阅读 · 0 评论 -
《The UVM Primer》——chapter4: Object-Oriented Programming (OOP)
SystemVerilog是一种在现代集成电路设计和验证流程中,由Verilog发展而来的硬件描述和硬件验证相互结合的语言,前一部分基本上是2005年版Verilog的扩展,而后一部分功能验证特性则是一门面向对象程序设计语言。面向对象特性很好地弥补了传统Verilog在芯片验证领域的缺陷,改善了代码可重用性,同时可以让验证工程师在比寄存器传输更高的抽象级别,以transaction而非单个信号作为监测对象,这都大大提高了验证平台搭建的效率。SystemVerilog 3.0(最初的版本是 3.0,因原创 2022-02-20 13:39:30 · 151 阅读 · 0 评论 -
《The UVM Primer》——chapter3: Interface and BFM
在上一章中,我们创建了一个比较合理的验证平台,具有以下几个特点: 功能覆盖率 自检功能 带约束的随机激励 但是这个验证平台将所有模块文件都放在了一个文件里,这使得后期的修改、重用和debug都变得非常的困难。随着后期项目和设计的复杂演化,验证平台也将变得越来越弱,这是一个巨大的缺陷。等到了项目的后期,甚至一个小小的改动都将导致验证平台的崩溃。这样的验证平台也无法用于下一个设计里。因此需要使用一种标准化方法来创建模块化的验证平台,每次加入新代码后,其功能就更强大,也可以很容易原创 2022-02-19 22:55:58 · 758 阅读 · 0 评论 -
《The UVM Primer》——Chapter2: A Conventional Testbench for the TinyALU
在搭建UVM验证环境之前,我们先从SystemVerilog验证平台开始,随后一步一步地过渡到完整的UVM验证平台。TinyALU对验证平台的需求如下:全面测试 TinyALU 的功能 仿真RTL的每一行代码和通过这些行代码的路径因此我们要创建需要覆盖的内容,随后创建验证平台去覆盖代码。并且创建自检的验证平台,这样跑回归时就不需要手动检查了。TinyALU的功能覆盖率模型我们使用 SystemVerilog 的 covergroup 来实现(具体可以参考绿皮书SystemVerilog原创 2022-02-14 17:18:32 · 485 阅读 · 0 评论 -
《The UVM Primer》——Chapter1: Introduction and DUT
1. 引言《The UVM Primer》 是 一本UVM 的入门书籍,由Ray Salemi编写出版,并且是免费开源的项目,代码可以在GitHub上下载。这本书只有一百多页的篇幅,围绕TinyALU进行一步步的深入学习,非常适合初学UVM的新手。当然也需要有SystemVerilog的相关基础。本书的UVM需要了解以下几个基本概念: SystemVerilog 的面向对象OOP 动态生成的对象,可在不重新编译的情况下指定tests和testbench架构 由 Agen..原创 2022-02-05 10:40:38 · 1016 阅读 · 0 评论