Altifigence Academy

34 / 37 · Konzept

Taktdomänengrenzen und Metastabilität

Den Geltungsbereich zweistufiger Synchronisation verstehen und Einzelbits, kurze Pulse und Busse unterscheiden.

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

SystemVerilog
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
endmodule

Die 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..

Einsatzgrenzen eines Ein-Bit-Synchronisierers
  1. Asynchroner Pegel: Keine feste Phase zum Zieltakt
  2. meta FF: Instabilität kann entstehen
  3. synced FF: An der nächsten Zieltaktflanke übernehmen
  4. 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:

MTBF ∝ eTresolve/τfdstfevent\mathrm{MTBF}\ \propto\ \frac{e^{T_{\mathrm{resolve}}/\tau}}{f_{\mathrm{dst}}f_{\mathrm{event}}}

TresolveT_{\mathrm{resolve}} ist die Auflösungszeit, τ\tau ein Geräteparameter, fdstf_{\mathrm{dst}} die Empfangsfrequenz und feventf_{\mathrm{event}} 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

InformationGenügen zwei Einzelbitstufen?Zu prüfende Struktur
Lange gehaltener PegelMöglich bei erfüllten Wahrscheinlichkeits-/LatenzanforderungenZielsynchronisierer
Puls kürzer als ZielperiodeKann vollständig verpasst werdenPulsverlängerung, Toggle, Handshake
Zusammengehörige MehrbitdatenBits können aus verschiedenen Zeitpunkten stammenStabiler Bus mit Handshake, asynchrones FIFO
Mechanischer TasterKontaktprellen ist ein eigenes ProblemSynchronisieren, 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.

Deine Auswahl gilt für diesen Browser. Du kannst sie jederzeit in der Fußzeile ändern.