-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!border1.nntp.ams1.giganews.com!border2.nntp.ams1.giganews.com!nntp.gigane
ws.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neo
strada.pl!news.neostrada.pl.POSTED!not-for-mail
Subject: Re: Nauka programowania FPGA
Newsgroups: pl.misc.elektronika
References: <5a795eef$0$667$65785112@news.neostrada.pl>
<5a7b81dc$0$575$65785112@news.neostrada.pl>
<b...@g...com>
<5a7bf01b$0$574$65785112@news.neostrada.pl>
<c...@g...com>
From: Grzegorz Kurczyk <g...@c...usun.slupsk.pl>
Date: Thu, 8 Feb 2018 23:20:01 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
Thunderbird/52.6.0
MIME-Version: 1.0
In-Reply-To: <c...@g...com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: pl-PL
Content-Transfer-Encoding: 8bit
Lines: 112
Message-ID: <5a7ccd12$0$567$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 91.222.161.212
X-Trace: 1518128402 unt-rea-b-01.news.neostrada.pl 567 91.222.161.212:43649
X-Complaints-To: a...@n...neostrada.pl
Xref: news-archive.icm.edu.pl pl.misc.elektronika:729061
[ ukryj nagłówki ]W dniu 08.02.2018 o 22:10, s...@g...com pisze:
> W dniu czwartek, 8 lutego 2018 07:37:17 UTC+1 użytkownik Grzegorz Kurczyk napisał:
>> W dniu 08.02.2018 o 00:50, s...@g...com pisze:
>>
>>> Dobrze napisane! Jako przykład można podać taką sekwencję w C:
>>> a=1;
>>> b=2;
>>> c=a+b;
>>> Wiadomo, że powyższe może dać zupełnie inny wynik, jeżeli pomieszamy
kolejnościami instrukcji np. tak:
>>> c=a+b;
>>> b=2;
>>> a=1;
>>> Tymczasem w języku opisu sprzętu owa kolejność zapisu nie ma żadnego znaczenia.
>>>
>>
>>
>> A jeszcze lepszy numer, to różnica między zapisem w Verilogu:
>> b = a;
>> c = b;
>> d = c;
>>
>> a taką wersją:
>> b <= a;
>> c <= b;
>> d <= c;
>>
>> tego raczej nie sposób zrozumieć bez uświadomienia sobie, że "a", "b",
>> "c" i "d" to dwie sztuki UCY7474 ;-) czyli cztery przerzutniki wyzwalane
>> zboczem. W pierwszym przypadku syntezer i optymalizator może zwinąć te
>> cztery linijki kodu do jednego przerzutnika, a w drugim przypadku
>> dostaniemy czterobitowy rejestr przesuwny :-)
>>
>> Tej jawności zapisu zawsze mi brakowało w VHDL-u
>>
>> --
>> Pozdrawiam
>> Grzegorz
>
> ===============
>
> Sie zagalopowałeś.. Ten drugi przypadek a<=b itd.. istotnie sugeruje shift
register, no ale dla ścisłości należałoby to opisać jako proces z pewną listą
parametrów czułości. Skomplikowane?! Nie !! Precyzyjne!!
Aj tam zaraz zagalopowałem ;-) co najwyżej użyłem zbyt dużego skrótu
myślowego :-) Chodziło mi konkretnie o takie dwa przykłady:
module test1(
input clk,
input a,
output reg d
);
reg b, c;
always @(posedge clk) begin
b <= a;
c <= b;
d <= c;
end
wynik syntezy ftp://control.slupsk.pl/pub/fpga/test1.png
----------------------------------------------------
module test2(
input clk,
input a,
output reg d
);
reg b, c;
always @(posedge clk) begin
b = a;
c = b;
d = c;
end
wynik syntezy ftp://control.slupsk.pl/pub/fpga/test2.png
----------------------------------------------------
No i niestety chcąc nie chcąc daję się zaś prowokować do odwiecznej
dyskusji nt. języków programowania.. Abstrahując od faktu, że
VHDL/Verilog nie są językami programowania, twierdzę iż C powstał nie z
potrzeby, ale że się dało. Podobnież jak Verilog. Zdecydowanie lepszym
moim zdaniem odpowiednikiem C jest Pascal. VHDL powstał na bazie ADA.
Prosty, chyba pierwszy język programowania obiektowego. Idealnie
pasujący strukturalnie i behawioralnie do opisu i łatwej konstrukcji
syntezy elektroniki cyfrowej na dowolną platformę. Verilog jest
promowany, bo w zapisie podobny do C. I tak jak w latach 80'tych
pieprzono, że C jest językiem wyższego rzędu, optymalnym w sensie czasu
wykonania kodu wynikowego (bo krótki zapis jak w assemblerze) tak samo
się pierdoli głupoty odn. VHDL/Verilog. Synteza równań logicznych, to
"małe piwko". Synteza stanów maszynowych, to trochę więcej roboty, ale
są gotowe narzędzia zarówno pod Veriloga jak i pod VHDL. Więc w tym
temacie też nie ma o czym gadać.
>
> Jedni lubią blondynki, inni brunetki...
>
Wcale nie zamierzam nic prowokować. Jedni wolą ogórki, a drudzy
ogrodnika córki ;-) Każdy język ma swoje "walety" i "zady". Dużo pisałem
w Pascalu i pascalopodobnych. Borlandowskie kompilatory TurboPascala na
x86 dawały tak zwięzły kod wynikowy, że jak przeglądałem go pod
debbugerem, to w assemblerze nie dałoby się już zbyt wiele
zoptymalizować. Pascal bardziej wymuszał czytelny zapis, ale przy
programowaniu nie raz mi "brakowało" zwięzłej konstrukcji typu
suma+=*wskaznik++; która ponoć jest nieczytelna. Przy programowaniu
małych 8-bitowych uC często mieszałem C z assemblerem. Pewne rzeczy
nawet wygodniej się robiło mi się w assemblerze :-)
--
Pozdrawiam
Grzegorz
Następne wpisy z tego wątku
- 08.02.18 23:40 Piotr Wyderski
- 08.02.18 23:44 Piotr Wyderski
- 08.02.18 23:48 Piotr Wyderski
- 09.02.18 09:06 s...@g...com
- 09.02.18 10:04 J.F.
- 09.02.18 10:26 s...@g...com
- 09.02.18 11:27 s...@g...com
- 09.02.18 11:42 Piotr Wyderski
- 09.02.18 14:30 J.F.
- 09.02.18 14:46 J.F.
- 09.02.18 20:57 Sebastian Biały
- 09.02.18 21:16 Sebastian Biały
- 10.02.18 12:55 s...@g...com
- 10.02.18 13:45 s...@g...com
- 10.02.18 14:24 Sebastian Biały
Najnowsze wątki z tej grupy
- karta parkingowa
- Wl/Wyl (On/Off) bialy/niebieski
- I3C
- Pytanie o transformator do dzwonka
- międzymordzie USB 3.2 jako 2.0
- elektronicy powinni pomysleć o karierze elektryka
- jak szybko plynie prad
- Płytki Milkv-Duo
- Światłowód między budynkami
- POtrzebny bufor 3.3<>5V, jedonkieruowy, trójstanowy, wąski
- retro
- Bezprzewodowe polączenie Windows z projektorem
- rozklejanie obudowy
- Prośba o identyfikację komponentu
- Smart gniazdko straciło na zasięgu wifi?
Najnowsze wątki
- 2024-11-13 Filtr do pompy ruskiej
- 2024-11-12 Gdzie kosz?
- 2024-11-13 elektrycznie
- 2024-11-12 Jebane kurwa, kurwy.
- 2024-11-13 karta parkingowa
- 2024-11-13 Wl/Wyl (On/Off) bialy/niebieski
- 2024-11-12 I3C
- 2024-11-13 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2024-11-13 Łódź => Senior SAP HANA Developer <=
- 2024-11-13 Zabrze => Senior PHP Symfony Developer <=
- 2024-11-13 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-13 Kraków => QA Inżynier <=
- 2024-11-13 Żerniki => Dyspozytor Międzynarodowy <=
- 2024-11-13 Warszawa => Analityk Biznesowo-Systemowy <=
- 2024-11-13 Lublin => Delphi Programmer <=