Introduction to High-Level Synthesis ECE 699: Lecture 12.

Slides:



Advertisements
Similar presentations
Reconfigurable Computing After a Decade: A New Perspective and Challenges For Hardware-Software Co-Design and Development Tirumale K Ramesh, Ph.D. Boeing.
Advertisements

© 2003 Xilinx, Inc. All Rights Reserved Course Wrap Up DSP Design Flow.
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.
Evolution and History of Programming Languages Software/Hardware/System.
LOGO HW/SW Co-Verification -- Mentor Graphics® Seamless CVE By: Getao Liang March, 2006.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL FPGA Platforms High Level Language (HLL) Design Flows ECE 448 Lecture 21.
Extensible Processors. 2 ASIP Gain performance by:  Specialized hardware for the whole application (ASIC). −  Almost no flexibility. −High cost.  Use.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.
Tejas Bhatt and Dennis McCain Hardware Prototype Group, NRC/Dallas Matlab as a Development Environment for FPGA Design Tejas Bhatt June 16, 2005.
ECE 699: Lecture 2 ZYNQ Design Flow.
Foundation and XACTstepTM Software
1 Chapter 7 Design Implementation. 2 Overview 3 Main Steps of an FPGA Design ’ s Implementation Design architecture Defining the structure, interface.
LOGO “ Add your company slogan ” Comparative analysis of High Level Programming for Reconfigurable Computers: Methodology and Empirical Study Wen-qian.
(1) Introduction © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
© 2011 Xilinx, Inc. All Rights Reserved Intro to System Generator This material exempt per Department of Commerce license exception TSU.
© Copyright Alvarion Ltd. Hardware Acceleration February 2006.
Delevopment Tools Beyond HDL
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
1 Chapter 2. The System-on-a-Chip Design Process Canonical SoC Design System design flow The Specification Problem System design.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL High Level Language (HLL) Design Flow Reconfigurable Supercomputers ECE 448 Lecture 21.
1 VERILOG Fundamentals Workshop סמסטר א ' תשע " ה מרצה : משה דורון הפקולטה להנדסה Workshop Objectives: Gain basic understanding of the essential concepts.
Performance and Overhead in a Hybrid Reconfigurable Computer O. D. Fidanci 1, D. Poznanovic 2, K. Gaj 3, T. El-Ghazawi 1, N. Alexandridis 1 1 George Washington.
Trigger design engineering tools. Data flow analysis Data flow analysis through the entire Trigger Processor allow us to refine the optimal architecture.
Chap. 1 Overview of Digital Design with Verilog. 2 Overview of Digital Design with Verilog HDL Evolution of computer aided digital circuit design Emergence.
Ch.9 CPLD/FPGA Design TAIST ICTES Program VLSI Design Methodology Hiroaki Kunieda Tokyo Institute of Technology.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
Automated Design of Custom Architecture Tulika Mitra
1 HandleC ) prepared by: Mitra Khorram Abadi professor: Dr. Maziar Goudarzi A language based on ISO-C, extended for hardware design ( HandleC ) prepared.
Research on Reconfigurable Computing Using Impulse C Carmen Li Shen Mentor: Dr. Russell Duren February 1, 2008.
IEEE ICECS 2010 SysPy: Using Python for processor-centric SoC design Evangelos Logaras Elias S. Manolakos {evlog, Department of Informatics.
Gaj1P230/MAPLD 2004 Elliptic Curve Cryptography over GF(2 m ) on a Reconfigurable Computer: Polynomial Basis vs. Optimal Normal Basis Representation Comparative.
ESL and High-level Design: Who Cares? Anmol Mathur CTO and co-founder, Calypto Design Systems.
Array Synthesis in SystemC Hardware Compilation Authors: J. Ditmar and S. McKeever Oxford University Computing Laboratory, UK Conference: Field Programmable.
1 Fly – A Modifiable Hardware Compiler C. H. Ho 1, P.H.W. Leong 1, K.H. Tsoi 1, R. Ludewig 2, P. Zipf 2, A.G. Oritz 2 and M. Glesner 2 1 Department of.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL Lecture 18 FPGA Boards & FPGA-based Supercomputers High Level Language (HLL) Design Methodology.
Introduction to FPGA Created & Presented By Ali Masoudi For Advanced Digital Communication Lab (ADC-Lab) At Isfahan University Of technology (IUT) Department.
Evaluating and Improving an OpenMP-based Circuit Design Tool Tim Beatty, Dr. Ken Kent, Dr. Eric Aubanel Faculty of Computer Science University of New Brunswick.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL Practice final exam Solutions ECE 448 Review Session.
FPGA-based Supercomputers
Survey of Reconfigurable Logic Technologies
ASIC/FPGA design flow. Design Flow Detailed Design Detailed Design Ideas Design Ideas Device Programming Device Programming Timing Simulation Timing Simulation.
ECE 587 Hardware/Software Co- Design Lecture 23 LLVM and xPilot Professor Jia Wang Department of Electrical and Computer Engineering Illinois Institute.
CoDeveloper Overview Updated February 19, Introducing CoDeveloper™  Targeting hardware/software programmable platforms  Target platforms feature.
SUBJECT : DIGITAL ELECTRONICS CLASS : SEM 3(B) TOPIC : INTRODUCTION OF VHDL.
EMT 351/4 DIGITAL IC DESIGN Week # 1 EDA & HDL.
High-Level Synthesis.
System-on-Chip Design
Programmable Hardware: Hardware or Software?
Andreas Hoffmann Andreas Ropers Tim Kogel Stefan Pees Prof
Dynamo: A Runtime Codesign Environment
ENG3050 Embedded Reconfigurable Computing Systems
FPGAs in AWS and First Use Cases, Kees Vissers
Programmable Logic Memories
Reconfigurable Computing
Matlab as a Development Environment for FPGA Design
High Level Synthesis Overview
Embedded systems, Lab 1: notes
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
ECE 699: Lecture 3 ZYNQ Design Flow.
HIGH LEVEL SYNTHESIS.
THE ECE 554 XILINX DESIGN PROCESS
ECE 448 Lecture 6 Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts, and VHDL Code.
H a r d w a r e M o d e l i n g O v e r v i e w
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
THE ECE 554 XILINX DESIGN PROCESS
Xilinx Alliance Series
(Lecture by Hasan Hassan)
Presentation transcript:

Introduction to High-Level Synthesis ECE 699: Lecture 12

Required Reading Chapter 14: Spotlight on High-Level Synthesis Chapter 15: Vivado HLS: A Closer Look The ZYNQ Book S. Neuendorffer and F. Martinez-Vallina, Building Zynq Accelerators with Vivado High Level Synthesis, FPGA 2013 Tutorial

Recommended Reading G. Martin and G. Smith, “High-Level Synthesis: Past, Present, and Future,” IEEE Design & Test of Computers, IEEE, vol. 26, no. 4, pp. 18–25, July Vivado Design Suite Tutorial, High-Level Synthesis, UG871, Nov Vivado Design Suite User Guide, High-Level Synthesis, UG902, Oct Introduction to FPGA Design with Vivado High-Level Synthesis, UG998, Jul

4 Behavioral Synthesis Algorithm I/O Behavior Target Library Behavioral Synthesis RTL Design Logic Synthesis Gate level Netlist Classic RTL Design Flow

5 Need for High-Level Design Higher level of abstraction Modeling complex designs Reduce design efforts Fast turnaround time Technology independence Ease of HW/SW partitioning

6ECE 448 – FPGA and ASIC Design with VHDL Platform Mapping SW/HW Partitioning Software (executed in the microprocessor system) Hardware (executed in the reconfigurable processor system) Program

7ECE 448 – FPGA and ASIC Design with VHDL SW/HW Partitioning & Coding Traditional Approach Specification SW/HW Partitioning SW Coding HW Coding SW Compilation HW Compilation SW ProfilingHW Profiling

8ECE 448 – FPGA and ASIC Design with VHDL SW/HW Partitioning & Coding New Approach Specification SW/HW Coding SW Compilation HW Compilation SW ProfilingHW Profiling SW/HW Partitioning

9 Advantages of Behavioral Synthesis Easy to model higher level of complexities Smaller in size source compared to RTL code Generates RTL much faster than manual method Multi-cycle functionality Loops Memory Access

10 Generation 1 (1980s-early 1990s): research period Generation 2 (mid 1990s-early 2000s): Commercial tools from Synopsys, Cadence, Mentor Graphics, etc. Input languages: behavioral HDLs Target: ASIC Outcome: Commercial failure Generation 3 (from early 2000s): Domain oriented commercial tools: in particular for DSP Input languages: C, C++, C-like languages (Impulse C, Handel C, etc.), Matlab + Simulink, Bluespec Target: FPGA, ASIC, or both Outcome: First success stories Short History of High-Level Synthesis

11 Hardware-Oriented High-Level Languages C-Based System level languages Commercial Handel C -- Celoxica Ltd. Impulse C -- Impulse Accelerated Technologies Carte C – SRC Computers SystemC -- The Open SystemC Initiative Research Streams-C -- Los Alamos National Laboratory SA-C -- Colorado State University, University of California, Riverside, Khoral Research, Inc. SpecC – University of California, Irvine and SpecC Technology Open Consortium

12 Other High-Level Design Flows Matlab-based AccelChip DSP Synthesis -- AccelChip System Generator for DSP -- Xilinx GUI Data-Flow based Corefire -- Annapolis Microsystems Java-based Commercial Forge -- Xilinx Research JHDL – Brigham Young University

13 Handel-C Overview High-level language based on ISO/ANSI-C for the implementation of algorithms in hardware Allows software engineers to design hardware without retraining Clean extensions for hardware design including flexible data widths, parallelism and communications Well defined timing model Each statement takes a single clock cycle Includes extended operators for bit manipulation, and high-level mathematical macros (including floating point)

14 Handel-C/ANSI-C Comparisons Preprocessors i.e. #define Structures ANSI-C Constructs for, while, if, switch Functions Arrays Pointers Arithmetic operators Bitwise logical operators Logical operators ANSI-C Standard Library Recursion Floating Point Handel-C Standard Library Parallelism Arbitrary width variables RAM, ROM Signals Interfaces Enhanced bit manipulation ANSI-CHANDEL-C

15 Handel-C Design Flow Executable Specification Handel-C Synthesis Place & Route VHDL EDIF

16 The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. ( Different Levels of C/C++ Synthesis Abstraction

17 Pure Untimed C/C++ Design Flow The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (

18 Catapult C ( ) ( ) Calypto Design Systems (2015-present)

19ECE 448 – FPGA and ASIC Design with VHDL Catapult C automatically converts un-timed C/C++ descriptions into synthesizable RTL. Catapult C

20 SystemC -based design-flow alternatives SystemC Auto-RTL Translation Verilog / VHDL RTL RTL Synthesis SystemC Synthesis Gate-level netlist Implementation specific, relatively slow to simulate, relatively difficult to modify Alternative SystemC flows

21 SystemC Evolution The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (

22ECE 448 – FPGA and ASIC Design with VHDL Reconfigurable Supercomputers

23ECE 448 – FPGA and ASIC Design with VHDL Interface  P memory  P memory... PP PP I/O Interface FPGA memory FPGA memory... FPGA... I/O Microprocessor systemReconfigurable system What is a Reconfigurable Computer?

24 Reconfigurable Supercomputers Machine Released SRC 6 from SRC Computers Cray XD1 from from Cray SGI Altix from SGI SRC 7 from SRC Computers, Inc,

25 Pros and cons of reconfigurable computers + can be programmed using high-level programming languages, such as C, by mathematicians & scientist themselves + facilitates hardware/software co-design + shortens development time, encourages experimentation and complex optimizations + allows sharing costs among users of various applications - high entry cost (~$100,000) - hardware aware programming - limited portability - limited availability of libraries - limited maturity of tools

26 SRC Programming Model MicroprocessorFPGA main.c function_1() function_2() ANSI C function_1 function_2 macro_1(a, b, c) macro_2(b, d) macro_2(c, e) macro_3(s, t) macro_1(n, b) macro_4(t, k) FPGA Macro_1 Macro_2 a b c de MAP C (subset of ANSI C) I/O Libraries of macros VHDL macro_1 macro_2 macro_3 macro_4 ……………………….

27 SRC Compilation Process Object files Application sources Macro sources MAP Compiler  PCompiler Logic synthesis Place & Route Linker.v files.bin files. ngofiles.o files Application executable Configuration bitstreams HDL sources Netlists.c or.f files. vhdor.v files Logic synthesis Place & Route Linker.v files.bin files. ngofiles HDL sources. or.mc or.mf files

28 Library Development - SRC HLL (C, Fortran) HDL (VHDL, Verilog)  P system FPGA system Application Programmer Library Developer HLL (C, Fortran) HLL (C, Fortran) LLL (ASM) HLL (C, Fortran)

29 SRC Programming Environment + very easy to learn and use + standard ANSI C + hides implementation details + very well integrated environment + mature - subset of C - legacy C code requires rewriting - C limitations in describing HW (paralellism, data types) - closed environment, limited portability of code to HW platforms other than SRC

30 Application Development for Reconfigurable Computers Program Entry Compilation Execution Platform mapping Debugging & Verification

31ECE 448 – FPGA and ASIC Design with VHDL Ideal Program Entry Program Entry Function

32 Actual Program Entry SW/HW Partitioning Data Transfers & Synchronization Use of Internal and External Memories Sequence of Run-time Reconfigurations Use of FPGA Resources (multipliers, μP cores) Preferred Architectures Program Entry Function FPGA Mapping SW/HW Interface

33 AutoESL Design Technologies, Inc. (25 employees) Flagship product: AutoPilot, translating C/C++/System C to VHDL or Verilog Acquired by the biggest FPGA company, Xilinx Inc., in 2011 AutoPilot integrated into the primary Xilinx toolset, Vivado, as Vivado HLS, released in 2012 “High-Level Synthesis for the Masses” Cinderella Story

High Level Language C, C++, System C Hardware Description Language VHDL or Verilog Vivado HLS Vivado HLS

High-Level Synthesis HDL Code Physical Implementation FPGA Tools Netlist Post Place & Route Results Functional Verification Timing Verification Reference Implementation in C Test Vectors Manual Modifications (pragmas, tweaks) HLS-ready C code HLS-Based Development and Benchmarking Flow

36 – Open-source HLS Tool Developed at the University of Toronto Faculty supervisors: Jason H. Anderson and Stephen Brown FPL Community Award 2014 – High-Level Synthesis from C to Verilog – Targets Altera FPGAs (extension to Xilinx relatively simple) – Two flows Pure Hardware Hardware/Software Hybrid = Tiger MIPS + hardware accelerator(s) + Avalon bus + shared on-chip and off-chip memory LegUp – Academic Tool for HLS

37 – Domain specific language for cryptology: Cryptol High-level programming language similar to Haskell Developed by Galois Inc. based in Portland, USA – High-Level Synthesis from Cryptol to efficient Software and Hardware Cryptol – New Language for Cryptology Modified C SW benchmarking HW benchmarking SW benchmarking HW benchmarking Cryptol Reference C Optimized C HLS SW HLS HW HLS HDL Optimized C

Source: The Zynq Book Levels of Abstraction in FPGA Design

Source: The Zynq Book High-Level Synthesis vs. Logic Synthesis

Source: The Zynq Book Algorithm and Interface Synthesis

Source: The Zynq Book Vivado HLS Design Flow

Source: The Zynq Book Design Trade-offs Explored Using HLS

Source: The Zynq Book C Functional Verification and C/RTL Cosimulation in Vivado HLS

Vivado HLS

Source: The Zynq Book Vivado HLS Scheduling and Binding

Source: The Zynq Book Vivado HLS Scheduling and Binding Scheduling – translation of the RTL statements interpreted from the C code into a set of operations, each with an associated duration in terms of clock cycles. Affected by the clock frequency, uncertainty, target technology, and user directives. Binding - associating the scheduled operations with the physical resources of the target device.

Source: The Zynq Book Three Possible Outcomes from HLS Average of 10 numbers

Source: The Zynq Book Vivado HLS Synthesis Process