数字IC芯片验证流程及验证工具推荐?收藏专用

验证其实是一个“证伪”的过程,从流程到工具,验证工程师的终极目的都只有一个:

发现所有BUG,或者证明没有BUG,以保证芯片功能性能的正确性和可靠性。

验证环节对于一颗芯片的重要性也是不言而喻的:

·从项目周期来说,功能验证在芯片的整个设计周期中占用时间最多,大概要占到70%左右。

·从项目成本来说,验证一颗芯片大概会占硬件开发总成本的50%。

接下来就来聊聊IC验证的流程和工具。

在这里插入图片描述
(文末可全文档)

理解DUT
验证工程师需要深入理解芯片Spec,包括但并不限于:了解架构、数据流向、基本功能、接口、IP、协议、寄存器定义等。

对Spec了解越详细,之后的验证工作就能够越充分。

使用工具:查看Spec使用最基础的Office软件即可

制定验证计划
对于芯片项目的Boss或者负责人来说,一份完整的验证计划需要包含:验证策略方法、人力资源调配、项目进度评估、风险评估等多项内容。

对于验证工程师来说,就应该考虑功能测试点、验证层次、验证方法和验证覆盖率等技术层面为主的内容,还需要在搭建验证环境之前充分review验证计划。

制定验证方法策略
一般会按照大的功能模块或数据流向对DUT进行划分,比如需要确定是在module/sub system/chip system哪个level去做验证。

搭建验证平台
根据验证方案来编写验证环境,一般会使用uvm平台,python脚本辅助来搭建环境,并通过冒烟测试来确定验证平台是否完善。

从时间线上来说,搭建验证平台可以和提取验证点并行进行。

提取测试点
测试点被验证工程师认为是“验证的圣经”,因为这是诸多工作开展的出发点和落脚点。一些公司会把这个步骤称作VO(verification objective),也有的公司叫做Test Point。

验证工程师在分解测试点时需要注意完备性、低耦合以及无歧义,然后将测试点罗列在Excel表格中。

理想情况下,验证工程师拿到测试点list和DUT之后,就可以写testcase进行验证了。

另外,在环境搭建、验证执行、用例调试、覆盖率分析等阶段也会不断对测试点进行修正和增补。

执行验证
根据提取出来的测试点,添加testcase在验证平台上去进行测试,这是一个需要反复迭代、反复优化的过程。

这个过程中会使用到vcs/xrun进行仿真、makefile编辑脚本、verdi/ncsim查看波形,并且要尽可能确保每个测试点的功能是否实现正确。

收集验证覆盖率
需要收集功能覆盖率和代码覆盖率,增补用例,以确保覆盖率达到100%。一般可以通过imc或Verdi来查看覆盖率报告。

一些规模比较大的IC设计公司,会设置专门的岗位来收集验证覆盖率。

完成验证报告
验证报告通常需要包含checklist、覆盖率分析、难点覆盖情况等内容。

上述环节概述了验证工程师比较主要的工作流程。

但其实验证是贯穿着整个IC设计流程的,在芯片开发过程中只要发现问题或缺陷,就需要进行修正和改进,直到设计符合预期的要求为止。

从提取验证点、编写验证方案到搭建验证环境再到具体验证执行环节的Debug,每一步都需要经验的加持。

入行两三年的工程师和十年经验的工程师,在细节方面的把控是完全不同的。

而验证,恰好是一个细节为王的岗位。这也就是为什么ic验证工程师越老越吃香的原因之一。

工作特性要求验证工程师要做的并不仅仅只是用EDA工具进行仿真验证,而是从系统架构到应用层面对自己所负责验证的模块进行深入了解。

既要能够如验证计划要求的那样工作在最高层,也要能够在最底层植入错误进行自我检查。

需要上述学习搭建UVM验证环境文档的同学可按需领,可以直接分享给大家~

这里放个口:学习搭建UVM验证环境文档领取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/222776.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring-boot集成mybatis-generator

通用 Mapper 在 1.0.0 版本的时候增加了 MyBatis Generator (以下简称 MBG) 插件&#xff0c;使用该插件可以很方便的生成实体类、Mapper 接口以及对应的 XML 文件。 下面介绍了 mybatis-generator 在 spring-boot 中的使用过程 一、引入pom依赖 <dependencies><de…

视频合并方法:视频剪辑、合并,高效操作,轻松制作大片

