[VHDL] Pierwsze kroki, jaki symulator VHDL-2008 dla Linuksa (lub niekoniecznie)?

Hej,

Przymierzając się do zabawy z CPLD zacząłem uczyć się VHDLa z książki "The Designer's Guide To VHDL" (trzecia edycja).

W ćwiczeniach na końcu pierwszego rozdziału każą napisać "entity declaration and a behavioral architecture body" (polskie tłumaczenie, które przychodzi mi na myśl, brzmi idiotycznie) prostego multipleksera. Dwa wejścia ('a' i 'b'), sygnał wybierający ('sel') i wyjście 'z'. Wyjście ma przyjąć wartość wejścia 'b' dla sel=1 lub 'a' dla sel=0.

Napisałem:

#v+ entity mux2 is port (a, b, sel: in bit; z: out bit); end entity mux2;

architecture mux2_behav of mux2 is begin mux2: process is begin if sel then z <= b after 5ns; else z <= a after 5ns; end if; end process mux2; end architecture mux2_behav; #v-

i jest problem, bo teraz chcę to zasymulować.

Debianowe apt-cache znajduje mi m.in.:

fauhdlc - experimental VHDL compiler and interpreter freehdl - VHDL simulator for Linux

gvhdl (frontend do freehdl) niestety twierdzi, że:

#v+ $ gvhdl ch1-10.vhdl gvhdl: FreeHDL root path is '/usr'. gvhdl: executing '/usr/bin/freehdl-v2cc -m ch1-10._main_.cc -L /usr/share/freehdl/lib -o ch1-10.cc ch1-10.vhdl' ch1-10.vhdl: in mux2(mux2_behav): ch1-10.vhdl:7: sel does not match required type BOOLEAN, its type could be: /usr/share/freehdl/lib/std/standard.vhdl:6: BIT v2cc: ch1-10.vhdl: 1 errors gvhdl: Compilation failed! Died at /usr/bin/gvhdl line 211. #v-

fauhdlc nie rozpoznaje symbolu 5ns:

#v+ $ fauhdlc ch1-10.vhdl ERROR> ch1-10.vhdl:8: Symbol '5ns' undefined. ERROR> ch1-10.vhdl:10: Symbol '5ns' undefined. #v-

a po wykomentowaniu go twierdzi mniej więcej to samo, co freehdl:

#v+ $ fauhdlc ch1-10.vhdl ERROR> ch1-10.vhdl:7: Type error for <sel>. #v-

Rozumiem że nie pasuje im "if sel then", bo sel jest typu 'bit', a nie boolean.

Stąd pytania:

  1. Czy robię coś nie tak? Czy nie można w ten sposób porównywać bitów, lub można tylko od określonej wersji języka (np. 2008)? Książka twierdzi, że można, zresztą przykłady z niej wykładają się w analogiczny sposób.

  1. Nie wiem, czy te dwa symulatory w ogóle obsługują VHDL-2008. Próbowałem zrobić komentarz /* ... */, a nie --, bo to podobno cecha VHDL-2008 (poniżej można tylko --). Nie rozpoznały, wyłożyły się na tym. Nie widzę też nigdzie opcji wyboru wersji języka.

  2. Jaki symulator polecacie? Niekoniecznie dla Linuksa, choć to byłoby duże ułatwienie. Chodzi o naukę, ale ukierunkowaną na to, żeby prędzej czy później stworzyć model, który da się zsyntetyzować do postaci, którą da się wrzucić do CPLD.
Reply to
Adam Wysocki
Loading thread data ...

Ogolnie nie ma darmowych w takim sensie jak kompilatory software. Te co są, są żałosne.

Sprawdź jednak taką drogę przez mękę:

formatting link
Wiele narzędzi do projektowania FPGA zawiera jakieś symulatory więc szukaj tam, nie spodziewaj się jednak że znajdziesz tam wszystko za friko. W EDA nawet wersje demo mają imienną licencje.

Reply to
Sebastian Biały

W dniu środa, 7 marca 2018 23:46:27 UTC+1 użytkownik Adam Wysocki napisał:

