impuls Przechwytywanie - wygenerowany impuls może t być odbierane

E

EDA_hg81

Guest
W mojej konstrukcji, użyłem dwóch państwowych maszyn.

Automat pierwsze działa na 4MHz, które generują impuls 500us.

Druga maszyna państwa działa na 16 MHZ, które otrzymają ten impuls 500us.

Mój kod do sprawdzenia tętna jest następujące:

Kod:

Proces (refclk)

zacząć

if (rising_edge (refclk)), a następnie

fstart_reg1 <= cformat;

fstart_reg2 <= fstart_reg1;

if (fstart_reg1 = "1" i fstart_reg2 = '0 '), a następnie

... ... ... ... ... ... ... ... ... ... ....

end if;

end if;

end process;
 
Fist wszystkich metastabilności może być problem.Otrzymywać filpflops można grzęźnie w meta stan stabilny.Jednak jeśli to jest twój problem, to powinien działać czasami po prostu nie cały czas.

Aby usunąć problemy metastabilności (także zmniejszenie ich aż do somthing jak 0,000001% w dzieje) doulbe zarejestrować swoją logiką przed użyciem jak poniżej

Kod:

Proces (refclk)

zmiennej temp: std_logic_vector (1 downto 0);

zacząć

if (rising_edge (refclk)), a następnie

fstart_reg1 <= temp (0);

fstart_reg2 <= fstart_reg1;

if (fstart_reg1 = "1" i fstart_reg2 = '0 '), a następnie

... ... ... ... ... ... ... ... ... ... ....

end if;

temp (temp'high downto 1): = cformat i temp (temp'high-1 downto 0);

end if;

end process;
 
Proszę wyjaśnić, jak to będzie działać?

przeze mnie dane są przetwarzane w dwóch etapach flip-flop już ...

<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Neutralne" border="0" />
 
Tak.You are right.

What I want to użycie sygnału wewnątrz 4 MHZ domeny do uruchomienia modułu wewnątrz 16 MHZ domeny.

Używam Altera sygnału wykorzystać w celu sprawdzenia sygnałów, nic się nie stało.

Jeśli kiedyś wstrząsnąć strony tak:

Kod:

getformat <= '1 ';

if (ackformat = '1 '), a następnie

getformat <= '0 ';

format_state <= idle;

end if;
 
Cytat:

Używam @ sygnał ltera kranu, by sprawdzić sygnały, nic się nie stało.
 
Wiem, gdzie problemem jest:

Kiedy potwierdzić sygnału (ackformat) wewnątrz 16 MHZ domeny próby uruchomienia modułu wewnątrz 4MHz, puls potwierdzić sygnału (ackformat) jest zbyt wąskie i nie mogą być przechwycone przez 4 MHZ domeny.

Thank you anyway.

 
Jeżeli nie zachodzi stosunek fazy między zegar domen następnie metastabilności zawsze jest problem, który wymaga cierpliwości.Albo kod będzie wszystkie nagłe tajemnicze przestać działać dopóki go przeprogramować.

Jednym ze sposobów radzenia sobie z metastabilności jest upewnienie się, że wszystkie sygnały są podwójne klapki folped przed ich używać.Jak w kodzie sygnał przekroczenia domeny zegar jest stosowana po poddano tylko jedno filpflop (nie jest to recormended).

I've attahced kodu stworzyłem dawno temu.It's good for getting powolne zmiany danych parralell (w odniesieniu do obu zegarach) z jednej domeny do innego zegara i gwarancję, że dostał tam.Może warto sprawdzić, jeśli będziemy robić więcej rzeczy podobny do tego.

Co to jest kod:
- Użytkowników metastabilne rejestrów.
- Spójrz na krawędź rosnące określić, kiedy dane są ważne
- Legitymacje powrót acknolge sygnał odbierać stronie (przydatne wiedzieć, kiedy można wysyłać następnego).
Jest to bardzo proste i bardzo powoli.

Applogise z jakiegoś powodu musiała dodać. Pdf na koniec (po prostu usunąć. Pdf)

Jeżeli dane przenoszone są szybko skorzystaj async FIFO.

Po prostu stara się być pomocna daj mi znać, jeśli dissagree z niczego tutaj lub może zrobić w lepszy sposób.
Przepraszamy, ale musisz się zalogować, aby wyświetlić ten załącznik

 
Cytat:

Wiem, gdzie problemem jest:Kiedy potwierdzić sygnału (ackformat) wewnątrz 16 MHZ domeny próby uruchomienia modułu wewnątrz 4MHz, puls potwierdzić sygnału (ackformat) jest zbyt wąskie i nie mogą być przechwycone przez 4 MHZ domeny.
 
Mam stałą moich błędów.

Przepraszamy za wprowadzenie w błąd ci, myślałem, że to problem metastabilności ale w końcu dowiedziałem się, to drżenie rąk problemu.

Jeszcze raz dziękuję i dobry weekend.

 

Welcome to EDABoard.com

Sponsor

Back
Top