最新大规模集成电路验证Whyverificationandtools教学课件.ppt
《最新大规模集成电路验证Whyverificationandtools教学课件.ppt》由会员分享,可在线阅读,更多相关《最新大规模集成电路验证Whyverificationandtools教学课件.ppt(121页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、大规模集成电路验证Whyverificationandtools验证部分的授课内容除VLSI设计之外的全部内容均是验证设计 vs.验证(design vs.Verification)验证 vs.测试 (Verification vs.Test)投片前验证 vs.投片后验证(Pre-Silicon vs.Post-Silicon)Verfication,Validation,Testing参考资料课程教材集成电路计算机辅助设计与验证实践/算法Hardware Design Verification:Simulation and Formal Method-Based Approaches.Pre
2、ntice Hall PTR.ISBN:0131433474全面的功能验证:完整的工业流程 Comprehensive Functional Verification:The Complete Industry CycleProceedings:DAC,DATE,HLDVT,ITCVerification vs.TestingVerification检验设计的正确性主要方法为模拟、硬件仿真和形式化方法在设备制造之前多次重复,但对一个设计仅一次完整正确验证为设计的质量负责Testing检测生产结果的正确性分两个步骤:设计期间产生测试;生产后应用测试对生产出来的每个产品均完成一次测试对器件的质量负
3、责Why we need VerificationExample 1 1980北美防空司令部误报遭受导弹袭击检测反馈电路故障检测反馈软件对故障未处理,直接报告预警Possible World War IIIExample 2 1996年阿丽亚娜5火箭爆炸64位双精度浮点操作转换为16位整数时产生的例外重新设计的计算节点板完全重用阿丽亚娜4软件代价$800M 4颗Cluster卫星Why we need VerficationExample 3 Intel Pentium处理器FDIV除法错误Pentium处理器在双精度运算时有时会返回单精度的结果代价$400M 所有产品召回如何展开验证设计的每
4、个步骤都对应着验证只有描述转换的过程就对应着验证系统级设计RTL设计概念设计逻辑综合可测性设计物 理设计signoff投片系统级模拟功能模拟验证概念检测 验证计划网表模拟 反 标模拟 一致性检查一致性检查门级模拟 物 理验证超 标量?Pipeline,FP,L2C 多核?异构?综 合后结果功能、时序正确性增加DFT MBIS是否影响功能是否符合设计和工艺规则DRC LVS Antenna 主要的验证方法Functional verificationSimulationHardware emulationFormal methodsArithmetic verificationProperty
5、checkingEquivalence checkingTheorem proverLanguage containmentSymbolic model checkingSymbolic trajectory evaluation两种主要的验证方法基于模拟的方法,适用于所有设计层次circuit simulation(e.g.Spice)switch and transistor level simulation(e.g.Cos-mos)gate level simulation(e.g.IUS/VCS)register transfer level simulation(e.g.IUS/VC
6、S)behavioral or system level simulation(e.g.Ptolemy,PD).Architecture or conception(e.g.systemC,PD)形式化方法理论上最佳的验证方法,数学方法受限于问题规模模拟验证与形式化验证模式模拟验证平均对待每一种可能和输入时间受限可能不完备输入驱动形式化验证将系统和属性分类分隔子系统内必定完备输出驱动模拟验证的主要流程模拟方法:正确的输入得到正确的输出根据设计描述获得验证计划,构造激励,预测预测结果构建测试平台TestBench实例化待测设计DUT用激励驱动DUT运行检查DUT是否获得正确结果模拟运行,反馈设计
7、修改回归测试,固定设计版本形式化验证的流程从设计中获得待验证特性抽象或者描述特性特性检查或者等价性检查可能的人工指导或模拟增加、修订或删除限定条件调试调整设计或抽象描述模拟验证方法最常用的验证方法,输入驱动Input vectorDirected伪随机模拟器事件驱动基于周期的硬件模拟器:使用硬件对电路建模0010100101010001110101001110101010100000000011101011011011110111Simulation-based Verification Execute the system in parallel with a reference model
8、with respect to some input sequences.test suiteas exhaustive as possible模拟Find bugs by executing the implementation and checking its behavior四要素:circuit,test pattern,reference output,comparison mechanismRequirementsSimulateRTL ModelGate-levelModelSynthesizeSimulateTest BenchASIC or FPGAPlace&RouteTi
9、mingModelSimulate“Youcanprovethepresenceofbugs,butyoucannotprovetheirabsence.”如果找到一个 不一致,就可以证明设计有错不能证明没 有不一致(没人可以证明UFO不存在)基于形式方法的验证形 式验证等价性检查模型检验定 理证 明等价性检查Compare two models Mathematically prove that the origin and output are logically equivalent and the transformation preserved its functionalityIt
10、 can compare two netlists to ensure that some netlist post-processing,such as scan-chain insertion,clock-tree synthesis,or manual modification,did not change the functionality of the circuit.等价性检查:两个实现是否等价为 缩小搜索空间,用户可以定义等价点两种方法SAT:系统搜索输入空间将两种电路转化为唯一表示,并进行比较常用场合:Scan insertion前 后Layout与RTL的 一致性ECO前 后
11、模型检验Look for generic problems or violation of user-defined rules about the behavior of the design.Assertions or characteristics of a design are formally proven or disproved.All state machines in a design could be checked for unreachable or isolated states.To determine if deadlock conditions can occu
12、r模型检验System A mathematical model MDesired behavior A formal specification The system has the required behaviorM satisfies Model checking模型检验形式地证明设计的断言和特征,如状态机是否可达、是否死锁、接口的断言搜索整个状态空间,找到属性不满足的点,如果找到,则失败隐式枚举状态空间:符号遍历算法,一次访问一组点,提高效率Unbound propertyBound property两种方法的比较SimulationSimulate the design with
13、test stimuli and check the resultsInput output compare expected resultOnly a small part of the space can be exploredHard to tell if testing is sufficientFormalProving facts about the designModel checking,Equivalence checkingExpected behavior property proveTime and space issuesHard to tell if propert
14、ies are complete例 1:4位加法器adder4ba3:0b3:0sum3:0c_out44c_in4module adder4b(sum,c_out,a,b,c_in);input 3:0 a,b;inputc_in;output3:0 sum;outputc_out;assign c_out,sum=a+b+c_in;endmoduleSimulation Exampleadder4b(DUT)a3:0b3:0sum3:0c_out44c_in4t_adder4bTestbenchtimescale 1ns/1ns /time_unit/time_precisionmodul
15、e t_adder4b;reg8:0 stim;/inputs to DUT are regswire3:0 S;/outputs of DUT are wires wire C4;/instantiate DUTadder4b(S,C4,stim8:5,stim4:1,stim0);/stimulus generationinitial begin stim=9b000000000;/at 0 ns#10 stim=9b111100001;/at 10 ns#10 stim=9b000011111;/at 20 ns#10 stim=9b111100010;/at 30 ns#10 stim
16、=9b000111110;/at 40 ns#10$stop;/at 50 ns stops simulationendendmodulesee“response”to each of these input vectorsUUTBehav.Verilog:“do this once”timing control for simulationTestbench RequirementsInstantiate the Design Under Test(DUT)Provide input to that unitUsually a number of different input combin
17、ations!Watch the“results”(outputs of DUT)Can watch Wave windowCan print out information to the screen or to a filetimescale 1ns/1ns /time_unit/time_precisionmodule t_adder4b;reg8:0 stim;/inputs to DUT are regswire3:0 S;/outputs of DUT are wires wire C4;/instantiate DUTadder4b(S,C4,stim8:5,stim4:1,st
18、im0);/monitor statementinitial$monitor($time,C4,S,stim8:5,stim4:1,stim0);/stimulus generationinitial begin stim=9b000000000;/at 0 ns#10 stim=9b111100001;/at 10 ns#10 stim=9b000011111;/at 20 ns#10 stim=9b111100010;/at 30 ns#10 stim=9b000111110;/at 40 ns#10$stop;/at 50 ns stops simulationendendmoduleE
19、xhaustive Simulation综综 合后合后module adder4b(sum,c_out,a,b,c_in);output 3:0 sum;input 3:0 a,b;input c_in;output c_out;wire carry1,carry2,carry3;ADD32 U1_0 (.A(a0),.B(b0),.CI(c_in),.CO(carry1),.S(sum0);ADD32 U1_1 (.A(a1),.B(b1),.CI(carry1),.CO(carry2),.S(sum1);ADD32 U1_2 (.A(a2),.B(b2),.CI(carry2),.CO(c
20、arry3),.S(sum2);ADD32 U1_3 (.A(a3),.B(b3),.CI(carry3),.CO(c_out),.S(sum3);endmodulemodule ADD32(A,B,CI,CO,S);input A,B,CI;output CO,S;and(net_1,CI,B);and(net_2,CI,A);and(net_3,B,A);or(CO,net_1,net_2,net_3);xor(S,CI,B,A);endmodule如何验证综合后网表的正确性?Consistency:same testbench at each level of abstractionBe
21、havioralGate-level Design(Post-layout)Gate-level Design(Pre-layout)RTL DesignTestbenchSimulation方法 1:Gate-level simulationGiven two designs,prove that for all possible input stimuli their corresponding outputs are equivalentDesign ADesign B=?InputYes/NoProduct Machine 方法 2:Equivalence Checking例 2:交
22、通灯控制器Guarantee no collisions:It is never possible that all traffic lights are greenGuarantee eventual serviceEventually,each traffic light will become greenESNVerilog programmodule main(N_SENSE,S_SENSE,E_SENSE,N_GO,S_GO,E_GO);input N_SENSE,S_SENSE,E_SENSE;output N_GO,S_GO,E_GO;reg NS_LOCK,EW_LOCK,N_
23、REQ,S_REQ,E_REQ;/*set request bits when sense is high*/always begin if(!N_REQ&N_SENSE)N_REQ=1;end always begin if(!S_REQ&S_SENSE)S_REQ=1;end always begin if(!E_REQ&E_SENSE)E_REQ=1;end /*controller for North light*/always begin if(N_REQ)begin wait(!EW_LOCK);NS_LOCK=1;N_GO=1;wait(!N_SENSE);if(!S_GO)NS
24、_LOCK=0;N_GO=0;N_REQ=0;end end/*South light is similar.*/*Controller for East light*/always begin if(E_REQ)begin EW_LOCK=1;wait(!NS_LOCK);E_GO=1;wait(!E_SENSE);EW_LOCK=0;E_GO=0;E_REQ=0;end end 如何验证?方法方法2:模型检验模型检验Traffic LightControllerDesign“It is never possible to have a green light for both N-S an
25、d E-W.”ModelCheckerTrueFalse+Counterexample方法1:模 拟Safety(no collisions)AG (E_Go(N_Go|S_Go);LivenessAG(N_Go N_Sense AF N_Go);AG(S_Go S_Sense AF S_Go);AG(E_Go E_Sense AF E_Go);Fairness constraintsinfinitely often (N_Go N_Sense);infinitely often (S_Go S_Sense);infinitely often (E_Go E_Sense);All proper
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 大规模集成电路 验证 Whyverificationandtools 教学 课件
限制150内