EE121 John Wakerly Lecture #15

26
1 EE121 John Wakerly Lecture #15 CPLDs FPGAs

description

EE121 John Wakerly Lecture #15. CPLDs FPGAs. CPLDs vs. FPGAs. CPLD architecture Small number of largish PLDs (e.g., “36V18”) on a single chip Programmable interconnect between PLDs. FPGA architecture Much larger number of smaller programmable logic blocks. - PowerPoint PPT Presentation

Transcript of EE121 John Wakerly Lecture #15

Page 1: EE121  John Wakerly  Lecture #15

1

EE121 John Wakerly Lecture #15

CPLDs

FPGAs

Page 2: EE121  John Wakerly  Lecture #15

2

CPLDs vs. FPGAs• CPLD

architecture

• Small number of largish PLDs (e.g., “36V18”) on a single chip

• Programmable interconnect between PLDs

Page 3: EE121  John Wakerly  Lecture #15

3

• FPGAarchitecture

• Much larger number of smaller programmable logic blocks.

• Embedded in a sea of lots and lots of programmable interconnect.

Page 4: EE121  John Wakerly  Lecture #15

4

How to expand PLD architecture?• Increase # of inputs and outputs in a

conventional PLD?– E.g., 16V8 --> 20V8 --> 22V10.– Why not --> 32V16 --> 128V64 ?

• Problems: – n times the number of inputs and outputs requires n2 as much chip area -- too costly

– logic gets slower as number of inputs to AND array increases

• Solution: multiple PLDs with a relatively small programmable interconnect.– Less general than a single large PLD, but can use

software “fitter” to partition into smaller PLD blocks.

Page 5: EE121  John Wakerly  Lecture #15

5

CPLD families

• Identical individual PLD blocks (Xilinx “FBs”) replicated in different family members.– Different number of PLD blocks

– Different number of I/O pins

• Many CPLDs have fewer I/O pins than macrocells– “Buried” Macrocells -- provide needed logic terms

internally but these outputs are not connected externally.

– IC package size dictates # of I/O pins but not the total # of macrocells.

– Typical CPLD families have devices with differing resources in the same IC package.

Page 6: EE121  John Wakerly  Lecture #15

6

Xilinx CPLDs

• Notice overlap in resource availability in a particular package.

Page 7: EE121  John Wakerly  Lecture #15

7

Xilinx 9500-family CPLD architecture

72 ==>XC9572

Page 8: EE121  John Wakerly  Lecture #15

8

9500-family function blocks (FBs)

• 18 macrocells per FB• 36 inputs per FB (partitioning challenge, but

also reason for relatively compact size of FBs)• Macrocell outputs can go to I/O cells or back

into switch matrix to be routed to this or other FBs.

Page 9: EE121  John Wakerly  Lecture #15

9

9500-series macrocell (18 per FB)

Up to 5 product terms

Programmableinversion or XORproduct term

Global clock or product-term clock

Set control

Reset control

OE control

Page 10: EE121  John Wakerly  Lecture #15

10

9500-series product-term allocator

Share terms from above and below

programmablesteeringelements

Page 11: EE121  John Wakerly  Lecture #15

11

9500-series I/O block

Page 12: EE121  John Wakerly  Lecture #15

12

• Could be anything from a limited set of multiplexers to a full crossbar.

• Multiplexer -- small, fast, but difficult fitting• Crossbar -- easy fitting but large and slow

Switch matrix for XC95108

Page 13: EE121  John Wakerly  Lecture #15

13

FPGAs

• Historically, FPGA architectures and companies began around the same time as CPLDs

• FPGAs are closer to “programmable ASICs” -- large emphasis on interconnection routing– Timing is difficult to predict -- multiple hops vs. the

fixed delay of a CPLD’s switch matrix.– But more “scalable” to large sizes.

• FPGA programmable logic blocks have only a few inputs and 1 or 2 flip-flops, but there are a lot more of them compared to the number of macrocells in a CPLD.

Page 14: EE121  John Wakerly  Lecture #15

14

General FPGA chip architecture

a.k.a. CLB --“configurable logicblock”

Page 15: EE121  John Wakerly  Lecture #15

15

Xilinx 4000-series FPGAs

Page 16: EE121  John Wakerly  Lecture #15

16

FPGA specsmanship

• Two flip-flops per CLB, plus two per I/O cell.• 25 “gates” per CLB if used for logic.• 32 bits of RAM per CLB if not used for logic.• All of this is valid only if your design has a

“perfect fit”.

Page 17: EE121  John Wakerly  Lecture #15

17

Configurable Logic Block (CLB)

Page 18: EE121  John Wakerly  Lecture #15

18

CLB function generators (F, G, H)

• Use RAM to store a truth table– F, G: 4 inputs, 16 bits of RAM each– H: 3 inputs, 8 bits of RAM– RAM is loaded from an external PROM at system

initialization.

• Broad capability using F, G, and H:– Any 2 funcs of 4 vars, plus a func of 3 vars– Any func of 5 vars– Any func of 4 vars, plus some funcs of 6 vars– Some funcs of 9 vars, including parity and 4-bit

cascadable equality checking

Page 19: EE121  John Wakerly  Lecture #15

19

CLB input and output connections -- buried in the sea of interconnect

Page 20: EE121  John Wakerly  Lecture #15

20

Detail

connectionscontrolled byRAM bits

Page 21: EE121  John Wakerly  Lecture #15

21

Programmable Switch Matrix

programmable switch element

turning the corner, etc.

Page 22: EE121  John Wakerly  Lecture #15

22

The fitter’s job

• Partition logic functions into CLBs• Arrange the CLBs• Interconnect the CLBs• Minimize the number of CLBs used• Minimize the size and delay of interconnect

used• Work with constraints

– “Locked” I/O pins– Critical-path delays– Setup and hold times of storage elements

Page 23: EE121  John Wakerly  Lecture #15

23

Oh, by the way -- I/O blocks

Page 24: EE121  John Wakerly  Lecture #15

24

Problems common to CPLDs and FPGAs

• Pin locking– Small changes, and certainly large ones, can cause

the fitter to pick a different allocation of I/O blocks and pinout.

– Locking too early may make the resulting circuit slower or not fit at all.

• Running out of resources– Design may “blow up” if it doesn’t all fit on a single

device.– On-chip interconnect resources are much richer

than off-chip; e.g., barrel-shifter example.– Larger devices are exponentially more expensive.

Page 25: EE121  John Wakerly  Lecture #15

25

Midterm Solutions Discussion

Page 26: EE121  John Wakerly  Lecture #15

26

Next Time

• Synchronous design methodology• Metastability