ASIC芯片设计之UVM验证

时间:2025-09-17  作者:Diven  阅读:0

随着ASIC芯片的规模越来越大,验证在整个芯片研制过程的地位越来越重要。在目前的集成电路项目开发中,验证占据了2/3的时间,已经成为开销最大,不可少的重要一环。验证工程师也成为供不应求,各大公司开高薪追逐的香馍馍。 曾经,会写verilog,能输出激励信号灌入DUT(待测设计)进行仿真,就能胜任验证工程师工作。这在芯片达到百万门级,动不动就是一个SOC芯片的今天,已是too young too simple。   那么对于立(hun)志(kou)成(fan)为(chi)验证工程师的童鞋们,需要掌握什么样的基本功呢?先看一看各大招聘网站对验证工程师的招聘要求:

ASIC芯片设计之UVM验证

关键词 :

UVM(当然OVM,VMM也是可以的)

systemverilog(高级编程语言是基础,嗯)

协议(做一两个项目就get了)

如今不懂点验证方法学,真不好意思和人说是做验证的。在各种验证方法学中,UVM是目前最新,最普及的。

百度百科对UVM的释义如下:通用验证方法学(Universal VerifICation Methodology, UVM)是一个以SystemVerilog类库为主体的验证平台开发框架,验证工程师可以利用其可重用组件构建具有标准化层次结构和接口的功能验证环境。

还是get关键词,一是可重用组件和标准化层次结构,二是systemverilog类库。

我们先从第一点入手,什么是可重用组件和标准化层次结构呢?铛铛铛,祭出UVM bench结构。

自上而下,首先是testbench,中间是interface,用来连接testbench和dut(design under test,待测设计),最底下是dut,也就是被测试的部分。

而在testbench中,由外而内,最外层是test,这是验证平台运行的起点,严格意义来说,testcase不属于testbench,一个成熟验证平台为了测试dut各种的功能点,会产生很多的testcase。

environment(图中缩写为env)是验证平台的最顶层模块,env被例化在testcase中,当我们运行一个testcase时,在build phase中会动态构建env这个组件,env中包含了agent和scoreboard等组件,并且完成agent和scoreboard之间通信信道的连接。

agent(图中缩写为agt)是代理模块,其作用类似一个sub env,里面包含了sequencer,driver和monitor这些组件。在完成构建这些组件之后,会连接sequencer和driver之间通信信道,monitor的通信端口连接到agent的通信端口上,以便通过agent和scoreboard等组件进行连接。

sequencer(图中缩写为sqr)是产生激励的组件,准确地来说,激励是从依附于sequencer的sequence中产生的。对于一个sequencer而言,可以有多个sequence,不同sequence产生不同的激励,如长度固定的数据包,长度随机的数据包,读命令的数据包,写命令的数据包,带校验的数据包,故意出错的数据包……配合testcase,不同testcase可以选取不同的sequence,运行在sequencer这个组件中,产生符合测试者意图的激励,并通过sequencer和driver之间的信道传输给driver。

driver(图中缩写为drv)是将sequencer产生的激励转化为驱动信号由interface驱动到dut中的组件。sequencer和driver之间的关系就像是将军和士兵的关系,sequencer是发号施令的将军,driver则是具体执行的士兵,两者紧密配合,才能驱动dut工作。

monitor(图中缩写为mon)是采集dut信号的组件,信号被采集回来进行监测和比对。所以monitor采集到的信号会封装为transaction,由通信信道传输到其组件,比如被送到scoreboard中进行比较。

sequencer,driver,monitor是agent中典型组成部分,此外agent中还可以包含config,用来存储和控制agent的配置信息。agent还可以有active agent和passive agent之分,前者通常是master agent,包含向dut输送激励,和从dut采集输出两部分内容,即包括了sequencer,driver和monitor三个组件。passive agent则是slave agent,不驱动dut,只用来收集dut的输出,也就是只有monitor,不包含sequencer和driver。根据不同项目可以选择选用active或者passive agent。而作为验证工程师,更常用的做法是开发一个agent,包括了sequencer,driver和monitor这几个部分,然后设置一个变量,决定当前是active还是passive,如果是前者会例化sequencer,driver和monitor,如果后者则仅仅例化monitor。

scoreboard(图中缩写为scb)是记分板组件,用来收集dut输出和期望值进行比对。dut的输出通常由monitor采用,而期望值则需要根据实际情况,比对内容的不一样有不同处理方式,有些可以直接从monitor采集dut的输入,有些从driver中拿原始的激励。dut比较复杂的情况下,需要引入reference model对原始的激励进行转化,从而和dut的输出进行比对。reference model可以是system verilog语言,c语言,或者其语言编写。scoreboard实现了自动比对,不仅解决了工程师手工比对的繁杂和易出错的问题,而且是大规模回归测试的前提条件。

