High-level Synthesis and System Synthesis SOURCES- Mark Manwaring Kia Bazargan Giovanni De Micheli Gupta Youn-Long Lin Camposano, J. Hofstede, Knapp, MacMillen.

Slides:



Advertisements
Similar presentations
TOPIC : SYNTHESIS DESIGN FLOW Module 4.3 Verilog Synthesis.
Advertisements

Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
Combinational Logic.
ECE Synthesis & Verification - Lecture 2 1 ECE 667 Spring 2011 ECE 667 Spring 2011 Synthesis and Verification of Digital Circuits High-Level (Architectural)
Hardware Description Language (HDL)
Give qualifications of instructors: DAP
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Register-transfer Design n Basics of register-transfer design: –data paths and controllers.
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
Copyright 2001, Agrawal & BushnellDay-1 PM Lecture 4a1 Design for Testability Theory and Practice Lecture 4a: Simulation n What is simulation? n Design.
Behavioral Synthesis Outline –Synthesis Procedure –Example –Domain-Specific Synthesis –Silicon Compilers –Example Tools Goal –Understand behavioral synthesis.
SCORE - Stream Computations Organized for Reconfigurable Execution Eylon Caspi, Michael Chu, Randy Huang, Joseph Yeh, Yury Markovskiy Andre DeHon, John.
COE 561 Digital System Design & Synthesis Architectural Synthesis Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum.
L14 – Control & Execution 1 Comp 411 – Fall /04/09 Control & Execution Finite State Machines for Control MIPS Execution.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
Courseware High-Level Synthesis an introduction Prof. Jan Madsen Informatics and Mathematical Modelling Technical University of Denmark Richard Petersens.
The Multicycle Processor II CPSC 321 Andreas Klappenecker.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
Models of Computation for Embedded System Design Alvise Bonivento.
1 EECS Components and Design Techniques for Digital Systems Lec 21 – RTL Design Optimization 11/16/2004 David Culler Electrical Engineering and Computer.
HDL-Based Digital Design Part I: Introduction to VHDL (I) Dr. Yingtao Jiang Department Electrical and Computer Engineering University of Nevada Las Vegas.
State Machines Timing Computer Bus Computer Performance Instruction Set Architectures RISC / CISC Machines.
Silicon Programming--Intro. to HDLs1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities.
林永隆 (Youn-Long Lin) Department of Computer Science National Tsing Hua University High-Level Synthesis of VLSIs THEDA Tsing Hua Electronic Design Automation.
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE VLSI System Design Lecture 4 - Advanced Verilog.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts,
(1) Modeling Digital Systems © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
CSET 4650 Field Programmable Logic Devices
1 VERILOG Fundamentals Workshop סמסטר א ' תשע " ה מרצה : משה דורון הפקולטה להנדסה Workshop Objectives: Gain basic understanding of the essential concepts.
Introduction to FPGA AVI SINGH. Prerequisites Digital Circuit Design - Logic Gates, FlipFlops, Counters, Mux-Demux Familiarity with a procedural programming.
ECE 2372 Modern Digital System Design
CAD Techniques for IP-Based and System-On-Chip Designs Allen C.-H. Wu Department of Computer Science Tsing Hua University Hsinchu, Taiwan, R.O.C {
Principles Of Digital Design Chapter 1 Introduction Design Representation Levels of Abstraction Design Tasks and Design Processes CAD Tools.
CMOS Design Methods.
1 H ardware D escription L anguages Modeling Digital Systems.
Chap 8. Sequencing and Control. 8.1 Introduction Binary information in a digital computer –data manipulated in a datapath with ALUs, registers, multiplexers,
Lecture 9. MIPS Processor Design – Instruction Fetch Prof. Taeweon Suh Computer Science Education Korea University 2010 R&E Computer System Education &
COE 405 Design and Modeling of Digital Systems
Digital System 數位系統 Verilog HDL Ping-Liang Lai (賴秉樑)  
Chap 7. Register Transfers and Datapaths. 7.1 Datapaths and Operations Two types of modules of digital systems –Datapath perform data-processing operations.
HYPER: An Interactive Synthesis Environment for Real Time Applications Introduction to High Level Synthesis EE690 Presentation Sanjeev Gunawardena March.
Module 1.2 Introduction to Verilog
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
System-level power analysis and estimation September 20, 2006 Chong-Min Kyung.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
Modern VLSI Design 4e: Chapter 8 Copyright  2008 Wayne Wolf Topics Modeling with hardware description languages (HDLs).
ECE-C662 Lecture 2 Prawat Nagvajara
Modern VLSI Design 3e: Chapter 8 Copyright  1998, 2002 Prentice Hall PTR Topics n Modeling with hardware description languages (HDLs).
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.
Introduction to ASIC flow and Verilog HDL
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
FPGA-Based System Design Copyright  2004 Prentice Hall PTR Topics n Modeling with hardware description languages (HDLs).
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
EECE 320 L8: Combinational Logic design Principles 1Chehab, AUB, 2003 EECE 320 Digital Systems Design Lecture 8: Combinational Logic Design Principles.
Combinational Logic Design
VLSI Testing Lecture 5: Logic Simulation
VLSI Testing Lecture 5: Logic Simulation
Vishwani D. Agrawal Department of ECE, Auburn University
Morgan Kaufmann Publishers
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Introduction to cosynthesis Rabi Mahapatra CSCE617
ECE 434 Advanced Digital System L08
Hardware Description Languages
Lesson 4 Synchronous Design Architectures: Data Path and High-level Synthesis (part two) Sept EE37E Adv. Digital Electronics.
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
Modeling Languages and Abstract Models
A SoC Design Automation Seoul National University
Architectural-Level Synthesis
HIGH LEVEL SYNTHESIS.
ECE 448 Lecture 6 Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts, and VHDL code ECE 448 – FPGA and ASIC Design.
Presentation transcript:

High-level Synthesis and System Synthesis SOURCES- Mark Manwaring Kia Bazargan Giovanni De Micheli Gupta Youn-Long Lin Camposano, J. Hofstede, Knapp, MacMillen Lin

Why the level of automation must go up and up?

What Went Wrong with early approaches to design automation ? 1.Too much emphasis on incremental work on algorithms and point tools 2.Unrealistic assumption on component capability, architectures, timing, etc 3.Lack of quality-measurement from the low level 4.Too many promises on fully automated system (silicon compiler??)

Example of a Silicon Compiler System Initial specification

Benchmarks for a silicon compiler

VLSI Design Tools Design Capturing/Entry Analysis and Characterization Synthesis/Optimization Physical (Floor planning, Placement, Routing) Logic (FSM, Retiming, Sizing, DFT) High Level(RTL, Behavioral) Management

Design Methodology Progress Capture and Simulate Describe and SynthesizeSpecify and ???

Productivity Re-Targetability Correctness Why Synthesis? Unsynthesizability Performance Loss Inertial Why not Synthesis?

StructuralBehavioral Physical X’tor Gate RTL Block Boolean FSM Algorithm GDSII Placement Floorplan Y-Chart Dan D Gajski

StructuralBehavioral Physical X’tor Gate RTL Block Boolean FSM Algorithm GDSII Placement Floorplan Layout Synthesis

StructuralBehavioral Physical X’tor Gate RTL Block Boolean FSM Algorithm GDSII Placement Floorplan Logic Synthesis

StructuralBehavioral Physical X’tor Gate RTL Block Boolean FSM Algorithm GDSII Placement Floorplan High-Level Synthesis

Target Architectures Bus-based Multiplexer-based Register file Pipelined RISC, VLIW Interface Protocol

Goal of synthesis for future systems From Behavioral specification at ‘System Level’ (Algorithms) To Structural implementation at ‘Register Transfer Level’ of Data path (ALU’s, REG’s, MUX’s) and Controller Generally restricted to a single process Generally data path is optimized; controller is by-product

Levels of Abstraction In Camposano Behavioral Register-Transfer (RTL) Logic Our Abstraction levels System Register Logic

Abstraction levels System High-level Logic Physical Synthesis step LevelBehaviorStructure

Intermediate Representation ** + Control Flow Graph Data Flow Graph

What are possible levels of synthesis? What are possible styles? How to automate big tasks?

Layout Synthesis

Compass Placement & Routing ( 0.6µm gate array )

Layout Level

Logic Synthesis

Reminder about blocks and connections in data path

Variants of simple FSMD architectures control Controlling /activation pulses Data Path Controlling /activation pulses Status signals controlData Path

Variants of simple FSMD architectures control Controlling /activation pulses Data Path Status signals Instructions

FSM with Data Path (FSMD) FSM Data Path FSM Data Path FSM Data Path Interactive FSMDs

Details of control signals controls: Reg_EOEnable Output Reg_EIEnable Input RegFile_EIRegFile_SI Register; a) RTL level b) with control signal details

