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?
vhdl
verilog
programmable-logic
Bruno Ferreira
źródło
źródło
Odpowiedzi:
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.
źródło
Kilka praktycznych aspektów oprócz doskonałej odpowiedzi Jaya:
* Moim ulubionym błędem w Xilinx ISE była niemożność wyboru drutów pionowych.
źródło
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.
źródło
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.
źródło
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.
źródło