1 Introduction A digital circuit design is just an idea, perhaps drawn on paper We eventually need to implement the circuit on a physical device –How do.

Slides:



Advertisements
Similar presentations
Lecture 11-1 FPGA We have finished combinational circuits, and learned registers. Now are ready to see the inside of an FPGA.
Advertisements

Digital Design Copyright © 2006 Frank Vahid 1 FPGA Internals: Lookup Tables (LUTs) Basic idea: Memory can implement combinational logic –e.g., 2-address.
1 KU College of Engineering Elec 204: Digital Systems Design Lecture 9 Programmable Configurations Read Only Memory (ROM) – –a fixed array of AND gates.
EELE 367 – Logic Design Module 2 – Modern Digital Design Flow Agenda 1.History of Digital Design Approach 2.HDLs 3.Design Abstraction 4.Modern Design Steps.
Programmable Logic Devices
BR 1/991 Programmable Logic There has to be a better way to implement a logic function than to hook together discrete 74XX packages or create a custom.
FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR SRAM-based FPGA n SRAM-based LE –Registers in logic elements –LUT-based logic element.
©2004 Brooks/Cole FIGURES FOR CHAPTER 9 MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES Click the mouse to move to the next page. Use the ESC key.
CPEN Digital System Design
EECE579: Digital Design Flows
FPGA structure and programming - Eli Kaminsky 1 FPGA structure and programming.
ENGIN112 L38: Programmable Logic December 5, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 38 Programmable Logic.
02/02/20091 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
The Spartan 3e FPGA. CS/EE 3710 The Spartan 3e FPGA  What’s inside the chip? How does it implement random logic? What other features can you use?  What.
1 Other Technologies Off-the-shelf logic (SSI) IC –Logic IC has a few gates, connected to IC's pins Known as Small Scale Integration (SSI) –Popular logic.
Digital Design 2e Copyright © 2010 Frank Vahid 1 Digital Design Chapter 7: Physical Implementation Slides to accompany the textbook Digital Design, with.
Evolution of implementation technologies
1/31/20081 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
Digital Design – Physical Implementation Chapter 7 - Physical Implementation.
1 Introduction Chapters 2 & 3: Introduced increasingly complex digital building blocks –Gates, multiplexors, decoders, basic registers, and controllers.
Multiplexers, Decoders, and Programmable Logic Devices
ECE 331 – Digital System Design Tristate Buffers, Read-Only Memories and Programmable Logic Devices (Lecture #16) The slides included herein were taken.
Physical Implementation 1)Manufactured Integrated Circuit (IC) Technologies 2)Programmable IC Technology 3)Other Technologies Manufactured IC Technologies.
Chapter 7: Physical Implementation
Programmable Array Logic (PAL) Fixed OR array programmable AND array Fixed OR array programmable AND array Easy to program Easy to program Poor flexibility.
CS 151 Digital Systems Design Lecture 38 Programmable Logic.
Figure to-1 Multiplexer and Switch Analog
Chapter 4 Programmable Logic Devices: CPLDs with VHDL Design Copyright ©2006 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights.
EE4OI4 Engineering Design Programmable Logic Technology.
Combinational and Sequential Logic Circuits.
Unit 9 Multiplexers, Decoders, and Programmable Logic Devices
Programmable Implementation Technologies Digital Logic Design Instructor: Kasım Sinan YILDIRIM.
EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Chapter 4 Programmable.
Open Discussion of Design Flow Today’s task: Design an ASIC that will drive a TV cell phone Exercise objective: Importance of codesign.
Digital Design Copyright Frank Vahid 1 Digital Design Chapter 7: Physical Implementation Slides to accompany the textbook Digital Design, First Edition,
Unit 9 Multiplexers, Decoders, and Programmable Logic Devices Ku-Yaw Chang Assistant Professor, Department of Computer Science.
Memory and Programmable Logic Memory device: Device to which binary information is transferred for storage, and from which information is available for.
Programmable Logic Devices
CHAPTER 9 MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES
Field Programmable Gate Arrays (FPGAs) An Enabling Technology.
Basic Sequential Components CT101 – Computing Systems Organization.
ECE 3110: Introduction to Digital Systems Introduction (Contd.)
EE3A1 Computer Hardware and Digital Design
FPGA Based System Design
Lecture 21: Registers and Counters (1)
M.Mohajjel. Why? TTM (Time-to-market) Prototyping Reconfigurable and Custom Computing 2Digital System Design.
ESS | FPGA for Dummies | | Maurizio Donna FPGA for Dummies Basic FPGA architecture.
FPGA-Based System Design: Chapter 1 Copyright  2004 Prentice Hall PTR Moore’s Law n Gordon Moore: co-founder of Intel. n Predicted that number of transistors.
Programmable Logic Device Architectures
An Improved “Soft” eFPGA Design and Implementation Strategy
PLDS Mohammed Anvar P.K AP/ECE Al-Ameen Engineering College.
Delivered by.. Love Jain p08ec907. Design Styles  Full-custom  Cell-based  Gate array  Programmable logic Field programmable gate array (FPGA)
Reconfigurable Architectures Greg Stitt ECE Department University of Florida.
Robust Low Power VLSI R obust L ow P ower VLSI Using Module Compiler to build FPGA Structures Seyi Ayorinde ECE 6505.
FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR Topics n FPGA fabric architecture concepts.
Introduction to Field Programmable Gate Arrays (FPGAs) EDL Spring 2016 Johns Hopkins University Electrical and Computer Engineering March 2, 2016.
Programmable Logic Devices
This chapter in the book includes: Objectives Study Guide
ETE Digital Electronics
Chapter 7: Physical Implementation
Topics SRAM-based FPGA fabrics: Xilinx. Altera..
This chapter in the book includes: Objectives Study Guide
Programmable Logic Devices: CPLDs and FPGAs with VHDL Design
Dr. Clincy Professor of CS
Physical Implementation Manufactured IC Technologies
Dr. Clincy Professor of CS
EEE2243 Digital System Design Chapter 9: Advanced Topic: Physical Implementation by Muhazam Mustapha extracted from Frank Vahid’s slides, May 2012.
ECE 352 Digital System Fundamentals
Physical Implementation
Unit -4 Introduction to Embedded Systems Tuesday.
Presentation transcript:

1 Introduction A digital circuit design is just an idea, perhaps drawn on paper We eventually need to implement the circuit on a physical device –How do we get from (a) to (b)? si k p s w BeltWarn IC (a) Digital circuit design (b) Physical implementation

2 Manufactured IC Technologies We can manufacture our own IC –Months of time and millions of dollars –(1) Full-custom or (2) semicustom (1) Full-custom IC –We make a full custom layout Using CAD tools Layout describes the location and size of every transistor and wire –A fab (fabrication plant) builds IC for layout –Hard! Fab setup costs ("non-recurring engineering", or NRE, costs) high Error prone (several "respins") Fairly uncommon –Reserved for special ICs that demand the very best performance or the very smallest size/power k p s w BeltWarn IC Custom layout Fab months a

3 Manufactured IC Technologies – Gate Array ASIC (2) Semicustom IC –"Application-specific IC" (ASIC) –(a) Gate array or (b) standard cell (2a) Gate array –Series of gates already layed out on chip –We just wire them together Using CAD tools –Vs. full-custom Cheaper and quicker to design But worse performance, size, power –Very popular k p s w BeltWarn w Fab weeks (just wiring) (a) IC (d) k p s (c) (b) a

4 Manufactured IC Technologies – Gate Array ASIC (2a) Gate array –Example: Mapping a half-adder to a gate array Gate array s co a b co = ab s = a'b + ab' a'bab' a Half-adder equations: ab

5 Manufactured IC Technologies – Standard Cell ASIC (2) Semicustom IC –"Application-specific IC" (ASIC) –(a) Gate array or (b) standard cell (2b) Standard cell –Pre-layed-out "cells" exist in library, not on chip –Designer instantiates cells into pre-defined rows, and connects –Vs. gate array Better performance/power/size A bit harder to design –Vs. full custom Not as good of circuit, but still far easier to design w k p s w BeltWarn k p s Fab 1-3 months (cells and wiring) ( a ) IC ( d ) ( c ) ( b ) Cell library cell row a

6 Manufactured IC Technologies – Standard Cell ASIC (2b) Standard cell –Example: Mapping a half-adder to standard cells s co a b co = ab s = a'b + ab' aba'b ab' cell row Gate array s co a b a'bab'ab Notice fewer gates and shorter wires for standard cells versus gate array, but at cost of more design effort a a

7 Programmable IC Technology – FPGA Manufactured IC technologies require weeks to months to fabricate –And have large (hundred thousand to million dollar) initial costs Programmable ICs are pre-manufactured –Can implement circuit today –Just download bits into device –Slower/bigger/more-power than manufactured ICs But get it today, and no fabrication costs Popular programmable IC – FPGA –"Field-programmable gate array" Developed late 1980s Though no "gate array" inside –Named when gate arrays were very popular in the 1980s Programmable in seconds

8 FPGA Internals: Lookup Tables (LUTs) Basic idea: Memory can implement combinational logic –e.g., 2-address memory can implement 2-input logic –1-bit wide memory – 1 function; 2-bits wide – 2 functions Such memory in FPGA known as Lookup Table (LUT) ( b )( a ) ( d ) F = x'y' + xy G = xy' x y F G F = x'y' + xy x y F x1 Mem rd a1 a0 1 y x D F 4x1 Mem rd a1 a0 1 D ( c ) y=0 x=0 F=1 4x2 Mem rd a1 a0 1 x y D1D0 FG ( e ) a a a a

9 FPGA Internals: Lookup Tables (LUTs) Example: Seat-belt warning light (again) k p s w BeltWarn ( a ) ( b ) k p s w Programming (seconds) Fab 1-3 months a a ( c ) 8x1 Mem D w I C a2 a1 a0 k p s

10 FPGA Internals: Lookup Tables (LUTs) Lookup tables become inefficient for more inputs –3 inputs  only 8 words –8 inputs  256 words; 16 inputs  65,536 words! FPGAs thus have numerous small (3, 4, 5, or even 6-input) LUTs –If circuit has more inputs, must partition circuit among LUTs –Example: Extended seat-belt warning light system: 5-input circuit, but 3- input LUTs available Map to 3-input LUTs k p s t d w BeltWarn ( a ) Partition circuit into 3-input sub-circuits k p s t d x w BeltWarn ( b ) 3 inputs 1 output x=kps' 3 inputs 1 output w=x+t+d a a Sub-circuits have only 3-inputs each 8x1Mem D a2 a1 a0 k p s kps' x d t ( c ) 8x1Mem D w a2 a1 a0 x+t+d

11 FPGA Internals: Lookup Tables (LUTs) Partitioning among smaller LUTs is more size efficient –Example: 9-input circuit a c b a c b d f g F i e h d f e g i h 3x1 F (a) (b) (c) 512x1Mem. 8x1Mem. Original 9-input circuit Partitioned among 3x1 LUTs Requires only 4 3-input LUTs (8x1 memories) – much smaller than a 9-input LUT (512x1 memory)

12 8x2Mem. D0D a2 a1 a0 a b c ( c ) ( a ) ( b ) 8x2Mem. D0D a2 a1 a0 a c b a c b d d e e F F t FPGA Internals: Lookup Tables (LUTs) LUT typically has 2 (or more) outputs, not just one Example: Partitioning a circuit among 3-input 2-output lookup tables First column unused; second column implements AND F e d t Second column unused; first column implements AND/OR sub-circuit (Note: decomposed one 4- input AND input two smaller ANDs to enable partitioning into 3-input sub-circuits) a a

13 FPGA Internals: Lookup Tables (LUTs) Example: Mapping a 2x4 decoder to 3-input 2-output LUTs 8x2Mem D0D a2 a1 a0 i1i0 ( b )( a ) 8x2Mem D0D1 d1d0d3d a2 a1 a0 0 i1 i0 0 d0 d1 d2 d3 Sub-circuit has 2 inputs, 2 outputs a a

14 8x2Mem. 00 D0D a2 a1 a0 P1 P0 P6 P7 P8 P9 P2 P3 P5 P4 ( a ) 8x2Mem. 00 D0D a2 a1 a0 m0 m1 o0 o1 m2 m3 Switch matrix FPGA (partial) FPGA Internals: Switch Matrices Previous slides had hardwired connections between LUTs Instead, want to program the connections too Use switch matrices (also known as programmable interconnect) –Simple mux-based version – each output can be set to any of the four inputs just by programming its 2-bit configuration memory ( b ) m0 o0 o1 i0 s0 d s1 i1 i2 i3 m1 m2 m3 2-bit memory 2-bit memory Switch matrix 4x1 mux i0 s0 d s1 i1 i2 i3 4x1 mux a a

15 8x2Mem D0D a2 a1 a0 0 0 d3 d2 d1 d0 i1 i0 i1 ( a ) 8x2Mem D0D a2 a1 a0 m0 m1 o0 o1 m2 m3 Switch matrix FPGA (partial) FPGA Internals: Switch Matrices Mapping a 2x4 decoder onto an FPGA with a switch matrix ( b ) m0 o0 o1 i0 s0 d s1 i1 i2 i3 m1 m2 m3 Switch matrix 4x1 mux i0 s0 d s1 i1 i2 i3 4x1 mux These bits establish the desired connections a

16 FPGA Internals: Switch Matrices Mapping the extended seatbelt warning light onto an FPGA with a switch matrix –Recall earlier example (let's ignore d input for simplicity) 8x2Mem D0D a2 a1 a0 k 0 w p s 0 t ( a )( b ) 8x2Mem D0D a2 a1 a0 m0 m1 o0 o1 m2 m0 o0 o1 i0 s0 d s1 i1 i2 i3 m1 m2 m3 Switch matrix FPGA (partial) Switch matrix 4x1 mux i0 s0 d s1 i1 i2 i3 4x1 mux k p s t d x w BeltWarn a x

17 FPGA Internals: Configurable Logic Blocks (CLBs) LUTs can only implement combinational logic Need flip-flops to implement sequential logic Add flip-flop to each LUT output –Configurable Logic Block (CLB) LUT + flip-flops –Can program CLB outputs to come from flip-flops or from LUTs directly 8x2Mem. 00 D0D a2 a1 a0 P1 P0 P2 P3 P5 P4 8x2Mem. 00 D0D a2 a1 a0 m0 m1 o0 o1 m2 m3 Switch matrix FPGA 00 CLB P6 P7 P8 P9 flip-flop CLB output 00 2x bit CLB output configuration memory a

18 FPGA Internals: Sequential Circuit Example using CLBs 8x2Mem D0D a2 a1 a0 0 0 a b d c 8x2Mem D0D a2 a1 a0 m0 m1 o0 o1 m2 m3 Switch matrix FPGA x CLB z y x w 11 abcd wxy ( a ) ( b ) ( c ) z a a1 a a0 b D1 w=a' D0 x=b' Left lookup table below unused a

19 FPGA Internals: Overall Architecture Consists of hundreds or thousands of CLBs and switch matrices (SMs) arranged in regular pattern on a chip CLB SM CLB Represents channel with tens of wires Connections for just one CLB shown, but all CLBs are obviously connected to channels

20 FPGA Internals: Programming an FPGA All configuration memory bits are connected as one big shift register –Known as scan chain Shift in "bit file" of desired circuit 8x2Mem D0D a2 a1 a0 0 0 Pin Pclk a b d c Pin Pclk 8x2Mem D0D a2 a1 a0 m0 m1 o0 o1 m2 m3 Switch matrix FPGA x12x CLB z y x w ( c ) ( b ) ( a ) Conceptual view of configuration bit scan chain is that of a 40-bit shift register Bit file contents for desired circuit: This isn't wrong. Although the bits appear as "10" above, note that the scan chain passes through those bits from right to left – so "01" is correct here. a