Simulazione con accuratezza a livello ciclo in LabVIEW FPGA

Panoramica

Con l'aumentare delle dimensioni e della complessità delle applicazioni sviluppate per FPGA, la simulazione ha acquistato sempre maggiore importanza per validare la IP prima di sottoporre il codice alla compilazione, processo lungo in termini di tempo, e per verificare il design dell'applicazione, permettendo un test affidabile su larga scala. Con NI LabVIEW, la logica dell'applicazione può essere simulata sia nella sua funzionalità sia nella temporizzazione. I simulatori con accuratezza a livello ciclo testano i vincoli temporali dell'applicazione fornendo un mezzo per validare il segnale di propagazione della logica del codice. Questi simulatori permettono inoltre di testare l'intera applicazione per FPGA, integrando il codice LabVIEW FPGA con la logica CLIP (Component-Level IP) o lo IP Integration Node. Questo articolo presenta l'integrazione di LabVIEW FPGA con simulatori di terze parti ad accuratezza a livello ciclo.

Contenuti

Co-simulazione con LabVIEW e simulatore di terze parti

La cosimulazione dell'applicazione FPGA è il livello più alto di astrazione che permette di creare ed eseguire la simulazione direttamente da LabVIEW, pur adoperando in background un sofisticato simulatore di terze parti con accuratezza a livello ciclo.

Quando in cosimulazione, LabVIEW fornisce stimoli all' IP da testare, controlla l'esecuzione del simulatore e registra le risposte. Attraverso la cosimulazione in LabVIEW, un VI host sostituisce i banchi di test convenzionali sviluppati in VHDL, e pilota gli ingressi e l'esecuzione attraverso normali funzioni di tipo interfacce host per FPGA. L'astrazione del banco da test tradizionale in VHDL attraverso le proprie competenze di programmazione in LabVIEW aumenta la produttività, e non richiede conoscenze di programmazione VHDL per sviluppare e realizzare simulazioni con accuratezza a livello ciclo nei prori VI LabVIEW FPGA.

Figura 1. La cosimulazione con accuratezza a livello ciclo in LabVIEW FPGA non richiede esperienza di programmazione in VHDL e permette di realizzare banchi di test scritti in LabVIEW.

L'esecuzione di ciascuna delle singole funzioni host FPGA determina quando il simulatore di terze parti esegue il passaggio successivo della simulazione. Per fare un esempio: quando viene eseguito il property node write nel VI host di LabVIEW, comunica lo stimolo appropriato al simulatore e porta avanti il tempo di simulazione. Una volta che il simulatore ha calcolato il risultato, si arresta e attende il successivo comando di controllo da LabVIEW.

Per ottenere maggiore flessibilità e controllo sull'esecuzione del simulatore, la paletta di Simulation FPGA Host Interface mette a disposizione funzioni per recuperare il tempo di simulazione attuale, forzare il simulatore ad attendere per uno specificato periodo, o mettere in pausa l'esecuzione del simulatore.

Figura 2. La paletta del Simulation FPGA Host Interface mette a disposizione delle funzioni per un controllo più granulare sul tempo di esecuzione del simulatore di terze parti.

La cosimulazione attraverso banchi di test realizzati in LabVIEW è attualmente supportata solo con Mentor Graphics ModelSim. Consulta Cosimulazione con accuratezza a livello ciclo in LabVIEW e Mentor Graphics ModelSim per un tutoria passo-passo.

Generazione di simulazioni da usare in simulatori di terze parti

il secondo metodo per una simulazione con accuratezza a livello ciclo di più basso livello è attraverso la generazione e l'esport della simulazione LabVIEW FPGA per l'utilizzo in un simulatore di terze parti. A differenza della cosimulazione, questo metodo richiede un banco di test sviluppato in VHDL per fornire gli stimoli, controllare l'esecuzione del test e registrare e verificare le uscite. Come risultato, per utilizzare questo metodo in LabVIEW FPGA, è necessario avere una certa familiarità con i simulatori HDL e il linguaggio VHDL. Il vantaggio è che, oltre a Mentor Graphics ModelSim, è possibile importare i file di simulazione nel simulatore con accuratezza a livello ciclo Xilinx ISim, incluso con LabVIEW FPGA.

Figura 3. Apportando delle modifiche al banco di test generato in LabVIEW è possibile eseguire simulazioni con accuratezza a livello ciclo sia in ModelSim sia in ISim.

Come parte dell'export di simulazione, LabVIEW genera un file modello di banco di test personalizzato per la propria applicazione FPGA. È quindi possibile aggiungere codice VHDL specifico all'interno di questa struttura per testare in maniera accurata il proprio progetto.

Figura 4. LabVIEW genera un modello di banco di test in VHDL come parte del file di simulazione esportato per accelerare lo sviluppo del proprio banco di test.

Attraverso il seguente tutorial Simulazione con accuratezza a livello ciclo con Xilinx ISim è possibile approfondire come generare i file di simulazione, modificare il banco di test e mandare in esecuzione la simulazione in Xilinx ISim.

Conclusioni

Per simulare in maniera efficiente la propria applicazione FPGA prima della compilazione e del deploy, LabVIEW FPGA mette a disposizione degli strumenti per condurre simulazioni sia funzionali sia con accuratezza temporale a livello ciclo. I simulatori con accuratezza a livello ciclo possono rivelare importanti conflitti nella propagazione del segnale e interazioni non desiderate tra codici paralleli. Generalmente investigare questi aspetti richiede una esperienza speciale e tempo che vanno ben oltre quelli richiesti per sviluppare la IP originale.

La cosimulazione con accuratezza a livello ciclo in LabVIEW FPGA attraverso Mentor Graphics ModelSim elimina l'esigenza di esperienza nella programmazione in VHDL; riduce inoltre drammaticamente il tempo di sviluppo del banco di test, sfruttando la propria conoscenza di sviluppo in LabVIEW.

LabVIEW FPGA viene inoltre venduto con Xilinx ISim, un simulatore gratuito ad accuratezza a livello ciclo. Tuttavia, in questo caso, LabVIEW genera un modello di banco di test in VHDL e che bisogna essere in grado di modificare per testare in maniera appropriata la propria applicazione. 

Scopri come sviluppare codice FPGA in maniera più efficiente con il LabVIEW 2011 FPGA Module.