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

Similar documents
FPGA architecture and design technology

! Program logic functions, interconnect using SRAM. ! Advantages: ! Re-programmable; ! dynamically reconfigurable; ! uses standard processes.

INTRODUCTION TO FPGA ARCHITECTURE

Basic FPGA Architectures. Actel FPGAs. PLD Technologies: Antifuse. 3 Digital Systems Implementation Programmable Logic Devices

Field Programmable Gate Array (FPGA)

Digital Integrated Circuits

Topics. Midterm Finish Chapter 7

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

Programmable Logic Devices FPGA Architectures II CMPE 415. Overview This set of notes introduces many of the features available in the FPGAs of today.

Programmable Logic Devices UNIT II DIGITAL SYSTEM DESIGN

FPGA: What? Why? Marco D. Santambrogio

Programmable Logic Devices

Spiral 2-8. Cell Layout

FPGA How do they work?

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

Memory and Programmable Logic

PLAs & PALs. Programmable Logic Devices (PLDs) PLAs and PALs

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses

LSN 6 Programmable Logic Devices

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

Programmable Logic. Any other approaches?

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

FPGAs: Instant Access

ECEN 449 Microprocessor System Design. FPGAs and Reconfigurable Computing

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

Memory and Programmable Logic

ECE 645: Lecture 1. Basic Adders and Counters. Implementation of Adders in FPGAs

FYSE420 DIGITAL ELECTRONICS. Lecture 7

Field Programmable Gate Array

Field Program mable Gate Arrays

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

Introduction to Field Programmable Gate Arrays

Outline. Field Programmable Gate Arrays. Programming Technologies Architectures. Programming Interfaces. Historical perspective

FPGA Based Digital Design Using Verilog HDL

PINE TRAINING ACADEMY

Hardware Synthesis. References

CS310 Embedded Computer Systems. Maeng

FPGA Implementations

CHAPTER 9 MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES

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

Design Methodologies. Full-Custom Design

Programmable Logic. Simple Programmable Logic Devices

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

Design Methodologies and Tools. Full-Custom Design

ECE 331 Digital System Design

Digital Logic & Computer Design CS Professor Dan Moldovan Spring 2010

VHX - Xilinx - FPGA Programming in VHDL

EE260: Digital Design, Spring 2018

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)

Very Large Scale Integration (VLSI)

The Virtex FPGA and Introduction to design techniques

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

Field Programmable Gate Arrays (FPGAs)

PROGRAMMABLE MODULES SPECIFICATION OF PROGRAMMABLE COMBINATIONAL AND SEQUENTIAL MODULES

L2: FPGA HARDWARE : ADVANCED DIGITAL DESIGN PROJECT FALL 2015 BRANDON LUCIA

An Introduction to Programmable Logic

Design Methodologies

ECE 636. Reconfigurable Computing. Lecture 2. Field Programmable Gate Arrays I

EITF35: Introduction to Structured VLSI Design

Introduction to FPGAs. H. Krüger Bonn University

discrete logic do not

What is Xilinx Design Language?

Chapter 5: ASICs Vs. PLDs

CS211 Digital Systems/Lab. Introduction to VHDL. Hyotaek Shim, Computer Architecture Laboratory

Embedded Controller Design. CompE 270 Digital Systems - 5. Objective. Application Specific Chips. User Programmable Logic. Copyright 1998 Ken Arnold 1

DIGITAL DESIGN TECHNOLOGY & TECHNIQUES

DIGITAL CIRCUIT LOGIC UNIT 9: MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES

Xilinx ASMBL Architecture

Lecture 41: Introduction to Reconfigurable Computing

FIELD PROGRAMMABLE GATE ARRAYS (FPGAS)

Introduction to Modern FPGAs

Chapter 10: Design Options of Digital Systems

EECS 150 Homework 7 Solutions Fall (a) 4.3 The functions for the 7 segment display decoder given in Section 4.3 are:

INTRODUCTION TO FIELD PROGRAMMABLE GATE ARRAYS (FPGAS)

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

Altera FLEX 8000 Block Diagram

EE 466/586 VLSI Design. Partha Pande School of EECS Washington State University

CMPE 415 Programmable Logic Devices Introduction

Field Programmable Gate Array (FPGA) Devices

ECE 545 Lecture 12. FPGA Resources. George Mason University

Chapter 1 Overview of Digital Systems Design

(ii) Simplify and implement the following SOP function using NOR gates:

EECS150, Fall 2004, Midterm 1, Prof. Culler. Problem 1 (15 points) 1.a. Circle the gate-level circuits that DO NOT implement a Boolean AND function.

ISE Design Suite Software Manuals and Help

Section 6. Memory Components Chapter 5.7, 5.8 Physical Implementations Chapter 7 Programmable Processors Chapter 8

UNIT - V MEMORY P.VIDYA SAGAR ( ASSOCIATE PROFESSOR) Department of Electronics and Communication Engineering, VBIT

Advanced High-level HDL Design Techniques for Programmable Logic

Digital Design with FPGAs. By Neeraj Kulkarni

Graphics: Alexandra Nolte, Gesine Marwedel, Universität Dortmund. RTL Synthesis

Synthesis of VHDL Code for FPGA Design Flow Using Xilinx PlanAhead Tool

Presentation 4: Programmable Combinational Devices

Computer Structure. Unit 2: Memory and programmable devices

TLL5000 Electronic System Design Base Module. Getting Started Guide, Ver 3.4

Chapter 5. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris. Chapter 5 <1>

FABRICATION TECHNOLOGIES

Review. EECS Components and Design Techniques for Digital Systems. Lec 03 Field Programmable Gate Arrays

Experiment 3. Digital Circuit Prototyping Using FPGAs

The QR code here provides a shortcut to go to the course webpage.

System-on Solution from Altera and Xilinx

Implementation of Ripple Carry and Carry Skip Adders with Speed and Area Efficient

Transcription:

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

About FPGA FPGA was invented by Ross Freeman in 1989 SRAM-based FPGA properties Standard parts Allowing multi-level logic implementation Composed of programmable logic blocks and interconnects Some complex FPGAs also include non-programmable logic blocks (such as processor cores, MAC units, and SRAMs) to improve efficiency Platform FPGA R. H. Freeman, Configurable Electrical Circuit Having Configurable Logic Elements and Configurable Interconnect, U.S. Patent 4,870,302, Sep. 26, 1989 2/32

Electronic Logic Components Logic General Purpose IC ASIC Programmable Logic Devices Gate Arrays Cell-based ICs Full Custom ICs SPLDs (PALs) CPLDs FPGAs 3/32

Programmable Array Logic (PAL) PAL is a special case of sum-of-product logic in which the AND array is programmable and the OR array is fixed Each input is buffered and drives many AND gates: non-inverted output inverted output AND gate symbols in PAL: A B C A B C ABC ABC 4/32

Function Implementation Using PAL Combinational PALs have 10 ~ 20 inputs and 2 ~ 10 outputs; with 2 ~ 8 AND gates driving each OR gate Sequential PALs has extra D flip-flops with input driven from the programmable array logic a full adder in PAL 5/32

Complex Programmable Logic Devices If several PLDs, along with some flip-flops, are put into a single IC, we have a complex programmable logic device (CPLD) that can be used to implement a small digital system Example: Xilinx CoolRunner Macrocell (MUXs and buffers) PAL block 6/32

Field Programmable Gate Arrays The basic ideas of FPGA s is to inter-connect small truth tables to form complex digital circuits table 1 Inputs Output ABCD Q 0000 1 0001 0...... 1111 1... table 2 Inputs Output ABCD Q 0000 0 0001 1...... 1111 1 table 3 Inputs Output ABCD Q 0000 0 0001 0...... 1111 1 7/32

Logic Design with FPGA A digital design on FPGA is composed of three parts: Logic elements Interconnect I/O blocks (IOB) An FPGA configuration is similar to a program for microprocessor Specifies functional units and interconnects between functional units IOB IOB Interconnect LE LE LE LE LE LE IOB IOB IOB LE LE LE Interconnect IOB 8/32

CPU v.s. FPGA Microprocessor & FPGAs are programmed in different ways FPGA program bits memory instructions data CPU logic logic logic logic 9/32

Logic Elements Logic element (LE) is more capable than logic gates A simple LE can be programmed to behave as an n-input, m-output function (for example, n = 4, m = 1); such LE s are called fine-grained LE s (relatively speaking, these LE are coarse compared to a gate, for example) Many FPGAs include distributed register bits around the LE An FPGA may provide specialized complex LE blocks, such as multipliers, SRAMs, or processors These are all called coarse-grained LEs A platform-fpga is composed of both fine-grained and coarse-grained LEs 10/32

Generic Logic Elements Example of fine-grain logic element structure Interconnect IOB LE LE LE IOB IOB LE LE LE IOB Logic Element configuration bit IOB LE LE LE IOB Interconnect Lookup Table (LUT) D Q LE out inputs 0 0 0 0 0 0 0 1... 1 1 1 1 out 1 0 1 11/32

Function Implementation with LUT The datapath that implements F = A B C + A BC + AB is as follows, the LUT4 has entries as follows: X 1 X 2 X 3 X 4 0000 0001 0010 0011... 1111 F 0 0 1 1... 1 LUT4 table entries (red means don t care) A function with more than 4 variables can always be decomposed to the sum (OR) of 4-variable function 12/32

Carry Chains in FPGA Since addition is a very important operation, many FPGAs have a dedicated circuitry for carry bit calculation and propagation. 13/32

Example: Spartan 2 Architecture (1/2) A Xilinx Spartan device is composed of a 2-D array of Configurable Logic Blocks (CLB) 14/32

Example: Spartan 2 Architecture (2/2) In Spartan II, each CLB has two identical slices; each slice contains two logic cells with a LUT, carry logic, and a register F5IN G4 G3 G2 G1 Lookup Table COUT carry/ control logic D Q YB Y YQ BY SR F4 F3 F2 F1 Lookup Table carry/ control logic D Q XB X XQ BX CE CLK CIN 15/32

Example: Spartan 2 I/O Blocks Supports multiple I/O standards (PCI, AGP, etc.) 16/32

Logic Implementation on FPGA Logic synthesis How do we breakdown a function and map it to logic elements? How do we implement an operation within a logic element? Logic placement Where do we put each piece of logic in the array of logic elements? LE LE LE LE LE LE LE LE LE 17/32

Interconnect Architecture On an FPGA, we must be able to control Connections from wiring channels to LEs Connections between wires in the wiring channels Wiring channel LE LE channel channel channel channel 18/32

Programmable Wiring Wiring among LEs is organized into channels Channels are arranged horizontally and vertically on the chip There are many wires per channel Connections between wires made at programmable interconnection points An EDA tool must choose: Channels from source to destination Wires within the channels vertical channel 1 LE LE LE horizontal channel 2 LE LE LE vertical channel 3 LE LE LE LE LE horizontal channel 3 LE vertical channel 5 19/32

Programmable vs Fixed Interconnect Compares to the wiring of fixed layout in a custom logic, there are two major disadvantages of FPGA interconnect: Switch adds delay D Q FPGA interconnect has extra length The problem becomes worse as the logic becomes larger 20/32

Interconnect Strategies Types of wires: Short wires: local LE connections Global wires: long-distance, buffered communication Special wires: clocks, etc Use design hierarchy to guide placement search Use hard macros where possible A macro is a larger modules designed to fit into a particular FPGA (similar to IP blocks for platform-based SoC) Hard macro includes placement Soft macro does not include placement Add placement constraints 21/32

FPGAs and I/O Pins Chip capacity is growing faster than package pinout Now, we can put many hardware functions in an FPGA, but the total number of I/O pins is limited Must try to share a small amount of interface pins among functions Alternatively, one can use multiple smaller FPGAs to compose same functions It s harder to breakdown a design across FPGAs The performance may be better due to shorter routing lengths 22/32

FPGA Configuration Technologies FPGA s logic elements, interconnect switch, and I/O pins can be programmed using one of the following three technologies: SRAM-based Can be programmed many times Must be programmed after power-up Antifuse-based Programmed once via a burn-in step Flash-based Similar to SRAM but using flash memory 23/32

SRAM-based FPGAs Program logic functions and interconnect using SRAM to store boolean table and on/off state Advantages: Re-programmable dynamically reconfigurable uses standard processes Disadvantages: SRAM burns power Configuration lost at power-down (but not on reset!) Possible to steal, disrupt configuration bits Just like piracy & virus issues of software 24/32

Configuring SRAM-based FPGA There are several ways to configure an FPGA JTAG interface, not good for turn-key systems FPGA in master mode, read configuration data from PROM FPGA in slave mode, microcontroller configures an FPGA 25/32

Features of SRAM-based LUT n-input LUT can handle function of 2 n inputs All logic functions take the same amount of space All functions have the same delay With CMOS custom logic, XOR is much slower than NAND; with SRAM LUT, XOR is as fast (slow) as NAND SRAM is larger than static gate equivalent of function Gate-count is not a good measure for FPGA logic cost For static gate, n input NAND/NOR gate has 2n transistors For FPGA LE, 4-input LUT has 128 transistors in SRAM, 96 in multiplexer Burns power even at idle 26/32

Platform FPGAs A complex system must be composed of hardware and software components To reduce system development/integration time, some chip companies starts to push Platform FPGA visions Two examples: Xilinx has Virtex II Pro that provides PowerPC-based platform FPGA Altera has Excalibur that features ARM-based platform FPGA (a.k.a. System-on-Programmable-Chip, SoPC) 27/32

Xilinx Platform FPGA Vision Processing Platform: PowerPC D/I Caches Controllers Interfaces DSP Platform: Distributed RAM 18 18 Multipliers 600 Billion MACs/sec Connectivity Platform: 100+ Gb Bandwidth I/O interfaces of the chip Rocket I/O (3.125 Gbps serial port) Hi-speed parallel 28/32

Four Generations of Virtex Devices XC2000-XC3000 XC4000, Virtex Virtex-II Virtex-II Pro, Virtex-4, Virtex-5 Device Complexity System-Level Function Blocks Platform FPGA Platform for Programmable Systems Glue Logic 1985 1992 2000 2002 29/32

Example: Platform FPGA Systems A platform implementation with remote configuration capabilities K. Park and H. Kim, Remote FPGA Reconfiguration Using MicroBlaze or PowerPC Processors, XApp 441, Sep. 30/32006

FPGA Implementation Process Step1: Design Design entry methods: HDL (Verilog or VHDL) or schematic drawings Step 2: Create netlist (synthesis) Translates V, VHD, SCH files into the standard format EDIF file Step 3: Physical design (Implementation) Translate, map, place & route the netlist into the target device configuration bits Step 4: Configure the FPGA Download BIT file into the FPGA 31/32

FPGA Design Flow In this class, Xilinx ISE Foundation is used as the Logic design toolchain Specification Design Entry timing constraints Testbench Simulation Synthesis Mapping Static timing analysis Place & Route bit file FPGA 32/32