Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Projekt na FPGA. Czy to jest dobry pomysł?

krzysiek_tkd 04 Oct 2007 18:08 2378 6
  • #1
    krzysiek_tkd
    Level 11  
    Mam do wykonania projekt- analizator stanów logicznych z wizualizacją na PC. Myślałem o wykorzystaniu właśnie układu FPGA. Zrobić generator adresów, i dzięki niemu ładować próbki do pamięci (16-32 kanały i częstotliwość ok 100MHz). Całość spiąć z kompem przez USB i pobierać próbki z pamięci do pliku a później go odczytywać za pomocą softu na PC. Do dyspozycji mam: Xilinx Spartan-3E 500 Starter Kit. Czy to dobry pomysł ewentualnie jakieś rady?
  • #2
    [g.d.]
    Level 18  
    Komunikacje z PC proponowałbym przez mikrokontroler z wbudowanym USB i dostepnymi funkcjami API, zreszta na tej płytce masz chyba jakiegos Cypress-a. Jest kwestia standardów napięć na wejściach i zabezpieczenia wejść która mnoży sie przez ilość kanałów. Kwestia sygnału taktującego próbkowanie, sygnał z generatora sygnału zegarowego(plus mnożenie/dzielenie czestotliwosci) oraz jeden z kanałów jako wejscie sygnału zegarowego. Jako opcję można zrobić wewnętrzny analiztor stanów logicznych w stylu ChipScope Pro czy SignalTap, czyli bez babrania się w wychodzenie na "poziom miedzi". Zależnie od długości "sond" znaczenia nabierają przesłuchy i odbicia. Coś takiego robiłem na Spartan-II, ale nie wiem na ile moje przemyślenia są wciąż aktualne.
  • #3
    krzysiek_tkd
    Level 11  
    Tak naprawdę to projekt ten będzie moim pierwszym z FPGA - może na wyrost ale zawsze jakiś cel, i ewentualnie mam w nim udowodnić jakie problemy można napotkać w przypadku stosowania tego rzędu częstotliwości.
    Dobrze by było gdybym otrzymał jak najdłuższy rekord zapisu próbek - ograniczenia pamięci. Kwestia czy dobrze myślę - ewentualnie może jakieś sprawdzone propozycje?
  • #4
    [g.d.]
    Level 18  
    Generalnie jakchiś wielkich cudów to nie ma, ot wielki komparator chodzący na szybkim zegarze. Dysponując taką płytka możesz pokusić sie o przechowywanie pobranych próbek w pamięci SDRAM, ale wtedy najbardziej będzie Cie trzymać szybkość zapisu do pamięci. Pamięć wewnątrz ukłądu napewno będzie szybsza. Siła analizatora stanów logicznych nie tkwi w ilości próbek lecz w łapaniu dokładnie tych przedziałów czasowych o które chodzi.

    Troche na wyrost nadmienie że próbki oczywiście zbiera sie do "bufora kołowego" i nadpisuje najstarsze próbki, dzięki czemu masz w każdej chwili zapas starych próbek.

    Pamietam że nastawę do wyzwalania analizatora wpisywałem szeregowo z mikrokontrolera już po zaprogramowaniu układu FPGA. Nie pamiętam czy był to już inny endpoint na USB, ale mikrokontroler był w stanie to rozróżnić. Sama zaś sygnalizacja z analizatora do komputera nie doczekałą sie swojego przerwania tylko musiała być co jakiś czas odpytywana.

    Jeśli to twój pierwszy projekt FPGA to sugeruje rozwijanie wręcz nadmiarowych modułów do debugowania projektu w sprzęcie, bo to kosztuje tylko zasoby sprzętowe, a zawsze coś nie działa.

    Co do szybkości to nie przeskoczysz szybkości komórek IO oraz zapisu do pamięci. Pozostałe czynności można robić równolegle lub wręcz w tak zwanym międzyczasie.

    Poza tym problem sformułowany jest dość ogólnie i cieżko coś konkretniejszego napisać. Jakbyś napotkał jakies realne problemy to daj znać.
  • #5
    J.A
    Level 28  
    Quote:
    Generalnie jakichś wielkich cudów to nie ma, ot wielki komparator chodzący
    na szybkim zegarze. /.../


    az tak proste to nie jest, jesli ma byc z tego jakas korzysc;
    zwykle uzytkownik takiego logic analizer chcialby moc zdefiniowac trigger
    jako okreslony poziom na 1-3 liniach a reszta "don't care";
    i zeby sie dalo zrobic OR lub AND na sygnalach uzytych jako tryger;
    do tego jeszcze wykryc zmiane z L na H i odwrotnie;
    calkiem sporo fajnej zabawy z samym zaprogramowaniem ukladu wyzwalania
    analizatora;
    po uwzglednieniu obslugi pamieci i komunikacji ze swiatem zewnetrznym
    wychodzi calkiem niebanalny projekt;
    [smutne jest to, ze i w quartusie i w ise, o czym juz wspominal g.d, taki analizator
    jest wbudowany - wiec pisanie wlasnego analizatora wlasciwie nie ma
    zadnego, procz edukacyjnego, sensu]

    osobna sprawa to sondy do probkowania - bez specjalnej elektroniki wejsciowej,
    przewodow o okreslonej rezystancji, watpie by udalo sie osiagnac czestotliwosc
    pracy powyzej 40Mhz;
    to jest calkiem osobne i nielatwe zadanie, dla mnie trudniejsze
    niz sam analizator :);

    J.A
  • #6
    [g.d.]
    Level 18  
    J.A wrote:
    do tego jeszcze wykryc zmiane z L na H i odwrotnie;


    Mam pytanie, bo nie jestem pewien czy dobrze zrozumialem. Czy chodzi o zmiane ze stanu wysokiego na niski, popularnie zwanych 1 i 0, czy współczesne analizatory pozwalaja wykrywać jakies "słabe" sygnały jak 'L' i 'H' w VHDL-u ? Dziwne pytanie ale jestem tu nowy więc mam prawo. :D
  • #7
    J.A
    Level 28  
    [g.d.] wrote:

    Czy chodzi o zmiane ze stanu wysokiego na niski, popularnie zwanych
    1 i 0, czy współczesne analizatory pozwalaja wykrywać jakies "słabe" sygnały jak 'L' i 'H' w VHDL-u ?


    po prostu zmianw wartosci logicznej, z '1' na '0' i odwrotnie;
    a przy okazji - mam /w pracy/ taki analizator, co by potrafil wykryc
    slabe 'H' czy 'L', ale troche to kosztuje;

    [g.d.] wrote:
    Dziwne pytanie ale jestem tu nowy więc mam prawo. :D


    kazdy jest kiedys gdzies nowy ;)

    J.A