eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › FPGA z punktu widzenia programisty
Ilość wypowiedzi w tym wątku: 52

  • 1. Data: 2016-02-13 00:15:00
    Temat: FPGA z punktu widzenia programisty
    Od: Maciej Sobczak <s...@g...com>

    Uwaga: *celowo* nie zadaję tego pytania na grupie typowo elektronicznej, bo zakładam
    wysoką podatność tego pytania na wzniecenie flejma. Zakładam natomiast, że na tej
    grupie jest co najmniej kilka osób, które są programistami, ale temat FPGA rozpoznały
    i mają na ten temat wyrobioną przez praktykę opinię.

    Pytanie: jeżeli potraktujemy FPGA jako alternatywę[*] dla mikrokontrolerów w
    podobnych zastosowaniach, to w jakim kierunku polecilibyście eksplorację dla kogoś,
    kto potrafi ogarnąć się z mikrokontrolerem? Docelowo chodzi o zastosowania w
    przetwarzaniu danych (przykład: firewall lub jakiś inny tool sieciowy) lub sygnałów
    (przykład: przetwarzanie dźwięku).

    Luźne założenia:

    - raczej VHDL niż Verilog
    - narzędzia raczej open-source niż zamknięte

    Na standardowych sklepach znalazłem dwie fajne płytki:

    https://kamami.pl/zestawy-uruchomieniowe/179815-tera
    sic-de0-nano-zestaw-startowy-z-ukladem-fpga-z-rodzin
    y-cyclone-iv-firmy-altera.html

    https://kamami.pl/zestawy-uruchomieniowe/560134-arti
    x-7-35t-arty-zestaw-ewaluacyjny-dla-fpga-artix-7.htm
    l?search_query=fpga&results=271

    Jedna jest z układem Altery, druga Xilinx. Ta druga jest dla mnie o tyle ciekawa, że
    ma złącze Ethernet, kompatybilność ze złączami Arduino też pobudza wyobraźnię.

    Pytanie: yes, no, cancel? :-)

    Coś w tym temacie warto szczególnie albo czegoś szczególnie nie warto? Literatura
    szczególnie warta polecenia? Itd.

    [*] Pisząc "alternatywa" mam świadomość płynności granicy oraz istnienia np. opcji
    połączenia tych dwóch rozwiązań w jednym układzie. Chodzi o alternatywne metody pracy
    z punktu widzenia programisty a nie o rozważania co jest jednoznacznie lepsze.

    Dziękuję za wskazówki,

    --
    Maciej Sobczak * http://www.inspirel.com


  • 2. Data: 2016-02-13 10:15:28
    Temat: Re: FPGA z punktu widzenia programisty
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2016-02-13 00:15, Maciej Sobczak wrote:
    > Pytanie: jeżeli potraktujemy FPGA jako alternatywę[*] dla mikrokontrolerów w
    podobnych zastosowaniach
    >, to w jakim kierunku polecilibyście eksplorację dla kogoś

    Sugeruje kierunek hybrydowy. To znaczy normalny CPU + FPGA. Głównie
    dlatego że pozwala to na szybki start programiście.

    Z grubsza masz 3 rozwiązania:

    1) Zynq. Sprowadza się to do jednego kawałka krzemu z CPU ARM i FPGA.
    Dzieki kilku sztuczkom komunikacja CPU <> logika jest znaczenie szybsza
    niż w osobnych kostkach. Ceny wyssane z brudnego palca maketoida więc
    sie nie przestrzasz.

    2) CPU + FPGA na osobnych płytkach. Czasem ma to ciekawe własności, np.
    mozna przekonfigurowac FPGA z CPU. Wadą jest powolność komunikacji, ale
    bywa że to nie wada.

    3) Rdzeń popularnego uC zaimplementowany w FPGA. Niestety wymaga dość
    drogich i duzych FPGA, a np. implementacja ARM potyka się o patenty. Są
    darmowe core CPU, ale to nie arm ale np. MIPS albo SPARC. Duzo
    rękodzieła, chyba że weźmiesz gotowiec (Nios, MicroBlaze).

    >, kto potrafi ogarnąć się z mikrokontrolerem?

    Hybryda pozwoli na latwiejsze wejście w świat fpga.

    > Luźne założenia:
    > - raczej VHDL niż Verilog

    Niestety VHDl jest w odwrocie z uwagi na zdumiewające tempo rozwoju
    narzedzi do testowania w verilogu w ostatnich latach.

    > - narzędzia raczej open-source niż zamknięte

    Świat EDA składa się w 99% z komercyjnych, absurdalnie drogich,
    popsutych i czerpiących całymi garściami z lat 60-tych narzędzi. W
    dodatku zajmujących kikadziesiąt GB. Na porządku dziennym jest
    szyfrowanie modeli, brak wymiany danych między środowiskami, brak wersji
    darmowych (a jak są to są poobcinane). Chory sen pijanego marketoida. Sorry.

    > Na standardowych sklepach znalazłem dwie fajne płytki:
    > https://kamami.pl/zestawy-uruchomieniowe/179815-tera
    sic-de0-nano-zestaw-startowy-z-ukladem-fpga-z-rodzin
    y-cyclone-iv-firmy-altera.html
    > https://kamami.pl/zestawy-uruchomieniowe/560134-arti
    x-7-35t-arty-zestaw-ewaluacyjny-dla-fpga-artix-7.htm
    l?search_query=fpga&results=271
    > Jedna jest z układem Altery, druga Xilinx. Ta druga jest dla mnie o tyle ciekawa,
    że ma złącze Ethernet, kompatybilność ze złączami Arduino też pobudza wyobraźnię.
    > Pytanie: yes, no, cancel? :-)

    Szukaj Zynq jeśli pieniądze to nie problem.


  • 3. Data: 2016-02-13 12:56:07
    Temat: Re: FPGA z punktu widzenia programisty
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2016-02-13 10:15, Sebastian Biały wrote:
    > Szukaj Zynq jeśli pieniądze to nie problem.

    Tu jest jedna z popularniejszych:

    http://store.digilentinc.com/zybo-zynq-7000-arm-fpga
    -soc-trainer-board/

    A tu kilka:

    http://zedboard.org/

    Świetny przykład jak 50zł (fpga) + 50zł (arm) = 300zł w świecie eda :)


  • 4. Data: 2016-02-13 23:51:10
    Temat: Re: FPGA z punktu widzenia programisty
    Od: Maciej Sobczak <s...@g...com>


    > Sugeruje kierunek hybrydowy. To znaczy normalny CPU + FPGA. Głównie
    > dlatego że pozwala to na szybki start programiście.

    To pozwala na połączenie metod sekwencyjnych z równoległymi i tu bym widział główną
    zaletę. Przy czym jako CPU rozumiem uC.

    > Z grubsza masz 3 rozwiązania:
    >
    > 1) Zynq. Sprowadza się to do jednego kawałka krzemu z CPU ARM i FPGA.

    Tak. Ciekawe.

    > 2) CPU + FPGA na osobnych płytkach.

    Tak. Albo na tej samej płytce. Przecież nikt mi nie zabroni wlutowania dwóch układów
    (uC i FPGA) obok siebie - co pewnie ułatwiłoby też zrobienie równoległej "magistrali"
    do szybszej komunikacji pomiędzy nimi.

    > Czasem ma to ciekawe własności, np.
    > mozna przekonfigurowac FPGA z CPU.

    Tak. Mam pewne urządzenie, w którym można zrobić przyjemny dla użytkownika update i
    przypuszczam że właśnie tak to się odbywa.

    > 3) Rdzeń popularnego uC zaimplementowany w FPGA.

    Jestem tego świadomy, ale nie o to mi chodzi.

    > > Luźne założenia:
    > > - raczej VHDL niż Verilog
    >
    > Niestety VHDl jest w odwrocie

    Czyli co - coraz gorszy jest? :-)

    > z uwagi na zdumiewające tempo rozwoju
    > narzedzi do testowania w verilogu w ostatnich latach.

    Rozumiem, ale nie przeszkadza mi to. Interesuje mnie minimalizacja ilości użytych
    narzędzi, więc to, że wokół Veriloga ich przybywa, nie jest dla mnie argumentem
    przeciwko VHDL. :-)

    Wyobrażam to sobie tak, że podobnie jak w przypadku uC, proces wymaga nominalnie
    dwóch narzędzi: a) translatora, który przerobi źródło w VHDLu na coś, co można b)
    wgrać do układu. Tak to działa w przypadku popularnych uC.

    > > - narzędzia raczej open-source niż zamknięte
    >
    > Świat EDA składa się w 99% z komercyjnych, absurdalnie drogich,
    > popsutych i czerpiących całymi garściami z lat 60-tych narzędzi.

    Szkoda. Więc upraszczamy pytanie: czy jeśli zminimalizujemy zestaw narzędzi do tych
    dwóch wymienionych powyżej (czyli translator + upload), to zmieścimy się w
    open-source, czy nie da rady? To jest dość poważny argument przy porównaniach z uC. I
    nie chodzi o samą cenę nabycia tych narzędzi, tylko o metodę ich rozwoju i filozofię
    użycia.

    > Szukaj Zynq jeśli pieniądze to nie problem.

    Czy ten wybór ma wpływ na dalszy wybór narzędzi?

    --
    Maciej Sobczak * http://www.inspirel.com


  • 5. Data: 2016-02-14 10:56:19
    Temat: Re: FPGA z punktu widzenia programisty
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2016-02-13 23:51, Maciej Sobczak wrote:
    >> 2) CPU + FPGA na osobnych płytkach.
    > Tak. Albo na tej samej płytce.

    Zapomnialem dopisać: krzemu. Oczywiście na jednym PCB.

    >> Niestety VHDl jest w odwrocie
    > Czyli co - coraz gorszy jest? :-)

    Nie wiem czy gorszy. Z punktu widzenia tego gdzie siedzę verilog jest
    kumulacją wszelkiego zła (z punktu widzenia teorii języków
    programowania). I jednocześnie jest znacznie mniej verbose niż vhdl. W
    dodatku verilog wymyslano na kolanie dzięki czemu ma fundamentalne bugi,
    natomiast vhdl wymyslali matematycy (kradnąc adę :) dzięki czemu
    szybciej zużywasz klawiaturę.

    Tak czy inaczej verilog ma obecnie najlepiej zorganizowane testowanie
    jednostkowe i kompleksowe i widać rozwoj. vhdl ma zaś ten sam problem co
    C++: nowy feature? W przyszyłm dziesięcioleciu może...

    >> z uwagi na zdumiewające tempo rozwoju
    >> narzedzi do testowania w verilogu w ostatnich latach.
    > Rozumiem, ale nie przeszkadza mi to.

    Musi. Z tego powodu że popularnośc rdzeni w verilogu rośnie. To powoduje
    że często nie masz wyboru innego jak verilog.

    Co prawda większość mechanizmów syntezy i symualcji radzi sobie z mixed
    language, ale to jest spory kłopot ponieważ te jezyki nie są wprost
    kompatybilne na "poziomie drutów", mają inną filozofię i terzeba dobrze
    wiedzieć co się robi.

    > Interesuje mnie minimalizacja ilości użytych narzędzi

    Zakladając że użyjesz tylko narzędzi do syntezy i symulacji i tak
    zassasz 30GB szitu ktory zawieras wszystko co tylko dali radę upchnąć.

    > Wyobrażam to sobie tak, że podobnie jak w przypadku uC
    >, proces wymaga nominalnie dwóch narzędzi:
    > a) translatora, który przerobi źródło w VHDLu na coś

    Synteza. Z grubsza zmienia algorytmy na bramki i druty. Oczywiście nie
    wszystkie konstrukcje sa syntezowalne. Niektóre syntezują się inaczej
    niż byś chciał choćby dlatego że w FPGA nie ma algroytmiki. Z tego
    powodu projekty hdlowe pisze się często 2 razy: raz behavioralnie a raz
    na poziomie rtl. I tylko rtl jest syntezowalne i da się zaimplementować
    w sprzęcie.

    > , co można b) wgrać do układu.

    Tu już prosciej, zazwyczaj w tym celu jest albo jtag albo jakaś pamięć
    (albo symulator w postaci cpu).

    >>> - narzędzia raczej open-source niż zamknięte
    >> Świat EDA składa się w 99% z komercyjnych, absurdalnie drogich,
    >> popsutych i czerpiących całymi garściami z lat 60-tych narzędzi.
    > Szkoda. Więc upraszczamy pytanie: czy jeśli zminimalizujemy zestaw narzędzi
    > do tych dwóch wymienionych powyżej (czyli translator + upload)
    >, to zmieścimy się w open-source

    Nie. Z grubsza dlatego że architektura fpga jest zamknięta. To oznacza
    że OS narzędzia syntezy nie tylko nie wiedzą jakie bloki funkcjonalne
    generować ale nie wiedzą też jak stworzyć bitstream do wgrania do fpga.
    To wie tylko narzędzie producenta danego chipa. Ostatnio obwieszczono
    światu że jakiś darmowy syntezer dał rade wygenerować bitstream do CPLD
    (ktorego już chyba nie ma na rynku). To świadczy o tym jak daleko w tyle
    są programy OS.

    >, czy nie da rady?

    Nie da rady. Rynek EDA jest zupełnie inny niż rynek uC. Zachowanie
    producentów jest raczej podobne do MicroChipa niż Atmela.

    > I nie chodzi o samą cenę nabycia tych narzędzi, tylko o metodę ich rozwoju i
    filozofię użycia.

    Filozofia użycia sprawadza się do 2 elementów:

    a) "a co to jest make"? Zaś po mojej odpowiedzi "ale my i tak zawsze
    budujemy od zera bo jest pewniej".

    b) "na h.. nam jakieś systemy kontroli wersji, mamy ftpa".

    Nie przesadzam. Lata 60-te, zarowno w obsłudze narzedzi jak i w
    mentalności userów i nic nie wskazuje na zmiany. Miałem kiedyś nadzieje
    że to kwestia poczekania aż problem sam się rozwiąże bilogicznie, ale
    nie... to tak nie zadziałało.

    PS. Niedawno verilog wzbogacił się o obiektowość (potrzebną przy
    testowaniu w symulatorach). To tak strasznie bolało programistów
    hdlowych że rynek zapełnił się narzedziami ktore myślą i piszą kod tego
    typu za nich.

    >> Szukaj Zynq jeśli pieniądze to nie problem.
    > Czy ten wybór ma wpływ na dalszy wybór narzędzi?

    Wybór vendora FPGA oznacza przywiązanie się do jakiegoś narzędzia. Model
    pamięci DDR będzie inny u jednego a inny u drugiego. Zawartość FPGA też
    (np. układy mnożące, peryferia itd). Może pisać częsciowo abstrakcyjnie,
    ale w HDLu nie wymyslono tego tak skutecznie jak w normalnych językach.
    Tam masz druty i tyle, a abstrakce zapewnia się w taki sposób że się nią
    nikt nie przejmuje.

    Zerknij na OpenCores dla sportu. Przygotuj się na utratę szarych komórek
    po zerknięciu w niektóre projekty. Tak, Ci sami ludzie piszą tworzą
    elektronikę do respiratorów.


  • 6. Data: 2016-02-14 16:54:56
    Temat: Re: FPGA z punktu widzenia programisty
    Od: Maciej Sobczak <s...@g...com>

    > Nie. Z grubsza dlatego że architektura fpga jest zamknięta.

    OK. To mi bardzo dużo wyjaśnia. Faktycznie inaczej, niż przy uC (przyjmijmy
    Cortex-M), gdzie każdy producent (albo nawet seria układów) ma inny rozkład
    peryferiów w pamięci, ale przynajmniej mogę użyć tego samego kompilatora do programów
    przeznaczonych na różne układy i jakoś się bronić stosując różne abstrakcje. To już
    spore ułatwienie.
    Szkoda, że rynek FPGA się tak nie uporządkował.

    > Wybór vendora FPGA oznacza przywiązanie się do jakiegoś narzędzia.

    Rozumiem. Stąd, jak przypuszczam, bardziej trwałe wybory - jak się jakaś firma
    zdecyduje np. na Xilinksa, to do końca świata pałuje układy tylko na tym.

    Z drugiej strony - skoro wybór vendora jest tak istotny, to może faktycznie warto od
    razu wycelować w Zynq.

    > Zerknij na OpenCores dla sportu. Przygotuj się na utratę szarych komórek
    > po zerknięciu w niektóre projekty. Tak, Ci sami ludzie piszą tworzą
    > elektronikę do respiratorów.

    Kompletnie mnie to nie dziwi. Z innej perspektywy, ale dochodzę do wniosku, że branża
    systemów krytycznych ma największy problem z jakością HR.
    Dlatego nawet nie zamierzałem korzystać z tego, co ta branża produkuje (patrz
    wspomniana minimalizacja ilości narzędzi), miałem nadzieję na samodzielną eksplorację
    terenu. Muszę jednak przyznać, że bardzo starannie mnie do tego zniechęcasz. :-)

    --
    Maciej Sobczak * http://www.inspirel.com


  • 7. Data: 2016-02-14 18:06:44
    Temat: Re: FPGA z punktu widzenia programisty
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2016-02-14 16:54, Maciej Sobczak wrote:
    >> Wybór vendora FPGA oznacza przywiązanie się do jakiegoś narzędzia.
    > Rozumiem. Stąd, jak przypuszczam, bardziej trwałe wybory - jak
    > się jakaś firma zdecyduje np. na Xilinksa, to do końca świata pałuje
    układy tylko na tym.

    Nie, nie przesadzajmy. Kod hdlowy jest przenośny. Problemy pojawiają się
    kiedy chcesz korzystać ze specyficznych cech układów. W Twoim wypadku
    (dodatkowy CPU) ma to znaczenie zarówno kiedy wsadzą dodatkowo arma na
    krzem jak i gdy chcesz zrobić CPU w FPGA (nios/microblaze). Tam
    przywiązanie do vendora jest bardzo bolesne.

    > Z drugiej strony - skoro wybór vendora jest tak istotny
    >, to może faktycznie warto od razu wycelować w Zynq.

    Zynq jest wazny kiedy masz do czynienia z duzym strumieniem cpu<->fpga.
    Masz? Jeśli nie to czesto rozsądnie jest wstawić arma za $5 i fpga jako
    osobne kości.

    Jakoś na procesory z niewielką programowalną logika nie mogę się
    doczekać. Kilkaset makrocel bylo by wystarczające do zastapnienia
    drogich fpga w wielu zastosowaniach. Zamiast tego dostaje absurdalnie
    drogie Zynq i płot z patentów.

    > Z innej perspektywy, ale dochodzę do wniosku, że branża
    > systemów krytycznych ma największy problem z jakością HR.

    Wbrew pozorom ostatnio w EDA testowanie kodu stało się celem ktory
    decyduje o dopuszczeniu rozwiązań na rynek. Więc pojawiło się od groma
    narzędzi, które błyskawicznie przerosły narzędzia stosowane w "zwykłym"
    programowaniu pod względem zarządzania testami.

    Problemem nie jest to czy kod jest przetestowany. Problemem jest to że z
    uwagi na tradycje developerskie w EDA kod jest *dziadowski* i
    przetestowany jednocześnie. Poprawia komfort psychiczny menagerów ale
    programisci pracują w toskycznym środowisku.

    > miałem nadzieję na samodzielną eksplorację terenu.

    No więc istnieje cos takiego jak ghdl, icarus, wtyczki do eclipse itd.
    Ale finalna syntezę/implementację wykonujesz w narzedziu vendora.

    > Muszę jednak przyznać, że bardzo starannie mnie do tego zniechęcasz. :-)

    Ponieważ strasznie się zawiodłem na EDA. Czego się nie dotkniesz jest
    zawsze inaczej niż w normalnym programowaniu, od groma debilizmów
    przekutych na "standardy przemyslowe", niezrozumiale zachowania
    producentów, trzepanie kasy na bardzo kiespkim oprogramowaniu, zamknięte
    prawie wszystko, innowacje przez więcej gigabajtów ikonek, impelemntacje
    standardów przez "my wiemy lepiej" i *stada* ludzi mówiących Ci że
    jesteś idiotą że tak to widzisz. Bo wszystko jest ok: zawsze tak było.

    PS. Jesli chcesz się tylko pobawić to kup płytke z prostym fpga, olej
    programowanie szeregowe tylko od razu na głeboką wodę.


  • 8. Data: 2016-02-15 18:04:57
    Temat: Re: FPGA z punktu widzenia programisty
    Od: k...@g...com

    W dniu sobota, 13 lutego 2016 00:15:02 UTC+1 użytkownik Maciej Sobczak napisał:
    > Coś w tym temacie warto szczególnie albo czegoś szczególnie nie warto? Literatura
    szczególnie warta polecenia? Itd.
    Po prostu sciagnij sobie np. Quartusa ze strony Altery (o ile nie trafisz na przerwe
    konserwacyjna,
    oni raz w tygodniu wylaczaja serwery z downloadem, zeby, no nie wiem, wentylatory
    naoliwic?)
    i zobacz jak wyglada caly workflow. W samym srodowisku (bez fizycznego FPGA) mozesz
    zrobic
    wszystko poza dzialaniem ukladu na rzeczywistej kostce. Tam jeszcze wypada sciagnac
    ModelSima
    do symulacji dzialania (stare Quartusy mialy prosty symulator, ale zdecydowali sie
    tego pozbyc
    na korzysc podpinania zewnetrznego oprogramowania wprost z horroru) ukladow.

    Jesli chodzi o alternatywne metody pracy to mozesz sobie oskryptowac w TCLu niektore
    czynnosci.

    Na studiach implementowalem mikroprocesor w FPGA, wolalbym o tym zapomniec;)

    Pozdrawiam,
    --
    Karol Piotrowski


  • 9. Data: 2016-02-16 11:15:15
    Temat: Re: FPGA z punktu widzenia programisty
    Od: Wojciech Muła <w...@g...com>

    On Saturday, February 13, 2016 at 10:16:37 AM UTC+1, Sebastian Biały wrote:
    > On 2016-02-13 00:15, Maciej Sobczak wrote:
    > > Pytanie: jeżeli potraktujemy FPGA jako alternatywę[*] dla mikrokontrolerów w
    podobnych zastosowaniach
    > >, to w jakim kierunku polecilibyście eksplorację dla kogoś
    >
    > Sugeruje kierunek hybrydowy. To znaczy normalny CPU + FPGA. Głównie
    > dlatego że pozwala to na szybki start programiście.

    Co sądzisz o tym? (OpenCL na FPGA)
    https://www.altera.com/products/design-software/embe
    dded-software-developers/opencl/overview.html

    w.


  • 10. Data: 2016-02-17 18:50:31
    Temat: Re: FPGA z punktu widzenia programisty
    Od: platformowe głupki <N...@g...pl>

    vhdl to moim zdaniem język stworzony przez ludzi chorych umysłowo...
    próbowałem się z nim oswoić, ale nie dałem rady...

strony : [ 1 ] . 2 ... 6


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: