Você está na página 1de 6

Topics

Elements of an FPGA fabric


Logic. Interconnect. I/O pins.
IOB LE LE LE IOB IOB

FPGA fabric architecture concepts.

LE LE interconnect LE LE LE LE

FPGA-Based System Design: Chapter 3

Copyright 2004 Prentice Hall PTR

FPGA-Based System Design: Chapter 3

Copyright 2004 Prentice Hall PTR

Terminology
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.

FPGA-Based System Design: Chapter 3 Copyright 2004 Prentice Hall PTR

Logic element

Programmable:
Input connections. Internal function.

Coarser-grained than logic gates.


Typically 4 inputs.

Generally includes register. May provide specialized logic.


Adder carry chain.
FPGA-Based System Design: Chapter 3 Copyright 2004 Prentice Hall PTR

Example logic element

Logic synthesis
How do we break the function into logic elements? How do we implement an operation within a logic element?

Lookup table: a
0

b 0 1 0 1

out
0 0 1 0 1 0 0 1

a b

0010

0
out

memory
1001

1 1

FPGA-Based System Design: Chapter 3

Copyright 2004 Prentice Hall PTR

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
Copyright 2004 Prentice Hall PTR

Organized into channels.


Many wires per channel.

Connections between wires made at programmable interconnection points. Must choose:


Channels from source to destination. Wires within the channels.
FPGA-Based System Design: Chapter 3 Copyright 2004 Prentice Hall PTR

FPGA-Based System Design: Chapter 3

Programmable interconnection point

Programmable wiring paths

FPGA-Based System Design: Chapter 3

Copyright 2004 Prentice Hall PTR

FPGA-Based System Design: Chapter 3

Copyright 2004 Prentice Hall PTR

Choosing a path
LE

Routing problems
Global routing:
Which combination of channels?

Local routing:
Which wire in each channel?

Routing metrics:
Net length. Delay.

LE
Copyright 2004 Prentice Hall PTR

FPGA-Based System Design: Chapter 3

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

FPGA-Based System Design: Chapter 3

Copyright 2004 Prentice Hall PTR

I/O
Fundamental selection: input, output, threestate? Additional features:

Programming technologies
SRAM.
Can be programmed many times. Must be programmed at power-up.

Register. Voltage levels. Slew rate.

Antifuse.
Programmed once.

Flash.
Similar to SRAM but using flash memory.

FPGA-Based System Design: Chapter 3

Copyright 2004 Prentice Hall PTR

FPGA-Based System Design: Chapter 3

Copyright 2004 Prentice Hall PTR

Configuration

Configuration vs. programming

Must set control bits for:


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).

add r1, r2

addIR r1, r2

memory

CPU

FPGA-Based System Design: Chapter 3

Copyright 2004 Prentice Hall PTR

FPGA-Based System Design: Chapter 3

Copyright 2004 Prentice Hall PTR

Reconfiguration

FPGA fabric architecture questions

Some FPGAs are designed for fast configuration.


A few clock cycles, not thousands of clock cycles.

Given limited area budget:


How many logic elements? How much interconnect? How many I/O blocks?

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

Copyright 2004 Prentice Hall PTR

Logic element questions


How many inputs? How many functions?

Interconnect questions
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?

All functions of n inputs or eliminate some combinations? What inputs go to what pieces of the function?

Any specialized logic?


Adder, etc.

What register features?


Copyright 2004 Prentice Hall PTR FPGA-Based System Design: Chapter 3 Copyright 2004 Prentice Hall PTR

FPGA-Based System Design: Chapter 3

I/O block questions

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 Copyright 2004 Prentice Hall PTR

Você também pode gostar