banner

Notizia

Jun 09, 2023

Le avventure FPG di Hackster: costruire la logica utilizzando il SoC Libero sul kit Icicle SoC Microchip PolarFire

Finora nelle nostre FPGAdventures abbiamo giocato praticamente con tutto tranne l'FPGA stesso, osservando come la parte di elaborazione generica del SoC PolarFire nel cuore del kit Icicle di Microchip possa essere utilizzata per eseguire tutto da un sistema completamente funzionale Distribuzione Linux in codice bare metal, anche entrambi allo stesso tempo, grazie alle intelligenti funzionalità di multiprocessing asimmetrico (AMP) della piattaforma.

Questa volta ci addentreremo nel vero nocciolo del kit: utilizzando Libero SoC, l'ambiente di sviluppo integrato (IDE) e la toolchain di Microchip per i suoi prodotti FPGA, per creare un circuito logico di base, sintetizzarlo e distribuirlo sulla scheda .

La prima cosa da capire su Libero SoC, una volta superati tutti i passaggi necessari per registrarsi per una licenza gratuita e installare l'arcaico server di convalida della licenza sulla propria workstation, è che i requisiti di sistema di Microchip sono lungi dall'essere una raccomandazione, ma piuttosto un assoluto requisito: quando l'azienda ti dice che avrai bisogno di 16 GB di RAM, devi assicurarti di avere almeno 16 GB di RAM disponibili. È possibile eseguire il software con meno, il che può indurti a pensare che tutto stia andando bene, ma scoprirai che i tuoi progetti falliscono senza errori durante la fase di sintesi. Lo strumento place-and-route esaurisce la RAM del sistema e si scontra con il killer della memoria esaurita, anche per i progetti più semplicistici, uscendo in un modo che fa fallire il processo ma senza un errore corrispondente che indichi il problema.

Una volta che hai a portata di mano una workstation adeguatamente articolata, devi iniziare a imparare i dettagli di quella che è un'interfaccia utente molto impegnativa. La buona notizia per un produttore che si avvicina a tutto questo dal freddo è che Microchip ha una guida passo passo, che ti guida attraverso il processo, dall'avvio del tuo primo progetto alla sintesi del bitstream e al flashing sull'FPGA. È più che altro un tutorial on-rail, ma sufficiente per iniziare e apprendere le basi dell'interfaccia un po' disordinata del SoC Libero. Sfortunatamente, in realtà non è direttamente applicabile al kit Icicle SoC PolarFire; invece, è stato scritto per il precedente PolarFire Splash Kit dell'azienda.

Per la maggior parte del processo, questo non ha importanza. L'avvio di un nuovo progetto è lo stesso per qualsiasi kit di sviluppo Microchip o prodotto FPGA semplice, anche se dovrai capire con quale delle numerose varianti del SoC PolarFire stai lavorando per impostare correttamente l'ambiente. In realtà, è solo quando hai raggiunto la parte nodale del processo e inizi a progettare qualcosa che ti imbatterai in un vero ostacolo, però: i numeri dei pin e le funzioni del SoC PolarFire non corrispondono al precedente PolarFire, e come un Di conseguenza, le istruzioni del tutorial per il PolarFire Splash Kit non possono essere applicate direttamente al PolarFire SoC Icicle Kit.

Non esiste una vera soluzione rapida per questa barra, ovvio: sostituire i numeri pin suggeriti con quelli disponibili - e di uso pratico - sul kit Icicle SoC PolarFire. Per fare ciò è necessario visualizzare gli schemi del SoC PolarFire e approfondire la numerazione dei pin per capire quali input e output potresti applicare al tuo progetto per far sì che faccia effettivamente qualcosa di utile; non esiste una comoda mappatura predefinita in Libero SoC, che ti consentirebbe, ad esempio, di selezionare "LED1" da un elenco a discesa. Questo, quindi, dovrebbe essere il primo passo di ogni progetto e potresti trovare utile creare un piccolo foglietto di spille comuni da avere a portata di mano mentre lavori con il kit Icicle.

Esiste un approccio alternativo, anche se non discusso nei tutorial dell'azienda: il PolarFire SoC Icicle Kit Reference Design, pubblicato da Microchip su GitHub con una licenza open source non specificata. Ciò fornisce uno script che può essere caricato nel SoC Libero per generare gateware con, spiega l'azienda, "funzionalità identiche o estese" di quello già caricato sull'FPGA dalla fabbrica - utile se, dopo aver progredito considerevolmente lungo la curva di apprendimento rispetto a i tutorial ti guideranno, se desideri estendere o migliorare la funzionalità di serie anziché sostituirla completamente.

CONDIVIDERE