47 / 63 · Konzept
Reale Taster: Synchronisation, Entprellung und ein Ereignis
Asynchrone Synchronisation von Entprellung trennen und einen Entpreller aus aufeinanderfolgenden Samples entwerfen.
Lektionen sind frei lesbar. Schreibe dich ein, um deinen Fortschritt zu speichern.
Ein Tastendruck kann viele Wechsel enthalten
Mechanische Kontakte können vor dem Einschwingen mehrfach schließen und öffnen. Zugleich ist der Taster zum Systemtakt asynchron. Synchronisieren behandelt die Übernahme in eine Taktdomäne; Entprellen fasst kurze wiederholte Wechsel zu einem stabilen Zustand zusammen. Zwei FlipflopsFlipflop Speichert den Eingang an einer festgelegten Taktflanke bis zur nächsten. Die Eingabe muss Setup und Hold erfüllen. Mehr erfahren beseitigen Prellen nicht automatisch.
- Asynchroner Taster: Kontaktprellen und Asynchronität zum Takt treten gemeinsam auf
- Synchronisierung: Einen Ein-Bit-Pegel in die Taktdomäne übernehmen
- Entprellung: Nur aufeinanderfolgende stabile Abtastwerte als Zustandsänderung akzeptieren
- Flankenerkennung: Bei akzeptiertem 0→1 ein Ereignis von einem Zyklus erzeugen
Der Ablauf setzt einen lange genug gehaltenen Einzelbitpegel voraus. Kurze Pulse, kohärente Mehrbitübertragung und asynchrone Taktsignale selbst benötigen eigene Entwürfe.
Regel für N aufeinanderfolgende Samples
q sei der bestätigte Zustand, x der synchronisierte Eingang und count die Zahl aufeinanderfolgender Samples ungleich q. Bei x=q wird count=0. Bei x≠q wird gezählt; beim N-ten aufeinanderfolgenden Sample wird q=x und count=0.
Für N=3 und anfangs q=0 entspricht jede Spalte einem Abtastzeitpunkt des synchronisierten Eingangs, nicht der analogen Kontaktspannung.
| Sample | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|---|
| x | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 |
| count after | 0 | 1 | 0 | 1 | 2 | 0 | 0 | 1 | 0 |
| q after | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
| rise event | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
Wellenformdaten anzeigen
| Signal | Wellenform | Buswerte |
|---|---|---|
| sample | 234523452 | 0 → 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 |
| x | 0101...01 | |
| q after | 0....1... | |
| rise event | 0....10.. |
Latenz und Zählerbreite ausdrücklich festlegen
Bei Abtastabstand dauert die Bestätigung je nach Eingangsphase etwa bis , zusätzlich zur Synchronisierlatenz. Eine konservative Forderung „10 ms stabil“ muss auch den Abstand zwischen erstem und letztem Sample berücksichtigen. Kurze Wechsel dazwischen können unbemerkt bleiben; gleiche Samples beweisen keine durchgehend konstante Spannung. Schaltercharakteristik und Abtastbedingungen sind gemeinsam festzulegen.
Speichert count nur 0 bis N−1, benötigt es Bit. Behandeln Sie N=1: Schon das erste abweichende Sample muss bestätigt werden, daher zählt die Reihenfolge des N−1-Vergleichs.
Ein Tastendruck, ein Ereignis
Für bestätigten Folgezustand q_next gilt . Die Tabelle erzeugt das Ereignis im selben Sample wie die Bestätigung. Ein Vergleich von q mit einem separat um einen Zyklus verzögerten RegisterRegister Speichert einen Zustand aus mehreren Bits. Die synchronen Register dieses Kurses übernehmen festgelegte Eingaben an Taktflanken. Mehr erfahren kann je nach Beobachtung zusätzliche Latenz haben. Spezifizieren Sie auch, wann das Ereignis konsumiert wird.
Selbst ausprobieren
Für N=3, q=0 und Eingaben 1,1,0,1,1,1: An welchem Sample wechselt q? Wie breit ist count für N=8 und Werte 0–7?
Erklärung lesen
Die 0 im dritten Sample setzt die Serie zurück; das sechste bestätigt 1. 0–7 benötigt drei Bit. Eine andere Implementierung, die bis 8 speichert, benötigt vier; prüfen Sie zuerst den Wertebereich.