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

TIMESPEC - Jak poradzić sobie z błędami [Virtex6]

sesil 14 Lip 2015 09:36 1932 2
REKLAMA
  • #1 14846851
    sesil
    Poziom 16  
    Posty: 281
    Pomógł: 14
    Ocena: 22
    Witam

    Ostatnio dostałem "stary" (nie mój) projekt w Verilogu do wprowadzenia pewnych zmian i natrafiłem na niepokojące komunikaty i do końca nie wiem jak sobie z nimi poradzić.

    Otóż dla zegara głównego ustalona jest dyrektywa TIMESPEC w .ucf. Zegar ten powielony jest na 5 innych wewnętrznych zegarów z różną częstotliwością i fazą. I ISE 14.6 informuje mnie o kilku błędach związnych z opóźnieniem sygnału.

    Mam pytanie do bardziej doświadczonych kolegów - Jak sobie w poradzić w sposób praktyczny z tymi problemami? Czy dodać jakieś wew. bufory do sygnałów czy może zrobić ręczny routing czy może dodać jakieś inne dyrektywy czasowe dla sygnałów? Chodzi mi o praktyczną i najprostszą drogę.

    W załączeniu screen z błędem.

    Zegar wejściowy jest 200MHz i powielony na 400MHz, 100MHz z różnymi fazami
    Załączniki:
    • TIMESPEC - Jak poradzić sobie z błędami [Virtex6] time_report.jpg (150.38 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 14847204
    J.A
    Poziom 28  
    Posty: 596
    Pomógł: 159
    Ocena: 12
    sesil napisał:
    Jak sobie w poradzić w sposób praktyczny z tymi problemami?
    Czy dodać jakieś wew. bufory do sygnałów czy może zrobić ręczny routing
    czy może dodać jakieś inne dyrektywy czasowe dla sygnałów?




    nie ma szans moim zdaniem, tego typu 'sztuczki' moglyby
    ewentualnie poprawic timing o 1-2ns, nie o 11;

    czemu pamiec chodzi na jednym zegarze, odbiornik danych na innym,
    przesunietym o 3ns, moze nie jest to konieczne?;

    z zalaczonego obrazka wynika, ze miedzy zrodlem a odbiornikiem
    jest 17 poziomow logiki, czyli po xilinxowemu slice'ow,
    jakies selektory, dekodery;
    by uklad pracowal ze 100MHz, musisz zrobic pipeline, czyli
    zatrzaskiwac wyniki posrednie, co niestety oznacza przeprojektowanie
    reszty, bo wynik bedzie o zegar czy dwa pozniej, niz zaklada obecne
    rozwiazanie;

    powodzenia
    J.
  • #3 14861562
    sesil
    Poziom 16  
    Posty: 281
    Pomógł: 14
    Ocena: 22
    Dzięki za odpowiedź.

    Faktycznie proste to nie jest. Przerobiłem trochę kod i faktycznie opóźnienia są delikatnie mniejsze ale nadal są.

    Postaram się jak radzisz zatrzaskiwać poszczególne sygnały.
    Zobaczymy jak to wyjdzie ;-)

    Pozdrawiam
    Konrad
REKLAMA