Projekt do nauki VHDL

16

Jestem studentem EE i mogę pisać [co najmniej proste] programy w większej liczbie języków niż mam palce. Właśnie zacząłem uczyć się VHDL i zastanawiałem się, jaki byłby dobry projekt, aby naprawdę poznać język i odpowiednie narzędzia? Mam problem z wymyśleniem takiego, ponieważ jest to dla mnie naprawdę inny styl programowania.

Zrobiłem proste rzeczy, takie jak addery, ale szukam bardziej długoterminowego (tj. Około miesiąca) projektu.

W razie potrzeby mam Xilinx Webpack i płytkę Digilent Spartan3.

Jeremy
źródło

Odpowiedzi:

7

Mój projekt FPGA „witaj świecie” to kontroler macierzy LED z PWM i wejściem strumienia szeregowego. Ostateczny wynik był dobry ( http://lbw.axe-man.org/led1.wmv ), ale przyznaję, że zrobiłem to częściowo za pomocą edytora schematów Altera Quartus, aby zobaczyć, jak opisano części VHDL.

Axeman
źródło
to świetny pomysł; Właśnie wybrałem matrycę bez kontrolera 16x16 i kontroler byłby świetny. fajne wideo!
jeremy,
Niezły film! I można użyć tego edytora schematów.
Monica,
10

Ponieważ wydajesz się zainteresowany programowaniem, możesz zbudować prosty mikroprocesor.

starblue
źródło
WYSOKIE zalecane. W końcu dowiadujesz się nie tylko o aspektach FPGA i VHDL, ale także o tym, jak działają procesory, co jest potrzebne w narzędziach programistycznych do obsługi procesora itp.
Chris Stratton
5

Powinieneś sprawdzić opencores.org i znaleźć tam interesujący projekt. Możesz także pobrać Sigasi HDT , który pomoże ci przyspieszyć gramatykę VHDL.

użytkownik421
źródło
4

W tym roku podobała mi się praca z Hansem na hardhacku nad projektem Rekonstrukt polegającym na zbudowaniu podstawowego syntezatora w FPGA. Projekty LED są również dobre, ale nie ma to jak podłączenie FPGA do stereo. Nie buduje się go od podstaw, jak zrobiłby to projekt LED, ponieważ projekt oparty jest na otwartym procesorze z rdzeniem, który obsługuje czwarty. Na początku uczysz się, jak w zasadzie ładować FPGA z projektem, a potem możesz grać z kopertami w FORTH. Ale kiedy zaczynasz dowiadywać się więcej o wewnętrznych elementach FPGA, chcesz dodać funkcjonalność, która następnie wymaga wkopania w VHDL.

cyphunk
źródło
2

Projekt, który sprawił mi przyjemność, polegał na wdrożeniu gry Simona Miltona Bradleya na FPGA.

Na mojej uczelni nasza klasa EDA korzysta z tej samej tablicy, o której wspomniałeś. Niektóre z wdrożonych projektów obejmowały:

  • Przetwarzanie obrazu: filtr środkowy, rozciąganie histogramu, wykrywanie krawędzi
  • Kryptografia: AES, różne algorytmy mieszające itp.
  • Komunikacja: Ethernet, USB, I2C itp.
  • Gry: Pong, Space Invaders itp.

To może dać ci kilka pomysłów.

Popieram pomysł opencores.org, a także wdrażam własny mikroprocesor. Ponieważ masz układ FPGA Xilinx, możesz także pomyśleć o zrobieniu czegoś z mikroblazą lub picoblaze.

Edycja: formatowanie.

David Brenner
źródło
1

Jakiś czas temu napisałem kod vhdl dla xilinx virtex core. była to realizacja budzika. Oto co zrobiłem:

  • Dużo czytam w podręczniku vhdl - musiałbym go teraz poprawić, ale uznałem, że jest dość prosty i łatwy w użyciu hdl :-)
  • Używany pakiet xilinx (kompilator, syntezator), aby uzyskać strumień bitów
  • Przesłałem strumienie bitów za pomocą jtag

Płukane, powtarzane 1-3. Chciałbym zauważyć, że generowanie strumienia bitów jest w dużej mierze zintegrowane z IDE Xilinx. Musisz tylko mieć przejrzysty zestaw logiki do implementacji w HDL; wszystkie pozostałe rzeczy są wykonywane przez IDE.

Ishwor Gurung
źródło
1

Oscylator sterowany numerycznie byłby zabawny. Właśnie zrobiłem projekt z moją płytą kompatybilną z Arduino (patrz http://tinyurl.com/ydmz2su ), ale byłoby to idealne rozwiązanie dla FPGA.

Oto kilka odniesień do projektu.

Snell, John 1988 „Projekt oscylatora cyfrowego, który wygeneruje do 256 fal sinusoidalnych o niskim zniekształceniu w czasie rzeczywistym” Podstawy muzyki komputerowej. Cambridge, Mass .: MIT Press

Moore, F. Richard 1988 „Hałas wyszukiwania stołu dla sinusoidalnych cyfrowych oscylatorów” Podstawy muzyki komputerowej. Cambridge, Mass .: MIT Press

jluciani
źródło
0

Robię trochę procesora. To dobry, zaokrąglony sposób na omówienie wszystkich podstaw.

Omówisz wszystkie podstawy dużego projektu w VHDL i będziesz mieć dostęp do wszystkich podstawowych zagadnień w projektowaniu VHDL (zegary, wejścia, wyjścia, logika, magistrale i projektowanie sekwencyjne), a także wielu podstawowych elementów elektronicznych i komputerowych koncepcje projektowe i architektury, takie jak rejestry, operacje na danych, pamięć i arytmetyka komputerowa.

Możesz zacząć od dodawania i odejmowania, a następnie dodawać więcej funkcji w miarę uczenia się, pracując na drodze do w pełni funkcjonalnego (choć prostego ... lub jak wolę to nazwać „retro”) komputera. Przynajmniej taki jest mój plan.

Dodatkowo posiadanie własnego komputera na chipie jest po prostu fajne :) Jak 16-bitowy Raspberry Pi: P

Inne typowe projekty FPGA:

-Music syntezator

Generator efektów DSP

-MIDI kontroler / przerywacz

-Bitcoin-górnik

- Emulatory konsoli do gier wideo

-Niestandardowe tarcze Arduino

Równoległe procesory (bardzo przydatne w przypadku niektórych problemów matematycznych, w których konwencjonalne komputery nie są świetne)

-Robotyki / systemy sterowania

- Akwizycja danych (kilka projektów oscyloskopów dostępnych dla układów FPGA, jeśli wiesz, jak pracować ze wzmacniaczami operacyjnymi)

Sam VHDL nie jest strasznie skomplikowany. Najważniejszą rzeczą do zapamiętania jest to, że projektujesz fizyczny elektroniczny obwód cyfrowy, a nie piszesz program dla mikrokontrolera. Twoja symulacja nie jest programem, który będzie działał linia po linii, w zasadzie, więc nie daj się zwieść powierzchownemu podobieństwu do C, VHDL to zupełnie inny paradygmat.

użytkownik9892
źródło