Handling Complexity in FEV Erik Seligman CS 510, Lecture 6, January 2009.

Slides:



Advertisements
Similar presentations
Copyright © 2009,Intel Corporation. All rights reserved. Auto ECO Flow Development For Functional ECO Using Efficient Error Rectification Method Based.
Advertisements

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.
Clock Domain Crossing (CDC)
Introduction to Formal Equivalence Verification (FEV)
Cut Points On Steroids: Handling Complexity for FPV
Simulation executable (simv)
ECE Synthesis & Verification - Lecture 2 1 ECE 667 Spring 2011 ECE 667 Spring 2011 Synthesis and Verification of Digital Circuits High-Level (Architectural)
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.
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.
Southampton: Oct 99AMULET3i - 1 AMULET3i - asynchronous SoC Steve Furber - n Agenda: AMULET3i Design tools Future problems.
Programming Types of Testing.
Hastings Purify: Fast Detection of Memory Leaks and Access Errors.
CSE241 Formal Verification.1Cichy, UCSD ©2003 CSE241A VLSI Digital Circuits Winter 2003 Recitation 6: Formal Verification.
CS 151 Digital Systems Design Lecture 25 State Reduction and Assignment.
Introductory Comments Regarding Hardware Description Languages.
The Design Process Outline Goal Reading Design Domain Design Flow
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Exceptions in Java Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Logic Design Outline –Logic Design –Schematic Capture –Logic Simulation –Logic Synthesis –Technology Mapping –Logic Verification Goal –Understand logic.
ENGIN112 L25: State Reduction and Assignment October 31, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 25 State Reduction and Assignment.
02/10/06EECS150 Lab Lecture #41 Debugging EECS150 Spring 2006 – Lab Lecture #4 Philip Godoy Greg Gibeling.
Design methodology.
TM Efficient IP Design flow for Low-Power High-Level Synthesis Quick & Accurate Power Analysis and Optimization Flow JAN Asher Berkovitz Yaniv.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
CASTNESS‘11 Computer Architectures and Software Tools for Numerical Embedded Scalable Systems Workshop & School: Roma January 17-18th 2011 Frédéric ROUSSEAU.
Building a Real Workflow Thursday morning, 9:00 am Lauren Michael Research Computing Facilitator University of Wisconsin - Madison.
FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.
Designing For Testability. Incorporate design features that facilitate testing Include features to: –Support test automation at all levels (unit, integration,
COE4OI5 Engineering Design. Copyright S. Shirani 2 Course Outline Design process, design of digital hardware Programmable logic technology Altera’s UP2.
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.
© 2003 Xilinx, Inc. All Rights Reserved For Academic Use Only Xilinx Design Flow FPGA Design Flow Workshop.
1 Data Structures CSCI 132, Spring 2014 Lecture 3 Programming Principles and Life Read Ch. 1.
Modern VLSI Design 4e: Chapter 8 Copyright  2008 Wayne Wolf Topics Testability and architecture. Design methodologies. Multiprocessor system-on-chip.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Topics n Design methodologies.
Seungchan Lee Intelligent Electronic Systems Human and Systems Engineering Department of Electrical and Computer Engineering Software Release and Support.
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
Building a Real Workflow Thursday morning, 9:00 am Lauren Michael Research Computing Facilitator University of Wisconsin - Madison.
1. When things go wrong: how to find SQL error Sveta Smirnova Principle Technical Support Engineer, Oracle.
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
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.
1 COMP541 State Machines – 2 Registers and Counters Montek Singh Feb 11, 2010.
EE694v-Verification-Lect7-1- Verification Plan & Levels of Verification The Verification Plan Yesterdays and today’s design environment Design specification.
The Hashemite University Computer Engineering Department
The single most important skill for a computer programmer is problem solving Problem solving means the ability to formulate problems, think creatively.
Chapter 11 System-Level Verification Issues. The Importance of Verification Verifying at the system level is the last opportunity to find errors before.
Tools - Analyzing your results - Chapter 7 slide 1 Version 1.5 FPGA Tools Course Analyzing your Results.
03/30/031 ECE Digital System Design & Synthesis Lecture Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related.
FEV And Netlists Erik Seligman CS 510, Lecture 5, January 2009.
Equivalence checking Prof Shobha Vasudevan ECE 598SV.
CS 440 Database Management Systems Stored procedures & OR mapping 1.
LECTURE 22: BIG-OH COMPLEXITY CSC 212 – Data Structures.
EECE 320 L8: Combinational Logic design Principles 1Chehab, AUB, 2003 EECE 320 Digital Systems Design Lecture 8: Combinational Logic Design Principles.
Overview Part 1 – Design Procedure Part 2 – Combinational Logic
Compiler Construction (CS-636)
Digital System Verification
Java programming lecture one
Module 1: Getting Started
Topics HDL coding for synthesis. Verilog. VHDL..
FEV’s Greatest Bloopers: False Positives in Formal Equivalence
Verification Plan & Levels of Verification
Research Status of Equivalence Checking at Zhejiang University
Debugging EECS150 Fall Lab Lecture #4 Sarah Swisher
CS334: Logisim program lab6
Presentation transcript:

Handling Complexity in FEV Erik Seligman CS 510, Lecture 6, January 2009

Outline  Complexity Intro & Basics  Hierarchical Comparison  Cut Points  Case Splitting  Cheating

Outline  Complexity Intro & Basics  Hierarchical Comparison  Cut Points  Case Splitting  Cheating

Complexity: Intro & Basics

Complexity = Time or Memory Blowup  Two ways to see complexity Tool crash (hopefully won’t happen) Compare Points reported as ‘Abort’  What does this mean? Logic was too complex to analyze Maybe bad options selected

Tool Solutions  Some tool options can help resolve set compare effort high|ultra|complete –Causes LEC to work harder before giving up analyze datapath [-merge] | analyze multiplier –LEC looks for common datapath structures –Useful if lots of arithmetic operations –Specialized alg if you have a multiplier compare -single –Slow, but concentrates on each point standalone  analyze abort New feature to look at abort point & try to ID good tool options Sloooow though (can run overnight, or abort too!)

Tool Capacity Issues  Monitor LEC process for memory blowup May be root cause of abort or seg fault  Look for options for run on hi-mem server Memory blowup is known FV hazard If you were close, this may be just enough  Also try new “compare –parallel” Uses multiple machines on network May improve memory & runtime

Design Issues: Memories  Memories are complex Usually bbox a memory, verify standalone Conformal supplies special library –LEC is easy with ‘verplex memory primitives’ –Otherwise extremely hard  How are memories FEVed? Inherently transistor-based, not simple gates Need to define common structures for tool

Design Issues: Don’t Cares  Don’t-Care (DC) Space Remember, a DC is an RTL ambiguity –Synthesis has freedom to decide Large DC space makes verification hard –If DCs cause aborts, consider assigning all values  How to diagnose? Look for this compile message –F34: Convert X assignment(s) as don't care(s) –report messages -rule F34 –verbose for exact lines Experiment: set x conversion 0 –gold –Ambiguous (X) cases = 0  false negatives –But experiment useful to see if DCs did cause aborts

Outline  Complexity Intro & Basics  Hierarchical Comparison  Cut Points  Case Splitting  Cheating

Using Hierarchical Verification

Hierarchy Example Simple option: FEV full TOP design Best option if feasible

Hierarchy Example Hierarchical: 3 FEV comparisons TOP.Green, Top.Yellow TOP with Green and Yellow bboxed Are there problems with this approach?

Hierarchy Problem: Constraints Circuit topology  constraints for bboxes What constraints needed in this example?

Hierarchy Problem: Constraints Circuit topology  constraints for bboxes What constraints needed in this example? Green: add pin eq a b Yellow: add pin constraint 0 c TOP: add pin constraint 0 Yellow.d

Hierarchy In Conformal  write hier dofile –constraint Odd but convenient command IDs common hierarchies Writes new dofile, verifying all pieces Generates summary report at end  Tricky when debugging! Need to rerun on hierarchy with error

Generated dofile: excerpts set root module top add pin constraint 0 yellow.d -both set sys mode lec compare report hier_compare data … set root module green add pin eq a b –both …

Challenges of Hierarchical FEV  Synthesis tools can flatten hierarchy May make hierarchical FEV impossible May need to request backend preserve some hierarchy  Mismatching submodule interfaces Extra pins inserted in synthesis Pin name changes May need to use Conformal commands to ignore/map pins

Hierarchy Special Case: Cell Libraries  Should use pre-FEVed library No sense in repeatedly verifying basic flops, latches, ANDs, ORs, etc Be sure lib team is doing low-level FEV!  Check that this is the case Should have.v (or.lib) file defining each cell You should see simple behavioral RTL for cells, not full transistor-level logic clk) q<=d

Outline  Complexity Intro & Basics  Hierarchical Comparison  Cut Points  Case Splitting  Cheating

Cut Points in FEV

What is a cut point?  Verifying big logic cone may be hard Harder in low-frequency designs  Divide logic at points other than states? Hard– synthesis only requires state matching But often some internals correspond too In extreme cases, recode RTL to enable  Cut point = non-state to treat as key point Map & verify just like latches/flops Reduces logic cones being analyzed

Cut Point Example add cut point p1 –gold add cut point p2 –rev add ren rule r1 p1 p2 -gold

Cut Point Problems? Is p1 still a useful cut point?

Cut Point Problems? Is p1 still a useful cut point? Maybe…

Cut Point Problems? Is p1 still a useful cut point? Maybe… Don’t forget about constraint issues too

Outline  Complexity Intro & Basics  Hierarchical Comparison  Cut Points  Case Splitting  Cheating

Case Splitting

What is Case Splitting?  FV is analyzes all cases together Good tool engines may be smarter  What if small inputs activate/deactivate lots of logic? Example: mode bits  Constrain appropriate pins to 1 or 0 Then compare twice Or constrain bits, then 2^n compares

Case Splitting Example Suppose compare of f2 & f4 Aborts, and we want to case-split on f1/f3.

Compare Case #1 First assign const of 0 to flop.

Compare Case #2 Then assign const value of 1. After both cases pass, we are equivalent!

Case splitting in Conformal  Conformal terminology: “partition”  Convenient commands add partition key_point write partition dofile  Be careful! partition points  2^n iterations Poorly chosen points worse than useless!

Outline  Complexity Intro & Basics  Hierarchical Comparison  Cut Points  Case Splitting  Cheating

Last Resorts: Cheating

Simulation  Obvious, defeats point of formal!  But may be useful last resort If small handful of points defying FEV  Be sure you exhausted FEV options! All tool compare/analyze options? Did you try hierarchical verify? Did you try cut points & case splitting? Did you consider recoding RTL to increase cut points and/or hierarchy, or reduce don’t- care space?

Simulation compare in LEC  compare –random Runs simulation vectors Should only run on specific problem points  Not a good solution But better than nothing Probably will get more vectors than GLS –Fast simulation only on problem cone

References / Further Reading  unter/Resources/resources_design/equiv /Dtp_cdnliveemea2006_itayarom.pdf unter/Resources/resources_design/equiv /Dtp_cdnliveemea2006_itayarom.pdf  /na2006/2.4.1/2.4.1_paper.pdf /na2006/2.4.1/2.4.1_paper.pdf  tm tm