Field Programmable Gate Array (FPGA)

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

INTRODUCTION TO FPGA ARCHITECTURE

EE178 Lecture Module 2. Eric Crabill SJSU / Xilinx Fall 2007

Topics. Midterm Finish Chapter 7

Topics. Midterm Finish Chapter 7

Basic FPGA Architecture Xilinx, Inc. All Rights Reserved

FPGA architecture and design technology

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

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

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

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. Logic Block. Plessey FPGA: basic building block here is 2-input NAND gate which is connected to each other to implement desired function.

Field Programmable Gate Array

PINE TRAINING ACADEMY

Virtex-II Architecture. Virtex II technical, Design Solutions. Active Interconnect Technology (continued)

FPGA Architecture Overview. Generic FPGA Architecture (1) FPGA Architecture

INTRODUCTION TO FIELD PROGRAMMABLE GATE ARRAYS (FPGAS)

FPGA: What? Why? Marco D. Santambrogio

Introduction to Field Programmable Gate Arrays

Programmable Logic. Any other approaches?

Hardware Design with VHDL PLDs IV ECE 443

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

Introduction to Modern FPGAs

FPGA Implementations

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

Altera FLEX 8000 Block Diagram

Summary. Introduction. Application Note: Virtex, Virtex-E, Spartan-IIE, Spartan-3, Virtex-II, Virtex-II Pro. XAPP152 (v2.1) September 17, 2003

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

Introduction to FPGAs. H. Krüger Bonn University

The Next Generation 65-nm FPGA. Steve Douglass, Kees Vissers, Peter Alfke Xilinx August 21, 2006

EITF35: Introduction to Structured VLSI Design

FPGA How do they work?

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

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

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

ECE 545 Lecture 12. FPGA Resources. George Mason University

The Virtex FPGA and Introduction to design techniques

PROGRAMMABLE MODULES SPECIFICATION OF PROGRAMMABLE COMBINATIONAL AND SEQUENTIAL MODULES

International Training Workshop on FPGA Design for Scientific Instrumentation and Computing November 2013.

HDL Coding Style Xilinx, Inc. All Rights Reserved

The DSP Primer 8. FPGA Technology. DSPprimer Home. DSPprimer Notes. August 2005, University of Strathclyde, Scotland, UK

8. Migrating Stratix II Device Resources to HardCopy II Devices

Virtex-II Architecture

Leso Martin, Musil Tomáš

Digital Design with FPGAs. By Neeraj Kulkarni

Lab 3 Sequential Logic for Synthesis. FPGA Design Flow.

FPGAs: Instant Access

Programmable Logic Devices

ECE 448 Lecture 5. FPGA Devices

Programmable Logic. Simple Programmable Logic Devices

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

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

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

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

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

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

Lecture #1: Introduction

EECS150 - Digital Design Lecture 16 Memory 1

Ultra-low power, Single-chip SRAM FPGA Targets Handheld Consumer Applications

BUILDING BLOCKS OF A BASIC MICROPROCESSOR. Part 1 PowerPoint Format of Lecture 3 of Book

Very Large Scale Integration (VLSI)

Spiral 2-8. Cell Layout

ispxpld TM 5000MX Family White Paper

EECS150 - Digital Design Lecture 16 - Memory

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

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

Achieving Breakthrough Performance with Virtex-4, the World s Fastest FPGA

Keywords: Soft Core Processor, Arithmetic and Logical Unit, Back End Implementation and Front End Implementation.

Digital Integrated Circuits

Chapter 2. FPGA and Dynamic Reconfiguration ...

ECE 331 Digital System Design

FPGAs in a Nutshell - Introduction to Embedded Systems-

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

VHX - Xilinx - FPGA Programming in VHDL

MCMASTER UNIVERSITY EMBEDDED SYSTEMS

FPGA Implementation and Validation of the Asynchronous Array of simple Processors

Asynchronous FIFO Design

Programmable Logic Devices UNIT II DIGITAL SYSTEM DESIGN

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

Memory and Programmable Logic

Introduction to Partial Reconfiguration Methodology

Review from last time. CS152 Computer Architecture and Engineering Lecture 6. Verilog (finish) Multiply, Divide, Shift

Field Programmable Gate Array (FPGA) Devices

Advanced Synthesis Techniques

Verilog for High Performance

Embedded Systems: Hardware Components (part I) Todor Stefanov

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 15 Memories

LSN 6 Programmable Logic Devices

Digital Systems Design. System on a Programmable Chip

FPGA VHDL Design Flow AES128 Implementation

EEL 4783: HDL in Digital System Design

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

Outline of Presentation Field Programmable Gate Arrays (FPGAs(

VHDL-MODELING OF A GAS LASER S GAS DISCHARGE CIRCUIT Nataliya Golian, Vera Golian, Olga Kalynychenko

Xilinx ASMBL Architecture

High Capacity and High Performance 20nm FPGAs. Steve Young, Dinesh Gaitonde August Copyright 2014 Xilinx

Digital Logic & Computer Design CS Professor Dan Moldovan Spring 2010

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

Transcription:

Field Programmable Gate Array (FPGA) Lecturer: Krébesz, Tamas 1

FPGA in general Reprogrammable Si chip Invented in 1985 by Ross Freeman (Xilinx inc.) Combines the advantages of ASIC and uc-based systems HW-timed -> fast operation and realiable Cheap even if the volume is low (in contrast to ASIC) 2

FPGA vs. uc-based systems Similar flexibility FPGA: execution speed is not limited by the number of processing cores Parallel in nature No competition for system resources Processing tasks are assigned to dedicated chip sections Autonomous opration of functions Performance is not affected by multiple tasks 3

How is it achieved? Application logic is implemented in HW not by executing on top of OS in SW 4

Building blocks of FPGA Xilinx Spartan 3E family architecture 5

FPGA is built up of a finite number of predefined resources Configurable logic block (CLB) (slices, logic cell) Basic logic unit of FPGA Made up of two basic components Flip-flops (FF) Look-up-tables (LUT) FF: on every CLK edge FF latches 1 or 0 on its input and hold that value constant until next CLK edge-> binary shit register 6

7

LUT: Provides mucs of the logic of CLB Small amount of RAMs Logic is implemented as truth tables within LUT memory Truth table: predefined list of outputs for every combination of inputs 8

Example for implementing logic function: AND operation INPUT OUTPUT A B A AND B 0 0 0 0 1 0 1 0 0 1 1 1 9

Input/output blocks (IOBs) Control the data flow between the I/O pins and the internla logic Digital CLK manager (DCM) Distributing, multiplying, dividing CLK signal Different CLK rate is possible for different FPGA sections Fixed-function logic block Prebuilt processing block to save FPGA resources Example: multiplier blocks Dedicated multiplier associated with RAM 10

Block RAM (BRAM) Configurable, user-defind RAM 16-36 kbyte Usedfor Data storage Passing data between logic blocks running at different CLK rates 11

FPGA-based systems No driver system or code-based system (that up and OS have) Communications to peripherals is difficult Hybrid architecture: up is paired with FPGA and connected to I/O Implementation System components and their interconnections (wiring) has to be defined by design SW 12

In the past only low-level design solution existed Now hig-level synthesis (HLS) design tools available HW description languages (HDL) Verilog, VHDL -> text based Even higher level design languages Graphical-based (G-code) languages (Note: coding in HDL in out of the scope of this subject) 13

The code is compiled and a bit file is generated to be downloaded on the FPGA It defines the circuit itself (blocks and interconnections) 14

Reconfigurable interconnections Fusible link Not reversable Applying a high-voltage pulse disconnects the wires Antifuse link Not reversable Applying a high-voltage pulse connects the wires 15

Flash transistor Switching the transistor to on/off state controls the connection of wires Reversable Non-volatile (if power off, the state is preserved) SRAM-based Most widely used Reversable Volatile (reprogramming is needed at every startup) 16

Resources of CLB Resource unit = logic cell = 1LUT+1FF In a slice: 17

Logic functions of many variables requires to many levels of logic cells -> slow Arithmetic operations requires carry-bit Fast carry generation is a must Example: full adder 18

Full adder implemented on FPGA: 19

Fast carry generation Sum=A xor B xor C Carry: propagation/generation Cout=A*B+A*Cin+B*Cin (A xor B)?(Cin:A) selects either Cin or A 20

Application of multiplexer (MUX) for logic MUX-based AND: MUX-based OR: 21

Combining LUT4s using MUX wider logical functions 22

LUT RAM Writing is synchronous CLK edge -> writing starts Reading async -> independent of CLK 23

Distributed RAM Single port RAM: read or write access allowed one at a time Dual port RAM: read or write possible at the (nearly) same time 24

Realization: in one slice one RAM16x1D or 25

one RAM32x1S 26

Size of RAM (data width) can be increased RAM32x8S -> 8 slices are used Slice M: Logic/ROM Distributed RAM Shift register Slice L: Logic/ROM only 27

LUT shift register (SRL16) Felxible applications Serial delay of variable length (1-16) Can be cascaded to neighbouring CLBs 28

Typical application of LUT SRL Balancing delays caused by pipe-line Data width determines the number of LUTs 29

Small FIFO DatainSRL Auxiliary logic Address counter Status indicator Random number generator Code generator Counter 30

BRAM 2-4 kbyte dual port synchronous RAM 4-36 pieces Data width can be changed dynamically R/W options: 31

BRAM on the FPGA 32

BRAM is used for data exchange between different CLK rate sections as a logic circuit similar to a big LUT storing tables (sin(); cos(); etc.) 33

Multiplier Full parallel 18x18-bit multiplier Matched to BRAM 18-bit configuration FIR filtering supported 2 s complement -> signed operations 36-bit result Can be extended to 35x35-bit 34

Block diagram of interconnects with multiplier 35

I/O blocks Connection between FPGA and outside world Several I/O standard supported Single ended: LVCMOS 1.2; 1.5; 1.8; 2.5;3.3V Differential: LVDS low-voltage differential signalling SSTL stub series terminated logic TMDS transition minimized differential signaling 36

Three state driver Registers Programmable delays (IODELAY) Transceiver 37

Clock source management Very important part of the design Synchronous operation is required One CLK in one block/module Slower scheduling implemented by CLK driven enable input For the whole design different CLKs possible Careful design between blocks using different CLKs 38

Global CLK network Die are divided into 4 Each ¼ has 8-8 global CLK network Can be used independently vs. Globalized» Matter of energy consumption Driving only by global CLK buffer (BUFG) Sources of CLK External CLK handle modul output Any internal signal 39

Features Only minimal delay of CLK on the whole FPGA area Cannot be used as logic signal CLKs can be changed by MUXs Can be used for Synchronization Frequency divider 2x frequency multiplier Phase shifter/splitter PLL frequency synthesizer 40

References Xilinx Spartan-3E FPGA Family Data Sheet Xilinx online resources 41