Co skłoniłoby mnie do wybrania Verilog lub VHDL zamiast schematu na CPLD lub FPGA?

13

Nie mam absolutnie żadnego doświadczenia w programowaniu logiki, używam głównie mikrokontrolerów w swoich projektach, ale ostatnio musiałem pracować z wideo, a mikrokontroler jest po prostu zbyt wolny dla tego, czego potrzebowałem, więc zacząłem grać z CPLD.

Udało mi się uzyskać dobre wyniki z CPLD tylko przy użyciu schematu, ale podczas wyszukiwania informacji na temat CPLD natrafiłem na wiele przykładów przy użyciu VHDL i Verilog. Jestem ciekawy, co może skłonić mnie do zdefiniowania urządzenia w jednym z tych języków. Co mogą zrobić, czego nie potrafi schematyczny projekt? Czy są używane głównie do funkcji?

Do tej pory używałem tylko CPLD, czy projekty FPGA korzystają bardziej niż CPLD z używania tych języków?

Bruno Ferreira
źródło
1
Prawdopodobnie znajdziesz narzędzia do syntezy dostarczone przez dostawców dla Verilog i VHDL dla części głównego nurtu. Dlatego wybór jest wyłącznie opinią. Zachęcam do spojrzenia na jedno z nich i podjęcia decyzji, które wolisz. Xilinx zapewnia dobre przykłady w obu językach, podejrzewam, że robią to także inni dostawcy.
David
3
Zdecydowanie powinieneś odejść od przechwytywania schematów w projektowaniu logiki. Na początku wydaje się to łatwiejsze, ale to iluzoryczne. Moje 0,02 USD na języki: VHDL to obrzydliwość, użyj Verilog.
markt
@markt, dlaczego uważasz, że VHDL jest taki zły?
stanri
2
Równie dobrze można powiedzieć, że Verilog jest obrzydliwością, użyj VHDL. VHDL oczekuje, że powiesz dokładnie to, czego chcesz, podczas gdy Verilog zgaduje. Ale to tylko moje 0,02 £.
Brian Drummond
1
@markt, zacząłem od VHDL, więc w pewnym momencie doceniłem jego silną maszynowość. Zmusiło mnie to do myślenia o tym, czego chciałem i do tworzenia dobrych nawyków, kiedy zaczynałem. Teraz jestem zbyt daleko od obozu SystemVerilog, żeby za bardzo się tym przejmować, szczerze mówiąc.
stanri

Odpowiedzi:

14

Schematyczny projekt jest użyteczny tylko wtedy, gdy łączysz tylko kilka gotowych modułów (liczniki, sumatory, pamięć itp.). Ale wdrożenie rzeczywistego algorytmu (powiedzmy, algorytmu haszującego kryptografię) jest prawie niemożliwe bez HDL (takiego jak VHDL lub Verilog), ponieważ nie ma sposobu, aby opisać system na poziomie behawioralnym za pomocą symboli schematycznych.

Większość projektów jest wykonywana w stylu HDL w stylu behawioralnym, ponieważ są zbyt złożone, aby można je było zsyntetyzować ręcznie i narysować schematycznie za pomocą prymitywów logicznych.

CPLD są zwykle używane do logiki kleju, a mniej do przetwarzania, i ogólnie logikę można łatwo zaimplementować schematycznie, więc myślę, że masz rację, gdy sugerujesz, że projekty oparte na FPGA odnoszą większe korzyści z używania HDL.

Jay Carlson
źródło
Możesz robić bardzo złożone rzeczy w symbolicznym systemie schematycznym. Chciałbym powiedzieć, że wszystko, co można zrobić w HDL, można zaimplementować w systemie opartym na schemacie, choć kosztem utrzymania. Dopóki zestaw narzędzi może definiować bloki symboli, które działają jak pojedynczy symbol, możesz robić prawie wszystko.
Connor Wolf
1
Dobrym przykładem jest tutaj labview. To symboliczny interfejs programistyczny, w którym ludzie zaprojektowali bardzo złożone systemy automatyzujące całe fabryki. Wynik końcowy jest prawie niemożliwy do utrzymania , ale jest możliwy (uwaga: nie mówię, czy to dobry pomysł, tylko podstawowa rentowność).
Connor Wolf
„Większość projektów jest wykonywana w stylu HDL w stylu behawioralnym ...” jest nieobsługiwana i w rzeczywistości NIE działa przepływ projektów.
symbol zastępczy
@ConnorWolf Nie mogę się zgodzić, że kod Labview jest niemożliwy do utrzymania - nie dlatego, że jestem wielkim fanem. Istnieje kilka najlepszych praktyk, które naprawdę pomagają. Dla mnie to zazwyczaj rezygnacja z jakiejkolwiek nadziei na kompatybilność do przodu lub wstecz, która powoduje problemy z utrzymaniem, w przeciwieństwie do wszystkiego, co jest związane z językiem G;)
Scott Seidman
4

