-
31. Data: 2018-02-08 21:42:55
Temat: Re: Nauka programowania FPGA
Od: Sebastian Biały <h...@p...onet.pl>
On 2/8/2018 12:50 AM, s...@g...com wrote:
> 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.
To cecha języka. *TEGO* języka. W innym może być/jest inaczej. W dodatku
to żadna zaleta, to tylko jakieś założenie związane ze sposobem syntezy
takich układów lub poziomem alkocholu we krwi członka komitetu
standaryzującego lub wręcz brakiem takowego (verilog).
-
32. Data: 2018-02-08 22:10:45
Temat: Re: Nauka programowania FPGA
Od: s...@g...com
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!! 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...
-
33. Data: 2018-02-08 23:20:01
Temat: Re: Nauka programowania FPGA
Od: Grzegorz Kurczyk <g...@c...usun.slupsk.pl>
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
-
34. Data: 2018-02-08 23:40:30
Temat: Re: Nauka programowania FPGA
Od: Piotr Wyderski <p...@n...mil>
Sebastian Biały wrote:
> Świat odchodzi od rysowania schematów [1].
Gubisz kontekst, który masz w tytule wątku. Człowiek chce sobie
popróbować zabawy z FPGA bez posiadania głębszej wiedzy o temacie.
Zachęcanie go do profesjonalnego podejścia do tematu to kpina.
Odpadnie na skonfigurowaniu środowiska testowego, o jakichkolwiek
elementach pracy zespołowej nie wspominając. Na tym etapie schematy
są idealne.
> [1] Nie wyssałem tego z palca.
Nie wiem, z czego to wyssałeś, ale polecasz techniki właściwe do
budowania atomowych okrętów podwodnych człowiekowi, który chce
zbudować swoją pierwszą tratwę. Po kolei, Sebastian.
Pozdrawiam, Piotr
-
35. Data: 2018-02-08 23:44:51
Temat: Re: Nauka programowania FPGA
Od: Piotr Wyderski <p...@n...mil>
Sebastian Biały wrote:
> To się da zrobić nawet na serii XC95xxxx, np. XC95144XL. Taniej będzie
> cieżko coś znaleźć. Był kiedyś kit AVT-2875. Jak znalazł na początek.
Tylko po co ma być "taniej"? To nie jest Chińczyk, którego zadaniem jest
zoptymalizowanie kilku centów. Na początek ma być wygodnie, a nie tanio.
W tym przypadku różnica to całe dwa dolary (cy8ckit-059 kosztuje $10,
a potrafi znacznie więcej niż mniejsze CPLD).
Pozdrawiam, Piotr
-
36. Data: 2018-02-08 23:48:41
Temat: Re: Nauka programowania FPGA
Od: Piotr Wyderski <p...@n...mil>
s...@g...com wrote:
> Tymczasem w języku opisu sprzętu owa kolejność zapisu nie ma żadnego znaczenia.
No nie rozpędzajmy się, dokładnie po to masz = i <=. Oba to przypisania,
a działają kapkę inaczej. :-)
Pozdrawiam, Piotr
-
37. Data: 2018-02-09 09:06:36
Temat: Re: Nauka programowania FPGA
Od: s...@g...com
W dniu czwartek, 8 lutego 2018 23:48:44 UTC+1 użytkownik Piotr Wyderski napisał:
> s...@g...com wrote:
>
> > Tymczasem w języku opisu sprzętu owa kolejność zapisu nie ma żadnego znaczenia.
>
> No nie rozpędzajmy się, dokładnie po to masz = i <=. Oba to przypisania,
> a działają kapkę inaczej. :-)
>
> Pozdrawiam, Piotr
Użyłem skrótu myślowego. Wiadomo, że '=' dotyczy zmiennych, a '<=' dotyczy sygnałów.
Dla wątkotwórcy może się to wydawać trochę dziwne (zmienne w sprzęcie?), ale ma to
sens. I tak w końcu kompilator, a raczej implementator zrobi z tego syntezę
sygnałową.
-
38. Data: 2018-02-09 10:04:06
Temat: Re: Nauka programowania FPGA
Od: "J.F." <j...@p...onet.pl>
Użytkownik "Sebastian Biały" napisał w wiadomości grup
dyskusyjnych:p5ibo8$e9a$...@n...news.atman.pl...
On 2/7/2018 2:59 PM, Piotr Wyderski wrote:
>> Powyższych pozycji nie znam, ale mam radę: odpuść sobie naukę
>> Veriloga na etapie wstępnym. W ISE/Quartusie są graficzne edytory
>> schematów
>Świat odchodzi od rysowania schematów [1]. To wynika z bardzo wielu
>przyczyn ale najwazniejsze to jest niemożność stosowania technik
>zapewniania jakości na takim designie. W zasadzie profesjonalny
>hardware
Poza tym ... nowoczesne uklady maja setki miliardow tranzystorow.
Jak chesz to narysowac ?
Nawet zakladajac, ze nie rysujemy tranzystorow czy np liczniki czy
rejestry.
>produkuje się obecnie *wyłacznie* za pomocą opisu który pozwala na
>stosowanie annotacji, śledzenia wymagań, unit testowania (i kilku
>innych poziomów testowania), pracy w grupie, systemów kontroli
>wersji, wykrywania regresji, automatycznego lintowania itd. Rysowanie
>schematów jest marginesem do projektów migania diodami. To ślepa
>uliczka.
>[1] Nie wyssałem tego z palca.
Szczegolnie w kontekscie tych setek miliardow :-)
Z drugiej strony - jakas tam koncepcje konstrukcji danego bloku
projektant powinien miec, i myslec mniejszymi blokami.
A moze juz nie musi ? Kompilator/optymalizator zrobi to za niego z
opisu behawioralnego ?
I wezmy na tapete ten Nixie zegar - z jednej strony fajnie by bylo,
jakbym to co pisalem narysowal Atlantisowi, ale z drugiej:
-uzywac starych elementow TTL ? Po co, CPLD nie jest ograniczona do
ich zasobu.
-uzywac abstrakcyjnych licznik/rejestr/dekoder ... pogladowo swietnie,
ale one maja duzo opcji, trzeba sie za bardzo skupic na prawidlowym
okresleniu wszystkich, zeby dzialalo :-)
J.
-
39. Data: 2018-02-09 10:26:20
Temat: Re: Nauka programowania FPGA
Od: s...@g...com
W dniu czwartek, 8 lutego 2018 21:25:45 UTC+1 użytkownik Sebastian Biały napisał:
> On 2/7/2018 2:59 PM, Piotr Wyderski wrote:
> > Powyższych pozycji nie znam, ale mam radę: odpuść sobie naukę
> > Veriloga na etapie wstępnym. W ISE/Quartusie są graficzne edytory
> > schematów
>
> Świat odchodzi od rysowania schematów [1]. To wynika z bardzo wielu
> przyczyn ale najwazniejsze to jest niemożność stosowania technik
> zapewniania jakości na takim designie. W zasadzie profesjonalny hardware
> produkuje się obecnie *wyłacznie* za pomocą opisu który pozwala na
> stosowanie annotacji, śledzenia wymagań, unit testowania (i kilku innych
> poziomów testowania), pracy w grupie, systemów kontroli wersji,
> wykrywania regresji, automatycznego lintowania itd. Rysowanie schematów
> jest marginesem do projektów migania diodami. To ślepa uliczka.
>
> [1] Nie wyssałem tego z palca.
Najdelikatniej jak umiem.. Nie pisz skąd te bzdury wyssałeś :)
Efektem owych bzdur są gnomy "inżynierskie", które nie rozumieją podstaw
elektroniki.. Baa.. Mało tego, mają tytuły mgr i nie mają bladego pojęcia jak działa
dioda. O doborze parametrów owej nawet nie warto wspominać. Dalej.. Nie żartuję!!
Kontrola wersji, regresja.. O czym Ty gościu p........ ?
Jednym z wymogów ISO coś tam, coś tam.., jest powywieszanie w firmie banerów " Jakość
jest naszym motto..". Treść chyba inna, ale sens jest dokładnie taki..
"PZPR PRZEWODNIĄ SIŁĄ NARODU"
Da się "elektronikom" wyprać mózg? Chyba tak...
-
40. Data: 2018-02-09 11:27:41
Temat: Re: Nauka programowania FPGA
Od: s...@g...com
W dniu czwartek, 8 lutego 2018 21:35:40 UTC+1 użytkownik Sebastian Biały napisał:
> >> Ale układy FPGA poganiane sa napięciami niskimi, np.
> >> 1.8V. Ciezko to z czymkolwiek połaczyć.
> > Nieprawda!! Napięciem 1.8V zasilany jest rdzeń logiczny
>
> Czyli FPGA jest poganiany.
>
> >, natomiast IO zasilasz osobnym napięciem VCCIO 2.5V lub 3.3V i po kłopocie.
>
> Nie każdy i nie jest to 5V. Czyli od razu odpada milion tanich jak
> barszcz peryferiów od arduino. Ciężko połączyć FPGA z czymkolwiek *tanio*.
>
Jak się nie znasz, to dej se spokój.. Piszesz, że FPGA ciężko połączyć z
czymkolwiek.. I do tego jeszcze tanio.. Problem z logiką 5V? ŻADEN!! Bez żadnych
buforów podciągających!! Ty chyba nie znasz marginesów działania TTL'ek.
VCCIO zasilasz napięciem 3.3V, i nie ma bata coby to nie gadało z TTL. To nie tylko
teoria!! PRAKTYKA!! Poczytaj sobie o IO specification dot. X lub A, i nie fandzol
głupot!!