was baut die Synthese bei "falling_edge()"

Gast #5985749
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"
Gast
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.
Gast
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.
Gast
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?
Gast
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?
Gast
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.
Gast
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.
Gast
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)
Moderator (Firma: Titel) Persönliche Seite
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.