logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Spartan 3 - Proces napędzany zboczem narastającym i opadającym jednocześnie.

Vatras 13 Cze 2015 21:15 2202 9
REKLAMA
  • #1 14768546
    Vatras
    Poziom 12  
    Posty: 80
    Pomógł: 3
    Ocena: 4
    Witam serdecznie,
    Potrzebuję napędzić proces zboczem narastającym i opadającym sygnału zegarowego. Jednak próbowałem kilka metod i otrzymuje błąd ERROR:Xst:797 - "C:/VHDL/clock_edge_test/clock_edge_test.vhd" line 67: unsupported Clock statement.
    1 sopsób którego próbowałem
    Kod: VHDL
    Zaloguj się, aby zobaczyć kod

    2 sposób którego próbowałem
    Kod: VHDL
    Zaloguj się, aby zobaczyć kod

    Podobno istnieje jakiś inny sposób czy ktoś go może zna?
    Dziękuję za pomoc!
    Krzysztof
  • REKLAMA
  • Pomocny post
    #2 14768632
    JarekC
    Poziom 32  
    Posty: 1514
    Pomógł: 231
    Ocena: 399
    Witam,

    Wg mnie poprawnym rozwiązaniem jest wykorzystanie modułu DCM do wygenerowania sygnału zegarowego x2 i dopiero tego zegara do sterowania procesem.

    Z układów Xilinxa tylko układy CoolRunner-II miały przerzutniki mogące pracować na obydwu zboczach.


    Pozdrawiam
    JarekC
  • REKLAMA
  • #3 14785120
    Vatras
    Poziom 12  
    Posty: 80
    Pomógł: 3
    Ocena: 4
    Witam serdecznie,
    Dziękuję za odpowiedź. Spróbuje przerobić program na dwa osobne procesy. Jeden sterowany zboczem narastający drugi zboczem opadającym. Niestety może się to okazać niemożliwe i będę musiał obrać metodę 2x clk (2x 100MHz). Niemniej jednak trochę mnie to martwi ponieważ docelowo miał ten program spocząć w CPLD Max II Altery (stosunkowo niska cena układów w porównaniu z CoolRunner-2). Tutaj pojawia się problem z zegarem zewnętrznym 200MHz. Większość (jeśli nie wszystkie?) CPLD nie mają wewnętrznej PLL.
    Pozdrawiam
    Krzysztof
  • #4 14787450
    J.A
    Poziom 28  
    Posty: 596
    Pomógł: 159
    Ocena: 12
    napisz co chcesz zrobic, czemu potrzebujesz obu zboczy zegara,
    moze da sie cos zrobic;
    jakis interface do DDR ?

    j.
  • REKLAMA
  • #5 14793962
    Vatras
    Poziom 12  
    Posty: 80
    Pomógł: 3
    Ocena: 4
    Witam,
    Generalnie walczę z obsługą pamięci SRAM 10ns (karta katalogowa w załączniku). Mamy przebieg dla odczytu jak na poniższym rysunku:
    Spartan 3 - Proces napędzany zboczem narastającym i opadającym jednocześnie.
    Czas tAA wynosi 10 ns. Przy taktowaniu 100MHz dane mogą być już wystawione ale nie koniecznie. Więc chciałbym odczytać je na zbocze opadające 5ns później, mając pewność, że one na pewno tam już będą.
    Dziękuję i pozdrawiam
    KG
    Załączniki:
    • AS7C34096A-10JCN.pdf (122.89 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #6 14795145
    DeDua
    Poziom 20  
    Posty: 319
    Pomógł: 30
    Ocena: 26
    Nie prościej byłoby zrobić jakiś prosty licznik, odmierzyć ten czas kilku ns i wtedy odczytać te dane?
  • REKLAMA
  • Pomocny post
    #7 14795368
    J.A
    Poziom 28  
    Posty: 596
    Pomógł: 159
    Ocena: 12
    [code]
    Kod: Verilog
    Zaloguj się, aby zobaczyć kod


    wydaje mi sie, ze z 'rysunku' wynika, iz zadne sztuczki ze zboczami, opoznieniami
    nie sa potrzebne;
    od gory: zegar, adres, dane;

    J.
  • #9 14797469
    Vatras
    Poziom 12  
    Posty: 80
    Pomógł: 3
    Ocena: 4
    Dziękuję za zainteresowanie!
    @DeDua Jeśli chodzi o licznik to nie wiem czy dobrze interpretuje to rozwiązanie. Taki licznik musi być czymś taktowany. Zegar takiego licznika (coś musi napędzać maszynę stanów) powinien być większy niż zegar który jest używany (100MHz) bo inaczej nie uzyskam większej rozdzielczości zegara niż 10ns. Generalnie dziękuję za bardzo ciekawy link do obsługi SDRAM'u - jak uda mi się poradzić z SRAM'em to kolejny etap będzie właśnie SDRAM.

    @J.A Płytka z pamięcią jest robiona domowym sposobem i ścieżki nie mają jednakowej długości. Myślę, że to może generować opóźnienia rzędu 0.5-1 ns co powoduje że nie trafiam zboczem w wystawione dane.
  • #10 14797752
    J.A
    Poziom 28  
    Posty: 596
    Pomógł: 159
    Ocena: 12
    Vatras napisał:

    @J.A Płytka z pamięcią jest robiona domowym sposobem i ścieżki nie mają jednakowej długości. Myślę, że to może generować opóźnienia rzędu 0.5-1 ns co powoduje że nie trafiam zboczem w wystawione dane.


    sprawdziles, czy myslisz?
    zrodlem zegara dla sram jest fpga, ktora przyjmuje dane?

    z rysunku wynika, ze 'Output hold from address change, tOH' to minimum 3ns,
    niech adres podrozuje z fpga/cpld do pamieci: 0.5ns, dane z pamieci po zmianie
    adresu pojawiaja sie po powiedzmy 2ns i docieraja do fpga po 0.5ns,
    powinienes miec
    0.5 + adres podrozuje do sram
    2 + reakcja sram
    0.5 + dane z sram do fpga
    3 (tOH)
    =
    6ns zapasu;

    chyba, ze cos zle zrozumialem :(

    j.

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik poszukuje sposobu na napędzenie procesu sygnałem zegarowym, wykorzystując zarówno zbocze narastające, jak i opadające. Napotkał błąd w VHDL związany z nieobsługiwanym stwierdzeniem zegara. Proponowane rozwiązania obejmują użycie modułu DCM do generacji sygnału zegarowego x2 oraz podział procesu na dwa osobne procesy, jeden dla zbocza narastającego, a drugi dla opadającego. Użytkownik zmaga się z obsługą pamięci SRAM 10ns, gdzie potrzebuje odczytać dane na zboczu opadającym z opóźnieniem 5ns, aby zapewnić ich dostępność. Inne sugestie obejmują użycie prostego licznika do odmierzania czasu oraz analizę opóźnień sygnałów w systemie.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA