(转)IC验证概述

验证是确保设计和预定的设计期望一致的过程,设计期望通常是通过设计规范来定义的。对于芯片设计,在不同的阶段可以分为:寄存器传输级(RTL)的功能验证、门级的仿真验证、形式验证以及时序验证。我们通常所说的验证一般是指RTL验证。

验证工作根据设计规范进行,详细的设计规范是RTL编码的依据,也是验证工作的依据。当验证过程发现被测设计(DUT)的响应与验证平台(Testbench)的期望不符时,需要根据设计规范判断是DUT出现错误还是Testbench出现错误,因此完整的、详细的设计规范是验证工作的重要起点。 当验证工程师拿到设计规范后,就可以开展验证工作了,验证工作可以分成三个阶段:计划阶段,实施阶段和分析总结阶段。

计划阶段主要工作是充分理解设计规范,根据设计规范提取验证需求和编写验证计划。验证计划中,需要提取验证需求,制定验证策略,确定验证语言和验证方法学,验证方法,验证平台的层次和架构,规划测试用例及结果检查机制等等。总之后续验证工作中需要的事物都可以在验证计划中体现出来。对于一个被测设计而言,验证的目的是确保该设计能成功的完成预期的任务,准确的表达设计规范,除了理解设计规范的细节之外,还需要明确预定功能的设计边界。比如我们在测试一个MP3产品时,不能测试是否可以打电话,但一般要测试广播功能,也就是说边界之外的功能是不用去关心的。

实施阶段是根据验证计划来编码实现验证DUT的过程,主要包括搭建验证平台,创建测试用例,开发仿真及统计分析脚本,用例的运行及调试。验证平台主要用于产生激励,把激励施加到DUT上去,捕捉响应并进行正确性检查。同时还会对平台代码的层次化、重用性、功能覆盖率、代码的仿真性能和自动化方面做一些考量。验证一般使用专有的硬件验证语言(HVL),并使用验证方法学建立一个可升级、可预期、可重用的验证环境。当前主流的验证方法有基于Specman E语言的eRM, 基于Systemverilog语言的VMM、OVM与UVM,尤其以UVM最为主流,它们都涵盖了多种先进的验证技术。既能提升现有验证方法,也能充分利用验证过程自动化,功能覆盖,断言这些特点建立一个全面通用验证环境。验证过程中需要使用脚本运行仿真,进行结果检查,数据收集及分析,帮助调试并debug,通常使用Makefile、shell、perl、python、TCL等脚本语言。而前端仿真工具一般使用Mentor的Questsim,Synopsys的VCS以及Cadence的IUS,每家工具都有各自的特点,使用其中任意一种都可以很好的完成验证仿真工作。

分析总结阶段包括回归测试、覆盖率分析及输出验证报告。覆盖率测量数据有两方面重要作用:一方面能明确指出设计中还没有被充分验证到的部分,确定验证过程的漏洞。并通过补充特定的直接测试用例,或改变带约束的随机测试用例的参数来提高验证的充分性。另一方面,覆盖率测量数据是验证已经足够充分,可进行流片的指示器。覆盖率分为两大类:代码覆盖率和功能覆盖率。代码覆盖率包括多种形式(行覆盖,翻转覆盖,条件覆盖,状态机覆盖,表达式覆盖等),它是一个自动化过程,仿真工具可以自动收集并输出报告。在一个特定仿真运行中,覆盖率可以体现所有 RTL设计描述代码是否被执行。代码覆盖率是必要条件,但不是充分条件。功能覆盖率则提供了一个外在度量方法,确定设计规范功能点有多少被正确实现。覆盖率测量数据达到指标后,可以表示RTL验证工作告一段落。最后,需要把验证结果、覆盖率数据,以及覆盖率分析结果输出到验证报告并存档,验证报告还应包含整个验证过程中遇到的问题及解决方案等。

RTL验证结束后,有的还需要进行后端网表验证及辅助芯片测试等工作。总之,对RTL验证来说,难点在于如何能够产生所有可能的输入施加到DUT上,并确定DUT输出正确与否。这就要求验证工程师不断深入理解设计规范并转化为有效的测试用例,尽可能的提早发现设计缺陷并修正,使所验证的模块和整个芯片能够100%完成预期的功能。

注:?本文为“E课网”原创,版权归“E课网”所有,欢迎分享!如需转载请回复“转载”。转载时请注明文章作者“E课网”.

作者:kris. IC验证领域专家,从事IC验证工作多年,拥有丰富的验证理论知识和项目实践。芯片设计验证资深讲师,国核自仪企业培训(SVA),多家集成电路研发企业芯片验证顾问

时间: 2024-11-05 16:08:46

(转)IC验证概述的相关文章

一起学IC验证:推荐资料合集,收藏专用

本文是从一个微信公众号上复制过来的,链接:https://mp.weixin.qq.com/s?__biz=MzIyMjYxNzA4NQ==&mid=2247484965&idx=1&sn=af7e8303c0ecac530067f02244734fe1&chksm=e82b8ab7df5c03a190b286ef9b504efa4fc080629de767466c73f171e238af227ca097d83d0c&scene=21#wechat_redirect

IC验证基本流程

ASIC开发流程 逻辑开发流程 ASIC后端知识 在ASIC设计过程中通常把需求分析.系统设计.模块设计编码.RTL仿真等过程称为前端设计:这些过程 跟vendor无关,而把和vendor相关的综合功能验证.时序验证.Floorplan.电气功能.layout等称为后 端设计.这里说的后端设计中一般有四个关键点:85%网表阶段,95%网表阶段,100%网表阶及signoff. 逻辑设计流程之 V&V模型

交叉验证概述

交叉验证 交叉验证(Cross-validation)主要用于建模应用中,例如PCR .PLS 回归建模中.在给定的建模样本中,拿出大部分样本进行建模型,留小部分样本用刚建立的模型进行预报,并求这小部分样本的预报误差,记录它们的平方加和. 中文名 交叉验证 外文名 Cross validation 实    质 建模应用中 特    点 PCR .PLS 回归建模中 目录 1 概念 2 基本思想 3 目的 4 常见的交叉验证形式 ? Holdout 验证 ? K-fold cross-valid

VerilogHDL概述与数字IC设计流程学习笔记

一.HDL的概念和特征 HDL,Hard Discrimination Language的缩写,翻译过来就是硬件描述语言.那么什么是硬件描述语言呢?为什么不叫硬件设计语言呢?硬件描述语言,顾名思义就是描述硬件的语言,它用文本的形式来描述电子系统硬件结构和行为,是一种用形式化方法来描述数字电路和系统的语言.正是因为如此,硬件与软件不一样,他不像软件,你某天突发奇想,想实现某个的界面,搞搞代码就OK了.硬件它是由实实在在的物理器件搭载而成,用抽象的语言怎么可能弄出一个电路来呢? 一门语言,总有那么一

ASP.NET MVC3中Model验证

原文:ASP.NET MVC3中Model验证 概述 上节我们学习了Model的数据在界面之间的传递,但是很多时候,我们在数据传递的时候为了确保数据的有效性,不得不给Model的相关属性做基本的数据验证. 本节我们就学习如何使用 System.ComponentModel.DataAnnotations 命名空间中的特性指定对数据模型中的各个字段的验证. 这些特性用于定义常见的验证模式,例如范围检查和必填字段.而 DataAnnotations 特性使 MVC 能够提供客户端和服务器验证检查,使

【转】Fabless IC设计公司职位职能划分

原帖地址 http://bbs.eetop.cn/thread-206314-1-69.html 数字IC前端设计工程师:职能:负责RTL级的电路建模,单元级验证,附加:综合.算法.要求:需数集电知识. 数字IC后端设计工程师:职能:P&R,layout版图设计.要求:需半导体物理工艺知识. 模拟IC设计工程师:职能:模拟电路设计,版图layout.要求:需模集电知识,半导体物理器件工艺知识. IC验证工程师:职能:主要面向数字或数模混合电路的验证,负责IC电路的模块级.芯片级验证(凡芯片级和系

Struts运行流程分析与声明式验证

strust2运行流程分析 1.发送一个HttpServletRequest给StrutsPrepareAndExecuteFilter 2.StrutsPrepareAndExecuteFilter询问ActionMapper:该请求是否是一个Struts2请求(即是否返回一个非空的ActionMapping对象) 3.若ActionMapper认为该请求是一个Struts2请求,则StrutsPrepareAndExecuteFilter把请求的处理交给ActionProxy 4.Actio

通过 Membership用户存储验证用户凭据,实现会员控制

对于使用表单身份验证的 web 网站来说 , 用户通过访问登录页面并输入自己的凭据来登录网站.系统会将用户输入的凭据与数据库中的内容相对比.如果凭据有效,则会授予该用户一个表单身份验证票证,该票证是一个安全令牌,用以指示该访问者的身份标识和真实性. 本文实例说明怎样吧验证工作委托给已配置的 Membership 提供者. 一,数据库准备及配置Web.config 如果数据库是由aspnet_regsql创建的(运行aspnet_ressql.exe会自动生成11个以aspnet_开头的数据库),

Sklearn-CrossValidation 交叉验证

1. 交叉验证概述 进行模型验证的一个重要目的是要选出一个最合适的模型,对于监督学习而言,我们希望模型对于未知数据的泛化能力强,所以就需要模型验证这一过程来体现不同的模型对于未知数据的表现效果. 最先我们用训练准确度(用全部数据进行训练和测试)来衡量模型的表现,这种方法会导致模型过拟合:为了解决这一问题,我们将所有数据分成训练集和测试集两部分,我们用训练集进行模型训练,得到的模型再用测试集来衡量模型的预测表现能力,这种度量方式叫测试准确度,这种方式可以有效避免过拟合. 测试准确度的一个缺点是其样