Institute of Information Sciences and Technology Towards a Visual Notation for Pipelining in a Visual Programming Language for Programming FPGAs Chris.

Slides:



Advertisements
Similar presentations
Hao wang and Jyh-Charn (Steve) Liu
Advertisements

Comparison of Altera NIOS II Processor with Analog Device’s TigerSHARC
Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
Commercial FPGAs: Altera Stratix Family Dr. Philip Brisk Department of Computer Science and Engineering University of California, Riverside CS 223.
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.
Implementation Approaches with FPGAs Compile-time reconfiguration (CTR) CTR is a static implementation strategy where each application consists of one.
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.
Hardwired networks on chip for FPGAs and their applications
History TTL-logic PAL (Programmable Array Logic)
Team Morphing Architecture Reconfigurable Computational Platform for Space.
Lecture 26: Reconfigurable Computing May 11, 2004 ECE 669 Parallel Computer Architecture Reconfigurable Computing.
FPGA chips and DSP Algorithms By Emily Fabes. 2 Agenda FPGA Background Reasons to use FPGA’s Advantages and disadvantages of using FPGA’s Sample VHDL.
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,
Define Embedded Systems Small (?) Application Specific Computer Systems.
1/31/20081 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
Introduction to Field Programmable Gate Arrays (FPGAs) COE 203 Digital Logic Laboratory Dr. Aiman El-Maleh College of Computer Sciences and Engineering.
February 4, 2002 John Wawrzynek
Configuration. Mirjana Stojanovic Process of loading bitstream of a design into the configuration memory. Bitstream is the transmission.
1 Chapter 7 Design Implementation. 2 Overview 3 Main Steps of an FPGA Design ’ s Implementation Design architecture Defining the structure, interface.
Introduction to FPGA’s FPGA (Field Programmable Gate Array) –ASIC chips provide the highest performance, but can only perform the function they were designed.
Octavo: An FPGA-Centric Processor Architecture Charles Eric LaForest J. Gregory Steffan ECE, University of Toronto FPGA 2012, February 24.
EET 252 Unit 5 Programmable Logic: FPGAs & HDLs  Read Floyd, Sections 11-5 to  Study Unit 5 e-Lesson.  Do Lab #5.  Lab #5a due next week. 
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
Lecture #3 Page 1 ECE 4110– Sequential Logic Design Lecture #3 Agenda 1.FPGA's 2.Lab Setup Announcements 1.No Class Monday, Labor Day Holiday 2.HW#2 assigned.
COMPUTER SCIENCE &ENGINEERING Compiled code acceleration on FPGAs W. Najjar, B.Buyukkurt, Z.Guo, J. Villareal, J. Cortes, A. Mitra Computer Science & Engineering.
A RISC ARCHITECTURE EXTENDED BY AN EFFICIENT TIGHTLY COUPLED RECONFIGURABLE UNIT Nikolaos Vassiliadis N. Kavvadias, G. Theodoridis, S. Nikolaidis Section.
ECE 465 Introduction to CPLDs and FPGAs Shantanu Dutt ECE Dept. University of Illinois at Chicago Acknowledgement: Extracted from lecture notes of Dr.
System Arch 2008 (Fire Tom Wada) /10/9 Field Programmable Gate Array.
Automated Design of Custom Architecture Tulika Mitra
Lecture #3 Page 1 ECE 4110– Sequential Logic Design Lecture #3 Agenda 1.FPGA's 2.Lab Setup Announcements 1.No Class Monday, Labor Day Holiday 2.HW#2 assigned.
To be smart or not to be? Siva Subramanian Polaris R&D Lab, RTP Tal Lavian OPENET Lab, Santa Clara.
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.
Lecture 16: Reconfigurable Computing Applications November 3, 2004 ECE 697F Reconfigurable Computing Lecture 16 Reconfigurable Computing Applications.
Lecture #3 Page 1 ECE 4110–5110 Digital System Design Lecture #3 Agenda 1.FPGA's 2.Lab Setup Announcements 1.HW#2 assigned Due.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
Timing and Constraints “The software is the lens through which the user views the FPGA.” -Bill Carter.
Field Programmable Port Extender (FPX) 1 Modular Design Techniques for the FPX.
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.
Processor Architecture
M.Mohajjel. Why? TTM (Time-to-market) Prototyping Reconfigurable and Custom Computing 2Digital System Design.
Survey of multicore architectures Marko Bertogna Scuola Superiore S.Anna, ReTiS Lab, Pisa, Italy.
© Paul L y ons 2009 CHINZ 2009 VERTIPH OVERVIEW AND EVALUATION ~ 1 ~ User Evaluation and Overview Chris Johnston Paul Lyons Donald Bailey for Real Time.
1 ASIC 120: Digital Systems and Standard-Cell ASIC Design Tutorial 2: Introduction to VHDL February 1, 2006.
Survey of Reconfigurable Logic Technologies
3/12/2013Computer Engg, IIT(BHU)1 CONCEPTS-1. Pipelining Pipelining is used to increase the speed of processing It uses temporal parallelism In pipelining,
Lecture 17: Dynamic Reconfiguration I November 10, 2004 ECE 697F Reconfigurable Computing Lecture 17 Dynamic Reconfiguration I Acknowledgement: Andre DeHon.
1 Introduction to Engineering Spring 2007 Lecture 18: Digital Tools 2.
Introduction to the FPGA and Labs
Programmable Hardware: Hardware or Software?
William Stallings Computer Organization and Architecture 8th Edition
Introduction to Programmable Logic
ECE 4110–5110 Digital System Design
Instructor: Dr. Phillip Jones
Architecture & Organization 1
Programmable Logic Devices: CPLDs and FPGAs with VHDL Design
Field Programmable Gate Array
Field Programmable Gate Array
Field Programmable Gate Array
Architecture & Organization 1
Digital Fundamentals Tenth Edition Floyd Chapter 11.
VHDL Introduction.
ICS 252 Introduction to Computer Design
"Computer Design" by Sunggu Lee
Digital Designs – What does it take
♪ Embedded System Design: Synthesizing Music Using Programmable Logic
Presentation transcript:

Institute of Information Sciences and Technology Towards a Visual Notation for Pipelining in a Visual Programming Language for Programming FPGAs Chris Johnston Supervisors: Donald Bailey, Paul Lyons Institute of Information Sciences and Technology Massey University, Palmerston North New Zealand

Institute of Information Sciences and Technology CHINZ July Outline Background to the problem Real time image processing using FPGAs Overview of VERTIPH Visual Environment for Real Time Image Processing in Hardware Visual notations for pipelining Pipelining is required to meet timing constraints Representing pipelining in a VPL Summary

Institute of Information Sciences and Technology CHINZ July Programmable hardware Configurable logic blocks (arbitrary logic functions) Programmable interconnects (routing switches) I/O RAM (Multipliers) (Processor cores) FPGA Architecture CLB RAMI/O CLB

Institute of Information Sciences and Technology CHINZ July Image processing Extracting information from or improving an Image

Institute of Information Sciences and Technology CHINZ July Why FPGAs? Image processing operations data intensive computationally expensive To do more work serial processors have to go faster FPGAs can process information in parallel FPGAs build custom hardware for each operation can be reconfigured as needs change

Institute of Information Sciences and Technology CHINZ July Hardware design is different from software design Issues With Programming FPGAs HardwareSoftware Parallelism All circuits activeParallelism through threads Resource sharing Need hardware arbitration Only one process running SpeedUse long pipelines, trade off with throughput Get a faster processor! (!)

Institute of Information Sciences and Technology CHINZ July Parallelism Temporal and spatial parallelism Function block Input data Output data Function block Register Function block Register Function block Register TemporalSpatial Input data Function block Register Output data Function block A pipeline Function block Input data Output data Function block Parallel operations Hybrid

Institute of Information Sciences and Technology CHINZ July Hardware Design Entry Schematic Handel-C code unsigned 1 x,y,z,C; par { C = x & y; z = x ^ y; } HLLs (High-level languages) VHDL code entity HA is port( x,y:in bit; z,C:out bit ); End HA; architecture BEHAVIOURAL of HA is begin C<=x and y; z<=x xor y; end HA; HDLs (Hardware description languages) Hard to reuse Not algorithmic Verbose Low level Very flexible Like software Higher level Have to work to a design model Increasing abstraction

