-
Data: 2009-05-22 14:20:42
Temat: FPGA, VHDL detekcja zbocza i problemy
Od: k...@g...com szukaj wiadomości tego autora
[ pokaż wszystkie 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.
Następne wpisy z tego wątku
- 22.05.09 19:47 Jerry1111
- 22.05.09 21:10 Konop
- 22.05.09 21:14 Konop
- 22.05.09 21:16 Konop
- 22.05.09 23:02 Jerry1111
- 23.05.09 05:20 k...@g...com
- 23.05.09 06:21 J.F.
- 23.05.09 08:07 k...@g...com
- 23.05.09 09:09 Jerry1111
- 24.05.09 00:09 JA
Najnowsze wątki z tej grupy
- Stare filmy o technice
- Zasilanie własnych konstrukcji przez PoE
- Jak działa domofon?
- Co oni mierzą miernikiem
- 40 lat OrCAD-a
- Multimetr z bluetooth
- Ciekawa mapka z BTS-ami
- Lampy uliczne LED z kubkiem
- Pęczniejące LiPo
- wyłącznik ścienny
- "Wybitna" inteligencja AI
- test stereo
- Bluetooth stereo
- W USA budują pierwszą komercyjną elektrownię fuzji jądrowej
- Weryfikacja myjki ultradźwiękowej
Najnowsze wątki
- 2025-10-19 HYUANDAI NIE POJEDZIE DALEJ! Potrzebuje PILNIE POMOCY!
- 2025-10-18 BLIK a Sprawa Polska
- 2025-10-18 UE i woda pitna do chłodzenia
- 2025-10-18 Zakrzewo => Konsultant SAP HCM <=
- 2025-10-17 "Przypadkowo wylosowany" sędzia odmówił ekstradycji Niemcom za NordStream
- 2025-10-17 Stare filmy o technice
- 2025-10-17 Warszawa => Starszy Konsultant SAP - obszar PP <=
- 2025-10-17 Warszawa => Java Full Stack Developer <=
- 2025-10-17 Warszawa => Konsultant Wiodący SAP PP <=
- 2025-10-17 Warszawa => Key Account Manager (Usługi HR) <=
- 2025-10-17 Ostrów Wielkopolski => Specjalista ds. Marketingu Online (PPC) <=
- 2025-10-17 Gdańsk => Konsultant ds. Wdrożeń ERP (moduł FK) <=
- 2025-10-17 Lublin => Programista Delphi <=
- 2025-10-16 Warszawa => Senior Algorithm Developer (Java/Kotlin) <=
- 2025-10-16 Poznań => SAP HCR Consultant <=