Circuito logico programmabile

Circuito logico programmabile Immagine in Infobox. FPGA Xilinx (modello Spartan XC3S400) con 400.000 porte.
genere Circuito logico integrato
Scoperta
Scopritore Xilinx

Un circuito logico programmabile , o rete logica programmabile , è un circuito integrato logico che può essere riprogrammato dopo la fabbricazione.

È costituito da tante celle logiche elementari e da flip-flop logici collegabili liberamente (è proprio la riconfigurazione, o programmazione, del componente che definisce i collegamenti effettuati tra le porte logiche).

I primi brevetti per tali componenti risalgono agli anni '80 e '90, ma è stato all'inizio degli anni '90 che si sono diffusi .

Denominazione

Si noti che sarebbe improprio parlare di programmazione in senso software (a differenza di un microprocessore, non esegue nessuna riga di codice). Qui sarebbe meglio parlare di “riconfigurazione” piuttosto che di riprogrammazione (modifichiamo le connessioni o il comportamento del componente, colleghiamo tra loro porte logiche, ecc .). Il verbo programmare è comunque il più frequente, ma nel senso di personalizzazione. Si tratta infatti di reti logiche riconfigurabili e modificabili .

Questo tipo di componente elettronico è comunemente indicato con vari acronimi inglesi, tra cui:

Sebbene fondamentalmente sinonimi, questi termini non sono generalmente intercambiabili nel vocabolario commerciale dei produttori: FPGA designa piuttosto componenti con tecnologia RAM , componenti EPLD con tecnologia FLASH, componenti PAL con tecnologia a fusibili (vedere § processi tecnologici ).

Architettura hardware

Le reti logiche programmabili sono circuiti costituiti da numerose celle logiche elementari che possono essere assemblate liberamente.

Questi sono collegati in modo permanente o reversibile mediante programmazione , al fine di ottenere le funzioni digitali desiderate. Il vantaggio è che lo stesso chip può essere utilizzato in molti sistemi elettronici diversi.

Alcuni modelli possono anche includere memorie generiche, blocchi "  DSP  " cablati o loop bloccati di fase per la generazione di clock .

FPGA

La maggior parte dei moderni FPGA di grandi dimensioni si basa su celle SRAM sia per l'instradamento del circuito che per l'interconnessione dei blocchi logici.

Un blocco logico è generalmente formato da una tabella di ricerca ( LUT o tabella di ricerca ) e un flip-flop ( flip-flop in inglese). La LUT viene utilizzata per implementare equazioni logiche generalmente da 4 a 6 ingressi e un'uscita. Può tuttavia essere considerato come una piccola memoria, un multiplexer o un registro a scorrimento . Il registro viene utilizzato per memorizzare uno stato (macchina sequenziale) o per sincronizzare un segnale ( pipeline ).

I blocchi logici, presenti in gran numero sul chip (da poche migliaia a pochi milioni nel 2007) sono collegati tra loro da una matrice di routing configurabile. Ciò consente di riconfigurare il componente a piacere, ma occupa un posto importante sul silicio e giustifica l'alto costo dei componenti FPGA. La topologia è chiamata "Manhattan", in riferimento alle strade perpendicolari a questo quartiere di New York .

Le densità di corrente non consentono più il routing manuale, quindi è uno strumento di posizionamento automatico del routing che corrisponde al diagramma logico desiderato dal progettista e alle risorse hardware del chip. Poiché i tempi di propagazione dipendono dalla lunghezza dei collegamenti tra celle logiche, e che gli algoritmi di ottimizzazione dei locator-router non sono deterministici, le prestazioni (frequenza massima) ottenute in un FPGA variano da progetto a progetto. 'Altro. D'altra parte, l'uso delle risorse è molto buono e sono possibili tassi di occupazione dei blocchi logici superiori al 90%.

Poiché la configurazione (routing e LUT) viene eseguita da punti di memoria volatile, è necessario salvare il progetto dell'FPGA in una memoria non volatile esterna, generalmente una memoria Flash seriale, compatibile “  JTAG  ”. Tuttavia, alcuni produttori si distinguono per l'utilizzo di celle EEPROM per la configurazione, eliminando la necessità di memoria esterna, o per una configurazione antifusibile (la programmazione ad alta tensione fa "schioccare" un dielettrico, creando un contatto). Tuttavia, questa ultima tecnologia non può essere riconfigurata.

Alcune funzionalità specifiche disponibili su alcuni componenti:

CPLD

I vecchi PAL, GAL, CPLD ed EPLD utilizzano "macrocellule" logiche, costituite da un array combinatorio di porte AND e OR per implementare equazioni logiche. I flip - flop sono disponibili solo nei blocchi I / O. Un componente contiene da poche dozzine a poche centinaia di macrocelle.

Poiché il percorso è fisso, i tempi di propagazione sono limitati e consentono un'elevata frequenza operativa indipendentemente dal progetto. D'altra parte, l'utilizzo delle risorse non è ottimale (qualsiasi termine non utilizzato in un'equazione logica equivale a lost gates), con tassi di utilizzo intorno al 25%.

I CPLD si distinguono dagli altri PLD perché contengono l'equivalente di diversi componenti PLD, collegati da una matrice di interconnessione.

Applicazioni

Gli FPGA sono utilizzati in varie applicazioni che richiedono elettronica digitale (telecomunicazioni, aeronautica, trasporti, ecc.). Sono utilizzati anche per la prototipazione ASIC .

Gli FPGA sono generalmente più lenti, più costosi per unità e consumano più energia rispetto al loro equivalente ASIC ( Application Specific Integrated Circuit ). Tuttavia, hanno diversi vantaggi:

A volte è possibile trasformare direttamente un FPGA in una versione ASIC più veloce, più economica e meno consumante (perché gli stampi di instradamento sono sostituiti da uno strato di metallizzazione fisso).

Diversi FPGA moderni hanno la possibilità di essere riconfigurati (si parla di configurazione quando si tratta di programmare l'hardware) parzialmente al volo. Ciò consente di ottenere sistemi riconfigurabili, ad esempio un'unità di elaborazione centrale le cui istruzioni cambiano dinamicamente secondo necessità.

Gli FPGA moderni sono abbastanza grandi e contengono memoria sufficiente per essere configurati per ospitare un core del processore o DSP , al fine di eseguire il software. Parliamo in questo caso di processore softcore , al contrario di microprocessori hardcore sepolti nel silicio. Oggi, i produttori di FPGA integrano persino uno o più core di processore "  hardcore  " su un singolo componente per conservare le risorse logiche configurabili del componente. Ciò non esclude l'utilizzo del processore softcore che presenta molti vantaggi. Si tende quindi a sistemi su chip , come per il microcontrollore di qualche decennio fa, con oltre alla logica configurabile in base all'utente. La memoria degli ultimi FPGA è ancora insufficiente per eseguire un software di bordo piuttosto complesso e devono essere utilizzate memorie esterne (ROM, RAM). Tuttavia, la legge di Moore non è ancora esaurita e queste dovrebbero essere integrate in pochi anni e saranno sufficienti per gran parte delle applicazioni di bordo.

Progettazione del diagramma logico

Per poter finalizzare un FPGA, è necessario utilizzare un linguaggio di descrizione hardware o uno strumento di input grafico. Dopo aver compilato questa descrizione, otteniamo un file di configurazione per l'FPGA scelto. VHDL e Verilog sono i due linguaggi di descrizione più popolari.

Processi tecnologici

I processi tecnologici di base per i componenti programmabili sono i seguenti:

Nel caso delle tecnologie di memoria (SRAM, EEPROM, flash), la memoria si trova accanto al circuito logico vero e proprio e ciascuno dei suoi bit controlla un interruttore ( transistor ) per la configurazione della rete logica. Nel caso delle tecnologie (anti) fusibili, queste sono direttamente nella rete logica e hanno sia la funzione di memoria non volatile che di interruttore.

Gli FPGA di fascia alta sono all'avanguardia della tecnologia: i balzi tecnologici, come la finezza dell'incisione , vengono spesso effettuati su questi componenti prima di passare ai microprocessori . In effetti, la struttura ripetitiva della matrice logica favorisce la regolazione delle macchine per incisione microelettroniche. Pertanto, i primi componenti incisi con una finezza di 90  nm sono stati gli FPGA Spartan3 di Xilinx , nel 2003.

Produttori

Tra i produttori di tali circuiti programmabili sono Abound Logic , Achronix , Anlogic , Atmel , Cypress , Gowin , Intel PSG (ex. Altera ), Lattice Semiconductor , Microsemi (ex. Actel ), Nallatech , QuickLogic , SiliconBlue , Efinix, Tabula Inc. , Tier Logic e Xilinx .

Vedi anche

Note e riferimenti

  1. Scheda tecnica dei dispositivi Xilinx, Spartan-3 FPGA .
  2. (in) Anthony Cataldo , "La  linea di fascia bassa di Xilinx passa al processo a 90 nm  " su eetimes.com  (in) ,14 aprile 2003(accesso 25 settembre 2019 )

Articoli Correlati

link esterno