数字IC设计入门(9)初识数字芯片验证

article/2025/10/13 15:02:33
  1. 什么是验证及验证方法学?

芯片验证就是采用相应的验证语言,验证工具,验证方法,在芯片生产之前验证芯片设计是否符合芯片定义的需求规格,是否已经完全释放了风险,发现并更正了所有的缺陷,站在全流程的角度,它是一种防范于未然的措施。我们知道芯片流片回来测试时发现硬件bug,那时基本就无力回天了(芯片内的硬件bug一般都没办法修正,当然部分bug是可以通过软件或烧efuse等措施来屏蔽),因此把问题拦截在流片之前非常之重要,这正是验证存在的意义。
什么是验证方法学?验证工程师绕不开的一个基本概念。芯片规模越大功能越复杂,潜在的问题也就越多,验证的难度也就越大,验证方法学,就是研究怎样降低验证工程复杂度的同时,还能保证验证的可靠性,提升验证效率的一门学问。从它被提出到今天,其核心依然是带约束的随机激励、覆盖率驱动以及重用,并利用面向对像语言的特性对常用功能进行高度封装,再提供统一的事物层接口使不同抽象层级的建模数据得以共享和有效通信,从而极大地提升验证平台的构建效率,并加速EDA仿真,最终对缩短芯片面市周期做出贡献。

  1. 验证的主要工作

芯片验证的主要工作是根据规格文档和详细设计文档提取验证功能点编写测试激励并搭建验证环境,或利用已有的验证环境对DUT进行验证和回归。验证具体岗位还可以进行细分,例如功能仿真验证,FPGA原型验证,硬件模拟加速平台验证(Palladium,ZeBu,Veloce),后端时序验证等,常见工作如下。
熟悉芯片规格,主要是学习各种相关的文档材料,包括但不限于协议、需求、规格、功能说明、历史芯片文档、重用环境评估与恢复。
提取验证功能点(非常重要),测试点一般分解过程如下,首先根据各种文档梳理出验证特性,然后根据验证特性细化出测试点。
功能点提取过程
测试点分为场景类、功能类、性能类、白盒测试点(设计人员提供)、接口类、异常类等维度,全面、明确、细致,无歧义的将所有验证特性细化为一个个不可分割的小点,每个点明确采用directtest还是coverage覆盖还是assertion覆盖。功能覆盖需要细化覆盖范围,比如典型值、边界值、异常值、cross。当然测试点也不是一次分解完成,在整个验证过程中会进行多次分解和review,直至完善。

测试点分解绝对算是芯片验证工作中的最重要的一环,是充分体现验证人员经验、能力、智慧、价值的一项工作。芯片中的bug往往都是没有想到的点或者没有覆盖到的点。所以测试点分解一定要追求完备、细致、无歧义,要做到测试点分解完成后,无论哪个验证人员测试,验证质量都是有保证的。过于粗糙的测试点会导致不同的验证人员在测试用例设计时有不同的理解和实现,或许就会遗漏掉一些corner点。同时粗糙的测试点也会造成工作量评估不准确,导致后期突发任务增多,造成项目延期。
撰写模块级和系统级验证方案
对于验证方案,每个公司可能有不同的标准,目的是设计验证架构指导后续验证工作,保证所有测试点都能在该验证过程中覆盖到。标准化、参数化的方案设计是非常重要,要考虑到该模块的后期集成和重用,验证方案中一般还包括进度安排、风险评估等。

注意:设计参考模型或checker时一定不要过多参考设计方案或代码,理论上设计和验证从spec开始就要分开,是平行独立的两条线,过多的参考设计是非常不可取的,造成的后果就是参考模型/checker和设计代码实现一样,case总是一跑就过,完全测试不出设计bug。
开发验证环境、参考模型和验证脚本
这是验证人员的基本功,一个足够完备灵活自动化的验证环境能节省后面测试用例实现的很多工作量,测试用例会变得很简单,不同的测试用例只需要开关某些配置和修改一些约束;反之一个糟糕的验证环境会让测试用例变得冗长、复杂、低效。软仿测试平台现在流行基于UVM搭建环境,一般使用高级硬件语言如SystemVerilog开发。
验证执行
验证执行阶段,按照测试点一个一个进行覆盖,写测试用例(直接测试、随机测试)、debug,后期进行代码覆盖率和功能覆盖率的收集分析、用例增加以及最后用例检视。这个阶段把验证发现的debug做好登记。
撰写验证报告
验证执行做完后,需要输出验证报告(一般都会有评审环境),报告主要包括各功能点覆盖情况、代码覆盖情况、性能分析、功耗分析、风险评估等类容。
⑦配合芯片设计工程师查找修复设计缺陷,带领其他工程师完成项目验证工作;协同设计和固件工程师在硬件加速器/FPGA平台进行验证调试;与硬件工程师共同确立硬件实现方案,提供硬件设计建议;协助测试工程师完成芯片测试等工作也是验证人员需要干的活。

  1. 数字IC验证流程

一般认为数字芯片验证,就是对RTL代码进行EDA仿真,并从中发现RTL代码BUG后,再提交设计工程师进行BUG修复的过程。实际项目操作中,验证工作的参与不仅仅是在RTL代码的仿真阶段,它应该贯穿整个项目的始终。如果说开发一颗芯片是一场战斗,那么设计与验证是同时投入,积粮草、挖战壕、冲锋陷阵都在一起,但拼杀结束后,设计可以陆续撤离,而验证则要负责打扫战场,确认所有敌人都不再喘气儿,保证万无一失。
下面用这张图示意验证各重要环节在整体开发流程中的位置与配合关系。
芯片设流程图
架构师从原始需求提炼出来功能规格(FS)与架构规格(AS),两套流程使用不同的思路和方式对其进行实现,实现过程中互为对照同步收敛,产生分歧时以架构为根本决策依据,最后殊途同归。

验证流中,首要环节为测试提取测试点,验证的后续所有动作基本都是围绕测试点来展开的。测试点是验证活动的核心,直接决定验证结果的可靠性与完备性,非常重要,但因为它是一个相对主观东西,很大程度上依赖于工程师的经验、理解能力、以及责任心,可以说衡量一名验证工程师的技术水准。

接着是验证平台搭建,这部分现在已经非常标准化,大部分公司都使用UVM,基本框架都差不多,主要取决于对UVM的理解与System Verilog的编程能力。

验证环境搭建完成后,要进行自测试以排除低级简单的错误,这是一个简单而必要的步骤,完成设计代码与验证环境的第一次集成。接下来就进行Sanity Test(冒烟测试),顾名思义,就是一跑就冒烟挂了。这是设计代码和验证环境都刚刚完成后的测试,目的就是确保寄存器读写OK和打通基本数据流。这个过程设计人员和验证人员高度配合,发现bug会立即修改。这个过程会发现很多代码问题,这个阶段发现的bug一般不提问题单。

冒烟测试完成后,DUT已经基本可以正常工作,这时候就正式开始进入验证执行阶段。验证是一个不断迭代的过程,需要不断编写或修改测试用例来覆盖功能点和rtl代码。仿真中发现问题,更正问题,记录问题,回归测试,往复循环的同时,分析功能覆盖率与代码覆盖的空洞,根据分析结果增加用例运行次数,或者调整随机约束,或者增加direct testcase,使覆盖率趋于收敛。Regression 在Sanity test后将一直持续到Tape Out。

EDA仿真到最后,出口标准主要有三个,一是所有testcase全部通过,二是代码覆盖率达标,最后是功能覆盖率达到100%。

  1. 需掌握的知识点

①linux基础,脚本语言(bash、tcl、perl、python等,要掌握一门或多门脚本语言);
②数字电路和IC设计基础知识;
③C/C++、Verilog、System Verilog编程语言;
④验证方法学(UVM)。
以下书籍可以作为入门教材。
《数字电子技术基础(第五版)》阎石 主编
《Verilog数字系统设计教程》
《SystemVerilog测试验证平台(中文版)》
《UVM实战》
《芯片验证漫游指南―从系统理论到UVM的验证全视界》

关于更多芯片介绍类文章和芯片设计资料请看以下链接。
https://blog.csdn.net/weixin_43745611/article/details/108305382

本文是通过收集网上资源整理,版权属于原作者。主要源自以下两篇博文。
https://zhuanlan.zhihu.com/p/165336811
https://blog.csdn.net/wordwarwordwar/article/details/78841528


http://chatgpt.dhexx.cn/article/3u5WIP7D.shtml

相关文章

【数字IC基础知识1之数字芯片设计流程

一,数字芯片设计流程 数字芯片设计分为前端设计和后端设计,其中前端(又称逻辑设计)包括以下部分: 1,需求分析 2,功能架构设计 3,RTL代码设计 4,功能仿真验证&#xff0…

数字芯片设计流程之verilog设计

数字芯片设计流程: 功能验证之前与工艺库没多大联系,验证芯片设计的功能是否正确,针对抽象的代码进行功能验证理想值。 一致性验证确保生成的网表和代码设计功能一致;DFT之后是数字后端。 静态时序分析,从逻辑综合开…

数字芯片设计全流程

设计全流程 IDM:Flabless-Fab-OSTA Flabless:设计需求-RTL文件(寄存器传输级电路)-后端设计-GDS版图 EDA工具、半导体IP Fab:工艺制造-晶圆裸片 半导体设备、材料 OSTA:封装测试-芯片 数字ASIC设计流程 SOC设计流程 前端设计…

常见数字芯片功能描述总结

文章目录 1. 74HCT541芯片:【三态输出驱动器】1.1 学名1.2 功能描述1.3 引脚图(摘自手册)1.3.1 引脚描述1.3.2 功能真值表 1.4 参考电路 2. 74HCT574芯片:带锁存功能的【三态上升沿触发器】2.1 学名2.2 功能描述2.3 引脚图&#x…

java编程常用软件

有大神曾说“给我一个记事本,我还你一个项目”,作为小白的我,以前也对这句话深信不疑,但当我参加人生第一次编程考试的时候,我发现我用记事本码代码的速度实在是太慢了,一样的代码,别人用eclips…

软件:推荐八款电脑实用软件,你都用过吗?

今天给大家推荐八款电脑非常实用的软件,希望对大家能有所帮助! 1、Audio Hijack Pro 一款Mac 上的录音软件。它比较强大的功能是可以录制多个应用的声音,然后组合成一个结果,然后输出。2、快贴 一个跨平台剪切板同步软件。你只需要…

Java程序员常用软件

目录 1、IDE 2、应用服务器 3、分布式版本控制 4、项目管理 5、数据库管理工具 6、Web服务器 7、接口测试工具 8、SSH工具 9、抓包工具 10、其他一些软件 工欲善其事必先利其器,作为有多年开发经验的Java程序员,应该都会有一些常用的软件来辅助…

电脑软件:推荐5款实用的效率软件

目录 1、图片管理神器-Image Tuner 2、系统维护神器-Dism 3、桌面效率神器-蜂窝桌面整理 4、键鼠模拟软件-按键精灵 5、书签管理神器-Toby for Chrome 今天小编大家推荐5款实用的效率神器,希望对大家能有所帮助! 1、图片管理神器-Image Tuner 1000张图片…

五个计算机常用应用软件,这些电脑软件很常用 日常必备软件就是它了

5个超良心电脑软件,每一个功能都十分强大!请低调使用! 很多软件你听到很多人在说,但不一定好用;有的软件没有听过但却十分的好用!今天就为大家介绍五款小众但很好用的电脑软件! 一:Internet Download Manager(IDM) 这是一个非常好用的下载器&…

备份计算机软件,如何备份电脑里面的软件

最近,小编电脑系统重装了,发现需要使用的软件要一个一个重新安装非常麻烦。吃一堑长一智,小编觉得有必要对电脑里的常用软件进行一下备份,那么,如何备份电脑里面的软件?下面,给大家推荐一些软件备份工具,希望大家可以帮到大家! 软件备份工具推荐: 以下排名不分先后 一…

用计算机打开软件,电脑上如何打开软件?

电脑已经成为现代企业办公的重要组成部分,而电脑上各种软件的使用又是必不可少的。那么如何在电脑上打开一款软件呢?小编汇总了几种常用的方法,希望对你有所帮助哦! 方法1:双击桌面快捷方式 这是一种最常用也最快捷简单…

计算机科学的常用软件,常用的电脑必备软件清单,6款最顶尖实用的黑科技软件,你都装了没?...

原标题:常用的电脑必备软件清单,6款最顶尖实用的黑科技软件,你都装了没? 现如今,在工作、生活以及学习当中越来越离不开电脑和手机,其中电脑可以说在我们学习和工作中我们经常,这就导致在每个人…

计算机软件图标不正常,电脑桌面软件图标显示异常

电脑桌面某个图标显示不正常 电脑桌面所有的图标不正常是系统问题或者设置问题,某个图标的问题,是该图标所属的软件出现了问题,可以找到这软件,然后重新下载一个,覆盖安装后即可解决。 图标是具有明确指代含义的计算机图形。 其中桌面图标是软件标识,界面中的图标是功能标…

Windows常用必备软件整理,太全了,值得收藏

目录 1、Office系列 2、杀毒软件 3、视频播放和视频处理 4、音乐播放 5、压缩解压 6、输入法 7、PDF阅读软件 8、文件加密 9、网盘 10、社交聊天 11、日常办公软件 ‍12、图片/照片处理‍ 13、系统自带的工具 Windows常用必备软件整理,太全了,值得收藏&…

有哪些实用的电脑软件值得推荐?

本期给大家推荐10款实用软件,让你的电脑舒适度提升9999%; 同时,也为大家盘点了10款流氓/捆绑软件,建议彻底删除/卸载! 10款必装的实用软件: 1、火绒安全 这款软件已经有无数人推荐了,相比起那些喜欢捆绑的流氓软件,这款安全软件绝对算是一股清流了。 除了拥有简洁的界面…

个人电脑日常必备软件推荐,无广告、好用、持续更新

目录 引言1. 杀毒软件2. 浏览器3. 视频浏览器4. 解压缩软件5. 下载器6. 软件卸载器7. 桌面整理软件8. Moo0工具集9. OBS录屏及导播总结 引言 最近被实验室的电脑实在整的无语了,各种垃圾弹窗、各种捆绑安装、各种涉h推荐,严重影响工作效率。最后删除各种…

bim软件电脑配置测试,BIM软件对电脑配置要求

原标题:BIM软件对电脑配置要求 很多刚接触BIM的小伙换,对于其强大的功能感到惊叹的同时,纷纷表示出对于其浓厚的学习兴趣。因为BIM对于数据处理能力与CAD比超越太多了,导致BIM软件对电脑配置要求也是很高,这里笔者就以…

常用计算机制图软件,常用的电脑画图软件有什么?

常用的电脑画图软件有什么?在21世纪,学习动漫绘画,就离不开绘图软件,绘图软件以其便捷性,让绘图工作加快了无数倍,是现代绘画从业人员离不开的绘画工具。那么,关于常见的动漫绘图软件同学们知道…

大学生、办公人员电脑必备的10款实用软件 简直是太好用了

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1、文件搜索工具:Everything2、文件预览工具:Seer3、数据恢复工具:DiskGenius4、系统清理工具:CCleaner5、护眼工…

计算机常用压缩软件有哪些,电脑压缩软件哪个好推荐

压缩软件是办公人士再熟悉不过的软件了,一般我们常见到的压缩包基本上都是需要使用解压缩软件来进行打包或者解压的。市面上的压缩软件有收费也有免费的,可是作为小白的我们该如何选择电脑压缩软件,压缩软件哪个好你知道吗? 电脑压…