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

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

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

Introduction to Modern FPGAs

FPGA Based Digital Design Using Verilog HDL

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

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

INTRODUCTION TO FPGA ARCHITECTURE

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

Design Methodologies. Full-Custom Design

INTRODUCTION TO FIELD PROGRAMMABLE GATE ARRAYS (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.

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

Field Programmable Gate Array (FPGA)

FPGA: What? Why? Marco D. Santambrogio

EECS150 - Digital Design Lecture 3 - Field Programmable Gate Arrays (FPGAs) Project platform: Xilinx ML

Programmable Logic Devices UNIT II DIGITAL SYSTEM DESIGN

FPGA How do they work?

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

EECS150 - Digital Design Lecture 3 - Field Programmable Gate Arrays (FPGAs) FPGA Overview

Spiral 2-8. Cell Layout

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

EECS150 - Digital Design Lecture 16 - Memory

Design Methodologies and Tools. Full-Custom Design

Digital Integrated Circuits

PROGRAMMABLE MODULES SPECIFICATION OF PROGRAMMABLE COMBINATIONAL AND SEQUENTIAL MODULES

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

EECS150 - Digital Design Lecture 16 Memory 1

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

FPGA architecture and design technology

Topics. Midterm Finish Chapter 7

DIGITAL DESIGN TECHNOLOGY & TECHNIQUES

ECEN 449 Microprocessor System Design. FPGAs and Reconfigurable Computing

Introduction to Field Programmable Gate Arrays

discrete logic do not

Field Programmable Gate Array

Field Programmable Gate Arrays (FPGAs)

Topics. Midterm Finish Chapter 7

An Introduction to Programmable Logic

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

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

FPGA Implementations

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

Chapter 5: ASICs Vs. PLDs

Programmable Logic Devices

EECS150 - Digital Design Lecture 8 - Hardware Description Languages

Digital Electronics 27. Digital System Design using PLDs

Very Large Scale Integration (VLSI)

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

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

Davide Rossi DEI University of Bologna AA

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

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

EECS150 - Digital Design Lecture 10 Logic Synthesis

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

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

ECE 331 Digital System Design

CS310 Embedded Computer Systems. Maeng

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

EECS150 - Digital Design Lecture 17 Memory 2

Physical Implementation

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

Chapter 13 Programmable Logic Device Architectures

Lab 1: FPGA Physical Layout

PINE TRAINING ACADEMY

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

CAD for VLSI. Debdeep Mukhopadhyay IIT Madras

FPGAs: Instant Access

What is Xilinx Design Language?

Advanced FPGA Design Methodologies with Xilinx Vivado

Programmable Logic. Any other approaches?

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

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

VHX - Xilinx - FPGA Programming in VHDL

LSN 6 Programmable Logic Devices

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

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

Leso Martin, Musil Tomáš

Digital Design Methodology (Revisited) Design Methodology: Big Picture

Readings: Storage unit. Can hold an n-bit value Composed of a group of n flip-flops. Each flip-flop stores 1 bit of information.

FPGA Design Flow 1. All About FPGA

EITF35: Introduction to Structured VLSI Design

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

FPGA for Dummies. Introduc)on to Programmable Logic

EECS Components and Design Techniques for Digital Systems. Lec 20 RTL Design Optimization 11/6/2007

EE178 Spring 2018 Lecture Module 1. Eric Crabill

EECS150 - Digital Design Lecture 10 Logic Synthesis

TSEA44 - Design for FPGAs

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

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

FYSE420 DIGITAL ELECTRONICS. Lecture 7

Altera FLEX 8000 Block Diagram

EECS Components and Design Techniques for Digital Systems. Lec 07 PLAs and FSMs 9/ Big Idea: boolean functions <> gates.

Programmable Logic. Simple Programmable Logic Devices

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

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

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.

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

Lecture #1: Introduction

A Lemple -Ziv based Configuration Management Architecture for Reconfigurable Computing

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

Transcription:

EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) September 12, 2002 John Wawrzynek Fall 2002 EECS150 - Lec06-FPGA Page 1

Outline What are FPGAs? Why use FPGAs (a short history lesson). FPGA variations Internal logic blocks. Break/Announcements Designing with FPGAs. Specifics of Xilinx Virtex-E series. Fall 2002 EECS150 - Lec06-FPGA Page 2

FPGA Overview Basic idea: two-dimensional array of logic blocks and flip-flops with a means for the user to configure: 1. the interconnection between the logic blocks, 2. the function of each block. Simplified version of FPGA internal architecture: Fall 2002 EECS150 - Lec06-FPGA Page 3

Why FPGAs? By the early 1980 s most of the logic circuits in typical systems where absorbed by a handful of standard large scale integrated circuits (LSI). Microprocessors, bus/io controllers, system timers,... Every system still had the need for random glue logic to help connect the large ICs: generating global control signals (for resets etc.) data formatting (serial to parallel, multiplexing, etc.) Systems had a few LSI components and lots of small low density SSI (small scale IC) and MSI (medium scale IC) components. Fall 2002 EECS150 - Lec06-FPGA Page 4

Why FPGAs? Custom ICs where sometimes designed to replace the large amount of glue logic: reduced system complexity and manufacturing cost, improved performance. However, custom ICs are relatively very expensive to develop, and delay introduction of product to market (time to market) because of increased design time. Note: need to worry about two kinds of costs: 1. cost of development, sometimes called non-recurring engineering (NRE) 2. cost of manufacture A tradeoff usually exists between NRE cost and manufacturing costs total A costs B NRE number of units manufactured (volume) Fall 2002 EECS150 - Lec06-FPGA Page 5

