Why FPGAs? FPGA Overview. Why FPGAs?

Similar documents
Field Programmable Gate Arrays (FPGAs)

L11/12: Reconfigurable Logic Architectures

L12: Reconfigurable Logic Architectures

FPGA Design with VHDL

CSE140L: Components and Design Techniques for Digital Systems Lab. CPU design and PLDs. Tajana Simunic Rosing. Source: Vahid, Katz

RELATED WORK Integrated circuits and programmable devices

EECS150 - Digital Design Lecture 2 - CMOS

CDA 4253 FPGA System Design FPGA Architectures. Hao Zheng Dept of Comp Sci & Eng U of South Florida

March 13, :36 vra80334_appe Sheet number 1 Page number 893 black. appendix. Commercial Devices

Outline Synchronous Systems Introduction Field Programmable Gate Arrays (FPGAs) Introduction Review of combinational logic

EECS150 - Digital Design Lecture 3 Synchronous Digital Systems Review. Announcements

EECS150 - Digital Design Lecture 18 - Circuit Timing (2) In General...

Reconfigurable Architectures. Greg Stitt ECE Department University of Florida

EECS 151/251A Spring 2018 Digital Design and Integrated Circuits Instructors: N. Weaver & J. Wawrzynek. Lecture 2 EE141

Examples of FPLD Families: Actel ACT, Xilinx LCA, Altera MAX 5000 & 7000

FPGA Design. Part I - Hardware Components. Thomas Lenzi

CAD for VLSI Design - I Lecture 38. V. Kamakoti and Shankar Balachandran

problem maximum score 1 28pts 2 10pts 3 10pts 4 15pts 5 14pts 6 12pts 7 11pts total 100pts

CSE140L: Components and Design Techniques for Digital Systems Lab. FSMs. Tajana Simunic Rosing. Source: Vahid, Katz

Integrated circuits/5 ASIC circuits

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 9 Field Programmable Gate Arrays (FPGAs)

Objectives. Combinational logics Sequential logics Finite state machine Arithmetic circuits Datapath

Introduction Actel Logic Modules Xilinx LCA Altera FLEX, Altera MAX Power Dissipation

EECS150 - Digital Design Lecture 19 - Finite State Machines Revisited

Chapter Contents. Appendix A: Digital Logic. Some Definitions

9 Programmable Logic Devices

3/5/2017. A Register Stores a Set of Bits. ECE 120: Introduction to Computing. Add an Input to Control Changing a Register s Bits

Lecture 2: Basic FPGA Fabric. James C. Hoe Department of ECE Carnegie Mellon University

EECS150 - Digital Design Lecture 3 - Timing

EN2911X: Reconfigurable Computing Topic 01: Programmable Logic. Prof. Sherief Reda School of Engineering, Brown University Fall 2014

Testability: Lecture 23 Design for Testability (DFT) Slide 1 of 43

Digital Systems Design

Computer Architecture and Organization

A Fast Constant Coefficient Multiplier for the XC6200

University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science. EECS150, Spring 2011

EECS150 - Digital Design Lecture 3 - Timing

Combinational vs Sequential

Sharif University of Technology. SoC: Introduction

Microprocessor Design

LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller

COE328 Course Outline. Fall 2007

IE1204 Digital Design. F11: Programmable Logic, VHDL for Sequential Circuits. Masoumeh (Azin) Ebrahimi

Outline. EECS150 - Digital Design Lecture 27 - Asynchronous Sequential Circuits. Cross-coupled NOR gates. Asynchronous State Transition Diagram

Principles of Computer Architecture. Appendix A: Digital Logic

Advanced Devices. Registers Counters Multiplexers Decoders Adders. CSC258 Lecture Slides Steve Engels, 2006 Slide 1 of 20

Modeling Latches and Flip-flops

An Application Specific Reconfigurable Architecture Diagnosis Fault in the LUT of Cluster Based FPGA

VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress

Chapter 2. Digital Circuits

VLSI Design Digital Systems and VLSI

Electrical and Telecommunications Engineering Technology_TCET3122/TC520. NEW YORK CITY COLLEGE OF TECHNOLOGY The City University of New York

Digital Fundamentals: A Systems Approach

An Application Specific Reconfigurable Architecture Diagnosis Fault in the LUT of Cluster Based FPGA

EE 447/547 VLSI Design. Lecture 9: Sequential Circuits. VLSI Design EE 447/547 Sequential circuits 1

Lecture 6: Simple and Complex Programmable Logic Devices. EE 3610 Digital Systems

nmos transistor Basics of VLSI Design and Test Solution: CMOS pmos transistor CMOS Inverter First-Order DC Analysis CMOS Inverter: Transient Response

IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits

Lecture 10: Sequential Circuits

Administrative issues. Sequential logic

Counters

A Combined Combinational-Sequential System

Registers and Counters

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

Investigation of Look-Up Table Based FPGAs Using Various IDCT Architectures

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences

Logic Design II (17.342) Spring Lecture Outline

EEC 116 Fall 2011 Lab #5: Pipelined 32b Adder

Performance Evolution of 16 Bit Processor in FPGA using State Encoding Techniques

ECSE-323 Digital System Design. Datapath/Controller Lecture #1

Logic Design. Flip Flops, Registers and Counters

Sequential Circuit Design: Principle

FPGA Based Implementation of Convolutional Encoder- Viterbi Decoder Using Multiple Booting Technique

CS 261 Fall Mike Lam, Professor. Sequential Circuits

EECS150 - Digital Design Lecture 17 - Circuit Timing. Performance, Cost, Power

CARLETON UNIVERSITY. Facts without theory is trivia. Theory without facts is bull 2607-LRB

Sequencing. Lan-Da Van ( 范倫達 ), Ph. D. Department of Computer Science National Chiao Tung University Taiwan, R.O.C. Fall,

COMP2611: Computer Organization. Introduction to Digital Logic

OF AN ADVANCED LUT METHODOLOGY BASED FIR FILTER DESIGN PROCESS

Modeling Latches and Flip-flops

Registers and Counters

EEM Digital Systems II

DEPARTMENT OF ELECTRICAL &ELECTRONICS ENGINEERING DIGITAL DESIGN

High Performance Carry Chains for FPGAs

Comparative Analysis of Stein s. and Euclid s Algorithm with BIST for GCD Computations. 1. Introduction

EECS150 - Digital Design Lecture 15 Finite State Machines. Announcements

TKK S ASIC-PIIRIEN SUUNNITTELU

Lecture 10: Programmable Logic

FPGA Implementation of Sequential Logic

EEE130 Digital Electronics I Lecture #1_2. Dr. Shahrel A. Suandi

Design for Testability

Experiment 8 Introduction to Latches and Flip-Flops and registers

Reconfigurable FPGA Implementation of FIR Filter using Modified DA Method

A High-Resolution Flash Time-to-Digital Converter Taking Into Account Process Variability. Nikolaos Minas David Kinniment Keith Heron Gordon Russell

11. Sequential Elements

Introduction to Digital Logic Missouri S&T University CPE 2210 Exam 3 Logistics

Computer Systems Architecture

Flip-Flops and Registers

Registers & Counters. Logic and Digital System Design - CS 303 Erkay Savaş Sabanci University

Sequential logic. Circuits with feedback. How to control feedback? Sequential circuits. Timing methodologies. Basic registers

Chapter 5 Flip-Flops and Related Devices

Transcription:

Transistor-level Logic Circuits Positive Level-sensitive EECS150 - Digital Design Lecture 3 - Field Programmable Gate Arrays (FPGAs) January 28, 2003 John Wawrzynek Transistor Level clk clk clk Positive Edge-triggered flip-flop built from two level-sensitive es: clk Spring 2003 EECS150 - Lec03-FPGA Page 1 Spring 2003 EECS150 - Lec03-FPGA Page 2 Positive Edge-triggered Flip-flop Flip-flop built from two es: When clk low, left acts as feedthrough, and Q is stored value of right. When clk high left stores values and right acts as feedthrough. clk Outline What are FPGAs? Why use FPGAs (a short history lesson). FPGA variations Internal logic blocks. Designing with FPGAs. Specifics of Xilinx Virtex-E series. D Q D Q Spring 2003 EECS150 - Lec03-FPGA Page 3 Spring 2003 EECS150 - Lec03-FPGA Page 4

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. 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. Simplified version of FPGA internal architecture: Spring 2003 EECS150 - Lec03-FPGA Page 5 Spring 2003 EECS150 - Lec03-FPGA Page 6 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 costs NRE A B 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. number of units manufactured (volume) Spring 2003 EECS150 - Lec03-FPGA Page 7 Spring 2003 EECS150 - Lec03-FPGA Page 8

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 Unit cost TTM ASIC ASIC FPGA ASIC FPGA FPGA MICRO FPGA MICRO MICRO ASIC MICRO 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: FPGA Variations Anti-fuse based (ex: Actel) + Non-volatile, relatively small fixed (non-reprogrammable) ASIC = custom IC, MICRO = microprocessor Spring 2003 EECS150 - Lec03-FPGA Page 9 Spring 2003 EECS150 - Lec03-FPGA Page 10 Latch-based (Xilinx, Altera, ) + reconfigurable volatile relatively large. User Programmability 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 es are strung together in a shift chain: INPUTS Idealized FPGA Logic Block Logic Block 4-LUT FF 4-input look up table (LUT) implements combinational logic functions Register optionally stores output of LUT 1 0 4-input "look up table" set by configuration bit-stream OUTPUT Spring 2003 EECS150 - Lec03-FPGA Page 11 Spring 2003 EECS150 - Lec03-FPGA Page 12

16 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 (es) 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 Spring 2003 EECS150 - Lec03-FPGA Page 13 LUT as general logic gate An n-lut as a direct implementation of a function truth-table. Each 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 store in 2nd Spring 2003 EECS150 - Lec03-FPGA Page 14 FPGA Generic Design Flow Example Partition, Placement, and Route Idealized FPGA structure: Example Circuit: collection of gates and flip-flops 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. Spring 2003 EECS150 - Lec03-FPGA Page 15 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. Spring 2003 EECS150 - Lec03-FPGA Page 16

Xilinx Virtex-E Floorplan Virtex-E Configurable Logic Block (CLB) 2 logic slices Spring 2003 EECS150 - Lec03-FPGA Page 17 Spring 2003 EECS150 - Lec03-FPGA Page 18 Details of Virtex-E Slice Xilinx FPGAs (interconnect detail) Spring 2003 EECS150 - Lec03-FPGA Page 19 Spring 2003 EECS150 - Lec03-FPGA Page 20

Virtex-E Input/Output block (IOB) detail Virtex-E Family of Parts Spring 2003 EECS150 - Lec03-FPGA Page 21 Spring 2003 EECS150 - Lec03-FPGA Page 22 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. Spring 2003 EECS150 - Lec03-FPGA Page 23