[ciach]

  1. Wywal te książkę do hasioka.

  1. Wejdź na
    formatting link
    i zassaj sobie ISE-14.7. Darmowy Webpack, wersja pod Win i Linux, jak Ci pasuje. Jest to zintegrowane środowisko projektowe. Masz tam całkiem sensowny symulator iSim. Można się tam do paru rzeczy przyczepić, ale nie jest źle.
  2. W ISE jest też taka podpowiadaczka językowa. Podstawy powinieneś intuicyjnie załapać. Poza tym w sieci jest od cholery tutoriali.
  3. Multiplekser napisz najpierw w wersji syntezowalnej: entity mux is Port ( A : in STD_LOGIC; B : in STD_LOGIC; SEL : in STD_LOGIC; Q : out STD_LOGIC); end mux;

architecture Behavioral of mux is

begin process(A,B,SEL) begin case SEL is when '0' => Q<=A; when '1' => Q<=B; when others => null; end case;

end process;

end Behavioral;

Prawda że intuicyjne?

  1. Potem napisz sobie testbencha. Jak czegoś nie będziesz wiedział, to pytaj tutaj.
Reply to
stchebel

BZDURA !!

Gdzie tu widzisz "mękę"? Minusem istotnie jest brak "analogowego", tzn. graficznego obrazowanie szyny, ot takiego graficznego, "oscyloskopowego" wyświetlania zawartości szyny.

Darmowy Webpack Xilinx'a wystarcza do naprawdę bardzo rozbudowanych projektów. W darmówce są ograniczenia co do układów z najwyższej półki i "wyuzdanych" IP.

Jakie EDA?

Reply to
stchebel

On 3/9/2018 2:41 PM, snipped-for-privacy@gmail.com wrote: >> Ogolnie nie ma darmowych w takim sensie jak kompilatory software. Te co >> są, są żałosne. > BZDURA !! Wszystkie kompilatory/symulatory HDL dostępne w srodowiskach "darmowych" posiadają solidne ograniczenia: od rozmiaru, przez dostepne peryferia po szybkośc symulacji i zakres stosowanych standardów języka. Nie istnieje nic darmowego i pełnego (jak clang/gcc w software) co nadąża za standardem języków HDL, dostajesz bardziej coś na kształt wersji demo. Prawda tez taka że za standardem SystemVeriloga nikt nie nadąża bo robiony po pijaku ale przynajmniej komercyjni się starają kiedy świat free software nie jest w stanie zrobić sensownego parsera średniowiecznych wersji VHDLa czy Veriloga.

Reply to
Sebastian Biały

A ghdl? Ktoś mi polecił, ale nadal nie mogę zmusić go do działania (tzn. coś odpala, chyba nie to, co chcę, i wisi ze 100% użycia CPU).

formatting link

Na pierwszy rzut oka wydaje się kobylaste... ale jak trzeba, to trzeba.

Toole Xilinxa bardzo różnią się od tooli Lattice?

Jeszcze sobie to zgrałem na czytnik (jeszcze nie czytałem):

formatting link

Pytanie ile to "nie-friko". Czy da się kupić układ CPLD i po prostu go skonfigurować jakimiś darmowymi narzędziami, czy można o tym zapomnieć?

Reply to
Adam Wysocki

Pytanie czy to demo nie wystarczy do amatorskich zastosowań...

A ja miałem cichą nadzieję, że odpalę to na swoim raspi... ghdl nie chciał się skompilować, bo z jakiegoś powodu ma jakieś wstawki assemblerowe, ale na x86 poszedł.

Reply to
Adam Wysocki

Ludzie ją polecali... z drugiej strony po pierwszym rozdziale mam wrażenie, że zbytnio komplikuje proste sprawy. Ale może tak musi.

Jest jakaś książka albo tutorial, które polecasz do nauki zamiast tej?

2 GB... straszna kobyła... naprawdę nie ma nic mniejszego?

Tak... trochę inaczej, niż w książce, ale intuicyjne. W sensie rozumiem, co tu jest napisane, ale chyba jeszcze nie napisałbym tego od podstaw.

Na razie mam problem z odpaleniem testbencha w ghdlu... mam wrażenie, że odpala się nie to, co bym chciał. Pisałem o tym na comp.lang.vhdl:

formatting link

Reply to
Adam Wysocki

Wystarczy, ale jak mówie to droga przez mekę. Szczególnie dla osób przyzwyczajonych do rynku software gdzie można znaleźć dobre kompilatory w paczkach z repo i nikt nie robi łaski z jakąs licencją i dziesiątkami gigabajtów bloatdata.