Why FPGAs? Therefore the custom IC approach was only viable for products with very high volume (where NRE could be amortized), and which were not time to market sensitive. FPGAs were introduced as an alternative to custom ICs for implementing glue logic: improved density relative to discrete SSI/MSI components (within around 10x of custom ICs) with the aid of computer aided design (CAD) tools circuits could be implemented in a short amount of time (no physical layout process, no mask making, no IC manufacturing) lowers NREs shortens TTM Because of Moore s law the density (gates/area) of FPGAs continued to grow through the 80 s and 90 s to the point where major data processing functions can be implemented on a single FPGA. Fall 2002 EECS150 - Lec06-FPGA Page 6

Why FPGAs? FPGAs continue to compete with custom ICs for special processing functions (and glue logic) but now also compete with microprocessors in dedicated and embedded applications. Performance advantage over microprocessors because circuits can be customized for the task at hand. Microprocessors must provide special functions in software (many cycles). Summary: performance NREs ASIC = custom IC, MICRO = microprocessor Unit cost TTM ASIC ASIC FPGA ASIC FPGA FPGA MICRO FPGA MICRO MICRO ASIC MICRO Fall 2002 EECS150 - Lec06-FPGA Page 7

FPGA Variations Families of FPGA s differ in: physical means of implementing user programmability, arrangement of interconnection wires, and the basic functionality of the logic blocks. Most significant difference is in the method for providing flexible blocks and connections: Anti-fuse based (ex: Actel) + Non-volatile, relatively small fixed (non-reprogrammable) Fall 2002 EECS150 - Lec06-FPGA Page 8

User Programmability Latch-based (Xilinx, Altera, ) latch + reconfigurable volatile relatively large. Latches are used to: 1. make or break cross-point connections in the interconnect 2. define the function of the logic blocks 3. set user options: within the logic blocks in the input/output blocks global reset/clock Configuration bit stream can be loaded under user control: All latches are strung together in a shift chain: Fall 2002 EECS150 - Lec06-FPGA Page 9

Idealized FPGA Logic Block Logic Block latch set by configuration bit-stream INPUTS 4-LUT FF 1 0 OUTPUT 4-input look up table (LUT) implements combinational logic functions Register optionally stores output of LUT 4-input "look up table" Fall 2002 EECS150 - Lec06-FPGA Page 10

16 latch latch latch latch INPUTS 16 x 1 mux 4-LUT Implementation n-bit LUT is implemented as a 2 n x 1 memory: inputs choose one of 2 n memory locations. memory locations (latches) are normally loaded with values from user s configuration bit stream. Inputs to mux control are the OUTPUT CLB inputs. Result is a general purpose logic gate. n-lut can implement any function of n inputs! Latches programmed as part of configuration bit-stream Fall 2002 EECS150 - Lec06-FPGA Page 11

LUT as general logic gate An n-lut as a direct implementation of a function truth-table. Each latch location holds the value of the function corresponding to one input combination. Example: 2-lut INPUTS AND OR 00 0 0 01 0 1 10 0 1 11 1 1 Implements any function of 2 inputs. How many of these are there? How many functions of n inputs? Example: 4-lut INPUTS 0000 F(0,0,0,0) 0001 F(0,0,0,1) 0010 F(0,0,1,0) 0011 F(0,0,1,1) 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 store in 1st latch store in 2nd latch Fall 2002 EECS150 - Lec06-FPGA Page 12

Announcements Fall 2002 EECS150 - Lec06-FPGA Page 13

FPGA Generic Design Flow Design Entry: Create your design files using: schematic editor or hardware description language (Verilog, VHDL) Design implementation on FPGA: Partition, place, and route to create bit-stream file Design verification: Use Simulator to check function, other software determines max clock frequency. Load onto FPGA device (cable connects PC to development board) check operation at full speed in real environment. Fall 2002 EECS150 - Lec06-FPGA Page 14

Example Partition, Placement, and Route Idealized FPGA structure: Example Circuit: collection of gates and flip-flops Circuit combinational logic must be covered by 4-input 1-output gates. Flip-flops from circuit must map to FPGA flip-flops. (Best to preserve closeness to CL to minimize wiring.) Placement in general attempts to minimize wiring. Fall 2002 EECS150 - Lec06-FPGA Page 15

Xilinx Virtex-E Floorplan Fall 2002 EECS150 - Lec06-FPGA Page 16

Virtex-E Configurable Logic Block (CLB) 2 logic slices Fall 2002 EECS150 - Lec06-FPGA Page 17

Details of Virtex-E Slice Fall 2002 EECS150 - Lec06-FPGA Page 18

Dual Port Ram Block SelectRam Fall 2002 EECS150 - Lec06-FPGA Page 19

Xilinx FPGAs (interconnect detail) Fall 2002 EECS150 - Lec06-FPGA Page 20

Connections to Dedicated Horizontal Lines Fall 2002 EECS150 - Lec06-FPGA Page 21

Global Clock Distribution Fall 2002 EECS150 - Lec06-FPGA Page 22

Virtex-E Input/Output block (IOB) detail Fall 2002 EECS150 - Lec06-FPGA Page 23

Virtex-E Family of Parts Fall 2002 EECS150 - Lec06-FPGA Page 24

Xilinx FPGAs How they differ from idealized array: In addition to their use as general logic gates, LUTs can alternatively be used as general purpose RAM. Each 4-lut can become a 16x1-bit RAM array. Special circuitry to speed up ripple carry in adders and counters. Therefore adders assembled by the CAD tools operate much faster than adders built from gates and luts alone. Many more wires, including tri-state capabilities. Fall 2002 EECS150 - Lec06-FPGA Page 25