Projekty dla początkujących na FPGA?

11

Mam dwa tygodnie do ukończenia mojego pierwszego kursu college'u z projektowania cyfrowego i najwyraźniej nie będzie ostatecznego projektu - tylko żmudny egzamin końcowy.

Tak jak zrobiłby to każdy ciekawy uczeń, przyjrzałem się, czym właściwie są FPGA i czym karmiłem łyżką podczas zajęć. Zdecydowałem się ukończyć prosty projekt FPGA. Korzystam z Basys2 Spartan-3E FPGA i znam cyfrową logikę i używam ISE do przesuwania bramek logicznych, ale nie znam VHDL / Verilog (jestem pewien, że mógłbym to łatwo odebrać).

Czy ktoś ma jakieś pomysły na projekt dla początkującego? Przeprowadziłem wiele pokazów laboratoryjnych, ale nic nadzwyczajnego.

Chetan Bhargava
źródło
Lista życzeń: Wyświetlanie wideo 1080p, ... co powiedzieć, że się tam zatrzymuję :-)
Russell McMahon
1
Sprawdź stronę fpga4fun.com .
armf
3
Strzeż się tablice deweloperskie fpga4fun.com. Ich dokumentacja jest beznadziejna, a oni odmawiają wydania schematów Dev-Board .
Connor Wolf,

Odpowiedzi:

5

Uważam, że „Prototypowanie FPGA przez Verilog Przykłady Ponga Chu: wersja Xilinx Spartan-3” jest bardzo pomocną książką. Jest przeznaczony do innej planszy Spartan-3 niż ta, o której wspomniałeś, ale nadal powinien być pomocny.

Istnieje również edycja VHDL, jeśli wolisz pójść tą drogą

Jim A.
źródło
4

Wygląda na to VGA. Wideo zawsze wzbudza zainteresowanie moim doświadczeniem :)

Oto plan, który możesz wypróbować (nie wymaga bufora ramki):

  1. Uzyskaj czysty ekran VGA
  2. wyświetlać zanikanie koloru poziomego z czarnego na jednolity
  3. Teraz zanikaj pionowo z czarnego na czerwony i poziomo z czarnego na zielony 3a. (stwórz ciekawsze, określone algorytmicznie tło, które możesz renderować w czasie rzeczywistym)
  4. stwórz prosty silnik sprite, który nałoży dowolny mały kształt w dowolne miejsce - możesz użyć 1 BRAM dla danych sprite
  5. pokaż kilka różnych duszków (1 BRAM każdy)
  6. utwórz trochę logiki aktualizacji, aby duszki podskakiwały (i się od siebie nawzajem) - dodaj wykrywanie kolizji do logiki duszka.
  7. utwórz duszka „wiosło”, którym możesz sterować za pomocą przełączników, użyj go, aby zatrzymać duszki z ekranu
  8. Dodaj mechanizm oceniania

Myślę, że wszystko powinno pasować do 250E. (Zegar VGA jest wolny pod względem FPGA, więc możesz pomnożyć go 4-8x za pomocą DCM, co pozwoli multipleksować jeden silnik sprite na więcej niż jednej instancji sprite)

Martin Thompson
źródło
3

Ten darmowy kurs online napisany przez Chomika jest niesamowity i napisany z myślą o Basys 2 i Nexys 2 .

Osobiście korzystałem z Basys 2 i nauczyłem się wielu z tego kursu. Omówiono wszystkie aspekty płyty Basys i wiele koncepcji pozwalających uzyskać większość projektów poza ukończonym kursem.

MLM
źródło
2

Podobnie jak w przypadku wszystkich innych elementów, zacznij od projektu hello world , w tym przypadku - mrugnij diodą LED - i dostosuj jego okres dla zabawy.

Aby to zrobić, musisz nauczyć się budować licznik w Verilog / VHDL. To dobry początek do poznania zawiłości HDL, ponieważ nauczysz się:

  1. Wnioskuj operacje sprzętowe - używając kodu RTL zamiast kodu poziomu bramki. Dowiesz się, jak zaprojektować wstępnie ładowany, resetowalny licznik góra / dół z kodem RTL.
  2. Dowiedz się, jak robić projektowanie synchroniczne - do czego i tak większość FPGA jest dobra i jest podstawą prawie wszystkich systemów cyfrowych.
  3. Dowiedz się, jak połączyć się ze światem zewnętrznym - korzystając z I / O FPGA. To nauczy Cię, jak konfigurować i implementować rzeczy na FPGA.

Gdy to zrobisz, przejdź do OpenCore i zacznij hakować większe projekty. Znajdziesz tutaj wiele innych ciekawych projektów, w tym również Twój. :)

sybreon
źródło
1

Martin sugeruje, że masz możliwość VGA.

Co powiesz na przyzwoitą „ramkę”, która umożliwia lepszą kontrolę nad zdjęciami niż jakakolwiek zwykle dostępna.

  • Większość źle obsługuje podkatalogi.

  • Prawie żaden nie pozwala na losowe porządkowanie wyświetlania - co jest bardzo dużą zaletą, gdy masz dużą liczbę zdjęć.

  • Możliwość wykonania pokazu slajdów na podstawie wybranych zdjęć jako bonus. (Zobacz przykłady Irfanview).

  • Dodatkowe punkty - dodaj możliwość odtwarzania plików MP3. Przeplataj muzykę ze zdjęciami.

  • Magazyn danych SD Flash.

  • USB?

  • 802.11? (zbyt wiele, by się spodziewać).

Russell McMahon
źródło
0

Książka Hamblena i in. Jest pełna interesujących projektów dla płyt Altera Cyclone DE1 i DE2; Kod VHDL jest dostarczany. Zaimplementuj niektóre z nich na swojej płycie Spartan-3E.

Leon Heller
źródło
0

Jedną z pierwszych rzeczy do zrobienia jest po prostu pobranie (od strony dostawcy lub strony entuzjastów) i zbudowanie szkieletowego projektu, który podpina dane wejściowe do wyjść - może to być bardzo frustrujące, dopóki nie zaczniesz działać.

Następnie możesz zacząć umieszczać logikę między stanowymi maszynami dla wymyślonych przykładów, jak w klasie, lub bardziej skomplikowanych, takich jak generatory wideo, które inni polecają. Bardziej skomplikowane bloki, takie jak proste procesory DIY itp.

Chris Stratton
źródło
0

Kiedy wziąłem kurs VHDL, zrobiłem mikroprocesor z ALU z kilkoma instrukcjami, komunikacją pamięci i sekwenserem mikroinstrukcji. Zajmuje to więcej czasu, niż myślisz, że to zajmie, szczególnie jeśli chcesz uczynić go solidnym.

Gorgen
źródło
To samo (musi być ulubionym wykładowcą). Było to zaskakująco dobre wyzwanie i sprawiło, że naprawdę pomyślałem o tym, jak naprawdę działają procesory.
Al Bennett,