vhdl bounded model checker vbmc a formal verification
play

Vhdl Bounded Model Checker (VBMC): A Formal Verification Tool for - PowerPoint PPT Presentation

Vhdl Bounded Model Checker (VBMC): A Formal Verification Tool for VHDL Designs Ajith John, A. K. Bhattacharjee RCnD, BARC Supratik Chakraborty, CFDVS, IIT Bombay Introduction Design of modern computer based systems involves partitioning of


  1. Vhdl Bounded Model Checker (VBMC): A Formal Verification Tool for VHDL Designs Ajith John, A. K. Bhattacharjee RCnD, BARC Supratik Chakraborty, CFDVS, IIT Bombay

  2. Introduction Design of modern computer based systems involves partitioning of system into hardware subsystems and software subsystems Exhaustive simulation impossible in practice

  3. Introduction Design of modern computer based systems involves partitioning of system into hardware subsystems and software subsystems Hardware subsystems are often implemented in Hardware Exhaustive simulation Description Languages (HDL) such as VHDL , Verilog etc. impossible in practice

  4. Introduction Design of modern computer based systems involves partitioning of system into hardware subsystems and software subsystems Hardware subsystems are often implemented in Hardware Exhaustive simulation Description Languages (HDL) such as VHDL , Verilog etc. impossible in practice Place Synt VHDL FPGA & Specifications hesis Program Route The programs written in VHDL are converted to hardware realizations in FPGA through a sequence of transformations

  5. Introduction Design of modern computer based systems involves partitioning of system into hardware subsystems and software subsystems Hardware subsystems are often implemented in Hardware Exhaustive simulation Description Languages (HDL) such as VHDL , Verilog etc. impossible in practice Place Synt VHDL FPGA & Specifications hesis Program Route The programs written in VHDL are converted to hardware realizations in FPGA through a sequence of transformations Correctness of the final FPGA implementation depends on the correctness of the VHDL program

  6. Introduction Design of modern computer based systems involves partitioning of system into hardware subsystems and software subsystems Hardware subsystems are often implemented in Hardware Exhaustive simulation Description Languages (HDL) such as VHDL , Verilog etc. impossible in practice Place Synt VHDL FPGA & Specifications hesis Program Route The programs written in VHDL are converted to hardware realizations in FPGA through a sequence of transformations Correctness of the final FPGA implementation depends on the correctness of the VHDL program Ensuring the correctness (verification) of VHDL programs extremely important when used in safety-critical applications

  7. Conventional Verification: Simulation Simulation (ModelSim, NCSim) Place Synt VHDL FPGA & Specifications hesis Program Route

  8. Conventional Verification: Simulation Exhaustive simulation covering Simulation all possible input combinations (ModelSim, impossible in practice NCSim) Place Synt VHDL FPGA & Specifications hesis Program Route

  9. Conventional Verification: Simulation Exhaustive simulation covering Simulation all possible input combinations (ModelSim, impossible in practice NCSim) Place Synt VHDL FPGA & Specifications hesis Program Route 32-bit input VHDL output Program 32-bit input 2 32 * 2 32 = 2 64 possible input combinations !!

  10. Conventional Verification: Simulation We cannot use exhaustive simulation to prove the functional correctness of the program Exhaustive simulation covering Simulation all possible input combinations (ModelSim, impossible in practice NCSim) Place Synt VHDL FPGA & Specifications hesis Program Route 32-bit input VHDL output Program 32-bit input 2 32 * 2 32 = 2 64 possible input combinations !!

  11. Formal Verification We cannot use exhaustive simulation to prove the functional correctness of the program Exhaustive simulation covering Exhaustive simulation covering Simulation all possible input combinations all possible input combinations (ModelSim, impossible in practice impossible in practice NCSim) Place Synt VHDL FPGA & Specifications hesis Program Route Formal Verificati on Formal verification proves / refutes the functional correctness of the program using rigorous mathematical techniques

  12. Vhdl Bounded Model Checker Indigenously developed tool for formal verification of VHDL designs Exhaustive simulation covering Simulation all possible input combinations (ModelSim, impossible in practice NCSim) Place Synt VHDL FPGA & Specifications hesis Program Route VBMC

  13. Vhdl Bounded Model Checker Indigenously developed tool for formal verification of VHDL designs Exhaustive simulation covering Simulation all possible input combinations (ModelSim, impossible in practice NCSim) Place Synt VHDL FPGA & Specifications hesis Program Route Expressed as VBMC Formal Specification (Property)

  14. Vhdl Bounded Model Checker Indigenously developed tool for formal verification of VHDL designs Exhaustive simulation covering Simulation all possible input combinations (ModelSim, impossible in practice NCSim) Place Synt VHDL FPGA & Specifications hesis Program Route Expressed as VBMC Formal Specification (Property) Bound K (integer) (number of clock cycles)

  15. Vhdl Bounded Model Checker Indigenously developed tool for formal verification of VHDL designs Exhaustive simulation covering Simulation all possible input combinations (ModelSim, impossible in practice NCSim) Place Synt VHDL FPGA & Specifications hesis Program Route Two possible Expressed as VBMC outcomes Formal Specification (Property) Bound K (integer) (number of clock cycles)

  16. Vhdl Bounded Model Checker Indigenously developed tool for formal verification of VHDL designs Exhaustive simulation covering Simulation all possible input combinations (ModelSim, impossible in practice NCSim) Place Synt VHDL FPGA & Specifications hesis Program Route Property satisfied for K clock cycles/ Two possible Expressed as VBMC outcomes Formal Specification (Property) Bound K (integer) (number of clock cycles)

  17. Vhdl Bounded Model Checker Indigenously developed tool for formal verification of VHDL designs Exhaustive simulation covering Simulation all possible input combinations (ModelSim, impossible in practice NCSim) Place Synt VHDL FPGA & Specifications hesis Program Route Property satisfied for K clock cycles/ Two possible Expressed as VBMC outcomes Formal Specification Property violated (Property) with Counterexample Bound K (integer) (execution of program (number violating property) of clock cycles)

  18. VBMC: Internals VHDL program Property satisfied/ VBMC Property violated Property with Counterexample (execution of program violating property) Bound, K

  19. VBMC: Internals VHDL program Property satisfied/ VBMC Property violated Property with Counterexample (execution of program violating property) Bound, K Steps inside VBMC Generation of transition relation Bounded model checking Transition relation abstraction

  20. Generation of Transition Relation Transition relation: relation between present and next states (R) of the program

  21. Generation of Transition Relation Transition relation: relation between present and next states (R) of the program Using symbolic simulation: Involves simulation of the VHDL program with symbols as inputs, rather than concrete values

  22. Generation of Transition Relation VHDL program Transition relation: relation between present and next states (R) of the program input d; output t; entity register is Using symbolic simulation: Involves signal p; simulation of the VHDL program with symbols .... as inputs, rather than concrete values process(clk) if(clk'event) p<=d; process(clk) if(clk'event) t<=p; .... end register;

  23. Generation of Transition Relation VHDL program Transition relation: relation between present and next states (R) of the program input d; output t; entity register is Using symbolic simulation: Involves signal p; simulation of the VHDL program with symbols .... as inputs, rather than concrete values process(clk) if(clk'event) Transition relation R(state 0 , state 1 ) p<=d; process(clk) if_then_else(clk 1 ≠clk 0 ,p 1 =d 1 ,p 1 =p 0 ) if(clk'event) ᐱ t<=p; if_then_else(clk 1 ≠clk 0 , t 1 =p 0 , t 1 =t 0 ) .... end register;

  24. Generation of Transition Relation VHDL program Transition relation: relation between present and next states (R) of the program input d; output t; entity register is Using symbolic simulation: Involves signal p; simulation of the VHDL program with symbols .... as inputs, rather than concrete values process(clk) if(clk'event) Transition relation R(state 0 , state 1 ) p<=d; process(clk) if_then_else(clk 1 ≠clk 0 ,p 1 =d 1 ,p 1 =p 0 ) if(clk'event) ᐱ t<=p; if_then_else(clk 1 ≠clk 0 , t 1 =p 0 , t 1 =t 0 ) .... end register;

  25. Generation of Transition Relation VHDL program Transition relation: relation between present and next states (R) of the program input d; output t; entity register is Using symbolic simulation: Involves signal p; simulation of the VHDL program with symbols .... as inputs, rather than concrete values process(clk) if(clk'event) Transition relation R(state 0 , state 1 ) p<=d; process(clk) if_then_else(clk 1 ≠clk 0 ,p 1 =d 1 ,p 1 =p 0 ) if(clk'event) ᐱ t<=p; if_then_else(clk 1 ≠clk 0 , t 1 =p 0 , t 1 =t 0 ) .... end register;

  26. Bounded Model Checking Check if the property is violated in k (bound) clock cycles Step-1: Find the states reachable in k clock cycles

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend