Reconfigurable Computing. Design and Implementation. Chapter 4.1

Similar documents
Reconfigurable Computing. Design and implementation. Chapter 4.1

Organic Computing. Dr. rer. nat. Christophe Bobda Prof. Dr. Rolf Wanka Department of Computer Science 12 Hardware-Software-Co-Design

ESL design with the Agility Compiler for SystemC

Early Models in Silicon with SystemC synthesis

Programmable Logic Devices HDL-Based Design Flows CMPE 415

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011

AL8253 Core Application Note

Agenda. Introduction FPGA DSP platforms Design challenges New programming models for FPGAs

A Deterministic Flow Combining Virtual Platforms, Emulation, and Hardware Prototypes

Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL)

Lab 3 Sequential Logic for Synthesis. FPGA Design Flow.

Digital Design Methodology

Hardware Modelling. Design Flow Overview. ECS Group, TU Wien

Evolution of Implementation Technologies. ECE 4211/5211 Rapid Prototyping with FPGAs. Gate Array Technology (IBM s) Programmable Logic

Chapter 1 Overview of Digital Systems Design

Experiment 3. Digital Circuit Prototyping Using FPGAs

Digital Design Methodology (Revisited) Design Methodology: Big Picture

Digital Systems Design. System on a Programmable Chip

Park Sung Chul. AE MentorGraphics Korea

FPGAs in a Nutshell - Introduction to Embedded Systems-

Introduction to Field Programmable Gate Arrays

FPGA briefing Part II FPGA development DMW: FPGA development DMW:

IMPLEMENTATION DESIGN FLOW

INTRODUCTION TO FPGA ARCHITECTURE

University of California, Davis Department of Electrical and Computer Engineering. EEC180B DIGITAL SYSTEMS Spring Quarter 2018

Don t expect to be able to write and debug your code during the lab session.

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Digital Systems Laboratory

EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs)

A Hardware / Software Co-Design System using Configurable Computing Technology

FPGA: What? Why? Marco D. Santambrogio

VHDL. Chapter 1 Introduction to VHDL. Course Objectives Affected. Outline

Outline. EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) FPGA Overview. Why FPGAs?

The SOCks Design Platform. Johannes Grad

Field Programmable Gate Array

AL8259 Core Application Note

Lecture 1: Introduction Course arrangements Recap of basic digital design concepts EDA tool demonstration

Field Program mable Gate Arrays

Model-Based Design for effective HW/SW Co-Design Alexander Schreiber Senior Application Engineer MathWorks, Germany

What is Xilinx Design Language?

PREFACE. Changes to the SOPC Edition

Lorenz Kolb, Missing Link Electronics

Hardware describing languages, high level tools and Synthesis

Digital Design and Computer Architecture

Intro to System Generator. Objectives. After completing this module, you will be able to:

FPGA Based Digital Design Using Verilog HDL

EN2911X: Reconfigurable Computing Lecture 01: Introduction

Tutorial on FPGA Design Flow based on Aldec Active HDL. Ver 1.5

Verilog Sequential Logic. Verilog for Synthesis Rev C (module 3 and 4)

AES1. Ultra-Compact Advanced Encryption Standard Core AES1. General Description. Base Core Features. Symbol. Applications

Post processing techniques to accelerate assertion development Ajay Sharma

Open-Source tools for FPGA development

Verilog Simulation Mapping

Lab 3 Verilog Simulation Mapping

EMBEDDED SOPC DESIGN WITH NIOS II PROCESSOR AND VHDL EXAMPLES

An Overview of a Compiler for Mapping MATLAB Programs onto FPGAs

A Rapid Prototyping Methodology for Algorithm Development in Wireless Communications

CMPE 415 Programmable Logic Devices Introduction

LIQUID METAL Taming Heterogeneity

Tutorial on FPGA Design Flow based on Aldec Active HDL. ver 1.7

COE 561 Digital System Design & Synthesis Introduction

Spiral 2-8. Cell Layout

Design Space Exploration Using Parameterized Cores

Evolution of CAD Tools & Verilog HDL Definition

Reconfigurable Hardware Design (coursework)

The Xilinx XC6200 chip, the software tools and the board development tools

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

Advanced module: Video en/decoder on Virtex 5

FPGA Implementation and Validation of the Asynchronous Array of simple Processors

DESIGN STRATEGIES & TOOLS UTILIZED

ECEN 449 Microprocessor System Design. FPGAs and Reconfigurable Computing

Programmable Logic Devices

Workspace for '4-FPGA' Page 1 (row 1, column 1)

Lab #1: Introduction to Design Methodology with FPGAs part 1 (80 pts)

FPGA. Logic Block. Plessey FPGA: basic building block here is 2-input NAND gate which is connected to each other to implement desired function.

ECC1 Core. Elliptic Curve Point Multiply and Verify Core. General Description. Key Features. Applications. Symbol

SoC Verification Methodology. Prof. Chien-Nan Liu TEL: ext:

Outline Introduction System development Video capture Image processing Results Application Conclusion Bibliography

Real-Time Debugging of Digital Integrated Circuits

Evaluation of the RTL Synthesis Tools for FPGA/PLD Design. M.Matveev. Rice University. August 10, 2001

Co-Emulation of Scan-Chain Based Designs Utilizing SCE-MI Infrastructure

ELEC 204 Digital System Design LABORATORY MANUAL

Mapping Multi-Million Gate SoCs on FPGAs: Industrial Methodology and Experience

Bibliography. Measuring Software Reuse, Jeffrey S. Poulin, Addison-Wesley, Practical Software Reuse, Donald J. Reifer, Wiley, 1997.

EE 4755 Digital Design Using Hardware Description Languages

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now?

Digital Design with FPGAs. By Neeraj Kulkarni

NEW FPGA DESIGN AND VERIFICATION TECHNIQUES MICHAL HUSEJKO IT-PES-ES

FlexRIO. FPGAs Bringing Custom Functionality to Instruments. Ravichandran Raghavan Technical Marketing Engineer. ni.com

Method We follow- How to Get Entry Pass in SEMICODUCTOR Industries for 3rd year engineering. Winter/Summer Training

An introduction to CoCentric

Hardware/Software Codesign

Introduction. In this exercise you will:

Overview. CSE372 Digital Systems Organization and Design Lab. Hardware CAD. Two Types of Chips

Cost Functions for the Design of Dynamically Reconfigurable Processor Architectures

C-Based Hardware Design

Programmable Logic Devices UNIT II DIGITAL SYSTEM DESIGN

SECURE PARTIAL RECONFIGURATION OF FPGAs. Amir S. Zeineddini Kris Gaj

Advanced FPGA Design. Jan Pospíšil, CERN BE-BI-BP ISOTDAQ 2018, Vienna

4DM4 Lab. #1 A: Introduction to VHDL and FPGAs B: An Unbuffered Crossbar Switch (posted Thursday, Sept 19, 2013)

Transcription:

Design and Implementation Chapter 4.1 Prof. Dr.-Ing. Jürgen Teich Lehrstuhl für Hardware-Software-Co-Design

In System Integration

System Integration Rapid Prototyping Reconfigurable devices (RD) are usually used in three different ways: 1. Rapid Prototyping: The RD is used as emulator for a circuit to be produced later as an ASIC. The emulation process allows for testing the correctness of the circuit, sometimes under real operating conditions before production. The APTIX-System Explorer, the EVE ZeBu-Server and the Synopsys CHIPit System are three examples of emulation platforms. APTIX System Explorer Source: Aptix, Corp. Synopsys CHIPit System Source: Synopsys, Inc. EVE ZeBu-Server Source: EVE, Corp. 3

System Integration Non Frequent reconfiguration 2. Non-frequently reconfigurable systems: The RD is used as application-specific device similar to an ASIC. However, the possibility of upgrading the system by means of reconfiguration is given. Such systems are used as prototyping platforms, but can be used in a running environment as well. The Nallatech VXS-621 Source: www.nallatech.com The Altera video surveillance camera reference design Source: www.terasic.com.tw Digilent XUPV5 Board Source: Xilinx, Inc, The XUPV5 Board 4 The Celoxica RC200 Source: Celoxica Limited, Platform Developer s Kit, RC200/203 manual, 2005.