Institute of Information Sciences and Technology CHINZ July Resource & scheduling FramePixelLinePixel VERTIPH Three Views of the System Architecture view If else If While Computational view

Institute of Information Sciences and Technology CHINZ July VERTIPH Shows components, data and control flow Allows for encapsulation of data structures and processes Architecture view Three Views of the System Barrel CorrectionKeyboard Interface Frame Buffer Manager RAM 1 RAM 2 Bilinear InterpolationVideo DriverCamera Interface Control flow Data flow (Architectural)

Institute of Information Sciences and Technology CHINZ July Barrel CorrectionKeyboard Interface Frame Buffer Manager RAM 1 RAM 2 Bilinear InterpolationVideo DriverCamera Interface Control flow Data flow Shows components, data and control flow Allows for encapsulation of data structures and processes Resource & scheduling FramePixelLinePixel VERTIPH Three Views of the System Architecture view If else If While Computational view

Institute of Information Sciences and Technology CHINZ July VERTIPH Three Views of the System Resource & scheduling FramePixelLinePixel Local and Global scheduling Avoids resource conflicts Shows when operations can run Architecture view If else If While Computational view (Resource & Scheduling)

Institute of Information Sciences and Technology CHINZ July Resource scheduling FramePixelLinePixel VERTIPH Three Views of the System Architecture view If else If While Computational view

Institute of Information Sciences and Technology CHINZ July While (true) If (videoScanX == VisibleCols) xc * xc sx xc x y + 1 y sy+2y+1 sy xadd sqrd x sx k y Kru1 Interpolated LUT mag correctx correcty Operators xadd: x + 1 sqrd: sx + 2x + 1 kru: (sx + sy) * k correctx: mag * x correcty: mag * y If (videoScanX == VisibleCols) xc * xc sx xc x y + 1 y sy+2y+1 sy Operators xadd: x + 1 sqrd: sx + 2x + 1 kru: (sx + sy) * k correctx: mag * x correcty: mag * y -3 Resource & scheduling FramePixelLinePixel If else If While Computational view VERTIPH Three Views of the System Architecture view Clock cycle (Computational)

Institute of Information Sciences and Technology CHINZ July Computational view shows concurrency, pipelining and latency no obvious way to show a pipeline Sequential Parallel If else If While Computational view VERTIPH Three Views of the System ABC Time B C Concurrency

Institute of Information Sciences and Technology CHINZ July illustrates the dataflow spacially inefficient shows that A, B & C run in separate clock cycles VERTIPH Pipelining notations Diagonal Gantt A B C

Institute of Information Sciences and Technology CHINZ July shows when all processors are active VERTIPH Pipelining notations Staggered Gantt A B C A B A

Institute of Information Sciences and Technology CHINZ July branching makes diagrams more complex cannot express multicycle pipelines VERTIPH Pipelining notations Staggered Gantt with Conditional Branching A C B B1B1 A B B1B1 A

Institute of Information Sciences and Technology CHINZ July VERTIPH A series of processors perform successive phases of a task processor passes data “down the line” when its phase is complete early processors accept more data while later ones handle early data A slider to change data interarrival times Notation is compact, but hides processor concurrency Pipelining notations Sequential Pipeline AB C C1C1 DEF

Institute of Information Sciences and Technology CHINZ July Pipelining notations Combines the benefits of Sequential and Gantt Bars indicate: phase, throughput & time when processors have valid data. VERTIPH Sequential Pipeline With Staggered Bars AB C C1C1 DEF

Institute of Information Sciences and Technology CHINZ July AB C C1C1 DEFAB C C1C1 DEF Pipelining notations VERTIPH Detailed bars show repeated hardware Staggered Sequential Pipeline With Staggered Bars extend clock lines down

Institute of Information Sciences and Technology CHINZ July Summary Staggered Gantt used too much screen space could not describe all options Sequential was not expressive enough Adding Staggered Bars gives an indication of data throughput Using Detailed Bars Balance between complexity and expressiveness. Shows hardware, phase and throughput

Institute of Information Sciences and Technology CHINZ July FIN

Institute of Information Sciences and Technology CHINZ July Computational