DOC PREVIEW
UA ECE 274A - Lecture Notes

This preview shows page 1 out of 4 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 4 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 4 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Digital DesignCopyright © 2006Frank VahidECE 274 - Digital LogicBeyond the Book: FPGAs Lecture 23 – Underlying FPGA Implementation How does an FPGA work? How do we program the FGPA?Digital DesignCopyright © 2006Frank VahidECE 274 - Digital LogicFPGA Programmable IC Technology – FPGA Manufactured IC technologies Weeks to months to fabricate 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 Programmable in secondsDigital DesignCopyright © 2006Frank VahidECE 274 - Digital Logic FPGA Internals: Lookup Tables (LUTs)F = x'y' + xyx0011y0101F10014x1 Mem.0123rda1a01yxDF1001 Basic idea: Memory can implement combinational logic e.g., 2-address memory can implement 2-input logic 1-bit wide memory – 1 function4x1 Mem.10010123rda1a01Dy=0x=0F=14x1 Mem.10010123rda1a01Dy=1x=0F=04x1 Mem.10010123rda1a01Dy=0x=1F=04x1 Mem.10010123rda1a01Dy=1x=1F=1Digital DesignCopyright © 2006Frank VahidECE 274 - Digital Logic FPGA Internals: Lookup Tables (LUTs)F = x'y' + xyG = xy'x0011y0101F1001G00104x2 Mem.100001100123rda1a01xyD1 D0FG What if we want two outputs? Use a 2-bit wide memory Such memory in FPGA known as Lookup Table (LUT)4x1 Mem.100001100123rda1a01D1y=0x=0F=14x1 Mem.100001100123rda1a01D1y=1x=0F=04x1 Mem.100001100123rda1a01D1y=0x=1F=04x1 Mem.100001100123rda1a01D1y=1x=1F=1D0G=0D0G=0D0G=1D0G=0Digital DesignCopyright © 2006Frank VahidkpswBeltWarnk00001111p00110011s01010101w00000010ECE 274 - Digital Logic FPGA Internals: Lookup Tables (LUTs) What if we have more inputs? Example: Seat-belt warning lightProgramming(seconds)Fab1-3 months8x 1 Mem.00000010DwIC01234567a2a1a0kpsDigital DesignCopyright © 2006Frank VahidECE 274 - Digital Logic FPGA Internals: Lookup Tables (LUTs) Lookup tables become inefficient for more inputs 3 inputs Æ 8 entries 8 inputs Æ 256 entries 16 inputs Æ 65,536 entries!kpsCircuit8x 1 Mem.00010Dw01267a2a1a0kpsw…Circuit8x 1 Mem.00010Dw012254255w…Circuit8x 1 Mem.00010Dw0126553465535w…cefhdgbaa7a6a5abca4a3a2defa1a0ghin1in0in3in2in5in4in7in6in9in8in10in11in12in13in14in15in1in0in3in2in5in4in7in6in9in8in10in11in12in13in14in15a14a13a11a12a10a8a9a7a5a6a4a3a2a1a0Digital DesignCopyright © 2006Frank VahidMap to 3-input LUTs5-input circuit, but 3-input LUTs availablekpstdwBeltWarn8x 1 Mem.00000010D01234567a2a1a0kpsxdt8x 1 Mem.01111111Dw01234567a2a1a0ECE 274 - Digital Logic FPGA Internals: Lookup Tables (LUTs) 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 systemPartition circuit into 3-input sub-circuitskpstdxwBeltWarn3 inputs1 outputx=kps'3 inputs1 outputw=x+t+dSub-circuits have only 3-inputs eachkps' x+t+dDigital DesignCopyright © 2006Frank VahidECE 274 - Digital LogicFPGA Internals: Lookup Tables (LUTs) Partitioning among smaller LUTs is more size efficient Example: 9-input circuitacbdfgFiehacbdfegih3x13x13x13x1F512x 1 Mem.8x 1 Mem.Original 9-input circuitPartitioned among 3x1 LUTsRequires only 4 3-input LUTs (8x1 memories) –much smaller than a 9-input LUT (512x1 memory)Digital DesignCopyright © 2006Frank Vahid8x 2 Mem.1001000000000000D0D101234567a2a1a0d1d00i1i08x2 Mem.0000100100000000D0D1d3d201234567a2a1a00i1 i0d0d1d2d3Sub-circuit has 2 inputs, 2 outputsSub-circuit has 2 inputs, 2 outputsECE 274 - Digital Logic FPGA Internals: Lookup Tables (LUTs) LUT typically has 2 (or more) outputs, not just one  Example: Mapping a 2x4 decoder to 3-input 2-output LUTsDigital DesignCopyright © 2006Frank VahidCLBSM SMSM SMCLBCLBCLBCLBCLBCLBCLBCLBRepresents channel with tens of wiresConnections for just one CLB shown, but all CLBsare obviously connected to channelsECE 274 - Digital LogicFPGA Internals: Overall Architecture Consists of hundreds or thousands of CLBs and switch matrices (SMs) CLB - LUT + additional components SM – configurable routing between CLB Arranged in regular pattern on a chipDigital DesignCopyright © 2006Frank VahidECE 274 - Digital LogicFPGA Internals: Programming an FPGA How do we program an FPGA? All configuration memory bits are connected as one big shift register Known as scan chain Shift in "bit file" of desired circuit8x 1 Mem.00000010D101234567a2a1a0kpdt8x 1 Mem.01111111Dw01234567a2a1a0Switch Matrix101101D0sxpinBit file contents for desired circuit:


View Full Document

UA ECE 274A - Lecture Notes

Download Lecture Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture Notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?