SlideShare a Scribd company logo
1 of 18
Download to read offline
Practical Formal –
          Mainstream Formal for the
                 Rest of Us


                 Jacob A. Abraham
                   DVClub Meeting
                    Austin, Texas
                   March 21, 2007


JAA, 3/21/2007                        1
Is Formal Verification Mainstream?
     Formal Equivalence Checking
       Only up to the RT Level
     What about Formal Property Checking?
       Can it deal with properties used in a simulation-based
       flow?
●




     What characteristics prevent formal verification from
     being more widely used?
       Need to deal with complex designs
       Seamlessly fit into the design flow



JAA, 3/21/2007                                                  2
Directions to make Formal Mainstream
    Engines which can deal with real designs
       Multiple clock domains
       Tristate signals (not Boolean)
●




    Deal with design descriptions at higher levels
       Reduce complexity of analysis
       Static analysis of design description will scale (unlike a
       functional analysis)
●




    Automated techniques which fit into the design flow
       No distractions when concentrating on design

JAA, 3/21/2007                                                      3
ATPG Engines to Check Properties
       Some work in checking safety properties

                 Circuit



                             Detecting “stuck-at-0” fault on p
                             is equivalent to establishing EFp

                                  p


  Verify design at the lowest level possible:
  example, ATPG level
  Deal with tri-states, multiple clocks, etc.
JAA, 3/21/2007                                                   4
RTL to RTL Equivalence Checking
       Use  Term Rewriting Systems (TRS)
       Significant success with RTL “Term” level
        reductions
       Verification of arithmetic circuits at the RTL
        level using term rewriting
       RTL to RTL equivalence checking
       Verified large multiplier designs like Booth,
        Wallace Tree and many optimized multipliers
        using this rewriting technique



JAA, 3/21/2007                                           5
RTL Equivalence Using TRSs


                      VTrans
           Golden                  Golden
            RTL                     TRS
                     Translation
                                                 Vprover

                                             Equivalence Proof


                      VTrans
           Revised                 Revised
            RTL                     TRS
                     Translation




JAA, 3/21/2007                                                   6
Why it Works
     Congruence between RTL-states (terms) of two
     designs, given the RTL state-transition graph
     (TRS)
     Equivalence is proved by showing that one term
     can be rewritten to the other
         SAT solvers, STE engines, gate-level equivalence
         checkers, etc., as proof engines
     Comparison points in RTL-state space
         Congruence at every comparison point
         Cover entire data space of the designs




JAA, 3/21/2007                                              7
Results on Multipliers
        Wallace Tree   VERIFIRE   Commercial   Commercial
                                  Tool 1       Tool 2


        4X4            14s        10s          9s

        8X8            18s        18s          16s

        16 X 16        25s        Unfinished   Unfinished

        32 X 32        40s        Unfinished   Unfinished

        64 X 64        60s        Unfinished   Unfinished



JAA, 3/21/2007                                              8
Sequential Equivalence Checking:
Using Sequential Compare Points
     Introduce notion of sequential compare points
     Sequential compare points are two-tuple
     entities
     Identification w.r.t. relative position in time
     Identification w.r.t. space (data or variables)
     Co-ordinates on space-time axis of both
     designs being compared
     Exactly model the sequential behavior of
     designs


JAA, 3/21/2007                                         9
Equivalence Checking Using Sequential
Compare Points
     Variables of interest (observables) obtained
     from user/block diagram
         Typically include primary outputs
         Can also include relevant intermediate variables
     Symbolic expressions obtained for
     observables assigned in a given cycle
     Symbolic expressions compared at sequential
     compare points
     Comparison using a SAT solver in this work
         Other Boolean level engines can also be used


JAA, 3/21/2007                                              10
Example: Viterbi Decoder
    Part of digital radio (DRM) in System C
    DRM SoC partitioned to implement Viterbi
    decoder as a hardware accelerator
    System C specification
        Basic model implementing Viterbi algorithm
        No optimizations
    Viterbi Verilog RTL implementations
        First implementation: Optimized for speed
        Second implementation: Optimized for area




