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
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
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.
Die Frequenz ist doch nicht von den Laufzeiten abhängig (?????)
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.