Design for Verification in System-level Models and RTL Anmol Mathur Venkat Krishnaswamy Calypto Design Systems, Inc.

Slides:



Advertisements
Similar presentations
© 2003 Xilinx, Inc. All Rights Reserved Course Wrap Up DSP Design Flow.
Advertisements

ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
TIE Extensions for Cryptographic Acceleration Charles-Henri Gros Alan Keefer Ankur Singla.
Give qualifications of instructors: DAP
Presenter: PCLee VLSI Design, Automatic and Test, (VLSI-TSA-DAT).
Implementation Approaches with FPGAs Compile-time reconfiguration (CTR) CTR is a static implementation strategy where each application consists of one.
1 Architectural Complexity: Opening the Black Box Methods for Exposing Internal Functionality of Complex Single and Multiple Processor Systems EECC-756.
© 2003 Xilinx, Inc. All Rights Reserved Looking Under the Hood.
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
10.2 Characteristics of Computer Memory RAM provides random access Most RAM is volatile.
The Design Process Outline Goal Reading Design Domain Design Flow
System Level Design: Orthogonalization of Concerns and Platform- Based Design K. Keutzer, S. Malik, R. Newton, J. Rabaey, and A. Sangiovanni-Vincentelli.
1 HW/SW Partitioning Embedded Systems Design. 2 Hardware/Software Codesign “Exploration of the system design space formed by combinations of hardware.
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
Energy Evaluation Methodology for Platform Based System-On- Chip Design Hildingsson, K.; Arslan, T.; Erdogan, A.T.; VLSI, Proceedings. IEEE Computer.
Copyright  1999 Daniel D. Gajski IP – Based Design Methodology Daniel D. Gajski University of California
Chapter 4 Processor Technology and Architecture. Chapter goals Describe CPU instruction and execution cycles Explain how primitive CPU instructions are.
State Machines Timing Computer Bus Computer Performance Instruction Set Architectures RISC / CISC Machines.
Fundamentals of Simulation-Based Verification 1.Structure of a Testbench - stimulus, checkers, etc. 2.Observation and Assertions - automatic checking of.
Transaction Level Modeling Definitions and Approximations Trevor Meyerowitz EE290A Presentation May 12, 2005.
Educational Computer Architecture Experimentation Tool Dr. Abdelhafid Bouhraoua.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Kathy Grimes. Signals Electrical Mechanical Acoustic Most real-world signals are Analog – they vary continuously over time Many Limitations with Analog.
Design Synopsys System Verilog API Donations to Accellera João Geada.
© 2011 Xilinx, Inc. All Rights Reserved Intro to System Generator This material exempt per Department of Commerce license exception TSU.
VerificationTechniques for Macro Blocks (IP) Overview Inspection as Verification Adversarial Testing Testbench Design Timing Verification.
1 Instant replay  The semester was split into roughly four parts. —The 1st quarter covered instruction set architectures—the connection between software.
Role of Standards in TLM driven D&V Methodology
Language Evaluation Criteria
- 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”
1 Chapter 2. The System-on-a-Chip Design Process Canonical SoC Design System design flow The Specification Problem System design.
TM Efficient IP Design flow for Low-Power High-Level Synthesis Quick & Accurate Power Analysis and Optimization Flow JAN Asher Berkovitz Yaniv.
EECE **** Embedded System Design
Towards A C++ based Design Methodology Facilitating Sequential Equivalence Checking Venkat Krishnaswamy, Calypto Design Systems, Inc. & Philippe Georgelin,
Reporter: PCLee. Assertions in silicon help post-silicon debug by providing observability of internal properties within a system which are.
IT253: Computer Organization Lecture 4: Instruction Set Architecture Tonga Institute of Higher Education.
1CADENCE DESIGN SYSTEMS, INC. Cadence Proposed Transaction Level Interface Enhancements for SCE-MI SEPTEMBER 11, 2003.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
Extreme Makeover for EDA Industry
1 Integration Verification: Re-Create or Re-Use? Nick Gatherer Trident Digital Systems.
A New Method For Developing IBIS-AMI Models
Section 10: Advanced Topics 1 M. Balakrishnan Dept. of Comp. Sci. & Engg. I.I.T. Delhi.
HW/SW PARTITIONING OF FLOATING POINT SOFTWARE APPLICATIONS TO FIXED - POINTED COPROCESSOR CIRCUITS - Nalini Kumar Gaurav Chitroda Komal Kasat.
1 H ardware D escription L anguages Modeling Digital Systems.
High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.
System Design with CoWare N2C - Overview. 2 Agenda q Overview –CoWare background and focus –Understanding current design flows –CoWare technology overview.
High Performance Embedded Computing © 2007 Elsevier Chapter 1, part 2: Embedded Computing High Performance Embedded Computing Wayne Wolf.
SystemC and Levels of System Abstraction: Part I.
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
ESL and High-level Design: Who Cares? Anmol Mathur CTO and co-founder, Calypto Design Systems.
ECE 353 Lab 1: Cache Simulation. Purpose Introduce C programming by means of a simple example Reinforce your knowledge of set associative caches.
Fast Simulation Techniques for Design Space Exploration Daniel Knorreck, Ludovic Apvrille, Renaud Pacalet
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
1 IMEC / KHBO June 2004 Micro-electronics SystemC Dorine Gevaert.
System-level power analysis and estimation September 20, 2006 Chong-Min Kyung.
Electronic Analog Computer Dr. Amin Danial Asham by.
1 Copyright  2001 Pao-Ann Hsiung SW HW Module Outline l Introduction l Unified HW/SW Representations l HW/SW Partitioning Techniques l Integrated HW/SW.
Chapter 11 System-Level Verification Issues. The Importance of Verification Verifying at the system level is the last opportunity to find errors before.
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
Chapter 11 System Performance Enhancement. Basic Operation of a Computer l Program is loaded into memory l Instruction is fetched from memory l Operands.
April 15, 2013 Atul Kwatra Principal Engineer Intel Corporation Hardware/Software Co-design using SystemC/TLM – Challenges & Opportunities ISCUG ’13.
Topics Modeling with hardware description languages (HDLs).
IP – Based Design Methodology
Design Flow System Level
Topics Modeling with hardware description languages (HDLs).
Introduction to cosynthesis Rabi Mahapatra CSCE617
Presentation transcript:

