VHDL czy Verilog ?

Jul 02, 2005 17 Replies

Witajcie,



Wkrótce kończy się sesja, i będę chciał poświęcić trochę czasu na naukę programowania układów FPGA (na początku prawdopodobnie będzie to xilinx spartan3). Nie wiem jednak, od jakigo języka opisu sprzętu zacząć. Sporo czytałem w Sieci, ale nie znalazłem żadnej wartościowej wskazówki. Z tego co wiem, pod uwagę warto brać VHDL'a i Verilog'a. Inne wydziwasy typu AHDL są przeznaczone tylko do jednego rodzaju kości, więc na początku już je odrzucam.



Oczywiście rozumiem, że jest to pytanie, na które nie ma jednoznacznej odpowiedzi, ale może ktoś z was byłby w stanie coś doradzić, zasugerować czy przedstawić jakiś fakty, które pomogą mi podjąć dobrą decyzję ?


IMHO jezyk VHDL jest bardziej popularny i czesciej wykorzystywany (w kazdym razie wsrod moich znajomych i w firmie, w ktorej pracuje). Znajac dobrze VHDLa chyba latwiej znajdziesz prace, niz z Verilogiem.

VHDL jest bardziej popularny w Polsce ...jak narazie bo co bedzie sie dzialo za jakis czas to trudno przewidziec, ale w USA duzo bardziej popularny jest Verilog.

Tomek

Ale pomijając popularność i przyszłość zawodową, czy te języki bardzo się różnią ? Czy któryś jest np. ewidentnie bardziej elastyczny, bardziej funkcjonalny, czy to "to samo, tylko troszkę inna składnia", jak (oczywiście *bardzo* upraszczając) różnica między Pascal'em a "C" ..

A co to ma za znaczenie? To s± tylko jêzyki s³u¿±ce do pisania specyfkacji -- jedne z wielu i do tego niezbyt wyszukane. Po prostu bierzesz sobie podrêcznik, czytasz go trzykrotnie od deski do deski, próbujesz sam napisaæ proste specyfikacje i uczysz siê na b³êdach. Je¶li znasz Adê, to zacznij od VHDL, a je¶li C, to od Verilogu.

Oba s± wzorowane na strukturalnych jêzykach imperatywnych, wiêc wielkich ró¿nic miêdzy nimi nie ma, a przynajmniej nie na poziomie paradygmatu. Ich g³ówna wada to praktycznie zupe³ny brak wsparcia dla programowania generycznego, przez co da siê w nich zapisaæ dowolny _konkretny_ system, ale ju¿ nie ca³± nieskoñczona rodzinê systemów parametryzowalnych, je¶li ta parametryzacja wykracza poza np. podanie szerokosci rejestru. Nie ma ¿adnej mo¿liwo¶ci opisywania systemów rekurencyjnych (sieci sortuj±ce, sieci rutuj±ce itd.) ani obliczania w czasie komplilacji skompikowanych wyra¿eñ na parametrach sta³ych (choæby niedawno potrzebnego komu¶ gcd). Je¶li u¿ywa³e¶ takich rzeczy w innych jêzykach programowania (a ja zrobi³em z programowania generycznego swoje g³ówne narzêdzie), to bêdziesz siê czu³ "cofniêty w rozwoju" o jak±¶ dekadê i z p³aczem rze¼bi³ przez d³ugie godziny systemy, które da³yby siê zapisaæ w kilkunastu liniach rekurencyjnej definicji.

Pozdrawiam Piotr Wyderski

bez przesady ....Pascal'a z C to nie ma co porownywac wogole :) a Verilog'a z VHDL'em tak

a co jest lepsze ...ciezko powiedziec :)

Dlaczego (pomijaj±c fakt, ¿e Pascal jest znacznie porz±dniej zaprojektowany, a C wygodniejsze przy du¿ej intensywno¶ci wykorzystywania "sztuczek")?

Skoro oba maj± siê dobrze, to obiektywna "lepszo¶æ" jest w ich przypadku niezdefiniowana. :-)

Pozdrawiam Piotr Wyderski

