数字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.mzph.cn/news/174435.shtml

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

相关文章

第四十三天|1049. 最后一块石头的重量 II 494. 目标和 474. 一和零

1049. 最后一块石头的重量 II 其实还是尽量把背包装满 class Solution { public:int lastStoneWeightII(vector<int>& stones) {int sum0;for(int a:stones){suma;}int targetsum/2;vector<int> dp(target1,0);for(int i0;i<stones.size();i){for(int jta…

数据结构 | 排序

插入排序 直接插入排序&#xff08;空间复杂度为1&#xff0c;排序后稳定&#xff09; 思路&#xff1a; 在待排序的元素中&#xff0c;假设前n-1个元素已有序&#xff0c;现将第n个元素插入到前面已经排好的序列中&#xff0c;使得前n个元素有序。按照此法对所有元素进行插入&…

【华为OD】B\C卷真题 100%通过:找城市 多叉树实现 python源码

【华为OD】B\C卷真题 100%通过:找城市 多叉树实现 python源码 目录 题目描述&#xff1a; 示例1 示例2 解题思路&#xff1a; 代码实现&#xff1a; 题目描述&#xff1a; 一张地图上有n个城市&#xff0c;城市和城市之间有且只有一条道路相连&#xff1a;要么直接相连&…

快速排序算法,这么写打败95%的程序员

1960年&#xff0c;英国计算机科学家霍尔提出了一种高效的排序算法——快速排序。其核心思想是选定一个基准元素&#xff0c;将需排序的数组分割成两部分。其中一部分都比基准元素小&#xff0c;另一部分都比基准元素大。接着对这两部分分别进行快速排序&#xff0c;最后通过递…

jQuery_07 函数的使用

在jQuery中&#xff0c;如何使用函数呢&#xff1f; 1.基本函数 函数(常用的) 其实有很多函数&#xff0c;但是我们只需要掌握常用的函数即可 1.val 操作dom对象的value val() 没有参数 获取dom数组中第一个dom对象的value值 val(value) 有参数 设置dom数组中所有dom对象的…

UE5人物残影学习(材质实现)

学习视频 UE4简单的材质球残影人教学&#xff0c;你学会了吗&#xff01;_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1rY411q7Yb/?spm_id_from333.788.top_right_bar_window_history.content.click 结果预览 1.创建残值&#xff0c;混合模式勾选半透明 “混合模…

经典神经网络——GoogLeNet模型论文详解及代码复现

论文地址&#xff1a;[1409.4842] Going Deeper with Convolutions (arxiv.org) 一、GoogLeNet概述 创新点 我认为&#xff0c;这篇文章最大的创新点是引入了一个名为Inception块的结构&#xff0c;能够增加神经网络模型大小的同时&#xff0c;减缓参数量的爆炸式增长&#x…

VMware 系列:VMware ESXI7.0的安装与配置(全过程超详细含中英文对照,附应知必会的理论基础和常见故障解决方案)

VMware ESXI7.0的安装与配置(全过程超详细含中英文对照,附应知必会的理论基础和常见故障解决方案) 文章篇幅较长,大家耐心食用。下次还是会基于目前安装配置阶段,继续分享ESXI 服务器中安装虚拟机的流程和技巧。一、VMware ESXI7.0版本的安装与配置(一)概述。解析:解析…

【数据结构】图<简单认识图>

对于下面的内容&#xff0c;大家着重观察和理解图即可&#xff0c;可以直接绕过一些文字性的概念&#xff0c;对图有一个大概的认识。 图 简单认识图图的定义有向图和无向图完全图无向完全图有向完全图 图的基本存储结构邻接矩阵存储邻接矩阵的优点 网络的邻接矩阵邻接表无向图…

计算机视觉面试题-02

图像处理和计算机视觉基础 什么是图像滤波&#xff1f;有哪些常见的图像滤波器&#xff1f; 图像滤波是一种通过在图像上应用滤波器&#xff08;卷积核&#xff09;来改变图像外观或提取图像特征的图像处理技术。滤波器通常是一个小的矩阵&#xff0c;通过在图像上进行卷积…

pytorch安装GPU版本 (Cuda12.1)教程

使用本教程前&#xff0c;默认您已经安装并配置好了python3以上版本 1. 去官网下载匹配的Cuda Cuda下载地址 当前最高版本的Cuda是12.1 我安装的就是这个版本 小提示&#xff1a;自定义安装可以只选择安装Cuda Runtime。Nvidia全家桶不必全部安装。把全家桶全部安装完直接系统…

段错误的愿意和调试方法

段错误的愿意和调试方法 主要的原因&#xff1a; 访问了不存在的内存指针访问系统保护的内存地址方位只读的内存地数组越界栈溢出 主要查看&#xff0c;指针的问题是否出现错误使用 方法1. gdb直接调试 使用run命令直接报错&#xff0c;查看 方法2. 调试core文件&#xf…

C#学习-8课时

P10 输入输出程序编写 相同类型的可以直接相加&#xff1b; cwtabtabconsole.Writeline(); using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace C_8_1 { class Program { s…

关键路径-STL版/拓扑排序 关键路径【数据结构】

关键路径-STL版 题目描述 给定有向图无环的边信息&#xff0c;求每个顶点的最早开始时间、最迟开始时间。 输入 第一行图的顶点总数 第二行边的总数 第三行开始&#xff0c;每条边的时间长度&#xff0c;格式为源结点 目的结点 长度 输出 第一行&#xff1a;第个顶点的最早…

性能压测工具:wrk

一般我们压测的时候&#xff0c;需要了解衡量系统性能的一些参数指标&#xff0c;比如。 1、性能指标简介 1.1 延迟 简单易懂。green:一般指响应时间 95线&#xff1a;P95。平均100%的请求中95%已经响应的时间 99线&#xff1a;P99。平均100%的请求中99%已经响应的时间 平…

案例030:基于微信小程序的英语学习交流平台

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

电子学会C/C++编程等级考试2021年12月(三级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:我家的门牌号 我家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。 若所有的门牌号之和减去我家门牌号的两倍,恰好等于n,求我家的门牌号及总共有多少家。 数据保证有唯一解。 时间限制:1000 内存限制:65536输入 一个…

CSGO搬砖如何选品?选品软件和教程靠谱吗?

说到CSGO搬砖项目&#xff0c;目前平台最火的就是CSGO游戏搬砖。在CSGO搬砖项目中&#xff0c;选品是至关重要的环节&#xff0c;直接影响到利润。而选品软件可以帮助我们更快地了解市场变化、计算成本利润等关键信息&#xff0c;提高选品的效率和准确性。可靠的选品软件还能够…

简易版王者荣耀

所有包和类 GameFrame类 package newKingOfHonor;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.util.ArrayList;im…

如何使用技术SEO来优化产品轮播

SEO&#xff08;搜索引擎优化&#xff09;对你来说并不陌生。现代电子商务系统通常包含旨在吸引谷歌等搜索引擎机器人注意的关键字。 但是&#xff0c;技术 SEO 在代码和服务器级别调查电子商务 SEO 策略。它改善了网站的技术因素&#xff0c;例如页面加载的速度以及抓取的直接…