Timing-Analyse und CDC
Statische Timing-Analyse mit Setup-/Hold-Slack-Berechnung, OCV und Multicycle-Pfaden sowie Clock-Domain-Crossing-Entwurf mit Synchronisierern und asynchronen FIFOs, geprüft mit Multiple-Choice-Fragen.
Timing-Analyse und CDC: Kernpunkte
Damit eine synchrone Schaltung korrekt arbeitet, müssen die Daten auf allen Pfaden zwischen Flipflops unter Einhaltung von Setup- und Hold-Zeit ankommen. Die statische Timing-Analyse (STA) berechnet auf Grundlage der in SDC angegebenen Constraints für Takte und Ein-/Ausgangsverzögerungen den Slack jedes Pfads und findet Verletzungen, wobei auch Taktversatz (Skew), Jitter und Fertigungsstreuung berücksichtigt werden.
Zwischen asynchronen Takten hingegen lässt sich das Timing nicht garantieren, und Metastabilität ist unvermeidbar. Auch Entwurf und Verifikation des Clock-Domain-Crossing (CDC), bei dem Signale mit 2-stufigen Flipflop-Synchronisierern, Handshakes oder asynchronen FIFOs mit Gray-codierten Zeigern sicher übergeben werden, gehören zu den Grundlagen des Logikentwurfs.
Alle Fragen zu Timing-Analyse und CDC (50)
- In einer synchronen Schaltung mit einer Taktperiode von 2,0 ns beträgt die Clock-to-Q-Verzögerung des sendenden Flipflops 0,2 ns, die Verzögerung der kombinatorischen Logik 1,4 ns und die Setup-Zeit des empfangenden Flipflops 0,1 ns. Wie groß ist der Setup-Slack, wenn der Taktversatz (Skew) 0 ist?
- Auf einem Pfad zwischen Flipflops beträgt die Clock-to-Q-Verzögerung 0,15 ns, die maximale Verzögerung der kombinatorischen Logik 2,2 ns und die Setup-Zeit 0,15 ns. Wie hoch ist die maximale Taktfrequenz, mit der dieser Pfad arbeiten kann, wenn Skew und Taktunsicherheit vernachlässigt werden?
- Welche Erklärung von WNS und TNS, wie sie in STA-Berichten vorkommen, ist richtig?
- Ein Pfad hat eine Taktperiode von 1,0 ns, eine Clock-to-Q-Verzögerung von 0,1 ns, eine Verzögerung der kombinatorischen Logik von 0,85 ns und eine Setup-Zeit von 0,08 ns. Wie groß ist der Setup-Slack, wenn der Takt am empfangenden Flipflop 0,05 ns später ankommt als am sendenden?
- Welche Auswirkung auf Setup und Hold hat es, wenn der Takt am empfangenden Flipflop später ankommt als am sendenden (positiver Skew)?
- Die minimale Clock-to-Q-Verzögerung des Senders beträgt 0,08 ns, die minimale Verzögerung der kombinatorischen Logik 0,02 ns und die Hold-Zeit des Empfängers 0,05 ns. Wie groß ist der Hold-Slack, wenn der Takt am Empfänger 0,1 ns später ankommt als am Sender?
- Auf einem normalen Pfad, der mit der steigenden Flanke desselben Takts sendet und übernimmt, wurde eine Hold-Verletzung (Slack −0,03 ns) gefunden. Was gilt für diese Verletzung, wenn die Taktfrequenz halbiert wird?
- Zur Behebung einer Hold-Verletzung werden Verzögerungspuffer in den Datenpfad eingefügt. Was ist dabei am wichtigsten zu prüfen?
- Auf einem Pfad mit einer Taktperiode von 1,25 ns (800 MHz) beträgt die Summe aus Clock-to-Q-Verzögerung und Verzögerung der kombinatorischen Logik 1,05 ns, die Setup-Zeit 0,05 ns, und die Taktunsicherheit für Setup ist auf 0,05 ns gesetzt. Wie groß ist der Setup-Slack?
- Bei der Einstellung der Taktunsicherheit wird Periodenjitter oft für Setup berücksichtigt, für Hold jedoch nicht. Was ist der richtige Grund dafür?
- Welche Kombination gibt richtig an, unter welchen Corner-Bedingungen Setup und Hold in der STA jeweils hauptsächlich geprüft werden?
- Als OCV-Derating werden bei der Setup-Analyse die Verzögerungen des sendenden Taktpfads und des Datenpfads mit 1,1 und die des empfangenden Taktpfads mit 0,9 multipliziert. Wie groß ist der Setup-Slack bei einem sendenden Taktpfad von 1,0 ns, einem Datenpfad (einschließlich Clock-to-Q) von 1,5 ns, einem empfangenden Taktpfad von 1,0 ns (ohne gemeinsamen Abschnitt), einer Periode von 3,0 ns und einer Setup-Zeit von 0,1 ns?
- Welche Erklärung der CRPR (Entfernung des Pessimismus des gemeinsamen Pfads), die in einer STA mit OCV-Derating durchgeführt wird, wenn sendender und empfangender Taktpfad bis zu einem Punkt gemeinsam verlaufen, ist richtig?
- In einer Schaltung mit einem Takt der Periode 2,0 ns gibt es einen Pfad mit einer Datenankunftszeit (Summe aus Clock-to-Q-Verzögerung und Verzögerung der kombinatorischen Logik) von 3,3 ns und einer Setup-Zeit von 0,1 ns. Da dieser Pfad nur alle 2 Zyklen einmal übernommen werden muss, wurde für Setup ein Multicycle-Pfad von 2 gesetzt. Wie groß ist der Setup-Slack?
- Wird für Setup ein Multicycle-Pfad von N (N ≥ 2) gesetzt, wird üblicherweise auch für Hold ein Multicycle-Pfad von N − 1 gesetzt. Was ist der richtige Grund dafür?
- Für welchen Pfad ist das Setzen eines False Path (set_false_path) angemessen?
- Bei einem Takt mit 2,0 ns Periode und 50 % Tastverhältnis gibt es einen Pfad, der an der steigenden Flanke sendet und an der fallenden Flanke übernimmt. Welcher Maximalwert ist für die Summe aus Clock-to-Q-Verzögerung und Verzögerung der kombinatorischen Logik zulässig, wenn die Setup-Zeit 0,1 ns und der Skew 0 beträgt?
- Bei einem Takt mit 2,0 ns Periode gibt es einen Pfad von einem Flipflop, das an der steigenden Flanke zum Zeitpunkt 0 Daten ausgibt, zu einem Latch, das zum Zeitpunkt 1,0 ns öffnet (transparent wird) und zum Zeitpunkt 2,0 ns schließt. Wie viel Zeit wurde in diesem Latch geliehen (Time Borrowing), wenn die Daten zum Zeitpunkt 1,4 ns am Latch ankommen?
- Was prüft die Clock-Gating-Prüfung der STA bei einer Schaltung, die den Takt mit einem AND-Gatter mit 2 Eingängen aus Takt und Enable-Signal anhält?
- Bei einem Takt mit 2,0 ns Periode ist an einem Eingangspin set_input_delay 0,6 ns gesetzt. Welche maximale Verzögerung ist für den chipinternen Pfad vom Eingangspin zum Flipflop zulässig, wenn die Setup-Zeit des internen Flipflops 0,1 ns beträgt und Taktverzögerung und Skew vernachlässigt werden?
- Was stellt der bei set_output_delay angegebene Wert dar?
- Bei einem Takt mit 2,5 ns Periode (400 MHz) ist an einem Ausgangspin set_output_delay 0,8 ns gesetzt. Welche maximale Verzögerung ist für kombinatorische Logik und Verdrahtung vom Flipflop bis zum Ausgangspin zulässig, wenn die Clock-to-Q-Verzögerung des den Ausgangspin treibenden Flipflops 0,2 ns beträgt (Taktverzögerung vernachlässigt)?
- Bei einem Takt mit 1,0 ns Periode gibt es einen Pfad über die Flipflops A→B→C. A→B benötigt einschließlich Clock-to-Q-Verzögerung und Setup-Zeit 1,2 ns, für B→C genügen 0,8 ns. Wie muss der Takt von B verändert werden, um durch gezielt eingesetzten Skew beide Setup-Bedingungen zu erfüllen (die Takte von A und C kommen gleichzeitig an)?
- Was ist in der SDC richtig, wenn ein Takt mit einem Teiler durch 2 geteilt und für eine andere Schaltung verwendet wird?
- Welche STA-Prüfung untersucht bei einem Flipflop mit asynchronem Reset, ob die Freigabe des Resets zu nahe an der Taktflanke liegt?
- Bei welchem Pfad zwischen zwei Taktdomänen ist ein Synchronisierer erforderlich?
- Wie ändert sich die mittlere Zeit zwischen Ausfällen durch Metastabilität (MTBF), wenn ein 2-stufiger Flipflop-Synchronisierer auf 3 Stufen erweitert wird?
- Wird die Taktfrequenz auf der Empfangsseite eines Synchronisierers erhöht, verkürzt sich die MTBF. Was ist der richtige Grund dafür?
- Was ist bei einem 2-stufigen Flipflop-Synchronisierer für den Bereich zwischen der ersten und der zweiten Stufe richtig zu beachten?
- Was ist der richtige Grund dafür, dass der Ausgang kombinatorischer Logik in der sendenden Taktdomäne nicht direkt in den Synchronisierer der Empfangsseite geführt werden darf?
- Jedes Bit eines 4-Bit-Datenworts wurde mit einem eigenen 2-stufigen Synchronisierer in eine andere Taktdomäne übertragen. Welches Problem kann auftreten, wenn sich die Daten von 0111 auf 1000 ändern?
- Welche Methode, Mehrbit-Daten sicher in eine andere Taktdomäne zu übertragen, ist richtig?
- Ein Impuls, der in einer 500-MHz-Taktdomäne nur 1 Zyklus (2 ns) lang 1 ist, wurde mit einem 2-stufigen Synchronisierer in eine 100-MHz-Domäne übertragen. Welches Problem kann auftreten?
- Um ein Pegelsignal mit einem Synchronisierer sicher von einer 400-MHz-Domäne in eine 100-MHz-Domäne zu übertragen, soll die Signalbreite mindestens das 1,5-Fache der Taktperiode der Empfangsseite betragen. Wie viele Zyklen des Sendetakts muss die Breite mindestens betragen?
- Welches Verfahren, auf der Empfangsseite den ursprünglichen Impuls zurückzugewinnen, ist bei der Toggle-Synchronisierung (einem Verfahren, bei dem auf der Sendeseite ein Pegelsignal erzeugt und übertragen wird, das bei jedem Impuls invertiert) richtig?
- Welche Einschränkung gilt, wenn mit Toggle-Synchronisierung Impulse von einer schnellen in eine langsame Taktdomäne übertragen werden?
- Welche Reihenfolge der Signale ist bei der Übertragung eines Datums mit einem 4-Phasen-Handshake mit req und ack richtig?
- Welcher Nachteil der Datenübertragung zwischen Taktdomänen per Handshake ist richtig?
- Was ist der richtige Grund dafür, dass bei einem asynchronen FIFO Schreib- und Lesezeiger vor der Synchronisierung in die jeweils andere Domäne in Gray-Code umgewandelt werden?
- Welcher Wert ist die Gray-Code-Darstellung der 4-Bit-Binärzahl 0110 (dezimal 6)?
- Was ist der richtige Grund dafür, dass bei einem asynchronen FIFO mit 16 Wörtern Tiefe Schreib- und Lesezeiger mit 5 Bit, also 1 Bit mehr als die Adresse, ausgeführt werden?
- Welche Bedingung zur Erkennung von „voll“ (full) auf der Schreibseite ist bei einem asynchronen FIFO mit 16 Wörtern Tiefe und 5-Bit-Gray-Code-Zeigern richtig?
- Da ein asynchroner FIFO den Zeiger der Gegenseite synchronisiert verwendet, ist der sichtbare Zeigerwert 2–3 Zyklen veraltet. Welche Auswirkung hat diese Verzögerung auf die Erkennung von full/empty?
- Bei einem asynchronen FIFO mit 100 MHz auf der Schreibseite und 80 MHz auf der Leseseite schreibt die Schreibseite einen Burst von 100 Wörtern mit 1 Wort pro Zyklus, und die Leseseite liest 1 Wort pro Zyklus. Zwischen den Bursts gibt es ausreichende Pausen. Welche Tiefe ist mindestens erforderlich, um einen Überlauf zu vermeiden (Verzögerung durch Synchronisierung vernachlässigt)?
- Die Schreibseite schreibt mit 200 MHz einen Burst von 120 Wörtern mit 1 Wort pro Zyklus. Die Leseseite liest mit einem 150-MHz-Takt in nur 2 von 3 Zyklen je 1 Wort. Welche Tiefe ist mindestens erforderlich, um einen Überlauf zu vermeiden (Verzögerung durch Synchronisierung vernachlässigt)?
- Die Schreibseite arbeitet mit 250 MHz, die Leseseite mit 200 MHz, beide übertragen 1 Wort pro Zyklus. Welche Tiefe ist für einen FIFO, der einen Burst von 64 Wörtern aufnimmt, rechnerisch mindestens erforderlich (Verzögerung durch Synchronisierung vernachlässigt, Bruchteile werden aufgerundet)?
- Welcher Aufbau einer Reset-Synchronisierungsschaltung, die aus einem active-low externen Reset einen internen Reset erzeugt, der „asynchron aktiviert und synchron deaktiviert“ wird, ist richtig?
- Zwei Steuersignale aus derselben Sendedomäne werden jeweils mit einem eigenen 2-stufigen Synchronisierer empfangen und auf der Empfangsseite per AND verknüpft verwendet. Welches Problem dieses Entwurfs ist richtig?
- Was ist der richtige Grund dafür, dass trotz STA und RTL-Simulation eine Prüfung mit einem CDC-Verifikationstool erforderlich ist?
- Warum kann es problematisch sein, den Pfad, über den die Gray-codierten Zeiger eines asynchronen FIFO in die Gegendomäne übertragen werden, nur weil er asynchron ist, ohne Constraint (als False Path) zu belassen?
Weitere Themen in Entwurf und Industrie
- LSI-Entwurfsablauf und EDA RTL, Logiksynthese, Place & Route, STA
- Reinraum und Fertigungsanlagen Reinheitsklassen, Gelbraum, FOUP
- Umwelt und Sicherheit Flusssäure, SDS, PFC-Gase
- Halbleiterindustrie und Markt Foundry, Fabless, IDM, Mooresches Gesetz
- Fortgeschrittene Technologien (3D-Integration, Chiplets) TSV, HBM, Interposer
- Datenblätter lesen Grenzwerte, typ/max, Wärmewiderstand, Timing