数字IC设计验证平台的搭建
ic验证方法

ic验证方法IC验证方法是集成电路设计中非常重要的一环,它用于验证设计的正确性和功能性。
在集成电路设计中,IC验证方法是确保设计能够按照预期工作的关键步骤之一。
本文将介绍几种常见的IC验证方法,包括仿真验证、形式验证和硬件验证。
一、仿真验证仿真验证是最常用的IC验证方法之一。
它通过在计算机上模拟设计的工作情况来验证其正确性和功能性。
在仿真验证过程中,设计人员使用一种称为电路模拟器的软件工具来模拟集成电路的行为。
通过输入一组测试数据,电路模拟器可以模拟电路的输入和输出情况,从而判断设计是否按照预期工作。
仿真验证方法有两种主要类型:功能仿真和时序仿真。
功能仿真用于验证电路的逻辑功能是否满足设计要求。
时序仿真则用于验证电路的时序性能是否满足设计要求。
通过对设计进行这两种仿真验证,可以全面地评估电路的正确性和性能。
二、形式验证形式验证是一种基于数学推理的IC验证方法。
它通过使用形式化规范语言来描述设计的行为,并使用形式验证工具来自动验证设计是否满足规范。
形式验证方法可以在设计的所有输入条件下进行验证,因此可以发现设计中的潜在错误和漏洞。
形式验证方法的优势在于它可以提供严格的证明,而不仅仅是模拟验证中的几个测试用例。
然而,形式验证需要设计人员具备一定的数学和逻辑推理能力,并且对于复杂的设计,形式验证的时间和资源成本可能会很高。
三、硬件验证硬件验证是一种在实际硬件上验证设计的方法。
它通过将设计加载到芯片或FPGA等硬件平台上,并使用实际的输入数据来测试电路的功能和性能。
硬件验证可以提供最接近实际工作条件的验证环境,因此可以发现仿真验证中无法发现的问题。
硬件验证通常需要设计人员具备一定的硬件开发和调试能力。
在硬件验证过程中,设计人员需要使用测试仪器和设备来观察电路的行为,并根据观察结果进行调试和修复。
IC验证方法在集成电路设计中起着至关重要的作用。
通过仿真验证、形式验证和硬件验证等方法,设计人员可以全面地验证设计的正确性和功能性。
asic设计及验证流程

asic设计及验证流程英文回答:ASIC Design and Verification Process.ASIC stands for Application Specific Integrated Circuit, which is a custom designed semiconductor chip that is designed for a specific use. The ASIC design andverification process involves several stages, each of which is critical for ensuring the correct functionality and performance of the chip.1. System Specification and Definition.The first stage of the ASIC design process involves defining the requirements and specifications of the system that will be implemented on the chip. This includes identifying the input and output signals, the data processing algorithms, and the performance requirements.2. Architectural Design.Based on the system specification, an architectural design is developed. The architectural design defines the overall structure of the chip, including the different modules and their interconnections. The architecturaldesign is typically captured using a hardware description language (HDL), such as Verilog or VHDL.3. RTL Design.The architectural design is then converted into a register-transfer level (RTL) design. The RTL design is a more detailed representation of the chip's functionality, including the logic gates and flip-flops. The RTL design is also captured using an HDL.4. Simulation.The RTL design is simulated to verify its functionality. Simulation involves applying input stimuli to the designand checking the outputs to ensure that they are correct.Simulation can be performed using a variety of software tools.5. Synthesis.The RTL design is then synthesized into a gate-level netlist. The gate-level netlist is a detailed representation of the chip's layout, including the placement and routing of the transistors.6. Physical Design.The gate-level netlist is then used to create a physical design of the chip. The physical design includes the placement of the transistors, the routing of the wires, and the layout of the pads.7. Fabrication.The physical design is then sent to a fabrication facility to be manufactured. The fabrication process involves creating the transistors and wiring on the chip.8. Verification.After fabrication, the chip is tested to verify its functionality. Verification involves applying input stimuli to the chip and checking the outputs to ensure that they are correct. Verification can be performed using a variety of techniques, including functional testing and structural testing.9. Packaging and Shipping.The verified chip is then packaged and shipped to the customer. The packaging process includes assembling the chip into a package, such as a plastic or ceramic package.中文回答:ASIC设计和验证流程。
芯片验证平台搭建流程

