Elements of an FPGA fabric Topics ! FPGA fabric architecture concepts. ! ! ! Logic. Interconnect. I/O pins. IOB IOB LE IOB LE … LE interconnect Copyright 2004 Prentice Hall PTR FPGA-Based System Design: Chapter 3 ! ! ! Configuration: bits that determine logic function + interconnect. CLB: combinational logic block = logic element (LE). LUT: Lookup table = SRAM used for truth table. I/O block (IOB): I/O pin + associated logic and electronics. ! Copyright 2004 Prentice Hall PTR FPGA-Based System Design: Chapter 3 ! ! ! b memory a 1001 FPGA-Based System Design: Chapter 3 out LE Copyright 2004 Prentice Hall PTR b 0 0 0 1 1 0 1 1 Input connections. Internal function. Typically 4 inputs. Generally includes register. May provide specialized logic. Adder carry chain. FPGA-Based System Design: Chapter 3 Copyright 2004 Prentice Hall PTR Logic synthesis out ! ! a LE Coarser-grained than logic gates. ! ! Example logic element 0010 LE Programmable: ! Lookup table: LE Logic element ! ! LE … FPGA-Based System Design: Chapter 3 Terminology ! LE 0 1 0 0 1 0 0 1 Copyright 2004 Prentice Hall PTR How do we break the function into logic elements? How do we implement an operation within a logic element? FPGA-Based System Design: Chapter 3 Copyright 2004 Prentice Hall PTR Placement ! Programmable wiring Where do we put each piece of logic in the array of logic elements? ! ! ! LE LE LE LE LE … LE LE LE LE Organized into channels. ! ! ! Copyright 2004 Prentice Hall PTR FPGA-Based System Design: Chapter 3 Channels from source to destination. Wires within the channels. FPGA-Based System Design: Chapter 3 Programmable interconnection point D Many wires per channel. Connections between wires made at programmable interconnection points. Must choose: Copyright 2004 Prentice Hall PTR Programmable wiring paths Q FPGA-Based System Design: Chapter 3 Copyright 2004 Prentice Hall PTR FPGA-Based System Design: Chapter 3 Choosing a path Copyright 2004 Prentice Hall PTR Routing problems ! Global routing: ! Local routing: ! Routing metrics: LE ! ! ! ! Which combination of channels? Which wire in each channel? Net length. Delay. LE FPGA-Based System Design: Chapter 3 Copyright 2004 Prentice Hall PTR FPGA-Based System Design: Chapter 3 Copyright 2004 Prentice Hall PTR Segmented wiring Offset segments Length 1 Length 2 FPGA-Based System Design: Chapter 3 Copyright 2004 Prentice Hall PTR I/O ! ! Programming technologies Fundamental selection: input, output, three-state? Additional features: ! ! ! Register. Voltage levels. Slew rate. ! SRAM. ! ! Antifuse. ! Flash. ! Copyright 2004 Prentice Hall PTR ! ! ! Similar to SRAM but using flash memory. Copyright 2004 Prentice Hall PTR Configuration vs. programming Must set control bits for: ! Programmed once. FPGA-Based System Design: Chapter 3 Configuration ! Can be programmed many times. Must be programmed at power-up. ! ! FPGA-Based System Design: Chapter 3 Copyright 2004 Prentice Hall PTR FPGA-Based System Design: Chapter 3 ! LE. Interconnect. I/O blocks. FPGA configuration: ! ! Bits stay at the device they program. A configuration bit controls a switch or a logic bit. ! CPU programming: ! ! Instructions are fetched from a memory. Instructions select complex operations. Usually configured off-line. ! ! Separate burn-in step (antifuse). At power-up (SRAM). FPGA-Based System Design: Chapter 3 Copyright 2004 Prentice Hall PTR FPGA-Based System Design: Chapter 3 add r1, r2 addIR r1, r2 memory CPU Copyright 2004 Prentice Hall PTR Reconfiguration ! Some FPGAs are designed for fast configuration. ! ! FPGA fabric architecture questions ! A few clock cycles, not thousands of clock cycles. Given limited area budget: ! Allows hardware to be changed on-the-fly. ! ! FPGA-Based System Design: Chapter 3 Copyright 2004 Prentice Hall PTR FPGA-Based System Design: Chapter 3 Logic element questions ! ! ! ! ! ! ! All functions of n inputs or eliminate some combinations? What inputs go to what pieces of the function? Any specialized logic? ! Copyright 2004 Prentice Hall PTR How many pins? ! ! ! ! Maximum number of pins determined by package type. Are pins programmed individually or in groups? Can all pins perform all functions? How many logic families do we support? FPGA-Based System Design: Chapter 3 ! ! What register features? I/O block questions ! ! ! Adder, etc. FPGA-Based System Design: Chapter 3 Copyright 2004 Prentice Hall PTR Interconnect questions How many inputs? How many functions? ! How many logic elements? How much interconnect? How many I/O blocks? Copyright 2004 Prentice Hall PTR How many wires in each channel? Uniform distribution of wiring? How should wires be segmented? How rich is interconnect between channels? How long is the average wire? How much buffering do we add to wires? FPGA-Based System Design: Chapter 3 Copyright 2004 Prentice Hall PTR