Jak nauczyć się HDL

24

W tym semestrze mam kurs projektowania cyfrowego i po prostu to uwielbiam. Teraz wiem, że większość pracy w systemie wbudowanym i projektowaniu cyfrowym jest wykonywana najpierw na symulatorach komputerowych, a następnie realizowana za pomocą oprogramowania sprzętowego. Zastanawiałem się więc, jak powinienem uczyć się HDL. Mam kilka pytań

  1. Co? Nie wiem, jakie są standardy, ale chciałbym się dowiedzieć, co jest łatwe do odebrania. Rozumiem, że większość HDL-ów jest przeznaczona do użytku z układami FPGA.
  2. W jaki sposób? Czy powinienem podążać za książką z niezależnymi przykładami, czy też powinienem rozpocząć projekt taki jak wdrożenie małego systemu (może to być coś w rodzaju sterowania sygnalizacją świetlną).
  3. Gdzie? Gdzie dostanę zasoby?
Rick_2047
źródło
1
Czy możesz wyjaśnić, czego chcesz od swojego HDL? Większość HDL jest przeznaczona do użytku z FPGA, ponieważ do tego większość ludzi potrzebuje FPGA. Zasadniczo symulator (działający na schemacie graficznym) jest używany do projektowania obwodów innych niż FPGA i nie ASIC. Czy chcesz zbudować: (1) dyskretne obwody cyfrowe, tj. Komponenty 74XX, (2) obwody analogowe, tj. Regulatory przełączające, anteny / urządzenia nadawczo-odbiorcze RF, ogólne obwody wzmacniacza operacyjnego lub (3) analogowe obwody z mieszanym sygnałem, tj. Interfejsy między sygnałami cyfrowymi i analogowymi.
Kevin Vermeer
Myślę, że chcę nauczyć się HDL opisywać sprzęt. To jest 1, 2 i 3. Również w jednym chcę, aby nie była specyficzna dla FPGA, ponieważ nie mam dostępu ani środków finansowych, aby je uzyskać.
Rick_2047,
Myślę, że chcę nauczyć się HDL opisywać sprzęt. To jest 1, 2 i 3. Również w jednym chcę, aby nie była specyficzna dla FPGA, ponieważ nie mam dostępu ani środków finansowych, aby je uzyskać. Myślę, że głównie chcę użyć HDL do symulacji tego, co wymyślę. Moim głównym planem na ten rok jest stworzenie własnego komputera. Myślę, że do tego użyję 74xx. Właśnie dlatego, aby przetestować moje teorie i obwody, pojawił się pomysł HDL.
Rick_2047

Odpowiedzi:

8

Czy możesz wyjaśnić, jakiego HDL chcesz użyć? Dostępne są w zasadzie Verilog lub VHDL, [EDYCJA] i ich krewni, Verilog-ASM i VHDL-ASM (Analogowy sygnał mieszany). [/ EDYCJA] Verilog ma trochę składni podobnej do C, co ułatwia wykrywanie, jeśli wcześniej pracowałeś z C, ale ułatwia to także rozwijanie złych nawyków - Nie możesz programować sprzętu w C, ponieważ jest wszystko równolegle! Podobnie jak C, zakłada, że ​​wiesz, co robisz, i łatwo jest strzelić sobie w stopę. VHDL zmusza cię do myślenia w zupełnie inny sposób, co jest pomocne, ale trudne. Jest bardziej gadatliwy i bardziej prawdopodobne, że cię ostrzeże, jeśli zrobisz coś dziwnego. Zobacz dyskusję na temat Slashdot lub ten artykuł .

EDYCJA: „Języki Netlist” nie są czymś, czego używałem do prac projektowych (w edytorze tekstu), ale przypuszczam, że mógłbyś. SPICE, format Cadsoft Eagle i EDIF to przykłady (o bardzo różnych celach), które przychodzą na myśl. Użyłem tylko list sieciowych, aby sprawdzić, czy mój schemat jest poprawny (czy każde połączenie w moim schemacie Eagle ma sens), aby ulepszyć abstrakcję dostarczoną przez symulator (SPICE, podobnie do sposobu, w jaki używa się instrukcji ASM w C), lub eksport / import między różnymi programami (EDIF).
Język netlistingu Spectre jest powiązany z Verilog-A [nalog] i SPICE i jest przeznaczony do prac projektowych i weryfikacyjnych. MASZTjest językiem modelowania komponentów, który jest zgodny z Verilog-AMS i VHDL-AMS. Wyszukiwanie samouczków na temat tych języków pokazuje, że często używane są narzędzia, które wyglądają jak narzędzia do przechwytywania schematów, zamiast programowania w samym języku netlisting.

Popieram też układ FPGA Xilinx Spartan i płytę programistów Digilent . Wybrałbym jednak Basys (60 USD) lub Nexys (100 USD), jeśli nie potrzebujesz Ethernetu na płycie Starter (150 USD) wspomnianej przez O Engenheiro (Ceny z rabatem edukacyjnym). Basys i Nexys są tańsze, a zatem bardziej popularne w szkołach, dlatego w Internecie jest więcej samouczków i laboratoriów.

Kevin Vermeer
źródło
Zastanawiałem się, czy nauka tak zwanych języków „Netlist” byłaby korzystniejsza czy łatwiejsza niż nauka Verilog lub VHDL?
Rick_2047
Ciężko powiedzieć. To zależy od tego, co chcesz zrobić ze swoim językiem. Czy możemy lepiej zrozumieć, co chcesz robić i jakiego języka, którego chcesz używać, zanim zagłębimy się w to, jak i gdzie dla każdej permutacji pół tuzina języków i bardzo wielu przypadków użycia?
Kevin Vermeer
9

