Forum: FPGA, VHDL & Co. Timing für einen bestimmten Pfad festlegen bzw ansehen


von Tom (Gast)


Lesenswert?

Hallo,

ich möchte gern wissen wie lange ein Signal von einem bestimmten Eingang 
eines VHDL-Moduls - durch das Modul - in ein weiteres Modul und dort 
auch noch durch braucht.

Wie kann ich mir so einen speziellen Pfad vom Timing her anzeigen lassen 
bzw. wie kann ich festlegen wieviel Zeit das dauern darf.

Ich weiß schon das es irgendwie mit den timing constraints gehen muss, 
aber ich blicke da irgendwie nicht ganz durch. Kann mir das jemand 
erläutern, an einem einfachen Bsp. vielleicht oder so?

Das wär super, Danke schonmal.

Grüße
Tom

von Mathi (Gast)


Lesenswert?

Mit welcher Software arbeitest Du?
Davon ist abhängig wie Du dir die Laufzeiten anzeigen bzw. 
Timing-constraints setzen kannst.
Sind die Module kombinatorisch?
Dann wirst Du ein Constraint setzen können das Dir die maximale 
Durchlaudzeit definiert. Bei Lattice heißt es MAXDELAY und man gibt eine 
Zeit dazu an.
Z.B. MAXDELAY Input Output 15ns

von Tom (Gast)


Lesenswert?

Also ich arbeite mit dem WebPack von XILINX.

Das erste Modul bekommt einen 100MHz Takt und erzeugt daraus einen 40MHz 
Taktenable
(also sowas _| |_________| |___ ) [den Deckel auf den kurzen enable 
Signal bitte denken]

Das geht an das nächste Modul und dort wird das Taktenable genutzt um 
(im Falle einer Kommunikation mit einem externen DAC) eine SPI clk von 
20MHz zu erzeugen. Also wenn steigende Flanke an enable dann spi clk 
high wenn nächste steigende Flanke an enable dann SPI clk wieder low und 
so weiter.

Ich möchte nun gern sehen das die Verzögerungen durch Gatter und Pfade 
überall so kurz sind das die 20MHz am ende wirklich rauskommen können.

von FPGA-Fragender (Gast)


Lesenswert?

Die Frequenz ist doch nicht von den Laufzeiten abhängig (?????)

von Tom (Gast)


Lesenswert?

Aber die Daten"leitung" und Takt"leitung" können unterschiedliche 
Verzögerungen haben und wenn das zu unterschiedlich ist kann es (je nach 
Frequenz) schon kritisch werden.

Wenn dann die Daten nicht mehr weit genug vor dem Takt ankommen ist das 
dann doof und je höher der Takt desto weniger unterschiedlich dürfen die 
Zeiten sein.

Ich hoffe ich konnte damait besser ausdrücken was ich meine.

von fpgaküchle (Gast)


Lesenswert?

die gesuchten tools bei xilinx sing der timinganalyzer und der 
fpgaeditor.
timingan.exe liest ein fertig geroutetes design und die timing 
constraints ein und erzeugt eine Liste bei der für jeden Pfad die 
einzelnen "Lauf"-zeiten addiert werden. es entsteht ein report, bei den 
start und end-ff genannt werden, die takte für beiden und die teilzeiten 
(clock to output, routing delay, durchlaufzeit LUT, setup-zeit.
der Fpgaeditor hat unter tools einen eintrag delays. damit zeigt er dir 
für ein netz alle Luafzeiten (nur routing delays(?) von anfangspunkt zu 
den netzendpunkten an.

Am besten du schaust mal in die docc/Beispiele vom timinganalyzer. 
Dieses programm ist recht einfach in der bedienung. bei detailffragen 
können wir dir gern weiterhelfen. in den datenblättern zu DC und 
switching characteristics werden die Formelzeichen erklärt, also tcko - 
clockto output zeit etc..

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.