Traceability: From Transactions to RTL Dave Whipp.

Slides:



Advertisements
Similar presentations
A Framework for describing recursive data structures Kenneth Roe Scott Smith.
Advertisements

Programmable FIR Filter Design
Synchronous Sequential Logic
Based on text by S. Mourad "Priciples of Electronic Systems" Digital Testing: Design Representation and Fault Detection
Lecture 12 Reduce Miss Penalty and Hit Time
Data-Flow Analysis Framework Domain – What kind of solution is the analysis looking for? Ex. Variables have not yet been defined – Algorithm assigns a.
1 1 Regression Verification for Multi-Threaded Programs Sagar Chaki, SEI-Pittsburgh Arie Gurfinkel, SEI-Pittsburgh Ofer Strichman, Technion-Haifa Originally.
Give qualifications of instructors: DAP
Xiushan Feng* ASIC Verification Nvidia Corporation Automatic Verification of Dependency 1 TM Jayanta Bhadra
Leveraging Assertion Based Verification by using Magellan Michal Cayzer.
Stop Writing Assertions! Efficient Verification Methodology Dave Whipp – DVClub SV, August 2008.
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
ENGIN112 L30: Random Access Memory November 14, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 30 Random Access Memory (RAM)
CS 300 – Lecture 3 Intro to Computer Architecture / Assembly Language Sequential Circuits.
Overview Finite State Machines - Sequential circuits with inputs and outputs State Diagrams - An abstraction tool to visualize and analyze sequential circuits.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
ELEN 468 Lecture 161 ELEN 468 Advanced Logic Design Lecture 16 Synthesis of Language Construct II.
Modeling and the simulator of Digital Circuits in Object-Oriented Programming Stefan Senczyna Department of Fundamentals of Technical Systems The Silesian.
EECE476 Lectures 10: Multi-cycle CPU Control Chapter 5: Section 5.5 The University of British ColumbiaEECE 476© 2005 Guy Lemieux.
Chapter 1 and 2 Computer System and Operating System Overview
Logic Design Outline –Logic Design –Schematic Capture –Logic Simulation –Logic Synthesis –Technology Mapping –Logic Verification Goal –Understand logic.
Calc2 Design Allows up to 4 incomplete requests on each port Tag is required to match request to response.
CS 151 Digital Systems Design Lecture 30 Random Access Memory (RAM)
I/O Subsystem Organization and Interfacing Cs 147 Peter Nguyen
CPU Architecture Why not single cycle? Why not single cycle? Hardware complexity Hardware complexity Why not pipelined? Why not pipelined? Time constraints.
مرتضي صاحب الزماني  The registers are master-slave flip-flops (a.k.a. edge-triggered) –At the beginning of each cycle, propagate values from primary inputs.
Class 9.1 Computer Architecture - HUJI Computer Architecture Class 9 Microprogramming.
Chapter 6 Memory and Programmable Logic Devices
Precision Going back to constant prop, in what cases would we lose precision?
Design methodology.
TM Efficient IP Design flow for Low-Power High-Level Synthesis Quick & Accurate Power Analysis and Optimization Flow JAN Asher Berkovitz Yaniv.
Workshop - November Toulouse Ronan LUCAS - Magillem Design Services 07/04/2011.
Transaction Assertions in an Interface Definition Language Dave Whipp – DesignCon 2008.
System Verilog Testbench Language David W. Smith Synopsys Scientist
M Taimoor Khan Course Objectives 1) Basic Concepts 2) Tools 3) Database architecture and design 4) Flow of data (DFDs)
1 H ardware D escription L anguages Modeling Digital Systems.
Review for Final Andy Wang Data Structures, Algorithms, and Generic Programming.
Chuck Benz ASIC & FPGA Design csrGen: Automated CSRs for ASIC/FPGA Processor Interfaces Chuck Benz Chuck Benz ASIC & FPGA Design
Module 1.2 Introduction to Verilog
© 2003 Fast-Chip. All rights reserved. 11/23/2015 3:37:34 AM RTL-Synchronized Transaction Reference Models Dave Whipp Fast-Chip Inc.
4/19/20021 TCPSplitter: A Reconfigurable Hardware Based TCP Flow Monitor David V. Schuehler.
Infrastructure design & implementation of MIPS processors for students lab based on Bluespec HDL Students: Danny Hofshi, Shai Shachrur Supervisor: Mony.
Field Programmable Port Extender (FPX) 1 Modular Design Techniques for the FPX.
IMPLEMENTATION OF MIPS 64 WITH VERILOG HARDWARE DESIGN LANGUAGE BY PRAMOD MENON CET520 S’03.
Hardware languages "Programming"-language for modelling of (digital) hardware 1 Two main languages: VHDL (Very High Speed Integrated Circuit Hardware Description.
M.Mohajjel. Structured Procedures Two basic structured procedure statements always initial All behavioral statements appear only inside these blocks Each.
Non-Determinism In C and RTL Models ICCAD 2006 – Ira Chayut, Verification Architect.
Exploiting Architecture For Verification Dave Whipp.
Designing a CPU –Reading a programs instruction from memory –Decoding the instruction –Executing the instruction –Transferring Data to/From memory / IO.
FEV And Netlists Erik Seligman CS 510, Lecture 5, January 2009.
Implementing Tile-based Chip Multiprocessors with GALS Clocking Styles Zhiyi Yu, Bevan Baas VLSI Computation Lab, ECE Department University of California,
Field Programmable Port Extender (FPX) 1 Modular Design Techniques for the Field Programmable Port Extender John Lockwood and David Taylor Washington University.
RTL Hardware Design by P. Chu Chapter 9 – ECE420 (CSUN) Mirzaei 1 Sequential Circuit Design: Practice Shahnam Mirzaei, PhD Spring 2016 California State.
VIRTUAL NETWORK PIPELINE PROCESSOR Design and Implementation Department of Communication System Engineering Presented by: Mark Yufit Rami Siadous.
B e h a v i o r a l to R T L Coding
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
Digital System Verification
Timing issues.
William Stallings Computer Organization and Architecture
Registers and Counters
Design Flow System Level
Hardware Description Languages
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
Registers and Counters
Lecture 9: Testbench and Division
SystemVerilog and Verification
Registers and Counters
Registers and Counters
Registers and Counters
Chapter 4 The Von Neumann Model
Presentation transcript:

Traceability: From Transactions to RTL Dave Whipp

NVIDIA Confidential Abstraction is not Sloppiness Spice Switches Gates RTL ESL “System” Models volts, ohms, seconds ones, zeros, edges, loads cells clocks, cycles transactions: events, races clouds? To use multiple abstractions within a flow we need to know how each description maps to its neighbors

NVIDIA Confidential From Transactions to RTL What features are invariant? Interface Structures? Interface Traffic? Architectural State? End Result?

NVIDIA Confidential Multi-Unit Assemblies AEBCDFG a2bb2cc2dd2ee2ff2g

NVIDIA Confidential Multi-Unit Assemblies A E BC D F G a2bb2cc2d d2e e2f f2g

NVIDIA Confidential Multi-Unit Assemblies A E BC D F G a2bb2cc2d d2e e2f f2g

NVIDIA Confidential Multi-Unit Assemblies BEBE CFCF D a2be be2cf cf2d d2be cf2g G A

NVIDIA Confidential Comparing “Shapes” AEBCDFG D G A BEBE CFCF How do we tell our tools that these are the same thing?

NVIDIA Confidential Comparing Interfaces Simple “diff” Normalization (masking, snapping) Binning (collating, sorting) Accumulating In-memory FIFOs + scoreboard File-based post-processing

NVIDIA Confidential Step 1: Capture transactions RTL C-Model tid=A seq=1 tid=A seq=2 tid=A seq=3 tid=B seq=1 tid=B seq=2 tid=B seq=3 time

NVIDIA Confidential Step 2 : Normalize RTL C-Model tid=A seq=1 tid=A seq=2 tid=A seq=3 tid=B seq=1 tid=B seq=2 tid=B seq=3 time normal A1 A2 B1 A3 B2 B3 normal A1 A2 A3 B1 B2 B3

NVIDIA Confidential Step 3 : Binning RTL C-Model tid=A seq=1 tid=A seq=2 tid=A seq=3 tid=B seq=1 tid=B seq=2 tid=B seq=3 normal A1 A2 B1 A3 B2 B3 normal A1 A2 A3 B1 B2 B3 bin A1 A2 B1 A3 B2 B3 bin A1 A2 A3 B1 B2 B3

NVIDIA Confidential Step 4: Accumulation Binning may not be enough Random Memory Access don’t want to sort on every address Different Algorithms end result is same – checksum? “Spaghetti” Perl scripts often evolve We need to formalize the interface traffic to compare two very different models

NVIDIA Confidential Transaction Assertions in YACC valid_interface_traffic: | valid_interface_traffic packet; packet: begin middle end; begin: BEGIN; middle: | middle MIDDLE; end: END

NVIDIA Confidential Cycle Level Assertions in SVA sequence packet; (cmd==BEGIN) ##1 (cmd != BEGIN && cmd != END) [*0:$] ##1 cmd == END endsequence a_well_formed_packet: clk) cmd == BEGIN |-> sequence (packet) clk cmd BEGEND MID

NVIDIA Confidential Transaction Level Assertions in SVA sequence packet; (cmd==BEGIN) ##1 (cmd != BEGIN && cmd != END) [*0:$] ##1 cmd == END endsequence clk valid cmd BEGEND MID

NVIDIA Confidential Transaction Level Assertions in SVA event sample; clk) if (valid && ! busy) -> sample cmd == BEGIN |-> sequence (packet) clk valid busy cmd BEGEND MID MIDDLE