Control of register files control signals: RegFile_EO1 RegFile_SO1 RegFile_EO2 RegFile_SO2 RegFile_EI RegFile_SI Register; a) RTL level b) with control signal details

The role of tri-state signals Tri-state signals in buses instead of multiplexing Scheduling and allocation problems are similar

Multiplexing

Communication with a memory External data-bus External address-bus Internal bus

Pipeline Design Issues Pipelined processor design Pipeline is an implementation issue. A behavioral representation should not specify the pipeline. Most processor instruction sets are conceived with an implementation in mind. The behavior is defined to fit an implementation model.

Semantics of variables Variables are implemented in hardware by: Registers. Wires. The hardware can store information or not. Cases: Combinational circuits. Sequential circuits.

Semantics of variables Combinational circuits. Multiple-assignment to a variable. Conflict resolution. Oring. Last assignment. Semantics of variables

Sequential circuits. Multiple-assignment to a variable. Variable retains its value until reassigned. Problem: Variable propagation and observability. Semantics of variables

Example Multiple reassignments: x= 0 ; x = 1 ; x = 0 ; Interpretations: Each assignment takes a cycle. --> pulse. x assumes value 0. x assumes value 0 after a short glitch. Semantics of variables

Timing semantics Most procedural HDLs specify a partial order among operations. What is the timing of an operation? A posteriori model: Delay annotation. A priori model: Timing constraints. Synthesis policies. Semantics of variables

