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

Similar documents
FPGA: What? Why? Marco D. Santambrogio

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

Programmable Logic Devices UNIT II DIGITAL SYSTEM DESIGN

LSN 6 Programmable Logic Devices

Memory and Programmable Logic

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

Lecture 13: Memory and Programmable Logic

PROGRAMMABLE MODULES SPECIFICATION OF PROGRAMMABLE COMBINATIONAL AND SEQUENTIAL MODULES

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

Topics. Midterm Finish Chapter 7

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?

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

Memory and Programmable Logic

Programmable Logic Devices

ECE 331 Digital System Design

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

Chapter 13 Programmable Logic Device Architectures

FPGA Implementations

FPGA Programming Technology

FPGA for Dummies. Introduc)on to Programmable Logic

FYSE420 DIGITAL ELECTRONICS. Lecture 7

RTL Coding General Concepts

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

Memory and Programmable Logic

INTRODUCTION TO FPGA ARCHITECTURE

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

Programmable Logic Devices

DIGITAL DESIGN TECHNOLOGY & TECHNIQUES

Programmable Logic Devices

Computer Structure. Unit 2: Memory and programmable devices

CHAPTER 9 MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES

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

CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS

MEMORY AND PROGRAMMABLE LOGIC

Presentation 4: Programmable Combinational Devices

Design Methodologies. Full-Custom Design

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

An Introduction to Programmable Logic

Field Programmable Gate Array

Copyright 2011 R.S.R. Electronics, Inc. All rights reserved. 04/11. Ver. 1.0web

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.

PROGRAMMABLE LOGIC DEVICES

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL AND ELECTRONICS ENGINEERING QUESTION BANK NAME OF THE SUBJECT: EE 2255 DIGITAL LOGIC CIRCUITS

UNIT V (PROGRAMMABLE LOGIC DEVICES)

CMPE 415 Programmable Logic Devices FPGA Technology I

Very Large Scale Integration (VLSI)

Digital Integrated Circuits

Field Program mable Gate Arrays

Read-only memory Implementing logic with ROM Programmable logic devices Implementing logic with PLDs Static hazards

ELCT 912: Advanced Embedded Systems

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

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

Design Methodologies and Tools. Full-Custom Design

Digital System Design Lecture 7: Altera FPGAs. Amir Masoud Gharehbaghi

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

Altera FLEX 8000 Block Diagram

Programmable Logic. Any other approaches?

FPGA architecture and design technology

Introduction to Field Programmable Gate Arrays

Spiral 2-8. Cell Layout

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

Unit 6 1.Random Access Memory (RAM) Chapter 3 Combinational Logic Design 2.Programmable Logic

CONTENTS CHAPTER 1: NUMBER SYSTEM. Foreword...(vii) Preface... (ix) Acknowledgement... (xi) About the Author...(xxiii)

COE 561 Digital System Design & Synthesis Introduction

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

Digital Electronics 27. Digital System Design using PLDs

VALLIAMMAI ENGINEERING COLLEGE. SRM Nagar, Kattankulathur DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING EC6302 DIGITAL ELECTRONICS

Chapter 5: ASICs Vs. PLDs

Field Programmable Gate Array (FPGA)

ELCT 501: Digital System Design

CHAPTER 12 ARRAY SUBSYSTEMS [ ] MANJARI S. KULKARNI

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

SHRI ANGALAMMAN COLLEGE OF ENGINEERING. (An ISO 9001:2008 Certified Institution) SIRUGANOOR, TIRUCHIRAPPALLI

DIGITAL SYSTEM FUNDAMENTALS (ECE421) DIGITAL ELECTRONICS FUNDAMENTAL (ECE4220. PROGRAMMABLE LOGIC DEVICES (PLDs)

EECS150 - Digital Design Lecture 16 Memory 1

HANSABA COLLEGE OF ENGINEERING & TECHNOLOGY (098) SUBJECT: DIGITAL ELECTRONICS ( ) Assignment

Configurable Embedded Systems: Using Programmable Logic to Compress Embedded System Design Cycles

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

CSEE 3827: Fundamentals of Computer Systems. Storage

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

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

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

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

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

Programmable Logic Devices (PLDs)

CS310 Embedded Computer Systems. Maeng

Memory. Outline. ECEN454 Digital Integrated Circuit Design. Memory Arrays. SRAM Architecture DRAM. Serial Access Memories ROM

Lecture (1) Introduction to FPGA. 1. The History of Programmable Logic

EECS150 - Digital Design Lecture 16 - Memory

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

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

Introduction to Programmable Logic Devices (Class 7.2 2/28/2013)

Digital Design Methodology (Revisited) Design Methodology: Big Picture

Digital Design Methodology

Programable Logic Devices

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

Design Methodologies. Digital Integrated Circuits A Design Perspective. Jan M. Rabaey Anantha Chandrakasan Borivoje Nikolic.

CMPE 415 Programmable Logic Devices Introduction

Laboratory Exercise 3

Transcription:

ECE 42/52 Rapid Prototyping with FPGAs Dr. Charlie Wang Department of Electrical and Computer Engineering University of Colorado at Colorado Springs Evolution of Implementation Technologies Discrete devices: relays, transistors (940s-50s) Discrete logic gates (950s-60s) trend toward higher levels of integration Integrated circuits (960s-70s) e.g. TTL packages: Data Book for 00 s of different parts Map your circuit to the Data Book parts Gate Arrays (IBM 970s) Custom integrated circuit chips Design using a library (like TTL) Transistors are already on the chip Place and route software puts the chip together automatically + Large circuits on a chip + Automatic design tools (no tedious custom layout) - Only good if you want 000 s of parts 2 Gate Array Technology (IBM - 970s) Programmable Logic Simple logic gates Use 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 Disadvantages of the Data Book method Constrained to parts in the Data Book Parts are necessarily small and standard Need to stock many different parts Programmable logic Use a single chip (or a small number of chips) Program it for the circuit you want No reason for the circuit to be small Construct any circuit 3 4

Programmable Logic Technologies Programmable Logic Fuse and anti-fuse Fuse makes or breaks link between two wires Typical connections are 50-300 ohm One-time programmable (testing before programming?) Very high density EPROM and EEPROM High power consumption Typical connections are 2K-4K ohm Fairly high density RAM-based Memory bit controls a switch that connects/disconnects two wires Typical connections are.5k-k ohm Can be programmed and re-programmed in the circuit Program a connection Connect two wires Set a bit to 0 or Regular structures for two-level logic (960s-70s) All rely on two-level logic minimization PROM connections - permanent EPROM connections - erase with UV light EEPROM connections - erase electrically PLAs: programmable logic array, program both AND and OR gates PALs: programmable array logic, program only AND gates Low density 5 6 Making Large Programmable Logic Circuits Field-Programmable Gate Arrays Alternative : CPLD Put a lot of PLDS on a chip Add wires between them whose connections can be programmed Use fuse/eeprom technology Alternative 2: FPGA Emulate gate array technology Hence Field Programmable Gate Array You need: A way to implement logic gates A way to connect them together PALs, PLAs = 0-000 Gate Equivalents Field Programmable Gate Arrays = FPGAs Altera MAX (Multiple Array Matrix) Family Actel Programmable Gate Array Xilinx Logical Cell Array 000 000,000(s) of Gate Equivalents! 7 8

Field-Programmable Gate Arrays Tradeoffs in FPGAs 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 9 Logic block - how are functions implemented: fixed functions (manipulate inputs) or programmable? Support complex functions, need fewer blocks, but they are bigger so less of them on chip Support simple functions, need more blocks, but they are smaller so more of them on chip Interconnect How are logic blocks arranged? How many wires will be needed between them? Are wires evenly distributed across chip? Programmability slows wires down are some wires specialized to long distances? How many inputs/outputs must be routed to/from each logic block? What utilization are we willing to accept? 50%? 20%? 0 90%? Altera EPLD (Erasable Programmable Logic Devices) Altera EPLD Historical Perspective PALs: same technology as programmed once bipolar PROM EPLDs: CMOS erasable programmable ROM (EPROM) erased by UV light Altera building block = MACROCELL 8 Product Term AND-OR Array + Programmable 's AND ARRAY Programmable polarity Invert Control CLK Clk Q F/B Output pad Programmable feedback I/O Pin Seq. Logic Block Personalized by EPROM bits: Altera EPLDs contain 8 to 48 independently programmed macrocells Synchronous Mode OE/Local CLK OE/Local CLK Global CLK Global CLK Clk EPROM Cell Clk EPROM Cell Q Asynchronous Mode Q Flipflop controlled by global clock signal local signal computes output enable Flipflop controlled by locally generated clock signal + Seq Logic: could be D, T positive or negative edge triggered + product term to implement clear function 2

Altera Multiple Array Matrix (MAX) LAB Architecture AND-OR structures are relatively limited Cannot share signals/product terms among macrocells Logic Array Blocks (similar to macrocells) LAB A LAB B LAB C LAB D P I A LAB H LAB G LAB F LAB E 64 programmable I/O pins Global Routing: Programmable Interconnect Array EPM528: 8 Fixed Inputs 64 I/O Pins 8 LABs 6 Macrocells per LAB 32 product term Expanders per LAB 3 Macrocell P-Terms Expander P-Terms I N P U T S P I A Macrocell ARRAY Expander Product Term ARRAY I/O Block I/O Pad I/O Pad Expander Terms shared among all macrocells within the LAB 4 Actel Programmable Gate Arrays Actel Logic Module Rows of programmable logic building blocks + rows of interconnect I/O Buffers, Programming and Test Logic I/O Buffers, Programming and Test Logic I/O Buffers, Programming and Test Logic Logic Module Wiring Tracks I/O Buffers, Programming and Test Logic D0 D D2 D3 SOA 2: 2: SOB Example: Implementation of S-R Latch S0 S 2: Y "0" "" Basic Module is a Modified 4: Multiplexer 2: 2: R "0" 2: Q 8 input, single output combinational logic blocks 5 FFs constructed from discrete cross coupled gates S 6

Switch Matrix DIN F' G' H' G' H' DIN F' G' H' H' F' S/R Control S/R Control SD D Q RD EC SD D Q RD EC D Q Q D Slew Rate Control Vcc Passive Pull-Up, Pull-Down Output Buffer Input Buffer Delay Pad Xilinx Programmable Gate Arrays - Configurable Logic Block 5-input, output function or 2 4-input, output functions optional register on outputs 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 Wiring Channels 7 G4 G3 G2 G F4 F3 F2 F K Programmable Interconnect G Func. Gen. F Func. Gen. H Func. Gen. C C2 C3 C4 H DIN S/R EC Y X Configurable Logic Blocks (s) I/O Blocks (IOBs) The Xilinx 4000 Two 4-input functions, registered output 9 20

5-input function, combinational output Used as RAM 2 22 Fast Carry Logic Xilinx 4000 Interconnect 23 24

Switch Matrix Xilinx 4000 Interconnect Details 25 26 Xilinx 4000 IOB Xilinx FPGA Combinational Logic Examples Key: General functions are limited to 5 inputs (4 even better - /2 ) No limitation on function complexity Example 2-bit comparator: A B = C D and A B > C D implemented with (GT) F = A C' + A B D' + B C' D' (EQ) G = A'B'C'D'+ A'B C'D + A B'C D'+ A B C D Can implement some functions of > 5 input 27 28

Xilinx FPGA Combinational Logic Examples N-input majority function: whenever n/2 or more inputs are N-input parity functions: 5 input/ ; 2 levels yield 25 5-input inputs! Majority Circuit 9 Input Parity Logic Xilinx FPGA Adder Example Example 2-bit binary adder - inputs: A, A0, B, B0, CIN outputs: S0, S, Cout A3 B3 Cout S3 A2 B2 C2 S2 A B C S A0 B0 Cin C0 S0 Full Adder, 4 delays to final carry out A3 B3 A2 B2 A B A0 B0Cin 7-input Majority Circuit S2 S0 2 x Two-bit Adders (3 s each) yields 2 s to final carry out Cout S3 C2 S 29 30 Computer-Aided Design CAD Tool Path (cont d) 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) 3 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 32

Xilinx CAD Tools Verilog (or VHDL) use to specify logic at a high-level Combine with schematics, library components Synopsys Compiles Verilog to logic Maps logic to the FPGA cells Optimizes logic Xilinx APR - automatic place and route (simulated annealing) Provides controllability through constraints Handles global signals Xilinx Xdelay - measure delay properties of mapping and aid in iteration Xilinx XACT - design editor to view final mapping results 33 Applications of FPGAs Implementation of random logic Easier changes at system-level (one device is modified) Can eliminate need for full-custom chips Prototyping Ensemble of gate arrays used to emulate a circuit to be manufactured Get more/better/faster debugging done than with simulation Reconfigurable hardware One hardware block used to implement more than one function Functions must be mutually-exclusive in time Can greatly reduce cost while enhancing flexibility RAM-based only option Special-purpose computation engines Hardware dedicated to solving one problem (or class of problems) Accelerators attached to general-purpose computers 34