Projektowanie cyfrowe nie ma wiele wspólnego z tworzeniem oprogramowania (może poza tym, że składnia Verilog wygląda trochę jak język C, ale po prostu wygląda). Dlatego bardzo trudno jest odpowiednio odpowiedzieć na tego rodzaju pytania. Ale jako facet, który przeszedł ścieżkę od rozwoju oprogramowania do projektowania sprzętu, spróbuję. Patrząc na siebie, oto jak doradziłbym sobie wtedy, gdybym wiedział, co teraz wiem:
Zaczynać od początku
Zapomnij o rozwoju oprogramowania. Zwłaszcza języki programowania. Zasady te nie mają zastosowania w projektowaniu cyfrowym. Prawdopodobnie byłoby to łatwe dla faceta, który zaprojektował procesor, aby zaprogramować go w asemblerze, a nawet w C, ale programista asemblera nie będzie w stanie zaprojektować procesora.
Na ścieżce uczenia się nie staraj się rozwiązywać problemu, który wydaje się być łatwym problemem z istniejącą wiedzą z oprogramowania. Jednym z klasycznych przykładów jest „pętla for”. Chociaż możesz napisać pętlę for w powiedzmy verilog - służy ona innym celom. Jest używany głównie do generowania kodu. Może to być również pętla for, jak widzą to twórcy oprogramowania, ale nie przydaje się do niczego poza symulacją (tzn. Nie będziesz w stanie zaprogramować FPGA w ten sposób).
Więc dla każdego zadania, które chcesz wykonać, nie myśl, że wiesz, jak to zrobić, zamiast tego przeprowadź badania - sprawdź książki, przykłady, zapytaj bardziej doświadczonych ludzi itp.
Naucz się sprzętu i języka HDL
Najpopularniejsze języki HDL to Verilog i VHDL. Istnieją również specyficzne dla dostawców, takie jak AHDL (Altera HDL). Ponieważ te języki są używane do opisywania komponentów sprzętowych, wszystkie są używane do wyrażenia tego samego w podobny sposób, ale z inną składnią.
Niektórzy ludzie zalecają naukę Verilog, ponieważ wygląda jak C. Tak, jego składnia jest mieszanką C i Ady, ale nie ułatwia to programistom odchylenia się. Myślę, że może nawet pogorszyć sytuację, ponieważ pojawi się pokusa, aby napisać C w Verilog. To dobry przepis na bardzo zły czas.
Mając to na uwadze, polecam wpatrywać się w VHDL. Chociaż Verilog jest również OK, o ile uwzględniono powyższe.
Należy pamiętać, że musisz zrozumieć, co wyrażasz w tym języku. Jaki rodzaj sprzętu jest „opisywany” i jak działa.
Z tego powodu polecam zaopatrzyć się w ogólnie książkę o elektronice i dobrą książkę taką jak ta - HDL Chip Design (inaczej niebieska książka).
Zdobądź symulator
Zanim zaczniesz cokolwiek robić w sprzęcie i korzystać z funkcji specyficznych dla Dostawcy itp., Zdobądź symulator. Zaczynałem od Verilog i użyłem Icarus Verilog wraz z GTK Wave. To są bezpłatne projekty typu open source. Prześledź przykłady, które widzisz w książkach, ćwicz, projektując własne obwody, aby poczuć smak tego.
Zdobądź tablicę programistyczną
Jeśli masz ochotę iść naprzód, zdobądź tablicę rozwoju. Jeśli wiesz, że twój pracodawca chce iść z Kratownicą, zdobądź tablicę Kratownic.
Metody programowania są bardzo podobne, ale istnieją różne szczegóły. Na przykład różne narzędzia, różne opcje, różne interfejsy. Zazwyczaj, jeśli masz doświadczenie z jednym dostawcą, zmiana nie jest trudna. Ale prawdopodobnie chcesz uniknąć tej dodatkowej krzywej uczenia się.
Dopilnuję również, aby płyta zawierała elementy, których planujesz użyć lub które można rozszerzyć. Na przykład, jeśli chcesz zaprojektować urządzenie sieciowe, takie jak router, upewnij się, że płyta ma Ethernet PHY lub że można ją przedłużyć, powiedzmy, złącze HSMC itp.
Tablice zwykle zawierają dobre odniesienia, instrukcję obsługi i przykłady projektowania. Przestudiuj je.
Czytać książki
Będziesz musiał czytać książki. W moim przypadku nie miałem przyjaciół, którzy znaliby projektowanie cyfrowe, a ta strona nie była zbyt pomocna z powodu jednej prostej rzeczy - nawet nie wiedziałam, jak sformułować moje pytanie. Wszystko, co mogłem wymyślić, to „Uhm, chłopaki, jest coś dcfifo i słyszałem coś o wyzwaniach przekraczania domen zegarowych, co to jest i dlaczego mój projekt nie działa?”.
Osobiście zacząłem od tych:
Dostawcy FPGA mają wiele książek kucharskich z najlepszymi praktykami. Przestudiuj je wraz z projektami referencyjnymi. Tutaj przykład z Altera.
Wróć z bardziej szczegółowymi pytaniami
Przeglądając książki, symulując projekt, mrugając diodami LED na tablicy programistycznej, najprawdopodobniej będziesz mieć wiele pytań. Upewnij się, że nie widzisz odpowiedzi na te na następnej stronie książki lub w Internecie (tj. Na forum poświęconym konkretnej sieci) przed zapytaniem ich tutaj.