Timing semantics (event-driven semantics) Digital synchronous implementation. An operation is triggered by some event: If the inputs to an operation change --> the operation is re-evaluated. Used by simulators for efficiency reasons.

Synthesis policy for VHDL and Verilog Operations are synchronized to a clock by using a wait command. Wait statements delimit clock boundaries. Clock is a parameter of the model: model is updated at each clock cycle.

Verilog example behavior of sequential logic circuit module DIFFEQ (x, y, u, dx, a, clock, start); input [7:0] a, dx; inout [7:0] x, y, u; input clock, start; reg [7:0] xl, ul, yl; always begin begin wait ( start); while ( x < a ) begin xl = x + dx; ul = u - (3 * x * u * dx) - (3 * y * dx); yl = y + (u * clock); x = xl; u = ul ; y = yl; end endmodule

Abstract models Models based on graphs. Useful for: Machine-level processing. Reasoning about properties. Derived from language models by compilation.

Abstract models Examples Netlists: Structural views. Logic networks Mixed structural/behavioral views. State diagrams Behavioral views of sequential logic models. Dataflow and sequencing graphs. Abstraction of behavioral models.

Data flow graphs Behavioral views of architectural models. Useful to represent data-paths. Graph: Vertices = operations. Edges = dependencies.

Dataflow graph Example xl = x + dx ul = u - (3 * x * u * dx) - (3 * y * dx) yl = y + u * dx c = xl < a

Example of Data Flow Graph continued xl = x + dx ul = u - (3 * x * u * dx) - (3 * y * dx) yl = y + u * dx c = xl < a

Sequencing graphs Behavioral views of architectural models. Useful to represent data-path and control. Extended data flow graphs: Operation serialization. Hierarchy. Control- flow commands: branching and iteratio n. Polar: source and sin k.

Example of sequencing graph

Example of Hierarchy

Example of branching

Example of iteration diffeq { read (x; y; u; dx; a); repeat { xl = x +dx; ul = u - (3 * x * u* dx) - (3 * y * dx); yl = y +u dx; c = x < a; x = xl; u = ul; y = yl; } until ( c ) ; write (y); }

Example of iteration

Semantics of sequencing graphs Marking of vertices: Waiting for execution. Executing. Have completed execution. Execution semantics: An operation can be fired as soon as all its immediate predecessors have completed execution

Vertex attributes Area cost. Delay cost: Propagation delay. Execution delay. Data-dependent execution delays: Bounded (e.g. branching). Unbounded (e.g. iteration, synchronization).

Properties of sequencing graphs Computed by visiting hierarchy bottom-up. Area estimate Area estimate: Sum of the area attributes of all vertices. Worst-case - no sharing. Delay estimate Delay estimate (latency): Bounded-latency graphs. Length of longest path.

Summary on specification models Hardware synthesis requires specialized language support. VHDL and Verilog HDL are mainly used today: Similar features. Simulation-oriented. Synthesis from programming languages is also possible. Hardware and software models of computation are different. Appropriate hardware semantics need to be associated with programming languages. Abstract models: Capture essential information. Derivable from HDL models. Useful to prove properties.

Control Design

Control 1 Control of Registers Functional units Multiplexers and 3-state drivers Memory Control design

Simple micro-programmed controller MUX INCR Program counter Microcode ROM Mode registers Jump address Control signals from ROM or data path Control lines

Control 2 1.To avoid false combinational cycles, either the inputs or the outputs of the controller are registered. 2.Note the one cycle delay between a condition and the resulting reaction in the controller. 3.Controller can even be pipelined, which can remove the controller from the critical path, but increases the delay for the conditions. Control design issues

Overview of Hardware Synthesis converts the program text file into strings of tokens. Tokens can be specified by regular expressions. In the UNIX world, the “lex” tools are popular for this. The syntax of a programming language is specified by a grammar. (A grammar defines the order and types of tokens.) This analysis organized streams of tokens into an abstract syntax tree.

Overview of Hardware Synthesis analyze the semantics, or meanings, of the program. Generate a symbol table. Check for uniqueness of symbols and information about them. determine the order and organization of operations