mikrocontroller.net

Forum: FPGA, VHDL & Co. Clock-Belaster herausfinden


Autor: Eman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe hier ein Design, in das ich eine selbstgebaute UART (mit 
integriertem FIFO) einbaue.
Beim Vorher/Nachher-Vergleich der Syntheseergebnisse (Timing und 
Platzbedarf) ergibt sich da leider ein ziemlicher Einbruch der maximalen 
Clock-Frequenz von 99MHz auf 46 MHz. Die schnellste Clock hat real 
60MHz.
Meine Frage ist nun, wie ich erkennen/herausfinden kann, welche 
Elemente/Zeilen da den größten Einfluss haben, um evtl. noch was zu 
ändern.
Kann ich das irgendwie sehen oder erahnen?

Autor: Uwe Bonnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Synthesis Report sind die zeitlich laengsten Ketten angegeben, die 
dann das Timing bestimmen werden.  Die sollte man sich durchdenken. 
Manchmal kann man sie aufbrechen, umformulieren, oder man hat evt ein 
Clock Enable so das die Kette effektiv mit geringerer Frequenz arbeitet. 
Das kann man dann mit entsprechenden  UCF Constraints fuer ISE 
versatendlich machen. Hier ein Beispiel fuer einen Bereich, der zwar mi 
CLK getaktet wird, aber nur alle 4 CLKs ein enable bekommt:
NET "CLK" TNM_NET = "CLK";
TIMESPEC  "TS_clk" = PERIOD "CLK" 16.1 MHz HIGH 50 %;
NET "clk_en" TNM_NET=FFS("calc1/div0/*") CKEN_FFGRP;

TIMESPEC "TS_CKEN"=FROM "CKEN_FFGRP" TO "CKEN_FFGRP" TS_clk*4;

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es kommt drauf an welches Tool Du verwendest, aber im Timingreport 
stehen immer die kritischen Pfade. Da musst Du dann ansetzen um z.B. mit 
Pipelining die maximal mögliche Taktfrequenz zu erhöhen. Hast Du denn 
auch die Timing-constraints richtig gesetzt?

Autor: lkmiller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn da irgendwas die Taktfrequenz auf 46 MHz drückt, dann ist das idR 
eine ziemlich lange kombinatorische Verknüpfung (if ... elsif ... elsif 
... end if). Nach dem Routing kommen dann noch Verdrahtungs-Laufzeiten 
dazu. Wenn die ungünstig ausfallen, dann passiert sowas schon mal.

Hast du den Tools mit Constraints schon mal deine Wünsche bzgl. 
Geschwindigkeit kundgetan? Wissen die Tools, dass du 60MHz willst?
Wenn du da keine Vorgaben machst, dann werden die Komponenten aus der 
Synthese vom Plcae&Route einfach irgendwie platziert und dir das 
Ergebnis dann berichtet. Fertig. Da wird kein Aufwand betrieben, um das 
bestmögliche Ergebnis zu erreichen!!

Wenn du Xilinx verwendest, dann solltest du deine Wünsche mindestens mit
NET "CLK" TNM_NET = "CLK";
TIMESPEC  "TS_clk" = PERIOD "CLK" 60 MHz HIGH 50 %;
in der UCF-Datei (Constraints) anbringen.
Hier sage ich: ich habe einen Clock mit 60 MHz und 50% Tastverhältnis.

Wo es dann noch klemmt sagt dir die statische Timing-Analyse ganz genau.


Übrigens, was heisst dein Satz:
>..Die schnellste Clock....

Hast du mehrere Takte im Design?
Falls ja: warum, wieso, weshalb?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.