Sono nuovo di FPGA e attualmente frequento il corso HDL (in particolare Verilog). Ho una conoscenza sufficiente di progettazione digitale come circuiti combinatori e sequenziali.
Voglio creare un progetto simile a quello mostrato in questo video di YouTube .
So anche che Xilinx ISE può elaborare segnali logici e simulare forme donda. Ha funzionalità extra come ottenere i segnali di ingresso tramite USB, fotocamera ecc. E inviarli al computer.
È possibile eseguire questo progetto (come una simulazione nel computer) senza acquistare una vera scheda FPGA? Quello che voglio dire è, posso costruire, codificare ed eseguire quel progetto nel mio computer e collegare la mia fotocamera tramite USB, quindi lasciare che i segnali video in arrivo siano elaborato da simulatori HDL come Xilinx ISE, ecc. (senza acquistare davvero una scheda FPGA e sintetizzare il tuo progetto lì, al momento non ho il budget per averne uno)
( Quello che intendo veramente è interfacciare il design HDLl con sorgenti del mondo reale, codice C, ecc.)
Commenti
- Non ‘ Non so se puoi farlo con il simulatore di Xilinx ‘, ma qualcosa come Icarus Verilog consentirà alla tua interfaccia di simulazione di codice C di ottenere dati fonti del mondo reale; tuttavia è probabile che venga eseguito ordini di grandezza più lentamente del tempo reale, quindi lelaborazione di una sorgente video dal vivo sarebbe difficile.
- oh, ecco, questa è la frase che sto trovando, interfacciamento a fonti del mondo reale
- @vvavepacket vota i commenti / post per ringraziare il commentatore / autore.
- LFPGA nel video sembra Altera DE2. ‘ tra 200 e 600 USD a seconda della licenza e del chip. Sono presenti ‘ simulatori in csc.kth.se/~emille/niisim
- Terasic DE0-nano è nellordine di $ 80 e può interfacciarsi a fotocamere e LCD; infatti hanno demo di questo sul loro sito web. Non affiliato con loro, ma il DE0-nano ‘ ha un piccolo FPGA carino su una scheda a un prezzo decente. ‘ ho sempre odiato il costo della maggior parte delle schede di sviluppo.
Risposta
Gli strumenti Xilinx non possono interfacciarsi in tempo reale per quanto ne so, né ModelSim (usato dallIDE Libero di Actel)
Non conosco simulatori open source, ce ne sono alcuni piuttosto progetti esotici là fuori quindi è possibile che ci sia qualcosa che potrebbe fare questo.
Tuttavia, questa potrebbe essere una risposta che non hai chiesto (la cancellerò se non è utile), ma prenderei in considerazione la possibilità di costruire la tua scheda FPGA per farlo o almeno ho iniziato il percorso verso di esso. Ho inciso la mia prima scheda FPGA e sebbene fosse molto semplice (la scheda non è il processo ;-)), mi ha insegnato moltissimo abbastanza rapidamente.
Pro:
- Economico
- Entra subito nel profondo e impara tutto ciò che devi sapere sulle considerazioni sullhardware. Ti obbliga a leggere prima la maggior parte dei fogli dati e a scriverne uno tuo codice di avviamento, che secondo me è spesso migliore dellapproccio plug and play alla scheda di sviluppo per lapprendimento.
- Metti sulla lavagna solo ciò di cui hai bisogno.
- Ti avvicini al tuo obiettivo di un vero e proprio progetto funzionante con possibilmente lo stesso sforzo / ricerca di capire come simulare tutto in tempo reale.
Contro:
- È ancora necessario acquistare un programmatore, anche se su eBay si possono trovare versioni economiche dei programmatori Xilinx / Altera.
- Se la progettazione e le problematiche di PCB / integrità del segnale non sono qualcosa su cui ti vuoi concentrare, potresti non essere interessato a molte delle conoscenze da acquisire in questo modo.
Capisco che lincisione della tua scheda probabilmente non è necessaria, lho fatto solo perché avevo gli FPGA lì, ero impaziente e non volevo aspettare 2 settimane prima che arrivasse un PCB. Ci sono offerte estremamente economiche qui per schede a 2 strati, che farebbero almeno eseguire il tuo progetto (possibilmente a velocità inferiori a quelle eventualmente desiderate – normalmente il numero minimo di strati per un design FPGA ad alta velocità sarebbe 4, ma questi sono molto più costoso)
Comunque, Spirit Circuits fa un accordo PCB “bare bones” a 2 strati completamente gratuito (uno al mese, un design, nessuna maschera o serigrafia) che è utile per un design unico .
Inoltre, per schede prototipo economiche adeguate a 2 e 4 strati, ITead e Seed Studio arrivano a partire da $ 10 per 10 schede (o forse 5 a quel prezzo) servizi.
Commenti
- un approccio molto interessante! e anche incoraggiante
Answer
Lo standard Xilinx ISE Webpack (la versione gratuita che è possibile scaricare da xilinx.com) include un simulatore chiamato iSim. Non è un ottimo simulatore, ma è perfettamente funzionante e il prezzo è giusto.
Anche se non ho utilizzato gli strumenti di Altera, sarei sorpreso se non fosse incluso un simulatore.
Ma … devi sapere cosa può e non può fare un simulatore . Per i principianti, non può simulare un FPGA in esecuzione alla massima velocità. In effetti, sono piuttosto lenti. A seconda della complessità dellFPGA simulato, non mi sorprenderebbe vedere che ci vuole 1 minuto per simulare 1 ms di “simulato time “. Se vuoi simulare unora di” tempo simulato “, richiederebbe 1000 ore di tempo reale.
Inoltre, un FPGA simulato non può comunicare direttamente con cose come la tua porta USB. LFPGA simulato comunica con un “banco di prova”. Il banco di prova è un pezzo di codice VHDL o Verilog che alimenta gli input dellFPGA (o parti dellFPGA) e verifica loutput del tuo FPGA. Puoi fare alcune cose abbastanza complesse in un banco di prova , come utilizzare numeri in virgola mobile, leggere e scrivere file ed eseguire una logica impossibile da sintetizzare.
Commenti
- A ltera ‘ ha edizioni gratuite di Quartus che includono ModelSim. La versione gratuita di ModelSim limita la velocità di simulazione e la versione gratuita di Quartus limita il numero di core CPU utilizzati per sintetizzare, ma per il resto sono completamente funzionanti.
- Altera ModelSim non supporta la co-simulazione di VHDL e Verilog nello stesso design.
Risposta
Non conosco nessun simulatore che si interfaccia direttamente ai segnali che arrivano su una porta USB (o altro hardware).
Almeno in teoria, sarebbe possibile scrivere del software che prenda i segnali in arrivo su una porta e tradurli in un file testbench che un simulatore potrebbe elaborare. Sfortunatamente, non conosco alcun software esistente per farlo, e scriverlo da solo sarebbe decisamente non banale.
Commenti
- il modo migliore è ottenere una scheda FPGA entry level a basso costo per n00bs come me
- Non ‘ in realtà devi passare attraverso un testbench se hai un simulatore che h supporta uninterfaccia per il codice personalizzato come un VPI, tuttavia, dato che il simulatore eseguirà ordini di grandezza più lentamente del tempo reale, potrebbe essere più semplice gestire i dati acquisiti in un file che può essere letto alla velocità della simulazione.
- @ChrisStratton Mi interessa lidea dei dati acquisiti in un file. Eventuali risorse per questo? Grazie
- Dipenderebbe interamente dalle periferiche che desideri utilizzare come origini dati.
Risposta
Dovrai utilizzare uninterfaccia di co-simulazione (DPI, VPI, VHPI, FLI) che ti consenta di scrivere codice che si aggancia al simulatore e quindi collegare tra lRTL in esecuzione in simulazione e lhardware reale sulla tua macchina .
I problemi significativi che incontrerai (a parte le interfacce scarsamente documentate) sono la sincronizzazione e la temporizzazione. RTL in esecuzione nella simulazione è molto più lento dellhardware reale: dovrai essere in grado di passare attraverso le interazioni con linterfaccia esterna per abbinare la velocità della simulazione. Alcune interfacce hardware non saranno così! Ad esempio, se si utilizza TCP, potrebbe essere necessario falsificare i timer nello stack del kernel per evitare ritrasmissioni spurie ecc.
Icarus supporta VPI e è gratuito, quindi puoi sperimentare senza spendere soldi per le licenze. Potresti voler esaminare i framework esistenti che fanno parte del lavoro pesante di co-simulazione e forniscono unastrazione più pulita al simulatore. Uno di questi framework è Cocotb , una libreria open source che fornisce uninterfaccia Python al simulatore. ( Disclaimer: sono uno degli sviluppatori di cocotb.)
Un esempio che potrebbe essere pertinente: ieri ho messo giù un po di RTL per rispondere alle richieste di ping e ho creato un testbench che apre uninterfaccia TUN. Puoi quindi eseguire il ping dellinterfaccia utilizzando il comando ping
e lRTL in esecuzione nella simulazione riceve il ping e risponde. Lintero testbench è inferiore a 50 righe di Python! Il codice sorgente per questo esempio si trova su Github e funziona su Icarus sotto Linux.
Risposta
Nella stragrande maggioranza dei casi, qualsiasi cosa tu faccia nella simulazione rimane nella simulazione. Non puoi accedere allhardware reale da esso – devi avere un modello di simulazione dellhardware reale.
Tuttavia, se sei disposto a fare uno sforzo, la maggior parte dei simulatori ha uninterfaccia per il codice arbitrario. In Verilog è “uninterfaccia abbastanza standard per come la intendo io, quindi il lato Verilog delle cose verrà portato tra i simulatori. In VHDL-land, cè un modo standard per farlo, ma almeno uno dei grandi fornitori ha il proprio modo di farlo!
Tieni presente anche che linterfacciamento in tempo reale (cioè alla velocità con cui lo farebbe lFPGA) è molto improbabile e il resto della tua simulazione (lHDL) non verrà eseguito in tempo reale – neanche il tempo.Come notato nei commenti, lelaborazione simulata in tempo reale del video non è fattibile in questo modo.
Personalmente, non ho mai avuto bisogno di provarlo, trovo che io sia più produttivo scrivendo modelli di lhardware e funziona tutto in VHDL.
Ma non trascurare i vantaggi di fare la simulazione – è un modo molto più veloce per scoprire se le cose funzionano (le compilazioni richiedono pochi secondi) e poi costruire bitstream (le compilazioni richiedono decine di minuti o ore) e provandoli nellhardware.
Commenti
- Non vero, vedere i commenti alla domanda.
- OK, avrei dovuto ‘ essere più chiaro: stavo limitando la mia risposta al ” I ‘ m nuovo di FPGA ” livello 🙂 Risposta aggiornata