NVIDIA Confidential Transaction Assertions in Perl 6 grammar interface { rule valid_traffic { ^^ * $$ } rule packet { * } }

NVIDIA Confidential ESL Shape AEBCDFG D G A BEBE CFCF Topology: defining invariants of shape

NVIDIA Confidential End-to-End flow definition assert “logical pipeline” chain a2b  b2c  c2d  d2e  e2f  f2g assert “physical pipeline” chain a2be  be2cf.b2c  cf2d  d2be  be2cf.e2f  cf2g

NVIDIA Confidential Local in-order Properties Every a2be must appear on be2cf Every d2be must appear on be2cf Every be2cf must be a result of a2be or d2be Within a thread, transactions must remain in-order threads may be reordered BEBE d2be a2be be2cf

NVIDIA Confidential Transaction Interaction Algebra a2b -> b2c // propagate (a2x | b2x) -> x2y // merge a2b -> (b2x | b2y) // branch (a2x & b2x) -> x2y // join a2b -> (b2x & b2y) // fork a2b -> null // eat null -> a2b // generate (a2b | null) -> b2c// input must propagate a2b -> ( b2c | null )// output must propagate

NVIDIA Confidential Local in-order Properties module BE equiv tid, thread in a2be in d2be out be2cf assert :out_of_order( thread ) :in_order( tag ) link ( a2be | d2be )  be2cf BEBE d2be a2be be2cf

NVIDIA Confidential Local in-order Properties module BE equiv tid, thread in a2be in d2be out be2cf assert :out_of_order( thread ) :in_order( tag ) link a2be  be2cf.b2c link d2be  be2cf.e2f BEBE d2be a2be be2cf

NVIDIA Confidential Summary Bridging abstractions requires defined traceability ESL  RTL ESL  C-Model Use Transaction Abstraction for ESL RTL and C-Model share a common shape Transaction flow defines the equivalence class Designer Freedoms are defined by ESL This is a design activity Verification “trusts” the ESL

BACKUP

NVIDIA Confidential Interface Grammar grammar bc_ef_iface { rule b2c { … } rule e2f { … } rule be2cf { | } } struct iface { field tag { enum B2C, E2F } field be2cf [ *tag ] }

NVIDIA Confidential RTL Verification Compare Vs reference model reference model may be “Executable Specification” architectural state interface traffic Internal Assertions no reference model needed “design” assertions “verification” assertions

NVIDIA Confidential Multi-Cycle Interface : RTL traffic Module A Module B data - key value key value time

NVIDIA Confidential Multi-Cycle Interface: structural view Module A Module B 34 struct a2b_iface { struct command { union { struct key { bit valid, bit [7:0] key }, struct value { bit more, bit [7:0] value } } struct datum { bit valid, bit [7:0] data } };

NVIDIA Confidential Multi-Cycle Interface : grammar Module A Module B 34 seq command = where $1.valid attr more = $2.more seq commands = ** [0,64] where all( $1[ 0..$-1 ].more ) && ! $1[$].more seq data = ** [0,128] where all( $1[*].valid ) seq a2b_info = &

NVIDIA Confidential Multi-Cycle Interface: C-model struct Module A Module B struct A2B_info { map commands; vector data; }; 34

NVIDIA Confidential Topology

NVIDIA Confidential Equivalence classes for transactions Every implementation is a deformation of the ESL RTL C-Model We want to know up front how we’ll compare them Implementation-independent comprehension “Races” in the transaction graph are like “holes” in a topology may be non-deterministic