-
21. Data: 2018-02-07 23:08:55
Temat: Re: Nauka programowania FPGA
Od: Grzegorz Kurczyk <g...@c...usun.slupsk.pl>
W dniu 07.02.2018 o 21:10, J.F. pisze:
> Użytkownik stchebel napisał w wiadomości
> W dniu środa, 7 lutego 2018 15:37:28 UTC+1 użytkownik J.F. napisał:
>> Użytkownik "Piotr Wyderski" napisał w wiadomości grup
>>> >Powyższych pozycji nie znam, ale mam radę: odpuść sobie naukę
>>> >Veriloga na etapie wstępnym. W ISE/Quartusie są graficzne edytory
>>> >schematów, poklikaj sobie i zobacz, jak Ci to leży. Naucz się >sprzętu
>>> >i myślenia w nowych kategoriach.
>>> To nie lepiej jednak zaczac od VHDL/Veriloga, niz dalej trzaskac te
>>> schematy ?
>
>> W rozbudowanych projektach, gdzie FPGA jest wykorzystywane do
>> kontrolowania różnych niezależnych układów np. kontroler USB,DDR
>> RAM,Przetworniki AD/DA i cholera wie co jeszcze, uważam schemat za
>> najlepsze narzędzie. Jeden rzut oka i wiadomo co jest co i jaki jest
>> przepływ logiczny obrabianego sygnału.
>
> Hm, w czasach PLD to mi prosciej bylo zapisac rownania logiczne niz sie
> zastanawiac, co te bramki realizuja :-)
> Choc przyznaje, ze rejestry/latche byly nieczyste w zapisie.
>
> Kontroler DDR RAM ... a tego sie nie robi w FPGA ?
> I jak to narysowac :-)
>
> J.
>
Też sobie nie wyobrażam rzeźbienia kontrolera SDRAM rysując schemat z
bramek przerzutników czy nawet trochę większych bloczków funkcyjnych.
W swoich zabawach z Xilinxem stosuję taką zasadę: bloki funkcyjne typu
kontroler SDRAM, CPU, VGA, GPU itd. itp. robię w Verilogu (rzadziej w
VHDL) i dopiero to wszystko sklejam do kupy na schemacie w jeden system
ftp://control.slupsk.pl/gksystem32.pdf
Od pewnego czasu zapis w Verilogu przemawia do mnie bardziej niż
schemat, mimo żem na schematach wychowany ;-)
--
Pozdrawiam
Grzegorz
-
22. Data: 2018-02-07 23:46:51
Temat: Re: Nauka programowania FPGA
Od: Grzegorz Kurczyk <g...@c...usun.slupsk.pl>
W dniu 06.02.2018 o 08:53, Atlantis pisze:
> Od jakiegoś czasu chodzi mi po głowie pomysł nauczenia się przynajmniej
> podstaw programowania układów FGPA, celem rozszerzenia repertuaru
> możliwości, które mógłbym (na razie) wykorzystać w swoich amatorskich
> projektach.
>
W styczniu 2016 był wątek Jak działa FPGA. Trochę tam pisałem.
news://news.tpi.pl:119/n68f5k$qp2$1@node2.news.atman
.pl
Przy nauce KONFIGUROWANIA układów CPLD/FPGA musisz się przestawić w
sposobie myślenia. Nim zabrałem się za FPGA miałem duże doświadczenie w
programowaniu CPU i uC (głównie assembler, C) i... wcale mi to nie
pomagało, a wręcz przeciwnie. Podstaw uczyłem się z przykładów
znalezionych w internecie, ale patrząc na kawałek kodu w Verilogu mózg
interpretował mi kolejne linijki Veriloga jako kolejne rozkazy
sekwencyjnie wykonywanego programu !!! :-/ Musiała mi się przestawić
klepka aby w kodzie zacząć "widzieć" połaczone ze sobą przerzutniki,
sumatory, liczniki synchroniczne, dekodery, multipleksery itp. Bo
VHDL/Verilog to jest język opisu sprzętu, a nie język oprogramowania. W
ogarnięciu tego wszystkiego bardzo mi pomogła dobra znajomość poczciwej
serii układów TTL. W pewnym sensie traktuję FPGA jako wiaderko pełne
TTL-i, duuuużą płytkę stykową i karton kabelków do krosowania ;-)
Jeśli wybierzesz coś ze stajni Xilinxa, to z chęcią pomogę. Chyba
najlepiej uczyć się na jakimś konkretnym małym projekcie. Pierwsze CPLD
jakie "ugryzłem" to bodajże było XC7572XL. Kombinowałem "kartę
graficzną" do AVR-a generującą obraz telewizyjny. Na AVR-rze da się
nawet programowo (z lekkim wspomaganiem sprzętowym) ale nie w
rozdzielczości graficznej 512x280 przy 16 kolorach. Pierwsze
przymiarki... płytka stykowa, kostka DRAM 44256 i garść układów TTL,
które to TTL-ki w końcu zostały zastąpione przez CPLD.
Powodzenia.
--
Pozdrawiam
Grzegorz
-
23. Data: 2018-02-08 00:34:27
Temat: Re: Nauka programowania FPGA
Od: s...@g...com
W dniu środa, 7 lutego 2018 21:10:42 UTC+1 użytkownik J.F. napisał:
>
> Kontroler DDR RAM ... a tego sie nie robi w FPGA ?
> I jak to narysowac :-)
>
Jasne, że tak! Miałem na myśli samo DDR RAM. A sam kontroler masz w zestawie IP.
Jak to narysować? Black-Box jak każde inne IP.
-
24. Data: 2018-02-08 00:50:07
Temat: Re: Nauka programowania FPGA
Od: s...@g...com
W dniu środa, 7 lutego 2018 23:46:54 UTC+1 użytkownik Grzegorz Kurczyk napisał:
> W dniu 06.02.2018 o 08:53, Atlantis pisze:
> > Od jakiegoś czasu chodzi mi po głowie pomysł nauczenia się przynajmniej
> > podstaw programowania układów FGPA, celem rozszerzenia repertuaru
> > możliwości, które mógłbym (na razie) wykorzystać w swoich amatorskich
> > projektach.
> >
>
> W styczniu 2016 był wątek Jak działa FPGA. Trochę tam pisałem.
> news://news.tpi.pl:119/n68f5k$qp2$1@node2.news.atman
.pl
>
> Przy nauce KONFIGUROWANIA układów CPLD/FPGA musisz się przestawić w
> sposobie myślenia. Nim zabrałem się za FPGA miałem duże doświadczenie w
> programowaniu CPU i uC (głównie assembler, C) i... wcale mi to nie
> pomagało, a wręcz przeciwnie. Podstaw uczyłem się z przykładów
> znalezionych w internecie, ale patrząc na kawałek kodu w Verilogu mózg
> interpretował mi kolejne linijki Veriloga jako kolejne rozkazy
> sekwencyjnie wykonywanego programu !!! :-/ Musiała mi się przestawić
> klepka aby w kodzie zacząć "widzieć" połaczone ze sobą przerzutniki,
> sumatory, liczniki synchroniczne, dekodery, multipleksery itp. Bo
> VHDL/Verilog to jest język opisu sprzętu, a nie język oprogramowania. W
> ogarnięciu tego wszystkiego bardzo mi pomogła dobra znajomość poczciwej
> serii układów TTL. W pewnym sensie traktuję FPGA jako wiaderko pełne
> TTL-i, duuuużą płytkę stykową i karton kabelków do krosowania ;-)
>
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.
-
25. Data: 2018-02-08 07:37:15
Temat: Re: Nauka programowania FPGA
Od: Grzegorz Kurczyk <g...@c...usun.slupsk.pl>
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
-
26. Data: 2018-02-08 08:00:22
Temat: Re: Nauka programowania FPGA
Od: Grzegorz Kurczyk <g...@c...usun.slupsk.pl>
W dniu 08.02.2018 o 00:34, s...@g...com pisze:
> W dniu środa, 7 lutego 2018 21:10:42 UTC+1 użytkownik J.F. napisał:
>
>
>>
>> Kontroler DDR RAM ... a tego sie nie robi w FPGA ?
>> I jak to narysowac :-)
>>
>
> Jasne, że tak! Miałem na myśli samo DDR RAM. A sam kontroler masz w zestawie IP.
> Jak to narysować? Black-Box jak każde inne IP.
>
No fakt, że może nie najlepszy przykład ;-) Ale taka np. nietypowa karta
VGA ze sprzętowym wyświetlaniem skalowalnej siatki oscyloskopowej na
ekranie... w IP nie nalazłem ;-) Z drugiej strony "standardowy"
kontroler SDRAM z IP jest bardzo zasobożerny do syntezy na układach,
które nie mają dedykowanego bloku obsługi pamięci dynamicznych i w
efekcie dość wolny. Na Spartan3 (-4) miałem problemy z pracą pamięci
SDRAM 7ns przy częstotliwości trochę większej niż 50MHz. Naskrobałem
własny mocno uproszczony kontroler i ta sama kostka SDRAM śmiga na
120MHz. O różnicy w ilości zajmowanych zasobów już nie wspomnę.
--
Pozdrawiam
Grzegorz
-
27. Data: 2018-02-08 10:54:41
Temat: Re: Nauka programowania FPGA
Od: "J.F." <j...@p...onet.pl>
Użytkownik "Grzegorz Kurczyk" napisał w wiadomości grup
dyskusyjnych:5a7b81dc$0$575$6...@n...neostrada.
pl...
> W pewnym sensie traktuję FPGA jako wiaderko pełne TTL-i, duuuużą
> płytkę stykową i karton kabelków do krosowania ;-)
Nie w pewnym sensie, tylko jest wiaderko TTL (GA) i karton kabelkow do
krosowania (FP) :-)
J.
-
28. Data: 2018-02-08 21:25:32
Temat: Re: Nauka programowania FPGA
Od: Sebastian Biały <h...@p...onet.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
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.
-
29. Data: 2018-02-08 21:35:27
Temat: Re: Nauka programowania FPGA
Od: Sebastian Biały <h...@p...onet.pl>
On 2/7/2018 1:00 AM, s...@g...com wrote:
>> Zacznij od CPLD. W praktyce układy CPLD beda miały znacznie bardziej
>> przyjazne napięcia i obudowy. To na poczatek dość istotne.
> Przeciwnie. Naukę lepiej zacząć od czegoś o większych zasobach. Obudowy i napięcia
bardziej przyjazne? Nie żartuj...
Nie żartuje. Jesli mam zaczynać od projektów migania diodą to naprawdę
nie potrzebuje w tym celu oprogramowania ważacego 25GB, bardzo drogich
ukladów, skomplikowanych zasilań, magicznych programatorów itp.
Wystartować można niżej, jak nie wciągnie to bez żalu porzucić.
>> Verilog jest językiem z masa bledów projektowych. VHDL zaś jest
>> przeraźliwie verbose i opóźniony o dziesięciolecia. Naucz się obu -
>> wiele współczesnych projektów to mixed language, czasami dokładając
>> również SystemC.
> Fakt, lepiej znać oba języki. Verilog znam "po łebkach", więc się nie wypowiadam,
natomiast co do VHDL Twoja opinia jest kompletnie nieuzasadniona. Delikatnie mówiąc..
VHDL to jest Ada + dodatki. Ada jest bardzo verbose. Trudno dyskutować z
faktami. To jeden z najbardziej, obok COBOLa, gadatliwych języków.
Prowadzi do dośc częstego rwania sobie wlosów z głowy choćby na głupich
konwersjach wektorow bitów itd.
Skoro nie masz pojęcia o Verilogu, to jak możesz oceniać czy VHDL nie
jest opóźniony o dziesięciolecia? Może podrzuce Ci hasło do
przemyslenia: testowanie. Obecnie robi się to w Verilogu ponieważ ma do
tego ficzery (hint: UVM). VHDL nie ma, lub ma żałosne. Też się robi, ale
przypomina to lata 80, erę BASICa łupanego. Problemem jest komited
standaryzujący VHDL który długo zastsanawia się czy warto coś do jezyka
dodać kiedy konkurencja ma to od wielu lat.
>> Nie jest łatwo. 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*.
> Takie niezbyt skomplikowane EVB idzie kupić za mniej niż 100$
Płytkę z CPLD za $8.
https://www.aliexpress.com/item/IEZ-USB-FX2LP-CY7C68
013A-USB-core-board-development-board-USB-logic-anal
yzer-I2C-serial-and-SPI/32793462445.html
-
30. Data: 2018-02-08 21:38:30
Temat: Re: Nauka programowania FPGA
Od: Sebastian Biały <h...@p...onet.pl>
On 2/7/2018 8:42 AM, Atlantis wrote:
> Jeśli nauczę się podstaw VHDL/Veriloga na FPGA, to potem będę mógł też
> tę wiedzę wykorzystać z CPLD w jakimś własnym projekcie, czy też używa
> się ich zupełnie inaczej?
Róznice sa dwie:
a) CPLD są znaczaco mniejsze i wolniejsze
b) FPGA zawierają dziwne peryferia jako bonus (np. gotowe uklady mnożące
albo konfigurowalną pamięć RAM)
> Myślę, że na początek celowałbym w coś o wiele prostszego - w rodzaju
> sprzętowego kontrolera wyświetlaczy nixie, sterowanego po SPI.
> Mógłbyś polecić jakiś układ/rodzinę/płytkę na początek?
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.