eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaFPGA, VHDL detekcja zbocza i problemy › FPGA, VHDL detekcja zbocza i problemy
  • Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!ne
    ws.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews
    .com!nntp.giganews.com!postnews.google.com!f19g2000yqo.googlegroups.com!not-for
    -mail
    From: k...@g...com
    Newsgroups: pl.misc.elektronika
    Subject: FPGA, VHDL detekcja zbocza i problemy
    Date: Fri, 22 May 2009 07:20:42 -0700 (PDT)
    Organization: http://groups.google.com
    Lines: 74
    Message-ID: <0...@f...googlegroups.com>
    NNTP-Posting-Host: 85.14.94.202
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    X-Trace: posting.google.com 1243002042 5455 127.0.0.1 (22 May 2009 14:20:42 GMT)
    X-Complaints-To: g...@g...com
    NNTP-Posting-Date: Fri, 22 May 2009 14:20:42 +0000 (UTC)
    Complaints-To: g...@g...com
    Injection-Info: f19g2000yqo.googlegroups.com; posting-host=85.14.94.202;
    posting-account=jJzQpAoAAAAuOaYIQWN2lgXKHdsiiigu
    User-Agent: G2/1.0
    X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10)
    Gecko/2009042316 Firefox/3.0.10,gzip(gfe),gzip(gfe)
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:564161
    [ ukryj nagłówki ]

    Witam, pracuje ostatnio nad urządzeniem pośredniczącym między
    kontrolerem IDE z komputera a dyskiem twardym. Całość testuje na
    płytce startowej altera cyclone II starter board (http://
    www.kamami.pl/?id_prod=4520400).

    Sygnały interfejsu ata idą do płytki startowej przez bufory 74lvc244
    (sygnały sterujące) oraz '245 (dwukierunkowe linie danych).

    Z podłączeniem wszystko okej, opisuje VHDLem prosty kawałek kodu który
    modyfikuje odpowiedź dysku na IDENTIFY DEVICE i to działa ładnie,
    transparentnie, bezproblemowo, ale mam problem, kiedy próbuje np.
    wykryć zbocze sygnału DIOR idącego z hosta.

    Sygnał ten zgodnie ze specyfikacją ATA może mieć okres minimum 120ns
    (mowa o trybie Multiword DMA2). Zegar taktujący układ to 50MHz
    przepuszczone przez wbudowane PLL (3*50MHz)=150MHz. Nie powinno być
    więc problemów z wykrywaniem zmian sygnału DIOR bo częstotliwość ta
    jest wielokrotnie wyższa....

    Niestety to tylko teoria, w praktyce prawie połowę zboczy sygnału
    HOST_DIOR_N "gubie", kiedy próbuje je wykrywać w procesie
    zsynchronizowanym z głównym zegarem...

    Prosty przykład:

    process(CLK,KEY0)
    begin
    if KEY0='0' then
    debug_cnt<=(others=>'0');
    dior_edge<='0';
    elsif CLK'event and CLK='1' then
    if HOST_DIOR_N='1' and dior_edge='0' then
    debug_cnt<=debug_cnt+1;
    dior_edge<='1';
    else
    dior_edge<='0';
    end if;
    end if;
    end process;

    Moim skromnym zdaniem powinno to zliczać w debug_cnt ilość wystąpień
    narastających zboczy sygnału HOST_DIOR_N, który jest kilkanaście razy
    wolniejszy od CLK... I co się okazuje? Zmienna debug_cnt zawiera około
    połowę mniejszą wartość niż powinna....

    Przykład drugi:

    process(HOST_DIOR_N,KEY0)
    begin
    if KEY0='0' then
    debug_cnt<=(others=>'0');
    elsif HOST_DIOR_N'event and HOST_DIOR_N='1' then
    debug_cnt<=debug_cnt+1;
    end if;
    end process;

    W tym przypadku debug_cnt zawiera już właściwą wartość, zgodną z
    ilością zboczy narastających sygnału HOST_DIOR_N. Ja potrzebuję jednak
    mieć synchronizację z CLK głównym więc nie mogę sobie pozwolić na
    takie rozwiązanie.

    Przepraszam za przydługiego posta i dziękuję za wytrwałość w czytaniu
    oraz ewentualną pomoc w rozwiązaniu problemu...

    pozdrawiam.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: