Goto page 1, 2 Next
Guest
Fri Aug 16, 2013 7:12 pm
Temat w zasadzie w stylu "lepsze są blondyny, czy rude?" Ja w zaparte jestem za VHDL'em. Trochę trza się do tego przyzwyczaić, jest to tzw. "strong typed language" i BARDZO DOBRZE !! Semantyka Veriloga jest trochę podobna do Pascala, ale BROŃ CIĘ PANIE rozumować kategoriami programistycznymi w odniesieniu do HW.
Trza się przestawić na zupełnie inny poziom abstrakcji używając VHDL/Verilog, a pisząc programy Pascal/C/C++. Co się tyczy opisu HW, zdecydowanie obstaję za VHDL.
A soft w większości przypadków trza skrobać w C/C++. A już TOTALNYM popaprańcem jest typ "VOLATILE" !! Zalecany w aplikacjach ADC. Głupszej głupoty nie widziałem!! No cheba, że przetwarzamy sygnał o nośnej paru Hertzów próbkowany z częstotliwością pierdyljona Gigahertzów. Trochę przesadziłem, ale generalnie o to chodzi. Porządnej demodulacji FM ja bym tak nie robił. A cholera wie jak se to kompilator z tym pokombinował....
Jakub Rakus
Guest
Fri Aug 16, 2013 8:52 pm
W dniu 16.08.2013 19:12, stchebel@gmail.com pisze:
Quote:
Temat w zasadzie w stylu "lepsze są blondyny, czy rude?" Ja w zaparte jestem za VHDL'em. Trochę trza się do tego przyzwyczaić, jest to tzw. "strong typed language" i BARDZO DOBRZE !! Semantyka Veriloga jest trochę podobna do Pascala, ale BROŃ CIĘ PANIE rozumować kategoriami programistycznymi w odniesieniu do HW.
Trza się przestawić na zupełnie inny poziom abstrakcji używając VHDL/Verilog, a pisząc programy Pascal/C/C++. Co się tyczy opisu HW, zdecydowanie obstaję za VHDL.
A soft w większości przypadków trza skrobać w C/C++. A już TOTALNYM popaprańcem jest typ "VOLATILE" !! Zalecany w aplikacjach ADC. Głupszej głupoty nie widziałem!! No cheba, że przetwarzamy sygnał o nośnej paru Hertzów próbkowany z częstotliwością pierdyljona Gigahertzów. Trochę przesadziłem, ale generalnie o to chodzi. Porządnej demodulacji FM ja bym tak nie robił. A cholera wie jak se to kompilator z tym pokombinował....
Ano właśnie, dostałem w zeszłym roku taką śmieszną płytkę Lattice
MachX02 Pico Dev Kit. Chciałbym się tym trochę pobawić, ale jeśli chodzi
o FPGA/CPLD to jestem totalnie zielony, nigdy nie miałem z tym do
czynienia i nie bardzo wiem z której strony się do tego zabrać. Może
jakaś porada co będzie prostsze do ogarnięcia dla kogoś przyzwyczajonego
do C i 8 bitów?
--
Pozdrawiam
Jakub Rakus
Jakub Rakus
Guest
Sat Aug 17, 2013 9:45 pm
W dniu 17.08.2013 22:30, stchebel@gmail.com pisze:
Quote:
Mam nadzieję, że trochę rozjaśniłem temat. Jakby cosik nie było jasne, śmiało pytaj tutaj. Na miarę wiedzy postaram się doradzić.
To może jakiś przykład praktyczny co takiego można zrobić "łatwo" na
FPGA, co na zwykłym procku jest "trudne" (znaczy się zajmuje duuużo
linii kodu, długo się wykonuje i/lub mocno obciąża CPU jakimiś
mnożeniami i dzieleniami)?
--
Pozdrawiam
Jakub Rakus
Guest
Sat Aug 17, 2013 10:30 pm
W dniu piątek, 16 sierpnia 2013 22:52:16 UTC+2 użytkownik Jakub Rakus napisał:
Quote:
W dniu 16.08.2013 19:12, stchebel@gmail.com pisze:
Temat w zasadzie w stylu "lepsze są blondyny, czy rude?" Ja w zaparte jestem za VHDL'em. Trochę trza się do tego przyzwyczaić, jest to tzw.. "strong typed language" i BARDZO DOBRZE !! Semantyka Veriloga jest trochę podobna do Pascala, ale BROŃ CIĘ PANIE rozumować kategoriami programistycznymi w odniesieniu do HW.
Trza się przestawić na zupełnie inny poziom abstrakcji używając VHDL/Verilog, a pisząc programy Pascal/C/C++. Co się tyczy opisu HW, zdecydowanie obstaję za VHDL.
A soft w większości przypadków trza skrobać w C/C++. A już TOTALNYM popaprańcem jest typ "VOLATILE" !! Zalecany w aplikacjach ADC. Głupszej głupoty nie widziałem!! No cheba, że przetwarzamy sygnał o nośnej paru Hertzów próbkowany z częstotliwością pierdyljona Gigahertzów. Trochę przesadziłem, ale generalnie o to chodzi. Porządnej demodulacji FM ja bym tak nie robił. A cholera wie jak se to kompilator z tym pokombinował....
Ano właśnie, dostałem w zeszłym roku taką śmieszną płytkę Lattice
MachX02 Pico Dev Kit. Chciałbym się tym trochę pobawić, ale jeśli chodzi
o FPGA/CPLD to jestem totalnie zielony, nigdy nie miałem z tym do
czynienia i nie bardzo wiem z której strony się do tego zabrać. Może
jakaś porada co będzie prostsze do ogarnięcia dla kogoś przyzwyczajonego
do C i 8 bitów?
Z CPLD nigdy się nie bawiłem, bo i takiej potrzeby nie było. Jest to co prawda tanie, ale zbyt wiele logiki do tego nie upchasz. Co się zaś tyczy FPGA, to zapomnij na wstępie o C/C++ i wszelakich językach programowania. FPGA to nie jest procek na którym możesz jakiś tam soft wyrzeźbić. FPGA jest to platforma hardwarowa, taka 'tabula rasa' na której możesz sobie w obrębie jej zasobów wystrugać dowolną logikę bez lutownicy. Przy odpowiednio zasobnych FPGA nawet i procka, którego możesz dalej oprogramiać. Jeżeli to Cię interesuje, zassaj sobie za darmola WebPack'a z
www.xilinx.com , i pobaw się najpierw projektowaniem byle czego z poziomu normalnego schematu. Bramki, liczniki, sumatory i tym podobne pierdualia. Konkretne numery pinów wejściowych i wyjściowych też sam określasz bez lutkolby (UCF-user constraint file). Krótko mówiąc sam smarujesz se schemat tego co ma siedzieć w scalaku i co on ma robić. Fajne, co nie?! Możesz se i procka w/g własnego pomysłu wystrugać!! A idąc dalej w las, są właśnie takie narzędzia jak VHDL/Verilog - języki którymi opisujesz co badziewie ma robić. Cholernie wygodne. Wyobraź sobie zaprojektowanie sumatora n-bitowego na poziomie bramek. Jest trochę roboty..
A wystarczy napisać A<=B+C, resztę zrobi za Ciebie soft i zaimplementuje do wybranego układu FPGA.
Generalnie nie ma się czego bać, ino przestaw myślenie z C na hardware. A najlepiej na początek przygody z FPGA w ogóle zapomnij o wszelakich językach programowania. Bo to zupełnie 2 różne zagadnienia.
Mam nadzieję, że trochę rozjaśniłem temat. Jakby cosik nie było jasne, śmiało pytaj tutaj. Na miarę wiedzy postaram się doradzić..
MiSter
Guest
Sun Aug 18, 2013 4:02 pm
Quote:
To może jakiś przykład praktyczny co takiego można zrobić "łatwo" na
FPGA, co na zwykłym procku jest "trudne" (znaczy się zajmuje duuużo linii
kodu, długo się wykonuje i/lub mocno obciąża CPU jakimiś mnożeniami i
dzieleniami)?
Np. dowolnie konfigurowany moduł FFT, sterownik pamieci DDR czy dowolnie
konfigurowany interfejs PCI Express.
MiSter
Jakub Rakus
Guest
Sun Aug 18, 2013 7:46 pm
W dniu 18.08.2013 18:02, MiSter pisze:
[quote]To mo
butek
Guest
Sun Aug 18, 2013 8:36 pm
W dniu 18.08.2013 21:46, Jakub Rakus pisze:
Quote:
A jakiś prosty analizator stanów logicznych dałoby radę łatwo na tym
zrobić?
Dobrze działające analizatory się TYLKO na "tym" robi. Wszelkie cuda na
AVR'ach i ogólnie sekwencyjnie przetwarzających uC to lepsze, bądź
gorsze zabawki. Siłą FPGA jest właśnie przetwarzanie równoległe bez
opóźnień - a tego na uC nie osiągniesz nigdy.
--
butek
Safety note: Don't put all your enriched uranium hexafluoride in one
bucket. Use at least two or three buckets and keep them in separate
corners of the room. This will prevent the premature build-up of a
critical mass.
Adam Górski
Guest
Sun Aug 18, 2013 9:13 pm
W dniu 2013-08-16 19:12, stchebel@gmail.com pisze:
Quote:
Temat w zasadzie w stylu "lepsze są blondyny, czy rude?" Ja w zaparte jestem za VHDL'em. Trochę trza się do tego przyzwyczaić, jest to tzw. "strong typed language" i BARDZO DOBRZE !! Semantyka Veriloga jest trochę podobna do Pascala, ale BROŃ CIĘ PANIE rozumować kategoriami programistycznymi w odniesieniu do HW.
Trza się przestawić na zupełnie inny poziom abstrakcji używając VHDL/Verilog, a pisząc programy Pascal/C/C++. Co się tyczy opisu HW, zdecydowanie obstaję za VHDL.
A soft w większości przypadków trza skrobać w C/C++. A już TOTALNYM popaprańcem jest typ "VOLATILE" !! Zalecany w aplikacjach ADC. Głupszej głupoty nie widziałem!! No cheba, że przetwarzamy sygnał o nośnej paru Hertzów próbkowany z częstotliwością pierdyljona Gigahertzów. Trochę przesadziłem, ale generalnie o to chodzi. Porządnej demodulacji FM ja bym tak nie robił. A cholera wie jak se to kompilator z tym pokombinował....
Hmm... ja też , ale może dla tego że na veriloga później trafiłem , a
może dlatego że VHDL dominował. Zobaczymy jak długo to potrwa bo już się
słyszy o językach wyższego poziomu.
Ale fakt, w jakimkolwiek HDL-u to trzeba mieć wyższy poziom abstrakcji
niż w C / C++.
Ale to długa historia.
Adam
Jakub Rakus
Guest
Mon Aug 19, 2013 7:01 pm
W dniu 18.08.2013 22:36, butek pisze:
Quote:
W dniu 18.08.2013 21:46, Jakub Rakus pisze:
A jakiś prosty analizator stanów logicznych dałoby radę łatwo na tym
zrobić?
Dobrze działające analizatory się TYLKO na "tym" robi. Wszelkie cuda na
AVR'ach i ogólnie sekwencyjnie przetwarzających uC to lepsze, bądź
gorsze zabawki. Siłą FPGA jest właśnie przetwarzanie równoległe bez
opóźnień - a tego na uC nie osiągniesz nigdy.
No dobrze, to jeszcze jedno pytanie: czy ktoś poleciłby dobrą lekturę na
ten temat, taką co poprowadzi od podstaw do bardziej wymyślnych
projektów, może być angielskojęzyczna, bo jak widzę po naszemu niewiele
tego jest.
--
Pozdrawiam
Jakub Rakus
Adam GĂłrski
Guest
Mon Aug 19, 2013 7:55 pm
W dniu 2013-08-19 21:01, Jakub Rakus pisze:
Quote:
W dniu 18.08.2013 22:36, butek pisze:
W dniu 18.08.2013 21:46, Jakub Rakus pisze:
A jakiś prosty analizator stanów logicznych dałoby radę łatwo na tym
zrobić?
Dobrze działające analizatory się TYLKO na "tym" robi. Wszelkie cuda na
AVR'ach i ogólnie sekwencyjnie przetwarzających uC to lepsze, bądź
gorsze zabawki. Siłą FPGA jest właśnie przetwarzanie równoległe bez
opóźnień - a tego na uC nie osiągniesz nigdy.
No dobrze, to jeszcze jedno pytanie: czy ktoś poleciłby dobrą lekturę na
ten temat, taką co poprowadzi od podstaw do bardziej wymyślnych
projektów, może być angielskojęzyczna, bo jak widzę po naszemu niewiele
tego jest.
No tu jest trochę kiepsko. O ile o samej składni jest tego dosyć sporo o
tyle o sprawach istotnych raczej mało.
Mówiąc o istotnych sprawach , mam na myśli: "Jak pisać żeby działało.."
Np bardzo mało podręczników czysto o VHDL lub verilogu mało mówi o
ogólnych zasadach takich jak synchronizacja sygnałów asynchronicznych
czy też o problemach w projektach gdzie występuje wiele asynchronicznych
zegarów.
Doświadczenie trzeba zebrać.
Adam
Jakub Rakus
Guest
Mon Aug 19, 2013 7:59 pm
W dniu 19.08.2013 21:55, Adam Górski pisze:
Quote:
W dniu 2013-08-19 21:01, Jakub Rakus pisze:
W dniu 18.08.2013 22:36, butek pisze:
W dniu 18.08.2013 21:46, Jakub Rakus pisze:
A jakiś prosty analizator stanów logicznych dałoby radę łatwo na tym
zrobić?
Dobrze działające analizatory się TYLKO na "tym" robi. Wszelkie cuda na
AVR'ach i ogólnie sekwencyjnie przetwarzających uC to lepsze, bądź
gorsze zabawki. Siłą FPGA jest właśnie przetwarzanie równoległe bez
opóźnień - a tego na uC nie osiągniesz nigdy.
No dobrze, to jeszcze jedno pytanie: czy ktoś poleciłby dobrą lekturę na
ten temat, taką co poprowadzi od podstaw do bardziej wymyślnych
projektów, może być angielskojęzyczna, bo jak widzę po naszemu niewiele
tego jest.
No tu jest trochę kiepsko. O ile o samej składni jest tego dosyć sporo o
tyle o sprawach istotnych raczej mało.
Mówiąc o istotnych sprawach , mam na myśli: "Jak pisać żeby działało.."
Np bardzo mało podręczników czysto o VHDL lub verilogu mało mówi o
ogólnych zasadach takich jak synchronizacja sygnałów asynchronicznych
czy też o problemach w projektach gdzie występuje wiele asynchronicznych
zegarów.
Doświadczenie trzeba zebrać.
Adam
No ale coś na początek? Angielskojęzycznych pozycji widzę sporo, tylko
szkoda coś brać, co może być mało przydatne, dlatego pytam znających
temat co by polecili początkującemu.
--
Pozdrawiam
Jakub Rakus
MichaĹ Lankosz
Guest
Mon Aug 19, 2013 8:43 pm
W dniu 2013-08-19 21:59, Jakub Rakus pisze:
Quote:
No ale coś na początek? Angielskojęzycznych pozycji widzę sporo, tylko
szkoda coś brać, co może być mało przydatne, dlatego pytam znających
temat co by polecili początkującemu.
Według mnie ciekawą książką jest:
Mano M. Morris, Kime Charles R.: Podstawy projektowania układów
logicznych i komputerów
Niestety do zdobycia tylko z drugiej ręki, wydawca nie planuje
wznowienia. Wiele przykładów jest opisanych w Verilogu i VHDL więc każdy
może sobie porównać opis tej samej logiki w obu językach. Jest to takie
kompendium od podstaw układów cyfrowych, logiki zerojedynkowej aż do
projektów mikroprocesorów, pamięci itp. Nie ma w niej konkretów
dotyczących układów FPGA czy PLD, przez co może nie jest też idealna do
rozpoczęcia działań z tego rodzaju układami. Daje raczej podstawy natury
bardziej ogólnej układów cyfrowych, jednak zapisane w języku opisu
sprzętu. Dostarcza więc klocki, malutkie, z których można coś
konkretnego zbudować. Każdy klocek jest dokładnie opisany.
--
Michał
Sebastian Biały
Guest
Tue Aug 20, 2013 7:27 pm
On 2013-08-18 23:13, Adam Górski wrote:
Quote:
Ale fakt, w jakimkolwiek HDL-u to trzeba mieć wyższy poziom abstrakcji
niż w C / C++.
Rozwiń tą myśl, proszę. Z moich obserwacji jest dokladnie odwrotnie - to
dopiero od kilku lat w HDLu ktoś ruszyl dupę i zobaczył techniki
programistyczne głównie oparte o abstrakcje z przed dzesięcioleci, do
tej pory odkrywali głównie kwadratowe koła.
Sebastian Biały
Guest
Tue Aug 20, 2013 7:31 pm
On 2013-08-17 22:30, stchebel@gmail.com wrote:
Quote:
A wystarczy napisać A<=B+C
Tak, to faktycznie bardzo proste do pierwszego pytania: a to ma być
unsigned, 1C, 2C czy może w kodzie Graya (i którym) i czy sumator ma być
może szeregowy czy może równoległy?
Mario
Guest
Tue Aug 20, 2013 9:45 pm
W dniu 2013-08-20 22:57, stchebel@gmail.com pisze:
Quote:
W dniu wtorek, 20 sierpnia 2013 21:31:26 UTC+2 użytkownik Sebastian Biały napisał:
On 2013-08-17 22:30, stchebel@gmail.com wrote:
A wystarczy napisać A<=B+C
Tak, to faktycznie bardzo proste do pierwszego pytania: a to ma być
unsigned, 1C, 2C czy może w kodzie Graya (i którym) i czy sumator ma być
może szeregowy czy może równoległy?
Sprawa jest identyczna jak w każdym innym języku. Jeżeli dajmy na to napiszemy w Pascalu a:=b+c; , to równie dobrze można postawić pytanie "czy te zmienne będą typu integer, a może real?". Odpowiedź w obu przypadkach jest taka sama: jak se zmienne/sygnały zadeklarujesz, tak masz. Standardowo przy zapisie A<=B+C narzędzia implementujące zrobią Ci równoległy sumator. Ale jak chcesz, nie ma problemu, żeby poskładać 1-no bitowe sumatory z przeniesieniem w VHDL'u w n-bitowy szeregowiec. Tylko po co?
Tylko, że czasami trzeba robić operacje na różnych typach. I nie ma
standardowych bibliotek do konwersji typów. Różnice między kolejnymi
standardami 1076 niby niewielkie, a w praktyce trzeba się napieprzyć aby
aby coś poprawnie skompilować. W C masz niejawne rzutowanie, możesz też
sam rzutować do jakiegoś typu. Nie musisz do tego celu kombinować z
dołączaniem bibliotek i martwić się czy będą działały z aktualną wersją
języka. No i możesz po prostu pisać w starej wersji standardu i nowy
kompilator się o to nie obrazi.
--
pozdrawiam
MD
Goto page 1, 2 Next