Jestem prawie w takiej samej sytuacji jak ty.

Co ja robię:

Wziąłem bezpłatny bardzo podstawowy kurs VHDL na studiach, które studiowałem. Grałem na planszy Spartan 3E .

Więc kupiłem planszę i zacznę grać.

Moi przyjaciele zasugerowali te książki:

  1. Rapid Prototyping of Digital Systems , James O. Hamblen, Michael D. Furman
  2. Publikacje Doone - HDL Chip Design , Douglas J Smith

I zasugerował również ten dokument:

Przewodnik po syntezie i symulacji Xilinx

Daniel Grillo
źródło
1
Poparłbym książkę Hamblen i Furman. Zaprojektowałem własną płytkę Altera Flex 10K10 i mogłem z nią korzystać z większości kodu z książki. To książka kucharska, ale nic gorszego.
Leon Heller
4
  1. Istnieją dwa języki HDL, VHDL i Verilog, zapytaj swojego profesora, którego języka się nauczysz i postaraj się zobaczyć, jak to działa: składnię i jak możesz tworzyć moduły na ten temat i dokonać dużej recenzji na temat WSZYSTKICH obwodów cyfrowych.

  2. Zanim cokolwiek zrobisz 1, upewnij się, że naprawdę wiesz wszystko o obwodach cyfrowych, ponieważ HDL nie tworzy niczego nowego, używasz tych rzeczy tylko w inny sposób. Abyś mógł skorzystać z jednej z dwóch książek powyżej, aby wykonać kilka ćwiczeń, poproś nauczyciela książek, które on poleca, i skorzystaj z nich lub jednej z dwóch powyższych.

  3. Zapytaj nauczyciela, którego FPGA używają na zajęciach, jeśli jest to Altera, Xilinx, Lattice lub inne, jeśli Altera pobierze Quartus Web Edition, jeśli Xilinx, pakiet Web ISE, pobierz bezpłatnie jeden z nich i spróbuj dowiedzieć się o jednym z programów i wykonać niektóre ćwiczenia, symulacje na jednym z nich.

Masz rację, około 90% pracy nad HDL dotyczy symulatorów, więc dowiedz się więcej o symulatorze Modelsim i / lub symulatorze ISIM na Xilinxie, one wykonują polecenia i jak wykonywać testy.

Zork
źródło
Dwie główne linie HDL. Istnieje wiele mniej popularnych, takich jak CUPL, MyHDL i Lava. Kurs projektowania cyfrowego na mojej uczelni wspominał VHDL, ale używał CUPL w laboratorium. Więcej na wikipedia: en.wikipedia.org/wiki/…
Yann Vernier
3

gdziekolwiek skończysz pracować, będziesz musiał używać tego samego HDL, którego już używają - więc aby zwiększyć szanse na zatrudnienie, spróbuj spędzić trochę czasu zarówno z Verilog, jak i VHDL. Kiedyś było dość proste: Verilog był używany w USA, a VHDL w Europie - obecnie nie jest to łatwe.

Upthread ktoś wspomniał o uczeniu się „myśleć inaczej” dla VHDL - musisz to zrobić również dla Verilog, wygląda to na C, ale tak nie jest - dobrym miejscem do rozpoczęcia jest sprawdzenie i zobaczenie, gdzie powstają druty i klapy podczas syntezy - po osiągnięciu punkt, w którym możesz je zobaczyć i możesz po prostu „zobaczyć” zagrożenia czasowe w swojej głowie, jesteś tam przez większość drogi

Taniwha
źródło
2

icarus verilog lub verilator to to, co poleciłbym do nauki lub zabawy z verilogiem. ghdl jest tym, czego użyłbym do zabawy z vhdl. Daleko od głównego nurtu, ale poleciłbym także cyclicity-cdl.sf.net, który ma własne środowisko SIM itp. I produkuje syntezowalny verilog. użyj i naucz się gtkwave do badania plików .vcd generowanych przez symulatory.

old_timer
źródło
1

Nauczyłem się Verilog na studiach na jednym kursie. Kulminacją tego kursu była implementacja dwukierunkowego procesora Superscalar MIPS (30% klasy sprawiło, że działał całkowicie; ja byłem w pozostałych 70%). Wydaje mi się, że wszystko w przemyśle odchodzi od Verilog w kierunku VHDL. Biorąc to pod uwagę, istnieje wiele samouczków online dla obu języków. Oto jeden na VHDL, a drugi na Verilog .

Prawdopodobnie będziesz chciał skorzystać z ModelSim i prawdopodobnie będziesz mógł używać edycji studenckiej (myślę, że jest darmowy; może z ograniczeniami). Nawiasem mówiąc, zalecają korzystanie z Digital Systems Design przy użyciu VHDL 2nd Edition jako podręcznika.

vicatcu
źródło
1

Oto tani zestaw deweloperski FPGA, który może być właśnie dla Ciebie. Nie jestem jednak pewien poziomu narzędzi Open Source, które z nim współpracują. Łańcuchy zestawu narzędzi dostawcy są dostępne do pobrania za darmo. Słyszałem, że w cenie tego zestawu jest dostępny, warto go kupić.

Sushrut J Mair
źródło