34 / 37 · Konzept
Taktdomänengrenzen und Metastabilität
Den Geltungsbereich zweistufiger Synchronisation verstehen und Einzelbits, kurze Pulse und Busse unterscheiden.
Lektionen sind frei lesbar. Schreibe dich ein, um deinen Fortschritt zu speichern.
Zwischen verschiedenen Takten gibt es keine garantierten Flankenabstände
SetupSetup Mindestzeit vor der Abtastflanke, in der Eingangsdaten stabil sein müssen. Bei Verletzung ist das gespeicherte Ergebnis nicht garantiert. Mehr erfahren und HoldHold-Zeit Mindestzeit nach der Abtastflanke, in der Eingangsdaten stabil bleiben müssen. Vom allgemeinen Halten eines Werts zu unterscheiden. Mehr erfahren verlangen stabile Daten um die Empfangsflanke. Ein Taster oder eine unabhängige Taktdomäne hat dazu beliebige Phase, sodass dies nicht immer garantiert werden kann.
Das FlipflopFlipflop Speichert den Eingang an einer festgelegten Taktflanke bis zur nächsten. Die Eingabe muss Setup und Hold erfüllen. Mehr erfahren kann dadurch metastabil werden: Sein innerer Zustand entscheidet sich zeitweise nicht rasch für 0 oder 1. Gewöhnliche 0/1-RTL-Simulation bildet dieses analoge Verhalten nicht unmittelbar ab. Saubere Simulationskurven beweisen keine sichere CDC.
Zwei Synchronisierstufen für lange genug gehaltene Einzelbits
module level_synchronizer (
input logic clk_dst,
input logic rst_dst,
input logic async_level,
output logic synced_level
);
logic first_stage;
always_ff @(posedge clk_dst) begin
if (rst_dst) begin
first_stage <= 1'b0;
synced_level <= 1'b0;
end else begin
first_stage <= async_level;
synced_level <= first_stage;
end
end
endmoduleDie erste Stufe erhält Zeit zur Stabilisierung, bevor die zweite abtastet. Funktionale Logik nutzt nur die letzte Stufe; die erste darf nicht direkt zu ihr verzweigen. Der gezeigte Reset wird als synchron zum Zieltakt angenommen.
Reale Implementierungen brauchen passende SynchronisierattributeSynchronisierer Übernimmt Signale aus einem anderen Zeitbereich in den Empfangstakt. Mehrstufige Einzelbit-Flipflops dürfen nicht unverändert auf Mehrbitdaten angewendet werden., kurze Zwischenverbindungen sowie STA-/CDC-Prüfungen. Zwei RegisterRegister Speichert einen Zustand aus mehreren Bits. Die synchronen Register dieses Kurses übernehmen festgelegte Eingaben an Taktflanken. Mehr erfahren allein garantieren weder Platzierung noch Pfadbedingungen.
Der asynchrone Eingang geht zur ersten, die Nutzlogik nur zur letzten Stufe. Die Zwischenzeit ermöglicht Stabilisierung, garantiert aber nicht das vollständige Verschwinden der analogen MetastabilitätMetastabilität Analoger Zustand, in dem ein Speicherelement vorübergehend weder stabil 0 noch 1 ist. Synchronisation senkt die Ausbreitungswahrscheinlichkeit, aber nicht auf null..
- Asynchroner Pegel: Keine feste Phase zum Zieltakt
- meta FF: Instabilität kann entstehen
- synced FF: An der nächsten Zieltaktflanke übernehmen
- Funktionsschaltung: Nur die letzte Stufe verwenden
Fehlerwahrscheinlichkeit sinkt, wird aber nicht null
Ein vereinfachtes Modell zeigt folgenden Trend für die mittlere Zeit zwischen Ausfällen MTBF:
ist die Auflösungszeit, ein Geräteparameter, die Empfangsfrequenz und die asynchrone Wechselrate. Reale Berechnungen brauchen gerätespezifische Konstanten. Aus der Formel allein folgt keine beliebige Zusage „so viele Jahre sicher“.
Unterschiedliche Aufgaben brauchen unterschiedliche Strukturen
| Information | Genügen zwei Einzelbitstufen? | Zu prüfende Struktur |
|---|---|---|
| Lange gehaltener Pegel | Möglich bei erfüllten Wahrscheinlichkeits-/Latenzanforderungen | Zielsynchronisierer |
| Puls kürzer als Zielperiode | Kann vollständig verpasst werden | Pulsverlängerung, Toggle, Handshake |
| Zusammengehörige Mehrbitdaten | Bits können aus verschiedenen Zeitpunkten stammen | Stabiler Bus mit Handshake, asynchrones FIFO |
| Mechanischer Taster | Kontaktprellen ist ein eigenes Problem | Synchronisieren, dann entprellen |
Beim Übergang eines 4-Bit-Werts von 0111 auf 1000 können unabhängig synchronisierte Bits eine nie gesendete Kombination zeigen. Buskonsistenz verlangt einen Vertrag zwischen Gesamtdaten und Übergabeabschluss.
Weiterführend: MIT OpenCourseWare — Synchronization, Metastability and Arbitration
Selbst ausprobieren
Der Empfangstakt ist 50MHz, ein Eingangspuls 5ns breit. Garantieren zwei Synchronisierstufen die Erkennung jedes Pulses und beseitigen zugleich Tasterprellen?
Erklärung lesen
Die Periode beträgt 20ns. Ein 5ns-Puls kann zwischen Flanken entstehen und verschwinden und schon der ersten Stufe entgehen. Mehr Stufen erhalten solche Pulse nicht. Nötig sind etwa Pulsverlängerung oder Handshake; Prellen benötigt gesonderte Entprellung.