240 likes | 359 Views
Promising Directions in Hardware Design Verification. Shaz Qadeer Serdar Tasiran Compaq Systems Research Center. Hardware design verification. Verification consumes more than 70% of resources compute cycles human cycles Time to market affected Bugs remain undetected
E N D
Promising Directions in Hardware Design Verification Shaz Qadeer Serdar Tasiran Compaq Systems Research Center
Hardware design verification • Verification consumes more than 70% of resources • compute cycles • human cycles • Time to market affected • Bugs remain undetected • Conventional simulation inadequate • Better approaches needed
Check that RTL conforms to Spec Catch design errors early RTL Netlist Silicon Design verification Req/Spec
What can be done? Part1 Part2
Formal design verification RTL Yes Checker No Formal Spec
Model checking Clarke-Emerson 81, Queille-Sifakis 81 Bryant 86, McMillan 92, … init bad Problem : State space explosion !
Compositional model checking • Abstraction followed by divide and conquer • Case studies • STARI chip (Tasiran-Brayton 97) • Tomasulo’s algorithm (McMillan 97, Henzinger-Qadeer-Rajamani 98) • Coherence protocol processor (Eiriksson 98) • VGI parallel DSP (Henzinger-Liu-Qadeer-Rajamani 99) • Microarchitecture (Jhala-McMillan 01)
regs P1 P2 src op dst FETCH EXECUTE WRITE-BACK
regs opr res src op dst
Pipeline = Regs || Opr || Res || Ctrl Regs Opr Res Ctrl
op isaRegs src dst ISA Correctness condition : P1.op = NOP P2.op = NOP regs = isaRegs
Verification problem Pipeline || ISA = Regs || Opr || Res || Ctrl || ISA satisfies the invariant I: P1.op = NOP P2.op = NOP regs = isaRegs • Abstraction • Divide and conquer
Abstraction op isaRegs src dst opr Opr’ P1.op Res’ res P1.dst
Regs || Opr || Res || Ctrl || ISA satisfies I Abstraction Regs || Opr’ || Res’ || Ctrl || ISA satisfies I Regs || Opr || Res || Ctrl || ISA Opr’ || Res’
Assume-guarantee reasoning Regs || Opr’ || Res || Ctrl || ISA Res’ Regs || Opr || Res’ || Ctrl || ISA Opr’ Regs || Opr || Res || Ctrl || ISA Opr’ || Res’
But… • Compositional techniques require • manual effort • design+verification methodology • Validation relies heavily on simulation • hand-written tests • random inputs • Validation quality • hard to quantify • difficult to improve
Coverage-guided simulation Simulation Inputgeneration Coverageanalysis
Coverage-guided simulation Coverage FSM State-Space Non-covered state in coverage module Path to be covered fabs : Abstraction mapping fabs fabs Implementation State-Space
Coverage-guided simulation Coverage FSM State-Space Uncovered state Path to be covered fabs : Abstraction mapping fabs fabs Implementation State-Space One corresponding path in implementation
P1.op = NOT P2.op = NOP src != P2.dst P1.op = NOT P2.op = NOP src = P2.dst P1.op = NOP P2.op = NOP src != P2.dst P1.op = NOP P2.op = NOP src = P2.dst P1.op = NOT P2.op = NOT src = P2.dst P1.op = NOP P2.op = NOT src != P2.dst P1.op = NOP P2.op = NOT src = P2.dst P1.op = NOT P2.op = NOT src != P2.dst Coverage module for pipeline • Recommended practice: construct coverage modules along with design
Coverage-guided simulation Simulation Inputgeneration Coverageanalysis
Input sequence generation • Difficult SAT problem • Environment constraints on implementation inputs: • Combinational: e.g. input to processor must be legal instruction • Sequential: e.g. branch delay slots
Applications • DEC/Compaq • Kantrowitz-Noack 96 • IBM • Benjamin et al. 99 • Intel • Ur-Yadin 99 • Synopsys • Ho et al. 00
Conclusions • Ideally • design+verification • compositional model checking • exhaustive and scalable • Really • unstructured non-hierarchical designs • compositional reasoning difficult • make simulation smarter