温馨小提示:本文主要介绍的是关于芯片验证平台搭建流程的文章,文章是由本店铺通过查阅资料,经过精心整理撰写而成。
文章的内容不一定符合大家的期望需求,还请各位根据自己的需求进行下载。
本文档下载后可以根据自己的实际情况进行任意改写,从而已达到各位的需求。
愿本篇芯片验证平台搭建流程能真实确切的帮助各位。
本店铺将会继续努力、改进、创新,给大家提供更加优质符合大家需求的文档。
感谢支持!(Thank you for downloading and checking it out!)阅读本篇文章之前,本店铺提供大纲预览服务,我们可以先预览文章的大纲部分,快速了解本篇的主体内容,然后根据您的需求进行文档的查看与下载。
芯片验证平台搭建流程(大纲)一、前期准备工作1.1了解项目需求1.2确定验证目标1.3选择合适的硬件和软件平台二、搭建硬件环境2.1硬件选型2.2硬件连接三、搭建软件环境3.1选择合适的开发工具3.2配置开发环境四、编写验证代码4.1设计测试向量4.2编写测试平台五、执行验证流程5.1功能验证5.2性能验证5.3电源和热分析六、问题定位和调试6.1分析错误和失败原因6.2调试代码和硬件6.3优化验证流程七、编写验证报告7.1汇总验证结果7.2分析验证覆盖率7.3提出改进建议八、后续工作8.1验证平台维护和更新8.2跟进项目进度,为后续验证提供支持8.3总结经验,提高验证效率和质量一、前期准备工作1.1了解项目需求在芯片验证平台搭建流程的第一步,我们需要充分了解项目需求。
这包括了解芯片的功能、性能、接口以及其他相关特性。
可以通过查阅芯片规格说明书、设计文档、参考手册等资料来获取这些信息。
此外,还需要了解项目的验证范围、验证策略、验证周期等要求,以确保验证平台的搭建能够满足项目的需求。
1.2确定验证目标在了解项目需求的基础上,我们需要明确验证目标。
验证目标包括验证芯片的功能是否符合规格要求、性能是否达到预期、接口是否正常通信等。
数字IC设计

数字IC设计数字IC设计是指采用数字电路元件和技术,在符合设定功能要求的基础上,实现指定功能的集成电路设计。
数字IC设计是集成电路设计的一个重要分支,该设计应用面广,广泛应用于通信、计算机、工业、家用电器等领域中。
本文将从数字IC设计的概念、发展历程、设计方法、常用的设计工具等方面进行探讨。
一、数字IC设计的概念数字IC设计是指使用数字电路元件及技术,在设定的功能要求的前提下,实现指定功能的集成电路的设计。
数字IC设计是由组合逻辑、时序逻辑、存储器等数字电路元件构成的。
数字IC设计的核心是实现数字电路设计的复杂性,在各种复杂的应用领域中,进行数字电路系统的快速设计和优化。
数字IC设计的关键是实现函数逻辑关系的描述和形式化,使用数字语言,对电路系统的逻辑关系进行严格的描述和方便化的实现。
数字IC设计具有复杂性、可扩展性、可靠性、精度高、功耗低等特点。
二、数字IC设计的发展历程数字IC设计发展历程从20世纪60年代开始,到今天数十年来经历了从基础到高级的一系列发展过程。
其中有一些重要的里程碑事件,大大促进了数字IC设计的发展。
早期的数字IC设计是使用硬件直接链接模拟电路实现,其设计过程比较简单,如模拟计算器。
1971年,美国Texas Instruments公司推出了世界上第一款集成电路计算器TMS0100,该计算器采用了数字IC设计技术进行实现。
在此之后,数字IC设计开始迎来了快速的发展,人们越来越依赖集成电路和数字IC设计技术带来的方便和高效性。
20世纪80年代,数字IC的设计和制造技术日趋成熟,数字IC的速度和芯片的集成度愈加高。
随着数字IC设计技术的不断提高和发展,出现了大规模集成(LSI),超大规模集成(VLSI)和超高规模集成(UHVSI)等技术,这一系列的技术标志着数字IC设计的进一步发展。
21世纪以来,数字IC设计技术与微电子技术的迅速发展,尤其是3D器件、功能扩张技术和生物微型芯片等的出现,有力地推动了数字IC设计技术向更为高级、复杂和智能方向发展,以应对日益复杂的计算和控制技术需求。
IC设计验证

IC设计验证做了多年的IC验证工作。
经过学习和实践,对验证的理解零零散散也有不少,但总没法形成一个比较完整全面的经验谈。
这里把我对验证的一些想法记录归纳,由于理解有限,下面的篇幅也许会比较零散。
一、验证对于IC的重要性IC是集成电路的缩写,也就是我们常说的芯片;IC行业的技术门槛高、投入资金大、回报周期长、失败风险高,做一款中等规模的芯片大致需要10多人做1年半,开模的费用一般都在几百万,设计过程的笔误或者设计bug至少都会有上千个,由于设计缺陷或者工艺缺陷很容易造成芯片完全变成所谓的石头,而如果要重新头片不但需要投入额外的费用,更会将芯片上市时间延后至少半年,这些风险对于商业公司来说都是不可接受的。
正因为芯片的高风险,才凸显了验证的重要性。
在流片之前,通过验证人员的验证活动发现所有的设计bug,这就显得特别重要。
二、验证的目标做验证首先要明确我们做IC验证的目标是什么。
上面我们已经提到,由于芯片的高风险、高代价,才更突出了验证的重要性,尤其是芯片规模越来越大,逻辑越来越复杂。
为了保证芯片的成功,验证唯一的目标就是发现所有的bug,做到无漏验、零漏测。
三、验证的两问题作为验证人员,首先要搞清楚两个问题:1)我们要验证什么?2)我们该怎么验?这两个问题是验证的根本,就如同哲学里的“我是谁、我来自哪儿、我要去哪儿”一样,“我们要验什么?”是给我们指明目标,”我们该怎么验?“则是告诉我们该采用什么样的手段去达到这个目标。
如果这2个问题都没搞清楚,那么没人对你负责验证的模块有信心,毕竟你自己都不知道你的目标是什么,不知道该怎么做才能达到那个目标。
这两个问题是验证的核心所在,如果想做好验证,这是前提。
四、验证的三板斧要想做好验证,保证无漏验、零漏测,以下三个要素是必须要具备的:验证工具的掌握、算法/协议的理解、验证的意识。
1)验证工具的掌握验证工具包括vmm/uvm等验证方法学、sv/sc等验证语言、vcs等验证仿真工具、perl/python等脚本语言,这些东西是做验证要掌握的基本技能,不论你做什么样的芯片都需要这些东西来支撑你的验证工作。
可信芯片验证平台的设计与实现

可信芯片验证平台的设计与实现随着信息技术的快速发展,芯片在现代社会中的应用越来越广泛。
然而,由于芯片内部的复杂电路结构和功能的多样化,芯片在设计和制造过程中往往容易受到各种攻击,如仿真、非法复制和篡改等。
因此,为了确保芯片的可信性和安全性,可信芯片验证平台的设计和实现变得尤为重要。
可信芯片验证平台是一种基于硬件和软件的综合平台,用于验证芯片的安全性和可信度。
该平台由硬件部分和软件部分组成,各具特定功能。
硬件部分是平台的核心,主要包括多种检测电路、信号处理电路和接口电路等。
检测电路用于检测芯片在运行过程中可能存在的安全隐患,如电压异常、电流波动等。
信号处理电路负责对从芯片输出的信号进行分析和处理,以判断芯片是否受到攻击。
接口电路则用于与外部设备进行连接和数据传输,方便后续的数据处理和分析。
软件部分是平台的灵魂,主要包括验证算法、数据处理算法和用户界面等。
验证算法是核心部分,用于分析和判断芯片是否符合安全性要求。
数据处理算法负责对从硬件部分采集到的数据进行处理和分析,提取有用信息,并生成相应的报告。
用户界面则提供了一个友好的操作界面,方便用户进行参数设置、数据查看和结果分析等操作。
可信芯片验证平台的实现需要经过以下几个步骤:首先,确定验证平台的功能和性能要求,明确验证的目标和指标。
其次,设计硬件部分,选择合适的电路和器件,并进行布局和连接。
然后,编写软件部分的验证算法和数据处理算法,并进行测试和调试。
最后,将硬件和软件部分进行整合,进行系统测试和性能评估。
通过可信芯片验证平台的设计和实现,可以有效提高芯片的可信度和安全性。
验证平台可以对芯片进行全面、细致的检测和分析,及时发现并阻止各种安全威胁。
同时,验证平台还可以为芯片的设计和制造提供重要的参考和指导,指出潜在的安全隐患和改进方向。
总之,可信芯片验证平台的设计与实现是保障芯片可信度和安全性的重要手段。
这一平台的设计需要充分考虑硬件和软件的相互配合和协同工作,确保整个验证过程的准确性和有效性。
CADENCE全定制IC设计流程
CADENCE全定制IC设计流程CADENCE是一种广泛应用于集成电路(IC)设计的软件工具。
它提供了完整的设计流程和工具,用于设计、验证和制造IC芯片。
在基于CADENCE的全定制IC设计流程中,在IC设计的每个阶段都使用到了CADENCE工具套件,包括电路和物理设计工具、模拟和数字仿真工具、布图工具以及物理验证工具等。
下面是使用CADENCE进行全定制IC设计的一般流程:1.设计需求分析:根据所需的功能和性能需求,进行设计需求分析。
这包括确定电路拓扑结构、电路规范和性能指标等。
2. 电路设计:使用CADENCE中的Schematic设计工具,绘制电路原理图。
根据设计需求,选择合适的电子元件并进行电路布线。
使用CADENCE的仿真工具,验证电路的功能和性能。
3.物理设计:将电路原理图转换为布局图。
使用CADENCE的布局工具,在设计规范的限制下进行器件布局和连线布线。
这包括选择合适的器件大小和排列方式,以优化电路性能和功耗。
4.物理验证:使用CADENCE的物理验证工具,对电路布局进行验证。
这包括电路的电性能分析、功耗分析、时序等效验证以及电磁兼容性分析等。
根据验证结果进行布局优化和改进。
5.交互测试:将设计与其他模块和子系统进行集成测试。
使用CADENCE的模拟工具和数字仿真工具,对整个系统进行功能验证和性能评估。
7.物理制造:通过CADENCE的布局生成工具,生成用于物理制造的设计数据库文件。
这包括物理制造规则检查、填充、光刻掩膜生成等。
8.物理验证:使用CADENCE的物理验证工具,对物理制造的设计进行验证。
这包括工艺模拟、功耗分析、封装和信号完整性分析等。
9.物理制造:将设计数据库文件发送给制造厂商进行实际制造。
这包括掩膜制造、芯片加工、封装和测试等。
10.性能评估:对实际制造的芯片进行性能评估和测试。
使用CADENCE的集成测试工具,进行功能测试、速度测试和功耗测试等。
11.系统集成:将IC芯片集成到目标系统中,并进行系统级测试和验证。
(转)UVM验证方法学之一验证平台
(转)UVM验证⽅法学之⼀验证平台在现代IC设计流程中,当设计⼈员根据设计规格说明书完成RTL代码之后,验证⼈员开始验证这些代码(通常称其为DUT,Design Under Test)。
验证⼯作主要保证从设计规格说明书到RTL转变的正确性,它包括但不限于以下⼏点:DUT的⾏为表现是否与设计规格说明书中的要求⼀致DUT是否实现了设计规格说明书中的所有功能DUT对于异常状况的反应是否与设计规格说明书中的⼀致DUT是否⾜够稳健,能够从异常状态恢复到正常的⼯作模式图1 验证发现DUT中的bug随着芯⽚规模的增⼤,验证占整个芯⽚设计流程的⽐例越来越⼤,验证的⼯作量已经占到整个SoC研发周期的70%到80%。
因此,提⾼芯⽚验证的效率已变得⾄关重要。
快速搭建⼀个强⼤、⾼效、灵活、可扩展性好的验证平台是芯⽚成功的关键。
1 UVM代表了验证⽅法学的发展⽅向验证是服务于设计的,⽬前来说,主流的设计语⾔有两种:Verilog和VHDL。
伴随着IC的发展,涌现出了多种验证语⾔,如Vera、e、SystemC、SystemVerilog等。
其中,SystemVerilog刚⼀推出就受到了热烈欢迎,SystemVerilog是⼀个Verilog的扩展集,它既完全兼容Verilog,⼜具有所有⾯向对象语⾔的特性:封装、继承和多态,同时,还为验证提供了⼀些独有的特性,如产⽣带约束(constraint)的随机激励。
在基于SystemVerilog的验证⽅法学中,主要有以下三种:VMM(Verification Methodology Manual),这是Synopsys在2006年推出的; VMM中集成了寄存器解决⽅案RAL(Register Abstraction Layer)。
当OVM出现后,⾯对OVM的激烈竞争,VMM已经开源OVM(Open Verification Methodology),由Cadence和Mentor于2008年推出;从⼀开始就是开源的。
数字集成电路可测性软件设计及验证平台
静态技术
物理验证
2020/4/21
共102页
43
仿真技术
基于事件的仿真--任何一个输入的变化都被 标记为事件,即常说的功能仿真,精度高, 速度慢。比如Modelsim, VCS。
基于周期的仿真--单周期内只检查一次输入 并计算设计的输出逻辑值。速度快,无时 序、毛刺。比如Cyclone。
扫描测试
使用扫描触发器,会增加设计的面积,增加了路径 的延迟,增大了触发器的输出负载和电路的功耗。
SMIC0.18µm工艺库 FFDQRHDLX FFSDQRHDLX 增加百分比
AREA(µm2) 63.2 79.83 26.3%
2020/4/21
共102页
16
扫描测试流程
2020/4/21
共102页
23
DFT Compiler
Synopsys公司的集成于Design Compiler的 先进测试综合工具
独创的“一遍测试综合”技术
功能强大的扫描式可测性设计分析、综合和验 证技术
支持RTL级、门级的扫描测试设计规则检查, 以及给予约束的扫描链插入和优化
启动命令source /opt/demo/synopsys.env
2020/4/21
共102页
41
主要内容
可测性基础 可测性设计工具
验证的必要性 验证方法学介绍 验证工具介绍
2020/4/21
共102页
42
验证方法学
方法学:又称方法论,是一门学问采用的方法、规 则与公理;一种特定的做法或一套做法。
验证方法学:指完成验证过程中的一系列方法、技 术和规范。
.sv文件和.sdc文件供布局布线工具Astro生成芯片版图 .spf文件供测试矢量生成工具Tetramax生成与测试矢量集,待芯片流片 封装好后,测试矢量集供ATE设备来测试芯片。
基于xilinx-chip2chip ip构建大规模SOC评估验证平台
基于xilinx-chip2chip ip构建大规模SOC评估验证平台摘要:随着半导体芯片器件规模急剧增长,设计一款复杂的SOC芯片成本越来越高。
SOC在架构设计阶段对芯片的架构评估、以及设计后期对芯片的功能验证在整个芯片设计周期中就变得尤为重要。
现在SOC芯片一般包括CPU、DSP、加速部件等复杂模块,使用服务器无法满足芯片真实场景评估和快速场景验证的需求,必须构建FPGA原型评估验证系统。
由于SOC芯片规模比较大,往往需要多片FPGA才能承载,因此FPGA之间的通信决定了整个平台的性能。
本文使用Xilinx公司提供的chip2chip ip构建基于AXI网络互联的原型平台,在性能、扩展性方面都得到了较大的提升。
关键词:原型平台;chip2chip;架构评估;芯片验证Based on xilinx-chip2chip IP Building large scale SOC assessment & Verification platformGU Da-ye(Anhui Siliepoch Technology co.,ltd,Hefei 230088,China)Abstract:With the rapid growth of semiconductor chip devices,the cost of designing a complex SOC chip is getting higher and higher. Therefore,the evaluation of the chip's architecture in the SOC architecture design stage and the functional verification of the chip in the later design period become particularly important in the chip design cycle. Now the SOC generally includes complex modules such as CPU,DSP,acceleration components,etc. The server cannot meet the needs of chip real scene evaluation and rapid scene verification,and an FPGA prototype evaluation and verification system must be built. Due to the relatively large SOC chip size,multiple FPGAs are often required to carry them,so the communication between FPGAs determines the performance of the entire platform. This article uses the chip2chip soft ip provided by Xilinx to build a prototype platform based on AXI network interconnection,which has been greatly improved in performance and scalability.Key words:prototyping platform;chip2chip;architecture evaluation;verification1.引言在设计需求和芯片工艺制程的推动下,芯片已经从单一功能芯片发展到具有复杂异构功能,能够独立完成复杂并行任务的大规模SOC芯片。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、VMM分层次验证平台
• VMM是IC设计领域的一种高级验证方法学,主 要由ARM和synopsys公司的设计验证领域的专 家共同设计,用于开发先进的验证环境,已成 为当前业内公认的验证方法标准。 • VMM验证方法学的基础是systemverilog语言。 Systemverilog是一种由verilog发展过来的硬件 描述、硬件验证统一语言,前者是2005年版 verilog的扩展,而后者的功能验证特性以面向 对象程序设计技术为基础。VMM所有的方法 学基础来自于systemverilog,并吸收了C语言的 一些先进思想。
2.2.1 VMM分层次验证平台
• VMM验证方法学是一种基于事务的层次化 验证方法学。层次化是把验证的步骤分层 进行,把验证工作提高到更高的抽象层次, 即事务层。 • VMM验证平台分为五层,每一层完成独立 的功能,层与层之间通过接口相互连接。
2.2.1 VMM分层次验证平台
2.2.1 VMM分层次验证平台
2.2.4 事务处理器的协调工作
• 事务层的接口使VMM验证平台的各组件在纵向上实现了 连接,但是并没有实现各组件横向上的同步执行。VMM 提供了通知(notify)接口实现同步执行。 • Vmm_notify是VMM提供的一个基类。Vmm_notify类实现 进行通知服务的接口。该通知服务可为并发线程或者事务 提供同步机制。Vmm_notify有三种通知同步模式, ONE_SHOT、BLAST、ON_OFF。 • vmm_notify::ONE_SHOT事件一旦触发,解除以前等待的线 程。vmm_notify::BLAST在通知发出的同一个时阶,所有等 待通知发出的线程同时得到通知。本模式可以消除某种形 式的竞争条件。Vmm_notify::ON_OFF通知是电平敏感的。 显式的复位后,才能解除通知的有效。将不再继续等待仍 然有效的通知线程。本模式可消除某种形式的竞争条件。
1.3 回归测与覆盖率收敛
• 全部测试用例被成功运行后,验证就进入回归 测试和覆盖率收敛阶段。 • 回归测试要求能够周期的批处理运行、测试用 例必须能够容易得到重现、成功与失败能够自 动检测。 • 覆盖率显示出设计被测试的程度,是验证收敛 的重要标准。 • 所有的测试应该在每天或者每周做回归而且周 期性的运行。设计人员或者验证工程师应该查 看覆盖率,从而修改或者添加更多的测试用例, 从而尽可能达到100%。
• Vmm_channel是Synopsys推出的通道模板类。Channel传输 的是数据与事务,而Vmm_data是对数据与事务的生成模 板类,所以vmm_channel应该是vmm_data扩展类的通道。 • Vmm_channel::put 将新生成的数据与事务描述符添加到通 道。Vmm_channel::get从通道中获得新生成的数据与事务 描述符。Vmm_channel的函数还有很多,其他的可参考 VMM验证方法学手册。
数字IC验证流程
一、数字IC验证流程
• 验证的流程并行于设计流程 • 验证工程师阅读硬件规范并拟定验证计划,然 后依照计划创建测试来检查RTL代码是否准确 实现了所有特性。 • 1.1 制定验证计划:验证计划是和硬件规范紧 密联系在一起的,它描述了需要验证什么样的 特性,以及采用哪些技术。 • 验证技术可能包含有定向或随机的测试、断言、 软硬件协同验证、硬件仿真、形式验证 (formality工具比较RTL与网表是否一致),以 及对验证IP的使用。
2.2.1 VMM分层次验证平台
• BFM(bus function model)的作用是把底层 总线的时序封装起来,向上层提供一个统 一的任务接口,使上层不用关心底层的实 现细节,而专注于testcase的设计。这一点 同c++的面向对象的概念很类似,在c++里, 对象相当于命令或调用,而对象的成员函 数实现具体细节,外部无需关心它的内部 细节。
1.1 验证计划的制定
• 制定验证计划分为三部分:制定功能验证 需求书、指定验证平台的抽象层次、激励 的产生和结果检查方案。 • 1.1.1功能验证需求书的内容是确认设计的 哪些功能是需要被验证的,它主要是测试 用例(testcase)和功能点(testpoint)的一个 列表,构成了整个验证计划的基础。 • 基于覆盖率驱动的验证环境中功能覆盖率 是功能测试完备程度的指标。功能覆盖率 就是对功能点的覆盖。
• 测试层即测试用例,是顶层模块,控制着整个环境的运行;设 定约束使激励产生器生成相应的命令操作和数据;定义新的随 机场景,同步不同的事务并创建直接测试用例。 • 场景层即产生器(generator),产生应用于功能层数据和事务 描述符。产生器根据指定的约束和随机场景来生成相应的命令 操作和数据。带约束的随机测试在此层引入。测试场景是一系 列随机的有着某种关联的事务,每种测试场景代表着一种独立 的事务来针对一个特殊的边界功能。 • 功能层是对DUT功能验证的核心部件。功能层从场景层接收到 数据和事务描述符,事务描述符主要是选择事务处理的类型, 例如是读操作还是写操作。接收的数据一般是对DUT施加的激 励,分为DUT的配置信息和DUT的交换数据。此外,功能层还包 含比较器和功能覆盖模块,比较器负责检查DUT的功能是否满 足设计规范,功能覆盖模块用于统计和记录DUT的功能覆盖情 况。
2.2.2 VMM数据与事务
• 数据与事务就像整个VMM验证平台的细胞,它存在于验 证环境中的每个组件。VMM的场景层(generator)用于生 成验证环境的数据和事务描述符,而VMM的其他验证组 件均是对事务进行处理的处理器(除测试层和信号层外)。 • Synopsys公司应用systemverilog的继承(extends)语言特 点提出基类概念,基类是Synopsys编写的一个模型,用户 只需根据自己项目要求扩展基类就能生成自己的验证模型。 Vmm_data和Vmm_xactor分别是数据与事务的生成和处理 的基类。 • Vmm_data基类是验证平台中所有事务描述以及数据建模 的基础。这个类提供的一些属性和方法专门用于生成数据 包和事务描述符。Vmm_xactor基类被用作处理所有事务的 基础,包括总线功能模型,监视器和发生器。它提供一套 标准的控制机制,作为所有事务控制的基础。
2.1 VMM验证方法学的特点
• • • • • • 1.受约束的随机激励 2.覆盖率驱动 3.使用事务处理器的分层测试平台 4.对所用测试用例通用的测试平台 5.独立于测试平台之外的个性化代码 建立VMM风格的测试平台所需要的时间要比传统的 定向测试平台多得多,但对于验证大规模的电路来 说,VMM验证平台要比传统的定向测试平台功能验 证的齐备性要高得多,大大提高流片的成功率,并 且平台的可重用性在后期的验证工作中将发挥节约 测试时间和人力资源的功效。
2.3 基于覆盖率驱动的验证环境
• 断言是用于一次性地或在一段时间内核对两个设 计信号间的关系的声明性代码。断言最常用于查 找错误,例如两个信号是否应该互斥或者请求是 否被许可等。一旦检测到问题,仿真立即停止。 断言也可用于检查仲裁算法、各种FIFO以及其他 硬件。以上这些情况会使用到assert property语句。 • 有些断言会被用于查找感兴趣的信号值或设计状 态,例如一次成功的总线数据交换。这要用到 cover property语句。
• 1.2.1搭建验证平台的方法:搭建模块级验证平台时,信号 层、被测设计(DUT)和验证环境(program test)必须在 顶层模块实例化。
1.2搭建验证平台
1.2搭建验证平台
• 1.2.2搭建验证平台的注意点: 1.VIP的验证组件的使用可以大大缩短平台搭建的开发周期。 2.sub_env组件的使用,实现模块级到子系统级的复用,提高 平台的可重用性。 3.个性化代码。由callback实现,使用回调方法来检测流过事 务处理器的数据流,利用回调(callback)插入异常(erro injection)和收集功能覆盖率。 4.在搭建模块级验证平台时,使用好的代码风格易实现模块 级代码的复用。 5.验证平台搭建好后,跟RTL代码一样,是一个不断完善的过 程。在验证的过程中不断完善自己的平台,使其方便、准确 的验证我们的项目。
2.3 基于覆盖率驱动的验证环境
• 覆盖率驱动验证是一个基于仿真的验证方法,专门被开发用来 解决当前功能验证项目面临的效率和完备性挑战。Synopsys公 司提供的VCS工具能够生成覆盖率列表,分析覆盖率列表,验证 工程师可在最短的时间内找到哪些功能已经通过测试,哪些功 能还没有被测试到,从而保证验证的完备性。 • 覆盖率可分为:代码覆盖率、功能覆盖率、漏洞率和断言覆盖 率。 • 代码覆盖告诉验证者在一个特定仿真运行中,所有RTL设计描述 代码是否被执行。代码覆盖率只说明了RTL代码被运行过,并不 能说明RTL功能被执行了。 • 功能覆盖率则能很清楚的告诉我们哪些功能点被执行过了。 • 漏洞率是衡量覆盖率的一个间接的方式,漏洞率与项目所处的 阶段、近期设计上的变化、正在集成的模块、人事上的变动等 等有关,每次比率下跌时,就应该寻找各种不同的方法去测试 各种边界情况。
1.1 验证计划的制定
• 检查方案:一般公司均采用计分板(scoreboard) 检查机制。 • Scoreboard的工作原理:DUT产生的响应 input_stream压栈到queue1中,expect_stream为 DUT的期望响应, expect_stream压栈到queue2中, 然后将两个队列弹栈进行数据比对,同时 scoreboard在仿真过程中report自检查的统计结果。
2.2 基于事务的验证环境
• 事务(Transaction)是指验证平台与DUT之间 通过设计的特定接口(interface)进行的高层 次的数据或者控制信号的传输。接口包含了连 接、同步、甚至两个或者更多块之间的通信功 能,它们连接了设计块和测试平台。
• 基于事务的验证技术是对底层信号的封装,这 样验证人员可以关注工程中的事务级验证,而 不是过分关注底层的逻辑和时序的实现。因此 是在对更高抽象级别上对系统硬件的建模,在 接口组件上交换数据或执行事件。