Reply to
Sebastian Biały

Nie ma Veriloga, nie ma mixed. Jestes ograniczony do VHDLa i jego starej wersji. Do hello gate się nadaje, ale jak przyjdzie ochota korzystania z gotowca to okaże się że ten co chcesz napisali w Verilogu i dupa.

Możesz obejrzec jeszcze Verilator:

formatting link
i Icarus:

formatting link
Wszystkie one maja się nijak do komercyjnych symulatorów z uwagi na brak wsparcia nowych konstrukcji i brak cholerne ważnych i poważnych ficzerów (jak asercje np).

Prawde mówić nie wiem co miało by być dla Ciebie istotne, ale wiem co jest istotne ogólnie: wybierasz taki jaki masz hardware docelowy. I tyle wolnego wyboru.

Nie ma górnego pulapu dla zastosowan komercyjnych, dodatkowo licencje są czasowe. Spodziewaj się kilku tyś $ za rok na jedno stanowisko za porzadny symulator (synteze kupujesz osobno, i jeszcze kilka innych tooli, razem wychodzi za dużo żeby to sobie wyobrazić).

Można. Ale nie spodziewaj się czegokolwiek, budowa wewnatrzna jest niejawna i każda nowa rodzina, ba, pojedyncza kostka to hacking i reverse engeneering. Nie masz szans na to aby kiedykowiek jakiś open source zrobił poprawna syntezę i place&route generując poprawny bitstream poza pojedynczymi glitchami jak ten:

formatting link
Zerknij ogolnie tutaj:

formatting link

Reply to
Sebastian Biały

Tak na marginesie co chwile ktos wpada na taki pomysł:

formatting link
i kilka innych

Ponieważ komercyjne symulatory sa absurdalnie drogie to prawdopodobnie wypożyczanie ich na chwilę bedzie miało jakiś stabilny udział w rynku.

Reply to
Sebastian Biały

Ponieważ zaraz się ktoś pewno przyczepi, to może wyjasnie chodzi o to że od nastu lat nic się nie zmieniło. Trial, demo, evaluation itd itp.

Reply to
Sebastian Biały

W dniu piątek, 9 marca 2018 23:24:38 UTC+1 użytkownik Sebastian Biały napisał:

Symulator w ISE nie ma żadnych ograniczeń co do rozmiaru projektu. Ograniczenia dostępnych peryferiów? Jakich?! Szybkość symulacji behavioral jest błyskawiczna przy projektach zajmujących prawie całość zasobów kostki ( w moim przypadku najczęściej XC6SLX45-3FGG384). Czas symulacji istotnie wydłuża się przy symulacji Post-Route, co jest oczywiste, ale tak samo jest w wersji płatnej. Różnica pomiędzy wersją płatną, a darmową to TYLKO ograniczenia co do dostępnych kostek i niektórych IP. Tak czy inaczej nie jest to absolutnie nic na kształt demo.

Nie korzystam z free software, ale nie chce mi się wierzyć żeby w sofcie free nawet parser nie działał..

No to zdecyduj się.. Free software "do dupy", komercyjny za duży, czyli co jest dobre?

No weź mnie nie rozśmieszaj!! Masz kompletnie pokrzywioną hierarchię wartości!! Zasobożerność, to właśnie nie jest ŻADEN problem. Jak potrzebujesz przewozić meble, to kupujesz ciężarówkę, a nie robisz tego osobówką. W przypadku EDA, dokupujesz za parę stówek trochę pamięci, odpowiednio duży dysk i po zawodach.. Natomiast brak wyświetlania "analogowego" szyny, powoduje że musisz na piechotę odczytywać kolejne dane i robić wykresik coby zobaczyć czy sinus jest istotnie sinusem..

A po cholerę Adamowi do nauki więcej?

Reply to
stchebel

W dniu poniedziałek, 12 marca 2018 12:07:51 UTC+1 użytkownik Adam Wysocki napisał:

Ja będąc na Twoim etapie zakupiłem takie coś:

formatting link
ążka jest całkiem nieźle napisana, ale właśnie pierwsze rozdziały też wprowadziły mi trochę mętliku we łbie. Oczywiście "podstawowe podstawy" musisz załapać z jakiejś literatury, ale najwięcej nauczysz się na przykładach. Licznik, multiplekser, dekoder i tego typu cheble... Np. wpisujesz w googlarce "vhdl counter" itp.. W ISE XILINX'a masz też zgrabną podpowiadaczkę do syntezy i symulacji. Krótko, zwięźle i na temat.

Cóż to w dzisiejszych czasach 2GB? Jest za to bardzo przejrzyste i szlag Cię nie trafia jak chcesz uzyskać zamierzony efekt. Właśnie dlatego uważam, że idealne zarówno do nauki jak i dalej do profesjonalnej roboty.

Nie od razu Kraków zbudowano..

Więc skorzystaj z ISE.

John dobrze radzi !!

Reply to
stchebel

Nie wiem akurat co ise ogranicza, ale inni ograniczali ficzery języka (asercje, nowe standardy itp) oraz dostęp do niektórych co bardziej interesujacych IP (jak np. brak gotowca DDR3[1] itd).

Dokładnie o tym piszę.

Nie mam ochoty wykłucać się o definicje co rozumiem przez demo w software/hardware.

Nie dziala poprawnie nawet w komercyjnych symulatorach ale tam komuś chce się przegladać te tysiące stron standardu w poszukiwaniu cienia sensu i szansy na naprawę. W przypadku free wszyscy zatrzymali się 20 lat temu i stoi. Tak, da się kompilować helloworldy, ale cieżkie rzeczy nie przejdą. Ciezkie czyli asercje, obiektowość, debugging, ip cory, modele zewnetrzne, mixed, analog itd itp. Nie ma freeware majace te elementy. Zazwyczaj znajdzie się coś z gatunku "potrafimy troche parsować i troche symulowac Veriloga z przed 10 lat, huraaa!".

Sytuacja podobna jak z C++ - nie ma ani jednego pełnego kompilatora tego języka, choć wszystkie potrafią 98%. Róznica taka że w hardware tak mają za grube tysiące a w software tak mają za 0.

Nie ma takiego co jest dobre. Na rynku hardware albo męczysz się jako hobbysta z ograniczeniami albo męczysz się jako klient dużej korpo z bugami softu, może tylko lżej, bo jest na kogo pokrzyczeć.

Nie, po prostu potrzebujesz analog view. A ja potrzebuje asercji, odpalania zdalnego na farmie weryfikacyjnej, raportowania regresji itd itp.

Dla edukacji zasadniczy. Odpalenie kompilatora, symulatora itd. powinno zając sekundy. Zajmuje więcej bo srodowisko jest za grube. Większośc malych projektów programista HDL przesiaduje przed ekranem gapiąc się w coraz to głupsze komunikaty i czekając na wynik i zastanawiając się czemu symulacja dwóch bramek wymaga odpalania sie przez 10 sek jakiś zdumiewająco verbose narzedzi diabli wiedza do czego.

To nic nie pomaga, aplikacje do HW są cieżkie nawet dla bardzo nowoczesnych komputerów. Jest inna sprawą że w tej branzy znajdziesz idiotów pracujących na *certyfikowanych* redhatach 3.0 i spodziewających się ze ich soft za $x000 bedzie tam banglał. Ale nawet jak możesz kupić wypasiony komputer to czasy symulacji, kompilacji, ładowania, analizy itd liczone sa w *tygodniach* na projekt dla jednego eventu. Taki Linux na symulowanym niskopoziomowo CPU potrafi wstawać kilka dni. Wiec pojęcie "troche stówek na pamięć i dysk" może być niedoszacowaniem. Dla hobbysty może wystraczyć choć jak wczęsniej programował w językach programowania software to pewno rzuci monitorem o scianę.

Do tego sa inne techniki niż gapienie sie w ekran, nawet z wykresem analogowym, ponieważ wieki temu dowiedziono że gapienie sie w ekran bywa obarczone czynnikiem ludzkim.

No wlasnie, po cholere mu więcej jak wystraczył by kompilator i symulator? A tu dostaje miliard Ip corów, bloat ware i niepojęta ilość kodu w dllkach której nie potrzebuje.

To tylko narzekanie. Prawda jest taka ze nie ma wyboru, to hermetyczny rynek i trzeba brać co jest.

