SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
Theory, Practice and Perspectives of
Operation-Based Formal Circuit Verification
                 Wolfram Büttner
                wolfram-buettner@aon.at


                  December 2012
Principles of Mathematical Work

 Overall objective
 - Construct mathematical object
 - Document understanding of object in terms of theorems
 Process of gaining understanding
 - Pre-proof: Set up hypothesis, constraints, assertions
 - Proof: Prove hypothesis or adjust hypothesis, constraints, assertions until proof succeeds
 - Theory formation: Develop hierarchy of theorems to achieve good understanding of object
 Formal verification
 - Analyze mathematical models capturing key functionality of technical systems – most
   important models are FSM‘s describing discrete control
 - Emphasis is on finding errors – proof as termination criterion for successful verification
 - Automated proof is essential for acceptance in Engineering
 - Automated proof is necessary, but is it sufficient for a good verification solution?


December 2012
Page 2
Model Checking: Automated Debugging/Proof
                Temporal Logic as Property Description Language for FSM‘s




      AGp - p holds for all          EGp - p holds for all         AFp - p holds for some
      states of all traces           states of some trace          state in every trace




                                                More complex properties
                                                e.g. AG(p AFq), AGAFp, AGEFp


      EFp - p holds for some
      state in some trace

December 2012
Page 3
Model Checking: Automated Debugging/Proof
                       Does temporal logic formula hold for FSM ?

 AGp - p holds for all      Basic Model Checking:
 states of all traces       if p does not hold for z0 then reset activation defines counterexample,
                            else for i > 0 … {
                                  • calculate Zi+1
 z0                               • if Zi+1 = Zi proof holds, stop else
                                  • examine all new z that can be reached from Zi in one step
                                          if p does not hold for z then calculate trace to z,
                                          stop
                                          }
                              }
  z0 = reset state
  Z0 = {z0}                 Symbolic Model Checking:
  ….                        • Identify sets Zi with their characteristic (Boolean) functions
  Zi+1 = Zi plus new        • f Boolean then f(x1, …, xn) = ite (x1=1, f(1, ……, xn), f(0, …… , xn))
  states reachable          • Iterated decomposition represents f as directed acyclic graph (BDD)
  from states in Zi         • Graph is often compact; permits efficient build-up of Zi, comparison
  in one step                 of Zi and Zi+1 and intersection of Zi+1 with set of states violating p

December 2012
Page 4
Model Checking: Automated Debugging/Proof
                                    Assessment
   Status of approach
   • Best known automated formal verification paradigm
   • Bound to be an add-on to conventional simulation-based testing
   • Applied in various domains by experts verifying critical functionality – no
     generally accepted engineering practice
   • Often faces state-explosion requiring problem specific abstractions
   • Finding safe abstractions requires deep knowledge of tool and application
   Conclusions
   • Push-button verification solution based on MC works only for simple properties
   • Additional support of „process of gaining understanding“ is essential for broad
     acceptance of formal verification in industry
   • In early 1990s new circuit verification approach emerged supporting pre-proof,
     proof and theory formation – OFV (operation-based formal circuit verification)

December 2012
Page 5
OFV: Running Example - Memory Controller

                                       Processor


                         request rw address wdata rdata ready




                                   SDRAM Controller
                                 (for e.g., DDR 2 RAMs)



                         sd_addr sd_wdata sd_ctrl     sd_rdata




                                        SDRAM




December 2012
Page 6
OFV: Operation Properties/Abstract VHDL
                    sd_ctrl <= nop;     req = '0' /                                                                             pnop / mnop
                    ready <= '0';       sd_ctrl <= nop;                                             reset
                                        ready <= '0';                                                               IDLE
   reset
                                                req = '1' /                                                                                       pwrite(R,C,D) /
                                                sd_ctrl <= activate;                                                                              activate(R),
  sd_ctrl <= nop;              idle                                                 pnop /                                 pread(R,C) /
                                                sd_addr <= row(address);                                                                          mwrite(C,D),
  ready <= '0';                                                                     precharge                              activate(R) &
                                                last_row <= row(address);                                                                         actrow <= R
                                                                                                                           mread(C),
                                                ready <= '0';
                                                                              pread(R,C)                                   actrow = R
                                                                                                                                                 pwrite(R,C,D)
                                                                              and R = actrow /
  (req = '0' or                                                                                                  ROW_ACT                         and R = actrow /
                                                  sd_ctrl <= nop;             mread(C)
  row(address /=                                                                                                                                 mwrite(C,D)
                                                  ready <= '0'
  last_row) /                                                                                                                        pwrite(R,C,D)
  sd_ctrl <=                  row_act
                                              req = '1' and rw = '1‚                          pread(R,C)                             and R ≠ actrow /
  precharge;                                  and row(address)                                and R ≠ actrow /                       precharge,
  ready <= '0';                               = last_row /                                    precharge,                             activate(R),
                                              sd_ctrl <= read;                                activate(R),                           mwrite(C,D),
                                              sd_addr <= col(address)                         mread(C),                              actrow <= R
                                              ready <= '0';                                   actrow <= R
           (req = '1' and rw = '0'
           and row(address) =                                                              t                                                                        T
           last_row) /                          sd_ctrl <= nop;
           sd_ctrl <= write;                                                    state   ROW_ACT
                                                ready <= '0';
           sd_addr <= col(address);                                           actrow                                                                                R
           ready <= '1';                                                     request                        R ≠ actrow
           sd_wdata <= wdata;                   sd_ctrl <= nop;                   rw
                                                ready <= '0';                  ready
                                                                             address    R,C
                                                                                rdata                                                                        D
                                                rdata <= sd_rdata;             wdata
                                                ready <= '1';                 sd_ctrl             prech nop      activate nop     read     nop              nop
                                                Sd_ctrl <= nop;
                                                                             sd_addr                                R               C
           sd_ctrl <= stop;                                                 sd_rdata
           ready <= '0';                        sd_ctrl <= nop;                                                                                       D
                                                ready <= '0';               sd_wdata




December 2012
Page 7
OFV: Formal Verification of Single
                      Operation Property
  Verification of single operation property is reduced to SAT-problem
  • A = A(z0, Z, I, O, R(z0, Z, I, O)) (Mealy automaton of VHDL program)
    R defines transition equations zj+1 = zj+1(zj, ij), oj = oj(zj, ij) (polynomials in zj, ij)
  • P = P(it, it+1, …, it+n, zt, zt+1, … zt+n, ot, ot+1, …, ot+n) ε { True, False}
    Property describes behaviour of an operation over n cycles (usually n ≤ 50)
  • By inserting transition equations of A into P a property P‘ of A arises with
    P‘ = P‘(it, it+1, …, it+n, zt)
  • Application of SAT solver:
    P holds for A iff P‘ = True otherwise solver computes trace T (counter example)
    triggered by it‘, it+1‘, …, it+n ‘ such that T starts at zt‘ and P fails for T
  • Complexity shifted from BDD representation to SAT search; heuristics deal with
    many thousand variables; few properties run longer than 5 minutes


December 2012
Page 8
OFV: Methodology to Systematically Find
                  Operation Properties
   Review VHDL/spec and automatically verify identified behavior
   • Verification engineer searches in VHDL for start and ending states of operations
     of abstract VHDL
   • Incremental build-up of these states and connecting operations by firstly
     inspecting state machine (s) of code and then taking data path into account:
       – Suspected (stage of) operation is formalized by – possibly partial - operation property
       – Property checking reveals errors or ensures correct behavior of code fragments
   • This way engineer walks through code, operation by operation, and covers
     behaviour of VHDL by operation properties
   • Review stops once automated completeness check confirms coverage of full
     functionality of code by properties
   • Productivity: 2000-4000 lines of fully verified VHDL per person month


December 2012
Page 9
OFV: Completeness of Set of Operation
                            Properties
 Set of operation properties of an automaton A describing a VHDL program is
 complete iff for every input trace of A a chain of properties exists which uniquely
 determines A‘s output trace – i.e. A and its Abstract VHDL have same I/O behavior.

 In order to gap-free chain operation properties for any such property P its ending
 and starting states must comprise conditions which permit tests ensuring
 completeness of a property set:

  For every property P
 1. and for every input stimulus there exist successor properties Qi such that the ending state
    condition of P fulfills the starting state condition of Qi (successor test)
 2. and for every input stimulus any successor Qi of P uniquely determines the output trace in
    the considered interval (determination test)
 3. the input conditions of the successors Qi of P cover all possible inputs (case split test)

 Similarly as for property checking completeness tests amount to solving SAT problems
December 2012
Page 10
OFV: Success Story
       Operation-Based Formal Verification of Large Industrial Processor

                                                                                   • Verisoft-Project funded by German Ministry
                                MMU                FPU

                                                                       Data
                                                                                     for Education and Research to challenge
      Program
                                 TriCore 1.3                                         formal techniques


                                                         Interface
                                                                       Cache
                    Interface


       Cache
       Program                      Core                                 Data
     Scratch RAM                                                     Scratch RAM   • Testcase due to Verisoft-Partner Infineon:
       Program                   Bus Interface Unit                      Data
     Scratch RAM                                                     Scratch RAM      – New superscalar 32-bit microcontroller-DSP, 3
                                                                                        pipelines, 850 instructions
                                    Interrupt &
       Interrupts
                                    Debug Unit                                        – Around 100k lines VHDL/1000 pages spec
      Other IP                   Crossbar (64 bit)                    Other IP        – Widely used in automotive applications
                                                                                   • Effort: 4 PY vs. significantly higher effort
                                       Bridge                                        needed for simulation
                                                                                   • Critical bugs found by OFV in spec and RTL
                                      System Bus
                                                                                   • 1532 properties; 5 processes; 30 k lines of
                                 formally verified
                                                                                     property code
        Source: Infineon; Verisoft project 2007                                    • Correctness proven on single WS in 5 days

December 2012
Page 11
Chip Development and Main Hurdle for OFV
                            Early phase
                            •   set up/assess functional prototypes
                            Architecture
                            •   explore architectural choices
                            •   specify modules and communication for
                                target architecture
                            Design
                            •   Development and verification or re-use of
                                modules (e.g. VHDL programs)
                            •   Verification engineers used to black-box
                                verification (random test generation)
                            •   system integration, communication
                                structures
                            Lower-Level Activities
                            •   Automated implementation of logic firstly
                                by gates then by transistors
                            •   Generation of production data and tests
December 2012
Page 12
Further Perspectives of Abstract VHDL
                         Operation-Based Design, Optimization wrt. Area, Speed, Power,
                                          Functional Safety Analysis
                    sd_ctrl <= nop;     req = '0' /                                                                              pnop / mnop
                    ready <= '0';       sd_ctrl <= nop;                                              reset
                                        ready <= '0';                                                                IDLE
   reset
                                                req = '1' /                                                                                        pwrite(R,C,D) /
                                                sd_ctrl <= row_act;                                                                                activate(R),
  sd_ctrl <= nop;              idle                                                  pnop /                                 pread(R,C) /
                                                sd_addr <= row(address);                                                                           mwrite(C,D),
  ready <= '0';                                                                      precharge                              activate(R) &
                                                last_row <= row(address);                                                                          actrow <= R
                                                                                                                            mread(C),
                                                ready <= '0';
                                                                               pread(R,C)                                   actrow = R
                                                                                                                                                  pwrite(R,C,D)
                                                                               and R = actrow /
  (req = '0' or                                                                                                   ROW_ACT                         and R = actrow /
                                                  sd_ctrl <= nop;              mread(C)
  row(address /=                                                                                                                                  mwrite(C,D)
                                                  ready <= '0'
  last_row) /                                                                                                                         pwrite(R,C,D)
  sd_ctrl <=                  row_act
                                              req = '1' and rw = '1‚                           pread(R,C)                             and R ≠ actrow /
  precharge;                                  and row(address)                                 and R ≠ actrow /                       precharge,
  ready <= '0';                               = last_row /                                     precharge,                             activate(R),
                                              sd_ctrl <= read;                                 activate(R),                           mwrite(C,D),
                                              sd_addr <= col(address)                          mread(C),                              actrow <= R
                                              ready <= '0'; (ready <= '1')                     actrow <= R
           (req = '1' and rw = '0'
           and row(address) =                                                               t                                                                        T
           last_row) /                          sd_ctrl <= stop;
           sd_ctrl <= write;                                                     state   ROW_ACT
                                                ready <= '0';
           sd_addr <= col(address);                                            actrow                                                                                R
           ready <= '1';                                                      request                        R ≠ actrow
           sd_wdata <= wdata;                   sd_ctrl <= nop;                    rw
                                                ready <= '0';                   ready
                                                                              address    R,C
                                                                                 rdata                                                                        D
                                                rdata <= sd_rdata;              wdata
                                                ready <= '1';                  sd_ctrl             prech nop      activate nop     read     nop              nop
                                                ctrl <= nop;
                                                                              sd_addr                                R               C
           sd_ctrl <= stop;                                                  sd_rdata
           ready <= '0';                        sd_ctrl <= nop;                                                                                        D
                                                ready <= '0';                sd_wdata




December 2012
Page 13
Summary

  • Modules are built to implement operations - often computing results within few cycles.
  • Functional essence of an operation is captured by concept of operation property.
  • Start/end states of operations and operation properties define abstract automaton -
    tool-supported code review extracts this Abstract VHDL from VHDL and spec.
  • SAT-based property checking and completeness tests guarantee functional equivalence
    between VHDL and Abstract VHDL or reveal errors in code or spec – respective tools
     are supported and marketed by OneSpin Solutions GmbH.
  • OFV is a full verification solution supporting pre-proof, proof, theory formation -
    reliably yields top quality at reasonable effort.
  • Two barriers prevent OFV from entering mainstream engineering:
      – Chip manufacturers now focus on system construction – most modules exist as re-use blocks
      – Verification engineers got used to black box verification - automated random test simulation
  • Way forward: Operation-based design, exploitation of full potential of Abstract VHDL
 Reference: J. Bormann: "Vollständige funktionale Verifikation", Dissertation, TU Kaiserslautern, 2009

December 2012
Page 14
Danke!


December 2012
Page 15

Weitere ähnliche Inhalte

Was ist angesagt?

OLD VERSION - Understanding the V8 Runtime to Maximize Application Performance
OLD VERSION - Understanding the V8 Runtime to Maximize Application PerformanceOLD VERSION - Understanding the V8 Runtime to Maximize Application Performance
OLD VERSION - Understanding the V8 Runtime to Maximize Application PerformanceDaniel Fields
 
LLVM Register Allocation (2nd Version)
LLVM Register Allocation (2nd Version)LLVM Register Allocation (2nd Version)
LLVM Register Allocation (2nd Version)Wang Hsiangkai
 
3 2. if statement
3 2. if statement3 2. if statement
3 2. if statement웅식 전
 
Uncovering Performance Problems in Java Applications with Reference Propagati...
Uncovering Performance Problems in Java Applications with Reference Propagati...Uncovering Performance Problems in Java Applications with Reference Propagati...
Uncovering Performance Problems in Java Applications with Reference Propagati...Dacong (Tony) Yan
 
8086 labmanual
8086 labmanual8086 labmanual
8086 labmanualiravi9
 
Debug Line Issues After Relaxation.
Debug Line Issues After Relaxation.Debug Line Issues After Relaxation.
Debug Line Issues After Relaxation.Wang Hsiangkai
 
DWARF Data Representation
DWARF Data RepresentationDWARF Data Representation
DWARF Data RepresentationWang Hsiangkai
 
Integrating R with C++: Rcpp, RInside and RProtoBuf
Integrating R with C++: Rcpp, RInside and RProtoBufIntegrating R with C++: Rcpp, RInside and RProtoBuf
Integrating R with C++: Rcpp, RInside and RProtoBufRomain Francois
 
8086 instructions
8086 instructions8086 instructions
8086 instructionsRavi Anand
 
Peeter Laud: "Formal Analysis of the Mobile-ID protocol"
Peeter Laud: "Formal Analysis of the Mobile-ID protocol"Peeter Laud: "Formal Analysis of the Mobile-ID protocol"
Peeter Laud: "Formal Analysis of the Mobile-ID protocol"MobileMonday Estonia
 
Fpga based implementation of a double precision ieee floating point adder
Fpga based implementation of a double precision ieee floating point adderFpga based implementation of a double precision ieee floating point adder
Fpga based implementation of a double precision ieee floating point adderSomsubhra Ghosh
 
Double patterning (4/20 update)
Double patterning (4/20 update)Double patterning (4/20 update)
Double patterning (4/20 update)Danny Luk
 
OpenMI Developers Training
OpenMI Developers TrainingOpenMI Developers Training
OpenMI Developers TrainingJan Gregersen
 
OpenMI Developers Training
OpenMI Developers TrainingOpenMI Developers Training
OpenMI Developers TrainingJan Gregersen
 

Was ist angesagt? (20)

OLD VERSION - Understanding the V8 Runtime to Maximize Application Performance
OLD VERSION - Understanding the V8 Runtime to Maximize Application PerformanceOLD VERSION - Understanding the V8 Runtime to Maximize Application Performance
OLD VERSION - Understanding the V8 Runtime to Maximize Application Performance
 
LLVM Register Allocation (2nd Version)
LLVM Register Allocation (2nd Version)LLVM Register Allocation (2nd Version)
LLVM Register Allocation (2nd Version)
 
Instrucciones 8951
Instrucciones 8951Instrucciones 8951
Instrucciones 8951
 
3 2. if statement
3 2. if statement3 2. if statement
3 2. if statement
 
Uncovering Performance Problems in Java Applications with Reference Propagati...
Uncovering Performance Problems in Java Applications with Reference Propagati...Uncovering Performance Problems in Java Applications with Reference Propagati...
Uncovering Performance Problems in Java Applications with Reference Propagati...
 
8086 labmanual
8086 labmanual8086 labmanual
8086 labmanual
 
Cprogramcontrolifelseselection3
Cprogramcontrolifelseselection3Cprogramcontrolifelseselection3
Cprogramcontrolifelseselection3
 
Debug Line Issues After Relaxation.
Debug Line Issues After Relaxation.Debug Line Issues After Relaxation.
Debug Line Issues After Relaxation.
 
DWARF Data Representation
DWARF Data RepresentationDWARF Data Representation
DWARF Data Representation
 
Integrating R with C++: Rcpp, RInside and RProtoBuf
Integrating R with C++: Rcpp, RInside and RProtoBufIntegrating R with C++: Rcpp, RInside and RProtoBuf
Integrating R with C++: Rcpp, RInside and RProtoBuf
 
Pda
PdaPda
Pda
 
[ASM]Lab4
[ASM]Lab4[ASM]Lab4
[ASM]Lab4
 
8086 instructions
8086 instructions8086 instructions
8086 instructions
 
Opal compiler
Opal compilerOpal compiler
Opal compiler
 
[ASM]Lab8
[ASM]Lab8[ASM]Lab8
[ASM]Lab8
 
Peeter Laud: "Formal Analysis of the Mobile-ID protocol"
Peeter Laud: "Formal Analysis of the Mobile-ID protocol"Peeter Laud: "Formal Analysis of the Mobile-ID protocol"
Peeter Laud: "Formal Analysis of the Mobile-ID protocol"
 
Fpga based implementation of a double precision ieee floating point adder
Fpga based implementation of a double precision ieee floating point adderFpga based implementation of a double precision ieee floating point adder
Fpga based implementation of a double precision ieee floating point adder
 
Double patterning (4/20 update)
Double patterning (4/20 update)Double patterning (4/20 update)
Double patterning (4/20 update)
 
OpenMI Developers Training
OpenMI Developers TrainingOpenMI Developers Training
OpenMI Developers Training
 
OpenMI Developers Training
OpenMI Developers TrainingOpenMI Developers Training
OpenMI Developers Training
 

Ähnlich wie Theorie, Praxis und Perspektiven der operationsbasierten formalen Schaltungsverifikation

Native interfaces for R
Native interfaces for RNative interfaces for R
Native interfaces for RSeth Falcon
 
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLabApache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLabCloudxLab
 
Apache Spark - Basics of RDD & RDD Operations | Big Data Hadoop Spark Tutoria...
Apache Spark - Basics of RDD & RDD Operations | Big Data Hadoop Spark Tutoria...Apache Spark - Basics of RDD & RDD Operations | Big Data Hadoop Spark Tutoria...
Apache Spark - Basics of RDD & RDD Operations | Big Data Hadoop Spark Tutoria...CloudxLab
 
Root Locus Method - Control System - Bsc Engineering
Root Locus Method - Control System - Bsc EngineeringRoot Locus Method - Control System - Bsc Engineering
Root Locus Method - Control System - Bsc Engineeringdexik15916
 
Big Data for Mobile
Big Data for MobileBig Data for Mobile
Big Data for MobileBugSense
 
Getting The Best Performance With PySpark
Getting The Best Performance With PySparkGetting The Best Performance With PySpark
Getting The Best Performance With PySparkSpark Summit
 
Extending lifespan with Hadoop and R
Extending lifespan with Hadoop and RExtending lifespan with Hadoop and R
Extending lifespan with Hadoop and RRadek Maciaszek
 
Xdp and ebpf_maps
Xdp and ebpf_mapsXdp and ebpf_maps
Xdp and ebpf_mapslcplcp1
 
OpenTuesday: Neues aus der RRDtool Welt
OpenTuesday: Neues aus der RRDtool WeltOpenTuesday: Neues aus der RRDtool Welt
OpenTuesday: Neues aus der RRDtool WeltDigicomp Academy AG
 
Ruby on Big Data @ Philly Ruby Group
Ruby on Big Data @ Philly Ruby GroupRuby on Big Data @ Philly Ruby Group
Ruby on Big Data @ Philly Ruby GroupBrian O'Neill
 
Mod Perl Quick Reference Card
Mod Perl Quick Reference CardMod Perl Quick Reference Card
Mod Perl Quick Reference CardFaryne Hsieh
 

Ähnlich wie Theorie, Praxis und Perspektiven der operationsbasierten formalen Schaltungsverifikation (20)

Native interfaces for R
Native interfaces for RNative interfaces for R
Native interfaces for R
 
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLabApache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
 
Apache Spark - Basics of RDD & RDD Operations | Big Data Hadoop Spark Tutoria...
Apache Spark - Basics of RDD & RDD Operations | Big Data Hadoop Spark Tutoria...Apache Spark - Basics of RDD & RDD Operations | Big Data Hadoop Spark Tutoria...
Apache Spark - Basics of RDD & RDD Operations | Big Data Hadoop Spark Tutoria...
 
Root Locus Method - Control System - Bsc Engineering
Root Locus Method - Control System - Bsc EngineeringRoot Locus Method - Control System - Bsc Engineering
Root Locus Method - Control System - Bsc Engineering
 
Big Data for Mobile
Big Data for MobileBig Data for Mobile
Big Data for Mobile
 
Getting The Best Performance With PySpark
Getting The Best Performance With PySparkGetting The Best Performance With PySpark
Getting The Best Performance With PySpark
 
Extending lifespan with Hadoop and R
Extending lifespan with Hadoop and RExtending lifespan with Hadoop and R
Extending lifespan with Hadoop and R
 
Map reduce vs spark
Map reduce vs sparkMap reduce vs spark
Map reduce vs spark
 
Xdp and ebpf_maps
Xdp and ebpf_mapsXdp and ebpf_maps
Xdp and ebpf_maps
 
05-Debug.pdf
05-Debug.pdf05-Debug.pdf
05-Debug.pdf
 
Design Of 10 gbps
Design Of 10 gbpsDesign Of 10 gbps
Design Of 10 gbps
 
OpenTuesday: Neues aus der RRDtool Welt
OpenTuesday: Neues aus der RRDtool WeltOpenTuesday: Neues aus der RRDtool Welt
OpenTuesday: Neues aus der RRDtool Welt
 
Ruby on Big Data @ Philly Ruby Group
Ruby on Big Data @ Philly Ruby GroupRuby on Big Data @ Philly Ruby Group
Ruby on Big Data @ Philly Ruby Group
 
Ml4nlp04 1
Ml4nlp04 1Ml4nlp04 1
Ml4nlp04 1
 
Mod Perl Quick Reference Card
Mod Perl Quick Reference CardMod Perl Quick Reference Card
Mod Perl Quick Reference Card
 
LCD_Example.pptx
LCD_Example.pptxLCD_Example.pptx
LCD_Example.pptx
 
07 sequential verilog
07 sequential verilog07 sequential verilog
07 sequential verilog
 
Apache Spark & Streaming
Apache Spark & StreamingApache Spark & Streaming
Apache Spark & Streaming
 
DHow2 - L6 VHDL
DHow2 - L6 VHDLDHow2 - L6 VHDL
DHow2 - L6 VHDL
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 

Mehr von Förderverein Technische Fakultät

The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...Förderverein Technische Fakultät
 
Engineering Serverless Workflow Applications in Federated FaaS.pdf
Engineering Serverless Workflow Applications in Federated FaaS.pdfEngineering Serverless Workflow Applications in Federated FaaS.pdf
Engineering Serverless Workflow Applications in Federated FaaS.pdfFörderverein Technische Fakultät
 
The Role of Machine Learning in Fluid Network Control and Data Planes.pdf
The Role of Machine Learning in Fluid Network Control and Data Planes.pdfThe Role of Machine Learning in Fluid Network Control and Data Planes.pdf
The Role of Machine Learning in Fluid Network Control and Data Planes.pdfFörderverein Technische Fakultät
 
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...Förderverein Technische Fakultät
 
East-west oriented photovoltaic power systems: model, benefits and technical ...
East-west oriented photovoltaic power systems: model, benefits and technical ...East-west oriented photovoltaic power systems: model, benefits and technical ...
East-west oriented photovoltaic power systems: model, benefits and technical ...Förderverein Technische Fakultät
 
Advances in Visual Quality Restoration with Generative Adversarial Networks
Advances in Visual Quality Restoration with Generative Adversarial NetworksAdvances in Visual Quality Restoration with Generative Adversarial Networks
Advances in Visual Quality Restoration with Generative Adversarial NetworksFörderverein Technische Fakultät
 
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdfIndustriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdfFörderverein Technische Fakultät
 

Mehr von Förderverein Technische Fakultät (20)

Supervisory control of business processes
Supervisory control of business processesSupervisory control of business processes
Supervisory control of business processes
 
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
 
A Game of Chess is Like a Swordfight.pdf
A Game of Chess is Like a Swordfight.pdfA Game of Chess is Like a Swordfight.pdf
A Game of Chess is Like a Swordfight.pdf
 
From Mind to Meta.pdf
From Mind to Meta.pdfFrom Mind to Meta.pdf
From Mind to Meta.pdf
 
Miniatures Design for Tabletop Games.pdf
Miniatures Design for Tabletop Games.pdfMiniatures Design for Tabletop Games.pdf
Miniatures Design for Tabletop Games.pdf
 
Distributed Systems in the Post-Moore Era.pptx
Distributed Systems in the Post-Moore Era.pptxDistributed Systems in the Post-Moore Era.pptx
Distributed Systems in the Post-Moore Era.pptx
 
Don't Treat the Symptom, Find the Cause!.pptx
Don't Treat the Symptom, Find the Cause!.pptxDon't Treat the Symptom, Find the Cause!.pptx
Don't Treat the Symptom, Find the Cause!.pptx
 
Engineering Serverless Workflow Applications in Federated FaaS.pdf
Engineering Serverless Workflow Applications in Federated FaaS.pdfEngineering Serverless Workflow Applications in Federated FaaS.pdf
Engineering Serverless Workflow Applications in Federated FaaS.pdf
 
The Role of Machine Learning in Fluid Network Control and Data Planes.pdf
The Role of Machine Learning in Fluid Network Control and Data Planes.pdfThe Role of Machine Learning in Fluid Network Control and Data Planes.pdf
The Role of Machine Learning in Fluid Network Control and Data Planes.pdf
 
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
 
Towards a data driven identification of teaching patterns.pdf
Towards a data driven identification of teaching patterns.pdfTowards a data driven identification of teaching patterns.pdf
Towards a data driven identification of teaching patterns.pdf
 
Förderverein Technische Fakultät.pptx
Förderverein Technische Fakultät.pptxFörderverein Technische Fakultät.pptx
Förderverein Technische Fakultät.pptx
 
The Computing Continuum.pdf
The Computing Continuum.pdfThe Computing Continuum.pdf
The Computing Continuum.pdf
 
East-west oriented photovoltaic power systems: model, benefits and technical ...
East-west oriented photovoltaic power systems: model, benefits and technical ...East-west oriented photovoltaic power systems: model, benefits and technical ...
East-west oriented photovoltaic power systems: model, benefits and technical ...
 
Machine Learning in Finance via Randomization
Machine Learning in Finance via RandomizationMachine Learning in Finance via Randomization
Machine Learning in Finance via Randomization
 
IT does not stop
IT does not stopIT does not stop
IT does not stop
 
Advances in Visual Quality Restoration with Generative Adversarial Networks
Advances in Visual Quality Restoration with Generative Adversarial NetworksAdvances in Visual Quality Restoration with Generative Adversarial Networks
Advances in Visual Quality Restoration with Generative Adversarial Networks
 
Recent Trends in Personalization at Netflix
Recent Trends in Personalization at NetflixRecent Trends in Personalization at Netflix
Recent Trends in Personalization at Netflix
 
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdfIndustriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
 
Introduction to 5G from radio perspective
Introduction to 5G from radio perspectiveIntroduction to 5G from radio perspective
Introduction to 5G from radio perspective
 

Kürzlich hochgeladen

The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Kürzlich hochgeladen (20)

The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Theorie, Praxis und Perspektiven der operationsbasierten formalen Schaltungsverifikation

  • 1. Theory, Practice and Perspectives of Operation-Based Formal Circuit Verification Wolfram Büttner wolfram-buettner@aon.at December 2012
  • 2. Principles of Mathematical Work Overall objective - Construct mathematical object - Document understanding of object in terms of theorems Process of gaining understanding - Pre-proof: Set up hypothesis, constraints, assertions - Proof: Prove hypothesis or adjust hypothesis, constraints, assertions until proof succeeds - Theory formation: Develop hierarchy of theorems to achieve good understanding of object Formal verification - Analyze mathematical models capturing key functionality of technical systems – most important models are FSM‘s describing discrete control - Emphasis is on finding errors – proof as termination criterion for successful verification - Automated proof is essential for acceptance in Engineering - Automated proof is necessary, but is it sufficient for a good verification solution? December 2012 Page 2
  • 3. Model Checking: Automated Debugging/Proof Temporal Logic as Property Description Language for FSM‘s AGp - p holds for all EGp - p holds for all AFp - p holds for some states of all traces states of some trace state in every trace More complex properties e.g. AG(p AFq), AGAFp, AGEFp EFp - p holds for some state in some trace December 2012 Page 3
  • 4. Model Checking: Automated Debugging/Proof Does temporal logic formula hold for FSM ? AGp - p holds for all Basic Model Checking: states of all traces if p does not hold for z0 then reset activation defines counterexample, else for i > 0 … { • calculate Zi+1 z0 • if Zi+1 = Zi proof holds, stop else • examine all new z that can be reached from Zi in one step if p does not hold for z then calculate trace to z, stop } } z0 = reset state Z0 = {z0} Symbolic Model Checking: …. • Identify sets Zi with their characteristic (Boolean) functions Zi+1 = Zi plus new • f Boolean then f(x1, …, xn) = ite (x1=1, f(1, ……, xn), f(0, …… , xn)) states reachable • Iterated decomposition represents f as directed acyclic graph (BDD) from states in Zi • Graph is often compact; permits efficient build-up of Zi, comparison in one step of Zi and Zi+1 and intersection of Zi+1 with set of states violating p December 2012 Page 4
  • 5. Model Checking: Automated Debugging/Proof Assessment Status of approach • Best known automated formal verification paradigm • Bound to be an add-on to conventional simulation-based testing • Applied in various domains by experts verifying critical functionality – no generally accepted engineering practice • Often faces state-explosion requiring problem specific abstractions • Finding safe abstractions requires deep knowledge of tool and application Conclusions • Push-button verification solution based on MC works only for simple properties • Additional support of „process of gaining understanding“ is essential for broad acceptance of formal verification in industry • In early 1990s new circuit verification approach emerged supporting pre-proof, proof and theory formation – OFV (operation-based formal circuit verification) December 2012 Page 5
  • 6. OFV: Running Example - Memory Controller Processor request rw address wdata rdata ready SDRAM Controller (for e.g., DDR 2 RAMs) sd_addr sd_wdata sd_ctrl sd_rdata SDRAM December 2012 Page 6
  • 7. OFV: Operation Properties/Abstract VHDL sd_ctrl <= nop; req = '0' / pnop / mnop ready <= '0'; sd_ctrl <= nop; reset ready <= '0'; IDLE reset req = '1' / pwrite(R,C,D) / sd_ctrl <= activate; activate(R), sd_ctrl <= nop; idle pnop / pread(R,C) / sd_addr <= row(address); mwrite(C,D), ready <= '0'; precharge activate(R) & last_row <= row(address); actrow <= R mread(C), ready <= '0'; pread(R,C) actrow = R pwrite(R,C,D) and R = actrow / (req = '0' or ROW_ACT and R = actrow / sd_ctrl <= nop; mread(C) row(address /= mwrite(C,D) ready <= '0' last_row) / pwrite(R,C,D) sd_ctrl <= row_act req = '1' and rw = '1‚ pread(R,C) and R ≠ actrow / precharge; and row(address) and R ≠ actrow / precharge, ready <= '0'; = last_row / precharge, activate(R), sd_ctrl <= read; activate(R), mwrite(C,D), sd_addr <= col(address) mread(C), actrow <= R ready <= '0'; actrow <= R (req = '1' and rw = '0' and row(address) = t T last_row) / sd_ctrl <= nop; sd_ctrl <= write; state ROW_ACT ready <= '0'; sd_addr <= col(address); actrow R ready <= '1'; request R ≠ actrow sd_wdata <= wdata; sd_ctrl <= nop; rw ready <= '0'; ready address R,C rdata D rdata <= sd_rdata; wdata ready <= '1'; sd_ctrl prech nop activate nop read nop nop Sd_ctrl <= nop; sd_addr R C sd_ctrl <= stop; sd_rdata ready <= '0'; sd_ctrl <= nop; D ready <= '0'; sd_wdata December 2012 Page 7
  • 8. OFV: Formal Verification of Single Operation Property Verification of single operation property is reduced to SAT-problem • A = A(z0, Z, I, O, R(z0, Z, I, O)) (Mealy automaton of VHDL program) R defines transition equations zj+1 = zj+1(zj, ij), oj = oj(zj, ij) (polynomials in zj, ij) • P = P(it, it+1, …, it+n, zt, zt+1, … zt+n, ot, ot+1, …, ot+n) ε { True, False} Property describes behaviour of an operation over n cycles (usually n ≤ 50) • By inserting transition equations of A into P a property P‘ of A arises with P‘ = P‘(it, it+1, …, it+n, zt) • Application of SAT solver: P holds for A iff P‘ = True otherwise solver computes trace T (counter example) triggered by it‘, it+1‘, …, it+n ‘ such that T starts at zt‘ and P fails for T • Complexity shifted from BDD representation to SAT search; heuristics deal with many thousand variables; few properties run longer than 5 minutes December 2012 Page 8
  • 9. OFV: Methodology to Systematically Find Operation Properties Review VHDL/spec and automatically verify identified behavior • Verification engineer searches in VHDL for start and ending states of operations of abstract VHDL • Incremental build-up of these states and connecting operations by firstly inspecting state machine (s) of code and then taking data path into account: – Suspected (stage of) operation is formalized by – possibly partial - operation property – Property checking reveals errors or ensures correct behavior of code fragments • This way engineer walks through code, operation by operation, and covers behaviour of VHDL by operation properties • Review stops once automated completeness check confirms coverage of full functionality of code by properties • Productivity: 2000-4000 lines of fully verified VHDL per person month December 2012 Page 9
  • 10. OFV: Completeness of Set of Operation Properties Set of operation properties of an automaton A describing a VHDL program is complete iff for every input trace of A a chain of properties exists which uniquely determines A‘s output trace – i.e. A and its Abstract VHDL have same I/O behavior. In order to gap-free chain operation properties for any such property P its ending and starting states must comprise conditions which permit tests ensuring completeness of a property set: For every property P 1. and for every input stimulus there exist successor properties Qi such that the ending state condition of P fulfills the starting state condition of Qi (successor test) 2. and for every input stimulus any successor Qi of P uniquely determines the output trace in the considered interval (determination test) 3. the input conditions of the successors Qi of P cover all possible inputs (case split test) Similarly as for property checking completeness tests amount to solving SAT problems December 2012 Page 10
  • 11. OFV: Success Story Operation-Based Formal Verification of Large Industrial Processor • Verisoft-Project funded by German Ministry MMU FPU Data for Education and Research to challenge Program TriCore 1.3 formal techniques Interface Cache Interface Cache Program Core Data Scratch RAM Scratch RAM • Testcase due to Verisoft-Partner Infineon: Program Bus Interface Unit Data Scratch RAM Scratch RAM – New superscalar 32-bit microcontroller-DSP, 3 pipelines, 850 instructions Interrupt & Interrupts Debug Unit – Around 100k lines VHDL/1000 pages spec Other IP Crossbar (64 bit) Other IP – Widely used in automotive applications • Effort: 4 PY vs. significantly higher effort Bridge needed for simulation • Critical bugs found by OFV in spec and RTL System Bus • 1532 properties; 5 processes; 30 k lines of formally verified property code Source: Infineon; Verisoft project 2007 • Correctness proven on single WS in 5 days December 2012 Page 11
  • 12. Chip Development and Main Hurdle for OFV Early phase • set up/assess functional prototypes Architecture • explore architectural choices • specify modules and communication for target architecture Design • Development and verification or re-use of modules (e.g. VHDL programs) • Verification engineers used to black-box verification (random test generation) • system integration, communication structures Lower-Level Activities • Automated implementation of logic firstly by gates then by transistors • Generation of production data and tests December 2012 Page 12
  • 13. Further Perspectives of Abstract VHDL Operation-Based Design, Optimization wrt. Area, Speed, Power, Functional Safety Analysis sd_ctrl <= nop; req = '0' / pnop / mnop ready <= '0'; sd_ctrl <= nop; reset ready <= '0'; IDLE reset req = '1' / pwrite(R,C,D) / sd_ctrl <= row_act; activate(R), sd_ctrl <= nop; idle pnop / pread(R,C) / sd_addr <= row(address); mwrite(C,D), ready <= '0'; precharge activate(R) & last_row <= row(address); actrow <= R mread(C), ready <= '0'; pread(R,C) actrow = R pwrite(R,C,D) and R = actrow / (req = '0' or ROW_ACT and R = actrow / sd_ctrl <= nop; mread(C) row(address /= mwrite(C,D) ready <= '0' last_row) / pwrite(R,C,D) sd_ctrl <= row_act req = '1' and rw = '1‚ pread(R,C) and R ≠ actrow / precharge; and row(address) and R ≠ actrow / precharge, ready <= '0'; = last_row / precharge, activate(R), sd_ctrl <= read; activate(R), mwrite(C,D), sd_addr <= col(address) mread(C), actrow <= R ready <= '0'; (ready <= '1') actrow <= R (req = '1' and rw = '0' and row(address) = t T last_row) / sd_ctrl <= stop; sd_ctrl <= write; state ROW_ACT ready <= '0'; sd_addr <= col(address); actrow R ready <= '1'; request R ≠ actrow sd_wdata <= wdata; sd_ctrl <= nop; rw ready <= '0'; ready address R,C rdata D rdata <= sd_rdata; wdata ready <= '1'; sd_ctrl prech nop activate nop read nop nop ctrl <= nop; sd_addr R C sd_ctrl <= stop; sd_rdata ready <= '0'; sd_ctrl <= nop; D ready <= '0'; sd_wdata December 2012 Page 13
  • 14. Summary • Modules are built to implement operations - often computing results within few cycles. • Functional essence of an operation is captured by concept of operation property. • Start/end states of operations and operation properties define abstract automaton - tool-supported code review extracts this Abstract VHDL from VHDL and spec. • SAT-based property checking and completeness tests guarantee functional equivalence between VHDL and Abstract VHDL or reveal errors in code or spec – respective tools are supported and marketed by OneSpin Solutions GmbH. • OFV is a full verification solution supporting pre-proof, proof, theory formation - reliably yields top quality at reasonable effort. • Two barriers prevent OFV from entering mainstream engineering: – Chip manufacturers now focus on system construction – most modules exist as re-use blocks – Verification engineers got used to black box verification - automated random test simulation • Way forward: Operation-based design, exploitation of full potential of Abstract VHDL Reference: J. Bormann: "Vollständige funktionale Verifikation", Dissertation, TU Kaiserslautern, 2009 December 2012 Page 14