FPGA: What? Why? Marco D. Santambrogio

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

INTRODUCTION TO FPGA ARCHITECTURE

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

RTL Coding General Concepts

FPGA Reconfiguration!

PROGRAMMABLE MODULES SPECIFICATION OF PROGRAMMABLE COMBINATIONAL AND SEQUENTIAL MODULES

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

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

FPGA architecture and design technology

Introduction to Field Programmable Gate Arrays

What is Xilinx Design Language?

Graduate Institute of Electronics Engineering, NTU FPGA Design with Xilinx ISE

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

ECE 331 Digital System Design

Field Programmable Gate Array (FPGA)

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

CPE/EE 422/522. Introduction to Xilinx Virtex Field-Programmable Gate Arrays Devices. Dr. Rhonda Kay Gaede UAH. Outline

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

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

FPGA. Agenda 11/05/2016. Scheduling tasks on Reconfigurable FPGA architectures. Definition. Overview. Characteristics of the CLB.

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

Design Methodologies. Full-Custom Design

CHAPTER 9 MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES

Programmable Logic Devices

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

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

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

Digital Integrated Circuits

A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system

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

Spiral 2-8. Cell Layout

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

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

Topics. Midterm Finish Chapter 7

Memory and Programmable Logic

PINE TRAINING ACADEMY

ASPDAC An application-centered Design Flow for Self Reconfigurable Systems implementation

COE 561 Digital System Design & Synthesis Introduction

Introduction to reconfigurable systems

FPGA Implementations

ECEN 449 Microprocessor System Design. FPGAs and Reconfigurable Computing

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

FPGA for Dummies. Introduc)on to Programmable Logic

Design Methodologies and Tools. Full-Custom Design

EECS150 - Digital Design Lecture 16 Memory 1

Very Large Scale Integration (VLSI)

FYSE420 DIGITAL ELECTRONICS. Lecture 7

Graduate course on FPGA design

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

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.

I 4 I 3 I 2 I 1 I 0 A 7 A 6 A 5 A 4 A 3 A 2 A 1 A 0 T-125. ROM Truth Table (Partial) 1997 by Prentice-Hall, Inc.

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

Memory and Programmable Logic

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

Fig. 6-1 Conventional and Array Logic Symbols for OR Gate

INTRODUCTION TO FIELD PROGRAMMABLE GATE ARRAYS (FPGAS)

Dynamic Partial Reconfiguration of FPGA for SEU Mitigation and Area Efficiency

EECS150 - Digital Design Lecture 16 - Memory

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

LSN 6 Programmable Logic Devices

Hybrid LUT/Multiplexer FPGA Logic Architectures

ECE 545 Lecture 12. FPGA Resources. George Mason University

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

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

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

Xilinx ASMBL Architecture

Field Programmable Gate Array

Lecture 13: Memory and Programmable Logic

Field Programmable Gate Arrays (FPGAs)

An Introduction to Programmable Logic

Introduction to VHDL Design on Quartus II and DE2 Board

ESE532: System-on-a-Chip Architecture. Today. Message. Graph Cycles. Preclass 1. Reminder

Scalable and Dynamically Updatable Lookup Engine for Decision-trees on FPGA

FIELD PROGRAMMABLE GATE ARRAYS (FPGAS)

A Time-Multiplexed FPGA

MEMORY AND PROGRAMMABLE LOGIC

DIGITAL DESIGN TECHNOLOGY & TECHNIQUES

A Lemple -Ziv based Configuration Management Architecture for Reconfigurable Computing

Virtex-II Architecture

CS310 Embedded Computer Systems. Maeng

Topics. Midterm Finish Chapter 7

Advanced FPGA Design Methodologies with Xilinx Vivado

Chapter 2. FPGA and Dynamic Reconfiguration ...

Pipelining & Verilog. Sequential Divider. Verilog divider.v. Math Functions in Coregen. Lab #3 due tonight, LPSet 8 Thurs 10/11

EITF35: Introduction to Structured VLSI Design

Chapter 5: ASICs Vs. PLDs

FPGA How do they work?

CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS

Digital Design Methodology (Revisited) Design Methodology: Big Picture

Introduction to DSP/FPGA Programming Using MATLAB Simulink

Chapter 9: Integration of Full ASIP and its FPGA Implementation

Digital Design Methodology

Leso Martin, Musil Tomáš

Review: Timing. EECS Components and Design Techniques for Digital Systems. Lec 13 Storage: Regs, SRAM, ROM. Outline.

FPGAs in a Nutshell - Introduction to Embedded Systems-

Introduction to Partial Reconfiguration Methodology

RUN-TIME RECONFIGURABLE IMPLEMENTATION OF DSP ALGORITHMS USING DISTRIBUTED ARITHMETIC. Zoltan Baruch

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

A VARIETY OF ICS ARE POSSIBLE DESIGNING FPGAS & ASICS. APPLICATIONS MAY USE STANDARD ICs or FPGAs/ASICs FAB FOUNDRIES COST BILLIONS

Transcription:

FPGA: What? Why? Marco D. Santambrogio marco.santambrogio@polimi.it

2 Reconfigurable Hardware Reconfigurable computing is intended to fill the gap between hardware and software, achieving potentially much higher performance than software, while maintaining a higher level of flexibility than hardware (K. Compton and S. Hauck, Reconfigurable Computing: a Survey of Systems and Software, 22)

3 Evolution of implementation technologies Logic gates (195s-6s) Regular structures for two-level logic (196s-7s) muxes and decoders, PLAs Programmable sum-of-products arrays (197s-8s) PLDs, complex PLDs Programmable gate arrays (198s-9s) densities high enough to permit entirely new class of application, e.g., prototyping, emulation, acceleration trend toward higher levels of integration

4 Gate Array Technology (IBM - 197s) Simple logic gates combine transistors to implement combinational and sequential logic Interconnect wires to connect inputs and outputs to logic blocks I/O blocks special blocks at periphery for external connections Add wires to make connections done when chip is fabbed mask-programmable construct any circuit

5 Field-Programmable Gate Arrays Logic blocks to implement combinational and sequential logic Interconnect wires to connect inputs and outputs to logic blocks I/O blocks special logic blocks at periphery of device for external connections Key questions: how to make logic blocks programmable? how to connect the wires? after the chip has been fabbed

6 Commercial FPGA Companies Lattice official webiste

7 Xilinx Programmable Gate Arrays CLB - Configurable Logic Block Built-in fast carry logic Can be used as memory Three types of routing direct general-purpose long lines of various lengths RAM-programmable can be reconfigured IOB IOB IOB IOB IOB IOB IOB IOB CLB CLB Wiring Channels CLB CLB

8 Configurable Logic Blocks CLBs made of Slices svirtex-e 2-slice VIIP 4-slice Slices made of LookUp Tables (LUTs) LookUp Tables 4-input, 1 output functions Newest FPGA 2 6-input 2 output

9 Simplified CLB Structure Look-Up Table (LUT) D SET Q MUX CLR Q CLB

1 Lookup Tables: LUTs LUT contains Memory Cells to implement small logic functions Each cell holds or 1. Programmed with outputs of Truth Table Inputs select content of one of the cells as output 3 Inputs LUT -> 8 Memory Cells! 16-bit SR 16x1 RAM 3 6 Inputs! a b c d 4-input LUT mux flip-flop y e q clock clock enable set/reset SRAM SRAM Multiplexer MUX! Static Random Access Memory! SRAM cells!

11 Example: 4-input AND gate A B C D O 1 1 A B C D O 1 1 1 1 1 1 1 1 1 1 1 A B C D 1 D SET CLR Q Q MUX O 1 1 1 1 Configuration bits 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

12 The Virtex CLB 2- Slice Virtex- E CLB

Details of One Virtex Slice Virtex- E Slice

Implements any Two 4-input Functions 4- input func>on 3- input func>on; registered Virtex- E Slice

15 Switch Box CLB Y SLICE TBUF 75 SLICE_X66Y74 74 4- Slice VIIP CLB 66 67 X

Interconnection Network 16 Configuration bits 1 CLB SB CLB SB SB SB CLB SB CLB Configurable Logic Blocks Interconnection Network I/O Signals (Pins)

17 Example Determine the configuration bits for the following circuit implementation in a 2x2 FPGA, with I/O constraints as shown in the following figure. Assume 2-input LUTs in each CLB. Input1 Input2 CLB SB CLB1 Input1 Input2 D SET Q Output Input3 CLR Q SB1 SB2 SB3 Input3 CLB2 SB4 CLB3 Output

18 CLBs configuration Input1 Input2 CLB 1 CLB 2 D SET Q Output CLR Q Input3 Input1 Input2 1 D SET CLR Q Q MUX 1 O O Input3 1 1 D SET CLR Q Q MUX Output Configuration bits Configuration bits

19 Placement: Select CLBs Input1 Input2 CLB SB CLB1 SB1 SB2 SB3 Input3 CLB2 SB4 CLB3 Output

2 Routing: Select path Input1 SB1 Configuration bits Input2 CLB SB CLB1 1 SB1 SB2 SB3 SB4 Configuration bits Input3 CLB2 SB4 CLB3 Output 1

21 Configuration Bitstream The configuration bitstream must include ALL CLBs and SBs, even unused ones CLB: 11 CLB1:????? CLB2: 11 CLB3: XXXXX SB: SB1: 1 SB2: SB3: SB4: 1

22 The configuration bitstream Occupation must be determined only on the basis of Number of configuration words Initial Frame Address Register (FAR) value

23 Frame and Configuration Memory Virtex-II Pro Configuration memory is arranged in vertical frames that are one bit wide and stretch from the top edge of the device to the bottom Frames are the smallest addressable segments of the VIIP configuration memory space all operations must act on whole configuration frames. Virtex-4 Configuration memory is arranged in frames that are tiled about the device Frames are the smallest addressable segments of the V4 configuration memory space all operations must therefore act upon whole configuration frames

24 Xilinx Virtex-4: frame organization

25 Some Definitions Object Code: the executable active physical (either HW or SW) implementation of a given functionality Core: a specific representation of a functionality. It is possible, for example, to have a core described in VHDL, in C or in an intermediate representation (e.g. a DFG) IP-Core: a core described using a HD Language combined with its communication infrastructure (i.e. the bus interface) Reconfigurable Functional Unit: an IP-Core that can be plugged and/or unplugged at runtime in an already working architecture Reconfigurable Region: a portion of the device area used to implement a reconfigurable core

26 Xilinx FPGA and Configuration Memory

27 FPGA EDA Tools Must provide a design environment based on digital design concepts and components (gates, flip-flops, MUXs, etc.) Must hide the complexities of placement, routing and bitstream generation from the user. Manual placement, routing and bitstream generation is infeasible for practical FPGA array sizes and circuit complexities.

28 Computer-aided Design Can't design FPGAs by hand way too much logic to manage, hard to make changes Hardware description languages specify functionality of logic at a high level Validation - high-level simulation to catch specification errors verify pin-outs and connections to other system components low-level to verify mapping and check performance Logic synthesis process of compiling HDL program into logic gates and flip-flops Technology mapping map the logic onto elements available in the implementation technology (LUTs for Xilinx FPGAs)

29 CAD Tool Path (cont d) Placement and routing assign logic blocks to functions make wiring connections Timing analysis - verify paths determine delays as routed look at critical paths and ways to improve Partitioning and constraining if design does not fit or is unroutable as placed split into multiple chips if design it too slow prioritize critical paths, fix placement of cells, etc. few tools to help with these tasks exist today Generate programming files - bits to be loaded into chip for configuration

3 QUESTIONS?