大规模集成电路验证.ppt
《大规模集成电路验证.ppt》由会员分享,可在线阅读,更多相关《大规模集成电路验证.ppt(120页珍藏版)》请在三一办公上搜索。
1、VLSI Design and Verification大规模集成电路设计与验证,VLSI Verfication大规模集成电路验证,验证部分的授课内容,除VLSI设计之外的全部内容均是验证设计 vs.验证(design vs.Verification)验证 vs.测试(Verification vs.Test)投片前验证 vs.投片后验证(Pre-Silicon vs.Post-Silicon)Verfication,Validation,Testing参考资料课程教材集成电路计算机辅助设计与验证实践/算法Hardware Design Verification:Simulation and
2、 Formal Method-Based Approaches.Prentice Hall PTR.ISBN:0131433474全面的功能验证:完整的工业流程 Comprehensive Functional Verification:The Complete Industry CycleProceedings:DAC,DATE,HLDVT,ITC,验证部分课程学习组成,课程讲授|HOME实验作业 考试掌握原理的基础上强调实践验证原理,工具算法原理工具Synopsys VCS,Cadence IUS/IES,Mentor ModelSIMIFV,ZeroIn,SpyGlass,Conform
3、al,FomalityDC,RC,ICC,Encounter,TessentOffice Hour唐遇星,副研究员yuxing.微电子与微处理器研究所微处理器研究室619Monday Tuesday:20:00 22:00 and weekend302 计算机工厂停车场北楼,Agenda,Part 0.WelcomePart 1.Verfication IntroductionPart 2.Testbench Simulation ToolPart 3.Testbench Construction and OpenSPARC,Part.0 Welcome,Welcome 领域Welcome 校
4、园Welcome 课程,Part.1 Introduction,What?什么是验证?Why?为什么要验证?How?如何开展验证?验证包括哪些内容主要的验证方法验证的困境,What is Design Verification什么是验证,The Opposite of DesignDesign:Make/Implement sth that you wantVerification:Make sure that sth is what you want(correct)确保设计符合原始设计需求与目标功能正确,性能达标,功耗、良率和成本符合要求VLSI团队分工 Design Team&Verif
5、ication TeamAt least 1:1,Now 1:3 1:4Time Statistic:30%Design,70%VerficationHint:设计人员必须完成初始验证才能提交设计;但一个设计的必须由额外的验证人员审核,Design,Verification and Testing,Design Synthesis设计综合根据设定的输入输出功能,使用现有的方法、技术、材料和工艺制造设备的过程Verification验证预测并保证设计与综合在制造过程乎能够根据输入输出完成功能Test 测试用于保证按照设计综合结果来生产的器件,不受制造错误影响,Verification vs.Te
6、sting,Verification检验设计的正确性主要方法为模拟、硬件仿真和形式化方法在设备制造之前多次重复,但对一个设计仅一次完整正确验证为设计的质量负责Testing检测生产结果的正确性分两个步骤:设计期间产生测试;生产后应用测试对生产出来的每个产品均完成一次测试对器件的质量负责,Why we need Verification,Example 1 1980北美防空司令部误报遭受导弹袭击检测反馈电路故障检测反馈软件对故障未处理,直接报告预警Possible World War IIIExample 2 1996年阿丽亚娜5火箭爆炸64位双精度浮点操作转换为16位整数时产生的例外重新设计的
7、计算节点板完全重用阿丽亚娜4软件代价$800M 4颗Cluster卫星,Why we need Verfication,Example 3 Intel Pentium处理器FDIV除法错误Pentium处理器在双精度运算时有时会返回单精度的结果代价$400M 所有产品召回,如何展开验证,设计的每个步骤都对应着验证只有描述转换的过程就对应着验证,系统级设计,RTL设计,概念设计,逻辑综合,可测性设计,物理设计,signoff投片,系统级模拟,功能模拟验证,概念检测 验证计划,网表模拟 反标模拟 一致性检查,一致性检查,门级模拟 物理验证,超标量?,Pipeline,FP,L2C,多核?异构?,综
8、合后结果功能、时序正确性,增加DFT MBIS是否影响功能,是否符合设计和工艺规则DRC LVS Antenna,主要的验证方法,Functional verification,Simulation,Hardware emulation,Formal methods,Arithmetic verification,Property checking,Equivalence checking,Theorem prover,Language containment,Symbolic model checking,Symbolic trajectory evaluation,两种主要的验证方法,基于
9、模拟的方法,适用于所有设计层次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/VCS)behavioral or system level simulation(e.g.Ptolemy,PD).Architecture or conception(e.g.systemC,PD)形式化方法理论上最佳的验证方法,数学方法受限于问题规模,
10、模拟验证与形式化验证模式,模拟验证平均对待每一种可能和输入时间受限可能不完备输入驱动形式化验证将系统和属性分类分隔子系统内必定完备输出驱动,模拟验证的主要流程,模拟方法:正确的输入得到正确的输出根据设计描述获得验证计划,构造激励,预测预测结果构建测试平台TestBench实例化待测设计DUT用激励驱动DUT运行检查DUT是否获得正确结果模拟运行,反馈设计修改回归测试,固定设计版本,形式化验证的流程,从设计中获得待验证特性抽象或者描述特性特性检查或者等价性检查可能的人工指导或模拟增加、修订或删除限定条件调试调整设计或抽象描述,模拟验证方法,最常用的验证方法,输入驱动Input vectorDir
11、ected伪随机模拟器事件驱动基于周期的硬件模拟器:使用硬件对电路建模,Simulation-based Verification,Execute the system in parallel with a reference model,with respect to some input sequences.,模拟,Find bugs by executing the implementation and checking its behavior四要素:circuit,test pattern,reference output,comparison mechanism,“You can
12、prove the presence of bugs,but you cannot prove their absence.”如果找到一个不一致,就可以证明设计有错不能证明没有不一致(没人可以证明UFO不存在),基于形式方法的验证,等价性检查,Compare two models Mathematically prove that the origin and output are logically equivalent and the transformation preserved its functionalityIt can compare two netlists to ensur
13、e 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前后,模型检验,Look for generic problems or vi
14、olation 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 occur,模型检验,System A mathematical model
15、MDesired behavior A formal specification,Model checking,模型检验形式地证明设计的断言和特征,如状态机是否可达、是否死锁、接口的断言搜索整个状态空间,找到属性不满足的点,如果找到,则失败隐式枚举状态空间:符号遍历算法,一次访问一组点,提高效率Unbound propertyBound property,两种方法的比较,SimulationSimulate the design with test stimuli and check the resultsInput output compare expected resultOnly a s
16、mall 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 properties are complete,例 1:4位加法器,adder4b,a3:0,b3:0,sum3:0,c_out,4,4,c_in,4,module ad
17、der4b(sum,c_out,a,b,c_in);input3:0 a,b;inputc_in;output3:0 sum;outputc_out;assign c_out,sum=a+b+c_in;endmodule,Simulation Example,adder4b(DUT),a3:0,b3:0,sum3:0,c_out,4,4,c_in,4,t_adder4b,Testbench,timescale 1ns/1ns/time_unit/time_precisionmodule t_adder4b;reg8:0 stim;/inputs to DUT are regswire3:0 S
18、;/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=9b000111110;/at 40 ns#10$stop;/at 50 ns stops simulatio
19、nendendmodule,see“response”to each of these input vectors,UUT,Behav.Verilog:“do this once”,timing control for simulation,Testbench Requirements,Instantiate the Design Under Test(DUT)Provide input to that unitUsually a number of different input combinations!Watch the“results”(outputs of DUT)Can watch
20、 Wave windowCan print out information to the screen or to a file,timescale 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,stim0);/monitor statementinitial$monitor($time,C4,S,
21、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 simulationendendmodule,Exhaustive Simulation,综合后,module adder4b(sum,c_out
22、,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(carry3),.S(sum2);ADD32 U1_3(.A(a3),.B(b3),.CI(carry3),.
23、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 abstraction,Testbench,Simulation,方法 1:Gate-level simulation,Given
24、two designs,prove that for all possible input stimuli their corresponding outputs are equivalent,Design A,Design B,=?,Input,Yes/No,Product Machine,方法 2:Equivalence Checking,例2:交通灯控制器,Guarantee no collisions:It is never possible that all traffic lights are greenGuarantee eventual serviceEventually,ea
25、ch traffic light will become green,E,S,N,Verilog program,module 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_REQ,S_REQ,E_REQ;/*set request bits when sense is high*/always begin if(!N_REQ end,/*controller for North light*/alway
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大规模集成电路 验证
链接地址:https://www.31ppt.com/p-6463420.html