Progetti per principianti su un FPGA?


11

Sono a due settimane dal completamento del mio primo corso di progettazione di logica digitale all'università e apparentemente non ci sarà un progetto finale, ma solo un noioso esame finale.

Quindi, come farebbe qualsiasi studente curioso, ho esaminato cosa sono realmente gli FPGA e cosa mi è stato dato da mangiare in classe. E ho deciso di completare un semplice progetto FPGA. Sto usando un FPGA Basys2 Spartan-3E e ho familiarità con la logica digitale e utilizzo ISE per spingere le porte logiche, ma non conosco VHDL / Verilog (sono sicuro che potrei prenderlo facilmente).

Qualcuno ha qualche idea di progetto per un principiante? Ho fatto molte dimostrazioni di laboratorio, ma niente di troppo fantasioso.


Lista dei desideri: display video 1080p, ... che dire che mi fermo lì :-)
Russell McMahon

1
Controlla il sito fpga4fun.com .
arm

3
Fai attenzione alle schede di sviluppo di fpga4fun.com. La loro documentazione è una schifezza e si rifiutano di rilasciare gli schemi della scheda di sviluppo .
Connor Wolf,

Risposte:


5

Ho trovato "FPGA Prototyping By Verilog Esempi di Pong Chu: Xilinx Spartan-3 Version" un libro molto utile. È pensato per una scheda Spartan-3 diversa da quella che hai menzionato, ma dovrebbe comunque essere utile.

C'è anche un'edizione VHDL se preferisci seguire questa strada


4

Hai VGA su quello dal suo aspetto. Il video è sempre interessante per la mia esperienza :)

Ecco un piano che potresti voler provare (nessun framebuffer richiesto):

  1. Ottieni uno schermo VGA a colori puri
  2. mostra una dissolvenza orizzontale dal nero al colore solido
  3. Ora sfumano verticalmente dal nero al rosso e orizzontalmente dal nero al verde 3a. (crea uno sfondo algoriticamente più interessante che puoi renderizzare in tempo reale)
  4. crea un semplice motore sprite che sovrapporrà una piccola forma arbitraria in una posizione arbitraria: potresti usare 1 BRAM per i dati sprite
  5. mostra alcuni sprite diversi (1 BRAM ciascuno)
  6. creare una logica di aggiornamento per far rimbalzare gli sprite (e allontanarsi a vicenda) - aggiungere il rilevamento delle collisioni alla logica dello sprite.
  7. crea uno sprite "paddle" che puoi controllare con gli interruttori, usalo per impedire agli sprite di uscire dallo schermo
  8. Aggiungi un meccanismo di punteggio

Penso che dovrebbe adattarsi a un 250E. (L'orologio VGA è lento in termini di FPGA, quindi puoi moltiplicare per 4-8x con il DCM che consentirà a un motore sprite di multiplexare su più di un'istanza sprite)


3

Questo corso online gratuito scritto da Hamster è fantastico ed è scritto con Basys 2 e Nexys 2 .

Personalmente ho usato Basys 2 e ho imparato un sacco da questo corso. Passa attraverso tutti gli aspetti del consiglio di amministrazione di Basys e molti concetti per portare a termine la maggior parte dei progetti.


2

Come per tutto il resto, inizia con un mondo ciao progetto , in questo caso - lampeggia un LED - e rendi il suo periodo variabile solo per divertimento.

Per fare ciò, dovrai imparare come creare un contatore in Verilog / VHDL. Questo è un buon inizio per imparare le complessità di HDL perché imparerai come:

  1. Inferire le operazioni hardware - utilizzando il codice RTL invece del codice di livello gate. Imparerai come progettare un contatore up / down pre-caricabile, ripristinabile con codice RTL.
  2. Scopri come fare la progettazione sincrona, che è ciò che la maggior parte degli FPGA sono comunque utili ed è la base di quasi tutti i sistemi digitali.
  3. Scopri come interfacciarsi con il mondo esterno - usando l'I / O dell'FPGA. Questo ti insegnerà come configurare e implementare le cose su un FPGA.

Una volta fatto, vai su opencores e inizia a hackerare progetti più grandi. Qui troverai molti altri progetti divertenti di alcuni dei nostri membri, incluso il tuo. :)


1

Martin suggerisce che hai la capacità VGA.

Che dire di una discreta "cornice per foto" che consente un migliore controllo delle foto rispetto a qualsiasi altro disponibile in genere.

  • La maggior parte gestisce le sottodirectory male.

  • Nessuna di queste consente l'ordinamento casuale del display, il che è un vantaggio molto grande quando hai un gran numero di foto.

  • Possibilità di creare un bonus basato su una presentazione basata su foto selezionate. (Vedi Irfanview per esempi).

  • Punti extra: aggiungi funzionalità di riproduzione MP3. Interlaccia la musica con le foto.

  • Archivio dati SD Flash.

  • USB?

  • 802.11? (troppo da sperare.)



0

Il libro di Hamblen et al è pieno di progetti interessanti per le schede Altera Cyclone DE1 e DE2; Il codice VHDL è fornito. Implementa alcuni di essi sulla tua scheda Spartan-3E.


0

Una delle prime cose da fare è semplicemente scaricare (dal fornitore o da un sito appassionato) e costruire un progetto scheletro che agganci gli input agli output - questo può essere estremamente frustrante per iniziare a lavorare fino a quando non si ha esperienza.

Quindi puoi iniziare a mettere la logica tra le macchine a stati per esempi inventati come avevi in ​​classe, o quelli più complicati come i generatori di video che altri raccomandano. Blocchi più complicati come semplici processori fai-da-te, ecc ...


0

Quando ho seguito il mio corso VHDL, ho realizzato un microprocessore con ALU con alcune istruzioni, comunicazione di memoria e sequencer di microistruzione. Ci vuole più tempo di quanto pensi, soprattutto se vuoi renderlo robusto.


Idem (deve essere il favorito del docente). È stata una sfida sorprendentemente buona e mi ha fatto davvero pensare a come funzionano effettivamente i processori.
Al Bennett,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.