点击这里获取免费大流量卡

作为一名在数字芯片验证领域工作多年的工程师,有很多刚入行或者想入行的芯片工程师不止一次的和我讨论过以下几个问题,不会UVM能不能做验证?UVM是不是最好的验证手段?UVM会不会被取代?如何学习UVM?下面简单谈谈个人的以下想法和思考,抛砖引玉,欢迎验证大神指正讨论。

首先抛出UVM的定义和特点:

‌‌UVM(Universal Verification Methodology)是通用验证方法学,它是一个基于‌SystemVerilog的验证平台开发框架‌。UVM提供了一套完整的源码库和编程指导,使得验证工程师可以利用其可重用组件构建具有标准化层次结构和接口的功能验证环境。‌

UVM的主要特点包括:(来自百度,对于新手而言基本概念的答案搜索很重要)

  • ‌标准化的验证平台模板‌

    :UVM提供了一套标准的验证平台模板,使得不同项目之间的验证工作可以共享和重用。

  • ‌受约束的随机激励生成‌

    :UVM支持受约束随机激励的产生,能够根据测试需求生成多样化的激励信号。

  • ‌覆盖率驱动的验证模式‌

    :UVM支持覆盖率驱动的验证模式,通过监测验证过程中的覆盖率来评估验证的完整性和有效性。

  • ‌代码可重用和平台可移植‌

    :UVM的代码可重用性高,平台可移植,使得验证工作可以在不同的硬件平台上进行。

UVM的架构包括以下几个主要组件:

  • ‌Testbench‌

    :验证平台的起点,包含多个测试用例(testcase)。

  • ‌Environment(env)‌

    :验证平台的最顶层模块,包含Agent和Scoreboard等组件。

  • ‌Agent‌

    :代理模块,包含Sequencer、Driver和Monitor,负责产生激励并监控DUT(被测试设备)的状态。

  • ‌Sequencer‌

    :产生激励的组件,根据不同的测试需求生成不同的激励信号。

  • ‌Driver‌

    :将Sequencer产生的激励转化为驱动信号,驱动DUT。

  • ‌Monitor‌

    :采集DUT的信号,封装为transaction,传输到其他组件进行比较。

1、不会UVM能不能做验证?

能!答案是显而易见的。验证的目的是找出设计中的bug,任何手段,只要能找到所有的bug,都是好方法,好手段。单纯的Verilog也可以编写测试平台,正所谓艺高人胆大,sv、c、python等等语言都可以用来做测试平台的,当然也可以打辅助。目前还有很多公司并没有引入UVM,但这并不妨碍其芯片产品流片以及成功出产品,更不妨碍其公司上市,所以没有UVM之前,芯片的设计和验证就已经可以分成两个独立步骤进行了。

2、UVM是不是最好的验证手段?

芯片验证不仅仅是UVM,如果你要成为一名顶级的验证工程师,那一定要记住,UVM仅仅是验证的手段之一,至于是不是最好的验证手段,分三部分来看。

其一,对于企业而言,我认为UVM对于大多数公司而言一定是最好的验证手段,因为站在企业的角度,将验证思想统一,大家遵循一套验证思维,团队效率会大大提升,验证团队之间交流和互相交接工作会变得非常顺畅,因为UVM的架构是一致的。这也是为什么主流的仿真验证工具都对UVM支持的比较好的原因,甚至三大家要统一这个验证思路的原因,因为EDA的本质就是提升效率。

其二,对于工程师个人而言,UVM会将个人的验证思路定式化,容易忽略验证的本质,而过分追求UVM验证平台的搭建技术,当然不是说这不需要,UVM验证平台的搭建技术非常重要,但验证的思维更重要,因为UVM不是全部验证,仅仅是验证的一种手段。设计的有些特性或许用其他手段保证会效率更高,所以对于个人而言,千万不要放过其他验证思路和验证手段的学习机会。

最后,对于保证芯片验证成功而言,UVM是性价比最高的方式之一,但要保证芯片设计正确,流片功能正确。UVM在大型芯片的系统及验证方面肯定是不足的,另外,因为大量软件模型的采用,对于实际芯片系统功能以及性能的还原程度肯定不如FPGA原型验证,所以芯片在流片前,采用FPGA原型验证已然成为刚需,平台便宜跑的快。当然,如果遇到大型SOC,如果预算足够,上一台硬件加速器,来进行系统级别验证就更好了。

3、UVM会不会被取代?

我的观点是UVM不会被取代,原因是因为目前大多数的验证平台都采用UVM验证方法学,验证工程师统一学习的框架也是UVM验证方法学,主流的EDA厂商支持的也是UVM,以上几点对于整个验证领域而言是非常重要的,如果想要将UVM革命,自立门户重新用更高效的验证方法学,理论上是可以的,但实际推进过程中很难很难。曾经有人跟我探讨过cocotb这种方法,我承认他很好,甚至某些方面的效率要比UVM好,但要挑战UVM在验证领域的地位还是有点难。

4、如何学习UVM?

我推荐三个学习步骤:第一步,Verilog HDL是一定要会的,建立基本的逻辑电路设计概念和波形仿真概念;第二步,System Verilog是一定要会的,建立基本的面向对象概念和通过log确认和查看错误的概念;第三步,UVM验证方法学的学习,学习验证的思路,从激励输入到验证结果输出的全过程,整个数据流在平台中如何流动的闭环思维。从而学UVM的组件以及结构框架。

EETOP创芯大讲堂金牌芯片课程推荐

双11 75折优惠已开启

点击这里获取免费大流量卡

如果您喜欢本站,点击这儿可以捐赠本站
这些信息可能会帮助到你: 联系作者 | 报毒说明
修改版本软件,加群提示等均为修改者自留,非本站信息,注意鉴别