EE382M.20: System-on-Chip (SoC) Design

Size: px
Start display at page:

Download "EE382M.20: System-on-Chip (SoC) Design"

Transcription

1 EE82M.20: SystemonChip (SoC) Design Lecture 1 Resource Allocation and Binding Source: G. De Micheli, Integrated Systems Center, EPFL Synthesis and Optimization of Digital Circuits, McGraw Hill, Andreas Gerstlauer Electrical and Computer Engineering University of Texas at Austin gerstl@ece.utexas.edu Lecture 1: Outline Allocation, binding and sharing Problem formulation Functional unit sharing Flat graphs Hierarchical graphs Register sharing Multiport register files/memories Bus sharing Extensions Module selection Datapath and control synthesis EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer 1

2 Allocation and Binding Allocation Number of resources available Binding Mapping of operations onto resources Sharing Manytoone relation Selection Type to implement each operation EE82M.20: SoC Design, Lecture 1 G. De Micheli Binding Limiting cases Dedicated resources One resource per operation No sharing One multitask resource ALU One resource per type Closely related to scheduling Optimum binding/sharing Minimize the resource usage Scheduled sequencing graphs Operation concurrency well defined Consider operation types independently Problem decomposition» Perform analysis for each resource type EE82M.20: SoC Design, Lecture 1 G. De Micheli 2018 A. Gerstlauer 2

3 ILP Formulation of Binding Boolean variable b ir Operation i bound to resource r r b ir = 1 for all operations i Boolean variables x il Operation i scheduled to start at step l i b ir m=ldi1..l x im 1 for all steps l and resources r EE82M.20: SoC Design, Lecture 1 G. De Micheli Compatibly and Conflicts Operation compatibility: Same type Non concurrent t1 x=ab y=cd 1 2 t2 s=xy t=xy t z=at Compatibility graph: Vertices: operations Edges: compatibility relation Conflict graph: Complement of compatibility graph Compatibility graph 1 2 Conflict graph 1 2 EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer

4 Compatibility and Conflicts Compatibility graph clique partitioning Partition the graph into a minimum number of cliques Find clique cover number k ( G ) Conflict graph coloring Color the vertices by a minimum number of colors. Find chromatic number х ( G_ ) NPcomplete problems Heuristic algorithms EE82M.20: SoC Design, Lecture 1 G. De Micheli 7 Compatibility and Conflict Example t1 x=ab y=cd 1 2 t2 s=xy t=xy t z=at Conflict 1 2 Compatibility 1 2 Coloring Partitioning ALU1: 1,, ALU2: 2, EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer

5 Perfect Graphs Comparability graph Graph G (V, E ) has an orientation G ( V, F ) with the transitive property (v i, v j ) є F and (v j, v k ) є F (v i, v k ) є F Interval graph Vertices correspond to intervals Edges correspond to interval intersection Subset of chordal graphs Every loop with more than three edges has a chord (edge that is not part of the cycle but connects two nodes in the loop) EE82M.20: SoC Design, Lecture 1 G. De Micheli 9 Data Flow Graphs (DFGs) The compatibility/conflict graphs have special properties Compatibility Comparability graph Conflict Interval graph Polynomial time solutions Golumbic s algorithm for partitioning of compatibility graphs Leftedge algorithm for coloring of interval graphs EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer

6 DFG Example: Comparability Graphs NOP0 TIME TIME < TIME 7 8 TIME 9 n NOP EE82M.20: SoC Design, Lecture 1 G. De Micheli 11 DFG Example: Interval Graphs NOP0 TIME TIME < 6 11 TIME TIME n 9 9 NOP EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer 6

7 LeftEdge Algorithm Input: Set of intervals with left and right edge A set of colors (initially one color) Rationale Sort intervals in a list by left edge Assign non overlapping intervals to first color using the list When possible intervals are exhausted, increase color counter and repeat EE82M.20: SoC Design, Lecture 1 G. De Micheli 1 LeftEdge Algorithm LEFT_EDGE(I) { Sort elements of I in a list L in ascending order of l i ; c = 0; while (some interval has not been colored) do { S = Ø; r = 0; while ( exists s є L such that l s > r) do { s = First element in the list L with l s > r; S = S U {s}; r = r s ; Delete s from L; } c = c 1; Label elements of S with color c; } } EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer 7

8 LeftEdge Example Conflict graph Intervals Colored conflict graph Coloring EE82M.20: SoC Design, Lecture 1 G. De Micheli 1 Lecture 17: Outline Allocation, binding and sharing Problem formulation Functional unit sharing Flat graphs Hierarchical graphs Register sharing Multiport register files/memories Bus sharing Extensions Module selection Datapath and control synthesis EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer 8

9 Hierarchical Sequencing Graphs (CDFGs) Hierarchical conflict/compatibility graphs Easy to compute Prevent sharing across hierarchy Flatten hierarchy Bigger graphs Destroy nice properties EE82M.20: SoC Design, Lecture 1 G. De Micheli 17 Hierarchical Graph Example Calls of submodels a TIME 1 TIME 2 TIME TIME TIME TIME 6 TIME 7 a a 2 a a a 2 a 2 Sequencing Graph Execution intervals Conflict graph Not perfect graphs any more Intractable, use of heuristics EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer 9

10 Hierarchical Graph Example Branching constructs TIME 1 a NOP NOP a a TIME 2 BR c d c d c d TIME TIME b NOP NOP b b Sequencing Graph Execution intervals Conflict graph Not perfect graphs any more Intractable, use of heuristics EE82M.20: SoC Design, Lecture 1 G. De Micheli 19 Lecture 17: Outline Allocation, binding and sharing Problem formulation Functional unit sharing Flat graphs Hierarchical graphs Register sharing Multiport register files/memories Bus sharing Extensions Module selection Datapath and control synthesis EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer 10

11 Storage Elements Registers Hold data across cycles Data: value of a variable Variable lifetime in scheduled graph Can be reused (shared) across variables Memory blocks, register files Limited number of read/write ports EE82M.20: SoC Design, Lecture 1 R. Gupta G. De Micheli 21 Register Binding Problem Given a schedule Lifetime intervals for variables Lifetime overlaps Conflict graph (interval graph) Vertices variables Edges overlaps Interval graph Compatibility graph (comparability graph) Complement of conflict graph EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer 11

12 Register Sharing Given Variable lifetime conflict graph Find Minimum number of registers storing all the variables Key point Interval graph Leftedge algorithm (polynomialtime complexity) EE82M.20: SoC Design, Lecture 1 G. De Micheli 2 Register Sharing Example TIME 1 TIME 2 TIME TIME z1 1 2 z z2 z z z6 7 6 z1 z z z2 z z6 z1 z z z2 z z6 Sequencing graph Variable lifetimes Conflict graph EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer 12

13 Register Sharing in Loops Iterative conflicts through loopcarried dependencies Preserve values across iterations Circulararc conflict graph Coloring is intractable Hierarchical graphs General conflict graphs Coloring is intractable Heuristic algorithms EE82M.20: SoC Design, Lecture 1 G. De Micheli 2 Loop Example u x u dx u y x y u dx x dx x TIME TIME 2 TIME TIME z1 z z z2 z z6 6 dx 7 y z7 8 9 < c a 11 z1 z z z2 z z6 u z7 u y y x u y Sequencing graph Variable lifetimes EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer 1

14 Loop Variable Lifetimes z1 z2 u x 1 z1 z2 u y 2 z z x z z y z7 z6 z z z7 z6 Variable lifetimes Circulararc conflict graph EE82M.20: SoC Design, Lecture 1 G. De Micheli 27 MultiPort Memory Binding Find minimum number of ports to access the required number of variables Variables use the same port Port compatibility/conflict Similar to resource binding Variables can use any port Decision variable x il id TRUE when variable i is accessed is step l Optimum: max 1 l λ 1 ( i=1..nvar x il ) EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer 1

15 Dual MultiportMemory Binding Problem Find max number of variables to be stored through a fixed number of ports a Boolean variables { b i, i = 1, 2,, n var }: Variable i with b i =1 will be stored in register file maximize i=1..nvar b i such that i=1..nvar b i x il a l = 1,2,,λ 1 EE82M.20: SoC Design, Lecture 1 G. De Micheli 29 MultiPort Memory Binding Example Time step 1 : r = r 1 r 2 ; r 12 = r 1 Time step 2 : r = r r ; r 7 = r r 6 ; r 1 = r Time step : r 8 = r r ; r 9 = r 1 r 7 ; r 11 = r 10 / r Time step : r 1 = r 11 & r 8 ; r 1 = r 12 r 9 Time step : r 1 = r 11 ; r 2 = r 1 1 max i=1 b i such that b 1 b 2 b b 12 a b b b b 6 b 7 b 1 a b 1 b b b 7 b 8 b 9 b 10 b 11 a b 8 b 9 b 11 b 12 b 1 b 1 a b 1 b 2 b 1 b 1 a One port a = 1: { b 2, b, b 8 } nonzero variables stored: v 2, v, v 8 Two ports a = 2: 6 variables stored: v 2, v, v, v 10, v 12, v 1 Three ports a = : 9 variables stored: v 1, v 2, v, v 6, v 8, v 10, v 12, v 1 EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer 1

16 Lecture 17: Outline Allocation, binding and sharing Problem formulation Functional unit sharing Flat graphs Hierarchical graphs Register sharing Multiport register files/memories Bus sharing Extensions Module selection Datapath and control synthesis EE82M.20: SoC Design, Lecture 1 G. De Micheli 1 Bus Sharing and Binding Find the minimum number of busses to accommodate all data transfer Find the maximum number of data transfers for a fixed number of busses Similar to memory binding problem ILP formulation or heuristic algorithms EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer 16

17 Bus Sharing Example TIME 1 TIME 2 TIME TIME z1 1 2 z z2 z z z6 7 6 z1 z z z2 z z6 z1 z z z2 z z6 Sequencing graph Connection usage Conflict graph One bus: variables can be transferred Two busses: All variables can be transferred EE82M.20: SoC Design, Lecture 1 G. De Micheli Lecture 17: Outline Allocation, binding and sharing Problem formulation Functional unit sharing Flat graphs Hierarchical graphs Register sharing Multiport register files/memories Bus sharing Extensions Module selection Datapath and control synthesis EE82M.20: SoC Design, Lecture 1 G. De Micheli 2018 A. Gerstlauer 17

18 Module Selection Problem Extension of resource sharing Library of resources More than one resource per type Example Ripplecarry adder Carry lookahead adder Resource modeling Resource subtypes with ( area, delay ) parameters EE82M.20: SoC Design, Lecture 1 G. De Micheli Module Selection Solutions ILP formulation Decision variables Select resource subtype Determine ( area, delay ) Heuristic algorithm Determine minimum latency with fastest resource subtypes Recover area by using slower resources on noncritical paths EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer 18

19 Module Selection Example TIME 1 (1,1) 1 NOP 0 (1,2) 6 (2,1) Slow multipliers save area TIME TIME 8 11 < TIME 7 TIME (2,2) 9 n NOP Multipliers with ( Area, delay ) = (,1 ) and ( 2,2 ) Latency bound of EE82M.20: SoC Design, Lecture 1 G. De Micheli 7 Module Selection Example 2 NOP 0 TIME 1 (1,1) 1 2 (1,2) (2,1) 10 TIME < TIME 7 8 TIME (2,2) 9 n NOP Latency bound of Fast multipliers for { v 1, v 2, v } Slower multiplier can be used elsewhere Less sharing Minimumlatency design uses fast multipliers only Impossible to use slow multipliers EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer 19

20 Lecture 17: Outline Allocation, binding and sharing Problem formulation Functional unit sharing Flat graphs Hierarchical graphs Register sharing Multiport register files/memories Bus sharing Extensions Module selection Datapath and control synthesis EE82M.20: SoC Design, Lecture 1 G. De Micheli 9 Data Path Synthesis Applied after resource binding Connectivity synthesis Connection of resources to multiplexers, busses and registers Control unit interface I/O ports Physical data path synthesis Specific techniques for regular datapath design Regularity extraction EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer 20

21 Data Path Synthesis Example REGISTERS a dx x y u r1 r2 enable Mux control ALU ALU control (,,<) c DATAPATH CONTROLUNIT EE82M.20: SoC Design, Lecture 1 G. De Micheli 1 Control Synthesis Synthesis of the control unit Sequencer Logic model Synchronous FSM Physical implementation Hardwired or distributed FSM Microcode EE82M.20: SoC Design, Lecture 1 G. De Micheli A. Gerstlauer 21

22 Control Synthesis Example NOP 0 TIME TIME 2 TIME 7 9 < 11 TIME reset reset NOP n 1,2,6,8,10 reset,7,9,11 s 1 s 2 reset reset s reset s EE82M.20: SoC Design, Lecture 1 G. De Micheli Lecture 17: Summary Resource sharing is reducible to vertex coloring or to clique covering Simple for flat graphs Intractable, but still easy in practice, for other graphs Resource sharing has several extensions Module selection Data path design and control synthesis are conceptually simple but still important steps Generated data path is an interconnection of blocks Control is one or more finitestate machines EE82M.20: SoC Design, Lecture 1 G. De Micheli 2018 A. Gerstlauer 22

ECE 5775 (Fall 17) High-Level Digital Design Automation. More Binding Pipelining

ECE 5775 (Fall 17) High-Level Digital Design Automation. More Binding Pipelining ECE 5775 (Fall 17) High-Level Digital Design Automation More Binding Pipelining Logistics Lab 3 due Friday 10/6 No late penalty for this assignment (up to 3 days late) HW 2 will be posted tomorrow 1 Agenda

More information

High-Level Synthesis

High-Level Synthesis High-Level Synthesis 1 High-Level Synthesis 1. Basic definition 2. A typical HLS process 3. Scheduling techniques 4. Allocation and binding techniques 5. Advanced issues High-Level Synthesis 2 Introduction

More information

Unit 2: High-Level Synthesis

Unit 2: High-Level Synthesis Course contents Unit 2: High-Level Synthesis Hardware modeling Data flow Scheduling/allocation/assignment Reading Chapter 11 Unit 2 1 High-Level Synthesis (HLS) Hardware-description language (HDL) synthesis

More information

EE382V: System-on-a-Chip (SoC) Design

EE382V: System-on-a-Chip (SoC) Design EE382V: System-on-a-Chip (SoC) Design Lecture 8 HW/SW Co-Design Sources: Prof. Margarida Jacome, UT Austin Andreas Gerstlauer Electrical and Computer Engineering University of Texas at Austin gerstl@ece.utexas.edu

More information

EE382V: System-on-a-Chip (SoC) Design

EE382V: System-on-a-Chip (SoC) Design EE382V: System-on-a-Chip (SoC) Design Lecture 10 Task Partitioning Sources: Prof. Margarida Jacome, UT Austin Prof. Lothar Thiele, ETH Zürich Andreas Gerstlauer Electrical and Computer Engineering University

More information

HIGH-LEVEL SYNTHESIS

HIGH-LEVEL SYNTHESIS HIGH-LEVEL SYNTHESIS Page 1 HIGH-LEVEL SYNTHESIS High-level synthesis: the automatic addition of structural information to a design described by an algorithm. BEHAVIORAL D. STRUCTURAL D. Systems Algorithms

More information

Introduction to Electronic Design Automation. Model of Computation. Model of Computation. Model of Computation

Introduction to Electronic Design Automation. Model of Computation. Model of Computation. Model of Computation Introduction to Electronic Design Automation Model of Computation Jie-Hong Roland Jiang 江介宏 Department of Electrical Engineering National Taiwan University Spring 03 Model of Computation In system design,

More information

High-Level Synthesis (HLS)

High-Level Synthesis (HLS) Course contents Unit 11: High-Level Synthesis Hardware modeling Data flow Scheduling/allocation/assignment Reading Chapter 11 Unit 11 1 High-Level Synthesis (HLS) Hardware-description language (HDL) synthesis

More information

High Level Synthesis

High Level Synthesis High Level Synthesis Design Representation Intermediate representation essential for efficient processing. Input HDL behavioral descriptions translated into some canonical intermediate representation.

More information

SCHEDULING II Giovanni De Micheli Stanford University

SCHEDULING II Giovanni De Micheli Stanford University SCHEDULING II Giovanni De Micheli Stanford University Scheduling under resource constraints Simplified models: Hu's algorithm. Heuristic algorithms: List scheduling. Force-directed scheduling. Hu's algorithm

More information

Datapath Allocation. Zoltan Baruch. Computer Science Department, Technical University of Cluj-Napoca

Datapath Allocation. Zoltan Baruch. Computer Science Department, Technical University of Cluj-Napoca Datapath Allocation Zoltan Baruch Computer Science Department, Technical University of Cluj-Napoca e-mail: baruch@utcluj.ro Abstract. The datapath allocation is one of the basic operations executed in

More information

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Hardware Design Environments Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Outline Welcome to COE 405 Digital System Design Design Domains and Levels of Abstractions Synthesis

More information

COE 561 Digital System Design & Synthesis Introduction

COE 561 Digital System Design & Synthesis Introduction 1 COE 561 Digital System Design & Synthesis Introduction Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum & Minerals Outline Course Topics Microelectronics Design

More information

HDL. Operations and dependencies. FSMs Logic functions HDL. Interconnected logic blocks HDL BEHAVIORAL VIEW LOGIC LEVEL ARCHITECTURAL LEVEL

HDL. Operations and dependencies. FSMs Logic functions HDL. Interconnected logic blocks HDL BEHAVIORAL VIEW LOGIC LEVEL ARCHITECTURAL LEVEL ARCHITECTURAL-LEVEL SYNTHESIS Motivation. Outline cgiovanni De Micheli Stanford University Compiling language models into abstract models. Behavioral-level optimization and program-level transformations.

More information

Administrivia. What is Synthesis? What is architectural synthesis? Approximately 20 1-hour lectures An assessed mini project.

