DCC Grenoble April 6, 2002 Unifying Traditional and Formal Verification Through Property Specification Designing Correct Circuits 2002 Harry Foster Verplex.

Slides:



Advertisements
Similar presentations
© Copyright 2013 Xilinx. How to Kill 4 Birds with 1 Stone: Using Formal Verification to Validate Legal Configurations, Find Design Bugs, and Improve Testbench.
Advertisements

Putting It All Together: Using Formal Verification In Real Life Erik Seligman CS 510, Lecture 19, March 2009.
Simulation executable (simv)
Verilog Overview. University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Combinational Logic.
Systematic method for capturing “design intent” of Clock Domain Crossing (CDC) logic in constraints Ramesh Rajagopalan Cisco Systems.
Automated Method Eliminates X Bugs in RTL and Gates Kai-hui Chang, Yen-ting Liu and Chris Browy.
Timing Override Verification (TOV) Erik Seligman CS 510, Lecture 18, March 2009.
ECE 551 Digital System Design & Synthesis Lecture 08 The Synthesis Process Constraints and Design Rules High-Level Synthesis Options.
Slide 1 7. Verilog: Combinational always statements. VHDL: Combinational Processes: To avoid (I.E. DO NOT What in your HDL code?) Cases that generate Synthesis.
ECE 551 Digital System Design & Synthesis Lecture 09 Synthesis of Common Verilog Constructs.
Leveraging Assertion Based Verification by using Magellan Michal Cayzer.
ELEN 468 Lecture 151 ELEN 468 Advanced Logic Design Lecture 15 Synthesis of Language Construct I.
1 Lecture 1: Verilog HDL Introduction. 2 What is Verilog HDL? Verilog Hardware Description Language(HDL)? –A high-level computer language can model, represent.
Design For Verification Synopsys Inc, April 2003.
1 Assertion Based Verification 2 The Design and Verification Gap  The number of transistors on a chip increases approximately 58% per year, according.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
ELEN 468 Lecture 91 ELEN 468 Advanced Logic Design Lecture 9 Behavioral Descriptions III.
Verilog Sequential Circuits Ibrahim Korpeoglu. Verilog can be used to describe storage elements and sequential circuits as well. So far continuous assignment.
Assertions in OpenVera Assertions check for the occurrence of sequences during simulation Sequence is an ordered (maybe timed) series of boolean events.
ECEN ECEN475 Introduction to VLSI System Design Verilog HDL.
University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Churning the Most Out of IP-XACT for Superior Design Quality Ayon Dey Lead Engineer, TI Anshuman Nayak Senior Product Director, Atrenta Samantak Chakrabarti.
VerificationTechniques for Macro Blocks (IP) Overview Inspection as Verification Adversarial Testing Testbench Design Timing Verification.
Overview Logistics Last lecture Today HW5 due today
ECE 551 Digital System Design & Synthesis Lecture 11 Verilog Design for Synthesis.
TM Efficient IP Design flow for Low-Power High-Level Synthesis Quick & Accurate Power Analysis and Optimization Flow JAN Asher Berkovitz Yaniv.
Design Constraint-Based Verification Carl Pixley Advanced Technology Group Synopsys, Inc. John Havlicek, Ken Albin Motorola Inc., Austin.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
CADENCE CONFIDENTIAL 1CADENCE DESIGN SYSTEMS, INC. Cadence Formal Verification 2003 Beijing International Microelectronics Symposium C. Michael Chang Vice.
Synthesis Presented by: Ms. Sangeeta L. Mahaddalkar ME(Microelectronics) Sem II Subject: Subject:ASIC Design and FPGA.
Some Course Info Jean-Michel Chabloz. Main idea This is a course on writing efficient testbenches Very lab-centric course: –You are supposed to learn.
Using Formal Verification to Exhaustively Verify SoC Assemblies by Mark Handover Kenny Ranerup Applications Engineer ASIC Consultant Mentor Graphics Corp.
SoC Verification HW #2 TA: Wei-Ting Tu Assignment: 04/12/06
B10010 Behavioral Verilog ENGR xD52 Eric VanWyk Fall 2012.
Chapter 11: System Design Methodology Digital System Designs and Practices Using Verilog HDL and 2008, John Wiley11-1 Ders 8: FSM Gerçekleme ve.
The Verification Gap Verification determines whether a design satisfies its requirements (a.k.a. its specification): Does it satisfy its functional requirements?
September 3, 2009L02-1http://csg.csail.mit.edu/korea Introduction to Bluespec: A new methodology for designing Hardware Arvind Computer Science & Artificial.
1 Hybrid-Formal Coverage Convergence Dan Benua Synopsys Verification Group January 18, 2010.
ECE 551 Digital Design And Synthesis
Introduction to OVL (Open Verification Library) Alexander Gnusin.
Slide 1 6. VHDL/Verilog Behavioral Description. Slide 2 Verilog for Synthesis: Behavioral description Instead of instantiating components, describe them.
Synthesis Of Fault Tolerant Circuits For FSMs & RAMs Rajiv Garg Pradish Mathews Darren Zacher.
Design Verification Class Presentation of Course : ASIC CMOS System Design Presented By: Majid Nabi.
Chuck Benz ASIC & FPGA Design csrGen: Automated CSRs for ASIC/FPGA Processor Interfaces Chuck Benz Chuck Benz ASIC & FPGA Design
1 CSE-308 Digital System Design (DSD) N-W.F.P. University of Engineering & Technology, Peshawar.
March, 2007Intro-1http://csg.csail.mit.edu/arvind Design methods to facilitate rapid growth of SoCs Arvind Computer Science & Artificial Intelligence Lab.
Verilog for Synthesis Ing. Pullini Antonio
An Overview of Hardware Design Methodology Ian Mitchelle De Vera.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
IMPLEMENTATION OF MIPS 64 WITH VERILOG HARDWARE DESIGN LANGUAGE BY PRAMOD MENON CET520 S’03.
ELEN 468 Lecture 131 ELEN 468 Advanced Logic Design Lecture 13 Synthesis of Combinational Logic II.
Finite State Machine (FSM) Nattha Jindapetch December 2008.
Verification & Validation By: Amir Masoud Gharehbaghi
M.Mohajjel. Objectives Learn How to write synthesizable Verilog code Common mistakes and how to avoid them What is synthesized for what we code Digital.
Chapter 11: System Design Methodology Digital System Designs and Practices Using Verilog HDL and 2008, John Wiley11-1 Chapter 11: System Design.
1 University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
1 Lecture 1: Verilog HDL Introduction. 2 What is Verilog HDL? Verilog Hardware Description Language(HDL)? –A high-level computer language can model, represent.
Overview Logistics Last lecture Today HW5 due today
Hardware Description Languages: Verilog
ELEN 468 Advanced Logic Design
Digital System Verification
Hardware Description Languages: Verilog
Assertions An assertion is a statement about the design’s intended behavior Assertions can be written in a hardware description language (HDL) Assertions.
Fast Track Formal Verification Signoff
LPSAT: A Unified Approach to RTL Satisfiability
FSM MODELING MOORE FSM MELAY FSM. Introduction to DIGITAL CIRCUITS MODELING & VERIFICATION using VERILOG [Part-2]
Win with HDL Slide 4 System Level Design
Presentation transcript:

DCC Grenoble April 6, 2002 Unifying Traditional and Formal Verification Through Property Specification Designing Correct Circuits 2002 Harry Foster Verplex Systems Designing Correct Circuits 2002 Harry Foster Verplex Systems

Harry Foster DCC Grenoble April 6, 2002 Agenda u Hewlett-Packard and Formal Verification u Enhancing Functional Verification u Enhancing Equivalence Checking u Results u Thoughts for Research u Conclusion u Hewlett-Packard and Formal Verification u Enhancing Functional Verification u Enhancing Equivalence Checking u Results u Thoughts for Research u Conclusion

Harry Foster DCC Grenoble April 6, 2002 Formal Verification at HP u In 1999, follow-on project to the Superdome begins u Challenges: l Management wanted significant-measurable improvement in the overall verification process l Resources were not allocated for a team of formal experts l Desire a more strategic solution u Success depended on close designer involvement u Needed a way of adding properties to the RTL design that would benefit both simulation and formal verification u In 1999, follow-on project to the Superdome begins u Challenges: l Management wanted significant-measurable improvement in the overall verification process l Resources were not allocated for a team of formal experts l Desire a more strategic solution u Success depended on close designer involvement u Needed a way of adding properties to the RTL design that would benefit both simulation and formal verification

Harry Foster DCC Grenoble April 6, 2002 Enhancing Functional Verification Monitor-based specification u Monitor-Based Formal Specification of PCI [Shinmizu et al. FMCAD 2000] u A Specification Methodology by a Collection of Compact Properties as Applied to the Intel Itanium Processor Bus Protocol [Shimizu et al. CHARME 2001] Monitors generated from specification u FoCs-Automatic Generation of Simulation Checkers from Formal Specification [Abarbanel, et al. CAV 2000]. Specification driven simulation u Modeling Design Constraints and Biasing in Simulation Using BDDs [Yuan et al. ICCAD 1999] Monitor-based specification u Monitor-Based Formal Specification of PCI [Shinmizu et al. FMCAD 2000] u A Specification Methodology by a Collection of Compact Properties as Applied to the Intel Itanium Processor Bus Protocol [Shimizu et al. CHARME 2001] Monitors generated from specification u FoCs-Automatic Generation of Simulation Checkers from Formal Specification [Abarbanel, et al. CAV 2000]. Specification driven simulation u Modeling Design Constraints and Biasing in Simulation Using BDDs [Yuan et al. ICCAD 1999]