在数字媒体时代&#xff0c;视频剪辑已经成为展示创意和表达自我的重要方式。通过剪辑和合并视频片段&#xff0c;可以将不同的素材组合在一起&#xff0c;制作出更加丰富和有表现力的作品。在视频合并之前&#xff0c;要对视频素材进行剪辑。通过剪辑&#xff0c;可以删除不需…

怎么把视频声音提取成MP3?一分钟解决!

有的时候&#xff0c;我们在看一些综艺访谈节目的时候&#xff0c;觉得里面干货满满&#xff0c;会忍不住想单独把音频下载出来单独听&#xff0c;还可以防止会员到期后不可以再播放&#xff0c;下面就向大家介绍三种好用的视频音乐提取成MP3的方法。 方法一&#xff1a;使用野…

〔005〕虚幻 UE5 像素流多用户部署

✨ 目录 ▷ 为什么要部署多用户▷ 开启分发服务器▷ 配置启动多个信令服务器▷配置启动客户端▷多用户启动整体流程和预览▷注意事项▷ 为什么要部署多用户 之前的像素流部署,属于单用户,是有很大的弊端的打开多个窗口访问,可以看到当一个用户操作界面的时候,另一个界面也会…

计算机毕业设计 基于SpringBoot的智能停车场计费系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

CSC公派博士后|管理学老师赴韩国首尔大学达成目标

J老师自身背景正好卡在CSC公派博士后申报条件的边缘&#xff0c;为增大通过概率&#xff0c;其提出优选亚洲范围内的世界知名高校、专业相符、2年博士后职位的要求。最终我们用韩国首尔大学的邀请函助其顺利获批CSC&#xff0c;实现了所有既定目标。 J老师背景&#xff1a; 申…

Nginx Openresty通过Lua+Redis 实现动态封禁IP

需求 为了封禁某些爬虫或者恶意用户对服务器的请求&#xff0c;我们需要建立一个动态的 IP 黑名单。对于黑名单中的 IP &#xff0c;我们将拒绝提供服务。并且可以设置封禁失效时间 环境准备 linux version: centos7 / ubuntu 等 redis version: 5.0.5 nginx version: nginx…

FreeRTOS源码阅读笔记6--event_groups.c

通常用的事件标志组是一个32位的变量uxEventBits&#xff0c;可设置的位有24位&#xff0c;一共就是24 种事件。 事件组的结构体类型&#xff1a; 6.1创建事件组xEventGroupCreate() 6.1.1函数原型 返回值&#xff1a;事件组句柄&#xff0c;指向事件组。 6.1.2函数框架 ①…

科技与教育:未来教育的新趋势

在21世纪&#xff0c;科技的快速发展正在深刻地改变教育行业。从在线学习平台到虚拟现实教室&#xff0c;科技为教育带来了革命性的变化。本文将探讨科技如何影响现代教育&#xff0c;并预测未来教育的发展趋势。 一、科技在教育中的应用 在线学习平台&#xff1a;通过平台如C…

大导演王晶进军短剧,小程序短剧质量再上一层,短剧小程序的

在2023年11月26号&#xff0c;大导演王晶在横店进行开机仪式&#xff0c;短剧《亿万傻儿子》开拍&#xff0c;该短剧题材为都市、男频。 目前短剧是比较热门&#xff0c;大导演王晶拍摄短剧可谓是将短剧的质量提高一个层次。 侧面反映了短剧已经是非常广泛了。后续发展就是哪家…

深入探索Maven:优雅构建Java项目的新方式(一)

Maven高级 1&#xff0c;分模块开发1.1 分模块开发设计1.2 分模块开发实现 2&#xff0c;依赖管理2.1 依赖传递与冲突问题2.2 可选依赖和排除依赖方案一:可选依赖方案二:排除依赖 3&#xff0c;聚合和继承3.1 聚合步骤1:创建一个空的maven项目步骤2:将项目的打包方式改为pom步骤…

DEM分析

一、实验名称&#xff1a; DEM分析 二、实验目的&#xff1a; 通过本实验练习&#xff0c;掌握DEM的建立与应用基本方法。 三、实验内容和要求&#xff1a; 实验内容&#xff1a; 利用ARCGIS软件相关分析工具及实验数据&#xff0c;创建DEM&#xff0c;并计算相应坡度的区…