JAA, 3/21/2007                                       11
Results




JAA, 3/21/2007   12
Antecedent Conditioned Slicing for
Verification
  • Slicing part of design irrelevant to property being
    verified
  • Safety Properties of the form
      • G (antecedent => consequent)
  • Use antecedent to specify states in which we are
    interested
  • We do not need to preserve program executions
    where the antecedent is false
  • The resulting abstraction is called an antecedent
    conditioned slice


JAA, 3/21/2007                                            13
Example Properties of USB 2.0 Core
    G((crc5err) V       match) =>     send_token))
        If a packet with a bad CRC5 is received, or there is an
        endpoint field mismatch, the token is ignored
    G((state == SPEED_NEG_FS) => X((mode_hs) ^
    (T1_gt_3_0ms) => (next_state ==
    RES_SUSPEND))
        If the machine is in the speed negotiation state, then in
        the next clock cycle, if it is in high speed mode for more
        than 3 ms, it will go to the suspend state
    G((state == RESUME_WAIT) ^                (idle_cnt_clr)
    =>F(state == NORMAL))
        If the machine is waiting to resume operation and a
        counter is set, eventually (after 100 mS) it will return to
        normal operation
JAA, 3/21/2007                                                        14
Results on Temporal USB Properties
    CPU Seconds, 450 MHz dual UltraSPARC-II with 1 GB RAM




JAA, 3/21/2007                                              15
Verification of Processors using
Antecedent Conditioned Slicing
  Verification of single-instruction issue, multi-stage
   pipelined processors
  Antecedent conditioned slicing provides an
   automatic decomposition strategy
  Individual “instruction machines”
     ■ Leverage automatic power of model checking
     ■ Provide a different notion of verification
  Verification  of RTL model of off-the-shelf processor
  Verified all the instructions of the OR1200
   embedded processor


JAA, 3/21/2007                                             16
Single Instruction Verification

        P0=P          i1                              get_conditioned_slice
                 P1                                      (P0, < i1, e, Vh>)




                                       it+1
                           Pt+1


                                              Pn       in           h


                                                                Model
                                  Antecedent                   Checker
                                  Conditioned Slice

JAA, 3/21/2007                                                                17
Results of OR1200 Verification
   CPU Seconds, 3 GHz Pentium 4 processor with 1 GB RAM
  Instruction    Instructions   SMV time    Memory
   Class                        (seconds)   Usage (KB)

  LSU            l.ld           35.85       29104
  LSU            l.lws          33.91       28873
  LSU            l.sd           38.32       30941
  SHF/ROT        l.sll          26.81       23771
  SHF/ROT        l.srl          27.83       23771

  SHF/ROT        l.ror          27.93       26919
  SPRS           l.mfspr        226.97      50696
  SPRS           l.mtspr        212.27      48627
JAA, 3/21/2007                                            18

More Related Content

Viewers also liked

Viewers also liked (13)

2010 bristol q1_heuristic-stimuli-generation
2010 bristol q1_heuristic-stimuli-generation2010 bristol q1_heuristic-stimuli-generation
2010 bristol q1_heuristic-stimuli-generation
 
Kl assertions 081705
Kl assertions 081705Kl assertions 081705
Kl assertions 081705
 
Low power design-ver_26_mar08
Low power design-ver_26_mar08Low power design-ver_26_mar08
Low power design-ver_26_mar08
 
Krolnik ak metro_dv_nov
Krolnik ak metro_dv_novKrolnik ak metro_dv_nov
Krolnik ak metro_dv_nov
 
Bristol 2009 q1_blackmore_tim
Bristol 2009 q1_blackmore_timBristol 2009 q1_blackmore_tim
Bristol 2009 q1_blackmore_tim
 
Dham bangalore q407
Dham bangalore q407Dham bangalore q407
Dham bangalore q407
 
D2 audio digital_media_drives_ic_content
D2 audio digital_media_drives_ic_contentD2 audio digital_media_drives_ic_content
D2 audio digital_media_drives_ic_content
 
Firstenberg q207
Firstenberg q207Firstenberg q207
Firstenberg q207
 
Alley vsu functional_coverage_1f
Alley vsu functional_coverage_1fAlley vsu functional_coverage_1f
Alley vsu functional_coverage_1f
 
Jm future of system verilog verification
Jm future of system verilog verificationJm future of system verilog verification
Jm future of system verilog verification
 
3 d to_hpc
3 d to_hpc3 d to_hpc
3 d to_hpc
 
Durgam vahia open_sparc_fpga
Durgam vahia open_sparc_fpgaDurgam vahia open_sparc_fpga
Durgam vahia open_sparc_fpga
 
Nilesh ranpura systemmodelling
Nilesh ranpura systemmodellingNilesh ranpura systemmodelling
Nilesh ranpura systemmodelling
 

Similar to Abraham march07

Practical Formal: Mainstream Formal for the Rest of Us
Practical Formal: Mainstream Formal for the Rest of UsPractical Formal: Mainstream Formal for the Rest of Us
Practical Formal: Mainstream Formal for the Rest of UsDVClub
 
Prelim Slides
Prelim SlidesPrelim Slides
Prelim Slidessmpant
 
design-compiler.pdf
design-compiler.pdfdesign-compiler.pdf
design-compiler.pdfFrangoCamila
 
Co emulation of scan-chain based designs
Co emulation of scan-chain based designsCo emulation of scan-chain based designs
Co emulation of scan-chain based designsijcsit
 
State Space Reduction Techniques to Verify Business Processes
State Space Reduction Techniques to Verify Business ProcessesState Space Reduction Techniques to Verify Business Processes
State Space Reduction Techniques to Verify Business ProcessesUniversität Rostock
 
Study on Indoor Positioning Enhancements for UTRA and LTE
Study on Indoor Positioning Enhancements for UTRA and LTEStudy on Indoor Positioning Enhancements for UTRA and LTE
Study on Indoor Positioning Enhancements for UTRA and LTEYi-Hsueh Tsai
 
Print Testing
Print TestingPrint Testing
Print Testingdonwelch
 
Convergence
ConvergenceConvergence
Convergencedonwelch
 
Fault Modeling of Combinational and Sequential Circuits at Register Transfer ...
Fault Modeling of Combinational and Sequential Circuits at Register Transfer ...Fault Modeling of Combinational and Sequential Circuits at Register Transfer ...
Fault Modeling of Combinational and Sequential Circuits at Register Transfer ...VLSICS Design
 
FAULT MODELING OF COMBINATIONAL AND SEQUENTIAL CIRCUITS AT REGISTER TRANSFER ...
FAULT MODELING OF COMBINATIONAL AND SEQUENTIAL CIRCUITS AT REGISTER TRANSFER ...FAULT MODELING OF COMBINATIONAL AND SEQUENTIAL CIRCUITS AT REGISTER TRANSFER ...
FAULT MODELING OF COMBINATIONAL AND SEQUENTIAL CIRCUITS AT REGISTER TRANSFER ...VLSICS Design
 
IRJET- UART Testing under Built-In-Self-Test(BIST) using Verilog on FPGA
IRJET-  	  UART Testing under Built-In-Self-Test(BIST) using Verilog on FPGAIRJET-  	  UART Testing under Built-In-Self-Test(BIST) using Verilog on FPGA
IRJET- UART Testing under Built-In-Self-Test(BIST) using Verilog on FPGAIRJET Journal
 
IRJET - Augmented Tangible Style using 8051 MCU
IRJET -  	  Augmented Tangible Style using 8051 MCUIRJET -  	  Augmented Tangible Style using 8051 MCU
IRJET - Augmented Tangible Style using 8051 MCUIRJET Journal
 
Smpant Transact09
Smpant Transact09Smpant Transact09
Smpant Transact09smpant
 
Variation aware design of custom integrated circuits a hands on field guide
Variation aware design of custom integrated circuits  a hands on field guideVariation aware design of custom integrated circuits  a hands on field guide
Variation aware design of custom integrated circuits a hands on field guideSpringer
 
Mutation testing
Mutation testingMutation testing
Mutation testingTao He
 
Introduction to Raft algorithm
Introduction to Raft algorithmIntroduction to Raft algorithm
Introduction to Raft algorithmmuayyad alsadi
 

Similar to Abraham march07 (20)

Practical Formal: Mainstream Formal for the Rest of Us
Practical Formal: Mainstream Formal for the Rest of UsPractical Formal: Mainstream Formal for the Rest of Us
Practical Formal: Mainstream Formal for the Rest of Us
 
Vlsi
VlsiVlsi
Vlsi
 
Prelim Slides
Prelim SlidesPrelim Slides
Prelim Slides
 
design-compiler.pdf
design-compiler.pdfdesign-compiler.pdf
design-compiler.pdf
 
Co emulation of scan-chain based designs
Co emulation of scan-chain based designsCo emulation of scan-chain based designs
Co emulation of scan-chain based designs
 
C044061518
C044061518C044061518
C044061518
 
bluespec talk
bluespec talkbluespec talk
bluespec talk
 
International Journal of Engineering Inventions (IJEI)
International Journal of Engineering Inventions (IJEI)International Journal of Engineering Inventions (IJEI)
International Journal of Engineering Inventions (IJEI)
 
State Space Reduction Techniques to Verify Business Processes
State Space Reduction Techniques to Verify Business ProcessesState Space Reduction Techniques to Verify Business Processes
State Space Reduction Techniques to Verify Business Processes
 
Study on Indoor Positioning Enhancements for UTRA and LTE
Study on Indoor Positioning Enhancements for UTRA and LTEStudy on Indoor Positioning Enhancements for UTRA and LTE
Study on Indoor Positioning Enhancements for UTRA and LTE
 
Print Testing
Print TestingPrint Testing
Print Testing
 
Convergence
ConvergenceConvergence
Convergence
 
Fault Modeling of Combinational and Sequential Circuits at Register Transfer ...
Fault Modeling of Combinational and Sequential Circuits at Register Transfer ...Fault Modeling of Combinational and Sequential Circuits at Register Transfer ...
Fault Modeling of Combinational and Sequential Circuits at Register Transfer ...
 
FAULT MODELING OF COMBINATIONAL AND SEQUENTIAL CIRCUITS AT REGISTER TRANSFER ...
FAULT MODELING OF COMBINATIONAL AND SEQUENTIAL CIRCUITS AT REGISTER TRANSFER ...FAULT MODELING OF COMBINATIONAL AND SEQUENTIAL CIRCUITS AT REGISTER TRANSFER ...
FAULT MODELING OF COMBINATIONAL AND SEQUENTIAL CIRCUITS AT REGISTER TRANSFER ...
 
IRJET- UART Testing under Built-In-Self-Test(BIST) using Verilog on FPGA
IRJET-  	  UART Testing under Built-In-Self-Test(BIST) using Verilog on FPGAIRJET-  	  UART Testing under Built-In-Self-Test(BIST) using Verilog on FPGA
IRJET- UART Testing under Built-In-Self-Test(BIST) using Verilog on FPGA
 
IRJET - Augmented Tangible Style using 8051 MCU
IRJET -  	  Augmented Tangible Style using 8051 MCUIRJET -  	  Augmented Tangible Style using 8051 MCU
IRJET - Augmented Tangible Style using 8051 MCU
 
Smpant Transact09
Smpant Transact09Smpant Transact09
Smpant Transact09
 
Variation aware design of custom integrated circuits a hands on field guide
Variation aware design of custom integrated circuits  a hands on field guideVariation aware design of custom integrated circuits  a hands on field guide
Variation aware design of custom integrated circuits a hands on field guide
 
Mutation testing
Mutation testingMutation testing
Mutation testing
 
Introduction to Raft algorithm
Introduction to Raft algorithmIntroduction to Raft algorithm
Introduction to Raft algorithm
 

More from Obsidian Software (20)

Zhang rtp q307
Zhang rtp q307Zhang rtp q307
Zhang rtp q307
 
Zehr dv club_12052006
Zehr dv club_12052006Zehr dv club_12052006
Zehr dv club_12052006
 
Yang greenstein part_2
Yang greenstein part_2Yang greenstein part_2
Yang greenstein part_2
 
Yang greenstein part_1
Yang greenstein part_1Yang greenstein part_1
Yang greenstein part_1
 
Williamson arm validation metrics
Williamson arm validation metricsWilliamson arm validation metrics
Williamson arm validation metrics
 
Whipp q3 2008_sv
Whipp q3 2008_svWhipp q3 2008_sv
Whipp q3 2008_sv
 
Vishakantaiah validating
Vishakantaiah validatingVishakantaiah validating
Vishakantaiah validating
 
Validation and-design-in-a-small-team-environment
Validation and-design-in-a-small-team-environmentValidation and-design-in-a-small-team-environment
Validation and-design-in-a-small-team-environment
 
Tobin verification isglobal
Tobin verification isglobalTobin verification isglobal
Tobin verification isglobal
 
Tierney bq207
Tierney bq207Tierney bq207
Tierney bq207
 
The validation attitude
The validation attitudeThe validation attitude
The validation attitude
 
Thaker q3 2008
Thaker q3 2008Thaker q3 2008
Thaker q3 2008
 
Thaker q3 2008
Thaker q3 2008Thaker q3 2008
Thaker q3 2008
 
Strickland dvclub
Strickland dvclubStrickland dvclub
Strickland dvclub
 
Stinson post si and verification
Stinson post si and verificationStinson post si and verification
Stinson post si and verification
 
Shultz dallas q108
Shultz dallas q108Shultz dallas q108
Shultz dallas q108
 
Shreeve dv club_ams
Shreeve dv club_amsShreeve dv club_ams
Shreeve dv club_ams
 
Sharam salamian
Sharam salamianSharam salamian
Sharam salamian
 
Schulz sv q2_2009
Schulz sv q2_2009Schulz sv q2_2009
Schulz sv q2_2009
 
Schulz dallas q1_2008
Schulz dallas q1_2008Schulz dallas q1_2008
Schulz dallas q1_2008
 

Abraham march07

  • 1. Practical Formal – Mainstream Formal for the Rest of Us Jacob A. Abraham DVClub Meeting Austin, Texas March 21, 2007 JAA, 3/21/2007 1
  • 2. Is Formal Verification Mainstream? Formal Equivalence Checking Only up to the RT Level What about Formal Property Checking? Can it deal with properties used in a simulation-based flow? ● What characteristics prevent formal verification from being more widely used? Need to deal with complex designs Seamlessly fit into the design flow JAA, 3/21/2007 2
  • 3. Directions to make Formal Mainstream Engines which can deal with real designs Multiple clock domains Tristate signals (not Boolean) ● Deal with design descriptions at higher levels Reduce complexity of analysis Static analysis of design description will scale (unlike a functional analysis) ● Automated techniques which fit into the design flow No distractions when concentrating on design JAA, 3/21/2007 3
  • 4. ATPG Engines to Check Properties Some work in checking safety properties Circuit Detecting “stuck-at-0” fault on p is equivalent to establishing EFp p Verify design at the lowest level possible: example, ATPG level Deal with tri-states, multiple clocks, etc. JAA, 3/21/2007 4
  • 5. RTL to RTL Equivalence Checking  Use Term Rewriting Systems (TRS)  Significant success with RTL “Term” level reductions  Verification of arithmetic circuits at the RTL level using term rewriting  RTL to RTL equivalence checking  Verified large multiplier designs like Booth, Wallace Tree and many optimized multipliers using this rewriting technique JAA, 3/21/2007 5
  • 6. RTL Equivalence Using TRSs VTrans Golden Golden RTL TRS Translation Vprover Equivalence Proof VTrans Revised Revised RTL TRS Translation JAA, 3/21/2007 6
  • 7. Why it Works Congruence between RTL-states (terms) of two designs, given the RTL state-transition graph (TRS) Equivalence is proved by showing that one term can be rewritten to the other SAT solvers, STE engines, gate-level equivalence checkers, etc., as proof engines Comparison points in RTL-state space Congruence at every comparison point Cover entire data space of the designs JAA, 3/21/2007 7
  • 8. Results on Multipliers Wallace Tree VERIFIRE Commercial Commercial Tool 1 Tool 2 4X4 14s 10s 9s 8X8 18s 18s 16s 16 X 16 25s Unfinished Unfinished 32 X 32 40s Unfinished Unfinished 64 X 64 60s Unfinished Unfinished JAA, 3/21/2007 8
  • 9. Sequential Equivalence Checking: Using Sequential Compare Points Introduce notion of sequential compare points Sequential compare points are two-tuple entities Identification w.r.t. relative position in time Identification w.r.t. space (data or variables) Co-ordinates on space-time axis of both designs being compared Exactly model the sequential behavior of designs JAA, 3/21/2007 9
  • 10. Equivalence Checking Using Sequential Compare Points Variables of interest (observables) obtained from user/block diagram Typically include primary outputs Can also include relevant intermediate variables Symbolic expressions obtained for observables assigned in a given cycle Symbolic expressions compared at sequential compare points Comparison using a SAT solver in this work Other Boolean level engines can also be used JAA, 3/21/2007 10
  • 11. Example: Viterbi Decoder Part of digital radio (DRM) in System C DRM SoC partitioned to implement Viterbi decoder as a hardware accelerator System C specification Basic model implementing Viterbi algorithm No optimizations Viterbi Verilog RTL implementations First implementation: Optimized for speed Second implementation: Optimized for area JAA, 3/21/2007 11
  • 13. Antecedent Conditioned Slicing for Verification • Slicing part of design irrelevant to property being verified • Safety Properties of the form • G (antecedent => consequent) • Use antecedent to specify states in which we are interested • We do not need to preserve program executions where the antecedent is false • The resulting abstraction is called an antecedent conditioned slice JAA, 3/21/2007 13
  • 14. Example Properties of USB 2.0 Core G((crc5err) V match) => send_token)) If a packet with a bad CRC5 is received, or there is an endpoint field mismatch, the token is ignored G((state == SPEED_NEG_FS) => X((mode_hs) ^ (T1_gt_3_0ms) => (next_state == RES_SUSPEND)) If the machine is in the speed negotiation state, then in the next clock cycle, if it is in high speed mode for more than 3 ms, it will go to the suspend state G((state == RESUME_WAIT) ^ (idle_cnt_clr) =>F(state == NORMAL)) If the machine is waiting to resume operation and a counter is set, eventually (after 100 mS) it will return to normal operation JAA, 3/21/2007 14
  • 15. Results on Temporal USB Properties CPU Seconds, 450 MHz dual UltraSPARC-II with 1 GB RAM JAA, 3/21/2007 15
  • 16. Verification of Processors using Antecedent Conditioned Slicing  Verification of single-instruction issue, multi-stage pipelined processors  Antecedent conditioned slicing provides an automatic decomposition strategy  Individual “instruction machines” ■ Leverage automatic power of model checking ■ Provide a different notion of verification  Verification of RTL model of off-the-shelf processor  Verified all the instructions of the OR1200 embedded processor JAA, 3/21/2007 16
  • 17. Single Instruction Verification P0=P i1 get_conditioned_slice P1 (P0, < i1, e, Vh>) it+1 Pt+1 Pn in h Model Antecedent Checker Conditioned Slice JAA, 3/21/2007 17
  • 18. Results of OR1200 Verification CPU Seconds, 3 GHz Pentium 4 processor with 1 GB RAM Instruction Instructions SMV time Memory Class (seconds) Usage (KB) LSU l.ld 35.85 29104 LSU l.lws 33.91 28873 LSU l.sd 38.32 30941 SHF/ROT l.sll 26.81 23771 SHF/ROT l.srl 27.83 23771 SHF/ROT l.ror 27.93 26919 SPRS l.mfspr 226.97 50696 SPRS l.mtspr 212.27 48627 JAA, 3/21/2007 18