Harry Foster DCC Grenoble April 6, 2002 Enhancing Functional Verification HP Methodology Objectives: u Need a simple and systematic method of expressing interface properties for IP. u Same mechanism desired for internal properties. u Reduce cost for tool evaluations. u Need to re-target properties to multiple internal and commercial tools. u Desired low-cost solution. u Result: monitor-based approach to specifying design properties and constraints—Open Verification Library (OVL) HP Methodology Objectives: u Need a simple and systematic method of expressing interface properties for IP. u Same mechanism desired for internal properties. u Reduce cost for tool evaluations. u Need to re-target properties to multiple internal and commercial tools. u Desired low-cost solution. u Result: monitor-based approach to specifying design properties and constraints—Open Verification Library (OVL)

Harry Foster DCC Grenoble April 6, 2002 module assert_never ( clk, reset_ input clk, reset_n, test_expr; parameter severity_level = 0; parameter msg="ASSERT NEVER VIOLATION"; // ASSERT: PRAGMA HERE //synopsys translate_off `ifdef ASSERT_ON integer error_count; initial error_count = 0; clk) begin `ifdef ASSERT_GLOBAL_RESET if (`ASSERT_GLOBAL_RESET != 1'b0) begin `else if (reset_n != 0) begin // active low reset_n `endif if (test_expr == 1'b1) begin error_count = error_count + 1; `ifdef ASSERT_MAX_REPORT_ERROR if (error_count<=`ASSERT_MAX_REPORT_ERROR) `endif $display("%s : severity %0d : time %0t : %m", msg, severity_level, $time); if (severity_level == 0) $finish; end `endif //synopsys translate_on endmodule RTL Design RTL Design Assertion Monitor Library Assertion Monitor Library assert_never underflow ( clk, reset_n, (q_valid==1’b1) && (q_underflow==1’b1)); Assertion Monitor Library

Harry Foster DCC Grenoble April 6, 2002 `ifdef ASSERT_ON //synopsys translate_off wire p0_wr_p1_wr_broken; wire p0_wr_p0_rd_broken; // Check that the conflict and bypass logic is working correctly. assign p0_wr_p1_wr_broken = (mqc_p0_wr_addr == mqc_p1_wr_addr) & ( (mqc_p0_wr[0] & mqc_p1_wr[0]) | (mqc_p0_wr[1] & mqc_p1_wr[1]) ); assign p0_wr_p0_rd_broken = (mqc_p0_wr_addr == mqc_p0_rd_addr) & ( (mqc_p0_wr[0] & (p0_byp_even != 2'b01)) | (mqc_p0_wr[1] & (p0_byp_odd != 2'b01)) ); // Check that the conflict and bypass logic is working correctly. assert_never p0_wr_p1_wr (clk, reset_n, p0_wr_p1_wr_broken ); assert_never p0_wr_p0_rd ( clk, reset_n, p0_wr_p0_rd_broken ); //synopsys translate_on `endif Enhancing Functional Verification

Harry Foster DCC Grenoble April 6, 2002 `ifdef ASSERT_ON wire event1 = (pdx_core_qpdxc_piobp_data_valid & (qpdxd_data[15:12] == `XPTYPE_PIOB4) & (pdx_core_qpdxd_data[3:0] == `XTTYPE_WR_SHORT8) & (qpdxd_data[81:67] == `KPDX_BLOCK_ADDR) & (pdx_core_qpdxd_data[81:67] == `KPDX_FUNC_ID)); wire event2 = (gfc_sync_ff); wire event3 = ((rpdx_pi0_valid | pdx_core_rpdx_pi0_valid) & (rpdx_pdx_data[15:12] == `XPTYPE_PIOB2) & (pdx_core_rpdx_pdx_data[3:0] == `XTTYPE_WRITE_DONE) & (qpdxd_data[81:67] == `KPDX_BLOCK_ADDR) & (pdx_core_qpdxd_data[81:67] == `KPDX_FUNC_ID)); `endif assert_cycle_sequence #(0, 5) seq0 (clk, rst_n, {event1, 1, 1, event2, event3}); Enhancing Functional Verification

Harry Foster DCC Grenoble April 6, 2002 ASSERT_FRAME SYNOPSIS assert_frame #(severity_level, min, max) inst ( ck, start_event, check_expr); min time 0 start_event check_event max req ack width Enhancing Functional Verification assert_frame #(0, 3, 7) req_ack ( ck, req, ack);

Harry Foster DCC Grenoble April 6, 2002 module fifo (clk, fifo_clr_n, fifo_reset_n, push, pop, data_in, data_out); parameter fifo_width = `FIFO_WIDTH; parameter fifo_depth = `FIFO_DEPTH; parameter fifo_cntr_w = `FIFO_CNTR_W; input clk, fifo_clr_n, fifo_reset_n, push, pop; input [fifo_width-1:0] data_in; output [fifo_width-1:0] data_out; wire [fifo_width-1:0] data_out; reg [fifo_width-1:0] fifo[fifo_depth-1:0]; reg [fifo_cntr_w-1:0] cnt; // count items in FIFO... // RTL FIFO Code Here... ‘ifdef ASSERT_ON // OVL Assert that the FIFO cannot overflow assert_never no_overflow (clk,(fifo_reset_n & fifo_clr_n), ({push,pop}==2'b10 && cnt==fifo_depth)); // OVL Assert that the FIFO cannot underflow assert_never no_underflow (clk,(fifo_reset_n & fifo_clr_n), ({push,pop}==2'b01 && cnt==0)); ‘endif endmodule Enhancing Functional Verification

Harry Foster DCC Grenoble April 6, 2002  Studies were on simulation-based assertion checking  Lack systematic assertion methodology  Specify Once then reuse assertions seamlessly between simulation and formal and semi-formal verification Percentage of bugs detected using assertion monitors. Kantrowitz and Noack [DAC 1996] Taylor et at. [DAC 1998] Assertion Monitors34% Cache Coherency Checkers 9% Register File Trace Compare 8% Memory State Compare 7% End-of-Run State Compare 6% PC Trace Compare 4% Self-Checking Test 11% Simulation Output Inspection 7% Simulation hang 6% Other 8% Assertion Monitors 25% Register Miscompare 22% Simulation "No Progress” 15% PC Miscompare14% Memory State Miscompare 8% Manual Inspection 6% Self-Checking Test 5% Cache Coherency Check 3% SAVES Check 2% Results

Harry Foster DCC Grenoble April 6, 2002 Results u 4300 OVL assertion monitors added to a 10M gate ASIC u Reach stable model quicker than previous method u Bug report open rate increased between projects u Bug report close rate decreased between projects u 85% of bugs in simulation found using assertions u Turn random on sooner u 4300 OVL assertion monitors added to a 10M gate ASIC u Reach stable model quicker than previous method u Bug report open rate increased between projects u Bug report close rate decreased between projects u 85% of bugs in simulation found using assertions u Turn random on sooner Without Assertions With assertions 200,000 CPU hours50,000 CPU hours simulation timeline Bugs Found

Harry Foster DCC Grenoble April 6, 2002 Enhancing Functional Verification u One super-block was identified for formal and semi-formal. u Worked close with engineers to develop good constraint for partitioned blocks. u Internal tool operation and debug issues still difficult. u Demonstrated that a methodology could be construct cheaply benefiting traditional verification while providing a path to FV. u One super-block was identified for formal and semi-formal. u Worked close with engineers to develop good constraint for partitioned blocks. u Internal tool operation and debug issues still difficult. u Demonstrated that a methodology could be construct cheaply benefiting traditional verification while providing a path to FV.

Harry Foster DCC Grenoble April 6, 2002 u Two aspects of equivalence require validation l Logical consistency l Semantic consistency u Two aspects of equivalence require validation l Logical consistency l Semantic consistency GoldenRTL FinalNetlist Enhancing Functional Verification

Harry Foster DCC Grenoble April 6, 2002 What is Semantic Inconsistency? uRTL design simulates differently than the gate-level model. uYet, the two models are logically equivalence! uWhat causes semantic inconsistency? l Misuse of X assignments in the RTL (optimistic behavior) l Misuse of synthesis full_case and parallel_case pragmas l Range overflow in variable indexing. uWhat’s the problem? Functional bugs missed in the RTL, requires gate-level simulation, bug usually found in silicon!

Harry Foster DCC Grenoble April 6, 2002 module mux (a,b,s,q); output q; input a, b; input [1:0] s; reg q; or b or s) begin case (s) //synopsys full_case 2’b01: q = b; 2’b10: q = a; endcase end endmodule X-state Optimism... clk) begin if (rst) s = 2’b0; else begin case (sel) 2’b01: s = 2’b10; 2’b10: s = 2’b01; default: s = 2’bx; endcase end... a q s[0] 0 1s[1] 10b XXb 10b

Harry Foster DCC Grenoble April 6, 2002 module encoder (y, z, a, b); output y, z; input [1:0] a, b; reg y, z; or b) begin {y, z} = 2'b00; {y, z} = 2'b00; casez ({a, b}) casez ({a, b}) 4’b11??: z = 1'b1; 4’b11??: z = 1'b1; 4’b??11: y = 1'b1; 4’b??11: y = 1'b1; endcase endcaseendendmodule Parallel Case Semantic Inconsistency - Problem Based on Bening and Foster 2001 // parallel_case Priority encoder a[0] a[1] b[0] b[1] z y b[1:0] RTL: y a[1:0] Gate: y y z a[0] a[1] b[0] b[1] Synthesized gate

Harry Foster DCC Grenoble April 6, 2002 assert_never a_and_b (clk, rst_n, (a==2’b11 & b==2’b11)); uIP picked up from other lab contained both X assignments and pragmas (Bad Stuff!) uAdded in assertions for IP pick up from other lab uObviously, X assignment and pragma safe usage properties lends itself to automatic extraction from the RTL Enhancing Functional Verification

Harry Foster DCC Grenoble April 6, 2002 Thoughts for Research u Coverage associated with formal proofs – e.g., formal fault models – particularly related to bounded and limited cycle proofs

Harry Foster DCC Grenoble April 6, 2002 Conclusion u Successful integration of formal into today’s design flow requires a clear ROI. u Work required to specify properties and constraints must be leveraged seamlessly between traditional and formal. u Gain for the pain clearly demonstrated, and designers willing to participate. u Equivalence checking (specifically related to verifying semantic consistency) can benefit from property specification and verification. u Successful integration of formal into today’s design flow requires a clear ROI. u Work required to specify properties and constraints must be leveraged seamlessly between traditional and formal. u Gain for the pain clearly demonstrated, and designers willing to participate. u Equivalence checking (specifically related to verifying semantic consistency) can benefit from property specification and verification.