验证技术概述_第1页
验证技术概述_第2页
验证技术概述_第3页
验证技术概述_第4页
验证技术概述_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 验证技术概述验证技术概述 内容内容 验证技术概述验证技术概述 功能验证、等价性验证、静态分析及物理检查功能验证、等价性验证、静态分析及物理检查 3. 模拟模拟 4. 形式验证形式验证 5. 验证方法学验证方法学 Cell Library Design Rule. . Spec. Behavior HDL RTL HDL Synthesis Netlist Placement input7:0 data; input1:0 verify_indicate; input baudrate_clk; output RXD; / verify_indicate 1=1,表示有校验位,否则无校验位;

2、/ verify_indicate 0 =1,表示奇校验,否则为偶校验; 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; (

3、posedge baudrate_clk) TXD= data5; (posedge baudrate_clk) TXD= data6; (posedge baudrate_clk) TXD= data7; (posedge baudrate_clk) TXD= verify_indicate1? verify_bit:1b1; (posedge baudrate_clk) TXD= 1b1; end endtask testcase实例-receiving data module testbench_for_UART_RXD; /例化待测模块UART UART u1(RXD, TXD,.);

4、 /顺序执行任务序列,进行功能验证 initial begin /调用激励产生模块,输入数据8ha5,1位偶校验位 serial_data_input_generater(8ha5, 2b10, baudrate, RXD); End endmodule testbench 1)将上述task在testbench的process中排 列组合,分别调度就组成一个面向UART 的 黑盒子testbench generater 2)把UART和testbench generater在顶层模 块配置指定testbench,则可进行模拟 验证 模拟仿真工具模拟仿真工具 模拟工具:模拟器模拟工具:模拟器S

5、imulator Verilog-XL Modelsim NC Verilog VSS(VHDL) VCS(Verilog ) 模拟仿真工具模拟仿真工具 模拟器工作原理:模拟器工作原理: 编译法编译法Compiler:将将HDL的描述编译成一般软的描述编译成一般软 件语言或汇编语言再执行件语言或汇编语言再执行 事件表驱动法事件表驱动法Event Driven :对描述进行解释对描述进行解释 执行执行 Cycle Based NC Verilog:一个时钟周期只采一一个时钟周期只采一 次数据次数据 ISS (Instruction Set Simulation)- 指令级指令级 模拟器:模拟器:

6、 用于有用于有CPU的系统模拟的系统模拟 模拟仿真工具模拟仿真工具 仿真(仿真(Emulation):): FPGA 把设计从把设计从RTL综合后写入综合后写入FPGA中中, 与周与周 边芯片连成系统进行板级仿真边芯片连成系统进行板级仿真. 特点特点: 验证功能及接口验证功能及接口 速度快:界于实物芯片和模拟之间速度快:界于实物芯片和模拟之间 只模拟功能,不模拟速度只模拟功能,不模拟速度 基于模拟的验证方法基于模拟的验证方法 组合 逻辑 M E M n m n+m2n+m 12 101024 1001.26E+30 10001.07E+301 10238.99E+307 穷举模拟? 可能的状态

7、转换 2n+m 基于模拟的验证方法基于模拟的验证方法 测试向量生成:测试向量生成: n规范一致性测试:规范一致性测试:所有所有 “指令指令”、“控制模式控制模式” n边角测试边角测试 (Corner Case) n随机测试随机测试 w无向随机模拟无向随机模拟 w有向随机模拟有向随机模拟 n设计错误模型设计错误模型 n实代码实代码 (Real Code) n回归测试回归测试(Regression testing) 基于模拟的验证衡量方法基于模拟的验证衡量方法 代码覆盖率代码覆盖率 n通过硬件代码覆盖率分析工具来评定验证测试序列通过硬件代码覆盖率分析工具来评定验证测试序列 的覆盖率指标。把特定的测

8、试验证序列输入到特定的覆盖率指标。把特定的测试验证序列输入到特定 设计中,通过代码覆盖率分析就有可能得出功能覆设计中,通过代码覆盖率分析就有可能得出功能覆 盖率的某些方面的信息。分析工具可以提供以下信盖率的某些方面的信息。分析工具可以提供以下信 息:息: w每个被评估属性的百分比的覆盖率值每个被评估属性的百分比的覆盖率值 w设计中没有执行或者只是部分执行的区域的列表设计中没有执行或者只是部分执行的区域的列表 可进行有目的的状态覆盖尝试可进行有目的的状态覆盖尝试 n改变原始模拟踪迹,进行指导改变原始模拟踪迹,进行指导 代码覆盖的类型代码覆盖的类型 语句覆盖:表示多少语句已被执行过,或者每个语 句

9、执行过的次数。 翻转覆盖:表示信号中哪些位已经过01和10 翻转。 触发覆盖:每个进程是否被敏感表中每个信号独立 地触发。 分支覆盖:“if”或 “case”语句中的哪些分支己被执 行 表达式覆盖:“if”语句中条件布尔表达式的覆盖情 况 路径覆盖:由“if”和 “Case”语句构成的所有可能的路 径是否己被验证。 变量覆盖:信号或地址的覆盖情况,是翻转覆盖的 扩充。 FSM代码覆盖 基于模拟的验证衡量方法基于模拟的验证衡量方法 功能覆盖率:由用户定义的用户定义的、反映在验证过程 中被运行到的功能点的范围的衡量方法。 n功能点可以是对用户而言可视的体系结构特点,也 可以是主要的微结构特征。通常

10、情况下,这些特征 不能从实现中自动生成,因此需要在验证testbench 中的一些规范。 n功能覆盖率数据一般是一些时序行为(如总线的交 易)和一些数据(如交易源、目的和优先级等)的 交叉组合。 n附加覆盖率信息可以从功能覆盖率点的交叉引用中 得到。比如,在一个器件的两个引脚之间进行的数 据处理的相互关系,或者在一个处理器中指令和中 断的关系等。 基于模拟的验证衡量方法基于模拟的验证衡量方法 period1 period2 BUG RATE Time(effort) ready to ship ship? Bug rate with code coverage 基于模拟的验证的问题基于模拟的验

11、证的问题 RTL模拟: 一个月 一个月 功能仿真:一天 一个月 电路仿真:一分钟 一小时 芯片: 一秒 一分钟 Validity Test: 108矢量矢量 Boot Unix: 1010矢量矢量 形式验证 形式验证:利用数学方法对设计结果的 功能进行验证。由于它依赖于对设计的 数学分析,因此无需使用验证测试向量。 目前包括如下几种技术: n模型检查 n定理证明 1.形式等价检验 模型检查 模型检查将设计描述及其部份规范的特性作为 输入,以证明该设计是否具有某种特性。 其过程是搜索一个设计在所有可能条件下的状 态空间,寻找不符合某特性的点,如果找到这 样的点,则可证明该特性不正确。 模型检查不

12、需要设置任何验证测试,所需验证 的特性以队列形式用特性说明语言特性说明语言描述。 当模型检查工具发现一个错误,工具可从初始 状态开始,进行完全的状态跟踪,直至出错的 状态。 定理证明 在定理证明的过程中特性被表述为数学命题, 而设计则表述为数学实体,该实体表示为若干 公理。 证明的过程就是看数学命题是否可从公理中演 绎得到。如果得到,则该特性存在;否则,该 特性则不存在。 定理证明的主要缺点: n用户必须用定理证明器的命令来构造证明过程; n当证明结论为不成立,只能用人工方法分析其原因, 不能自动跟踪。 静态时序分析(静态时序分析(STA):发现使芯片时序失效和:发现使芯片时序失效和 对芯片性

13、能起决起决定作用的电路关键路径。对芯片性能起决起决定作用的电路关键路径。 性能验证:时序分析 Clk D1 Q1 b D2 C Q2 在在同步同步时序电路中,时序电路中,2个寄存器之间组合电路个寄存器之间组合电路 延迟之和(延迟之和(建立时间、保持时间、寄存器间的建立时间、保持时间、寄存器间的 信号传播延迟信号传播延迟)决定了最大时钟频率。)决定了最大时钟频率。 设其中:设其中: setup=20ns; hold=30ns;not(b)=15ns;and(d)=25ns; 则从则从D1 到到 D2 Total delay =20+30+15+25=90ns Clk D1 Q1 b D2 C Q

14、2 Clk 性能验证:时序分析 性能验证:时序分析 建立时间(建立时间(setup):):信号信号S1高电平相对高电平相对S2上升边之前应上升边之前应 保持稳定的时间。保持稳定的时间。 保持时间(保持时间(hold):): 信号信号S1 高电平相对高电平相对S2上升边之后应上升边之后应 保持稳定的时间。保持稳定的时间。 S2 holdsetup hold 时间为从时间为从clk到来时,到来时,D Q 的传输时间,的传输时间, Setup为防止时钟歪斜等不定因数为防止时钟歪斜等不定因数 S1 w 长路径错误长路径错误 设其中设其中: setup=20ns; hold=30ns; not(b)=1

15、5ns; and(d)=25ns; 则从则从D1 到到 D2 Total delay =20+30+15+25=90ns 要求:要求: 时钟周期时钟周期 90ns 频率频率 1/90 11MHz 如如 时钟周期时钟周期 90ns 即发生长路径错误:即发生长路径错误:setup违背违背 性能验证:时序分析 短路径错误短路径错误 由于时钟歪斜(由于时钟歪斜(skew)太大而引起,在一个周期内太大而引起,在一个周期内 信号穿过两个寄存器,从而产生逻辑错误信号穿过两个寄存器,从而产生逻辑错误 clk1 clk2 Q1 Q2” Q2 性能验证:时序分析 静态时序分析(静态时序分析(STA) STA工作原

16、理:工作原理: n采用穷尽分析方法,提取出所有时序路径采用穷尽分析方法,提取出所有时序路径 n计算信号在这些路径上的传播延迟计算信号在这些路径上的传播延迟 n检查信号的建立和保持时间是否满足时序要求检查信号的建立和保持时间是否满足时序要求 n通过对最大路径延迟和最小路径延迟的分析,找出通过对最大路径延迟和最小路径延迟的分析,找出 违背时序约束的错误。违背时序约束的错误。 STA优点:优点: n如果采用模拟的方法,由于输入矢量的局限性,可如果采用模拟的方法,由于输入矢量的局限性,可 能无法检查出某些路径存在的时序失效能无法检查出某些路径存在的时序失效 nSTASTA不要求输入矢量,能很快得到分析

17、结果,节省不要求输入矢量,能很快得到分析结果,节省 了很多的设计时间。了很多的设计时间。 性能验证:后仿真 集成电路设计的验证方法学 验证规划 n验证和设计分离原则 n周密的验证计划 w设计验证方法学:根据不同性质的项目可以采用不同的验证方法 学。 w抽象级和模型:定义设计的各个抽象级,以及相应的说明和 实现,以便决定采用合适的验证技术。此外,要准备好验证时 所需的相应的合适电路模型。 w验证技术和工具:不同层次的验证需要选用不同的技术及其相应 的EDA工具。 w验证测试:不同抽象级的验证相应有不同的测试,关键是要产生 各种测试程序、如何应用这些测试程序,以及测试程序如何在各 层次中移植等。构

18、成测试的元素应包括: n测试激励:对于动态模拟,可以是各种类型的测试向量,而对于形 式验证,则要定义设计的特性和约束等。 n测试检查器:包括期望的测试响应、协议、黄金模型等。 n测试评估:包括能力测度,如运行时间、存储器规模等,以及质量 测度,如功能覆盖、代码覆盖等。 w验证流程:往往是迭代的和并行的,而非单调和串行的。此外包 括验证的跟踪,所发现的设计错误处埋以及验证文档等。 验证方法学:自顶向下的验证方法 (1)系统级验证: n系统的行为由顶层系统说明规定,系统的行为用行为模拟测 试程序进行验证。 n然后系统映射到合适的体系结构,利用IP模块进行硬件和软件 划分。该体系结构的功能和性能用系

19、统行为模拟中建立的测 试程序进行验证。 n系统级的测试程序还不是时钟精度和引线精度上的测试。但 系统级的测试程序应当能转换为适当的格式,供硬件RTL模拟 和软件验证使用。 (2)SOC硬件RTL验证: n通过系统设计,得到硬件RTL代码和测试程序,然后进行RTL 硬件功能验证,包括Lint检查、逻辑模拟、代码覆盖分析、基 于事务的验证、形式模型检验等。 (3)SOC软件验证: n软件验证中,软件和测试文件从软件设计团队得到,并针对 系统设计中得到的软件设计说明进行软件验证。 n根据验证要求,软件验证和软/硬件集成验证可以采用软件原 型、快速原型、仿真、软/硬件协同验证等方法。 (4)网表验证:

20、 nRTL设计经综合后,得到门级网表,门级设计验证可采用RTL- 门级形式等价验证,保证两者逻辑上的等价性。 n接下来由于时钟树和可测试性设计扫描链的插入,网表必须 再通过等价验证,以确保设计的正确性。 n此外,从这里开始,静态时序分析验证在以后各阶段需要反 复进行,以保证设计满足时序要求。 (5)物理验证: n芯片平面规划、布局、布线设计完成后,需要进行各种物理 验证,包括设计规则检查、版图对电路的一致性检查、信号 完整性检查等。 (6)器件测试: n最后这一步是为了测试器件制造的正确性。与设计验证的目 的有所不同,这一步着重于检测制造中的缺陷,而不是设计 错误,所用的测试向量可在功能验证过程中产生,也可以利 用ATPG工具产生。 到此,完成验证,整个设计过程结束,可以交付制造。 自底向上的验证方法 先是验收所有设计文件,要确认设计文件是否 与目标工具兼容。通过检查,确保只使用认可 的功能和约束, 然后,设计文件通过Lint检查。根据设计的抽 象级别,进行不同的验证处理:一种情况,如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论