System Integration Non Frequent reconfiguration 2. Non-frequently reconfigurable systems: The RD is used as application-specific device similar to an ASIC. However, the possibility of upgrading the system by means of reconfiguration is given. Such systems are used as prototyping platforms, but can be used in a running environment as well. Source: Xilinx, Inc. 5

System Integration Frequent reconfiguration 3. Frequently reconfigurable systems: Usually coupled with a processor, the RD is used as an accelerator for time-critical parts of applications. The processor accesses the RD using function calls. The reconfigurable part is usually a PCIboard attached to the PCI-bus. The communication is useful for configuration and data exchange. Examples are the Digilent XUPV5 Board, the Raptor 2000, Xilinx ML605 Board, the Nallatech BenOne PCIe More and more stand-alone frequently reconfigurable systems are appearing. Digilent XUPV5 Board Source: Xilinx, Inc, The XUPV5 Board The Raptor 2000 Source: www.raptor2000.de The Nallatech BenOne PCIe Source: www.nallatech.com 6

Static and dynamic Reconfiguration The three ways of using a reconfigurable systems can be classified in two big categories: 1. Statically reconfigurable systems. The computation and reconfiguration is defined once at compile-time. This category includes rapid prototyping systems, non-frequently reconfigurable systems as well as some frequently reconfigurable systems. 2. Dynamically or run-time reconfigurable systems. The computation and reconfiguration sequences are not known at compile-time. The system reacts dynamically at run-time to computation and therefore, to reconfiguration requests. Some nonfrequently reconfigurable systems as well as most frequently reconfigurable systems belong to this category. 7

System Integration Computation flow The computation in a reconfigurable system is usually done according to the figure aside. The processor controls the complete system. 1) First, the required input data for the RD is downloaded to the RD memory. 2) Then, the RD is configured to perform a given function over a period of time. 3) The start signal is given to the RD to start computation. At this time, the processor also computes its data segment in parallel to the RD. 8

System Integration Computation flow 4) Upon completion, the RD acknowledges the processor. 5) The processor collects the computed data from the RD memory. If many reconfigurations have to be done, then some of the steps from 1) to 5) should be reiterated according to the application's needs. A barrier synchronisation mechanism is usually used between the processor and the RD. Blocking access should also be used for the memory access between the two devices. 9

System Integration Computation flow Devices like the Xilinx Virtex II/II-Pro and the Altera Excalibur feature one or more soft or hard-macro processors. Therefore, the complete system can be integrated in only one device. The reconfiguration process can be: Full: The complete device has to be reconfigured (operation interrupt occurs). Partial: Only part of the device is configured while the rest keeps running. 10

System Integration Computation flow For a dynamically reconfigurable system with only full reconfiguration capabilities, functions to be downloaded at run-time are developed and stored in a database. No geometrical constraint restrictions are required for the function. For a stand alone system with partial reconfiguration capabilities, modules represented as rectangular boxes are pre-computed and stored in memory. During relocation, the modules are assigned to a position on the device at run-time. In both cases, modules to be downloaded at run-time are digital circuit modules which are developed according to digital circuit design rules. 11

Design Flow 12

Design Flow Hardware/Software partitioning The implementation of a reconfigurable system is a Hardware/Software Co- Design process which determines: The software part, that is the code segment to be executed on the processor. The development is done in a programming language using common compiler tools. We will not pay much attention to this part. The hardware part, that is the part to be executed on the RD. This is the focus of this section. The interface between software and hardware. 13

Design Flow Coarse-grained RC The implementation of a coarse-grained RD is done using vendor-specific languages and tools. This is usually a C- like language with the corresponding behavioral or structural compilers. For the coarse-grained architectures presented in the previous chapter, the languages and tools are summarised in the table below. Manufacturer Language Tool Description PACT-XPP NML (Structural) XPP-VC C -> NML ->configuration format Quicksilver ACM Silver C InSpire SDK C -> SilverC ->configuration format NEC DRP C DRP Compiler C -> configuration format IPFLEX DAP/DNA C/Matlab DAP/DNA FW C/Matlab -> configuration format PicoChip C PicoChip Toolchain C -> configuration format TCPA (FAU) C, Java, X10 PARO Compiler C -> PAULA -> assembly code 14

