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.

Slides:



Advertisements
Similar presentations
EDA Lab. Dept. of Computer Engineering C. N. U. 1 SYNTHESIS Issues in synthesizable VHDL descriptions (from VHDL Answers to FAQ by Ben Cohen)
Advertisements

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)
Digital Design with VHDL Presented by: Amir Masoud Gharehbaghi
Evolution and History of Programming Languages Software/Hardware/System.
Modern VLSI Design 2e: Chapter 8 Copyright  1998 Prentice Hall PTR Topics n High-level synthesis. n Architectures for low power. n Testability and architecture.
Modern VLSI Design 4e: Chapter 8 Copyright  2008 Wayne Wolf Topics High-level synthesis. Architectures for low power. GALS design.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Register-transfer Design n Basics of register-transfer design: –data paths and controllers.
Behavioral Synthesis Outline –Synthesis Procedure –Example –Domain-Specific Synthesis –Silicon Compilers –Example Tools Goal –Understand behavioral synthesis.
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.
A High Performance Application Representation for Reconfigurable Systems Wenrui GongGang WangRyan Kastner Department of Electrical and Computer Engineering.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.
Why Behavioral Wait statement Signal Timing Examples of Behavioral Descriptions –ROM.
VHDL Coding Exercise 4: FIR Filter. Where to start? AlgorithmArchitecture RTL- Block diagram VHDL-Code Designspace Exploration Feedback Optimization.
Center for Embedded Computer Systems University of California, Irvine and San Diego Loop Shifting and Compaction for the.
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,
Formal Verification of SpecC Programs using Predicate Abstraction Himanshu Jain Daniel Kroening Edmund Clarke Carnegie Mellon University.
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology A Synthesis Algorithm for Modular Design of.
CSET 4650 Field Programmable Logic Devices
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
Labs Practicing in Design of Combinational Networks and FSM with Concurrent Error Detection Tatjana Stanković, Goran Djordjević, Mile Stojčev 2075 Microprocessor.
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 {
IT253: Computer Organization Lecture 4: Instruction Set Architecture Tonga Institute of Higher Education.
Institute of Information Sciences and Technology Towards a Visual Notation for Pipelining in a Visual Programming Language for Programming FPGAs Chris.
Synthesis Presented by: Ms. Sangeeta L. Mahaddalkar ME(Microelectronics) Sem II Subject: Subject:ASIC Design and FPGA.
Automated Design of Custom Architecture Tulika Mitra
Section 10: Advanced Topics 1 M. Balakrishnan Dept. of Comp. Sci. & Engg. I.I.T. Delhi.
CMOS Design Methods.
1 HandleC ) prepared by: Mitra Khorram Abadi professor: Dr. Maziar Goudarzi A language based on ISO-C, extended for hardware design ( HandleC ) prepared.
1 H ardware D escription L anguages Modeling Digital Systems.
IEEE ICECS 2010 SysPy: Using Python for processor-centric SoC design Evangelos Logaras Elias S. Manolakos {evlog, Department of Informatics.
1 Towards Optimal Custom Instruction Processors Wayne Luk Kubilay Atasu, Rob Dimond and Oskar Mencer Department of Computing Imperial College London HOT.
Array Synthesis in SystemC Hardware Compilation Authors: J. Ditmar and S. McKeever Oxford University Computing Laboratory, UK Conference: Field Programmable.
Los Alamos National Lab Streams-C Maya Gokhale, Janette Frigo, Christine Ahrens, Marc Popkin- Paine Los Alamos National Laboratory Janice M. Stone Stone.
CprE 588 Embedded Computer Systems Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #4 – Introduction.
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
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
CprE 588 Embedded Computer Systems Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #5 – System-Level.
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.
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
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.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
5-1 Logic System Design I VHDL Design Principles ECGR2181 Reading: Chapter 5.0, 5.1, 5.3 port ( I: in STD_LOGIC_VECTOR (1 to 9); EVEN, ODD: out STD_LOGIC.
Modern VLSI Design 3e: Chapter 8 Copyright  1998, 2002 Prentice Hall PTR Topics n Basics of register-transfer design: –data paths and controllers; –ASM.
System-on-Chip Design Hao Zheng Comp Sci & Eng U of South Florida 1.
Mapping of Regular Nested Loop Programs to Coarse-grained Reconfigurable Arrays – Constraints and Methodology Presented by: Luis Ortiz Department of Computer.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
System-on-Chip Design Analysis of Control Data Flow
ECE 587 Hardware/Software Co- Design Lecture 23 LLVM and xPilot Professor Jia Wang Department of Electrical and Computer Engineering Illinois Institute.
System-on-Chip Design
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
Design Flow System Level
Introduction to cosynthesis Rabi Mahapatra CSCE617
High Level Synthesis Overview
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
THE ECE 554 XILINX DESIGN PROCESS
RTL Design Methodology Transition from Pseudocode & Interface
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.
Synchronization Verification in System-Level Design with ILP Solvers
Digital Designs – What does it take
Computer Systems An Introducton.
THE ECE 554 XILINX DESIGN PROCESS
EEL4712 Digital Design (VHDL Tutorial).
Presentation transcript:

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 Synthesis Fundamentals  from "Low-Power High-Level Synthesis for Nanoscale CMOS Circuits" by Saraju P. Mohanty Synthesis from C in Electronic System Level (ESL) Design  By Christopher Sullivan

3 Overview Introduction to ESL High-level Synthesis Process C for Modeling Challenges and Solutions

4 Electronic System Level Design Description of the system with a higher level of abstraction Necessary for complex SoCs Decreased development time Simulation is much easier

5 The High-level Synthesis Process Compilation Transformation Allocation Binding Output generation

6 The High-level Synthesis Process (cont’d) Compilation  Behavior converted to internal representations Data flow graph (DFG) Control flow graph (CFG) Transformation  DFGs and CFGs optimized and transformed  Hardware optimizations such as associative and commutative operations

7 The High-level Synthesis Process (cont’d) Scheduling and Resource Allocation  Temporal partitioning of DFG and CFG to allow for concurrency  Trade-offs such as area and timing accounted for  Control steps needed and variable lifetimes determined

8 Scheduling Algorithms Figure 1: Different types of scheduling algorithms (Mohanty, 2008)

9 The High-level Synthesis Process (cont’d) Binding  Functional unit binding Map an operation to a functional unit  Memory unit binding Maps variables or constants to registers, RAM, or ROM Output Generation

10 Using C for Hardware Familiar to many programmers Easier hardware/software co-design C-reference designs available for many applications Developed for von Neumann architecture  Control unit, memory, ALU Fundamentally sequential

11 C for Modeling Simulation is much faster at behavioral level than at the register-transfer level Transaction-level Modeling  Separates functional units from communication  Most parts not synthesizable SystemC most commonly used

12 Sample Design Flow (SpecC)

13 Challenges of using C Communication Concurrency Timing Data types Hardware control Pointers

14 Communication Channels  Channel data type for communication between parallel processes  Receiver and transmitter must be ready at the same time (synchronization)  Examples: Handel-C, HardwareC, Bach C

15 Communication (cont’d) Multiple Primitives  Channel can be a signal, buffer, FIFO, semaphore, mutex, etc  Interfaces and ports for communication between functional units  Events used for synchronization  Examples: SpecC, SystemC

16 Communication in SpecC interface I1 { bit[63:0] Read(void); void Write(bit[63:0]); }; channel C1 implements I1; behavior B1(in int, I1, out int); behavior B(in int p1, out int p2) { int v1; C1 c1; B1 b1(p1, c1, v1), b2(v1, c1, p2); void main(void) { par { b1.main(); b2.main(); } }; b1b2 v1 c1 B p1p2

17 Concurrency Explicit Parallelism  Which code is parallel and which is sequential specified by the programmer  e.g. Handel-C Implicit Parallelism (SystemC)  Similar to HDLs  System describes processes which run in parallel

18 Concurrency (cont’d) Compiler-identified Parallelism  e.g. TransmogrifierC, CatapultC  Good concurrent programming required Much different than software concurrency model

19 SpecC Example (Explicit) behavior B_pipe { B b1, b2, b3; void main(void) {pipe{b1.main(); b2.main(); b3.main(); } } }; B_par b1 b3 b2 B_seq b1 b3 b2 B_fsm b1 b3 b2 b5b6 b4 B_pipe b1 b3 b2 behavior B_seq { B b1, b2, b3; void main(void) { b1.main(); b2.main(); b3.main(); } }; behavior B_fsm { B b1, b2, b3, b4, b5, b6; void main(void) { fsm { b1:{…} b2:{…} …} } }; behavior B_par { B b1, b2, b3; void main(void) { par{b1.main(); b2.main(); b3.main(); } } }; Sequential execution FSM execution Concurrent execution Pipelined execution Source: SpecC Lanugage Tutorial

20 Timing Implicit rules for inserting clocks Handel-C  Each assignment or delay is 1 clock cycle  Channel communication is 1 clock cycle Transmogrifier C  Each loop iteration and function call takes a cycle

21 Timing (cont’d) Explicit clock definition (SystemC, Ocapi)  For sequential logic, wait statements are used  Combinational logic is implicit Clock constraint definition (HardwareC)  Clock constraints for a particular section of code are specified

22 Data Types No ANSI-C types smaller than a byte  Actually… Compiler-driven data types  Compiler chooses type size based on its use  TransmogrifierC allows for preprocessor pragmas to specify integer width  C2Verilog uses a GUI to set variable width

23 Data Types (cont’d) Adding hardware types to C  Allow specification of integer width  Add boolean type  E.g. Handel-C, Bach C, SpecC Using C++ types  C++ type system allows for bit-level typing  SystemC provides classes for variable-width integers and fractional numbers

24 Hardware Control All languages differ in amount of control given over the hardware Handel-C  Target FPGA specified for compilation  Memory types such as RAM can be explicitly specified  Macros provided for common operations

25 Hardware Control (cont’d) SpecC:  GUI used to specify how to translate certain constructs to hardware HardwareC  Uses #pragmas within the code to specify timing or resource constraints

26 Pointers Supported by Ocapi and SystemC and as long as the target is  Synthesizable  Compile-time determinable Not supported by Handel-C, TransmogrifierC, HardwareC, and most others Active area of research

27 Conclusions Higher abstraction than RTL needed for complex system-on-chip systems C provides a proven foundation for behavioral description Most challenges can be overcome with a variety of methods

Questions?

29 RSA Encryption Progress Implementing 1024-bit co-processor Biggest challenge is implementing modular exponentiation in VHDL  C=M e mod n Obtained reference design in C Using Montgomery’s method for modulus multiplication  A*B mod n Much left to do…