Design for Verification in System-level Models and RTL Anmol Mathur Venkat Krishnaswamy Calypto Design Systems, Inc

Outline What is a system-level model? Verification Methodology from SLM to RTL Sources of inconsistency between SLM and RTL Recommendations for keeping SLM and RTL consistent Conclusions

Market Trends: ESL Drivers System Level Design Economics Development Cost Time to Revenue Respin reduction Productivity Design reuse Platform design Optimization Performance Power / battery life Design updates Complexity Increasing design size HW / SW co-design Verification testbench Leveraging system-level models for RTL verification can reduce the RTL verification bottleneck

Levels of Systems IP Software Hardware SOC Block verification Boundary assertion verification Hardware/software Interface verification

Uses of System-level Models Higher level of abstraction resulting in faster simulation turnaround time Performing architectural tradeoffs and performance validation Platform for software development

Outline What is a system-level model? Verification Methodology from SLM to RTL Sources of inconsistency between SLM and RTL Recommendations for keeping SLM and RTL consistent Conclusions

Functional Verification Landscape System level RTL level Gate level RTL-gate Equivalence Checking Simulation/emulation based verification Assertion based verification Simulation RTL-SL co-simulation

Co-simulation Based SLM to RTL Verification In_B Out_D 4[3] 5[2] In_A Out_C 1 2 foo.c readDatawriteData ] 2 In_B[11:0] Out_D[9:0] In_A Out_C[1:0] 1 2 foo.v In_lz Out_lz Input Data Compare Outputs spec_wrapper impl_wrapper Input transactors to match differences in input protocols Output comparison needs to account for timing difference in when corresponding outputs are generated

What is SEC? Equivalence check designs with temporal interface differences Equivalence check designs with internal state differences Effective for eliminating bugs and ensuring consistency without testbenches

= ? SLEC comprehensively proves functional equivalence –System to RTL –RTL to RTL Identifies design differences (bugs) No testbench or assertions required Specification Model Specification Model Implementation Model Implementation Model Sequential Logic Equivalence Checker (SLEC)

Outline What is a system-level model? Verification Methodology from SLM to RTL Sources of inconsistency between SLM and RTL Recommendations for keeping SLM and RTL consistent Conclusions

Computation and Communication Accuracy Requirements in SLMs Communication accuracy Computational accuracy Bit-accurateBit-approximate Cycle accurate Cycle approximate Transaction accurate Data agnostic Untimed Functional reference models Performance models Architecture exploration models Algorithmic models

Conflicting Requirements in SLMs Need for speed –Model computations approximately –Reduce number of communication events by not modeling fully accurate communication Need for modeling accuracy –Architectural tradeoffs need modeling of the relevant micro- architectural components –Firmware development needs appropriate modeling of interface timing and architectural state –Functional reference models need to be computationally exact

Sources of Computational Inaccuracy Data agnostic models –Model of a network processor may only model packet headers and not packet data –Bus models often abstract away the actual data, since the metric of interest is bus contention Differences in data types –RTL uses bit-vectors specifying the exact data precision needed –C models model values using fixed width native C types (32 bit int, 64 bit long long) Lack of bit-manipulation operations in C/C++ –Explicit masking and shifting is needed to select bit-ranges not aligned with C native types

