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.

Slides:



Advertisements
Similar presentations
What are FPGA Power Management HDL Coding Techniques Xilinx Training.
Advertisements

Verilog HDL -Introduction
Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
ECE Synthesis & Verification - Lecture 2 1 ECE 667 Spring 2011 ECE 667 Spring 2011 Synthesis and Verification of Digital Circuits High-Level (Architectural)
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.
Survey of Reconfigurable Logic Technologies
EELE 367 – Logic Design Module 2 – Modern Digital Design Flow Agenda 1.History of Digital Design Approach 2.HDLs 3.Design Abstraction 4.Modern Design Steps.
02/02/20091 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.
Design Flow – Computation Flow. 2 Computation Flow For both run-time and compile-time For some applications, must iterate.
Configurable System-on-Chip: Xilinx EDK
1/31/20081 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts,
Digital System Design EEE344 Lecture 1 INTRODUCTION TO THE COURSE
Delevopment Tools Beyond HDL
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
VHDL Structured Logic Design School of Electrical Engineering University of Belgrade Department of Computer Engineering Ivan Dugic Veljko.
1 VERILOG Fundamentals Workshop סמסטר א ' תשע " ה מרצה : משה דורון הפקולטה להנדסה Workshop Objectives: Gain basic understanding of the essential concepts.
Automatic Identification of Concurrency in Handel-C Joseph C Libby, Kenneth B Kent, Farnaz Gharibian Faculty of Computer Science University of New Brunswick.
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
Institute of Information Sciences and Technology Towards a Visual Notation for Pipelining in a Visual Programming Language for Programming FPGAs Chris.
System Arch 2008 (Fire Tom Wada) /10/9 Field Programmable Gate Array.
Xilinx Development Software Design Flow on Foundation M1.5
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.
ASIP Architecture for Future Wireless Systems: Flexibility and Customization Joseph Cavallaro and Predrag Radosavljevic Rice University Center for Multimedia.
1 H ardware D escription L anguages Modeling Digital Systems.
J. Christiansen, CERN - EP/MIC
FPGA (Field Programmable Gate Array): CLBs, Slices, and LUTs Each configurable logic block (CLB) in Spartan-6 FPGAs consists of two slices, arranged side-by-side.
1 Towards Optimal Custom Instruction Processors Wayne Luk Kubilay Atasu, Rob Dimond and Oskar Mencer Department of Computing Imperial College London HOT.
Galen SasakiEE 260 University of Hawaii1 Electronic Design Automation (EDA) EE 260 University of Hawaii.
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.
Languages for HW and SW Development Ondrej Cevan.
Los Alamos National Lab Streams-C Maya Gokhale, Janette Frigo, Christine Ahrens, Marc Popkin- Paine Los Alamos National Laboratory Janice M. Stone Stone.
Introduction to FPGA Created & Presented By Ali Masoudi For Advanced Digital Communication Lab (ADC-Lab) At Isfahan University Of technology (IUT) Department.
® Java Debug Hardware Modules Using JBits by Jonathan Ballagh Eric Keller Peter Athanas Reconfigurable Architectures Workshop 2001.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
Algorithm and Programming Considerations for Embedded Reconfigurable Computers Russell Duren, Associate Professor Engineering And Computer Science Baylor.
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
1 Hardware Description Languages: a Comparison of AHPL and VHDL By Tamas Kasza AHPL&VHDL Digital System Design 1 (ECE 5571) Spring 2003 A presentation.
(1) Basic Language Concepts © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
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)
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.
EE121 John Wakerly Lecture #17
A Design Flow for Optimal Circuit Design Using Resource and Timing Estimation Farnaz Gharibian and Kenneth B. Kent {f.gharibian, unb.ca Faculty.
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.
VHDL From Ch. 5 Hardware Description Languages. History 1980’s Schematics 1990’s Hardware Description Languages –Increased due to the use of Programming.
A Brief Introduction to FPGAs
1 A hardware description language is a computer language that is used to describe hardware. Two HDLs are widely used Verilog HDL VHDL (Very High Speed.
SUBJECT : DIGITAL ELECTRONICS CLASS : SEM 3(B) TOPIC : INTRODUCTION OF VHDL.
Programmable Hardware: Hardware or Software?
Basic Language Concepts
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
Design Flow System Level
Reconfigurable Computing
Field Programmable Gate Array
Field Programmable Gate Array
Field Programmable Gate Array
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.
Digital Designs – What does it take
Presentation transcript:

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 FPGAs A field-programmable gate array (FPGA) is a programmable logic device which can be configured to implement any logical function They are made up of: configurable logic blocks programmable interconnects FPGAs are programmed with a schematic or hardware description language (HDL) design CLB architecture CLB pin layout Design Flow FPGAs and application-specific integrated circuits (ASICs) are designed according to HDL hardware design flow Traditional HDLs include VHDL and Verilog Shared Memory and OpenMP A shared memory system has multiple processing cores with access to a common, shared memory Shared memory can be accessed by each processor simultaneously Communication and synchronization is achieved through shared variables OpenMP is an API for shared memory parallel programming in C/C++ Parallelism is specified explicitly through a set of pragma directives Run-time library functions control environment settings such as the number of threads The Handel-C Language Handel-C is a behavioral HDL by Celoxica It is made up of: A subset of ANSI-C language elements Extensions for concurrency A set of variable width primitive types A set of architectural types such as interfaces and rams Each assignment statement takes 1 clock cycle Example 8-bit multiplier in Handel-C: set clock = external; void main (void) { int 8 result; interface bus_in (int 8 a, int 8 b) input (); interface bus_out () output (int 8 data_out = result); result = input.x * input.y; } images:

Variable Bit Width Better control over resource usage should lead to better performance A new compiler directive was implemented to allow variable bit width Register widths are automatically adjusted when translating expressions whose widths don’t match Preliminary Results The Mandelbrot set was generated with a resolution of 640x480 pixels Varying bit width settings were used for program variables Resulting resource usage and performance data was collected Ran out of hardware resources for the 48-bit version after 6 threads Resource usage and execution time decreased OpenMP-Handel-C Translator Wong et al. created the OpenMP-Handel-C translator [1] It is based on C-Breeze, a C compiler infrastructure Their modifications include: Addition of new abstract syntax tree nodes for OpenMP pragmas Addition of the OpenMP grammar to the GNU Flex/Bison-based parser Modifications to C-Breeze’s built-in C-to-C translator enabling C-to-Handel-C translation based on a set of porting rules The OpenMP abstract syntax tree nodes generate Handel-C code that implement the supported OpenMP directives Data types supported for translation are: int, char, and long Representing a C program Source code is parsed and represented as an abstract syntax tree Future Work Complete the remaining benchmark tests Implementation of OpenMP library functions such as omp_get_thread_id() Study the feasibility of a tool that determines the optimal number of threads Integrate the improved translator with other tools being developed by the Reconfigurable Computing Research Group #pragma handelc width 8 int x; #pragma handelc function return 8 params (8, 16) int my_function (int param1, int param2); Example C program fragment with bit width annotations int 8 x; inline int 8 my_function (int 8 param1, int 16 param2); Translated C program fragment [1] Leow, Y.Y.; Ng, C.Y.; Wong, W.F. Generating Hardware from OpenMP Programs. IEEE International Conference on Field-Programmable Technology 2006 / FPT Benchmark Methodology An initial set of tests have been developed: A Mandelbrot set generator Miller-Rabin primality test Systolic sequence alignment The translated OpenMP programs are compiled to VHDL in Celoxica’s DK 5.0, and then the VHDL is synthesized into hardware using Xilinx’s ISE 9.1 Resource usage and performance data is recorded Translator Limitations No OpenMP run-time library functions Number of threads is fixed at compile time Nested parallelism is not supported Parallel reduction variables must be 32-bit integers All variables of type int map to 32-bit registers, which may use more resources than necessary int is_even (int x) { if (x % 2 == 0) return 1; else return 0; } Example source program and AST representation