eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaFPGA, VHDL detekcja zbocza i problemy › Re: FPGA, VHDL detekcja zbocza i problemy
  • Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not
    -for-mail
    From: Jerry1111 <j...@w...pl.pl.wp>
    Newsgroups: pl.misc.elektronika
    Subject: Re: FPGA, VHDL detekcja zbocza i problemy
    Date: Fri, 22 May 2009 20:47:32 +0100
    Organization: http://onet.pl
    Lines: 53
    Message-ID: <gv6vhs$bu2$1@news.onet.pl>
    References: <0...@f...googlegroups.com>
    NNTP-Posting-Host: 94-195-52-21.zone9.bethere.co.uk
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.onet.pl 1243021693 12226 94.195.52.21 (22 May 2009 19:48:13 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Fri, 22 May 2009 19:48:13 +0000 (UTC)
    User-Agent: Thunderbird 2.0.0.21 (Windows/20090302)
    In-Reply-To: <0...@f...googlegroups.com>
    X-Antivirus: avast! (VPS 090522-0, 22/05/2009), Outbound message
    X-Antivirus-Status: Clean
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:564178
    [ ukryj nagłówki ]

    k...@g...com wrote:
    > 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;

    HOST_DIOR_N jest synchroniczny z Twoim zegarem? Nie? To masz hazard.
    Daj przerzutnik D na noge Altery i opiero potem do 'if' - pomoze.
    Niestety wyjdzie Ci latencja 1CLK, i na to nie ma rady (chyba ze
    asynchronicznie wszystko zrobisz).

    > 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.

    Tutaj HOST_DIOR_N nie musi byc synchronicznie z Twoim zegarem - dlatego
    dziala.

    --
    Jerry1111

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: