验证技术概述PPT课件.ppt
《验证技术概述PPT课件.ppt》由会员分享,可在线阅读,更多相关《验证技术概述PPT课件.ppt(64页珍藏版)》请在三一文库上搜索。
1、验证技术概述,内容,验证技术概述 功能验证、等价性验证、静态分析及物理检查 3. 模拟 4. 形式验证 5. 验证方法学,Cell Library Design Rule. .,自 顶 向 下,验证的重要性,验证的重要性:占工程设计时间70,代码总量80 验证影响:产品的生命 产品返工 失去顾客 成本 ,验证的目的及其本质,验证的目的: 原始描述的正确性:SPEC 设计结果与原始描述的一致性 设计结果是否符合设计规则 验证的本质:验证本质上就是保证某种形式的转换符合我们的期望,即保证设计正确的实现了规范所定义的功能和性能要求。 芯片的设计规范(一般是一个文本文件)与其系统级模型(高级语言模型,
2、如C模型)之间的等效 通过比较系统级模型与 HDL 实现的输出,可以在规范的系统级模型与其 HDL 实现之间建立等效关系。 HDL实现与门级 (综合后的)之间通过应用“逻辑等效性检查”可以建立等效,工程对验证的要求,验证的完整性:只有充分接近全部功能得到验证,并达到功能覆盖率的要求,才能对产品有信心。 验证的自动化:尽可能减少验证时间对产品产出时间的影响,验证才是成功的,这需要EDA工具和先进验证手段的支持。,验证系统,验证系统的组成: 验证说明:描述目标行为以及不希望出现之行为的设计规范(Specification) 成品模型: 环境模型: 模型类别: 硬件:prototype-仿真(Emu
3、lation) 软件:C or RTL Code-模拟(Simulation) 混合:,设计各阶段验证的内容,前端设计: 功能验证 :代码是否符合设计规范 等价性验证 :各层次的功能是否满足原有功能规范 后端设计: 功能:门级仿真(后仿真) 性能(setup、hold、驱动):静态时序分析 物理设计 :规则检查(design rule check) 电气规则检查 (ERC)、设计规则检查 (DRC)、版图对电路检查 (LVS) 信号完整性、干扰、金属迁移、噪声,功能验证,分类: 目的性验证:目的是验证设计所试图完成的功能在设计中已正确实现。最典型的情况是在抽象程度最高的层次完成,其最终结果是建
4、立一套“黄金模型”,它可以在整个设计过程中作为设计细节的参考。 等价性验证:目的是验证设计过程中产生的不同层次的设计结果功能是否符合“黄金模型”。,目的性验证,1. 动态模拟:将一组输入激励施加到设计模型上,使其工作运行,并观察模型的响应。 2. 形式验证:用数学方法验证设计的功能,不需要验证测试向量。 3. 模拟形式混合验证:混合验证取两者之优点,模拟能处理的设计规模大,类型多,而形式验证具有完整性。 4. 软/硬件协同验证:协同验证可以在硬件开发的同时,让软件在硬件模拟平台上运行,从而硬件和软件可以同时调试,而不是串行进行,大大缩短了产品的开发时间。,目的性验证(续),5.仿真系统:专门设
5、计的硬件和软件系统,典型的是采用FPGA-与最终设计接近的仿真速度。 6.样机系统 :系统测试、市场开发、演示 (1)物理样机:一种目标设计的硬件替代品,它的运行能够“接近”目标设计平台的性能。与目标系统速度相同的数量级,比仿真系统的速度快出许多。 (2)虚拟样机:一个虚拟样机就是一个产品、一个元件或一个系统的计算机模拟模型。,物理样机,Parterre之FPGA验证平台,等价性验证,1.动态等价验证 i)确定模拟:复用高层次模型开发的验证测试向量和测试程序 ii)回归测试:批处理模拟;自动比较结果 2.形式等价验证:完全的等价验证,如Formality 形式等价验证工具生成一个数据结构并比较
6、在相同的输入模式下得出的输出数值模式,如果这些输出数值模式不相同,那么同一设计的两种描述(如门级和 RTL级)就不是等价的。 组合等价检验和时序等价检验,静态分析验证,1)Lint检查:对设计代码进行静态检查,验证语法的正确性。Lint检验对RTL设计代码进行静态检查,是在设计进行综合前的一种预处理,目的是消除代码中的错误,包括语法、可综合性、未初始化的变量、未支持的语言结构、端口失配等。有些工具还能抽取FSM模型,检测竞争条件,检查可测试性和可重用性规定的一些设计规则等。 2)静态时序分析 每个存储元件有时序要求,例如,建立时间、保持时间和各种延时。时序验证要确定电路时序是否满足设计要求。,
7、物理验证,物理验证就是通过检验图形设计的数据库以确信物理实现确实是原始逻辑设计的正确表述。 物理验证包括以下三个部分:电学规则检查、设计规则检查及版图对电路检查。标准的图形数据库形式是GDSII数据流。,物理验证(续),1)电气规则检查 (ERC):检查是否违反电气设计规则,包括未使用的输出、浮空输入、负载违例、连接违例,如开路和短路等。 2)设计规则检查 (DRC):检查是否违反工艺过程设计规则,包括层与层的间距、特定层上的线条宽度、层与层的重叠等。 3)版图对电路检查(LVS):检验提取的图形数据库是否有与“黄金”网表相违背之处。LVS工具从多边形数据中构建网表以及从物理布局中提取器件模型
8、。提取出的网表需和“黄金”模型保持一致。所有的器件和互连都必须严格地相匹配。 4)其他物理验证:包括信号完整性、干扰、金属迁移、噪声等。,模拟,基于模拟的验证是功能验证最重要、用得最多的一种方法。它是在模拟器上通过模拟实际电路的工作环境来对设计进行验证。 模拟的基本方法: 首先根据设计规范和测试规范,建立测试平台,编写测试数据组(testcase)以生成测试激励以及响应检查; 然后在模拟器上进行模拟,将测试数据组的激励输入到硬件描述语言代码模型 最后对输出同标准输出结果进行比较,从而达到功能验证的目的。,基于模拟的验证,基于模拟的验证结构可分为四个部分: 测试数据组(testcase) 测试平
9、台(testbench) 参考模型(reference model) 仿真器 (simulator),测试数据组,测试数据组是对待测模型产生激励的来源。 设计测试数据组的关键是确定待测模型需要验证的属性(features),也就是功能验证点。 正确识别和详细分析属性,并依此产生相应的测试数据组,决定了验证的功能覆盖率,从而最终决定了待测模型是否充分满足设计规范的要求。 测试数据组的生成: 是由验证工程师手工编写。 目前也出现了自动测试数据组生成工具,如synopsys的半自动测试数据组生成工具Vera。它利用语言定义各种约束,以指导伪随机测试的生成,结合功能覆盖分析,帮助验证工程师建立高效的验
10、证环境,使得到高质量的测试程序。,测试数据组(续),每一个测试数据组一般包括激励数据和输出响应数据。 在实际设计过程中,测试数据组通常分为三部分: 接口测试:检验模块接口时序和协议 子模块测试:子模块功能验证 系统测试:全系统功能验证,测试平台,测试平台是为模拟验证而编写的代码,其目的是用来对待测设计产生预先确定的输入序列,然后选择性的观察响应。 测试平台可采用硬件描述语言来编写,也可以采用e或OpenVera等验证语言编写。,结构化的测试平台,可复用的测试基准BFM(Bus-Function Model) 概念:将测试数据组提供的测试数据,通过统一的任务接口,按照待测模型端口的时序和协议进行
11、封装组合的程序模块。 由子程序以及Task等组成,代替总线的简单模型,可以复用,结构化的测试平台,BFM原理: 能够使用某种命令语言在总线上产生一系列事务。 不含有总线设备的实现,亦不需要包含总线设备的全部功能 只含有总线、I/O接口的信号,并模拟这些信号的传输过程,参考模型,参考模型:一种专门面向功能验证而设计的代码,可以在施加于待测设计的相同激励条件下,产生预期的结果,该结果做为testbench检查器的预期响应参与比较。 参考模型的主要目的就是生成与目标设计描述进行比较的比对数据。 参考模型侧重于设计的逻辑功能,而不是功能实现的细节。,参考模型,Design Under Test (DU
12、T),激励发生器,结果检查,黄金模型golden model,验证实例:UART,验证环境和测试方案testbench 根据设计文档确定验证点(testcase)验证文档:描述每个验证点的目的、具体实现步骤 验证文档testcase提取 覆盖率分析不理想回到第2阶段 记录验证结果.log文件,验证环境架构及建立方式,基于软件模拟的层次式架构 testcase层:由过程(procedure)调用组成 行为模型以及BFM:不可综合的代码,描述系统环境中可能的其他电路模型或行为 testbench:验证配置 testbench组织:configurations 装配testcase,行为模型,BFM
13、以及待测模块DUT,UART验证环境架构,确定验证点,testcase提取:tasks 激励:从单一功能到复杂功能,辅以覆盖率工具 响应:针对具体testcase描述检查相关响应,例:数据发送进程testcase生成 testcase1:验证UART是否能够正确发送数据 a.保持发送时钟基准时钟*8得到的位时钟txtick; b.调用APB_write任务向UART 控制寄存器写入“000101010”; c.调用APB_write任务向UART 发送保持寄存器thold写入“10101010”; d.调用TXD_verify任务,并检测是否正确接收“10101010” testcase2:验
14、证UART能否检验出奇偶校验错,并据此发出中断请求 a.保持发送时钟基准时钟*8得到的位时钟txtick; b.调用APB_write任务向UART 控制寄存器写入“000101010”; c. 调用APB_write任务向UART 发送保持寄存器thold写入“10101010”; d.调用TXD_verify任务,并检测是否正确接收“10101010”,偶校验无误,并接收到IRQ信号; e.调用APB_write任务向UART 控制寄存器写入“000111010”; f. 调用APB_write任务向UART 发送保持寄存器thold写入“10101010”; g.调用TXD_verify
15、任务,并检测是否正确接收“10101010”,奇校验无误,并接收到IRQ信号; testcase3:溢出错误检查 testcase4:发送过程清TE testcase5:流控制检查,testcase提取,testcase实例-simulus,task serial_data_input_generater; input7:0 data; input1:0 verify_indicate; input baudrate_clk; output RXD; / verify_indicate 1=1,表示有校验位,否则无校验位; / verify_indicate 0 =1,表示奇校验,否则为偶校验
16、; wire verify_bit = verify_indicate 0? data:data; begin (posedge baudrate_clk) TXD= 1b0; (posedge baudrate_clk) TXD= data0; (posedge baudrate_clk) TXD= data1; (posedge baudrate_clk) TXD= data2; (posedge baudrate_clk) TXD= data3; (posedge baudrate_clk) TXD= data4; (posedge baudrate_clk) TXD= data5; (
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 验证 技术 概述 PPT 课件
链接地址:https://www.31doc.com/p-2836075.html