Sie sind auf Seite 1von 27

CSCE 3730 Reconfigurable Logic

FPGA Architecture
Dr. Song Fu song.fu@unt.edu http://www.cse.unt.edu/~song/csce3730
September 7, 2010

HD Memory Architecture

September 7, 2010

CSCE3730 - FPGA Architecture

Memory operation
Address is divided into row, column.
Row may contain full word or more than one word.

Selected row drives/senses bit lines in columns. Amplifiers/drivers read/write bit lines.

September 7, 2010

CSCE3730 - FPGA Architecture

Row Decoders
Decode row using NORs:

September 7, 2010

CSCE3730 - FPGA Architecture

ROM
ROM core is organized as NOR gates pulldown transistors.

September 7, 2010

CSCE3730 - FPGA Architecture

Static RAM (SRAM)


Core cell uses six-transistor circuit to store value. Value is stored symmetricallyboth true and complement are stored on crosscoupled transistors. SRAM retains value as long as power is applied to circuit.

September 7, 2010

CSCE3730 - FPGA Architecture

SRAM Core Cell

September 7, 2010

CSCE3730 - FPGA Architecture

SRAM Core Operation


Read
precharge bit and bit high; set select line high from row decoder; one bit line will be pulled down.

Write
set bit/bit to desired (complementary) values; set select line high; drive on bit lines will flip state if necessary.

September 7, 2010

CSCE3730 - FPGA Architecture

Definitions
Field Programmable Device (FPD)
a general term that refers to any type of integrated circuit used for implementing digital hardware, where the chip can be configured by the end user to realize different designs. Programming of such a device often involves placing the chip into a special programming unit, but some chips can also be configured insystem. Another name for FPDs is programmable logic devices (PLDs).
Source: S. Brown and J. Rose, FPGA and CPLD Architectures: A Tutorial, IEEE Design and Test of Computer, 1996
September 7, 2010 CSCE3730 - FPGA Architecture 9

Classifications
PLA a Programmable Logic Array (PLA) is a relatively
small FPD that contains two levels of logic, an ANDplane and an OR-plane, where both levels are programmable

PAL a Programmable Array Logic (PAL) is a relatively


small FPD that has a programmable AND-plane followed by a fixed OR-plane

SPLD refers to any type of Simple PLD, usually either a


PLA or PAL

CPLD a more Complex PLD that consists of an


arrangement of multiple SPLD-like blocks on a single chip.

FPGA a Field-Programmable Gate Array is an FPD


featuring a general structure that allows very high logic capacity.
10

Programmable Logic Array (PLA)


Programmable AND Plane Programmable OR Plane

Programmable Node Un-programmed Connect Disconnect X Y O1 O2 O3 XY XY XY XY


11

O4

X Y X X Y Y
September 7, 2010

CSCE3730 - FPGA Architecture

Programmable Logic Array (PLA)


Programmable AND Plane Programmable OR Plane
YZ XZ XYZ XY

XY+YZ XZ+XYZ

September 7, 2010

CSCE3730 - FPGA Architecture

12

Programmable Array Logic (PAL)


Programmable AND Plane Fixed OR Plane

O1

O2

O3

O4

September 7, 2010

CSCE3730 - FPGA Architecture

13

PAL with Logic Expanders


Programmable AND Plane Fixed OR Plane

Logic expanders
September 7, 2010 CSCE3730 - FPGA Architecture 14

PLA vs PAL
PLAs are more flexible than PALs since both AND & OR planes are programmable in PLAs. Because both AND & OR planes are programmable, PLAs are expensive to fabricate and have large propagation delay. By using fixed OR gates, PALs are cheaper and faster than PLAs. Logic expanders increase the flexibilities of PALs, but result in significant propagation delay. PALs usually contain D flip-flops connected to the outputs of OR gates to implement sequential circuits. PLAs and PALs are usually referred to as SPLD.
15

Complex PLD
A CPLD comprises multiple PAL-like blocks on a single chip with programmable interconnect to connect the blocks. CPLD Architecture
I/O block I/O block
September 7, 2010

I/O block

PAL-like block

PAL-like block

Programmable interconnect I/O block

PAL-like block

PAL-like block

CSCE3730 - FPGA Architecture

16

Altera MAX CPLD


I/O Cell

LAB (Logic Array Block)


LAB LAB LAB LAB LAB LAB LA (local array)

Chip-wide interconnect

Macroccell

Each LAB contains 16 macrocells

September 7, 2010

CSCE3730 - FPGA Architecture

17

Macrocell of Altera MAX CPLD

September 7, 2010

CSCE3730 - FPGA Architecture

18

Field-Programmable Gate Array


FPGA consists of an array of programmable basic logic cells surrounded by programmable interconnect. FPGA Structure
Programmable interconnect

Logic cell

I/O Cell

September 7, 2010

CSCE3730 - FPGA Architecture

19

FPGA vs CPLD
Capacitance
SPLDs Equivalent gates 0 ~ 200 CPLDs 200 ~ 12,000 FPGAs 1000 ~ 1,000,000

Applications
CPLDs
1. Implement random glue logics or 1. replace circuits previously implemented by multiple SPLDs Circuits that can exploit wide AND/OR gates, and do not need a very large number of flip-flops are good candidates for implementation in CPLDs.

FPGAs
FPGAs can be used in various applications: prototyping, FPGAbased computers, on-site hardware re-configuration, DSP, logic emulation, network components, etc.
20

2.

September 7, 2010

CSCE3730 - FPGA Architecture

Elements of an FPGA Fabric


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

interconnect LE LE LE LE LE LE

September 7, 2010

CSCE3730 - FPGA Architecture

21

Terminology
Configuration: bits that determine logic function + interconnect. Combinational logic block (CLB): logic element (LE). Lookup table (LUT): SRAM used for truth table. I/O block (IOB): I/O pin + associated logic and electronics.

September 7, 2010

CSCE3730 - FPGA Architecture

22

IOB

IOB

IOB LE

LE

Logic Element
Programmable:
Input connections. Internal function. Typically 4 inputs.

LE

interconnect LE LE LE LE LE LE

Coarser-grained than logic gates. Generally includes register. May provide specialized logic.
Adder carry chain.
September 7, 2010 CSCE3730 - FPGA Architecture 23

LE Example
Lookup table:
a 0
a b
0010

b 0 1 0 1

out
0 0 1 0 1 0 0 1
24

0
out

memory
1001

1 1

September 7, 2010

CSCE3730 - FPGA Architecture

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.

September 7, 2010

CSCE3730 - FPGA Architecture

25

Programmable Wiring Paths

September 7, 2010

CSCE3730 - FPGA Architecture

26

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.

September 7, 2010

CSCE3730 - FPGA Architecture

27

Das könnte Ihnen auch gefallen