Automatic Interface Generation P.I.G. : Presented by Trevor Meyerowitz Sonics: Presented by Michael Sheets EE249 Discussion November 30, 1999.

Slides:



Advertisements
Similar presentations
Network II.5 simulator ..
Advertisements

IO Interfaces and Bus Standards. Interface circuits Consists of the cktry required to connect an i/o device to a computer. On one side we have data bus.
Computer Architecture
System Integration and Performance
purpose Search : automation methods for device driver development in IP-based embedded systems in order to achieve high reliability, productivity, reusability.
Part 4: combinational devices
1 General-Purpose Languages, High-Level Synthesis John Sanguinetti High-Level Modeling.
CMSC 611: Advanced Computer Architecture
Simulation executable (simv)
Sumitha Ajith Saicharan Bandarupalli Mahesh Borgaonkar.
Give qualifications of instructors: DAP
EXTERNAL COMMUNICATIONS DESIGNING AN EXTERNAL 3 BYTE INTERFACE Mark Neil - Microprocessor Course 1 External Memory & I/O.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Register-transfer Design n Basics of register-transfer design: –data paths and controllers.
ECE 551 Digital System Design & Synthesis Lecture 09 Synthesis of Common Verilog Constructs.
Microprocessor and Microcontroller Based Systems Instructor: Eng.Moayed N. EL Mobaied The Islamic University of Gaza Faculty of Engineering Electrical.
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
Convertibility Verification and Converter Synthesis: Two Faces of the Same Coin Jie-Hong Jiang EE249 Discussion 11/21/2002 Passerone et al., ICCAD ’ 02.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
ECE 353 Computer Systems Lab I Verilog Hardware Description Language.
11/10/2004EE 42 fall 2004 lecture 301 Lecture #30 Finite State Machines Last lecture: –CMOS fabrication –Clocked and latched circuits This lecture: –Finite.
4/10/20081 Lab 9 RT methodology introduction Register operations Data Path Control Path ASM Example TA: Jorge Crichigno.
1 Project supervised by: Dr Michael Gandelsman Project performed by: Roman Paleria, Avi Yona 26/4/2004 Multi-channel Data Acquisition System Final_A Presentation.
CPEN Digital System Design Chapter 9 – Computer Design
Interface-based Design Donald Chai EE249. Outline Orthogonalization of concerns Formalisms Interface-based Design Example Cheetah Simulator Future Inroads.
EECS 470 Cache and Memory Systems Lecture 14 Coverage: Chapter 5.
USB 2.0 INTRODUCTION NTUT CSIE 學 生:許家豪 指導教授:柯開維教授.
Design Synopsys System Verilog API Donations to Accellera João Geada.
VerificationTechniques for Macro Blocks (IP) Overview Inspection as Verification Adversarial Testing Testbench Design Timing Verification.
Computer Architecture Lecture 08 Fasih ur Rehman.
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology A Synthesis Algorithm for Modular Design of.
FPGA-Based System Design: Chapter 5 Copyright  2004 Prentice Hall PTR Topics n Basics of sequential machines. n Sequential machine specification. n Sequential.
1 SERIAL PORT INTERFACE FOR MICROCONTROLLER EMBEDDED INTO INTEGRATED POWER METER Mr. Borisav Jovanović, Prof.dr Predrag Petković, Prof.dr. Milunka Damnjanović,
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Introduction Slide 1 A Communications Model Source: generates.
Lecture 16 Today’s topics: –MARIE Instruction Decoding and Control –Hardwired control –Micro-programmed control 1.
Computer Architecture Lecture10: Input/output devices Piotr Bilski.
(More) Interfacing concepts. Introduction Overview of I/O operations Programmed I/O – Standard I/O – Memory Mapped I/O Device synchronization Readings:
1 H ardware D escription L anguages Modeling Digital Systems.
Introduction to Computing Systems from bits & gates to C & beyond The Von Neumann Model Basic components Instruction processing.
ECE 551 Digital System Design & Synthesis Fall 2011 Midterm Exam Overview.
VHDL Introduction. V- VHSIC Very High Speed Integrated Circuit H- Hardware D- Description L- Language.
Autonomous Helicopter James LydenEE 496Harris Okazaki.
Accessing I/O Devices Processor Memory BUS I/O Device 1 I/O Device 2.
Introduction to VLSI Design – Lec01. Chapter 1 Introduction to VLSI Design Lecture # 11 High Desecration Language- Based Design.
Digital Logic Design.
L/O/G/O Input Output Chapter 4 CS.216 Computer Architecture and Organization.
Chapter 24 Transport Control Protocol (TCP) Layer 4 protocol Responsible for reliable end-to-end transmission Provides illusion of reliable network to.
L13 :Lower Power High Level Synthesis(3) 성균관대학교 조 준 동 교수
Lecture 11: FPGA-Based System Design October 18, 2004 ECE 697F Reconfigurable Computing Lecture 11 FPGA-Based System Design.
Verilog A Hardware Description Language (HDL ) is a machine readable and human readable language for describing hardware. Verilog and VHDL are HDLs.
CSCI-365 Computer Organization Lecture Note: Some slides and/or pictures in the following are adapted from: Computer Organization and Design, Patterson.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
Digital System Design using VHDL
LAB 3 – Synchronous Serial Port Design Using Verilog
بسم الله الرحمن الرحيم MEMORY AND I/O.
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Networked Embedded Systems Pengyu Zhang EE107 Spring 2016 Lecture 8 Serial Buses.
Status and Plans for Xilinx Development
1 load [2], [9] Transfer contents of memory location 9 to memory location 2. Illegal instruction.
State Machine Design with an HDL
Structural Description
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
System Design.
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
332:437 Lecture 8 Verilog and Finite State Machines
Throttling: Infrastructure, Dead Time, Monitoring
The SDRAM Controller EECS150 Fall Lab Lecture #8 Chen Sun
332:437 Lecture 8 Verilog and Finite State Machines
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Chapter 13: I/O Systems.
Presentation transcript:

