fpga-based system design: chapter 3 copyright 2004 prentice hall ptr fpga fabric n elements of an...

20
FPGA-Based System Design: Chapter 3 Copyright 2004 Prentice Hall PTR FPGA Fabric Elements of an FPGA fabric Logic element Placement Wiring I/O Programming technologies Configuration Programming Reconfigurable FPGA questions

Upload: nickolas-hancock

Post on 02-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

FPGA Fabric

Elements of an FPGA fabric– Logic element– Placement– Wiring– I/O

Programming technologies– Configuration– Programming– Reconfigurable

FPGA questions

Page 2: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

Elements of an FPGA fabric

Logic element Interconnect I/O pins

LE LE LE

LE LE LE

LE LE LE

interconnect

IOB IOB IOB …

Page 3: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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.

Page 4: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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.

Page 5: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

Example logic element

Lookup table: a b out

0 0

0 1

1 0

1 1

memorya

bout

0

0

1

0

0 0 1 0

1

0

0

1

1 0 0 1

Page 6: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

Placement

Put each piece of logic in the array of logic elements

LE LE LE

LE LE LE

LE LE LE

Page 7: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

Programmable wiring

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.

Page 8: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

Programmable interconnection point

D Q

Register bit controls the interconnection

Page 9: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

Programmable wiring paths

Connect multiple segment paths

Page 10: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

Choosing a path

LE

LE

Page 11: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

Routing problems

Global routing:– Which combination of channels?

Local routing:– Which wire in each channel?

Routing metrics:– Net length.– Delay.

Page 12: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

I/O

Fundamental selection– input, output, three-state

Additional features– Register.– Voltage levels.– Slew rate.

Page 13: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

Programming technologies

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

Antifuse.– Programmed once.

Flash.– Similar to SRAM but using flash memory.

Page 14: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

Configuration

Must set control bits for:– LE.– Interconnect.– I/O blocks.

Usually configured off-line.– Separate burn-in step (antifuse).– At power-up (SRAM).

Page 15: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

Configuration vs. programming

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.

CPUmemoryadd r1, r2 IRadd r1, r2

Page 16: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

Reconfiguration

Some FPGAs are designed for fast configuration.– A few clock cycles, not thousands of clock

cycles. Allows hardware to be changed on-the-fly.

Page 17: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

FPGA fabric architecture questions

Given limited area budget:– How many logic elements?– How much interconnect?– How many I/O blocks?

Page 18: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

Logic element questions

How many inputs? How many functions?

– 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?

Page 19: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

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?

Page 20: FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O

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

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?