Domanda

Al momento sto testando alcuni RTL, sto usando ncverilog, ed è molto ... molto lento. Ho sentito dire che, se usiamo un qualche tipo di schede FPGA, allora le cose saranno più veloci. E 'vero?

È stato utile?

Soluzione

Si sta parlando di due cose diverse.

ncverilog è uno strumento di simulazione, mentre una scheda FPGA è reale hardware. Quindi, ci saranno differenze. hardware reale sarà generalmente più veloce, ma con un simulatore, è possibile avere tutti i tipi di debug divertimento. Cercando di sondare un segnale specifico è solo una questione di aggiungere una riga al banco di prova. Inoltre, si può facilmente fare modifiche al modello simulato invece di dover ridisegnare la scheda FPGA.

Se si esegue la simulazione su una macchina sufficientemente potente, a volte è possibile approssimare prestazioni reali (assumendo che la FPGA è lento).

Tutto sommato, si dovrebbe fare entrambe le cose. Utilizzare un simulatore per fare il vostro sviluppo di base e la valutazione. Passare l'hardware FPGA una volta che il disegno è sufficientemente ben definito.

Altri suggerimenti

Abbiamo avuto gli stessi problemi con velocità di simulazione troppo. Tuttavia, ci atteniamo con simulazioni per la maggior parte della nostra verifica. Ogni controlli sim una funzione specifica e sono molto più veloci rispetto alle Sim a livello di sistema. Abbiamo anche fatto loro autocontrollo e sono utili per i test di regressione (unità di test).

Per i test di sistema lunghe su segnali reali che prendono troppo tempo per simulare, ci muoviamo questi al FPGA se possiamo. Abbiamo bisogno di ricreare manualmente prova di nuovo tutti questi casi di test dopo modifiche al codice, in modo che possa essere lento a suo modo.

A volte, però, FPGAing un disegno non è solo fattibile. A volte i disegni completi sono troppo grande per entrare in un FPGA, oppure la frequenza di clock è troppo alto. Ma ricordate che non dovete necessariamente FPGA dell'intero progetto, può essere sufficiente per ottenere il blocco di importante che ti interessa e controllare questo fuori completamente.

È possibile tracciare l'attività sui segnali in un design FPGA esecuzione utilizzando "logica analizzatore incorporati" strumenti software come Altera SignalTap o Xilinx ChipScope. Prima di sintetizzare / mappatura del RTL al dispositivo, si può usare questi strumenti per collegare sonde morbide per i segnali che si desidera vedere. È possibile impostare i trigger in modo che i valori di un segnale solo vengono registrati in determinate condizioni. Poi si genera il bitfile e programmare il dispositivo con JTAG. L'analizzatore logico comunica con il PC tramite JTAG e registra attività sul tuo sonde, che è quindi possibile analizzare.

E 'un po' complicato da configurare, come questi strumenti non sono particolarmente facili da usare, ma si ottengono risultati molto più velocemente che con la simulazione RTL.

Che tipo di RTL stai testando? Se si utilizzano schede FPGA, allora è possibile compilare il codice a patto di avere lo strumento giusto per il FPGA destra. Dal momento che FPGA sono reprograammable, poi, naturalmente, è possibile verificare la codifica sulla scheda, e hanno l'obiettivo (FPGA) eseguire il codice (RTL)

Ma non è più una simulazione, è un test, con un dato hardware, ad una data velocità di clock. E non si ottiene bel risultato sullo schermo, è necessario utilizzare la sonda fisica e la portata. Inoltre non arriva a vedere come l'interno del codice sta lavorando.

Verilog o VHDL simulazione è un po 'come l'esecuzione di codice utilizzando un debugger. test FPGA è più simile di debug con printf. La grande differenza è che durante la simulazione, la CPU deve simulare il comportamento di tutti coloro porta logica che i risultati del codice. Sul FPGA, non c'è simulazione, è solo 'run' il codice, quindi è molto più veloce, ma si hanno meno informazioni.

Si dovrebbe utilizzare la simulazione per componenti molto piccoli, e quindi verificare il vostro intero programma su un FPGA.

Vi starete probabilmente chiedendo di acceleratori di simulazione hardware. Qui è uno di loro: GateRocket

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top