La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti."— Transcript della presentazione:

1 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

2 Andrea Neviani - L.E.D. 2 The Design Warriors Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (www.mentor.com) Classificazione dei SPLD

3 Andrea Neviani - L.E.D. 3 The Design Warriors Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 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.

4 Andrea Neviani - L.E.D. 4 The Design Warriors Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (www.mentor.com) SPLD PROM: esempio 1/2

5 Andrea Neviani - L.E.D. 5 The Design Warriors Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 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)

6 Andrea Neviani - L.E.D. 6 The Design Warriors Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 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

7 Andrea Neviani - L.E.D. 7 The Design Warriors Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (www.mentor.com) Programmable AND array SPLD PLA: esempio

8 Andrea Neviani - L.E.D. 8 The Design Warriors Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 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).

9 Andrea Neviani - L.E.D. 9 The Design Warriors Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (www.mentor.com) PLD complessi (CPLD) Concetto base: matrice di blocchi SPLD collegati da una rete di interconnessioni programmabili.

10 Andrea Neviani - L.E.D. 10 The Design Warriors Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 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.

11 Andrea Neviani - L.E.D. 11 The Design Warriors Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 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.

12 Andrea Neviani - L.E.D. 12 The Design Warriors Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 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

13 Andrea Neviani - L.E.D. 13 The Design Warriors Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (www.mentor.com) FPGA: esempio di blocco logico programmabile look-up table (LUT) per realizzare una qualsiasi funzione combinatoria a 3 5 ingressi possibilità di salvare il risultato in un registro ingresso ausiliario per combinare più funzioni logiche attraverso un MUX

14 Andrea Neviani - L.E.D. 14 The Design Warriors Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 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

15 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 ( K) 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 è E 2 PROM/FLASH, nelle FPGA SRAM o antifusibili

16 Andrea Neviani - L.E.D. 16 The Design Warriors Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 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

17 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

18 Andrea Neviani - L.E.D. 18 The Design Warriors Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 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.

19 Andrea Neviani - L.E.D. 19 Xilinx Spartan-II: architecture

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

21 Andrea Neviani - L.E.D. 21 Xilinx Spartan-II: CLB

22 Andrea Neviani - L.E.D. 22 Xilinx Spartan-II: slice

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

24 Andrea Neviani - L.E.D. 24 Spartan-II CLB details

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

26 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

27 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 …

28 Andrea Neviani - L.E.D. 28 Spartan-II interconnect Types of interconnect: –local; –general-purpose; –dedicated; –I/O pin.

29 Andrea Neviani - L.E.D. 29 Spartan-II interconnect

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

31 Andrea Neviani - L.E.D. 31 Spartan-II general-purpose routing Relationship between GRM, hex lines, and local interconnect: 96 24

32 Andrea Neviani - L.E.D. 32 Spartan-II local routing

33 Andrea Neviani - L.E.D. 33 Spartan-II types of interconnect

34 Andrea Neviani - L.E.D. 34 Spartan-II three-state bus Horizontal on-chip busses:

35 Andrea Neviani - L.E.D. 35 Spartan-II clock distribution


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

Presentazioni simili


Annunci Google