Field programmable Gate array
|
|
|
- Fabrizio Bonelli
- 9 anni fa
- Просмотров:
Транскрипт
1 Field programmable Gate array Overview dei dispositivi elettronici programmabili FPGA della famiglia Spartan-3 ing. Mario Barbareschi prof. Antonino Mazzeo
2 PLD: Programmable Logic Device Un dispositivo logico programmabile (PLD) è un componente elettronico usato per costruire circuiti digitali riconfigurabili. Diversamente dalla porta logica, che lavora secondo una funzione fissa e non alterabile, un PLD non ha una funzione definita in fonderia. Prima di essere utilizzato il PLD ha bisogno di una fase di programmazione, cioè di configurazione. Il vantaggio risiede in tre aspetti cruciali: Il costo di fonderia è abbattuto: avviare la produzione di una nuova serie di circuiti integrati ha un costo di setup di 10 6~7 $; i PLD hanno un costo di pochi $; Il dispositivo può essere configurato per prototipazione; La funzione logica implementata può cambiare se le specifiche mutano (così come avviene nel software).
3 ROM come PLD Le ROM sono memorie universali che possono implementare funzioni multiuscita mappando direttamente tabelle di verità. E.g. ROM con m input (linee indirizzo) ed n output (linee dato). La memoria contiene m parole, ciascuna di n bit. Teoricamente sono disponibili 2 2m possibili funzioni booleane. La struttura della ROM permette però di definirne massimo n. Non è richiesta minimizzazione: la ROM contiene l intera tabella di verità! Gli ingressi delle funzioni booleane sono gli indirizzi e le uscite vengono memorizzate in ogni riga. Sono dispositivi lenti poiché per ogni configurazione degli ingressi bisogna ripetere il ciclo di accesso.
4 PLA Texas Instrument, MMI, Motorola, IBM ed altre industrie di semiconduttori negli anni cercavano un buon sostituto delle lente memorie ROM. Fu così che furono inventati i primi veri PLB. PLA è l acronimo di Programmabile Logic Array. È un dispositivo pensato per creare funzioni combinatorie come SOP: sono disponibili due piani di porte logiche programmabili. Il primo è un piano di porte AND, il secondo è fatto di porte OR.
5 PLA PLA ad n ingressi ed m uscite. Ciascuna porta AND ha p/n linee di ingresso e produce p uscite. Le porte OR dispongono di m/p ingressi.
6 PAL e GAL PAL (Programmable Array Logic) è la versione ridotta di PLA, poiché strutturalmente uguale ma senza possibilità di programmare il piano OR. Sono più semplici ed economici. GAL (Generic Array Logic): primi dispositivi a permetterne la riprogrammazione (PAL riprogrammabili più volte). La programmazione del dispositivo infatti è mediata da elementi di memoria (e.g. FAMOS, celle SRAM, etc.)
7 Evoluzione dei PLD: CPLD PLA, PAL e GAL integrano poche porte e la loro architettura è poco scalabile. Il limite massimo è fissato a poche centinaia di porte logiche comparandoli con dispositivi ASIC. La programmazione di questi dispositivi è oltretutto complicata: sono richieste macchine apposite che programmino il circuito con opportune sovratensioni. CPLD: complex PLD. Interconnette, in un solo chip, più dispositivi GAL. La matrice di interconnessione (switch matrix) è essa stessa programmabile. I CPLD di possono definire dispositivi sea of gate poiché realizzano, in modo massivo, solo somme di prodotti
8 CPLD Struttura di un CPLD a 4 blocchi.
9 Field Programmable Gate Array FPGA: sono dispositivi rivoluzionari, diffusisi in una manciata di anni. Assieme ai CPLD sono i PLD che dominano il mercato. È l acronimo di Field- Programmable Gate Array, a significare che il dispositivo è programmabile solo dall utente (e non più in fonderia). I dispositivi contengono sia logica programmabile, sia circuiti hardware speciali. La parte programmabile è composta da moltissime celle, contenenti 4 funzioni: LUT (look-up table); Multiplexer; Logica di propagazione del riporto (FA); Flip Flop D.
10 Field Programmable Gate Array Cella base generica all interno di dispositivi FPGA
11 Field Programmable Gate Array La parte di hardware speciale contiene circuiti integrati di largo impiego, come gestori del clock, circuiti aritmetici, memorie veloci, etc. L FPGA compone una funzionalità a partire da celle di base semplici grazie a meccanismi di interconnessione tra le celle.
12 Programmazione dei PLD evoluti Gli FPGA, e recentemente anche i CPLD, sono largamente impiegati grazie alla facilità con cui è possibile programmarli. Tipicamente è un PC, che tramite un opportuno protocollo, configura i dispositivi programmabili. Il protocollo di comunicazione è JTAG: veloce, versatile e presente in tutti i circuiti digitali. La tecnologia JTAG viene sfruttata per configurare gli elementi di memoria all interno del PLD onde ottenere il comportamento desiderato. JTAG però non nasce per tali scopi, ma per il testing di circuiti integrati digitali. In sostanza è un protocollo seriale che permette di gestire, tramite un apposita architettura, la boundary scan chain
13 Test dei circuiti digitali integrati Un problema di rilievo nelle architetture di sistemi integrati è certamente la verifica. L approccio applicato a sistemi discreti (e.g. classi software) permette, prima del test di integrazione e di sistema, il test d unità. I sistemi hardware sono moduli che risiedono su un solo chip, e non sono isolabili a piacimento. Il problema del testing deve essere affrontato a monte: DFT (design for testability). Tali tecniche sacrificano la risorsa dell area per inglobare on-chip strutture per il testing. La metodologia più diffusa è quella della scan chain, ovvero catene di elementi logici programmabili interconnettesse in daisy-chain. È possibile sfruttare tutti gli elementi di memoria per stimolare i blocchi con gli ingressi voluti e controllarne anche il risultato
14 Boundary Scan La diffusione di questa tecnica è dovuta ai vantaggi che offre rispetto alle altre tecniche adoperabili: Richiede pochi pin di interfacciamento; È una tecnica generale, che può essere applicata a qualsiasi design; È compatibile con le tecnologie produttive; Ha una gestione abbastanza semplice; Permette di raggiungere ogni componente di memoria on-chip; Sostanzialmente è una lunga catena di flip-flop del design, intervallata da multiplexer. Il ruolo del mux è quello di lasciare il design intatto quando il sistema è in regime di funzionamento, oppure di realizzare una grande catena di flip-flop interconnessi a formare un grande shift-register se il sistema è in fase di test. La scan chain ha un solo punto di ingresso, un punto di uscita, uno di abilitazione ed un segnale per la tempificazione esterna. Se più chip in un sistema sono dotati dello stesso meccanismo è possibile collegare tutti loro in una scan chain unica ancora più grande.
15 Boundary Scan Scan-en è il segnale di modo: se è uno seleziona il segnale di servizio come dato, altrimenti quello originale. Sinteticamente lo si può indicare in questa forma
16 Boundary Scan La boundary scan chain si ottiene collegando l uscita di ciascun flip-flop con l ingresso scan-in del successivo. Così si ottiene una lunga catena di registri connessi come in uno shift register.
17 Boundary Scan: scan-en abilitato Se il segnale Scan-en è abilitato, allora tutti i multiplexer selezioneranno come dato quello in uscita dal flip-flop precedente. In questo modo ad ogni colpo di clock i bit avanzano a partire dal segnale Scan-in fino a quello di Scan-out in modo sequenziale.
18 Boundary Scan: scan-en disabilitato Se il segnale Scan-en è disabilitato, allora tutti i multiplexer selezioneranno come dato quello utente. In questo modo il sistema non risente della presenza della scan-chain, se non per un ritardo ulteriore pari al tempo di propagazione del componente multiplexer.
19 Boundary Scan: esempio Contatore mod16: il circuito è composto da 4 registri di memoria per mantenere il conteggio. Un caso di test prevede di effettuare un conteggio a partire da i e verificare che sia i+1: preparare il flusso di bit da configurare con lo stato corretto abilitare scan-en fornire in ingresso allo scan-in il vettore di stato fornendo impulsi di scan, per un totale di 4 impulsi disabilitare scan-en fornire un colpo di clock per far evolvere il contatore (fornire un conteggio) riabilitare scan-en leggere dal pin scan-out il vettore di stato (4 colpi di clock). Se è disponibile un altro test si può fornire un nuovo flusso di bit mentre si scarica quello precedente
20 FPGA della famiglia SPARTAN-3e Il circuito contiene i seguenti elementi programmabili: Configurable logic blocks (CLB): costituiscono la principale risorsa logica per l implementazione di circuiti sincroni sequenziali e puramente combinatoriali. Ciascun CLB contiene 4 slice e può emulare qualsivoglia circuito integrato sincrono. Tutti i CLB sono identici! Slices: è una struttura contenete 2 LUT (Look-up table); le LUT possono essere usate per realizzare memorie RAM e shift-register. All interno della slice sono altresì presenti multiplexer e un addizionatore; Input/Output Blocks: sono componenti analogiche che controllano il flusso dei dati tra i pin di I/O e i componenti logici all interno dell FPGA. Ciascun blocco supporta flussi di dati bidirezionali con comportamento tri-state. Supportano una vasta gamma di segnali standard e sono equipaggiati da registri veloci;
21 FPGA della famiglia SPARTAN-3e Digital Clock Manager: forniscono non solo un meccanismo di calibrazione del clock (deskew), ma anche una soluzione puramente digitale per gestire la moltiplicazione, divisione, shifting in fase e distribuzione del clock. Sono costituiti da un anello ad aggancio di ritardo (DLL) e da logica programmabile (range: ~300MHz/5MHz); Block RAM: forniscono spazio di memoria volatile utile per molti design hardware. Ciascuna memoria può essere configurata in dual port, per un totale di spazio disponibile pari a 18 Kb; Multiplier Blocks: sono componenti aritmetici molto veloci che effettuano l operazione di moltiplicazione. Ciascun moltiplicatore dispone di due operandi in ingresso da 18 bit ciascuno.
22 Distribuzione del clock
23 Distrubuzione delle risorse su silicio
24 Slice È l unità base programmabile per la famiglia di FPGA Xilinx. Tutte le slice sono raggruppate in coppie e ciascuna coppia è organizzata in colonne con una catena indipendente di carry. La coppia posta a sinistra supporta sia funzioni logiche che funzioni di memoria (SLICEM). La coppia posizionata a destra invece è capace solo di fornire funzioni combinatorie (SLICEL). La doppia disposizione consente di risparmiare moltissima area su silicio, e quindi del costo finale del dispositivo. In effetti è stato verificato che se entrambe le coppie di slice fossero dotate di elementi di memoria, le prestazioni dell FPGA risulterebbero degradate molto in termini di ritardo e potenza dissipata; oltretutto molta della memoria sarebbe stata sprecata. L FPGA così costruito sa emulare male una memoria.
25 Slice Una slice (indipendentemente dal tipo) include: 2 generatori di funzione a 4 input (LUT) 2 elementi di memoria 2 multiplexer Logica aritmetica del riporto (FA): XOR e AND La SLICEM supporta in più due funzioni: 2 blocchi di RAM 16x1 2 shift register da 16 bit La combinazione di una LUT e di un elemento di Memoria (Flip Flop D) è detto logic cell. L aggiunta del multiplexer e del riporto rende la cella logica molto più versatile di qualsiasi dispositivo programmabile. Infatti ciascuna slice è equivalente a 2,25 celle logiche.
26 SliceM e slicel
27 Configurable Logic Block Per migliorare l assegnazione di elementi logici programmabili ad una particolare funzione e per ottimizzare l interconnessione tra gli elementi riconfgurabili, gli FPGA Xilinx Spartan3 e 3E raggruppano 2 coppie di slice in una struttura chiamata configurable logic block. Sul silicio questa struttura è clonata in una struttura a matrice da 60 righe e 46 colonne (nella versione XC3S1200E), per un totale di celle logiche equivalenti. I CLB posti in verticale condividono due path per la propagazione del riporto: questi non hanno bisogno di particolari meccanismi di interconnessione poiché in modo nativo attraversano l architettura
28 Configurable Logic Block
29 Interconnessione Ciascuna slice offre 5 diversi path per l uscita D della LUT: 1. Uscire direttamente dalla slice; 2. Entrare nell elemento di memoria; 3. Controllare il multiplexer per il riporto; 4. Entrare nella porta XOR del FA; 5. Controllare il multiplexer per implementare una funzione di 4 bit. In aggiunta nel CLB sono possibili altri 7 path: 1. Bypassare entrambe le LUT delle slice ed uscire dal CLB; 2. Bypassare la prima LUT e entrare nell elemento di memoria; 3. Controllare il mux per la funzione di 4 bit; 4. Entrare nel mux per fungere da carry; 5. Controllare l ingresso DI della LUT 6. Controllare gli ingressi dell elemento di memoria 7. Controllare gli altri pin della slice
30 Interconnessione Tutti questi path sono insufficienti per collegare tra loro tutti i CLB. È per questo che all interno dell FPGA troviamo dei blocchi, detti Switch Matrix, che connettono differenti CLB (ma anche moltiplicatori, BRAM, DCM e IOB) in tutto il dispositivo integrato. In particolare ogni macrodispositivo all interno dell FPGA è accompagnato da uno Switch Matrix.
31 Interconnessione Quando un design viene sintetizzato, oltre che alla logica di ciascun CLB, anche la logica degli switch matrix deve essere configurata. Virtualmente ciascuno switch matrix può essere considerato, all interno della matrice di CLB, come un canale virtuale verso altri CLB: nella fase di routing (ultima del processo di sintesi) questo canale virtuale viene specializzato su un particolare switch matrix. La possibilità di interconnettere anche CLB lontani è data dalla particolare distribuzione delle linee di interconnessione. L architettura è di tipo gerarchico: per muoversi tra CLB vicini si usano particolari linee di interconnessione, per CLB lontani si usano risorse differenti.
32 Configurazione del dispositivo Su tutti gli IC è presente il protocollo JTAG per verificare che il processo di fonderia non abbia immesso difetti sui die. Poiché a configurare i PLD evoluti sono elementi di memoria e JTAG sfrutta la boundary scan chain di questi dispositivi per fare test, è possibile usare JTAG per effettuarne la configurazione di questi dispositivi. Poiché la configurazione avviene bit per bit, il file di configurazione viene detto bitstream: tale file ha come dimensione il totale degli elementi di memoria sul PLD. Per il chip XC3S1200E occorrono di bit (~10 bit per ogni macro componente).
33 Configurazione del dispositivo L FPGA è un circuito con memoria volatile: all accensione dunque bisogna sempre configurarlo. Tipicamente si utilizzano delle memorie ROM che conservano la configurazione dell FPGA. Le board Xilinx dispongono di una memoria flash, detta platform flash, che l utente può programmare. Poiché JTAG permette la composizione di catene di test, la platform-flash e l FPGA si programmano con lo stesso protocollo e con il medesimo metodo. Per programmare l FPGA bisogna effettuare il bypass della flash, per programmare la flash il bypassa della ROM. Se si programma l FPGA, la configurazione è cancellata quando si disalimenta il dispositivo; se si programma la flash ad ogni accensione l FPGA si programma in modo automatico con design memorizzato.
34 Configurazione del dispositivo: JTAG chain
Tecniche di Progettazione Digitale Logiche programmabili; standard cells; generazione automatica del layout: algoritmi di partitioning p.
Tecniche di Progettazione Digitale Logiche programmabili; standard cells; generazione automatica del layout: algoritmi di partitioning Valentino Liberali Dipartimento di Tecnologie dell Informazione Università
METODOLOGIE PROGETTUALI CMOS
METODOLOGIE PROGETTUALI CMOS Un sistema elettronico/circuito integrato può essere descritto in tre diversi domini, comportamentale (behavior), strutturale e fisico. All interno di ciascun dominio la descrizione
Dispositivi logici programmabili (PLD)
58 G2 H2 Dispositivi logici programmabili (PLD) Un dispositivo logico programmabile costituisce una grande piattaforma sulla quale è possibile cablare circuiti che richiederebbero una gran quantità di
Dispositivi Logici Programmabili
Dispositivi Logici Programmabili Introduzione ROM (Read Only Memory) PLA (Programmable Logic Array) PAL (Programmable Array Logic) PLA e PAL avanzate Logiche programmabili Sono dispositivi hardware che
Sistemi logici complessi
Sistemi logici complessi circuiti logici standard prevedono, per la realizzazione di un sistema complesso, i seguenti passi: definizione delle specifiche descrizione del sistema mediante interconnessione
Generazione di Impulsi Digitali. Antonio Affinito
Generazione di Impulsi Digitali Antonio Affinito Dove troviamo i segnali digitali? Alcuni esempi: Centralina Auto Monitor LCD Computer Cellulare etc Dove troviamo i segnali digitali? Il generico moderno
Moduli combinatori Barbara Masucci
Architettura degli Elaboratori Moduli combinatori Barbara Masucci Punto della situazione Ø Abbiamo studiato le reti logiche e la loro minimizzazione Ø Obiettivo di oggi: studio dei moduli combinatori di
GLOSSARIO. ABEL Advanced Boolean Expression Language. Linguaggio di progettazione per logiche programmabili.
GLOSSARIO A ABEL Advanced Boolean Expression Language. Linguaggio di progettazione per logiche programmabili. AHDL Altera Hardware Description Language. Linguaggio di descrizione dell hardware sviluppato
Cos è il VHDL. Il VHDL è un linguaggio standard per la descrizione dell hardware
Cos è il VHDL Il VHDL è un linguaggio standard per la descrizione dell hardware E stato introdotto negli anni 80 nell ambito di un progetto del dipartimento della difesa statunitense denominato VHSIC (Very
Reti logiche (2) Circuiti sequenziali
Reti logiche (2) Circuiti sequenziali 1 Un ripasso Algebra booleana: operatori, postulati, identità, operatori funzionalmente completi Circuiti combinatori: tabelle di verità, porte logiche Decodificatore
Design for Testability (DFT): Scan
Design for Testability (DFT): Full-Scan Definizioni Metodi ad-hoc Scan design Regole di progetto Registri Flip-flops Scan test sequences Overhead Sistemi di progetto basati sulla scansione Sommario 1 Definizioni
Marco Cesati Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata
Lezione E2 Sistemi embedded e real-time 4 ottobre 2012 Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata SERT 13 E2.1 Di cosa parliamo in questa lezione?
Esercitazione di laboratorio n. 2
Esercitazione di laboratorio n. 2 Argomento dell esercitazione Progetto di circuiti combinatori. L esercitazione è composta di tre esercizi: progetto di un Full Adder da 1 bit (esercizio 1), e suo riutilizzo
senza stato una ed una sola
Reti Combinatorie Un calcolatore è costituito da circuiti digitali (hardware) che provvedono a realizzare fisicamente il calcolo. Tali circuiti digitali possono essere classificati in due classi dette
Porte logiche. Porte logiche. Corso di Architettura degli Elaboratori. Algebra Booleana
Corso di Architettura degli Elaboratori Il livello logico digitale: Algebra Booleana e Circuiti logici digitali di base Matteo Baldoni Dipartimento di Informatica Università degli Studi di Torino C.so
Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni
Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria
Alimentatore master. Introduzione
Alimentatore master Introduzione L alimentatore master è un controllore programmabile che permette all utente di sviluppare sequenze per i convertitori REEL dei tunnel, gestire I/O digitali e analogici
Reti logiche A All. Informatici (M-Z)
Reti logiche A All. Informatici (M-Z) Fabrizio Ferrandi a.a. 2003-2004 Contenuti - Progetto logico di sistemi digitali Metodologie di progetto per la realizzazione dei dispositivi di elaborazione costruire
Reti logiche A All. Informatici (M-Z) Fabrizio Ferrandi a.a
Reti logiche A All. Informatici (M-Z) Fabrizio Ferrandi a.a. 2003-2004 Contenuti - Progetto logico di sistemi digitali Metodologie di progetto per la realizzazione dei dispositivi di elaborazione costruire
Componenti principali
Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria
Cenni alle reti logiche. Luigi Palopoli
Cenni alle reti logiche Luigi Palopoli Reti con reazione e memoria Le funzioni logiche e le relative reti di implementazione visto fino ad ora sono note come reti combinatorie Le reti combinatorie non
Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici
Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici Per ogni lezione, sintetizzare i circuiti combinatori o sequenziali che soddisfino le specifiche date e quindi implementarli e
La storia dei dispositivi programmabili
Appendice A La storia dei dispositivi programmabili I componenti FPGA ( Field Programmable Gate Array) utilizzati nel presente lavoro di tesi, sono dispositivi logici programmabili la cui diffusione ha
Componenti e connessioni. Capitolo 3
Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura
Lezione 22 La Memoria Interna (1)
Lezione 22 La Memoria Interna (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Dove siamo e dove stiamo andando La gerarchia
CORSO DI ELETTRONICA DEI SISTEMI DIGITALI
CORSO DI ELETTRONICA DEI SISTEMI DIGITALI Capitolo 1 Porte logiche in tecnologia CMOS 1.0 Introduzione 1 1.1 Caratteristiche elettriche statiche di un transistore MOS 2 1.1.1 Simboli circuitali per un
PSPICE simulazione di circuiti digitali Flip Flop M/S, Moltiplicatore parallelo, Memoria SRAM, sommatore, comparatore
PSPICE simulazione di circuiti digitali Flip Flop M/S, Moltiplicatore parallelo, Memoria SRAM, sommatore, comparatore Laboratorio di Architettura degli Elaboratori - A.A. 24/25 Il flip flop di tipo Master/Slave
Elettronica dei Sistemi Digitali Dispositivi logici programmabili
Elettronica dei Sistemi Digitali Dispositivi logici programmabili Valentino Liberali Dipartimento di Tecnologie dell Informazione Università di Milano, 6013 Crema e-mail: [email protected] http://www.dti.unimi.it/
Livello logico digitale
Livello logico digitale circuiti combinatori di base e circuiti sequenziali Half Adder - Semisommatore Ingresso 2 bit, uscita 2 bit A+ B= ------ C S C=AB S=AB + AB=A B A B In Out HA A B C S S HA A C S
Lezione 7 Sommatori e Moltiplicatori
Architettura degli Elaboratori e delle Reti Lezione 7 Sommatori e Moltiplicatori Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 7 /36 Sommario
Circuiti sequenziali
Circuiti sequenziali - I circuiti sequenziali sono caratterizzati dal fatto che, in un dato istante tn+1 le uscite dipendono dai livelli logici di ingresso nell'istante tn+1 ma anche dagli stati assunti
Registri. Registri semplici
Registri Registri semplici........................................ 795 Registri a scorrimento................................... 797 Contatori asincroni con flip-flop T........................798 Contatori
Dispositivi per il controllo
Dispositivi per il controllo ordini di comando PARTE DI COMANDO PARTE DI POTENZA Controllori monolitici Controllori con architettura a bus Controllori basati su PC informazioni di ritorno PLC (Programmable