Automatic Interface Generation P.I.G. : Presented by Trevor Meyerowitz Sonics: Presented by Michael Sheets EE249 Discussion November 30, 1999

Roberto Passerone University of California at Berkeley James A. Rowson Alta Group of Cadence Design Systems Alberto L. Sangiovanni Vincentelli University of California at Berkeley Automatic Synthesis of Interfaces between Incompatible Protocols Protocol Synthesis using P.I.G. (Protocol Interface Generator) Presented by: Trevor Presented by: Trevor Meyerowitz Some slides used from the presentation below:

OutlineOutline Motivations Protocol Description Synthesis algorithm Conclusions

Designs are becoming more and more complicated  they are impossible for one individual to understand  design cycle times and market windows are decreasing One technique of coping with this is design reuse  using both internal and external IP’s  each block has its own way of handling data  manual interfacing is costly, unreliable and time consuming Interface synthesis attempts to meet these needs through:  declarative specification of signaling protocol  automatic synthesis of interface machine  automatic generation of testbench Problem Statement:

Problem Solution: Glue Logic Given a protocol specification for each IP block glue logic is... IP Block Protocol IP Block Protocol Glue Logic

Problem Solution: Criteria Given Protocol Descriptions, The Generated Interface Must:  ensure consistency between different protocols  be independent of implementation (e.g. easily transferable to hardware or software)  not cause unnecessary overhead What We Need  a format for specifying the protocols  a technique for synthesis  a technique for testing

P.I.G. (Protocol Interface Generator) Protocols are FSM’s that are described using regular expressions Glue logic is generated by taking the product of the machines and pruning it to minimize latency Outputs product machine in Verilog or C form Automatically generates test bench software Has a number of simplifying assumptions

AssumptionsAssumptions Point - to - point communication The two protocols exchange the same token The two parties are synchronous and share the same clock Data in the interface is stored in a register wide enough to contain an entire token, controlled by an FSM Only one transaction handled

Overview of the synthesis process A B A protocol descriptionB protocol description A protocol is the set of all sequences of values admissible at the ports of a module for one transaction

A Overview of the synthesis process B A protocol descriptionB protocol description A Automaton B Automaton Language Recognizers Product Machine Subset

Protocol Description: Overview Name of the protocol Type of the token List of all ports Direction of the ports Regular expression

Protocol Description: Example This example transfers 2 bytes of data:  the transmitter uses a handshake protocol  the receiver uses a serial protocol Interface creates the product machine to make the machines work together Handshake Transmitter Serial Receiver Interface Machine trigger bus start bus

type byte bit[7:0]; type yow { byte a; byte b; }; protocol handshake of type yow { master bit trigger; master byte bus; term wait( bit t ) { t, - } term get( bit t, byte b ) { t, b } handshake( yow y ) { wait( 0 ) *, get( 1, y.a )+, get( 0, y.b )+ } Protocol Description: Example 1a 0- 1a 0b Handshake Transmitter: type byte bit[7:0]; type yow { byte a; byte b; }; protocol handshake of type yow { master bit trigger; master byte bus; term wait( bit t ) { t, - } term get( bit t, byte b ) { t, b } handshake( yow y ) { wait( 0 ) *, get( 1, y.a )+, get( 0, y.b )+ } type byte bit[7:0]; type yow { byte a; byte b; }; protocol handshake of type yow { master bit trigger; master byte bus; term wait( bit t ) { t, - } term get( bit t, byte b ) { t, b } handshake( yow y ) { wait( 0 ) *, get( 1, y.a )+, get( 0, y.b )+ } type byte bit[7:0]; type yow { byte a; byte b; }; protocol handshake of type yow { master bit trigger; master byte bus; term wait( bit t ) { t, - } term get( bit t, byte b ) { t, b } handshake( yow y ) { wait( 0 ) *, get( 1, y.a )+, get( 0, y.b )+ } type byte bit[7:0]; type yow { byte a; byte b; }; protocol handshake of type yow { master bit trigger; master byte bus; term wait( bit t ) { t, - } term get( bit t, byte b ) { t, b } handshake( yow y ) { wait( 0 ) *, get( 1, y.a )+, get( 0, y.b )+ }

Protocol Description: Example 1a 0- 0b type byte bit[7:0]; type yow { byte a; byte b; }; protocol serial of type yow { master bit start; master byte bus; term null( ) { 0, - } term one( byte b ) { 1, b } term two( byte b ) { 0, b } serial( yow y ) { null( ) *, one( y.a ), two( y.b ) } Serial Receiver:

Product computation Start from the initial state Explore all possible paths and add states Generate input and output and resolve non determinism Remove illegal transitions Optimize performance (minimize latency)

Product computation: Example 1a 0- 1a 0b 0- 1a0b 0- 1a0- 1a 0- 0b 0-1a0-0b 1a 0b1a 0b 1a0b 1a 0b0-

Product computation: Example 1a 0- 1a 0b 1a0b 1a 0b 0- 1a 0b 0- Initial States: Nothing has been transmitted or received State 2: The transmitter sends “a” The receiver stays put State 3: The transmitter sends “b” The receiver receives “a” State 4: The transmitter stays put The receiver receives “b” Transaction Finished.

TestbenchTestbench Also synthesize “driver” and “monitor” modules Driver module is FSM that:  randomly generates token values  randomly selects from non-deterministic choices in protocol (Kleene closures, for instance) Monitor module is FSM that:  collects token and prints it out when received successfully  randomly selects non-deterministic responses

ResultsResults FromToStatesRecur.Full Recur.PM States HandshakeSerial41459 SerialHandshake31359 ATM serialATM req-ack ATM req-ackATM serial ATM serial rev.ATM req-ack

ConclusionsConclusions The Good  regular expressions provide a standard format for protocol specification  product machine allows automatic synthesis  can output to C or Verilog The Bad  currently limited by simplifying assumptions  the potential for FSM blow-up with many protocols or complicated protocols The Verdict  a potentially compelling solution with much work left to be done.