[1] Nie wiem czy to anegdota podkuta prawdą czy nie, ale jedna z firm produkujaca płytki dla hobbystów dodała kontroler DDR3 i pamięć po czym okazało sie ze hobbystyczna wersja syntezera go nie obsługuje. Płytki mimo to się sprzedawały. Wiele lat mineło i nie pamiętam kto to był. Wot, ciekawostka.
Reply to
Sebastian Biały

Tu masz rewelacyjnie napisaną książkę:

formatting link

Reply to
stchebel

Pozwolę się wtrącić nieśmiało. Jak rozumiem zaczynasz naukę i potrzebujesz prostych i tanich narzędzi do zrobienia niewielkiego projektu. Zaraz mnie zakrzyczą za wykopaliska ale rzuć okiem na Max+Plus Altery i Quartus

formatting link
Do tego proste MAX3000 (EPM3064) i można zaczynać zabawę. Max+Plus był naprawdę intuicyjnym programem, mozna było narysować schemat, przypisać nogi i gotowe :) No może ciut bardziej skomplikowane ale znajac angielski sobie poradzisz z przekopaniem manuala. Quartusa nie znam bo nie miałem potrzeby dalej tego ciągnąć. W porównaniu do tego co proponują koledzy to jest jak kosa do dywizji pancernej :) Wojtek

Reply to
wowa

W dniu czwartek, 15 marca 2018 20:29:24 UTC+1 użytkownik wowa napisał:

Zakrzyczeć to można Altere za spapraną stronę. Nie da się zassać tego softu. Z ciekawości chciałem spróbować, ale niestety...

Reply to
stchebel

Dnia Thu, 15 Mar 2018 20:28:57 +0100, wowa napisał(a):

Do zabawy ze starymi CPLD moze i dobre, ale jako kolega sie chcial VHDL nauczyc ...

J.

Reply to
J.F.

No to jak nie wiesz co ISE ogranicza, to po co gadasz że wszystkie darmówki są do bani. Piszesz, że inni coś ograniczali.. Ja Adamowi nie proponuję "innych". Jakoś "innie" argumentujesz.. Jak "inny"..

Niedokładnie !!

Ojapierdole!! A tymczasem komóry działają, kompy też.. Chyba jesteś zwolennikiem teorii, że bąk nie może latać, bo ma zbyt małe skrzydła w stosunku do swojej masy. No ale bąk o tym nie wie, więc lata :). Podobnież jest ze mną. Przepuszczam swoje projekty przez symulator nie wiedząc że jest on do bani. Dzięki owej niewiedzy urządzenia działają zgodnie z założeniem i wynikiem symulacji.

No to masz pole do popisu!!

Zmień zawód.

Nawet nie wiem co to jest farma weryfikacyjna i raport regresji itd itp. Wiem, że 30 lat temu nie było takiej nowomowy i dzięki temu zakupiona wówczas mikrofalówka koreańska działa do dzisiaj. Żarówę ino wymieniałem 2 tygodnie temu (tę do oświetlenia wnętrza). A moja kobita kupiła se jakiegoś nowego gadżeta typu smartfon, czy ajfon, który zapewne przeszedł przez jakąś farmę. Efekt jest taki, że jak ktoś do niej dzwonił, a była w innym pokoju i mi krzyknęła "odbierz telefon", to niestety poddałem się. Sorry!! Nie umiem !! Kapujesz?!

Piepszysz głupoty. Parę sekund więcej w czasie odpalania + jakieś tam komunikaty, to problem ZASADNICZY? Weź przestań...

Adam chce się nauczyć HDL. O czym Ty zaś nawijasz? Jakiś nowatorski prom kosmiczny chcesz zrobić? Implementacja do FPGA/CPLD trwa trochę dłużej niż kompilacja softu pod CPU. Synteza, mapowanie do zasobów kostki, routing (topologia - matematyka), to trochę musi potrwać. Na moim lapku, XC6SLX45 z prawie pełnym wykorzystaniem zasobów BRAM+DSP+kupa slajsów trwa to jakieś 20 minut. Dla Adamowego multipleksera będzie to niecała minuta. Nie sprawdzałem, ale idę o zakład, że będzie to w tych okolicach.

Chętnie poznam ów dowód. Jak mnie przekona, to wypierdolę oscyloskop za okno.

Reply to
stchebel

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.