Kilka praktycznych aspektów oprócz doskonałej odpowiedzi Jaya:

  • Błędy. Narzędzia schematyczne wydają się być bardziej błędne * niż reszta zestawu narzędzi. Prawdopodobnie wynika to z preferencji Verilog / VHDL nad schematami w branży, dlatego twórcy oprogramowania poświęcają mniej uwagi programistom.
  • Prędkość. Schemat należy najpierw przekonwertować na HDL przed przekazaniem go do narzędzia do syntezy. Może to mieć negatywny wpływ na czas kompilacji. Wygenerowany HDL może również nie być bardzo czytelny, jeśli z jakiegoś powodu musisz go sprawdzić.
  • Ruchliwość. W zależności od liczby użytych prymitywów specyficznych dla dostawcy Verilog i VHDL są mniej więcej przenośne między urządzeniami. Schematy przenoszenia musisz przerysować wszystko lub polegać na dostarczonych możliwościach importu / eksportu (jeśli istnieją).

* Moim ulubionym błędem w Xilinx ISE była niemożność wyboru drutów pionowych.

wailashi
źródło
2

HDLew HDL (Hardware Description Languages) jako standard Design Entry ma wiele zalet.

Opis funkcjonalności może być na wyższym poziomie, projekty oparte na HDL można zsyntetyzować w opis wybranej technologii na poziomie bramki, Projekt HDL jest łatwiejszy do zrozumienia niż lista sieci na poziomie bramki lub opis schematyczny i HDL zmniejszyć liczbę błędów dzięki silnemu sprawdzaniu typu.

Języki opisu sprzętu VHDL i Verilog zostały zaprojektowane do modelowania sprzętu z zamiarem modelowania na wyższym poziomie abstrakcji, który obejmuje takie funkcje, jak współbieżność, synchronizacja, hierarchia, ponowne użycie komponentów, zachowanie stanu, zachowanie synchroniczne, zachowanie asynchroniczne, synchronizacja i nieodłączna równoległość .

Podczas syntezy pojawiają się problemy, które odwzorowują opis projektu na konkretny proces i implementację bramki. Wymaga to, abyś nie mógł korzystać z funkcji wysokiego poziomu HDL - musisz stworzyć „syntezowalny Verilog / VHDL”

Masz HDL do syntezy i HDL do symulacji, a podzbiór, który można syntetyzować, jest specyficzny dla narzędzia.

Nie można przejść z opisu projektu behawioralnego do listy / układu sieci. Ale możesz tak skonstruować swój projekt, aby zawierał komponenty behawioralne, które mają również aspekt syntezowalny, który można porównać ze sobą. Zaczynasz od działania behawioralnego, a następnie, gdy już działa, przepisujesz go do syntezy (która jest podzbiorem). Po drodze przechodzisz od generała do konkretnego i budujesz stanowiska testowe.

symbol zastępczy
źródło
1

Kolejną zaletą jest to, że HDL mają te same zalety, co zwykłe języki programowania, ponieważ mogą być używane w standardowych systemach kontroli wersji, różniących się do badania zmian itp.

mhz
źródło
0

Oprócz tego, co już powiedziano: reprezentacja tekstu jest po prostu łatwiejsza do zarządzania, szczególnie w dużych projektach. Możesz (choć z ogromnymi trudnościami) przekonwertować dowolny syntezowalny HDL na schemat, ale z setkami wierszy zwykłego tekstu łatwiej jest pracować niż z setkami elementów schematu.

Valplo
źródło