VHDL vs. Verilog

W dniu 2013-08-21 17:20, snipped-for-privacy@gmail.com pisze:

Jak pisałem możesz użyć rzutowania jawnego. A w VHDL masz do tego jakieś z d. wyjęte biblioteki które mogą być albo i nie być w konkretnej instalce.

Tia, tylko że w każdej książce autor podaje inne biblioteki. Każdą po kolei próbujesz, a taki np. Webpack ich nie ma. Jak już coś sobie sklecisz to nie masz pewności czy przy kolejnej wersji Webpacka zadziała prawidłowo konwersja projektu do nowszej wersji. I słusznie wspomniałeś o Fortranie. VHDL jest w tej chwili na etapie Fortranu z 77 r.

Reply to
Mario
Loading thread data ...

Kolega miał zapewne co innego na myśli pisząc o poziomie abstrakcji (ja zresztą też). Dajmy na to taki kod w języku C:

a=b+c; d=a+e;

A teraz te same 2 linijki w odwrotnej kolejności:

d=a+e; a=b+c;

Zgodzisz się, że wynik w zmiennej "d" w obu przypadkach może być różny. W VHDL'u nie ma znaczenia kolejność zapisu. Kolejne linijki kodu opisują operacje na sygnałach i "połączenia" między sygnałami. Stąd:

1) a<=b+c; d<=a+e;

2) d<=a+e; a<=b+c;

to jeden i ten sam pieron!

Reply to
stchebel

W dniu środa, 21 sierpnia 2013 17:32:29 UTC+2 użytkownik Mario napisał:

Podaj konkretny przykład, podyskutujemy..

Reply to
stchebel

Nie jest. Polemizuje z twoja opinią jakoby było to proste. W językach opisu sprzętu nic nie jest proste zaczynając od dodawania ...

... to pracujesz na architekturze i języku który doskonale definiuje co to jest dodawanie. W sprzęcie zazwyczaj nie definiujesz tego w sposób uniwersalny bo tam są czasem zagadnienia typu "jak dodać 3 druty w 2C do

4 drutów Unsigned, przy czym wiadomo że mam 3 cykle zegara a w dodaku na wyjściu może być mały hazard bo i tak mam zatrzask". Porownanie do języków typu Pascal jest zwodnicze. To nie dziala tak samo mimo podobnych składni.
Reply to
Sebastian Biały

Przesadzasz z upraszczaniem. Ma znaczenie i nie ma. To że sygnały są w rzeczywistości przypisywane na suspendzie procesu nijak nie oznacza że kolejność jest bez znaczenia - tam masz subtelne opóźnienie symulowane w postaci cyklów delta i nie da się go zapisać tak prostym zdaniem, szczególnie jeśli dotyczy ono np. dwóch procesów wzajemnie czułych na zmiany.

Nic gorszego nie może spotkać człowieka jak nadmierne upraszczanie HDLowych zapisów. Że wspomnę choćby Veriloga z jego zapisem "blokujacym" i "nieblokujacym" na którym nie jeden doktorat zrobiono.

Reply to
Sebastian Biały

W dniu 2013-08-21 17:40, snipped-for-privacy@gmail.com pisze:

Problem trochę stary więc szczegółów nie pamiętam. Walczyłem z konwersją vector > uint i w drugą stronę. Funkcje do konwersji siedzą w dwóch różnych bibliotekach: arith i numeric. I nie wiem czemu są to całkiem różne funkcje. Bibliotyeki nawzajem się wykluczają. Numeric jest zalecana jako nowsza. Jednak żaden książkowy przykład z numeric nie udało mi się skompilować w ISE. W końcu zrobiłem to jakoś na arith. Ale pozostało mi wrażenie, że jak robią taki sformalizowany język ze sztywnym typowaniem, to kretyństwem jest robić chaos w czymś tak podstawowym jak konwersja typów.

Reply to
Mario

numeric jest zgodny ze standardem IEEE, arith to de-facto standard Synopsysa. Osobiście nie mialem problemu z używaniem numeric pod ISE.

A tak poza tym, ISE już jest teraz ledwo wspierane, Xilinx promuje Vivado.

Reply to
Grzegorz Jablonski

Wielkie dzięki, o takie coś właśnie mi chodziło.

Reply to
Jakub Rakus

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.