数字集成电路可测性设计及验证方法学课件

上传人:痛*** 文档编号:241399131 上传时间:2024-06-23 格式:PPT 页数:102 大小:2.43MB
返回 下载 相关 举报
数字集成电路可测性设计及验证方法学课件_第1页
第1页 / 共102页
数字集成电路可测性设计及验证方法学课件_第2页
第2页 / 共102页
数字集成电路可测性设计及验证方法学课件_第3页
第3页 / 共102页
点击查看更多>>
资源描述
数字集成电路可测性软件数字集成电路可测性软件设计及验证平台设计及验证平台2013年年4月月25日日数字集成电路可测性软件设计及验证平台2013年4月25日2024/6/23共102页2主要内容主要内容n可测性基础可测性基础n可测性设计工具可测性设计工具n验证的必要性验证的必要性n验证方法学介绍验证方法学介绍n验证工具介绍验证工具介绍2023/7/29共102页2主要内容可测性基础2024/6/23共102页3主要内容主要内容n可测性基础可测性基础n可测性设计工具可测性设计工具n验证的必要性验证的必要性n验证方法学介绍验证方法学介绍n验证工具介绍验证工具介绍2023/7/29共102页3主要内容可测性基础可测性基础可测性基础n什么是可测性设计?什么是可测性设计?n物理瑕疵及故障模型物理瑕疵及故障模型n单一故障模型:单一故障模型:SAFModeln可测性设计常用方法可测性设计常用方法n检测检测SAF的算法:的算法:D算法算法n测试矢量集测试矢量集n故障覆盖率故障覆盖率2024/6/23共102页4可测性基础什么是可测性设计?2023/7/29共102页42024/6/23共102页5什么是可测性设计?什么是可测性设计?n可测性设计可测性设计,DesignForTest,即即DFT。为了测试所设计为了测试所设计IC有没有被正确的制造出来有没有被正确的制造出来(测试半导体生产处理过程中的瑕疵,不是测(测试半导体生产处理过程中的瑕疵,不是测试芯片设计的对错试芯片设计的对错)。DFT=增加芯片逻辑增加芯片逻辑+生成测试矢量集(供测试生成测试矢量集(供测试设备用)设备用)2023/7/29共102页5什么是可测性设计?2024/6/23共102页6物理瑕疵和故障模型物理瑕疵和故障模型1.开路和短路开路和短路2.金属线之间的电桥金属线之间的电桥3.漏源穿通漏源穿通CMOS反相器反相器中的物中的物理缺陷理缺陷2023/7/29共102页6物理瑕疵和故障模型CMOS2024/6/23共102页7物理故障物理故障逻辑故障逻辑故障封装引脚间的漏电或短路封装引脚间的漏电或短路单一固定故障单一固定故障芯片焊接点到管脚连线断裂芯片焊接点到管脚连线断裂延时故障延时故障表面玷污、含湿气表面玷污、含湿气短路或者开路故障短路或者开路故障金属层迁移、应力、脱皮金属层迁移、应力、脱皮金属层开路、短路金属层开路、短路2023/7/29共102页7物理故障逻辑2024/6/23共102页8固定固定1故障:故障:U0的输入端的输入端A固定接在高固定接在高电平上,其值一直为电平上,其值一直为“1”固定固定0故障:故障:U1的输出端的输出端Y固定接在固定接在低电平上,其值一直为低电平上,其值一直为“0”单一固定故障:单一固定故障:stuck-atfault2023/7/29共102页8单一固定故障:stuck-at2024/6/23共102页9DFT常用方法常用方法n功能点测试功能点测试需在每个测试点增加可控的输入和输出,需在每个测试点增加可控的输入和输出,I/O增加增加n扫描测试扫描测试(基于(基于D算法)算法)结构化的结构化的DFT技术,全扫描和部分扫描技术,全扫描和部分扫描n内建自测试内建自测试消除了对消除了对ATE的存储能力和频率的限制,更具发的存储能力和频率的限制,更具发展潜力展潜力2023/7/29共102页9DFT常用方法功能点测试2024/6/23共102页10D算法算法D算法是算法是20世纪世纪60年代年代IBM提出测试提出测试SAF(stuck-atfaultmodel,简称,简称SAF模型模型)的,)的,D算法在没有故障和算法在没有故障和有故障的电路之间产生了逻辑的差异(有故障的电路之间产生了逻辑的差异(Discrepancy),),D为为Discrepancy缩写,缩写,D算法即为差异算法。算法即为差异算法。n经典的经典的D算法如下:算法如下:1、瞄准特定的、瞄准特定的SAF。2、驱动故障节点为反向值。、驱动故障节点为反向值。3、把错误传送到输出端口。、把错误传送到输出端口。4、记录测试向量,减掉已测试过的故障。、记录测试向量,减掉已测试过的故障。2023/7/29共102页10D算法2024/6/23共102页11D算法算法n第一步:是把某个节点作为测试目标,我们把第一步:是把某个节点作为测试目标,我们把U1的输出的输出端作为测试的目标,探测它有无端作为测试的目标,探测它有无SA0的故障。的故障。2023/7/29共102页11D算法第一步:是把某个节点作2024/6/23共102页12D算法算法n第二步:是通过驱动该节点为相反的值以激活第二步:是通过驱动该节点为相反的值以激活(activate)目标的故障。)目标的故障。输入端口输入逻辑输入端口输入逻辑“0”,如,如U1输出没有输出没有SA0的的故故障,其逻辑障,其逻辑“1”;如;如U1输出有输出有SA0的故障,其逻的故障,其逻辑为辑为“0”。可以通过测试其逻辑值来判断值该节点是否有可以通过测试其逻辑值来判断值该节点是否有SA0的故障。的故障。2023/7/29共102页12D算法第二步:是通过驱动该节2024/6/23共102页13D算法算法n第三步:是把故障效应传送到输出端口,可以在输出端口第三步:是把故障效应传送到输出端口,可以在输出端口观测到其逻辑值,有故障节点的逻辑值通过组合电路后可观测到其逻辑值,有故障节点的逻辑值通过组合电路后可能会反向,但是差异还保留着。能会反向,但是差异还保留着。2023/7/29共102页13D算法第三步:是把故障效应传2024/6/23共102页14D算法算法n第四步:记录向量。成功的测试向量被记录在内第四步:记录向量。成功的测试向量被记录在内存里,已测试的故障从目标故障的清单里减掉。存里,已测试的故障从目标故障的清单里减掉。2023/7/29共102页14D算法第四步:记录向量。成功2024/6/23共102页15可测试的触发器有两种模式:可测试的触发器有两种模式:正常模式正常模式在这种模式下,所设计芯片以设计的原来在这种模式下,所设计芯片以设计的原来功能工作;功能工作;测试模式测试模式在这种模式下,所设计芯片进行生产测试。在这种模式下,所设计芯片进行生产测试。扫描测试扫描测试2023/7/29共102页15可测试的触发器有两种模式:扫2024/6/23共102页16扫描测试扫描测试标准标准D触发器触发器与标准与标准D触发器等触发器等效的扫描触发器效的扫描触发器2023/7/29共102页16扫描测试标准D触发器与标准D2024/6/23共102页17使用扫描触发器,会增加设计的面积,增加了路径使用扫描触发器,会增加设计的面积,增加了路径的延迟,增大了触发器的输出负载和电路的功耗。的延迟,增大了触发器的输出负载和电路的功耗。SMIC0.18m工艺库工艺库AREA(m2)FFDQRHDLX63.2FFSDQRHDLX79.83增加百分比增加百分比26.3%扫描测试扫描测试2023/7/29共102页17使用扫描触发器,会增加2024/6/23共102页18扫描测试流程扫描测试流程2023/7/29共102页18扫描测试流程2024/6/23共102页19测试矢量集(测试矢量集(Test Pattern)由一个或多个测试序列组成的测试矢量,测试矢量包含输由一个或多个测试序列组成的测试矢量,测试矢量包含输入激励和预期的输出响应,以测试一个目标的故障。入激励和预期的输出响应,以测试一个目标的故障。2023/7/29共102页19测试矢量集(TestPat2024/6/23共102页20n以二输入与非门为例,假设输以二输入与非门为例,假设输入为入为A,B,输出为,输出为Y,Y=(A*B);ABYA/1A/0B/1B/0Y/0Y/1001111101011011101101110101110010101n测试矢量为:测试矢量为:001,011,101,110输入激励输入激励输出响应输出响应2023/7/29共102页20以二输入与非门为例,假设输入2024/6/23共102页21故障覆盖率故障覆盖率可以测试到的故障占总故障的比例。可以测试到的故障占总故障的比例。如果电路的每个节点既可以控制如果电路的每个节点既可以控制(controllable),又可观测又可观测(observable),那么电路的测试覆盖率就,那么电路的测试覆盖率就高。高。可控,可测可控,可测可控,不可测可控,不可测不可控点:冗余电路,门控时钟不可控点:冗余电路,门控时钟2023/7/29共102页21故障覆盖率可以测试到的2024/6/23共102页22业界产品测试方法业界产品测试方法ATE:AutomaticTestEquipment2023/7/29共102页22业界产品测试方法ATE:A2024/6/23共102页232023/7/29共102页232024/6/23共102页24主要内容主要内容n可测性基础可测性基础n可测性设计工具可测性设计工具n验证的必要性验证的必要性n验证方法学介绍验证方法学介绍n验证工具介绍验证工具介绍2023/7/29共102页24主要内容可测性基础2024/6/23共102页25DFTCompilernSynopsys公司的集成于公司的集成于DesignCompiler的的先进测试综合工具先进测试综合工具n独创的独创的“一遍测试综合一遍测试综合”技术技术n功能强大的扫描式可测性设计分析、综合和验功能强大的扫描式可测性设计分析、综合和验证技术证技术n支持支持RTL级、门级的扫描测试设计规则检查,级、门级的扫描测试设计规则检查,以及给予约束的扫描链插入和优化以及给予约束的扫描链插入和优化n启动命令启动命令source/opt/demo/synopsys.envdesign_vision&2023/7/29共102页25DFTCompilerSy2024/6/23共102页26设计流程设计流程2023/7/29共102页26设计流程2024/6/23共102页271.Scan-ReadySynthesisDFTCompiler2023/7/29共102页271.Scan-ReadyS2024/6/23共102页282.SetATEConfiguration2023/7/29共102页282.SetATEConf2024/6/23共102页29n即测试时钟周期为即测试时钟周期为100ns,输入端口的数据输入到达时间,输入端口的数据输入到达时间为为5ns,双向端口的数据输入到达时间为,双向端口的数据输入到达时间为55ns,输出端口,输出端口的数据程序采样(的数据程序采样(strobe)时间为)时间为40ns。n测试时间参数的设置一般放在测试时间参数的设置一般放在.synopsys_dc.setup文件文件中,也可以包含在中,也可以包含在DC综合脚本文件里。综合脚本文件里。n测试时钟定义了驱动所有扫描触发器的时钟,测试时钟一测试时钟定义了驱动所有扫描触发器的时钟,测试时钟一般与电路的工作时钟不同,它是由般与电路的工作时钟不同,它是由ATE提供的,只在测试提供的,只在测试时使用。时使用。DFTC进行设计时,假设进行设计时,假设ATE对芯片做测试的所对芯片做测试的所有时钟周期是相同的,等于有时钟周期是相同的,等于test_default_period。2.Set ATE Configuration2023/7/29共102页29即测试时钟周期为100ns,2024/6/23共102页303.Pre-ScanCheckn执行执行create_test_protocol命令命令,生成测试协议生成测试协议n执行执行dft_drc命令,检查设计中有无测试设计规则的违规。命令,检查设计中有无测试设计规则的违规。n典型的设计综合规则有:典型的设计综合规则有:capacitance,transition,andfanoutn典型的测试设计规则主要检查典型的测试设计规则主要检查1.设计中是否有测试违规使得无法插入扫描链设计中是否有测试违规使得无法插入扫描链2.设计中是否有测试违规使得无法捕获数据设计中是否有测试违规使得无法捕获数据3.设计中是否有测试违规使得测试覆盖率降低设计中是否有测试违规使得测试覆盖率降低2023/7/29共102页303.Pre-ScanChe2024/6/23共102页314.ScanSpecificationn在在DFTC中,可以用中,可以用set_scan_configuration命命令进行扫描路径的管理令进行扫描路径的管理set_scan_configuration-chain_count6set_scan_configuration-clock_mixingmix_clocksset_scan_configuration-internal_clockstrueset_scan_configuration-add_lockupfalse2023/7/29共102页314.ScanSpecifi2024/6/23共102页324.ScanSpecificationn用下面的命令定义设计中其中一条扫描链:用下面的命令定义设计中其中一条扫描链:set_dft_signal-viewspec-typeScanDataIn-portSI1set_dft_signal-viewspec-typeScanDataOut-portSO1set_dft_signal-viewspec-typeScanEnable-portSEactive_satate1set_san_path-viewspecC1-scan_data_inSI1scan_data_outS012023/7/29共102页324.ScanSpecifi2024/6/23共102页335.ScanPreview执行执行preview_dft:1.检查扫描路径的一致性检查扫描路径的一致性2.确定扫描链的数目确定扫描链的数目3.分派扫描单元和为扫描单元排次序分派扫描单元和为扫描单元排次序4.加入连接的硬件加入连接的硬件2023/7/29共102页335.ScanPreview2024/6/23共102页346.ScanChainSynthesis执行执行insert_dft,读取已预览的扫描结构读取已预览的扫描结构进行所需要的扫描代替进行所需要的扫描代替插入测试点插入测试点保证没有竞争保证没有竞争连接扫描路径连接扫描路径把违规减少到最少把违规减少到最少2023/7/29共102页346.ScanChainS2024/6/23共102页35SettingtheEffortLevel2023/7/29共102页35SettingtheEf2024/6/23共102页367.Post-ScanCheck2023/7/29共102页367.Post-ScanCh2024/6/23共102页372023/7/29共102页372024/6/23共102页388.EstimateTestcoverage2023/7/29共102页388.EstimateTes2024/6/23共102页39FileOutputwrite-formatveriloghierarchyoutput./netlist/top_pad.svwrite_sdc./sdc/top_pad.sdcwrite_test_protocol-formatstil-output./spf/top_pad.spf.sv文件和文件和.sdc文件供布局布线工具文件供布局布线工具Astro生成芯片版图生成芯片版图.spf文件供测试矢量生成工具文件供测试矢量生成工具Tetramax生成与测试矢量集,待芯片流片生成与测试矢量集,待芯片流片封装好后,测试矢量集供封装好后,测试矢量集供ATE设备来测试芯片。设备来测试芯片。2023/7/29共102页39FileOutput2024/6/23共102页40主要内容主要内容n可测性基础可测性基础n可测性设计工具可测性设计工具n验证的必要性验证的必要性n验证方法学介绍验证方法学介绍n验证工具介绍验证工具介绍2023/7/29共102页40主要内容可测性基础2024/6/23共102页41验证的必要性验证的必要性n验证的概念,验证与测试的区别。n经验表明,验证已经占到整个产品开发周期的70%以上,它已经成为复杂SOC(Systemon-Chip)开发中的重要壁垒。2023/7/29共102页41验证的必要性验证的概念,验证2024/6/23共102页42典型流程典型流程时序不满足动态仿真正确Verificationisnotjustveryhard,itisvery,veryhard没有一个简单的工具可以解决你所有的验证没有一个简单的工具可以解决你所有的验证问题。问题。(VSIA,VirtualSocketInterfaceAlliance)2023/7/29共102页42典型流程时序不满足动态仿2024/6/23共102页43主要内容主要内容n可测性基础可测性基础n可测性设计工具可测性设计工具n验证的必要性验证的必要性n验证方法学介绍验证方法学介绍n验证工具介绍验证工具介绍2023/7/29共102页43主要内容可测性基础2024/6/23共102页44验证方法学验证方法学n方法学:又称方法论,是一门学问采用的方法、规方法学:又称方法论,是一门学问采用的方法、规则与公理;一种特定的做法或一套做法。则与公理;一种特定的做法或一套做法。n验证方法学:指完成验证过程中的一系列方法、技验证方法学:指完成验证过程中的一系列方法、技术和规范。术和规范。q仿真技术仿真技术q静态技术静态技术q物理验证物理验证2023/7/29共102页44验证方法学方法学:又称方法论2024/6/23共102页45仿真技术仿真技术n基于事件的仿真基于事件的仿真-任何一个输入的变化都被任何一个输入的变化都被标记为事件,即常说的功能仿真,精度高,标记为事件,即常说的功能仿真,精度高,速度慢。比如速度慢。比如Modelsim,VCS。n基于周期的仿真基于周期的仿真-单周期内只检查一次输入单周期内只检查一次输入并计算设计的输出逻辑值。速度快,无时并计算设计的输出逻辑值。速度快,无时序、毛刺。比如序、毛刺。比如Cyclone。n事务级仿真事务级仿真-一堆事件的集合即为事务,即一堆事件的集合即为事务,即常说的验证平台。常说的验证平台。n软硬件协同验证软硬件协同验证-需要专门的软硬件,成本需要专门的软硬件,成本高高。2023/7/29共102页45仿真技术基于事件的仿真-任传统仿真系统传统仿真系统2024/6/23共102页46nDUT:DesignUnderTestn适用于基于事适用于基于事件的仿真件的仿真和和基基于周期的仿真。于周期的仿真。n适用于简单的适用于简单的设计。设计。缺点:缺点:1.可扩展性差2.可重用性差传统仿真系统2023/7/29共102页46DUT:Desi层次化的验证系统层次化的验证系统2024/6/23共102页47适用于事务级仿真适用于事务级仿真优点:优点:1.可扩展性好2.可重用性好层次化的验证系统2023/7/29共102页47适用于事务级为什么要用事务级仿真?2024/6/23共102页48基于事件的仿真基于事件的仿真事务级仿真事务级仿真Testbench代码可读性,可代码可读性,可维护性维护性差差强强仿真速度仿真速度慢慢快快Testbench结构结构DUT复杂时,结构混乱复杂时,结构混乱DUT复杂时,结构清晰复杂时,结构清晰Testbench代码量代码量DUT简单时,代码量尚可简单时,代码量尚可DUT复杂时,代码量巨大复杂时,代码量巨大DUT简单时,代码量略多简单时,代码量略多DUT复杂时。代码量较少复杂时。代码量较少与待测设计联系程度与待测设计联系程度非常紧密非常紧密行为级与行为级与DUT联系紧密联系紧密事务级具有自身独立性事务级具有自身独立性可复用性可复用性无无强强抽象层次抽象层次无无有有参考模型参考模型无无有有基于事件的仿真与事务级仿真的比较基于事件的仿真与事务级仿真的比较为什么要用事务级仿真?2023/7/29共102页48基于事务级仿真事务级仿真nRVM:ReferenceMethodologyMethodology,Synopsys公司。nVMM:VerificationMethodologyManual,ARM公司和Synopsys公司。nAVM:AdvancedVerificationMethodology,Mentor公司。nOVM:OpenVerificationMethodology,Cadence公司和Mentor公司nUVM:UniversalVerificationMethodology,Cadence公司2024/6/23共102页49事务级仿真RVM:ReferenceMethodolog为什么选用OVM?验证方法学验证方法学侧重点侧重点EDA验证工具验证工具支持的验证语言支持的验证语言基类库是否基类库是否开源开源RVM层次化验证层次化验证VCSOpenVera否否VMMRTL级模块级模块VCSSystemVerilog是是AVM层次化验证层次化验证QuestasimSystemCSystemVerilog是是OVM开源和不同开源和不同仿真器之间仿真器之间的透明性的透明性支持不同验证支持不同验证工具工具支持支持SystemVerilog等多种语言等多种语言是是UVM开源和快速开源和快速入门入门QuestasimNC-verilog支持支持SystemVerilog等多种语言等多种语言是是2024/6/23共102页50各种验证方法学比较各种验证方法学比较为什么选用OVM?验证方法学侧重点EDA验证工具支持的验SystemVerilog介绍介绍nSystemVerilog结合了结合了Verilog和和C+的概念,的概念,具有如下新功能:具有如下新功能:n1.面向对象编程面向对象编程(OOP)、n2.随机约束随机约束(ConstraintRandom)、n3.断言断言(Assertion)、n4.功能覆盖率功能覆盖率(FunctionalCoverage)。2024/6/23共102页51SystemVerilog介绍SystemVerilog结合nOOP:Object-orientedprogrammingn类:定义实物的抽象特点,包含方法和属性。n对象:类的实例。n方法:类的行为。n继承:子类包含类的特性。2024/6/23共102页52SystemVerilog介绍介绍-面向对象编程面向对象编程OOP:Object-orientedprogramminnCRT:ConstraintRandomTestclassmy_transactionextendsovm_transaction;randintdata_i;constraintc_data_idata_i=0;data_i262144;virtualfunctionvoidrandomize_();data_i=$random&18h3ffff;endfunction2024/6/23共102页53SystemVerilog介绍介绍-随机约束随机约束CRT:ConstraintRandomTest20SystemVerilog介绍介绍-断言断言nAssertion示例示例propertyp10;(posedgeclock)(io.data_check_o=data_out_design_for_check-2);endpropertya10:assertproperty(p10);2024/6/23共102页54SystemVerilog介绍-断言Assertion示nFunctionalCoveragencovergroup:覆盖率模型:覆盖率模型nsample():采样函数:采样函数nbins:仓仓CovergroupCovkind;coverpointtr.kind/kind为4位数据binszero=0;binshi=8:$;endgroup2024/6/23共102页55SystemVerilog介绍介绍-功能覆盖率功能覆盖率FunctionalCoverage2023/7/29共1OVM介绍介绍nOVM是一种基于SystemVerilog的验证方法或者策略。OVM已经实现了一个基本的层次化验证平台,大大简化验证工程师的工作量。nOVM可以验证HDL代码或者网表文件nOVM特点:1.开放性:支持所有验证工具2.开源:OVM库都是基于SystemVerilog实现的,可以在网上下载。3.可靠性:两大公司共同开发维护2024/6/23共102页56OVM介绍OVM是一种基于SystemVerilog的验证方2024/6/23共102页57OVM结构结构novm_envnovm_sequecernovm_agentnovm_transcationnovm_scoreboardnovm_drivernovm_monitor2023/7/29共102页57OVM结构ovm_env2024/6/23共102页58静态技术静态技术n语法检查语法检查-用户可以自由控制需要检查的规则,如代码风格,可综合检查,DFT检查。nlint工具。n静态时序分析静态时序分析-检查建立、保持时间以及其他延时信息是否满足设计时序要求。PrimeTime。n形式验证形式验证不考虑时序信息,通常用于验证两个设计是否在功能上等效。Formality工具。2023/7/29共102页58静态技术语法检查-用户可以2024/6/23共102页59n一般来说,要分析或检验一个电路设计的时序方面的特征有两种主要手段:动态时序仿真(DynamicTimingSimulation)和静态时序分析(StaticTimingAnalysis)1.动态时序仿真:利用仿真器和延迟文件,通过反标节点延迟信息来仿真。优点:可直观查看波形;缺点:速度慢,看不到关键路径。2.静态时序分析:分析每条时间路径上的延迟,来查看是否存在setup/hold违反。优点:分析速度比较快,全面;缺点:不能查看功能是否正确。静态时序分析静态时序分析2023/7/29共102页59一般来说,要分析或检验一个电2024/6/23共102页60n所谓形式验证,就是通过比较两个设计在逻辑功能是否等同的方法来验证电路的功能。n优点:1.不依赖于测试矢量,因此能提供更完全的验证;2.可以实现RTL-to-RTL、RTL-to-gate、gate-to-gate之间的验证;3.有定位功能,可以帮助你找出两个设计之间功能不等同的原因;4.可以使用的文件格式有VHDL、Verilog、Synopsys的.db格式,以及EDIF网表等;5.可以实现自动的分层验证;形式验证形式验证2023/7/29共102页60所谓形式验证,就是通过比较2024/6/23共102页61物理验证物理验证-版图级版图级n电源电压降电源电压降n电迁移电迁移n功耗功耗Astro布局布线工布局布线工n天线效应天线效应具中完成具中完成n串扰串扰2023/7/29共102页61物理验证-版图级电源电压降2024/6/23共102页62主要内容主要内容n验证的必要性验证的必要性n验证方法学介绍验证方法学介绍n验证工具介绍验证工具介绍n演示演示2023/7/29共102页62主要内容验证的必要性如何利用如何利用OVM完成验证?完成验证?2024/6/23共102页63如何利用OVM完成验证?2023/7/29共102页63基于OVM的数字滤波器验证平台n数模转化器(DAC)中的数字插值滤波器做为此验证平台的DUTn数字插值滤波器的功能:1.提高采样频率2.滤除带外(带宽20KHz)噪声2024/6/23共102页64输入信号输入信号输出信号输出信号基于OVM的数字滤波器验证平台数模转化器(DAC)中的数字插传统的滤波器验证平台仿真结果n传统的验证平台:基于定向测试矢量+波形查看的方式2024/6/23共102页65传统的滤波器验证平台仿真结果传统的验证平台:基于定向测试矢量传统验证平台没找到传统验证平台没找到BUG的原因的原因n1.仿真时间没有足够长2.借助波形来判断3.没有与理想参考模型比较基于基于OVM的验证平台的验证平台2024/6/23共102页66传统验证平台没找到BUG的原因1.仿真时间没有足够长202OVM验证平台验证步骤验证平台验证步骤n利用OVM库完成平台代码n启动验证工具n创建编译库n编译验证平台代码n启动仿真2024/6/23共102页67OVM验证平台验证步骤利用OVM库完成平台代码2023/7/利用利用OVM库完成平台代码库完成平台代码n扩展OVM类n逐层完成q接口q数据产生q驱动器q验证环境q比较器2024/6/23共102页68利用OVM库完成平台代码扩展OVM类2023/7/29共10OVM平台平台-接口接口ninterfaceio_if();nlogic17:0data_i;nlogic17:0data_o;nlogic17:0data_check_o;nmodportdut_if(inputdata_i,outputdata_o);/DUT接口nmodportcheck_if(inputdata_i,outputdata_check_o);/比较器模块接口nEndinterfacenio_ifmy_io();/装载接口nmodulecheck(io_if.check_ifio,inputclock,rst,en);ndutdut(.io(my_io),.clock(clock),.rst(rst),.en(rst_check);ncheckcheck(.io(my_io),.clock(clock),.rst(rst),.en(rst_check);2024/6/23共102页69OVM平台-接口interfaceio_if();OVM平台平台数据产生数据产生nclassmy_transactionextendsovm_transaction;nrandintdata_i;nfunctionnew(stringname=);nsuper.new(name);nendfunction:newn/产生随机事件的约束条件nconstraintc_data_idata_i=0;data_i262144;nvirtualfunctionvoidrandomize_();ndata_i=$random&18h3ffff;nendfunctionnovm_object_utils_begin(my_transaction)/在程序中ovm_field_int(data_i,OVM_ALL_ON+OVM_DEC)novm_object_utils_endnendclass:my_transaction2024/6/23共102页70OVM平台数据产生classmy_transactionOVM平台平台驱动器驱动器nclassmy_driverextendsovm_driver;/novm_component_utils(my_driver)/注册本类,这个宏的结尾没有符号;nvirtualio_ifv_io;/装载虚拟接口novm_get_port#(my_transaction)get_port;/装载与激励发生器通信的通道接口:nfunctionnew(stringname,ovm_componentparent);nsuper.new(name,parent);n/建议验证程序中可写一些ovm_report_info的语句供提示用:novm_report_info(,Calledmy_driver:new);/在测试结果显示此函数被调用nendfunction:new n2024/6/23共102页71OVM平台驱动器2023/7/29共102页71nfunctionvoidbuild;nsuper.build();novm_report_info(,Calledmy_driver:build);nget_port=new(get_port,this);/初始化nendfunction:build nvirtualtaskrun;novm_report_info(,Calledmy_driver:run);nforevernbeginnmy_transactiontx;n#1600get_port.get(tx);/从通道中取一个事件novm_report_info(,$psprintf(data_i=%2h,tx.data_i);nv_io.dut_if.data_i=tx.data_i;nendnendtask:runnendclass:my_driver2024/6/23共102页72functionvoidbuild;OVM平台平台验证环境验证环境nclassmy_envextendsovm_env;/novm_component_utils(my_env)/注册本类novm_random_stimulus#(my_transaction)env_stimulus;/装载激励器ntlm_fifo#(my_transaction)env_fifo;/装载通道nmy_driverenv_driver;/装载驱动器nfunctionnew(stringname=my_env,ovm_componentparent=null);nsuper.new(name,parent);novm_report_info(,Calledmy_env:new);nendfunction:new n2024/6/23共102页73OVM平台验证环境2023/7/29共102页73nvirtualfunctionvoidbuild;nsuper.build();novm_report_info(,Calledmy_env:build);nenv_stimulus=new(env_stimulus,this);/初始化激励器nenv_fifo=new(env_fifo,this);/初始化通道nenv_driver=new(env.driver,this);/初始化驱动器nendfunction:buildnnvirtualfunctionvoidconnect;/设定连接关系novm_report_info(,Calledmy_env:connect);nenv_stimulus.blocking_put_port.connect(env_fifo.put_export);/激励器侧接口-放事件nenv_driver.get_port.connect(env_fifo.get_export);/驱动器侧接口-取事件nendfunction:connect2024/6/23共102页74virtualfunctionvoidbuild;nvirtualfunctionvoidconfigure;/novm_report_info(,Calledmy_env:configure);nenv_stimulus.set_report_id_action(stimulusgeneration,OVM_NO_ACTION);/限制显示信息nendfunction:configure/你可删除上一行,看看有什么变化?nntaskrun();novm_report_info(,Calledmy_env:run);nendtask:runnnvirtualfunctionvoidreport;novm_report_info(,Calledmy_env:report);nendfunction:reportn/在运行下面的run_test()函数时,以上函数将自动依次运行nendclass:my_env2024/6/23共102页75virtualfunctionvoidconfigurnmodulecheck(io_if.check_ifio,inputclock,rst,en,input17:0data_out_design_for_check);nwire17:0hcic_out;n/参考模型nHcic_fullHcic_full(clock,en,rst,io.data_i,nhcic_out,);nassignio.data_check_o=hcic_out;npropertyp10;n(posedgeclock)(io.data_check_o=data_out_design_for_check-2)|io.data_check_o=0;nendpropertyna10:assertproperty(p10);nendmodule2024/6/23共102页76OVM平台平台比较器比较器modulecheck(io_if.check_ifiontimescale1ns/1nsnmoduletop;nimportovm_pkg:*;nimportmy_pkg:*;nparameterclock_cycle=100;nbitclock;nbitrst;nbitrst_check;nio_ifmy_io();/装载接口ndutdut(.io(my_io),.clock(clock),.rst(rst),.en(rst_check);/装载DUTncheckcheck(.io(my_io),.clock(clock),.rst(rst),.en(rst_check),n.data_out_design_for_check(my_io.dut_if.data_o);n/建议在验证程序顶级模块中一般采用继承ovm_test的类包装继承ovm_env的类2024/6/23共102页77OVM平台平台顶层模块顶层模块timescale1ns/1nsnclassmy_testextendsovm_test;novm_component_utils(my_test)/注册本类nmy_envtop_env;/装载环境-top_envnnfunctionnew(stringname=my_test,ovm_componentparent=null);nsuper.new(name,parent);novm_report_info(,Calledmy_test:new);nendfunction:new nvirtualfunctionvoidbuild;nsuper.build();novm_report_info(,Calledmy_test:build);ntop_env=new();/初始化n/建议在验证程序中可设定看门狗nset_global_timeout(1000000us);nendfunction:buildn2024/6/23共102页78classmy_testextendsovm_tesnvirtualfunctionvoidconnect;novm_report_info(,Calledmy_test:connect);ntop_env.env_driver.v_io=my_io;/连接虚拟接口到驱动器的物理接口nendfunction:connectntaskrun;nmy_transactiontx;ntx=new();novm_report_info(,Calledmy_test:run);ntop_env.env_stimulus.generate_stimulus(tx,2000000);/激励器产生20个事件nendtask:runnendclass:my_test2024/6/23共102页79virtualfunctionvoidconnect;ninitialbeginnrun_test(“my_test”);nclock=0;nrst=0;nrst_check=0;n#(32*clock_cycle)rst=1;nendnalways#(clock_cycle/2)clock=clock;ninitialbeginn$fsdbDumpfile(top.fsdb);n$fsdbDumpSVA;n$fsdbDumpvars(0,top,+all);nendnendmodule:top2024/6/23共102页80initialbegin2023/7/29共102页8启动验证工具启动验证工具n利用mentor的questasim,界面和操作类似于modelsimn环境变量source/opt/demo/questasim.envn启动命令vsim&2024/6/23共102页81启动验证工具利用mentor的questasim,界面和操作脚本方式完成验证脚本方式完成验证nvlibdac_hcic/创建库nvlog+acc-f./rtl/ovm_rtl/compile_questa_sv.f-workdac_hcic-sv+cover/编译整个验证平台nvsim-cdac_hcic.top-sv_seed100-coverage-assertcover-assertdebug-sva-voptargs=“+acc”-pli/opt/springsoft/verdi/share/PLI/MODELSIM/LINUX/novas_fli.so/启动仿真nviewassertions/查看断言nrun-all/开始运行nquit-sim/结束仿真2024/6/23共102页82脚本方式完成验证vlibdac_hcic/创建库20compile_questa_sv.fn+incdir+/home1t/opt/questasim/questasim/verilog_src/ovm-2.1.2/srcn/home1t/opt/questasim/questasim/verilog_src/ovm-2.1.2/src/ovm_pkg.svn+incdir+/home/liuxp/dac/rtl/ovm_rtln+incdir+/home/liuxp/dac/rtl/dac_balise/dac_haf_cicn/home/liuxp/dac/rtl/ovm_rtl/ovm_start.sv2024/6/23共102页83compile_questa_sv.f+incdir+/ho结果查看结果查看断言结果查看断言结果查看覆盖率查看覆盖率查看2024/6/23共102页84结果查看断言结果查看2023/7/29共102页84断言结果查看Questasim下2024/6/23共102页85断言结果查看Questasim下2023/7/29共102断言结果查看Verdi下2024/6/23共102页86Verdi(另外一个软件,专门用作波形查看和调试)下查看断言结果更加直观,箭头朝上就表示端正通过,朝下表示断言失败。断言结果查看Verdi下2023/7/29共102页86V覆盖率查看2024/6/23共102页87覆盖率查看2023/7/29共102页87覆盖率查看2024/6/23共102页88覆盖率查看2023/7/29共102页88静态验证工具静态验证工具n静态时序分析静态时序分析PrimeTimen形式验证形式验证-Formality2024/6/23共102页89静态验证工具静态时序分析PrimeTime2023/7/静态时序分析静态时序分析PrimeTimenPrimeTime是Synopsys的静态时序分析软件,常被用来分析大规模、同步、数字ASIC。nPrimeTime适用于门级的电路设计。1.逻辑综合后网表2.自动布局布线后网表2024/6/23共102页90静态时序分析PrimeTimePrimeTime是SynoPrimeTime流程流程1.设置查找和链接路径;2.读入并链接所要分析的设计;3.设置操作条件和线上负载模型;4.设置基本的时序约束;5.检查所设置的约束以及该设计的结构。2024/6/23共102页91PrimeTime流程1.设置查找和链接路径;2023/PrimeTime工具启动工具启动nsource/opt/demo/synopsys.envnpt_shellnprimetime&2024/6/23共102页92PrimeTime工具启动source/opt/demo/2024/6/23共102页93命令输入区命令输入区2023/7/29共102页93命令输入区2024/6/23共102页94PrimeTime脚本脚本sourcept.scrsetlib_path/home1t/smic/smic_65/SCC65NLL_HS_RVT_V1p1asetsmic_stdlib_path$lib_path/synopsys/1.2v/setsmic_diolib_path/home1t/smic/smic_65/SP65NLLD2RP_OV3_TTM_V0p2a/syn/3p3v/setsmic_aiolib_path/home1t/smic/smic_65/SP65NLLD2RP_OV3_ANALOG_TTM_V0p2a/syn/3p3v/setsmic_stdsymlib_path$lib_path/Symbol/setsearch_path$search_path$smic_stdlib_path$smic_aiolib_path$smic_diolib_path$smic_stdsymlib_path$smic_iosymlib_path“setlink_path*scc65nll_hs_rvt_ss_v1p08_125c_basic.dbscc65nll_hs_rvt_ff_v1p32_-40c_basic.dbSP65NLLD2RP_OV3_TTM_V0p2_ss_V1p08_125C.dbSP65NLLD2RP_OV3_TTM_V0p2_ff_V1p32_-40C.db“setsymbol_librarylistSCC65NLL_HS_RVT_V1p1.sdbremove_designallread_verilog./syn/netlist/dac.sv“link_designdaccurrent_designdaclist_designsreport_cell2023/7/29共102页94PrimeTime脚本s2024/6/23共102页95PrimeTime脚本脚本sourcept.scrset_operating_conditions-min_libraryscc65nll_hs_rvt_ff_v1p32_-40c_basic-minff_v1p32_-40c-max_libraryscc65nll_hs_rvt_ss_v1p08_125c_basic-maxss_v1p08_125c-analysis_typebc_wcset_operating_conditions-libraryscc65nll_hs_rvt_ff_v1p32_-40c_basicff_v1p32_-40ccreate_clock-nameclk-period300-waveformlist0150clk_in_padset_clock_latency2.0all_clocksset_clock_uncertainty-setup2.0clkset_clock_transition2get_clocksclkset_drive0listclkclk_in_padset_driving_cell-librarySP65NLLD2RP_OV3_TTM_V0p2_ss_V1p08_125C-lib_cellPICDR-pinCremove_from_collectionall_inputsget_portsclk_in_padset_load2all_outputsset_input_delay5-clockclk-maxremove_from_collectionall_
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!