Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Laboratorio di elettronica digitale Lezione 3
Introduzione ai circuiti logici programmabili Simple PLD: PROM, PLA PAL Complex PLD e FPGA: caratteristiche e confronto
2
Classificazione dei SPLD
The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (
3
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. The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (
4
SPLD PROM: esempio /2 The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (
5
SPLD PROM: esempio /2 Ogni uscita è costruita facendo la somma logica (OR) dei mintermini opportuni. Ad esempio: w = (a & b) = = (a & b & c) | (a & b & !c) The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (
6
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 The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (
7
SPLD PLA: esempio Programmable AND array
The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (
8
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). The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (
9
PLD complessi (CPLD) Concetto base: matrice di blocchi SPLD collegati da una rete di interconnessioni programmabili. The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (
10
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. The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (
11
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. The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (
12
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 The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (
13
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 The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (
14
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 The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (
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
16
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 The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (
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
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. The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN Copyright © 2004 Mentor Graphics Corp. (
19
Xilinx Spartan-II: architecture
20
Each CLB has two identical slices. Slice has two logic cells:
Xilinx Spartan-II CLB Each CLB has two identical slices. Slice has two logic cells: LUT. Carry logic. Registers.
21
Xilinx Spartan-II: CLB
22
Xilinx Spartan-II: slice
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
Spartan-II CLB details
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
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
Spartan-II distributed RAM
Each LUT can be configured as a 16-bit shift register … … or as distributed RAM 1 LUT = 16×1 bit RAM cascade LUT to increment RAM size
28
Spartan-II interconnect
Types of interconnect: local; general-purpose; dedicated; I/O pin.
29
Spartan-II interconnect
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
Spartan-II general-purpose routing
Relationship between GRM, hex lines, and local interconnect: 96 24
32
Spartan-II local routing
33
Spartan-II types of interconnect
34
Spartan-II three-state bus
Horizontal on-chip busses:
35
Spartan-II clock distribution
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.