-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.pi.v.chmurka.n
et!not-for-mail
From: g...@s...invalid (Adam Wysocki)
Newsgroups: pl.misc.elektronika
Subject: [VHDL] Pierwsze kroki, jaki symulator VHDL-2008 dla Linuksa (lub
niekoniecznie)?
Date: Wed, 7 Mar 2018 22:46:24 +0000 (UTC)
Organization: news.chmurka.net
Message-ID: <p7pq40$9vr$1$gof@news.chmurka.net>
NNTP-Posting-Host: pi.v.chmurka.net
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 7 Mar 2018 22:46:24 +0000 (UTC)
Injection-Info: news.chmurka.net; posting-account="gof";
posting-host="pi.v.chmurka.net:172.24.44.20"; logging-data="10235";
mail-complaints-to="abuse-news.(at).chmurka.net"
User-Agent: tin/2.4.1-20161224 ("Daill") (UNIX) (Linux/4.4.50-v7+ (armv7l))
Cancel-Lock: sha1:aFgmrSvPb+7zkAEpvSWSrtkcWX0=
Xref: news-archive.icm.edu.pl pl.misc.elektronika:729981
[ ukryj nagłówki ]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.
2. 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.
3. 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.
--
[ Email: a@b a=grp b=chmurka.net ]
[ Web: http://www.chmurka.net/ ]
Następne wpisy z tego wątku
- 08.03.18 22:05 Sebastian Biały
- 08.03.18 22:56 s...@g...com
- 09.03.18 14:41 s...@g...com
- 09.03.18 23:24 Sebastian Biały
- 12.03.18 11:58 Adam Wysocki
- 12.03.18 12:00 Adam Wysocki
- 12.03.18 12:07 Adam Wysocki
- 12.03.18 20:21 Sebastian Biały
- 12.03.18 20:33 Sebastian Biały
- 12.03.18 20:43 Sebastian Biały
- 12.03.18 20:50 Sebastian Biały
- 13.03.18 16:35 s...@g...com
- 13.03.18 17:02 s...@g...com
- 13.03.18 22:15 Sebastian Biały
- 14.03.18 00:24 s...@g...com
Najnowsze wątki z tej grupy
- [newbie] Jaki multimetr za 2-4 stówy?
- szafka sieciowa
- Raspberry Pi 5 + dyski SATA
- lutownica na węgiel
- Znów czary (albo niewiedza) - tym razem fotowoltaika
- Chess
- Vitruvian Man - parts 7-11a
- przeźroczyste koszulki
- Re: Win 10/11 nie lubi OKI
- Programator czasowy TUYA.
- Dlaczego energia elektryczna jest droga i cały czas drożeje
- twardy dysk stuka
- Oclenie alkalicznych akumulatorów
- Powerbank jednonapieciowy, a trzynapieciowy
- Lustra w maszynie ASML
Najnowsze wątki
- 2024-05-09 Chess
- 2024-05-09 Vitruvian Man - parts 7-11a
- 2024-05-09 Drukara laserowa
- 2024-05-09 Chess
- 2024-05-09 sedzia Szmydt
- 2024-05-09 Chess
- 2024-05-09 [newbie] Jaki multimetr za 2-4 stówy?
- 2024-05-09 Chcą poł. tunelem Europę z Afryką - 27km za 6GEUR
- 2024-05-09 Gorzów Wielkopolski => Konsultant/Wdrożeniowiec Comarch ERP XL <=
- 2024-05-09 Kraków => Senior PHP Developer (Symfony) <=
- 2024-05-09 Vitruvian Man - parts 7-11a
- 2024-05-09 Vitruvian Man - parts 7-11a
- 2024-05-09 Chess
- 2024-05-09 Vitruvian Man - parts 7-11a
- 2024-05-09 szafka sieciowa