Gli FPGA possono modificare dinamicamente la loro logica?


15

Sarebbe teoricamente possibile per un FPGA scrivere un'immagine di configurazione su una memoria esterna e caricare l'immagine di configurazione dalla memoria per riconfigurare se stessa. Questa sarebbe una riconfigurazione "non dinamica".

Gli FPGA hanno la possibilità di ricollegare dinamicamente il loro tessuto logico? In effetti, mentre i Flip-flop possono modificare il loro valore, non ho sentito parlare della riconfigurazione dinamica delle tabelle di ricerca e dei cablaggi interni che compongono il tessuto logico.

La logica interna FPGA (diversa dalle memorie) può essere modificata in modo dinamico? In caso contrario, perché no?


"Riconfigurazione dinamica" è davvero la frase che stai cercando :)
Martin Thompson,

Stai cercando FPGA in grado di riconfigurarsi (come possono fare alcuni microcontrollori) o che possono essere riconfigurati (runtime) da un componente esterno?
Trygve Laugstøl,

Risposte:


12

Sì, so che almeno Xilinx ha parti che supportano la riconfigurazione dinamica, e probabilmente lo fanno anche gli altri principali fornitori.

Tuttavia, è una grande impresa farlo, quindi devi davvero assicurarti di averne bisogno. È necessario suddividere fisicamente il chip in due o più aree, almeno una delle quali non è riconfigurabile, e "fissare" fisicamente tutte le interfacce interne tra le aree in modo che gli strumenti di sintesi possano effettuare tutte le giuste connessioni.


1
Cerca nel sito Xilinx "riconfigurabilità"!
Leon Heller,

3

Esistono due approcci generali che è possibile utilizzare. Molti tipi di FPGA mantengono la loro configurazione in chiavistelli che vengono recuperati da un dispositivo esterno (in genere una EEPROM) all'avvio; il dispositivo esterno non è necessario per l'FPGA dopo che è stato letto. Le modifiche alla EEPROM durante il funzionamento del dispositivo non avranno effetto fino a quando non verrà richiesto all'FPGA di ricaricare il suo contenuto. Pertanto, è possibile per un dispositivo che sarebbe completamente inutilizzabile senza un FPGA riprogrammare tale FPGA durante il funzionamento; se qualcosa va storto durante la scrittura EEPROM, tuttavia, il dispositivo potrebbe non essere operativo a meno che o fino a quando non possa essere riscritto da un dispositivo esterno (uno stato a volte indicato come "bricked").

Un approccio alternativo, che è spesso utile con i CPLD le cui celle EEPROM "controllano" direttamente "la loro funzionalità (invece di essere copiati sui latch) è quello di avere un sistema che può operare con funzionalità limitate anche quando il dispositivo programmabile è in uno stato inutile. Se tale funzionalità limitata è sufficiente per riprogrammare il CPLD, il dispositivo potrebbe essere immune al "bricking". Ad esempio, un dispositivo wireless potrebbe utilizzare un CPLD per controllare la sua funzionalità wireless e altre funzionalità. Il normale metodo di riprogrammazione del CPLD potrebbe essere quello di ricevere un'immagine nella RAM tramite il collegamento wireless, quindi utilizzare quell'immagine per riprogrammare il CPLD. Se si programmano file, il collegamento wireless potrebbe essere inutilizzabile fino a quando il CPLD non viene riprogrammato. Per consentire il ripristino del sistema, tuttavia, il processore potrebbe contenere un "valore predefinito"

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.