Aus aktuellem Anlass (zugeliefertes design) muss ich die Frage stellen! Was baut die Synthese da? Die Schaltung funktioniert (Artix 7 FPGA unter Vivado 2018.3). Kann man sich das irgendwo anzeigen lassen? Ich habe diesen thread angesehen, aber dort gibt es auch keine gute Antwort: Beitrag "physikalische Realisation des falling_edge Konstrukts"
Ein Grossteil aktueller FPGAs hat in den div. Zellen hinter den Eingängen einen optionalen Inverter. Bei Falling-Edge wird dieser aktiv geschaltet. Schau dir z.B. mal in XIlinx ISE den FPGA-Editor zu einem Design an.
Ich habe den anderen Thread überflogen, in Etwa steht es ja schon da. Wie es aber physikalisch implementiert ist, da schweigen die Götter. Nimm also an, dass die Inverter funktionieren, bei mir hat es jedenfalls immer funktioniert.
Klaus E. schrieb: > Kann man sich das irgendwo anzeigen lassen? im FPGA Editor, auch Netzliste kann man sich problemlos anzeigen lassen
Hallo schrieb: > Einen Inverter vor dem clock eingang?! Aber vermindert der nicht die zur Verfügung stehende Zeit für das Schalten der Folgeelemente? Aber warscheinlich sind das nur einige 10ps nehme ich an, oder?
Signalverarbeiter schrieb: > Hallo schrieb: > Einen Inverter vor dem clock eingang?! > > Aber vermindert der nicht die zur Verfügung stehende Zeit für das > Schalten der Folgeelemente? Aber warscheinlich sind das nur einige 10ps > nehme ich an, oder? Tut das nicht jede(!) Kombinatorik?
Muss ich mir bei Gelegenheit ansehen. A. S. schrieb: > Tut das nicht jede(!) Kombinatorik? Das ist nicht die Frage. Aus meiner Sicht verletzt ein Inverter ( wenn es einer ist) den ach so schön ausbalancierten clk-Baum, der ja sicherstellen soll, dass überall der Takt gleichzeitig ankommt. Ein FF, dessen Takt nochmal verzögert, ist, hat mehr SetupTime für seinen Eingang, aber weniger Reserve für die HoldTime, weil es später beginnt - aber auch später aufhört, zu schalten. Und sein Ausgang hängt gegenüber anderen etwas hinterher.
Signalverarbeiter schrieb: > Hallo schrieb: >> Einen Inverter vor dem clock eingang?! > > Aber vermindert der nicht die zur Verfügung stehende Zeit für das > Schalten der Folgeelemente? Aber warscheinlich sind das nur einige 10ps > nehme ich an, oder? Er verkürzt nicht das Zeitfenster, er verschiebt das Zeitfenster.
Klaus E. schrieb: > Das ist nicht die Frage. Aus meiner Sicht verletzt ein Inverter ( wenn > es einer ist) den ach so schön ausbalancierten clk-Baum, der ja > sicherstellen soll, dass überall der Takt gleichzeitig ankommt. > > Ein FF, dessen Takt nochmal verzögert, ist, hat mehr SetupTime für > seinen Eingang, aber weniger Reserve für die HoldTime, weil es später > beginnt - aber auch später aufhört, zu schalten. > > Und sein Ausgang hängt gegenüber anderen etwas hinterher. Schon richtig, dass das Auswirkungen auf den Baum hat, aber selbst ohne den Inverter gibt es schon zwischen 2 FFs idR einen ClockJitter, z.B. bei Xilinx "Clock Path Skew" genannt. Wenn Quell- und Ziel-FFs beide mit invertirtem Clock angesteuert werden, dann gleicht es sich ja wieder aus (Inverter ist ja nicht gerade hochkomplizierte Kombinatorik, hat also über das gesammte FPGA eine etwa konstante Verzögerung). Die Analysetools können so etwas ohne Probleme analysieren. (wird z.B. auch glaube ich bei Alteras TimeQuest angezeigt, da ist die Analyseausgabe bzgl. beteiligter Bausteine wesentlich feiner als Xilinx oder auch Lattice)
Sigi schrieb: > Die Analysetools können so etwas ohne Probleme analysieren. Und das ist der Witz an diesem Inverter. Ein exakt 50:50 Takt mit 100MHz, der im Design auf steigende und fallende Flanke abgefragt wird, resultiert dann eben im FPGA effektiv in einem 49,99:50,01 Tastverhältnis. Und wenn das schon was ausmacht, dann sollte man sich gewahr sein, dass auch aus einem realen 50:50 Oszillator der Takt bis zum FPGA sicher schon mehr "verzerrt" und verjittert wird.
Sigi schrieb: > selbst ohne den Inverter gibt es schon zwischen 2 FFs idR > einen ClockJitter, z.B. bei Xilinx "Clock Path Skew" genannt. aber das, was der Inverter tut, kommt noch oben auf..
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.