《UVM实战》——1.2节学了UVM之后能做什么

1.2 学了UVM之后能做什么

1.2.1 验证工程师
验证工程师能够从本书学会如下内容:
如何用UVM搭建验证平台,包括如何使用sequence机制、factory机制、callback机制、寄存器模型(register model)等。
一些验证的基本常识,将会散落在各个章节之间。
UVM的一些高级功能,如何灵活地使用sequence机制、factory机制等。
如何编写代码才能保证可重用性。可重用性是目前IC界提及最多的几个词汇之一,它包含很多层次。对于个人来说,如何保证自己在这个项目写的代码在下一个项目中依然可以使用,如何保证自己写出来的东西别人能够重用,如何保证子系统级的代码在系统级别依然可以使用;对于同一公司来说,如何保证下一代的产品在验证过程中能最大程度使用前一代产品的代码。
同样的一件事情有多种实现方式,这多种方式之间分别都有哪些优点和缺点,在权衡利弊之下哪种是最合理的。
一些OVM用法的遗留问题。
可以说,本书特别适合欲使用UVM作为平台的广大验证工程师阅读。当前众多IC公司在招聘验证人员时,最基本的一条是懂得UVM,学完本书并熟练使用其中的例子后,读者可以满足绝大多数公司对UVM的要求。

1.2.2 设计工程师
在IC设计领域,有一句很有名的话是“验证与设计不分家”。甚至目前在一些IC公司里,依然存在着同一个人兼任设计人员与验证人员的情况。验证与设计只是从不同的角度来做同一件事情而已。验证工程师应该更多地学习些设计的知识,从项目的早期就参与进去,而不要抱着“只搭平台只建测试用例,调试都交给设计人员”的想法。同样,设计工程师也有必要学习一点验证的知识。一个一点不懂验证的设计工程师不是一个好的设计工程师。考虑到设计人员可能没有任何的SystemVerilog基础,本书在附录A中专门讲述SystemVerilog的使用。设计人员可以在读本书之前学习一下附录A,以更好地理解本书。另外,本书与其他书最大的不同在于,本书开始就提供了一个完整的、用UVM搭建的例子,设计人员只要学习完第2章的例子,再把它和自己公司的验证环境结合一下,就可以搭建简单的测试用例了。而其他书,则通常需要看完整本书才能达到同样的目的。

时间: 2024-11-01 05:03:10

《UVM实战》——1.2节学了UVM之后能做什么的相关文章

《UVM实战》——1.1节UVM是什么

第1章与UVM的第一次接触1.1 UVM是什么1.1.1 验证在现代IC流程中的位置现代IC(Integrated circuit,集成电路)前端的设计流程如图1-1所示.通常的IC设计是从一份需求说明书开始的,这份需求说明书一般来自于产品经理(有些公司可能没有单独的职位,而是由其他职位兼任).从需求说明书开始,IC工程师会把它们细化为特性列表.设计工程师根据特性列表,将其转化为设计规格说明书,在这份说明书中,设计工程师会详细阐述自己的设计方案,描述清楚接口时序信号,使用多少RAM资源,如何进行

《UVM实战》——导读

目 录 前言第1章 与UVM的第一次接触1.1 UVM是什么1.2 学了UVM之后能做什么第2章 一个简单的UVM验证平台2.1 验证平台的组成2.2 只有driver的验证平台2.3 为验证平台加入各个组件2.4 UVM的终极大作:sequence2.5 建造测试用例第3章 UVM基础3.1 uvm_component与uvm_object3.2 UVM的树形结构3.3 field automation机制

《UVM实战》——2.3节为验证平台加入各个组件

2.3 为验证平台加入各个组件 2.3.1 加入transaction 在2.2节中,所有的操作都是基于信号级的.从本节开始将引入reference model.monitor.scoreboard等验证平台的其他组件.在这些组件之间,信息的传递是基于transaction的,因此,本节将先引入transaction的概念. transaction是一个抽象的概念.一般来说,物理协议中的数据交换都是以帧或者包为单位的,通常在一帧或者一个包中要定义好各项参数,每个包的大小不一样.很少会有协议是以b

《UVM实战》——2.2节只有driver的验证平台

2.2 只有driver的验证平台 driver是验证平台最基本的组件,是整个验证平台数据流的源泉.本节以一个简单的DUT为例,说明一个只有driver的UVM验证平台是如何搭建的. 2.2.1 最简单的验证平台 在本章中,假设有如下的DUT定义: 代码清单 2-1 1 module dut(clk, 2 rst_n, 3 rxd, 4 rx_dv, 5 txd, 6 tx_en); 7 input clk; 8 input rst_n; 9 input[7:0] rxd; 10 input r

《UVM实战》——2.5节建造测试用例

2.5 建造测试用例 2.5.1 加入base_test UVM使用的是一种树形结构,在本书的例子中,最初这棵树的树根是my_driver,后来由于要放置其他component,树根变成了my_env.但是在一个实际应用的UVM验证平台中,my_env并不是树根,通常来说,树根是一个基于uvm_test派生的类.本节先讲述base_test,真正的测试用例都是基于base_test派生的一个类. 代码清单 2-74 4 class base_test extends uvm_test; 5 6

《UVM实战》——3.1节UVM的树形结构

3.2 UVM的树形结构 在第2章中曾经提到过,UVM采用树形的组织结构来管理验证平台的各个部分.sequencer.driver.monitor.agent.model.scoreboard.env等都是树的一个结点.为什么要用树的形式来组织呢?因为作为一个验证平台,它必须能够掌握自己治下的所有"人口",只有这样做了,才利于管理大家统一步伐做事情,而不会漏掉谁.树形结构是实现这种管理的一种比较简单的方式. 3.2.1 uvm_component中的parent参数 UVM通过uvm_

《UVM实战》——3.1节uvm_component与uvm_object

第3章 UVM 基 础3.1 uvm_component与uvm_object component与object是UVM中两大最基本的概念,也是初学者最容易混淆的两个概念.本节将介绍uvm_object与uvm_component的区别和联系. 3.1.1 uvm_component派生自uvm_object 通过对第2章搭建的验证平台的学习,读者应对UVM有了较直观的认识,不少读者会认为uvm_component与uvm_object是两个对等的概念.当创建一个类的时候,比如定义一个seque

《UVM实战》——3.3节field automation机制

3.3 field automation机制3.3.1 field automation机制相关的宏在第2章介绍filed_automation机制时出现了uvm_field系列宏,这里系统地把它们介绍一下.最简单的uvm_field系列宏有如下几种:代码清单 3-25来源:UVM源代码 `define uvm_field_int(ARG,FLAG) `define uvm_field_real(ARG,FLAG) `define uvm_field_enum(T,ARG,FLAG) `defi

《UVM实战》——2.1节验证平台的组成

第2章一个简单的UVM验证平台 2.1 验证平台的组成验证用于找出DUT中的bug,这个过程通常是把DUT放入一个验证平台中来实现的.一个验证平台要实现如下基本功能:验证平台要模拟DUT的各种真实使用情况,这意味着要给DUT施加各种激励,有正常的激励,也有异常的激励:有这种模式的激励,也有那种模式的激励.激励的功能是由driver来实现的.验证平台要能够根据DUT的输出来判断DUT的行为是否与预期相符合,完成这个功能的是记分板(scoreboard,也被称为checker,本书统一以scoreb