Dinglei_hello · 2021年09月24日

UVM 的精髓在于给验证人员提供了快速搭建 testbench 的途径

UVM(universal verification methodology),俗称通用验证方法学。通用二字在于其将以前所有的验证方法学(OVM、 VMM、 VMM 等等)都融合到一起,类似于秦王统一六国的意思。其是由三大 EDA 巨头成立了一个 accellera 的组织,共同推的一个验证方法学标准,后面什么 AMD、 ARM、 intel、 ericsson、 qualcomm等等半导体巨头也都加入了该组织,下面图片罗列了现在该组织的合作成员,可见 accellera 势力之强大。

WeChat Image_20210924114130.jpg

按照其官网上的说法,该组织是一个独立的,致力于生成、支持、推进和提高用于全世界范围的电子产业系统级别的用于设计、建模、和验证标准的非营利组织。说白了就是组成垄断巨头掌控未来 EDA 发展的方向。

该组织目前推的三大标准是 SystemC、 UVM 和 IP-XACT。UVM,俗称通用验证方法学,是目前做验证无法绕过但是很难吃透的一块知识,无法绕过是因为其为验证平台的搭建和 case 的加载提供了很多现成的模块和组件以及机制、框架, 很难吃透的意思是其内部具体实现机制比较复杂, 掌握其原理比较困难。 

对于我们验证人员,如果仅仅掌握如何使用 UVM 还是比较简单的(其实,掌握 UVM 的使用方法也是比较复杂的,因为不知道其实现原理,因此只能按照别人的使用方法去照搬,而不是根据自己的需求来考虑用 UVM 的哪一部分的功能,这目前也是自己比较遗憾的一点)。

按照 UVM 用户指南手册上的说法, UVM 提供了一个用于以覆盖驱动验证(CVD, coverage-driven verification)的最好的框架。覆盖驱动验证结合了自动测试用例生成,自测平台和覆盖向量从而减少了验证设计的时间。

UVM 主要用于验证数字逻辑电路的正确性。其基本原理如下图所示:

WeChat Image_20210924114138.jpg

设计人员和验证人员针对同一个数字逻辑的特性列表(feature list)分别完成两个模型。设计人员通常用 Verilog或 VHDL语言完成,通常称之为 DUT(Design Under Test);验证人员通常用 SystemVerilog、 SystemC、 C 语言、 matlab 语言完成(但是目前支持较好的语言仅为 SystemVerilog、 systemC、以及 C 语言,支持最好的语言是 SystemVerilog),通常称之为参考模型(reference model)

然后向两个模型分别施加相同的激励,根据输出判断两个模型是否一致,如果不一致,则修改 DUT 或 reference model ,直到两个模型完全一致。这里完全一致是用代码覆盖率和功能覆盖率来体现的。

Verilog、 SystemVerilog 之间的关系相当于 C、 C++,因为 SV 支持 Verilog所有的语言。另外 SystemVerilog 中引入了 C++中的类的概念,使得 reference model 和验证平台的编写更加容易,但其部分语句无法综合(无法综合到硬件电路中)。

UVM 在基于 SystemVerilog 的基础上给出了一个封装库,其中包括了通用的验证架构、基本的模块类(driver、 scoreboard 等)、通信机制(port、 analysis port、imp 等)。用基本的模块类扩展得到需要的模块后填充到验证架构中,然后用合适的通信机制将模块串起来,这样就得到了验证平台,十分方便。

另外 UVM 给出了激励的封装类型 transaction(具体说应该是 uvm_sequence_item) 和随机化的方式(不知道是 SV 提供的还是 UVM 提供的,按理来说应该是SV 提供了理论,因为基于对象, UVM 提供了具体可用的代码)。通过 UVM 定义好的 uvm_sequence_item 类,验证人员能够按照自己的需求很方便的约束和随机化各种类型的激励。

总体来说, UVM 提供了一个便捷的、预定义的、灵活的验证框架。该框架中规定了基本的验证平台需要的基本组件、通信机制、激励类型,验证流程。验证人员按照其定义能够快速搭建验证平台。

UVM 的精髓在于给验证人员提供了快速搭建 testbench 的途径,从而使得验证人员能够将工作重心放在测试例的编写上。

END

作者:验证哥布林
原文链接:https://mp.weixin.qq.com/s/NarLUyvZXHuVBoXzlSUHsA
微信公众号:
芯片验证工程师.jpg

推荐阅读

更多IC设计技术干货请关注IC设计技术专栏
推荐阅读
关注数
19641
内容数
1303
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息