Design Flow FPGA The implementation flow of an FPGA design is shown. It is a modified ASIC design flow divided into 5 steps. The steps (design entry, functional simulation, place and route) are the same for almost all digital circuits. Therefore, they will be presented only briefly. In the synthesis step, the FPGA design flow differs from other synthesis processes. We will therefore consider some details of FPGA synthesis, in particular the LUTtechnology mapping which is proper to FPGAs. 15

Design Flow FPGA - Design entry The design entry can be done either using A schematic editor: Schematic description is done by selecting components from a (target device) and graphically connecting them together to build complex modules. Finite State Machines (FSM) can also be entered graphically or as a table. Drawback: Only structural description of circuits. Behavioral description is not possible A Hardware Description Language (HDL): allows for structural as well as behavioral description of complex circuits. The behavioral description is useful for designs containing loops, Bit-vectors, ADT, FSMs. The structural description emphasizes the hierarchy in a given design. 16

Design Flow FPGA - Design entry After the design entry, functional simulation is used to logically test the functionality of the design. A testbench provides the design under test with inputs for which the reaction of the design is known. The outputs of the circuit are observed on a waveform and compared to the expected values. For simulation purpose, many operations can be used (mod, div, etc.) in the design. However, only part of the code which is used for simulation can be synthesized later. The most commonly used HDLs are: VHDL (behavioral, structural) Verilog (behavioral, structural) Some C/C++-like languages (SystemC, HandelC, etc.) 17

Design Flow FPGA Synthesis The design is compiled and optimized. All non-synthesizable data types and operations must be replaced by equivalent synthesizable code. The design is first translated into a set of Boolean equations which are then minimized. Technology mapping then assigns functional modules to library elements. The technology mapping on FPGAs is called LUT- technology mapping. The result of the technology mapping is a netlist which provides a list of components used in the circuit as well as their interconnections. There exist many formats to describe a netlist. The most popular is the EDIF (Electronic Design Interchange Format). 18

Design Flow FPGA Place and route The netlist provides only information about the components and their interconnections in a given design. Place and route tools are then used to Assign locations to the components, Provide communication paths to realize the interconnect. The place and route steps involve to solve optimization problems to minize a cost function. The most important cost functions are Clock frequency, Latency, Cost (area used). 19

Design Flow FPGA Configuration bitstream The last step in the design process is the generation of the configuration stream also known as bitstream. It describes: The value of each LUT, that is the set of bits used to configure the function of a LUT. The interconnection configuration describes: The inputs and outputs of the LUTs, The value of the multiplexers, and how the switches should be set in the interconnection matrix. All information regarding the functionality of LUTs, multiplexers and switches are available after the place and route step. 20

Design Flow FPGA Example Exercise: Implement a Modulo 10- counter on a symmetrical FPGA with 2x2 Logic Blocks (LB). The structure of a LB is given in the picture aside. It consists of: 2 2-inputs LUTs 2 edge-triggered T-Flipflops The goal is to minimize area latency LUT LUT Clk 21

Design Flow FPGA Example Truth table of the modulo 10 counter. z describe the states while T describe the inputs of the s Karnaugh-minimization of the functions T 1, T 2, T 3, and T 4 22

Design Flow FPGA Example z 1 T 2 z z 1 z 4 4 I 1 T I 4 1 I 2 I 2 z 1 z 1 z 4 I 1 T 3 1 1 z z 2 1 z 2 1 Clk Clk z 1 z 4 T 1 1 T 2 z 1 z 4 T 1 1 3 Common product term T 3 I 2 z T 3 3 z 3 2 T 3 z 1 z 2 T 4 z 1 z 4 z 1 z 2 z 3 Clk 23

Design Flow FPGA Example z ' 2 z 1 z 4 T 2 z 2 z 1 z 2 T 3 Clk 1 Clk 3 z ' 3 z 1 I 1 z z 1 z 4 4 I 1 I 2 I 1 I 2 T 4 z ' 4 I 2 1 z T 1 3 3 z 3 1 Clk T 1 2 4 Clk z ' 1 24