Behavioral Synthesis Outline –Synthesis Procedure –Example –Domain-Specific Synthesis –Silicon Compilers –Example Tools Goal –Understand behavioral synthesis.

Slides:



Advertisements
Similar presentations
Combinational Logic.
Advertisements

Table 7.1 Verilog Operators.
ECE Synthesis & Verification - Lecture 2 1 ECE 667 Spring 2011 ECE 667 Spring 2011 Synthesis and Verification of Digital Circuits High-Level (Architectural)
Control path Recall that the control path is the physical entity in a processor which: fetches instructions, fetches operands, decodes instructions, schedules.
High Level Languages: A Comparison By Joel Best. 2 Sources The Challenges of Synthesizing Hardware from C-Like Languages  by Stephen A. Edwards High-Level.
Give qualifications of instructors: DAP
ECE 551 Digital System Design & Synthesis Lecture 08 The Synthesis Process Constraints and Design Rules High-Level Synthesis Options.
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
ELEN 468 Lecture 151 ELEN 468 Advanced Logic Design Lecture 15 Synthesis of Language Construct I.
Kazi Spring 2008CSCI 6601 CSCI-660 Introduction to VLSI Design Khurram Kazi.
The Design Process Outline Goal Reading Design Domain Design Flow
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –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.
Chapter 7 Design Implementation (II)
Digital Design – Optimizations and Tradeoffs
1 EECS Components and Design Techniques for Digital Systems Lec 21 – RTL Design Optimization 11/16/2004 David Culler Electrical Engineering and Computer.
Recap – Our First Computer WR System Bus 8 ALU Carry output A B S C OUT F 8 8 To registers’ input/output and clock inputs Sequence of control signal combinations.
Verilog Code Generation for an ASIP Design Environment Nathan Kitchen Vinay Krishnan Mentor: Scott Weber (MESCAL) EE 244/249 Joint Project Fall 2002.
CSE241 RTL Performance.1Kahng & Cichy, UCSD ©2003 CSE241A VLSI Digital Circuits Winter 2003 Recitation 2.5: Performance Coding.
331 W05.1Spring :332:331 Computer Architecture and Assembly Language Spring 2006 Week 5: VHDL Programming [Adapted from Dave Patterson’s UCB CS152.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts,
Introduction to VHDL (part 2)
Shashi Kumar 1 Logic Synthesis: Course Introduction Shashi Kumar Embedded System Group Department of Electronics and Computer Engineering Jönköping Univ.
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 {
Synthesis Presented by: Ms. Sangeeta L. Mahaddalkar ME(Microelectronics) Sem II Subject: Subject:ASIC Design and FPGA.
Introduction to VHDL Arab Academy for Science, Technology & Maritime Transport Computer Engineering Department Magdy Saeb, Ph.D.
Sub-expression elimination Logic expressions: –Performed by logic optimization. –Kernel-based methods. Arithmetic expressions: –Search isomorphic patterns.
Section 10: Advanced Topics 1 M. Balakrishnan Dept. of Comp. Sci. & Engg. I.I.T. Delhi.
1 H ardware D escription L anguages Modeling Digital Systems.
Lecture 9. MIPS Processor Design – Instruction Fetch Prof. Taeweon Suh Computer Science Education Korea University 2010 R&E Computer System Education &
VHDL Introduction. V- VHSIC Very High Speed Integrated Circuit H- Hardware D- Description L- Language.
1 Towards Optimal Custom Instruction Processors Wayne Luk Kubilay Atasu, Rob Dimond and Oskar Mencer Department of Computing Imperial College London HOT.
L11: Lower Power High Level Synthesis(2) 성균관대학교 조 준 동 교수
Modern VLSI Design 4e: Chapter 8 Copyright  2008 Wayne Wolf Topics Basics of register-transfer design: –data paths and controllers; –ASM charts. Pipelining.
Chap 7. Register Transfers and Datapaths. 7.1 Datapaths and Operations Two types of modules of digital systems –Datapath perform data-processing operations.
Module 1.2 Introduction to Verilog
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
Kazi ECE 6811 ECE 681 VLSI Design Automation Khurram Kazi Thanks to Automation press THE button outcomes the Chip !!! Reality or Myth.
(1) Basic Language Concepts © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
11/17/2007DSD,USIT,GGSIPU1 RTL Systems References: 1.Introduction to Digital System by Milos Ercegovac,Tomas Lang, Jaime H. Moreno; wiley publisher 2.Digital.
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
ECE-C662 Lecture 2 Prawat Nagvajara
IMPLEMENTATION OF MIPS 64 WITH VERILOG HARDWARE DESIGN LANGUAGE BY PRAMOD MENON CET520 S’03.
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.
CSCI-365 Computer Organization Lecture Note: Some slides and/or pictures in the following are adapted from: Computer Organization and Design, Patterson.
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)
Data Flow Modeling in VHDL
IAY 0600 Digital Systems Design Register Transfer Level Design (GCD example) Lab. 7 Alexander Sudnitson Tallinn University of Technology.
ENG241 Digital Design Week #7 Sequential Circuits (Part B)
Processor Organization and Architecture Module III.
1  2004 Morgan Kaufmann Publishers No encoding: –1 bit for each datapath operation –faster, requires more memory (logic) –used for Vax 780 — an astonishing.

Logic Simulation 1 Outline –Logic Simulation –Logic Design Description –Logic Models Goal –Understand logic simulation problem –Understand logic models.
Register Transfer Specification And Design
Control & Execution Finite State Machines for Control MIPS Execution.
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
Lesson 4 Synchronous Design Architectures: Data Path and High-level Synthesis (part two) Sept EE37E Adv. Digital Electronics.
VHDL (VHSIC Hardware Description Language)
A SoC Design Automation Seoul National University
VHDL Introduction.
Architecture Synthesis
HIGH LEVEL SYNTHESIS.
Hardware Modeling & Synthesis Using VHDL
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.
Digital Designs – What does it take
Presentation transcript:

Behavioral Synthesis Outline –Synthesis Procedure –Example –Domain-Specific Synthesis –Silicon Compilers –Example Tools Goal –Understand behavioral synthesis algorithms –Overview behavioral synthesis tools

Why is Behavioral Synthesis Hard? Compilers have been around for years, why not HLL compilers? Complicated constraints –timing constraints »bus protocols »pipelining –physical constraints »registers and ALUs are expensive »communications (muxes, wiring) is expensive »packaging hierarchy Heterogeneity –separation of data and control logic –wide range of RTL primitives »ALU, ROM, MUX

Synthesis Procedure Parse behavioral description into data flow graph –equivalent to compiler intermediate code Optimize data flow graph –compiler-like operations Schedule operations –assign operations to clock cycles (in synchronous system) Cluster operations –group connected components together Allocate RTL resources –place values in registers –place operations in ALUs –data transfers on wires and MUXs Generate control logic –microcode, PLA, random logic –fit to clock cycles mux reg + if (a == b) out = 1; else out = 0;

Data Flow Optimization Transform data flow –minimize cost (operations) –minimize delay (path length) Compiler-like transformations –loop unrolling –code motion –strength reduction BAABAB D BC AA D BC A X +

Scheduling Assign operations to clock cycles –balance speed vs. cost D BC AA D B C A A clock cycles 2 ALUs 5 clock cycles 1 ALU

Clustering Cluster operations based on connectivity –connected components Uses –guide later package partitioning –guide binding to RTL modules –guide chip place and route

Allocation and Binding Map data flow to RTL components –allocate operator and register components –bind operations and values to them –minimize total cost of components Cost models –cost for different operators –cost for register bits –determined by RTL implementation experience Approach –NP-hard search problem »related to graph covering »cover data flow graph with RTL modules »minimax - EMUCS –maximum munching - like code generation –tricky trade-offs »e.g. adder and subtractor vs. one ALU A B A/B cost: 5

Control Logic Generation State Machine –transformed along with data flow –specify clock cycles, signal values –inputs from conditionals –outputs for muxes, ALUs, etc. Clocking –gating clocks with control values –generally a non-issue today Approach –ROM microcode –PLA state machines –random logic state machines –state assignment, optimization left for RTL synthesis S0 S1 S2 j=1 k=0 S3 k=4 O=00 O=01 O=10O=11

Synthesis Example 4-bit Up/Down Counter –4-bit input "countin" –4-bit output "countout" –up/down control "up" –count control "count" –internal state "i" –implied clock Behavior –up = 1 => count up –up = 0 => count down –count = 1 => count –count = 0 => load 4 countin i countout up count clock

Verilog Description /* Programmable 4-bit up/down counter */ MODULE COUNTER (COUNTIN: IN, UP: IN, COUNT: IN, COUNTOUT: OUT); EXTERNAL COUNTER; DCL COUNTIN BIT(4), /* programming input */ UP BIT(1), /* 1=up, 0=down */ COUNT BIT(1), /* 1=count, 0=program */ COUNTOUT BIT(4); /* counter output */ INTERNAL COUNTER; DCL I BIT(4); /* counting variable */ BODY COUNTER; DO INFINITE LOOP COUNTOUT:=I; IF COUNT THEN IF UP THEN I:=I+1; ELSE i:=I-1; ENDIF; ELSE I=COUNTIN; ENDIF; ENDDO; END COUNTER;

VHDL Description package vvectors is subtype bit32 is integer; subtype bit4 is integer range 0 to 15; subtype bit16 is integer range 0 to 65535; end vvectors;... use work.vvectors.all; entity counter is port (clock : in bit; countin : in bit4; up, count : in bit; countout : out bit4); end counter;

VHDL Description cont. architecture behavior of counter is begin process variable i: bit4 := 0; begin wait until clock = '1'; countout <= i; if (count = '1') then if (up = '1') then if (i = bit4'high) then i := bit4'low; else i := i+1; end if; else if (i = bit4'low) then i := bit4'high; else i := i-1; end if; else i := countin; end if; end process; end behavior;

Parsed Data Flow + i if 11 up i if count countin loop start countout -

Optimized and Scheduled Data Flow + i i if count countin cycle j countout cycle j+1 if +1 up

RTL Bindings 4-bit adder mux +1 up count countin countout 4-bit reg clock 4-bit ALU mux add/sub (up) count countin countout 4-bit reg clock 1

Synthesis Issues RTL library –the “instruction set” –synthesis results strongly depend on it »in example, really want up/down RTL module –RISC approach does not apply since circuits are CISC »ALU, adder, up/down counter, incrementer,... Bottom-up feedback –timing and cost information –results can change radically with slightly different costs »e.g. ALU cheaper, mux more expensive vs.

Domain-Specific Synthesis Limit synthesis to subset of behaviors –instruction set processors –digital signal processors –analog signal processors –state-machine controllers Specialized input language –more precision Specialized transformations –no control in DSP Specialized RTL library –bit-serial DSP Examples –CATHEDRAL I, II, III, IV –LAGER

Silicon Compilers Map directly from behavior to layout –developed at Caltech –original focus on datapaths with PLA/ROM control –tools often developed for specific chip project »SCHEME chip at MIT »OM1, OM2 at Caltech Simple optimization, scheduling, binding –requires many user hints Primarily module generators –direct RTL to layout synthesis Original idea died out –too restrictive –lives on in module generators, DSP synthesis

Example Tools System Architect’s Workbench (CMU) VSS (UC Irvine) Olympus/Hercules (Stanford) Alliance (Univ. PMC) Yorktown Silicon Compiler (IBM) MIMOLA (Univ. Dortmund) BLIS (UCB) CATHEDRAL I..IV (Univ. Leuven) LAGER (UCB)