Forum: FPGA, VHDL & Co. Setup-Hold Zeiten sinnvoll angeben


von Paul (Gast)


Lesenswert?

Ich verwende ein Design mit 3 Takten, die alle aus demselben OSC 
stammen.

Konkret werden aus 100MHz input sowohl 25MHz, 75MHz und auch 150 MHz 
erzeugt.

Bei der Vergabe der Setup-hold Constraints mit Xilinx ISE erkennt das 
tool aber nicht, dass einige inputs mit der 75er domain und andere mit 
der 25er abgetastet werden und schlägt als Bezugstakt die 100MHz - und 
damit 10ns - als setup/hold vor.

Praktisch liegen die Daten aussen passend an, um korrekt verarbeitet 
werden zu können, daher ist es nicht nötigt, sie mit 10ns zu fixieren.

Wie stellt man das ein?

Reicht es, 40ns für die 25er Bereiche auf den Systemtakt (100 MHz) zu 
beziehen, oder muss ich die aus der DCM generierte CLK bneutzen?

Diese wird nicht angeboten - muss ich das per Hand tun?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Wenn du per DCM neue Takte erzeugst und diese verwendest, dann werden 
nach Angabe des Basistaktes die abgeleiteten Takte automatisch richtig 
constrained. Und sogar die Taktübergänge zwischen den "ungeraden" 
Takten...

von Paul (Gast)


Lesenswert?

Es macht aber - wie ich gerade sehe - einen Unterschied, ob ich die 40ns 
oder 10ns eintrage. Bei 10ns ist das design nicht routbar, weil er es 
zeitmässig seltsamerweise nicht packt! (Und dies, obwohl ich genug 
zusärltiche Register gepipelined für input und outputs hingefügt habe, 
damit er sie funktionell in die IO-Zellen schaffen kann, was laut MAP 
report auch der Fall ist).

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Paul schrieb:
> Bei 10ns ist das design nicht routbar
Dann sieh dir mal die "statische Timinganalyse" an. dort siehst du den 
begrenzenden Pfad und kannst dir mal ansehen, was da los ist...

von Paul (Gast)


Lesenswert?

Ok,  ich habe einen extrem langen Pfad, der noch nicht gepiped ist. Es 
geht mir aber eigentlich um die IOs. Dort muss ich ja ungeachtet 
irgendwelcher Timing festlegen, wann der dortige Takt mit Daten rechnen 
kann.

Was mich wundert, ist, dass es nicht auf den jeweiligen Takt bezogen 
werden soll, der dort anliegt. Was ist z.B. wenn ich mir mit einer DCM 
einige Takte generiere, von denen einer etwas verschoben ist?

Dann macht der BEzug auf den speisenden Takt, also den Oszillator quasi 
auch phasentechnisch keinen Sinn.

von Robert K. (Firma: Projektleiter Medizinsoftware) (robident)


Lesenswert?

Paul schrieb:
> Was mich wundert, ist, dass es nicht auf den jeweiligen Takt bezogen
>
> werden soll, der dort anliegt. Was ist z.B. wenn ich mir mit einer DCM
>
> einige Takte generiere, von denen einer etwas verschoben ist?

Soweit ich weiss, findet er das automatisch. Problematisch ist es mit 
externen Takten, die keinen Bezug zum Oszillator haben.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

R. K. schrieb:
> Problematisch ist es mit
> externen Takten, die keinen Bezug zum Oszillator haben.
Aka. asynchrone Signale.
Da kann man gar keine sinnvollen Setup/Hold Zeiten angeben...

von Robert K. (Firma: Projektleiter Medizinsoftware) (robident)


Lesenswert?

Ich meinte jetzt mehr den Bezug der Signale untereinander. Z.B. ein 
Datenbus und sein Takt. Da habe ich gerade wieder ein Problem, dass er 
selbst entspannte timings nicht frisst!

Beitrag "Xilinx Constraint Problem mit externem Takt"

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.