刚刚阐述了uvm中各个组件的功能和作用,接下来说明uvm验证平台的层次划分。

最上层是测试(test)层,由各种testcase组成,接下来是场景(scenario)层,由产生激励的sequencer构成,第三层是功能层,包括scoreboard等组件,第四层是命令(command)层,由driver和monitor这种和interface打交道的组件构成,最底下是信号(signal)层,这一层是通过interface和dut进行交互。这几个层次各司其职,相互配合,实现了一个面向高层建模的可重用验证平台。

UVM的第二个关键词是systemverilog类库,这些类库一方面包括了各种组件的基础代码,如uvm_driver,uvm_scoreboard,验证工程师通过扩展这些源代码,就可以为各种项目开发组件,搭建验证平台,另一方面这些类库包含了各种内建的函数,例如copy,compare,这些通用函数帮助我们减少工作量,节省开发时间。

这样的uvm验证平台看起来并不复杂,那么,对于如今soc芯片动辄数十个外设模块的验证来说,可以胜任么?

其实,这就是uvm这套验证方法学中可重用组件和层次化验证平台的优势。以一个agent为例,可重用组件的意思是同个agent可以运用在不同规模的验证平台上,也可以在不同项目中随意搬。

以uart为例,在ip级验证中,验证平台可以长成这样:

在soc级验证中,除了uart,还有cpu,memory,以及一大堆的外设,比如i2c,spi,uart,sdmmc,usb……在uvm框架下,一套接口做成一个agent,所以我们只要把ip级验证时开发的uart agent移过来,interface重新连接下,就能重用了。瞧,这样的soc bench结构是不是很眼熟?

uvm按照组件开发,组件的独立性强,可重用性高,层次化的验证平台格局使得各种uvm验证平台的架构长相非常相似,统一的格局,减少了工程师代码风格各异性,增强了代码可读性,这样统一的规划,阅读维护和管理起来,都会非常轻松。

经过这番梳理,其实UVM也并没有想象中的高深。验证工程师作为ASIC行业紧缺人才,不论是薪酬还是发展前景都还是很不错的。

编辑:黄飞

 

猜您喜欢

现代电子产品中,封装技术的进步对于提高设备性能和降低功耗起着至关重要的作用。DFN22_6X3MM_EP是一种新型的表面贴装封装,因其独特的设计和优越的性能,被...
2025-02-24 17:22:33

贴片电阻上的数字标识代表其阻值。三位数标识的电阻,前两位数字表示有效数字,第三位数字表示10的幂次方,单位是欧姆 (Ω)。例如,标有「102」的电阻,阻值为 1...
2025-04-14 15:03:25

如今快节奏的生活中,手机早已成为我们重要的一部分,而电池续航能力也成为了用户最为关心的问题。一款优秀的电池充电管理软件,能够帮助您延长电池寿命,提升手机续航,让...
2024-08-05 00:00:00

2024年11月11日,第15届中国国际航空航天博览会(珠海航展)在珠海拉开帷幕。此次航展不仅展示了多款先进的战机和无人装备,还首次动态展示了中国兵器装备集团自...
2024-11-13 11:52:00

贴片电阻2213,是一种应用于电子电路中的小型化表面贴装电阻器。体积小巧,性能稳定,是现代电子产品很重要的元件之一。2213代表其尺寸为2.2mm x 1.3m...
2024-11-29 10:25:58

光敏电阻作为重要的光电传感元件,得到了的应用。丰晶(Gausstek)作为国内知名的光敏电阻品牌,优异的性能和稳定的品质在市场中占据了一席之地。本文将详细介绍丰...
2014-09-13 16:42:26

其合金电阻产品在市场上受到青睐。合金电阻独特的材料特性和优异的性能,应用于各种电子设备中。本文将详细介绍太阳诱电合金电阻的主要参数和品牌特点,帮助您更好地了解和...
2018-12-11 18:58:16

贴片电阻封装尺寸与其功率承受能力息息相关。封装越大,散热面积越大,所能承受的功率也就越大。选择合适的封装尺寸对于电路的稳定性和可靠性至关重要。下表列出了常用贴片...
2025-04-14 15:02:12

电阻作为基础且关键的元件,其性能和质量直接影响整个电子设备的稳定性和寿命。ROYALOHM(厚生)作为一家知名的电阻制造品牌,尤其铝壳电阻产品在行业内享有良好的...
2021-06-04 10:19:22

labview是用来干嘛的LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是国家仪器公...
2023-07-27 16:22:00