Issues in Fixed-point Arithmetic The nice algebraic properties of the +, * are not true when arithmetic computations are done using finite precision Addition is not associative in finite precision! Results in computational inconsistency between RTL models written with smaller precision bit-vectors and C models using wider native C types wire signed [7:0] a,b,c; wire signed [7:0] tmp; wire signed [8:0] out; assign tmp = a + b; assign out = tmp + c; wire signed [7:0] a,b,c; wire signed [7:0] tmp; wire signed [8:0] out; assign tmp = b + c; assign out = tmp + a; != a = 2 7 – 1 b = 1 out = -1 c= -1 a = 2 7 – 1 b = 1 out = 2 7 – 1 c= -1

Bit-approximate Models SLM may use floats while RTL uses fixed-point computations RTL may not fully model IEEE floating point standard due to high cost of full IEEE compliance RTL may explicitly perform rounding and truncation on intermediate computations for lowering operand widths for downstream operations function sum_of_product( float a, float b, float c) { return a *b + c; } module sum_of_product(a,b,c, out); input signed [7:0] a, b, c; wire signed [15:0] prod; wire signed [7:0] trunc_prod; assign prod = a * b; assign trunc_prod = prod >> 8; assign out = trunc_prod + c; endmodule SLM RTL

Sources of Communication Differences Abstraction of timing information from models to reduce communication complexity and improve simulation speed Lack of full micro-architectural detail in SLM SLMs are typically parallel implementations of an algorithm; RTL serializes algorithms for efficient hardware implementation SLM RTL Refinement mapping Transient states

Untimed Functional Design Untimed DES algorithm: –written in C –wrapped in SystemC.

Serial RTL Design Verilog RTL implementation: –Throughput = 16 cycles. –Latency = 16 cycles.

Transaction Equivalence Computational view –Transactions are defined as the common “units” of computation between the SLM and RTL –For algorithmic SLM vs RTL : transactions are the computation of the function the algorithmic model computes. –For timed/partially timed SLM vs RTL : transactions could be finer grained – corresponding to duration between corresponding states in the two models End of transaction indicated by –Fixed number of cycles –Handshaking signal on output Transaction

Outline What is a system-level model? Verification Methodology from SLM to RTL Sources of inconsistency between SLM and RTL Recommendations for keeping SLM and RTL consistent Conclusions

Recommendations for SLM vs RTL Consistency Ensure SLM design team and RTL design team communicate and both realize the value of keeping SLM and RTL consistent Environment for comparing and keeping SLM and RTL consistent need to be in place –Simulation based comparison of SLM and RTL –Sequential equivalence checking between SLM and RTL SLM is not always golden –Inconsistency between SLM and RTL can be due to SLM bug, RTL bug or due to conditions that can never arise in the regular operation of the system (don’t cares)

Consistent Design Partitioning Correspondence between functional decomposition in SLM and module decomposition in RTL –Easier to plug RTL modules into system-level simulation –Allows easier correspondence between input and output interfaces of SLM sub-functions and RTL modules for sequential EC –Allows for hierarchical bottom-up verification Key design communication interfaces (buses in SOCs) form natural points of correspondence between SLMs and RTLs

Ensuring Bit-accuracy in SLMs Use finite bit-vector libraries (such as SystemC bit-vector and fixed-point data types) instead of native C data types, if possible –Simulation speed can be negatively impacted Do not use floating point data types in SLM if the RTL model is really a fixed-point model –Very hard to maintain bit-accuracy since floating-point computations use implicit rounding modes of these data types Ensure no inadvertent information loss when performing bit-manipulations in SLM using native C/C++ data types

Orthogonal Computation and Communication Keep computation and communication well separated –Model communication explicitly via read/write functions on communication interfaces –Results in ability to refine communication interfaces if more accuracy is desired without a full rewrite of SLM –Allows the same computational model to be re-used in multiple models with different communication accuracy Differences in communication accuracy between SLM and RTL are mostly intentional –Separation of computation and communication clearly spells out the communication interface –Allows for explicit development of input/output transactors to reconcile interface timing differences for co-simulation and sequential EC

Modeling for Static Design Inference Design analysis tools such as sequential EC need to be able to determine the sizes of design objects statically at compile time Use static arrays instead of dynamic memory allocation –This often results in faster simulation, without significantly sacrificing modeling flexibility Excessive use of pointer aliasing and pointer arithmetic can result in conservative static analysis Upper bounds on iteration count needs to be specified for data-dependant loops –Conditional exits from loops with static bounds can help

Summary System-level modeling is here to stay in hardware design teams Designing SLMs and RTL to facilitate keeping them functionally consistent is critical to design teams Cohesion and up-front planning between system-level modeling and RTL design teams can greatly help keep SLMs and RTLs consistent Simple coding guidelines can ensure computational and communication consistency between SLMs and RTL without sacrificing SLM modeling flexibility and execution speed