Administrivia. What is Synthesis? What is architectural synthesis? Approximately 20 1-hour lectures An assessed mini project. Synthesis of Digital Architectures Self-contained course no previous requirements beyond compulsory courses all material is described in these notes and during the lectures Course materials will draw on

More information

High Level Synthesis. Shankar Balachandran Assistant Professor, Dept. of CSE IIT Madras

High Level Synthesis. Shankar Balachandran Assistant Professor, Dept. of CSE IIT Madras High Level Synthesis Shankar Balachandran Assistant Professor, Dept. of CSE IIT Madras shankar@cse.iitm.ac.in References and Copyright Tetbooks referred (none required) [Mic94] G. De Micheli Synthesis

More information

ECE 3060 VLSI and Advanced Digital Design

ECE 3060 VLSI and Advanced Digital Design ECE 3060 VLSI and Advanced Digital Design Lecture 16 Technology Mapping/Library Binding Outline Modeling and problem analysis Rule-based systems for library binding Algorithms for library binding structural

More information

Architectural-Level Synthesis. Giovanni De Micheli Integrated Systems Centre EPF Lausanne

Architectural-Level Synthesis. Giovanni De Micheli Integrated Systems Centre EPF Lausanne Architectural-Level Synthesis Giovanni De Micheli Integrated Systems Centre EPF Lausanne This presentation can be used for non-commercial purposes as long as this note and the copyright footers are not

More information

SpecC Methodology for High-Level Modeling

SpecC Methodology for High-Level Modeling EDP 2002 9 th IEEE/DATC Electronic Design Processes Workshop SpecC Methodology for High-Level Modeling Rainer Dömer Daniel D. Gajski Andreas Gerstlauer Center for Embedded Computer Systems Universitiy

More information

Retiming. Adapted from: Synthesis and Optimization of Digital Circuits, G. De Micheli Stanford. Outline. Structural optimization methods. Retiming.

Retiming. Adapted from: Synthesis and Optimization of Digital Circuits, G. De Micheli Stanford. Outline. Structural optimization methods. Retiming. Retiming Adapted from: Synthesis and Optimization of Digital Circuits, G. De Micheli Stanford Outline Structural optimization methods. Retiming. Modeling. Retiming for minimum delay. Retiming for minimum

More information

System Synthesis of Digital Systems

System Synthesis of Digital Systems System Synthesis Introduction 1 System Synthesis of Digital Systems Petru Eles, Zebo Peng System Synthesis Introduction 2 Literature: Introduction P. Eles, K. Kuchcinski and Z. Peng "System Synthesis with

More information

Lecture 20: High-level Synthesis (1)

Lecture 20: High-level Synthesis (1) Lecture 20: High-level Synthesis (1) Slides courtesy of Deming Chen Some slides are from Prof. S. Levitan of U. of Pittsburgh Outline High-level synthesis introduction High-level synthesis operations Scheduling

More information

Register Binding for FPGAs with Embedded Memory

Register Binding for FPGAs with Embedded Memory Register Binding for FPGAs with Embedded Memory Hassan Al Atat and Iyad Ouaiss iyad.ouaiss@lau.edu.lb Department of Computer Engineering Lebanese American University Byblos, Lebanon Abstract * The trend

More information

EEL 4783: HDL in Digital System Design

EEL 4783: HDL in Digital System Design EEL 4783: HDL in Digital System Design Lecture 4: HLS Intro* Prof. Mingjie Lin *Notes are drawn from the textbook and the George Constantinides notes 1 Course Material Sources 1) Low-Power High-Level Synthesis

More information

HIERARCHICAL DESIGN. RTL Hardware Design by P. Chu. Chapter 13 1

HIERARCHICAL DESIGN. RTL Hardware Design by P. Chu. Chapter 13 1 HIERARCHICAL DESIGN Chapter 13 1 Outline 1. Introduction 2. Components 3. Generics 4. Configuration 5. Other supporting constructs Chapter 13 2 1. Introduction How to deal with 1M gates or more? Hierarchical

More information

Outline HIERARCHICAL DESIGN. 1. Introduction. Benefits of hierarchical design

Outline HIERARCHICAL DESIGN. 1. Introduction. Benefits of hierarchical design Outline HIERARCHICAL DESIGN 1. Introduction 2. Components 3. Generics 4. Configuration 5. Other supporting constructs Chapter 13 1 Chapter 13 2 1. Introduction How to deal with 1M gates or more? Hierarchical

More information

4.1 Interval Scheduling

4.1 Interval Scheduling 41 Interval Scheduling Interval Scheduling Interval scheduling Job j starts at s j and finishes at f j Two jobs compatible if they don't overlap Goal: find maximum subset of mutually compatible jobs a

More information

Worst Case Execution Time Analysis for Synthesized Hardware

Worst Case Execution Time Analysis for Synthesized Hardware Worst Case Execution Time Analysis for Synthesized Hardware Jun-hee Yoo ihavnoid@poppy.snu.ac.kr Seoul National University, Seoul, Republic of Korea Xingguang Feng fengxg@poppy.snu.ac.kr Seoul National

More information

Controller FSM Design Issues : Correctness and Efficiency. Lecture Notes # 10. CAD Based Logic Design ECE 368

Controller FSM Design Issues : Correctness and Efficiency. Lecture Notes # 10. CAD Based Logic Design ECE 368 ECE 368 CAD Based Logic Design Lecture Notes # 10 Controller FSM Design Issues : Correctness and Efficiency SHANTANU DUTT Department of Electrical & Computer Engineering University of Illinois, Chicago

More information

HETEROGENEOUS MULTIPROCESSOR MAPPING FOR REAL-TIME STREAMING SYSTEMS

HETEROGENEOUS MULTIPROCESSOR MAPPING FOR REAL-TIME STREAMING SYSTEMS HETEROGENEOUS MULTIPROCESSOR MAPPING FOR REAL-TIME STREAMING SYSTEMS Jing Lin, Akshaya Srivasta, Prof. Andreas Gerstlauer, and Prof. Brian L. Evans Department of Electrical and Computer Engineering The

More information

System Level Design For Low Power. Yard. Doç. Dr. Berna Örs Yalçın

System Level Design For Low Power. Yard. Doç. Dr. Berna Örs Yalçın System Level Design For Low Power Yard. Doç. Dr. Berna Örs Yalçın References System-Level Design Methodology, Daniel D. Gajski Hardware-software co-design of embedded systems : the POLIS approach / by

More information

SISTEMI EMBEDDED. Computer Organization Central Processing Unit (CPU) Federico Baronti Last version:

SISTEMI EMBEDDED. Computer Organization Central Processing Unit (CPU) Federico Baronti Last version: SISTEMI EMBEDDED Computer Organization Central Processing Unit (CPU) Federico Baronti Last version: 20170516 Processing Unit A processor reads program instructions from the computer s memory and executes

More information

Coordinated Resource Optimization in Behavioral Synthesis

Coordinated Resource Optimization in Behavioral Synthesis Coordinated Resource Optimization in Behavioral Synthesis Jason Cong Bin Liu Junjuan Xu Computer Science Department, University of California, Los Angeles Email: {cong, bliu, irene.xu}@cs.ucla.edu Abstract

More information

Data paths and control logic

Data paths and control logic Data paths and control logic! Building larger digital systems " Include data, not just control inputs! An example! Building up toward project - MasterMind Autumn 2014 CSE390C - IX - Data Paths and Control

More information

Computer Organization

Computer Organization Computer Organization! Computer design as an application of digital logic design procedures! Computer = processing unit + memory system! Processing unit = control + datapath! Control = finite state machine

More information

Synthesis at different abstraction levels

Synthesis at different abstraction levels Synthesis at different abstraction levels System Level Synthesis Clustering. Communication synthesis. High-Level Synthesis Resource or time constrained scheduling Resource allocation. Binding Register-Transfer

More information

Controller Implementation--Part II

Controller Implementation--Part II Controller Implementation--Part II Alternative controller FSM implementation approaches based on: Classical Moore and Mealy machines Time-State: Divide and Conquer Jump counters Microprogramming (ROM)

More information

EECS150. Implement of Processor FSMs

EECS150. Implement of Processor FSMs EECS5 Section Controller Implementations Fall Implement of Processor FSMs Classical Finite State Machine Design Divide and Conquer Approach: Time-State Method Partition FSM into multiple communicating

More information

Computer Architecture Programming the Basic Computer

Computer Architecture Programming the Basic Computer 4. The Execution of the EXCHANGE Instruction The EXCHANGE routine reads the operand from the effective address and places it in DR. The contents of DR and AC are interchanged in the third microinstruction.

More information

Computer Organization. Structure of a Computer. Registers. Register Transfer. Register Files. Memories

Computer Organization. Structure of a Computer. Registers. Register Transfer. Register Files. Memories Computer Organization Structure of a Computer Computer design as an application of digital logic design procedures Computer = processing unit + memory system Processing unit = control + Control = finite

More information

VHDL simulation and synthesis

VHDL simulation and synthesis VHDL simulation and synthesis How we treat VHDL in this course You will not become an expert in VHDL after taking this course The goal is that you should learn how VHDL can be used for simulation and synthesis

More information

Power Efficient Register Assignment

Power Efficient Register Assignment Power Efficient Register Assignment Jui-Ming Chang and Massoud Pedram CENG Technical Report 95-03 Department of Electrical Engineering - Systems University of Southern Los Angeles, California 90089-2562

More information

CprE 583 Reconfigurable Computing

CprE 583 Reconfigurable Computing Recap 4:1 Multiplexer CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #18 VHDL for Synthesis I LIBRARY ieee

More information

state encoding with fewer bits has fewer equations to implement state encoding with more bits (e.g., one-hot) has simpler equations

state encoding with fewer bits has fewer equations to implement state encoding with more bits (e.g., one-hot) has simpler equations State minimization fewer states require fewer state bits fewer bits require fewer logic equations Encodings: state, inputs, outputs state encoding with fewer bits has fewer equations to implement however,

More information

Lecture1: introduction. Outline: History overview Central processing unite Register set Special purpose address registers Datapath Control unit

Lecture1: introduction. Outline: History overview Central processing unite Register set Special purpose address registers Datapath Control unit Lecture1: introduction Outline: History overview Central processing unite Register set Special purpose address registers Datapath Control unit 1 1. History overview Computer systems have conventionally

More information

Giovanni De Micheli. Integrated Systems Centre EPF Lausanne

Giovanni De Micheli. Integrated Systems Centre EPF Lausanne Two-level Logic Synthesis and Optimization Giovanni De Micheli Integrated Systems Centre EPF Lausanne This presentation can be used for non-commercial purposes as long as this note and the copyright footers

More information

EE 3170 Microcontroller Applications

EE 3170 Microcontroller Applications EE 3170 Microcontroller Applications Lecture 4 : Processors, Computers, and Controllers - 1.2 (reading assignment), 1.3-1.5 Based on slides for ECE3170 by Profs. Kieckhafer, Davis, Tan, and Cischke Outline

More information

Computer and Hardware Architecture I. Benny Thörnberg Associate Professor in Electronics

Computer and Hardware Architecture I. Benny Thörnberg Associate Professor in Electronics Computer and Hardware Architecture I Benny Thörnberg Associate Professor in Electronics Hardware architecture Computer architecture The functionality of a modern computer is so complex that no human can

More information

CPE 426/526 Chapter 12 - Synthesis Algorithms for Design Automation (Supplement) Dr. Rhonda Kay Gaede UAH

CPE 426/526 Chapter 12 - Synthesis Algorithms for Design Automation (Supplement) Dr. Rhonda Kay Gaede UAH CPE 426/526 Chapter 12 - Synthesis Algorithms for Design Automation (Supplement) Dr. Rhonda Kay Gaede UAH 1 12.4.5 Analysis of the Allocation Problem - Terminology Allocation is needed for,, and Two items

More information

CS250 VLSI Systems Design Lecture 9: Patterns for Processing Units and Communication Links

CS250 VLSI Systems Design Lecture 9: Patterns for Processing Units and Communication Links CS250 VLSI Systems Design Lecture 9: Patterns for Processing Units and Communication Links John Wawrzynek, Krste Asanovic, with John Lazzaro and Yunsup Lee (TA) UC Berkeley Fall 2010 Unit-Transaction Level

More information

Block diagram view. Datapath = functional units + registers

Block diagram view. Datapath = functional units + registers Computer design an application of digital logic design procedures Computer = processing unit + memory system Processing unit = control + datapath Control = finite state machine inputs = machine instruction,

More information

The University of Texas at Austin

The University of Texas at Austin EE382 (20): Computer Architecture - Parallelism and Locality Lecture 4 Parallelism in Hardware Mattan Erez The University of Texas at Austin EE38(20) (c) Mattan Erez 1 Outline 2 Principles of parallel

More information

Lecture outline. Graph coloring Examples Applications Algorithms

Lecture outline. Graph coloring Examples Applications Algorithms Lecture outline Graph coloring Examples Applications Algorithms Graph coloring Adjacent nodes must have different colors. How many colors do we need? Graph coloring Neighbors must have different colors

More information

EE382V-ICS: System-on-a-Chip (SoC) Design

EE382V-ICS: System-on-a-Chip (SoC) Design EE382V-ICS: System-on-a-Chip (SoC) High-Level Synthesis Sources: Jacob Abraham Andreas Gerstlauer Electrical and Computer Engineering University of Texas at Austin gerstl@ece.utexas.edu Lecture 13: Outline

More information

Co-synthesis and Accelerator based Embedded System Design

Co-synthesis and Accelerator based Embedded System Design Co-synthesis and Accelerator based Embedded System Design COE838: Embedded Computer System http://www.ee.ryerson.ca/~courses/coe838/ Dr. Gul N. Khan http://www.ee.ryerson.ca/~gnkhan Electrical and Computer

More information

Sequential Circuits. inputs Comb FFs. Outputs. Comb CLK. Sequential logic examples. ! Another way to understand setup/hold/propagation time

Sequential Circuits. inputs Comb FFs. Outputs. Comb CLK. Sequential logic examples. ! Another way to understand setup/hold/propagation time Sequential Circuits! Another way to understand setup/hold/propagation time inputs Comb FFs Comb Outputs CLK CSE 37 Spring 2 - Sequential Logic - Sequential logic examples! Finite state machine concept

More information

Conflict Graphs for Combinatorial Optimization Problems

Conflict Graphs for Combinatorial Optimization Problems Conflict Graphs for Combinatorial Optimization Problems Ulrich Pferschy joint work with Andreas Darmann and Joachim Schauer University of Graz, Austria Introduction Combinatorial Optimization Problem CO

More information

Lecture 4: Advanced Pipelines. Data hazards, control hazards, multi-cycle in-order pipelines (Appendix A.4-A.10)

Lecture 4: Advanced Pipelines. Data hazards, control hazards, multi-cycle in-order pipelines (Appendix A.4-A.10) Lecture 4: Advanced Pipelines Data hazards, control hazards, multi-cycle in-order pipelines (Appendix A.4-A.10) 1 Hazards Structural hazards: different instructions in different stages (or the same stage)

More information

Control and Datapath 8

Control and Datapath 8 Control and Datapath 8 Engineering attempts to develop design methods that break a problem up into separate steps to simplify the design and increase the likelihood of a correct solution. Digital system

More information

Implementing Another ISA, Basic Pipelining

Implementing Another ISA, Basic Pipelining EE360N: Computer Architecture Lecture #4 Department of Electical and Computer Engineering The University of Texas at Austin September 24, 2008 Disclaimer: The contents of this document are scribe notes

More information

FILTER SYNTHESIS USING FINE-GRAIN DATA-FLOW GRAPHS. Waqas Akram, Cirrus Logic Inc., Austin, Texas

FILTER SYNTHESIS USING FINE-GRAIN DATA-FLOW GRAPHS. Waqas Akram, Cirrus Logic Inc., Austin, Texas FILTER SYNTHESIS USING FINE-GRAIN DATA-FLOW GRAPHS Waqas Akram, Cirrus Logic Inc., Austin, Texas Abstract: This project is concerned with finding ways to synthesize hardware-efficient digital filters given

More information

EECS Components and Design Techniques for Digital Systems. Lec 20 RTL Design Optimization 11/6/2007

EECS Components and Design Techniques for Digital Systems. Lec 20 RTL Design Optimization 11/6/2007 EECS 5 - Components and Design Techniques for Digital Systems Lec 2 RTL Design Optimization /6/27 Shauki Elassaad Electrical Engineering and Computer Sciences University of California, Berkeley Slides

More information

Design of Embedded DSP Processors

Design of Embedded DSP Processors Design of Embedded DSP Processors Unit 3: Microarchitecture, Register file, and ALU 9/11/2017 Unit 3 of TSEA26-2017 H1 1 Contents 1. Microarchitecture and its design 2. Hardware design fundamentals 3.

More information

Computer Architecture

Computer Architecture Computer Architecture Lecture 1: Digital logic circuits The digital computer is a digital system that performs various computational tasks. Digital computers use the binary number system, which has two

More information

Lecture 7: Introduction to Co-synthesis Algorithms

Lecture 7: Introduction to Co-synthesis Algorithms Design & Co-design of Embedded Systems Lecture 7: Introduction to Co-synthesis Algorithms Sharif University of Technology Computer Engineering Dept. Winter-Spring 2008 Mehdi Modarressi Topics for today

More information

MOJTABA MAHDAVI Mojtaba Mahdavi DSP Design Course, EIT Department, Lund University, Sweden

MOJTABA MAHDAVI Mojtaba Mahdavi DSP Design Course, EIT Department, Lund University, Sweden High Level Synthesis with Catapult MOJTABA MAHDAVI 1 Outline High Level Synthesis HLS Design Flow in Catapult Data Types Project Creation Design Setup Data Flow Analysis Resource Allocation Scheduling

More information

ECE 341 Midterm Exam

ECE 341 Midterm Exam ECE 341 Midterm Exam Time allowed: 75 minutes Total Points: 75 Points Scored: Name: Problem No. 1 (8 points) For each of the following statements, indicate whether the statement is TRUE or FALSE: (a) A

More information

Register Transfer Methodology II

Register Transfer Methodology II Register Transfer Methodology II Chapter 12 1 Outline 1. Design example: One shot pulse generator 2. Design Example: GCD 3. Design Example: UART 4. Design Example: SRAM Interface Controller 5. Square root

More information

Outline. Register Transfer Methodology II. 1. One shot pulse generator. Refined block diagram of FSMD

Outline. Register Transfer Methodology II. 1. One shot pulse generator. Refined block diagram of FSMD Outline Register Transfer Methodology II 1. Design example: One shot pulse generator 2. Design Example: GCD 3. Design Example: UART 4. Design Example: SRAM Interface Controller 5. Square root approximation

More information

Digital Signal Processing for Analog Input

Digital Signal Processing for Analog Input Digital Signal Processing for Analog Input Arnav Agharwal Saurabh Gupta April 25, 2009 Final Report 1 Objective The object of the project was to implement a Fast Fourier Transform. We implemented the Radix

More information

BEHAVIORAL SYNTHESIS: AN OVERVIEW

BEHAVIORAL SYNTHESIS: AN OVERVIEW CHAPTER 6 BEHAVIORAL SYNTHESIS: AN OVERVIEW REINALDO A. BERGAMASCHI IBM Thomas J. Watson Research Center, P.O. Box 218, Yorktown Heights, NY 10598, USA., Tel: 1 914 945 3903, Fax: 1 914 945 4469, e-mail:

More information

Hardware-Software Codesign

Hardware-Software Codesign Hardware-Software Codesign 4. System Partitioning Lothar Thiele 4-1 System Design specification system synthesis estimation SW-compilation intellectual prop. code instruction set HW-synthesis intellectual

More information

Lecture Compiler Backend

Lecture Compiler Backend Lecture 19-23 Compiler Backend Jianwen Zhu Electrical and Computer Engineering University of Toronto Jianwen Zhu 2009 - P. 1 Backend Tasks Instruction selection Map virtual instructions To machine instructions

More information

Lecture 21: High-level Synthesis (2)

Lecture 21: High-level Synthesis (2) Lecture 21: High-level Synthesis (2) Slides courtesy of Deming Chen Outline Binding for DFG Left-edge algorithm Network flow algorithm Binding to reduce interconnects Simultaneous scheduling and binding

More information

Graphs and Discrete Structures

Graphs and Discrete Structures Graphs and Discrete Structures Nicolas Bousquet Louis Esperet Fall 2018 Abstract Brief summary of the first and second course. É 1 Chromatic number, independence number and clique number The chromatic

More information

Multiagent Graph Coloring: Pareto Efficiency, Fairness and Individual Rationality By Yaad Blum, Jeffrey S. Rosenchein

Multiagent Graph Coloring: Pareto Efficiency, Fairness and Individual Rationality By Yaad Blum, Jeffrey S. Rosenchein Multiagent Graph Coloring: Pareto Efficiency, Fairness and Individual Rationality By Yaad Blum, Jeffrey S. Rosenchein Presented by: Simina Brânzei Outline Introduction Background Coloring from an Economics

More information

1 Hazards COMP2611 Fall 2015 Pipelined Processor

1 Hazards COMP2611 Fall 2015 Pipelined Processor 1 Hazards Dependences in Programs 2 Data dependence Example: lw $1, 200($2) add $3, $4, $1 add can t do ID (i.e., read register $1) until lw updates $1 Control dependence Example: bne $1, $2, target add

More information

Grundlagen Microcontroller Processor Core. Günther Gridling Bettina Weiss

Grundlagen Microcontroller Processor Core. Günther Gridling Bettina Weiss Grundlagen Microcontroller Processor Core Günther Gridling Bettina Weiss 1 Processor Core Architecture Instruction Set Lecture Overview 2 Processor Core Architecture Computes things > ALU (Arithmetic Logic

More information

Chapter 02: Computer Organization Functional units and components in a computer organization Part 3 Bus Structures

Chapter 02: Computer Organization Functional units and components in a computer organization Part 3 Bus Structures Chapter 02: Computer Organization Functional units and components in a computer organization Part 3 Bus Structures Objective: Understand the IO Subsystem and Understand Bus Structures Understand the functions

More information

Chapter 3. Top Level View of Computer Function and Interconnection. Yonsei University

Chapter 3. Top Level View of Computer Function and Interconnection. Yonsei University Chapter 3 Top Level View of Computer Function and Interconnection Contents Computer Components Computer Function Interconnection Structures Bus Interconnection PCI 3-2 Program Concept Computer components

More information

Hardware Accelerators

Hardware Accelerators Hardware Accelerators José Costa Software for Embedded Systems Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2014-04-08 José Costa (DEI/IST) Hardware Accelerators 1 Outline Hardware

More information

Previous Exam Questions System-on-a-Chip (SoC) Design

Previous Exam Questions System-on-a-Chip (SoC) Design This image cannot currently be displayed. EE382V Problem: System Analysis (20 Points) This is a simple single microprocessor core platform with a video coprocessor, which is configured to process 32 bytes

More information

CS294-48: Hardware Design Patterns Berkeley Hardware Pattern Language Version 0.5. Krste Asanovic UC Berkeley Fall 2009

CS294-48: Hardware Design Patterns Berkeley Hardware Pattern Language Version 0.5. Krste Asanovic UC Berkeley Fall 2009 CS294-48: Hardware Design Patterns Berkeley Hardware Pattern Language Version 0.5 Krste Asanovic UC Berkeley Fall 2009 Overall Problem Statement MP3 bit string Audio Application(s) (Berkeley) Hardware

More information

Hardware/Software Codesign

Hardware/Software Codesign Hardware/Software Codesign 3. Partitioning Marco Platzner Lothar Thiele by the authors 1 Overview A Model for System Synthesis The Partitioning Problem General Partitioning Methods HW/SW-Partitioning Methods

More information

Inf2C - Computer Systems Lecture Processor Design Single Cycle

Inf2C - Computer Systems Lecture Processor Design Single Cycle Inf2C - Computer Systems Lecture 10-11 Processor Design Single Cycle Boris Grot School of Informatics University of Edinburgh Previous lectures Combinational circuits Combinations of gates (INV, AND, OR,

More information

Scheduling in RTL Design Methodology

Scheduling in RTL Design Methodology cheduling in RTL Design Methodology Dongwan hin and Daniel Gajski Technical Report IC-01-65 July 1, 2001 Center for Embedded Computer ystems Information and Computer cience University of California, Irvine

More information

RS-FDRA: A Register-Sensitive Software Pipelining Algorithm for Embedded VLIW Processors

RS-FDRA: A Register-Sensitive Software Pipelining Algorithm for Embedded VLIW Processors IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 21, NO. 12, DECEMBER 2002 1395 RS-FDRA: A Register-Sensitive Software Pipelining Algorithm for Embedded VLIW Processors

More information

Synthesis of Language Constructs. 5/10/04 & 5/13/04 Hardware Description Languages and Synthesis

Synthesis of Language Constructs. 5/10/04 & 5/13/04 Hardware Description Languages and Synthesis Synthesis of Language Constructs 1 Nets Nets declared to be input or output ports are retained Internal nets may be eliminated due to logic optimization User may force a net to exist trireg, tri0, tri1

More information

Levels in Processor Design

Levels in Processor Design Levels in Processor Design Circuit design Keywords: transistors, wires etc.results in gates, flip-flops etc. Logical design Putting gates (AND, NAND, ) and flip-flops together to build basic blocks such

More information

Advanced Design System 1.5. DSP Synthesis

Advanced Design System 1.5. DSP Synthesis Advanced Design System 1.5 DSP Synthesis December 2000 Notice The information contained in this document is subject to change without notice. Agilent Technologies makes no warranty of any kind with regard

More information

ECE 551: Digital System Design & Synthesis

ECE 551: Digital System Design & Synthesis ECE 551: Digital System Design & Synthesis Lecture Set 9 9.1: Constraints and Timing (In separate file) 9.2: Optimization - Part 1 (In separate file) 9.3: Optimization - Part 2 04/14/03 1 ECE 551 - Digital

More information

CS 250 VLSI Design Lecture 11 Design Verification

CS 250 VLSI Design Lecture 11 Design Verification CS 250 VLSI Design Lecture 11 Design Verification 2012-9-27 John Wawrzynek Jonathan Bachrach Krste Asanović John Lazzaro TA: Rimas Avizienis www-inst.eecs.berkeley.edu/~cs250/ IBM Power 4 174 Million Transistors

More information

CS250 VLSI Systems Design Lecture 8: Introduction to Hardware Design Patterns

CS250 VLSI Systems Design Lecture 8: Introduction to Hardware Design Patterns CS250 VLSI Systems Design Lecture 8: Introduction to Hardware Design Patterns John Wawrzynek, Jonathan Bachrach, with Krste Asanovic, John Lazzaro and Rimas Avizienis (TA) UC Berkeley Fall 2012 Lecture

More information

ECE 545 Lecture 12. Datapath vs. Controller. Structure of a Typical Digital System Data Inputs. Required reading. Design of Controllers

ECE 545 Lecture 12. Datapath vs. Controller. Structure of a Typical Digital System Data Inputs. Required reading. Design of Controllers ECE 545 Lecture 12 Design of Controllers Finite State Machines and Algorithmic State Machine (ASM) Charts Required reading P. Chu, using VHDL Chapter 1, Finite State Machine: Principle & Practice Chapter

More information

Binary Decision Diagrams and Symbolic Model Checking

Binary Decision Diagrams and Symbolic Model Checking Binary Decision Diagrams and Symbolic Model Checking Randy Bryant Ed Clarke Ken McMillan Allen Emerson CMU CMU Cadence U Texas http://www.cs.cmu.edu/~bryant Binary Decision Diagrams Restricted Form of

More information

High-Level Power Estimation and Low-Power Design Space Exploration for FPGAs

High-Level Power Estimation and Low-Power Design Space Exploration for FPGAs High-Level Power Estimation and Low-Power Design Space Exploration for FPGAs Deming Chen Department of ECE University of Illinois, Urbana-Champaign dchen@uiuc.edu Jason Cong, Yiping Fan, Zhiru Zhang Computer

More information

Topics. Verilog. Verilog vs. VHDL (2) Verilog vs. VHDL (1)

Topics. Verilog. Verilog vs. VHDL (2) Verilog vs. VHDL (1) Topics Verilog Hardware modeling and simulation Event-driven simulation Basics of register-transfer design: data paths and controllers; ASM charts. High-level synthesis Initially a proprietary language,

More information

MODELING LANGUAGES AND ABSTRACT MODELS. Giovanni De Micheli Stanford University. Chapter 3 in book, please read it.

MODELING LANGUAGES AND ABSTRACT MODELS. Giovanni De Micheli Stanford University. Chapter 3 in book, please read it. MODELING LANGUAGES AND ABSTRACT MODELS Giovanni De Micheli Stanford University Chapter 3 in book, please read it. Outline Hardware modeling issues: Representations and models. Issues in hardware languages.

More information

Tailoring the 32-Bit ALU to MIPS

Tailoring the 32-Bit ALU to MIPS Tailoring the 32-Bit ALU to MIPS MIPS ALU extensions Overflow detection: Carry into MSB XOR Carry out of MSB Branch instructions Shift instructions Slt instruction Immediate instructions ALU performance

More information

SoC Design for the New Millennium Daniel D. Gajski

SoC Design for the New Millennium Daniel D. Gajski SoC Design for the New Millennium Daniel D. Gajski Center for Embedded Computer Systems University of California, Irvine www.cecs.uci.edu/~gajski Outline System gap Design flow Model algebra System environment

More information