FPGA Matlab: soluzioni basate su modelli

Verifica FPGA in ambiente MATLAB

Lo strumento System-in-the-loop di Intel ti permette di eseguire la tua progettazione FPGA in tempo reale da un ambiente MATLAB. La capacità di operare in tempo reale può essere fondamentale per algoritmi con velocità di elaborazione elevate. Le tradizionali simulazioni MATLAB per algoritmi di questo tipo possono incorrere in lunghi ritardi computazionali. Lo strumento System-in-the-loop compreso negli strumenti DSP Builder for Intel® FPGAs ti permette di accelerare complessi DSP ad alta frequenza fissi o a virgola mobile nell'hardware FPGA. Lo strumento ti consente inoltre di controllare, eseguire il debug, visualizzare e verificare i tuoi progetti FPGA - il tutto all'interno dell'ambiente MATLAB.

Un'application programming interface (API), utilizzata dal software di MATLAB in esecuzione sul tuo computer per comunicare con la scheda FPGA, permette ai dati di venire elaborati in tempo reale dall'hardware FPGA piuttosto che dal software di MATLAB. I parametri e i dati degli stimoli vengono passati dallo spazio di lavoro MATLAB al FPGA, e i risultati dell'hardware FPGA vengono letti dal software MATLAB per un'ulteriore analisi e venire visualizzati.

La figura 1 mostra un esempio di visualizzazione MATLAB nell'elaborazione di radar e beamforming.

Figura 1. Visualizzazione MATLAB in elaborazione di radar e beamforming

Verifica FPGA all'interno di MATLAB utilizzando gli strumenti di debug a livello di sistema di Intel.

System-in-the-loop fa parte del portafoglio di strumenti di debug a livello di sistema di Intel, il quale include Transceiver Tooklit, External Memory Interface Toolkit, nonché strumenti più generici, come il System Console e il Platform Designer (in precedenza Qsys). Il Platform Designer (in precedenza Qsys) utilizza le interfacce Avalon® memory mapped (Avalon-MM) o Avalno Streaming (Avalon-ST) per costruire delle reti in una varietà di tolopogie e gerarchie.

System Console è uno strumento che può essere utilizzato per monitorare e sviluppare un progetto FPGA. Può essere utilizzato per controllare le operazioni di clocking o resettare le reti. Inoltre, può eseguire compiti più complessi, come ad esempio guidare dei modelli di accesso a mappatura di memoria e controllare le risposte. È utile sia per l'avvio della scheda che per l'automazione dei test di produzione. Puoi creare delle dashboard interattive per un'attività specifica, come mostrato nella figura 2.

Figura 2. Dashboard di Sytem Console

System Console può inoltre eseguire il debug di hardware a livello basso per qualsiasi Platform Designer (in precedenza Qsys). L'API di MATLAB permette di accedere alle chiamate di funzione utilizzando System Console, che a sua volta fornisce l'accesso all'hardware FPGA. Cinque semplici comandi MATLAB vengono utilizzati per aggiornare, aprire, leggere, scrivere e chiudere un canale di comunicazione tra il progetto MATLAB e l'hardware FPGA.

L'interfaccia hardware può essere connessa all'FPGA tramite una versione precedente dell'interfaccia JTAG o un'interfaccia USB 2.0, come mostrato nella figura 3. Il master di debug USB offre velocità fino a 480 Mbps, consentendo frequenze elevate di elaborazione accelerata nell'hardware FPGA. La figura 4 mostra che puoi facilmente collegare i segnali JTAG o USB al dispositivo sotto collaudo (DUT) utilizzando il Platform Designer (in piattaforma Qsys).

Figura 3. Stack di protocollo da MTLAB a hardware FPGA

Figura 4. Accesso al master di debug JTAG e USB

Nella figura 5, il DSP Builder for Intel FPGA (Advanced Blockset) viene utilizzato per creare il progetto FPGA. Questo strumento crea codici register transfer level (RTL) di alta qualità a virgola fissa e mobile con fMAX e utilizzo delle risorse paragonabili con il linguaggio hardware descrittivo (HDL) codificato manualmente e altamente ottimizzato. Puoi anche progettare in Verilog o VHDL tradizionali, e poi aggiungere le porte di interfaccia Avalon® alle interfacce per connettere il tuo progetto attraverso il Platform Designer (in precedenza Qsys).

Figura 5. Connessione del progetto FPGA al master di debug JTAG o USB

Tutte le risorse FPGA possono essere connesse utilizzando il Platform Designer (in precedenza Qsys), e il progetto FPGA viene aggiunto come un componente del Platform Designer (in precedenza Qsys). Vedi la figua 6.

Figura 6. Diagramma della piattaforma di registrazione

Sia i dati in entrata che in uscita vengono sottoposti a buffering sul chip, permettendo all'hardware FPGA di funzionare alla velocità massima di sistema sui dati buffered. Le interfacce mostrate nella figura 7 sono le interfacce Avalon-ST.

Figura 7. DUT FPGA di altissimo livello

Il sistema di buffer in entrata è mostrato nella figura 8. Il registro utilizza i trigger per scrivere gli indirizzi mentre i dati vengono caricati utilizzando il comando di scrittura di MATLAB. Il sistema buffer in uscita è simile al sistema buffer in entrata.

Figura 8. Buffer dati input nel System-in-the-Loop

Dopodiché, la piattaforma di progettazione viene aggiunta al progetto software Intel® Quartus® Prime e il progetto viene compilato, come mostrato nella figura 9.

Figura 9. Aggiungere il Platform Designer al progetto software Quartus Prime

Infine, il FPGA viene programmato con il progetto compilato. Ora puoi controllare l'intero sistema tramite i comandi MATLAB, come mostrato nella figura 10:

Figura 10. Controllare il sistema FPGA tramite MATLAB

Per facilitare ulteriormente la verifica dei progetti FPGA, dei template pronti all'uso di progetti System-in-the-Loop sono disponibili per diversi marchi di sviluppo di FPGA Intel, come quelli con FPGA Stratix® IV, Stratix® V e Cyclone® V.