Forum: FPGA, VHDL & Co. was baut die Synthese bei "falling_edge()"


von K. L. (Gast)


Lesenswert?

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"

von Hallo (Gast)


Lesenswert?

Einen Inverter vor dem clock eingang?!

von Sigi (Gast)


Lesenswert?

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.

von Sigi (Gast)


Lesenswert?

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.

von Erik (Gast)


Lesenswert?

Klaus E. schrieb:
> Kann man sich das irgendwo anzeigen lassen?

im FPGA Editor, auch Netzliste kann man sich problemlos anzeigen lassen

von Signalverarbeiter (Gast)


Lesenswert?

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?

von A. S. (Gast)


Lesenswert?

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?

von K. L. (Gast)


Lesenswert?

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.

von 1234567890 (Gast)


Lesenswert?

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.

von Sigi (Gast)


Lesenswert?

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)

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


Lesenswert?

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.

von K. L. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.