Laufzeitverzögerung im asynchronen Zähler

Sind die Wellenzähler im wirklichen Leben nützlich?

Ich weiß zum Beispiel, wenn wir einen Aufwärtszähler mit 3 FFs einrichten, CBA. Es folgen das Block- und das Wellenformdiagramm:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Nach dem Zählwert 001 erscheint 000 (die 2. CLK-Periode), wodurch die Operation falsch wird. Tatsächlich ist diese Situation im wirklichen Leben unvermeidlich, da allen Flip-Flops eine Ausbreitungsverzögerung eigen ist.

Daher frage ich mich, wie wir asynchrone Zähler implementieren können.

Der CD4060 war der "Goto"-Zähler, als in den 70er Jahren einfache Takterzeugung bis hin zu hohen Ordnungen von 2 benötigt wurde und noch heute in großen Stückzahlen verkauft wird.

Antworten (3)

Es ist einfach eine Frage, ob Sie warten können, bis sich die letzte Ausgangsstufe eingestellt hat, bevor Sie eine Zählung vornehmen. In diesem Fall bauen Sie die Sample-Verzögerung mit Hardware oder Software ein.

Wenn Sie die Zählung ausblenden/stoppen, um jede Stufe parallel zu messen, sind synchrone Zähler besser. Es gibt immer noch eine Mindestwartezeit vor der Probenahme, aber sie ist viel vorhersehbarer, da die Wartezeit für den gesamten Zähler gilt.

Wenn es sich nur um einen „Pre-Scaler“ handelt, der verwendet wird, um eine feste hohe Frequenz auf eine niedrigere Frequenz zu teilen, und er kontinuierlich läuft, dann gibt es kein Verzögerungsproblem. In gewisser Weise ist die Anzahl einer Stufe unbekannt und es gilt eine "egal"-Richtlinie.

Meinen Sie, dass asynchrone Zähler nicht verwendet werden, wenn wir die Schaltung in bestimmten Phasen untersuchen möchten, sondern bis zum genauen Zeitpunkt der Zählung warten?
Richtig. Aufgrund ihrer Natur ist die Zählung jeder Phase unbekannt, es sei denn, Sie halten die Zählung an und warten vor der Probenahme. Viele Armbanduhren und Echtzeituhren verwenden einen 32,768-KHz-Kristall, der durch einen 11-stufigen Binärteiler geht, um am Ende einen genauen 1-Hz-Taktimpuls zu erhalten. Niemand kümmert sich um die Anzahl der Stufen, da es nur darum geht, die 32,768 KHZ herunterzuteilen.
  • Das Problem mit asynchronen Zählern ist die "Welligkeit". Nehmen wir ein Beispiel für einen asynchronen 4-Bit-Zähler, der aufwärts zählt. Der Übergang von 0111 --> 1000 geht durch oder kräuselt sich durch 3 Zwischenzustände wegen der Akkumulation von Ausbreitungsverzögerungen jedes vorangehenden Flip-Flops. Dies sind Störungen in den asynchronen Zählern.

Geben Sie hier die Bildbeschreibung ein

Wenn Sie einige LEDs an den 4-Bit-Ausgängen des Zählers anschließen, werden Sie diesen Fehler überhaupt nicht bemerken, da diese Wellen schnell genug sind und Sie sehen, dass er korrekt zählt. Wenn Sie diese Zählung jedoch einer anderen digitalen Logik zum Abtasten zuführen, können diese Störungen unerwünschte Fehler verursachen.

  • Eine Lösung für das obige Problem ist Strobing . Es ist im Grunde wie das Latchen des Zählausgangs.

Geben Sie hier die Bildbeschreibung ein

Die Idee ist, die Zählung erst abzutasten, nachdem sie sich auf einen stabilen Wert eingestellt hat. In der obigen Schaltung findet der Zählübergang an der positiven Flanke des Takts statt. Was wir tun, ist, dass wir die Zählung nur abtasten, wenn die Uhr niedrig ist . Der Takt ist wie ein "Freigabe"-Signal der Strobing-Schaltung. Die einzige Bedingung hier ist, dass bis zum Übergang der Uhr von hoch nach niedrig alle Wellen vorbeigegangen sein sollten. dh die akkumulierte Ausbreitungsverzögerung sollte kleiner als die "hohe Zeit" der Uhr sein. Es stellt sicher, dass jedes Mal die richtige Zählung abgetastet wird.

  • Das Problem mit asynchronen Zählern ist die Begrenzung der Taktfrequenz/begrenzten Geschwindigkeit aufgrund von akkumulierten Verzögerungen jedes Flip-Flops. Der Zähler sollte erfüllen:

    Σ D ich < T C l k

    Aufgrund dieser Komplexität des Designs bevorzugen wir synchrone Zähler, bei denen das Timing vorhersehbar ist.

Wellenzähler sind im wirklichen Leben nützlich. Frequenzteiler sind naheliegend.

Ein 16-stufiger Ripple-Zähler verbraucht 1 + 1/2 + 1/4 + ... ~=2 Leistungseinheiten.

Ein Synchronzähler würde 16 Leistungseinheiten verbrauchen.

Im Allgemeinen löst die synchrone Logik eine Reihe von Problemen auf Kosten von

  • mehr Macht
  • mehr Tore
  • niedrigere Geschwindigkeit
  • neue Rennbedingungen durch Synch eingeführt
  • erhöhte EMI durch kontinuierliches Takten und spektral schmale Übergänge

Eine bessere Frage wäre vielleicht, warum die Leute denken, dass synchrone Zähler so besonders nützlich sind? Warum wird die Synchronisierung des gesamten Zählers/Systems als die richtige Lösung für das Timing einiger kritischer Ausgänge angesehen?

Philosophisch gesehen hat die Orthodoxie der synchronen Logik möglicherweise zu begrenzten Fähigkeiten und Techniken und Strategien geführt, um komplexe ungetaktete Logiksysteme zum Laufen zu bringen, und erklärt, warum es selbst für sehr einfache Befehlssätze so wenige asynchrone taktlose CPUs gibt. Der Greenarrays F18 ist der einzige, der mir in den Sinn kommt, aber in der Lage ist, einen PIC-ähnlichen Stromverbrauch bei Hunderten von MHz zu erreichen