Progetto per imparare VHDL


16

Sono uno studente EE e posso scrivere [almeno semplici] programmi in più lingue di quante ne abbia le dita. Ho appena iniziato a studiare VHDL e mi chiedevo quale sarebbe stato un buon progetto per conoscere davvero la lingua e gli strumenti pertinenti? Ho problemi a trovarne uno perché è uno stile di programmazione davvero diverso per me.

Ho fatto cose semplici come gli additivi, ma sto cercando un progetto più a lungo termine (cioè un mese circa).

Nel caso sia pertinente, ho Xilinx Webpack e una scheda Digilent Spartan3.

Risposte:


7

Il mio progetto "ciao mondo" FPGA era un controller di array LED con PWM e di ingresso flusso seriale. Il risultato finale è stato bello ( http://lbw.axe-man.org/led1.wmv ), ma ammetto che ho fatto una parte di esso con l'Altera Quartus Schema Editor per vedere come parti VHDL sono stati descritti.


Questa è una grande idea; Ho appena preso una matrice senza controller 16x16 e un controller sarebbe fantastico. video pulito!
penjuin,

Bel video! E quell'editor schematico è lì per essere usato.
Monica,

10

Dato che sembri interessato alla programmazione, potresti costruire un semplice microprocessore.


ALTAMENTE raccomandato. Scoprirai non solo il lato FPGA e VHDL delle cose, ma anche come funzionano i processori, ciò che è necessario in termini di strumenti di sviluppo per supportare un processore, ecc.
Chris Stratton,

5

Dovresti dare un'occhiata a opencores.org e trovare un progetto interessante lì. Puoi anche scaricare Sigasi HDT , che ti aiuterà ad accelerare la grammatica VHDL.


4

Mi è piaciuto lavorare con Hans a Hardhack quest'anno sul progetto Rekonstrukt per costruire un sintetizzatore di base in un FPGA. Anche i progetti LED sono buoni, ma non c'è niente come collegare l'FPGA a uno stereo. Non sta costruendo da zero, come farebbe un progetto LED, perché il progetto si basa su un processore open core che supporta. Quindi all'inizio stai imparando come caricare l'FPGA con il progetto, quindi puoi giocare con le buste in FORTH. Ma dove inizi a saperne di più sugli interni FPGA è quando vuoi aggiungere funzionalità, che quindi richiede scavare nel VHDL.


2

Un progetto che mi è piaciuto realizzare è stato implementare il Milton Bradley Simon Game su un FPGA.

Nella mia università, la nostra classe EDA utilizza la stessa commissione che menzioni. Alcuni dei progetti realizzati includevano:

  • Elaborazione dell'immagine: filtro mediano, allungamento dell'istogramma, rilevamento dei bordi
  • Crittografia: AES, vari algoritmi di hashing, ecc.
  • Comunicazione: Ethernet, USB, I2C, ecc.
  • Giochi: Pong, invasori spaziali, ecc.

Questo potrebbe darti alcune idee.

Concederò l'idea di opencores.org e implementerò il tuo microprocessore. Dato che hai un FPGA Xilinx, potresti anche cercare di fare qualcosa con microblaze o picoblaze.

Modifica: formattazione.


1

Ho scritto il codice VHDL per xilinx virtex core qualche tempo fa. era un'implementazione della sveglia. Questo è quello che ho fatto:

  • Leggi molto attraverso il manuale di vhdl - dovrei rivederlo ora, ma l'ho trovato abbastanza semplice e facile da usare hdl :-)
  • Ha usato la suite xilinx (compilatore, sintetizzatore) per ottenere il bitstream
  • Ho caricato i flussi di bit usando jtag

Risciacquato, ripetuto 1-3. Vorrei sottolineare che la generazione di bitstream è quasi tutta integrata nell'IDE di Xilinx. Devi solo avere una chiara serie di logiche da implementare in HDL; tutto il resto è fatto dall'IDE.


1

L'oscillatore a controllo numerico sarebbe divertente. Ho appena fatto un progetto con la mia scheda compatibile Arduino (vedi http://tinyurl.com/ydmz2su ) ma questo sarebbe perfetto per un FPGA.

Ecco un paio di riferimenti di design.

Snell, John 1988 "Progettazione di un oscillatore digitale che genererà fino a 256 onde sinusoidali a bassa distorsione in tempo reale" Fondamenti della musica per computer. Cambridge, Mass .: MIT Press

Moore, F. Richard 1988 "Table Lookup Noise for Sinusoidal Digital Oscillators" Fondamenti di Computer Music. Cambridge, Mass .: MIT Press


0

Quello che sto facendo è fare un po 'di CPU. È un bel modo arrotondato per coprire tutte le basi.

Coprirai tutte le basi di un grande progetto in VHDL e sarai esposto a tutti gli argomenti chiave nella progettazione VHDL (orologi, input, output, logica, bus e progettazione sequenziale in modo prominente) così come molti core elettronici e computer concetti di progettazione e architettura come registri, operazioni sui dati, memoria e aritmetica del computer.

Si può iniziare con un semplice addizione e sottrazione e quindi aggiungere ulteriori funzionalità, come si impara, lavoro il vostro senso ad una completamente funzionale (anche se semplice ... o come preferisco chiamarlo "retro") del computer. Almeno, questo è il mio piano.

Inoltre, avendo il proprio computer progettati su misura su un chip è semplicemente cool :) Come un Raspberry Pi a 16 bit: P

Altri progetti comuni FPGA:

sintetizzatore -Music

generatore di effetti -DSP

-MIDI regolatore / interruttore

minatore -Bitcoin

emulatori di console di gioco -Video

-Scudi personalizzati Arduino

processori -Parallel (molto utile per alcuni problemi matematici che i computer convenzionali non sono grandi a)

-Robotics / sistemi di controllo

acquisizione -Data (fair pochi oscilloscopio progetta là fuori per FPGA se si sa come lavorare con amplificatori operazionali)

VHDL da solo non è orribilmente complicato. La cosa più importante da ricordare è che stai progettando un circuito digitale elettronico fisico, non scrivendo un programma per un microcontrollore. La tua simulazione non è un programma che funzionerà riga per riga, in pratica, quindi non lasciarti ingannare dalla somiglianza superficiale con C, VHDL è un paradigma molto diverso.

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.