Constraint Problem am BlockRAM FIFO Xilinx

#1752321
Lesenswert?

Ich habe ein aktuelles Test-Design, was mich etwas narrt. zur 
Entkoppelung zweier Taktdomänen nutze ich einen FIFO. Schreibseite ist 
64MHz aus dem DCM, Leseseite 50MHz auch aus dem gleichen DCM. Ist im 
Spartan 6 auf dem SP601 Board. Es wird nicht kontinuierlich geschrieben, 
sondern nur alle x Takte ein Wert aus dem 64MHz Teil. Daher wird auch 
nix überfahren, ist nur zur Takt-Entkopplung. Bisher hab ich nur die 
PERIOD Constraint für den SYSCLK angegeben, der mit 200MHz rein geht. 
Die internen Constraints nach dem DCM werden ja vom ISE korrekt erzeugt. 
Trotz des FIFOs (egal ob BlockRAM oder Distributed) kann er die 
Constraints für die 50MHz und 64MHz nicht einhalten. Auch der Haken im 
CoreGenerator bei "Disable Timing violations on cross clock domains..." 
bringt überhaupt nix. Wie bekommt man das weg? Ist doch totaler Käse, 
ich bau doch den FIFO eben genau deswegen da ein. Benutze ich für den 
50MHz Takt einen extra Takteingang, also nicht aus dem gleichen DCM, 
dann gibts keine Probleme. Weiß einer, woran das liegt?
Gast #1752352
Lesenswert?

Hi,

ich würde mal probieren ein TNM_NET Constraint auf die beiden 
Taktsignale der DCM zu setzen und dann mit
TIMESPEC "TS_XX" FROM "CLK1" TO "CLK2" TIG;
einen false Path zwischen den beiden Takten zu definieren. Wenn das den 
Fehler beseitigt liegt es bestimmt daran, daß der Timing Analyzer durch 
das FIFO einen Datenpfad zwischen den beiden Takten findet. Evtl. 
funktioniert dann die Option "Disable Timing violations on cross clock 
domains..." nicht so wie du es dir wünschst.

Wie hast du denn in deinem Versuch mit zwei unterschiedlichen 
Takteingängen die Constraints gesetzt? Evtl. hat der Analyzer dann für 
beide die gleiche Frequenz und Pahsenlage angenommen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren