数字IC验证VIP开发总结

  • VIP的用处
  • VIP开发流程
  • VIP开发中注意的点

VIP的用处

芯片从开发开始到最终在用户中正常使用,是需要在整个过程的不同阶段进行很多的测试和验证的,证明这个芯片工作复合预期,可以正常工作。
常见的有功能测试、时序测试、温度测试、湿度测试、压力测试、电磁场测试、EDA验证、STA分析、Formal验证、Emulation验证、样片实测;

EDA验证是使用仿真软件来动态的给输入,来看输出是否正确的一种验证手段;

EDA验证时就需要给DUT给输入信号,也就是激励,另外也需要做检查,而且为了提高验证效率,往往会做成自动化check,故EDA验证时需围绕DUT搭建一个验证环境,这个环境中给DUT输入信号,同时采样和保存DUT输出的信号,做一些检查;而给DUT输入激励信号,由于目前半导体芯片行业的电路越来越复杂,制备工艺越来越先进,集成度越来越高,往往一个IP的功能就越来越复杂,一家芯片厂商无法把芯片中的所有IP都自己进行研发,故都成了IP整合商。IP和IP之间的交互如数据交换,就需要一套规则,而这所谓的规则,就是协议。市场上,日常的产品五花八门、形形色色,视频类、语音类、通信类、工业类、军事类等,不同设备用做不同的场合,由不同的人来买单,需求不同,故产品的性能侧重点就不同,侧重点不同对应芯片的功能就不同,最终就衍生出各个领域的不同的协议和专利,如以太网络的协议、打电话的2G/3G/4G/5G协议、手机上的USB口等等各种协议。为了各种这样协议对应IP开发验证的质量和高效性,就可以开发对应的VIP。这种协议类vip和DUT直接对接,可以给DUT发送激励,并可以对DUT送出来的信息进行协议规范性检查,从而对dut进行测试。

VIP开发流程

1、业务或协议熟悉:
开始开发某个VIP,必然需要对该业务或协议进行全面的熟悉,知道整个协议的规则是怎么样子的,先要干什么后要干什么,每个步骤或者环节中的要求是啥,只有知道了这些才能弄懂这个协议或者业务做了个啥事。

(当然,协议中有些细节描述的很具体很详细,但有些点则只给出原则性要求,具体细则是没有的,这个就取决于厂商实现了,当然必须考虑到其兼容性)

2、VIP规格梳理:
当把业务和协议进行通读熟悉后,基本上会对整个协议或业务有了个大体的认知,此时考虑到是要开发VIP,那就必须把协议或业务支持的规格梳理处理。这个规格就是大的特性点了,就如同一个IP或者芯片介绍书上一般写的东西一样,支持xxx特性,支出某功能等等;

3、VIP规格规范明确:
上面梳理了规格大颗粒度,这里就需要对VIP具体实现的每个规格进行详细说明,这个地方说明可能更会偏向于VIP的实现和使用。因为协议或者业务介绍往往只介绍大的规则,而且考虑的场合也较多,而VIP的具体开发则会考虑到时间和版本,往往首个版本可能不会一次性将协议上所有特性都实现,因此这个规格规范明确就是指当前VIP版本对需要支出的特性进行的详细说明。当然这个规范明确明确的是需要对什么进行怎么样的逻辑处理,此时仍旧是功能层面的,而非system verilog代码层面的,因为代码层面的就是具体实现了,是在详细设计文档中才需要呈现的。

4、VIP顶层架构和规格说明书:
明确了当前版本所支持的全部规格和规格特性细则后,就要开始顶层架构设计了,此时需要给出整个VIP子模块划分,各个子模块各自负责什么功能,各个子模块之间如何交换,如何协同工作完成协议要求的事情,划分清楚各个子模块的边界。当然,还要考虑后续版本升级,考虑协议升级兼容性问题等等,有了这个文档后,各个子模块负责人才能清楚自己模块的输入是怎么样,输出是怎么样,基于输入输出要求,对子模块内部进行设计开发;

5、VIP子模块详细设计方案:
通过顶层架构说明书了解了各个子模块的功能和边界后,就要对规格规范说明书中各个功能进行实现层面的详细设计了,比如说决定基于UVM来实现,那就要设计数据报文格式,设计class类、进行task划分等等;
要想好在实现某个特性时用什么语法可以实现。在这个阶段就把编码的重难点在这个阶段想好,比如某个特性要某个特殊的语法实现,那要把语法查清楚。
DFX手段在这个阶段要预留足够多;callback回调函数接口也要提前设计在里面;注错手段;

6、VIP自测试方案设计:
VIP各模块详细设计方案是VIP本身实现功能的详细实现方案,那对此VIP进行测试,也需要有个测试方案吧。这个测试方案就是用来说明,开发出来的VIP将进行怎么样的测试来证明VIP复合预期的,这里也将包含VIP自测试环境设计,考虑是进行VIP自己对接自己呢?还是什么手段来验证vip;这个其实要和模块详细设计方案并行搞,因为有时候为了自测试方便进行,需要VIP内部预留一些接口,将内部的一些数据给出来,进行比较,这也就需要子模块详细设计方案中已经考虑到了预留自测试接口了,否则万一没考虑,最终会让自测试变的很难搞。

7、VIP编码:
到了编码阶段,就是照着详细设计方案进行编写代码了,如果详细设计方案够细致,那编码阶段就没什么大的问题。

8、测试点分解:
和验证DUT一样,验证VIP也需要分解测试点,这样验证执行时就很清晰,一目了然;按理说测试点分解是在详细设计方案和自测试方案之前的,因为有了规格规范明确书,就表示已经知道了此VIP将支持什么特性,特性的功能是怎么样的了,故测试点就可以分解出来了。另外有了测试点,才能有自测试方案啊,因为都不知道要测试什么,那方案里面自测试环境怎么搭建就更无法下手了。

9、VIP自测试环境设计与编码搭建:
完成了VIP部分的编码,接下来就根据自测试方案进行测试环境编码和搭建;

10、功能测试:
按照测试点中列出来的,按照优先级顺序进行特性测试;

11、查缺补漏完成VIP交付:
针对特别关注的点,修改点,难点等重点地方进行查缺补漏,保证VIP达到了预期。如果需要FCOV,则还需要开发FCOV模型;如果需要交付test suite,则还需要将用例集进行交付;

VIP开发中注意的点

参数化设计:
整个VIP尽量都做到参数化可配置,用户在使用VIP时,只需根据DUT自身的特性,对VIP进行配置,使VIP工作在和DUT一样的配置下就可以,举一个例子,比如pcie支持多条Lane,VIP可以参数化配置2、4、8、16、32条Lane,dut可能为了产品需求的考量只有2条Lane,那么只需把VIP也配置成2条Lane即可。另外就是一些协议中规定的某个规则涉及到具体数字,要做成参数化,不同版本可能后续会变化,如果做成参数化,后续就只需要改配置就行。

协议升级:
后续可能会存在协议升级的可能,协议会变得更复杂,那要提前思考下协议后续的演进的方向是怎么样的,提前为后续可能出现的变换做好预计以及VIP架构上的考量,避免后续协议演进了,VIP要完全换另一种架构。

协议未说清楚的点:
协议有些点其实是并未写的很清楚的,此时需要与此领域专家或与出协议的人进行细致交流,搞清楚怎么实现更优。有时候协议中未说清楚的点,不同厂商在实现的是有差异的的,有些厂商很早把产品做出来了,虽然不符合协议,但是已经占有了市场,这个时候,后来做此协议的厂商也不得不适配已有厂商的产品,也就是要做两套,一套是完全符合协议的,一套是符合已有厂商的,这样通过配置来支持所有的情况。

难重点、复杂点
难重点、复杂的点实现起来很绕,一定要把方案进行详细推敲,考虑其后续可能出现的异常情况,做到尽量解耦。

dfx 和 debug手段:
VIP是软件代码,不想DUT,一仿真然后把信号就可以拉到波形上看,哪里错了很容易定位。VIP就没这么容易了,VIP可以将重要信号通过interface的形式,记录下来;另外就是可以把关键信息以文本log的形式打印出来,仿真结束了,除过基本的仿真和编译log外,还有专门生成的文本log,可以放自己想放的任何信息。

callback预留:
提前预留好callback口子,后续万一有新的变换,就非常容易修改了。

【验证技能】数字IC验证VIP开发总结相关推荐

  1. 芯片验证周期——数字IC验证

    芯片的验证周期大致可以分为RTL0.RTL1.RTL2.RTL3.GLS和TO,下面详细阐述各时间节点veriifier所需要做的具体内容. 节点 内容 RTL0 芯片框架和模式功能定义完成,指定验证 ...

  2. FPGA可以转行数字IC验证吗?

    近期在知乎上看到过一个问答"入职做fpga,后续是否还可以转数字ic设计或者DFT?"浏览量高达24,361,看来有很多小伙伴关心这个问题,今天就来和大家唠一唠FPGA转行的问题. ...

  3. 数字IC验证快速入门,你想知道的干货都在这里

    网上有很多人咨询关于数字IC验证的行情,下面大多数回答都说薪资高.机会多.发展好. 确实,一款芯片从立项到流片生产需要经过层层自测和验证,否则芯片注定是失败.可以说,IC验证是IC设计的关键所在. 验 ...

  4. 【数字IC验证快速入门】11、Verilog TestBench(VTB)入门

    导读:作者有幸在中国电子信息领域的排头兵院校"电子科技大学"攻读研究生期间,接触到前沿的数字IC验证知识,旁听到诸如华为海思.清华紫光.联发科技等业界顶尖集成电路相关企业面授课程, ...

  5. 数字ic验证门槛高吗?

    芯片行业薪资翻了3-5倍:2025年人才缺口或超30万 央视网快看消息,随着国产芯片产业高速发展,芯片人才匮乏的现象日渐凸显.如今,薪水增加和高薪挖人成为行业常态.某微电子公司的董事长称,以前招一个人 ...

  6. 【数字IC验证快速入门】1、浅谈数字IC验证,了解专栏内容,明确学习目标

    导读:作者有幸在中国电子信息领域的排头兵院校"电子科技大学"攻读研究生期间,接触到前沿的数字IC验证知识,旁听到诸如华为海思.清华紫光.联发科技等业界顶尖集成电路相关企业面授课程, ...

  7. ZEKU2021数字IC验证笔试题(解析)

    Zeku2022数字IC验证笔试 2.从综合出电路的电路看第一段代码比第二段代码优化的地方是 第一段代码: always @(posedge ck clk or negedge rst_n) beig ...

  8. 【数字IC验证快速入门】2、通过一个SoC项目实例,了解SoC的架构,初探数字系统设计流程

    导读:作者有幸在中国电子信息领域的排头兵院校"电子科技大学"攻读研究生期间,接触到前沿的数字IC验证知识,旁听到诸如华为海思.清华紫光.联发科技等业界顶尖集成电路相关企业面授课程, ...

  9. 【数字IC验证快速入门】45、UVM项目实践之APB_SPI(13)UVM 验证方法学总结

    导读:作者有幸在中国电子信息领域的排头兵院校"电子科技大学"攻读研究生期间,接触到前沿的数字IC验证知识,旁听到诸如华为海思.清华紫光.联发科技等业界顶尖集成电路相关企业面授课程, ...

最新文章

  1. linux磁盘分配方案,张明贵-Linux磁盘分区方案
  2. 一个域名解析到另一个域名_如何申请一个免费的域名?
  3. 【题意+推导讲解】1031 Hello World for U (20 分)_15行代码AC
  4. 【PyQt5】QT designer + eclipse 集成开发
  5. spring使用自定义注解_用Spring组成自定义注释
  6. 7、Cocos2dx 3.0游戏开发找小三之3.0版本号的代码风格
  7. VideoMemory, SystemMemory And AGPMemory
  8. 微信小程序点餐系统源码
  9. 5个超棒的自我提升App
  10. 想了解直播系统开发用什么语言?
  11. makefile编写总结
  12. preceding-sibling::*[1]
  13. ‘class QFontMetrics‘ has no member named ‘horizontalAdvance‘
  14. SpringBean生命周期详解 | 有图有真相
  15. RabbitMQ 集群详解部署(一)
  16. 用Python构造neo4j知识图谱(关于中成药的)
  17. 原来“卧槽泥马”是成语来的,我孤陋寡闻了
  18. 东数西算加快云网与数据融合 天翼云架起云间高速
  19. Tv 盒子开机时 焦点 无法指定
  20. Apache 降权 禁用php,什么是降权?

热门文章

  1. 手游sdk难道只是个简单的悬浮球吗?
  2. 2021-2027全球与中国便携式超声波探伤仪市场现状及未来发展趋势
  3. Mysql--day03
  4. s3c6410 时钟设置
  5. Qt 如此强大为什么就是火不起来呢?
  6. Tkinter Frame大小设置不起作用
  7. 启航—前端—第三次作业—百度页面
  8. 宠物经济风潮下,海归派Touchdog要搭快车真不易
  9. 少有的追剧时光~《传闻中的陈芊芊》追剧后感
  10. 脑机实验室系列 | 浙大求是高等研究院脑机接口研究所