Aggiungi ai favoriti set Homepage
Posizione:Casa >> Notizie >> elettrone

Gamma Prodotti

Prodotti Tag

Siti FMUSER

Introduzione a FPGA | Struttura, componenti, applicazioni

Date:2021/10/18 21:55:31 Hits:
In questo articolo vedremo un argomento speciale chiamato Field Programmable Gate Arrays o semplicemente FPGA. Esploreremo il concetto di dispositivi logici programmabili e diversi tipi di dispositivi programmabili da campo (FPD) come PLA, PAL, CPLD, FPGA. Inoltre, vedremo l'architettura di un tipico dispositivo FPGA insieme ai suoi vantaggi. Introduzione Breve nota su PLD (Dispositivo logico programmabile) Diversi tipi di PLD Array logico programmabile (PLA) Logica array programmabile (PAL) Logica array generica (GAL) Complesso Dispositivi logici programmabili (CPLD)Field Programmable Gate Array (FPGA)Cos'è un FPGA?Componenti di un FPGALogic BlockRoutingTecnologie di programmazione FPGASRAMEEPROM / FlashAnti-FuseApplicazioniIntroduzioneI Field Programmable Gate Array (FPGA) sono circuiti integrati digitali (circuiti integrati) che consentono al progettista hardware di programmare una Logica Digitale personalizzata secondo le sue esigenze. Il termine "Field Programmable" implica che la logica digitale dell'IC non è fissata durante la sua fabbricazione (o fabbricazione) ma piuttosto è programmata dall'utente finale (progettista). Per fornire questa programmabilità, un FPGA è costituito da Configurable (o programmabili) Blocchi logici e interconnessioni configurabili tra questi blocchi. Questa logica configurabile e le interconnessioni (instradamento) degli FPGA li rende per uso generale e flessibili ma allo stesso tempo li rende anche lenti e affamati di energia rispetto a un ASIC di calibro simile con celle standard. Sono trascorsi più di tre decenni da quando l'introduzione degli FPGA nel mercato e in questo lungo arco di tempo, hanno subito un severo progresso tecnologico e guadagnato una popolarità in continua crescita. Una breve nota sul PLD (Dispositivo logico programmabile) Prima di approfondire l'argomento principale, voglio concetto di dispositivi logici programmabili. Quindi, cos'è un PLD. È un IC contenente un gran numero di porte logiche e flip-flop che possono essere configurati dall'utente per implementare un'ampia varietà di funzioni. Il più semplice dei dispositivi logici programmabili consiste in una serie di porte AND e OR e la logica di queste le porte e le loro interconnessioni possono essere configurate tramite un processo di programmazione. I PLD sono particolarmente utili quando un ingegnere vuole implementare una logica personalizzata ed è limitato dai circuiti integrati preconfigurati. I PLD forniscono un modo per implementare un circuito digitale personalizzato attraverso la potenza della configurazione hardware piuttosto che implementarlo utilizzando un software. Diversi tipi di PLD Fondamentalmente, i PLD possono essere classificati in tre tipi. Essi sono:Simple Programmable Logic Devices (SPLD)Complex Programmable Logic Devices (CPLD)Field Programmable Gate Array (FPGA)I Simple Programmable Logic Devices sono ulteriormente suddivisi in:Programmable Logic Array (PLA)Programmable Array Logic (PAL)Generic Array Logic ( GAL) Vediamo ora alcuni dettagli di base su tutti questi PLD.Programmable Logic Array (PLA) Un PLA è costituito da un piano di porta AND con interconnessioni programmabili e un piano di porta OR con interconnessioni programmabili. Quello che segue è un semplice PLA a quattro ingressi - quattro uscite con porte AND e OR. Qualsiasi ingresso può essere collegato a qualsiasi porta AND collegando le linee di interconnessione orizzontale e verticale. Le uscite di diverse porte AND possono quindi essere applicate a qualsiasi delle porte OR con interconnessioni programmabili. Logica di array programmabile (PAL) Un PAL è simile al PLA ma la differenza è che in PAL, solo il piano della porta AND è programmabile mentre il Il piano della porta OR è fisso durante la fabbricazione. Anche se i PAL sono meno flessibili dei PLA, eliminano i ritardi temporali associati ai Gates OR programmabili.Generic Array Logic (GAL) Per quanto riguarda l'architettura, un GAL è simile a un PAL ma la differenza sta nella struttura programmabile. I PAL usano PROM, che è programmabile una volta, mentre GAL usa EEPROM, che può essere riprogrammato.  Dispositivi logici programmabili complessi (CPLD) Passando dai dispositivi SPLD, otteniamo CPLD. È sviluppato su dispositivi SPLD per creare progetti più grandi e complessi. Un CPLD è costituito da un numero di blocchi logici (o blocchi funzionali), che internamente è costituito da un Pal o da un PAL insieme a una Macrocella. La macrocella è costituita da qualsiasi circuito aggiuntivo e controllo della polarità del segnale per fornire un segnale reale o il suo complemento.  Field Programmable Gate Array (FPGA) Dal punto di vista della complessità, i CPLD sono molto più complessi degli SPLD. Ma gli FPGA sono ancora più complessi dei CPLD. L'architettura di un FPGA è completamente diversa in quanto consiste di celle logiche programmabili, interconnessioni programmabili e blocchi IO programmabili. Che cos'è un FPGA? Gli array di porte programmabili di campo o FPGA in breve sono dispositivi al silicio prefabbricati che consistono in una matrice di logica riconfigurabile circuiti e interconnessioni programmabili disposte in una matrice bidimensionale. Le celle logiche programmabili possono essere configurate per eseguire qualsiasi funzione digitale e le interconnessioni programmabili (o interruttori) forniscono le connessioni tra diverse celle logiche. Utilizzando un FPGA, è possibile implementare qualsiasi progetto personalizzato specificando la logica o la funzione di ciascun blocco logico e impostando il collegamento di ogni interruttore programmabile. Poiché questo processo di progettazione di un circuito personalizzato viene eseguito sul campo piuttosto che in un fab, il dispositivo è noto come "Field Programmable". L'immagine seguente mostra una tipica struttura interna di un FPGA in un senso molto ampio. Come puoi vedere , il cuore dell'FPGA è costituito da celle logiche configurabili e interconnessioni programmabili. Questi sono circondati da una serie di blocchi IO programmabili, utilizzati per comunicare con il mondo esterno. Componenti di un FPGA Diamo ora un'occhiata più da vicino alla struttura di un FPGA. In genere, un FPGA è costituito da tre componenti di base. Sono: Celle logiche programmabili (o blocchi logici) – responsabili dell'implementazione delle funzioni logiche principali. Routing programmabile – responsabile della connessione dei blocchi logici. Blocchi IO – che sono collegati ai blocchi logici tramite il routing e aiutano a creare connessioni esterne. Blocco logicoIl blocco logico negli FPGA basati su Xilinx è chiamato blocchi logici configurabili o CLB mentre le strutture simili negli FPGA basati su Altera sono chiamate blocchi di array logici o LAB. Usiamo il termine CLB per questa discussione. Un CLB è il componente di base di un FPGA, che fornisce sia la logica che le funzionalità di archiviazione. Il blocco logico di base può essere qualsiasi cosa come un transistor, una porta NAND, multiplexor, Look-up Table (LUT), una struttura simile a PAL o persino un processore. Sia Xilinx che Altera utilizzano blocchi logici basati su Look-up Table (LUT) per implementare la logica e le funzionalità di archiviazione. Un blocco logico può essere costituito da un singolo elemento logico di base o da un insieme di elementi logici di base interconnessi, in cui un L'elemento logico di base è una combinazione di una tabella di ricerca (che a sua volta è composta da SRAM e multiplexor) e un flip-flop. Una LUT con 'n' ingressi è costituita da 2n bit di configurazione, che sono implementati dalle celle SRAM. Utilizzando questi 2n bit SRAM, la LUT può essere configurata per implementare qualsiasi funzione logica. Routing Se la funzionalità computazionale è fornita dai blocchi logici, la rete di routing programmabile è responsabile dell'interconnessione di questi blocchi logici. La rete di instradamento fornisce interconnessioni tra un blocco logico e l'altro, nonché tra il blocco logico e il blocco IO per implementare completamente un circuito personalizzato. Fondamentalmente, la rete di instradamento consiste nel collegamento di cavi con interruttori programmabili, che possono essere configurati utilizzando uno qualsiasi dei tecnologie di programmazione. Esistono fondamentalmente due tipi di architetture di routing. Essi sono:Island Style Routing (noto anche come Mesh Routing)Herarchical Routing Nell'architettura di routing in stile isola, i blocchi logici sono disposti in un array bidimensionale e sono interconnessi mediante una rete di routing programmabile. Questo tipo di routing è ampiamente utilizzato negli FPGA commerciali. Molti blocchi logici sono confinati a un insieme locale di connessioni e l'architettura di routing gerarchica sfrutta questa funzionalità dividendo i blocchi logici in diversi gruppi o cluster. Se i blocchi logici risiedono nello stesso cluster, il routing gerarchico li collega in un livello di gerarchia basso. Se i blocchi logici risiedono in cluster diversi, il cablaggio viene eseguito su un livello di gerarchia più elevato. Tecnologie di programmazione FPGA Abbiamo parlato sull'architettura riprogrammabile degli FPGA un po', ma ora vediamo alcune delle tecniche di programmazione più comunemente utilizzate responsabili di tale architettura riconfigurabile. Di seguito sono riportate tre delle tecnologie di programmazione ben note utilizzate negli FPGA.SRAMEEPROM / FlashAnti-FuseAltro le tecnologie includono EPROM e Fusible Link ma sono utilizzate in CPLD e altri PLD ma non negli FPGA, quindi, manteniamo la discussione limitata alle tecnologie di programmazione relative all'FPGA.SRAMSappiamo che esistono due tipi di RAM a semiconduttore chiamati SRAM e DRAM. SRAM è l'abbreviazione di Static RAM mentre DRAM è l'abbreviazione di Dynamic Ram. SRAM è progettato utilizzando transistor e il termine statico significa che il valore caricato su una cella di memoria SRAM di base rimarrà lo stesso fino a quando non viene deliberatamente modificato o quando l'alimentazione viene rimossa. Una tipica cella SRAM a 6 transistor per memorizzare 1 bit è mostrata nell'immagine seguente .Questo è in contrasto con la DRAM, che consiste in una combinazione di un transistor e di un condensatore. Il termine Dinamica si riferisce al fatto che il valore caricato nella cella di memoria DRAM di base è valido fino a quando non c'è carica nel condensatore. Poiché il condensatore perde la sua carica nel tempo, la cella di memoria deve essere periodicamente ricaricata per mantenere la carica. Questo è anche noto come refresh.Molti fornitori di FPGA implementano celle di memoria statiche in FPGA basati su SRAM per la programmazione. Gli FPGA basati su SRAM sono utilizzati per programmare sia le celle logiche che le interconnessioni e sono diventati piuttosto predominanti grazie alla loro riprogrammabilità e all'uso della tecnologia CMOS, nota per il suo basso consumo energetico dinamico, l'alta velocità e l'integrazione più stretta.EEPROM / FlashUn'alternativa vicina alla tecnologia di programmazione basata su SRAM è basata su tecnologie di programmazione EEPROM o Flash. Il vantaggio principale della programmazione basata su flash è la sua natura non volatile. Anche se il flash supporta la riprogrammabilità, il numero di volte in cui è possibile farlo è molto ridotto rispetto a una tecnologia SRAM. Anti-fusibile La tecnologia di programmazione anti-fusibile è una vecchia tecnica di produzione di dispositivi programmabili una tantum. Sono implementati utilizzando un collegamento chiamato antifusibile, che nel suo stato non programmato ha una resistenza molto elevata e può essere considerato un circuito aperto. Durante la programmazione, all'ingresso viene fornita un'alta tensione e corrente. Di conseguenza l'antifusibile, che inizialmente si presenta sotto forma di silicio amorfo (in pratica un isolante ad altissima resistenza) che collega due piste metalliche, prende vita trasformandosi in polisilicio conduttore. Rispetto alle altre due tecnologie, l'antifusibile uno occupa la minor quantità di spazio ma viene fornito solo come opzione programmabile una tantum.  ApplicazioniNei primi anni dell'introduzione degli FPGA, venivano generalmente utilizzati per implementare macchine a stati complesse di piccole e medie dimensioni e attività di elaborazione dati su dati di piccole dimensioni. Poiché la loro complessità e capacità sono aumentate nel corso degli anni, sono stati incorporati in diverse applicazioni automobilistiche, di consumo e industriali. finalizzare il progetto principale. Ma la loro capacità di funzionare come prodotto finale con un time-to-market relativamente breve e costi di implementazione ridotti, sono stati implementati come concorrenti diretti di alcuni ASIC. I moderni FPGA con moltiplicatori, routing complesso e RAM su chip possono facilitare le operazioni DSP che in precedenza erano possibili su processori di segnali digitali dedicati. Con il calo dei costi degli FPGA, stanno diventando seri contendenti per le applicazioni di controllo integrate. Un FPGA può essere utilizzato per implementare un processore soft-core di qualsiasi microcontrollore insieme a funzionalità IO personalizzate.Articoli correlati:Introduzione alla tecnologia ASIC | Diversi tipi,... che cos'è l'automazione industriale?

Lasciate un messaggio 

Nome *
E-mail *
Telefono
Indirizzo
Code Vedere il codice di verifica? Fare clic su Aggiorna!
Messaggio
 

Elenco dei messaggi

Commenti Caricamento in corso ...
Casa| Chi siamo| Prodotti| Notizie| Scaricare| Assistenza| Feedback| Contatti| Servizi

Contatto: Zoey Zhang Web: www.fmuser.net

Whatsapp / Wechat: +86 183 1924 4009

Skype: tomleequan E-mail: [email protected] 

Facebook: FMUSERBROADCAST Youtube: ZOEY FMUSER

Indirizzo in inglese: Room305, HuiLanGe, No.273 HuangPu Road West, TianHe District., GuangZhou, Cina, 510620 Indirizzo in cinese: 广州市天河区黄埔大道西273号惠兰阁305(3E)