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.
Ponieważ wydajesz się zainteresowany programowaniem, możesz zbudować prosty mikroprocesor.
źródło
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.
źródło
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.
źródło
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:
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.
źródło
Jakiś czas temu napisałem kod vhdl dla xilinx virtex core. była to realizacja budzika. Oto co zrobiłem:
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.
źródło
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
źródło
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.
źródło