Jestem na etapie poznawania VHDL (w połowie pierwszej książki) i nie mam praktyki, ale słyszałem opinie że najlepiej zaczynać od VHDL. VHDL jest bardziej skomplikowany i ma niejednoznaczną składnie i w związku z tym poznanie następnych języków typu verilog czy innych jest znacznie łatwiejsze. I jeszcze słyszałem że VHDL najczęściej stosowany dla FPGA a verilog raczej dla ASIC. I w VHDL jest możliwość tworzenia testbench co pozwala na kompletne projektowanie w jednym języku bez ukierunkowania się na konkretnego producenta FPGA i jego narzędzi. Jak wcześniej mówiłem nie jestem specem w tej dziedzinie tak że mogę się mylić.

"framer":

/.../

to nie jest 'cala' prawda :) owszem, vhdl jest bardziej popularny [chyba dlatego, ze powstal pierwszy], obojetne, czy fpga, czy asic; faktem jest, ze skompilowany RTL, tzw. gatelevel jest prawie zawsze w verilog;

tu jest cos pomieszane, testbench to poprostu otoczenie [generator wymuszen] umozliwiajace symulacje, testbench pisze sie w verilogu calkiem latwo;

JA

"voices":

ja bym powiedzil tak - vhdl jest bardziel popularny i ew. pracodawca bedzie z wiekszym prawdopodobienstwem szukal kogos, kto zna ten jezyk; pod wzgledem mozliwosci oba jezyki sa bardzo podobne, o ile nie identyczne, bardzo watpie, czy jest cos co da sie napisac w jednym jezyku, a nie da sie w drugim [z podobnym nakladem pracy]; z punktu widzenia uzytkownika, moim zdaniem, bardziej przyjazny jest verilog, zwykle ten sam algorytm jest o polowe krotszy w porownaniu do vhdl; vhdl obsesyjnie sprawdza zgodnosc typow, z czego wynika koniecznosc konwersji typu co pare linijek, co najczesciej nie ma sensu, jesli programuje sie hardware, a nie robi sie ogolnego modelu ogolnosci; ale rozumiem, ze dla niektorych to moze byc zaleta, nie wada;

ja osobiscie bardzo lubie ahdl, ale faktycznie to tylko quartus i tylko altera;

JA

Odkad Borland sie zabral za obie, to sa bardzo dobrze do siebie porownywalne :-)

J.

Ojej, nie chodziło mi o porównywanie języków, tylko o to, że mają jakby wspólną ideę, że pascalowy begin to w c jest "{" - czyli chodziło mi o to, że to to samo, tylko inaczej składniowo zapisane.

Oczywiście przykład podałem ogólnie, to są zupełnie inne języki, są między nimi setki różnic. Chodziło mi o ogólne podobieństwo ..

A borlandów nie trawię, C++ to C++, ale nie widzę celowości nauki takich dziwactw jak Object Pascal. Ale to już dyskusja NTG ...

Nie jestem przekonany o popularnosci Verilog'a w USA, ale nie pracuje tam, wiec nie wiem. Jakis czas temu przeczytalem zupelnie przeciwna opinie. Niestety, nie powiem, który jezyk jest lepszy poniewaz sam uzywam tylko VHDL'a i verilog'a nie znam w ogóle. Wiec polecam Ci VHDL'a :)

Pozdrawiam

Jerzy Gbur

A mi chodzilo o to ze tych roznic bylo znacznie mniej. Glowna - brak formatu 'hex' w TP - jesli o mnie chodzi wystarczalo zeby zaczac program pisac w C :-)

A byl czas gdy to C bylo jezykiem niszowym :-)

J.

sa nawet automatyczne konwertery jednego jezyka na drugi.. sprawdzalem - dziala i sie kompiluje nawet:)

"Greg":

slyszalem, choc nigdy nie widzialem; dostepne w sieci ?

JA

tak chyba w 3 meijscach znalazlem.. wersja z ograniczeniami, ze nie da sie zapisac..

"Greg":

no to mi jeszcze tylko nazwy badz linka brakuje :) moze byc z ograniczeniami, chcialbym zobaczyc co to jest, do pracy mi niepotrzebne;

JA

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required