Introduction to Formal Equivalence Verification (FEV)

Slides:



Advertisements
Similar presentations
Debugging ACL Scripts.
Advertisements

Copyright © 2009,Intel Corporation. All rights reserved. Auto ECO Flow Development For Functional ECO Using Efficient Error Rectification Method Based.
ADABAS to RDBMS UsingNatQuery. The following session will provide a high-level overview of NatQuerys ability to automatically extract ADABAS data from.
Introduction to Programming using Matlab Session 2 P DuffourJan 2008.
The Design Process, RTL, Netlists, and Verilog
Putting It All Together: Using Formal Verification In Real Life Erik Seligman CS 510, Lecture 19, March 2009.
Handling Complexity in FEV Erik Seligman CS 510, Lecture 6, January 2009.
Clock Domain Crossing (CDC)
Cut Points On Steroids: Handling Complexity for FPV
Introduction to Formal Property Verification (FPV)
Simulation executable (simv)
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Module R2 CS450. Next Week R1 is due next Friday ▫Bring manuals in a binder - make sure to have a cover page with group number, module, and date. You.
Timing Override Verification (TOV) Erik Seligman CS 510, Lecture 18, March 2009.
Electrical and Computer Engineering MIDI Note Number Display UGA Presentation and Demo ECE 353 Lab B.
ECE 551 Digital System Design & Synthesis Lecture 08 The Synthesis Process Constraints and Design Rules High-Level Synthesis Options.
Logic Synthesis – 3 Optimization Ahmed Hemani Sources: Synopsys Documentation.
COMPUTER PROGRAMMING I Essential Standard 5.02 Understand Breakpoint, Watch Window, and Try And Catch to Find Errors.
Microsoft Word 2010 Lesson 1: Introduction to Word.
CSE241 Formal Verification.1Cichy, UCSD ©2003 CSE241A VLSI Digital Circuits Winter 2003 Recitation 6: Formal Verification.
Getting Started with Layout Compiled by Ryan Johnson May 1, 2002  Open Orcad Capture under Engineering Software  Under FILE, choose NEW, PROJECT  The.
Lecture Roger Sutton CO331 Visual programming 15: Debugging 1.
Functions.
The IDE (Integrated Development Environment) provides a DEBUGGER for locating and correcting errors in program logic (logic errors not syntax errors) The.
Lec6 P 1 CP2030 Visual Basic For C++ programmers Copyright © University of Wolverhampton CP2030 VBFC Lecture 6 Back To Index v Procedures and Parameters.
Introduction. 2 What Is SmartFlow? SmartFlow is the first application to test QoS and analyze the performance and behavior of the new breed of policy-based.
TELL1 VHDL Framework By Aditya Mittal. Scenario Block Diagram
SiliconAid Solutions, Inc. Confidential SAJE SiliconAid JTAG Environment Overview – Very Short.
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
Guide To UNIX Using Linux Third Edition
“GENERIC SCRIPT” Everything can be automated, even automation process itself. “GENERIC SCRIPT” Everything can be automated, even automation process itself.
Chapter Seven Advanced Shell Programming. 2 Lesson A Developing a Fully Featured Program.
Advanced Digital Circuits ECET 146 Week 3 Professor Iskandar Hack ET 221B,
Lecture 1: Introduction Lecture series based on the text: Essential MATLAB for Engineers and Scientists By Hahn & Valentine
Advanced Shell Programming. 2 Objectives Use techniques to ensure a script is employing the correct shell Set the default shell Configure Bash login and.
TM Efficient IP Design flow for Low-Power High-Level Synthesis Quick & Accurate Power Analysis and Optimization Flow JAN Asher Berkovitz Yaniv.
StateCAD FPGA Design Workshop. For Academic Use Only Presentation Name 2 Objectives After completing this module, you will be able to:  Describe how.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
ELEC 5270/6270 Spring 2013 Low-Power Design of Electronic Circuits Tools for Power Analysis
Command Interpreter Window (CIW)
® Microsoft Office 2010 Access Tutorial 3 Maintaining and Querying a Database.
The Verification Gap Verification determines whether a design satisfies its requirements (a.k.a. its specification): Does it satisfy its functional requirements?
FORMAL VERIFICATION OF ADVANCED SYNTHESIS OPTIMIZATIONS Anant Kumar Jain Pradish Mathews Mike Mahar.
Synopsys Custom Designer Tutorial for a chip integration using the University of Utah Standard Cell Libraries In ON Semiconductor 0.5u C5 CMOS Version.
SESSION 3.1 This section covers using the query window in design view to create a query and sorting & filtering data while in a datasheet view. Microsoft.
Programmable Logic Training Course HDL Editor
ECE 545 Project 2 Specification. Project 2 (15 points) – due Tuesday, December 19, noon Application: cryptography OR digital signal processing optimized.
Spreadsheet Engineering Builders use blueprints or plans – Without plans structures will fail to be effective Advanced planning in any sort of design can.
Tools - Design Manager - Chapter 6 slide 1 Version 1.5 FPGA Tools Training Class Design Manager.
Innovation Intelligence ® 1 Chapter 4: Using TCL to Control the HyperMesh Session.
February 22-25, 2010 Designers Work Less with Quality Formal Equivalence Checking by Orly Cohen, Moran Gordon, Michael Lifshits, Alexander Nadel, and Vadim.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
Excel part 5 Working with Excel Tables, PivotTables, and PivotCharts.
Lecture 7 Conditional Scripting and Importing/Exporting.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Chapter – 8 Software Tools.
FEV And Netlists Erik Seligman CS 510, Lecture 5, January 2009.
Equivalence checking Prof Shobha Vasudevan ECE 598SV.
CIS-NG CASREP Information System Next Generation Shawn Baugh Amy Ramirez Amy Lee Alex Sanin Sam Avanessians.
Part 1 Learning Objectives To understand that variables are a temporary named location to store data and that programmers work with different data types.
EMT 351/4 DIGITAL IC DESIGN Week # 1 EDA & HDL.
ASIC Design Methodology
M1.5 Foundation Tools Xilinx XC9500/XL CPLD
Synthesis for Verification
SoCKs Flow: Here, There, and Back Again
Timing Analysis 11/21/2018.
FEV’s Greatest Bloopers: False Positives in Formal Equivalence
ChipScope Pro Software
Xilinx CPLD Fitter Advanced Optimization
ChipScope Pro Software
Presentation transcript:

Introduction to Formal Equivalence Verification (FEV) Erik Seligman CS 510, Lecture 4, January 2009

Goals Introduce basic concepts of FEV Enable you to try FEV using Cadence Conformal Examine some corner cases

FEV: The Basic Concepts

What Is FEV? Best-established form of FV Other names: Equivalence Checking Answers: Are two models equivalent?

Main Uses of FEV RTL-Netlist equivalence Essential part of design flows Also leveraged for late hand edits (ECOs) Verifying quick changes to a model Fast & easy if model almost the same

Types of FEV Combinatorial / Synchronous Sequential Models must be (mostly) state-matching Very efficient due to no time calculations Works very well for synthesized netlists Most synthesis tools expect this Cadence Conformal is leader Others: Synopsys Formality, Magma Quartz Sequential Allows more abstract RTL, or HLM-RTL FEV More flexibility for late netlist timing edits Much more risk/expense Few commercial tools (Calypto, NEC)

State-Matching FEV

Are these equivalent? a f1 f2 b out ck a f3 f4 b out ck

Inputs?- Match. Outputs? Match. States? f1->f3, f2->f4 Step 1: Map key points a f1 f2 b out f3 f4 ck a f3 f4 b out ck Inputs?- Match. Outputs? Match. States? f1->f3, f2->f4

Step 2: Build Equations a f1 f2 b out f3 f4 ck a f3 f4 b out ck f3 = b, f4 = f3, out = !(a&f4) f3=b, f4 = !(!f3), out = !a | !f4

Step 3: Compare Equations f1 f2 b out f3 f4 ck a f3 f4 b out ck f3 = b b EQUAL f4 = f3 !(!f3) EQUAL out = !(a&f4) !a | !f4 EQUAL

What if there was an error? b out f3 f4 ck a f3 f4 b out ck f3 = b b EQUAL f4 = f3 !f3 DIFFER out = !(a&f4) !a | !f4 EQUAL

Debugging: Where To Look Fanin cones (“support set”) Different fanin  major issue Set of counterexample values If only specific values cause cex, provides hint of root cause “Intelligent” hints from tools Is an overall inversion suspected? Identify similar areas of logic within cone? Isolate error

Debug Schematic View 1 1 f1 f2 f3 f4 ck 1 1 f3 f4 ck f3 f4 ck Combinational  other logic irrelevant Good tools provide annotated cex value

Introduction To Conformal

Conformal Terminology Gold = golden model (often RTL) Rev = revised model (often netlist) Many commands have –gold/-rev option Key Point = points to map Basic ones: primary inputs/outputs, states Others: blackboxes, dangling (Z) nodes, … Can refer to by name or integer ID Support Set = fanin cone

Conformal Modes Setup Mode: initial state LEC Mode: checking state Can load models, assign renaming rules Can set various global options Return to this mode: “set sys mode setup” LEC Mode: checking state Transition with “set sys mode lec” Automatically tries to map key points Models have been loaded, can compare

Conformal Usage Model Based on command console Startup with “LEC –nogui” Capable of taking general tcl scripts “help” available for any command Example: “help read design” Full manuals in /pkgs/cadence6/CONFRML71/doc “set log file <filename>” to start logging Always do this for homework! “set gui on” / “set gui off” can be done any time “dofile <filename>.do” to execute script Script = any set of console commands

