35
Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti logici programmabili Simple PLD: PROM, PLA PAL Complex PLD e FPGA: caratteristiche e confronto

Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Embed Size (px)

Citation preview

Page 1: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani – Laboratorio di elettronica digitale 1

Università di Padova - DEI

Laboratorio di elettronica digitaleLezione 3

Introduzione ai circuiti logici programmabili– Simple PLD: PROM, PLA PAL– Complex PLD e FPGA: caratteristiche e confronto

Page 2: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 2

PLDs

SPLDs CPLDs

PLAsPROMs PALs GALs etc.

The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)

Classificazione dei SPLD

Page 3: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 3

a b c

l l l

Address 0 &

Address 1 &

Address 2 &

Address 3 &

Address 4 &

Address 5 &

Address 6 &

Address 7 &

a !a b !b c !c

!a !c!b& &

!a c!b& &

!a !cb& &

!a cb& &

a !c!b& &

a c!b& &

a !cb& &

a cb& &

Predefined AND array

Pro

gram

mab

le O

R a

rray

w x y

Predefined linkProgrammable link

The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)

SPLD con architettura PROM

La struttura tipica di un SPLD basato su una ROM programmabile è fatta da un piano AND predefinito, che corrisponde al decodificatore di riga di una ROM, e da un piano OR programmabile.

Il piano AND fornisce tutti i mintermini degli N ingressi (in questo caso N=3). Il piano OR consente di fare la somma logica di uno o più mintermini.

Page 4: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 4

a b c w x y

0 0 0 0 1 00 0 1 0 1 10 1 0 0 1 00 1 1 0 1 11 0 0 0 1 01 0 1 0 1 11 1 0 1 0 11 1 1 1 0 0

l

&a

b

c

w

x

y

The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)

SPLD PROM: esempio 1/2

Page 5: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 5

a b c

l l l

Address 0 &

Address 1 &

Address 2 &

Address 3 &

Address 4 &

Address 5 &

Address 6 &

Address 7 &

a !a b !b c !c

!a !c!b& &

!a c!b& &

!a !cb& &

!a cb& &

a !c!b& &

a c!b& &

a !cb& &

a cb& &

Predefined AND array

Pro

gram

mab

le O

R a

rray

w x y

Predefined linkProgrammable link

w = (a & b)

x = !(a & b)

y = (a & b) ^ c

The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)

SPLD PROM: esempio 2/2

Ogni uscita è costruita facendo la somma logica (OR) dei mintermini opportuni.

Ad esempio:

w = (a & b) =

= (a & b & c) | (a & b & !c)

Page 6: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 6

a b c

&

&

&

a !a b !b c !c

N/A

Predefined AND array

Pro

gram

mab

leO

R a

rray

Predefined linkProgrammable link

l l l

w x y

N/A

N/A

The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)

SPLD con architettura PLA

Una PLA (programmable logic array) è simile a una PROM ma ha sia il piano AND che il piano OR programmabili. A differenza delle PROM, la dimensione del piano AND è indipendente dal numero di ingressi. Lo svantaggio principale è una minore velocità perché il segnale in una PLA deve attraversare due livelli di collegamenti programmabili (che sono più lenti di un collegamento fisso).

Programmable AND array

Page 7: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 7

a b c

&

&

&

a !a b !b c !c

a cb& &

a c&

!b !c&

Predefined AND array

Pro

gram

mab

leO

R a

rray

Predefined linkProgrammable link

l l l

w x y

w = (a & c) | (!b & !c)

x = (a & b & c) | (!b & !c)

y = (a & b & c)

The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)

Programmable AND array

SPLD PLA: esempio

Page 8: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 8

a b c

l l l

&

&

&

&

&

&

a !a b !b c !c

ProgrammableAND array

Pre

defin

ed O

R a

rray

w x y

Predefined linkProgrammable link

The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)

SPLD con architettura PAL

L'architettura PAL (programmable array logic) è nata come tentativo di risolvere il problema della bassa velocità delle PLA, mantenendo la programmabilità del piano AND.

Il piano OR predefinito limita il numero di implicanti che contribuiscono ad ogni uscita (nell'esempio a fianco ci sono due implicanti per uscita).

Page 9: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 9

ProgrammableInterconnect

matrix

Input/output pinsSPLD-like

blocks

The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)

PLD complessi (CPLD)

Concetto base: matrice di blocchi SPLD collegati da una rete di interconnessioni programmabili.

Page 10: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 10

100 wires

30 wires

Programmablemultiplexer

The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)

CPLD: il problema delle interconnessioni programmabili

I primi CPLD (Mega-PAL di Monolithic Memories Inc.) risultarono un fallimento a causa dell'eccessivo consumo di potenza e della bassa velocità, entrambi dovuti alla scelta di garantire il 100% di connettività (ogni uscita di un blocco poteva essere connessa a qualunque ingresso di un altro blocco).

Altera propose una architettura con connettività incompleta, realizzata in tecnologia CMOS con celle di memoria EPROM.

Page 11: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 11

PLDs ASICs

Standard Cell

Full Custom

Gate Arrays

Structured ASICs*

SPLDs

CPLDs

*Not available circa early 1980s

TheGAP

The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)

PLD e ASIC

Subito dopo l'avvento dei primi CPLD, è emersa chiaramente una lacuna tra la categoria dei circuiti integrati programmabili, versatili e veloci da progettare e realizzare, ma limitati a funzioni relativamente semplici, e la categoria dei circuiti integrati per applicazioni specifiche (ASIC), che permettono di realizzare sistemi di grande complessità, ma richiedono una fase di progetto e realizzazione lunga e costosa, e non sono riconfigurabili.

Page 12: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 12

Programmableinterconnect

Programmablelogic blocks

The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)

Field programmable gate array (FPGA)

• componenti proposti per la prima volta da Xilinx del 1984

• realizzati in tecnologia CMOS con memoria di configurazione SRAM

• architettura simile ai primi CPLD ma con un numero più elevato di blocchi logici programmabili più semplici, immersi in una griglia di interconnessioni con matrici di commutazione agli incroci

Page 13: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 13

3-inputLUT

abc

flip-flop

clock

muxy

qd

The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)

FPGA: esempio di blocco logico programmabile

• look-up table (LUT) per realizzare una qualsiasi funzione combinatoria a 35 ingressi

• possibilità di salvare il risultato in un registro

• ingresso ausiliario per combinare più funzioni logiche attraverso un MUX

Page 14: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 14

|

&ab

cy

y = (a & b) | !c

Required function Truth table

1011101

0000010100111001011101111

y

a b c y

00001111

00110011

01010101

10111011

SRAM cells

Programmed LUT

8:1

Mul

tiple

xer

a b c

The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)

FPGA: funzionamento di una LUT a SRAM

• i segnali di selezione del MUX diventano gli ingressi della funzione

• il contenuto delle celle SRAM determina la funzione logica realizzata dalla LUT

• riscrivendo il contenuto della SRAM si ottiene una nuova funzione logica

Page 15: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 15

FPGA e CPLD: confronto

La struttura base di FPGA e CPLD è simile: una matrice di blocchi logici programmabili collegati da una griglia di interconnessioni, anch'esse programmabili. Le principali differenze sono a livello architetturale e spesso sono abbastanza sfumate:

• complessità: per i CPLD tipicamente varia da 1 Kgate a 100 Kgate, per le FPGA dal 10 Kgate a 10 Mgate

• granularità: nei CPLD si trova un numero ridotto (1 100) di blocchi logici programmabili di tipo PLA e di dimensioni relativamente grandi (alcune decine di ingressi), con un sistema di interconnessioni semplice; nelle FPGA si trova un numero maggiore di blocchi logici (100 100K) di dimensioni ridotte (2 6 ingressi, 1 o 2 registri), con una griglia di interconnessioni molto complessa.

• ritardi: nei CPLD i tempi di propagazione complessivi sono dominati dai blocchi logici e il contributo delle interconnessioni può essere calcolato a priori abbastanza accuratamente; nelle FPGA il contributo delle interconnessioni domina i tempi di propagazione, e dipende fortemente dal piazzamento dei blocchi logici, per cui non può essere stimato accuratamente a priori

• meccanismo di programmazione: nei CPLD più spesso è E2PROM/FLASH, nelle FPGA SRAM o antifusibili

Page 16: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 16

Prefabricated I/O,cores, etc.

Embedded RAM

Sea-of-tiles

The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)

FPGA: moduli funzionali specifici

Le FPGA spesso includono moduli funzionali specifici come:

• sommatori

• moltiplicatori

• unità MAC

• memorie RAM

• core di microprocessori

• interfaccie di I/O veloci

Page 17: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 17

FPGA e CPLD: progetto

• La fase di progetto di FPGA/CPLD è in buona parte simile a quella di un ASIC– supportata da un linguaggio HDL e da strumenti CAD per la

simulazione e la sintesi– i passi del flusso di progettazione, dal concepimento dell'idea

alla derivazione dello schema circuitale a livello logico (rete di porte logiche), sono gli stessi

– le differenze riguardano essenzialmente il progetto a livello fisico: un ASIC richiede il piazzamento delle celle di libreria e il loro collegamento tramite connessioni create ad hoc; in un FPGA/CPLD il piazzamento consiste nell'allocazione delle risorse logiche disponibili sul componente e in una opportuna configurazione della griglia di interconnessioni

Page 18: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 18

(a) Host computer (b) Device programmer

Unprogrammeddevice

Programmeddevice

The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)

FPGA/CPLD: programmazione del componente

Il risultato della fase di progetto è un insieme di bit di configurazione (configuration stream), che viene caricato nel componente attraverso un dispositivo di programmazione o semplicemente attraverso terminali dedicati sul componente stesso. I bit di configurazione fissano lo stato (aperto/chiuso) degli interruttori che determinano la funzione svolta dai blocchi programmabili e la topologia delle interconnessioni.

Page 19: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 19

Xilinx Spartan-II: architecture

Page 20: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 20

Xilinx Spartan-II CLB

• Each CLB has two identical slices.• Slice has two logic cells:

– LUT.– Carry logic.– Registers.

Page 21: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 21

Xilinx Spartan-II: CLB

Page 22: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 22

Xilinx Spartan-II: slice

Page 23: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 23

Spartan-II CLB details

• Each lookup table can be used as a 16-bit synchronous RAM or 16-bit shift register.

• Arithmetic logic includes an XOR gate.• Each slice includes a mux to combine the results of the two

function generators in the slice.• Register can be configured as DFF or latch.• Has three-state drivers (BUFTs) for on-chip busses.

Page 24: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 24

Spartan-II CLB details

Page 25: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 25

Spartan-II CLB operation

• Arithmetic:– Carry block includes XOR gate.– Use LUT for carry, XOR for sum.

• Each slice uses F5 mux to combine results of multiplexers.• F6 mux combines outputs of F5 muxes.• Registers can be FF/latch; clock and clock enable.• Includes three-state output for on-chip bus.

Page 26: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 26

Spartan-II expansion MUXs

• MUXF5 combines 2 LUTs to create:– 4×1 multiplexer

– or any 5-input function (LUT5)

– or selected functions up to 9 inputs

• MUXF6 combines 2 slices to create:– 8×1 multiplexer

– or any 6-input function (LUT6)

– or selected functions up to 19 inputs

Page 27: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 27

Spartan-II distributed RAM

• … or as distributed RAM– 1 LUT = 16×1 bit RAM

– cascade LUT to increment RAM size

• Each LUT can be configured as a 16-bit shift register …

Page 28: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 28

Spartan-II interconnect

• Types of interconnect:– local;– general-purpose;– dedicated;– I/O pin.

Page 29: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 29

Spartan-II interconnect

Page 30: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 30

Spartan-II general-purpose routing

• Provides majority of routing resources:– General routing matrix (GRM) connects horizontal/vertical

channels and CLBs.– 24 interconnect between adjacent GRMs.– 96 hex lines connect GRM to GRMs six blocks away.– 12 longlines span the chip.

Page 31: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 31

Spartan-II general-purpose routing

• Relationship between GRM, hex lines, and local interconnect:

96

96

96

96

24

24 24

24

Page 32: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 32

Spartan-II local routing

Page 33: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 33

Spartan-II types of interconnect

Page 34: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 34

Spartan-II three-state bus

• Horizontal on-chip busses:

Page 35: Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti

Andrea Neviani - L.E.D. 35

Spartan-II clock distribution