Linux incorporato su FPGA


10

Ho un'esperienza molto limitata con gli FPGA (Altera - ha usato solo gli strumenti di progettazione visiva).

Sto pianificando un nuovo progetto in cui ho bisogno di FPGA e potrei beneficiare molto di un vero Linux in esecuzione sulla stessa scheda (principalmente per le comunicazioni TCP e alcuni DSP).

La mia domanda è: esiste un FPGA raccomandato che ha un Linux integrato supportato preparato per questo? nessun driver di fantasia (solo Ethernet, wifi potrebbe essere un vantaggio, ...). Immagino che ci sarebbe un micro controller integrato nell'FPGA (ciò significa che consumerebbe molta parte dell'FPGA e che avrei bisogno di un FPGA più grande).

Risposte:


15

Un core del processore RISC da 32 bit per libri di testo in grado di eseguire la versione no-mmu di linux non ha bisogno di essere così grande - la vera risorsa di cui hai bisogno è molta più RAM (10s di megabyte) di quella disponibile in qualsiasi FPGA, quindi probabilmente vorrà SDRAM sulla scheda e un controller per quello nell'FPGA.

Detto questo, se vuoi qualcosa di più di un banale livello di prestazioni, probabilmente vuoi un core con alcune ottimizzazioni (pipeline, ecc.), E questo inizia ad aumentare leggermente le dimensioni. L'aggiunta di un mmu completo renderà la (ri) allocazione della memoria più efficiente e consentirà il solito comportamento fork () di copia su scrittura.

Entrambi i principali fornitori di FPGA hanno core di processori software con porte Linux disponibili: Microblaze per Xilinx, Nios II per Altera. Probabilmente dovresti leggere i loro documenti per consigli specifici sulla piattaforma in quanto è ovviamente un obiettivo che si muove nel tempo. Un design di base di terze parti potrebbe essere leggermente più grande per prestazioni simili, se è scritto in un modo più portatile e non ottimizzato in modo specifico per una determinata famiglia FPGA.

Storicamente ci sono stati chip disponibili che combinano sia un core del processore (spesso powerpc) con una regione di tessuto FPGA configurabile. Un'altra opzione da considerare sarebbe un processore separato (probabilmente ARM) sulla stessa scheda di un FPGA.

Gran parte della decisione dipenderà dalla stretta necessità di accoppiare il processore e l'FPGA. Se è possibile ridurre il problema ai registri di configurazione e a un flusso di dati, potrebbe essere modulare come appendere una scheda FPGA con un chip USB veloce fuori dalla porta host USB di una scheda Linux integrata come BeagleBoard o RasberryPi. Per una maggiore integrazione, è possibile che si desideri FPGA sulla stessa scheda e che si trovi sul bus esterno del processore. O per basse velocità di trasmissione dei dati, è banale inserire un'interfaccia di registro SPI in un FPGA e le interfacce UART sono completamente realizzabili anche se un po 'più complicate.

Infine, c'è la domanda se in realtà hai bisogno di un sistema operativo completo come Linux, o se uno stack TCP incorporato più "micro-controller" risolverebbe il tuo problema richiedendo meno memoria.


6

Il Microblaze di Xilinx funziona bene su Linux, supponendo che sia abbastanza veloce per i tuoi scopi - farà solo alcuni 10 MIPS elevati in dispositivi più economici, 100-200 MIPS nelle famiglie costose.

Xilinx ha un repository git o ci sono alcune distribuzioni specifiche di Xilinx. La flessibilità dell'FPGA può essere un po 'una seccatura, ma anche un vantaggio, poiché la mappa della memoria e i mapping IRQ, o anche quali sono le periferiche disponibili possono cambiare durante lo sviluppo del progetto.

Petalinux ha degli script per gestire questo genere di cose e aggiornare i bit della configurazione del kernel che contano in base al tuo ultimo e più grande progetto di sistema.


4

La linea Virtex di Xilinx ha versioni FPGA con PowerPC core. È abbastanza facile far funzionare Linux su PowerPC, i miei studenti l'hanno fatto per molti progetti di design senior. Hanno ancora un sacco di tessuto configurabile per il tuo design hardware da riempire.

La scheda di valutazione Virtex2 Pro era molto comune nei progetti di ricerca educativa e accademica. Poiché Xilinx ha abbandonato il supporto per questo chip versione nei suoi strumenti recenti, puoi prenderne uno abbastanza economico. Credo che sia stato supportato fino alla versione 9.x o giù di lì. Hmm. Sono passati diversi anni, quindi forse sono un po 'nostalgico. Ad ogni modo, sto ancora trasmettendo queste schede agli studenti interessati per far loro fare tutto ciò che vogliono con loro.


1
Se non sbaglio molto, si chiamano Virtex xilinx.com/onlinestore/v2pro_boards.htm
Ali

1
@Ali - Non credo che ti sbagli, e hai un riferimento abbastanza affidabile per la tua affermazione. Non esitate a proporre una modifica in situazioni come questa!
Kevin Vermeer,

3

La SmartFusion di Actel integra un FPGA con un core ARM Cortex-M3 hard-IP e un avanzato motore analogico in un singolo dispositivo chip.

uClinux funziona abbastanza bene sul core Cortex-M3 di SmartFusion. Controlla questo sito per ulteriori dettagli.


2

A seconda del periodo di tempo, potresti anche esaminare la nuova linea Zynq-7000 di Xilinx, che combina un processore ARM con un Artix-7 o Kintex-7. Xilinx afferma che spediranno le quantità di produzione nella seconda metà del 2012.

Altri fornitori potrebbero avere prodotti simili. Non so se o quando Xilinx porterà il supporto Zynq al WebPack ISE gratuito; in questo momento, sostengono che è necessario ISE Embedded Edition.


Perché hai creato questa risposta wiki della community? Questo probabilmente non era necessario.
Kevin Vermeer,
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.