Mapping Key Points LEC has good automapper View mapping as “renaming” Can guess many mappings But sometimes fails View mapping as “renaming” Temporarily rename RTL sig to match netlist “add renaming rule” to specify mappings Or “add mapped point” in LEC mode

Skeleton LEC Dofile set log file lec.log –replace read design –systemverilog –gold –f myrtl.filelist read design –systemverilog –rev –f mynetlist.filelist add renaming rule r1 foo bar –gold set sys mode lec report unmapped points add compare points –all compare report compare data

Skeleton LEC Dofile set log file lec.log –replace read design –systemverilog –gold –f myrtl.filelist read design –systemverilog –rev –f mynetlist.filelist add renaming rule r1 foo bar –gold set sys mode lec report unmapped points add compare points –all compare report compare data

Skeleton LEC Dofile set log file lec.log –replace read design –systemverilog –gold –f myrtl.filelist read design –systemverilog –rev –f mynetlist.filelist add renaming rule r1 foo bar –gold set sys mode lec report unmapped points add compare points –all compare report compare data

Skeleton LEC Dofile set log file lec.log –replace read design –systemverilog –gold –f myrtl.filelist read design –systemverilog –rev –f mynetlist.filelist add renaming rule r1 foo bar –gold set sys mode lec report unmapped points add compare points –all compare report compare data

Skeleton LEC Dofile set log file lec.log –replace read design –systemverilog –gold –f myrtl.filelist read design –systemverilog –rev –f mynetlist.filelist add renaming rule r1 foo bar –gold set sys mode lec report unmapped points add compare points –all compare report compare data

Skeleton LEC Dofile set log file lec.log –replace read design –systemverilog –gold –f myrtl.filelist read design –systemverilog –rev –f mynetlist.filelist add renaming rule r1 foo bar –gold set sys mode lec report unmapped points add compare points –all compare report compare data

Skeleton LEC Dofile set log file lec.log –replace read design –systemverilog –gold –f myrtl.filelist read design –systemverilog –rev –f mynetlist.filelist add renaming rule r1 foo bar –gold set sys mode lec report unmapped points add compare points –all compare report compare data

Debugging Mismatches Debug commands available in console “diagnose <point>”: Display basic info But easier to debug in gui Report->Compare Data to see all points Red dots indicate mismatches Right-click at mismatch point, and “Diagnose” Gives support set, cex values, and LEC’s hints From Diagnose window can launch sch view

Report -> Compare Data

Example: Fanin Cone

Example: Inversion

Example: Messy Error

Schematic View

Minor exceptions to state-matching Useful if flops/latches don’t map Model “Flattening” Minor exceptions to state-matching Useful if flops/latches don’t map

Are These Equal? rst d rst d DLAT

Are These Equal? rst d rst d DLAT set flatten model –dff_to_dlat_zero

Are These Equal? rst ck rst DLAT ck

Are These Equal? rst ck rst DLAT ck set flatten model –dff_to_dlat_feedback

Are These Equal? ck

Are These Equal? ck set flatten model –seq_constant

Are These Equal? d ck d DLAT DLAT ck

Are These Equal? d ck d DLAT DLAT ck set flatten model –latch_fold

Are These Equal? DLAT

Are These Equal? DLAT set flatten model –latch_transparent

Model Flattening Tool modified cases on previous slides Internally changes view of logic Only on request, not automatic May cause mismatches rather than curing! Often useful if key point imbalance In Conformal: “set flatten model…” Many options, not just ones on slides Can also use “remodel …” on single point

FEV Constraints

Are these equivalent? a f1 f2 b out ck f3 f4 b out ck

Are these equivalent? a f1 f2 b out ck f3 f4 b out ck No! BUT– What if ‘a’ is always 1?

FEV: Why Constraints? RTL is often very general `ifdef CHIP_VERSION_1 `define A 1 `else `define A 2 `endif Design reuse: irrelevant RTL remains assign A = 1’b1; … if (!A) …

Why Do Contraints Matter? Good synthesis tools take advantage Assume constants to reduce size/scope Don’t synthesize masked-out RTL Allow out-of-band constraint specs in control files FEV must recognize constraints Otherwise get mismatches No effort *if* constraints visible at FEV level But may be only in wrapper RTL Or inside analog blackbox Or could be due to software / outside specs If not visible to tool, may need to specify add pin constraint 0 /foo/bar

Some References http://en.wikipedia.org/wiki/Formal_equivalence_checking http://cad-for-vlsi.blogspot.com/2007/03/111-art-of-equivalence-checking.html Full Conformal docs at /pkgs/cadence6/CONFRML71/doc