Cross Clock Domain Signal - Failing constraint trotz/wegen Synchronizer

OP #4225904
Lesenswert?

O--->ADC (96 MHZ) --> DP RAM --> Audio Codec (12,288 MHz)--->O
                         |                |
                         |                |
                       synch              |
                         |                |
                         -- write enable --

Es geht um eine Anwendung mit zwei Clock Domänen (ADC: 96 MHz, Audio 
Codec (ae) 12,288 MHz). Zur Cross-Domain-Kommunikation dient ein Dual 
Ported RAM; dessen Überschreiben verhindert ein WE_N Signal, das vom 
Audio Codec gesteuert wird, bis die höchste RAM-Adresse auf Codec-Seite 
erreicht ist. Zum Vermeiden von metastabilen Zuständen durchläuft WE_N 
einen Synchronizer aus zwei FlipFlops. Also so etwas wie ein 
SchmalspurFiFo (ohne Zeigerschieberei).

ISE meldet mir eine Timing-Constraint Violation - und zwar im 
Synchronizer, siehe Anhang. Der Timing-Report erschliesst sich mir nicht 
in allen Details - daher folgende Fragen:

 * Wegen der Timing-Unterschiede beim Wechseln der Clock-Domänen habe 
ich den Synchronizer vorgesehen. Kann ich die Timing-Constraint 
Verletzung an dieser Stelle ignorieren? (Wäre der Audio Codec "off 
board", dann würde mein Synthese-Tool sich doch gar nicht mit dem 
Timing-Verhalten des dann externen Signals beschäftigen?)
 * Wenn ich sie ignoriere, kann ich diese Meldung gezielt ausschalten 
bzw. das betreffende Constraint lockern?
 * Liesse sich die Violation durch Einsatz eines "vollwertigen" DP FiFos 
mit entsprechenden Signalen (FiFo Full etc.) vermeiden?

Gruß,
Burkhard
Angehängte Dateien:
Gast #4226015
Lesenswert?

Bei "ungeraden" Taktverhältnissen kriegst du
immer solche Warnungen. Du musst deinem
Synthesizer mitteilen, dass er den
WriteEnable-Pfad ignorieren soll. Das wird
per TIG-Constraint gemacht (ToIgnore).
Gast #4226142
Lesenswert?

Warum ist das denn ein "write enable "

Der Chip "liest" doch vom RAM.

Das mit dem Metastabil kannst Du hier vergessen wenn Du die Signale mit 
dem bitclock des Chips übernimmst, was Du hoffentlich tust.
Gast #4226578
Lesenswert?

Weltbester FPGA-Pongo schrieb im Beitrag #4226142:
> Warum ist das denn ein "write enable "
>
> Der Chip "liest" doch vom RAM.

Auch wenn's der TO nicht geschrieben hat, scheint
es doch offensichtlicht, dass des WriteEnable
der ADC-Stufe vom Codec freigegeben werden soll.

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