Wie kann man Rauschen am Ausgang von Logikgattern kompensieren?

Ich simuliere die 74HC-Logikfamilie auf LTSpice.

Die Ausgabe von Invertern und D-Flip-Flop ist normal, aber die Ausgabe von NAND und AND ist verrauscht. Wie kann ich dieses Rauschen kompensieren oder filtern?

Welche Art von Problem führt zu diesem Geräusch?

Frequenz: 1 MHz

Schaltkreis

Ausgangsspannungen von NAND und AND

Eingänge von NAND und AND

Bearbeiten: Wenn es darauf ankommt, können Sie auch sehen, wie v_z oszilliert.

Geben Sie hier die Bildbeschreibung ein

Was ist der Zweck einer so bizarren Schaltung überhaupt? Wenn Sie versuchen, ein Paar nicht überlappender Uhren für einen alten MOS-IC zu erstellen, gibt es viel bessere Möglichkeiten, dies zu tun.
Warum verwenden Sie 2 kaskadierte Wechselrichter als Eingang für 74hc00 und 74hc08? Eine solche Verwendung führt zu einem echten Problem (gewollt?) Für die Gates nach ... Die Ausgangswellenformen an bbm1 und bbm2 sind sehr logisch.
@Antonio51 hat gerade eingegeben, was ich denke. Es gibt absolut keinen Zweck für U9-13 + U16 und Neil_UK erklärt, dass dies die Quelle dessen ist, was Sie für Lärm halten. Sie erstellen eine Race Condition für einen unbekannten Zweck.
Ich habe es mit meinem Simulator spectrum-soft.com/download/download.shtm getestet , der kein Klingeln zeigt? Nur einige Verzögerungen ... Ich habe bei 10 MHz getestet ...
@DaveTweed Eigentlich habe ich mir das gedacht. Wie kann ich eine solche Schaltung erstellen? Können Sie mir ein Beispiel geben.
@elektronik Danke für das v_z-Signal. Aber wie hängt v_z (genaues Timing) mit bbm1 und bbm2 zusammen?

Antworten (4)

Wenn Sie versuchen, nicht überlappende Takte für Schaltungen zu erstellen, die sie benötigen (z. B. ältere MOS-ICs), besteht die Standardmethode darin, kreuzgekoppelte Gates zu verwenden, um ein RS-Flipflop zu erstellen. NAND-Gatter erzeugen nicht überlappende Aktiv-Low-Taktimpulse und NOR-Gatter erzeugen nicht überlappende Aktiv-High-Impulse. Sie können den Rückkopplungspfaden eine zusätzliche Verzögerung hinzufügen, um zusätzliche Zeit in der Lücke zwischen den Impulsen zu schaffen.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Der Ausgang der NAND-Schaltung sieht folgendermaßen aus:

___      ______      ____
   \____/      \____/
   ______      ______
__/      \____/      \___

Der Ausgang der NOR-Schaltung sieht folgendermaßen aus:

    ____        ____
___/    \______/    \____
__        ____        ___
  \______/    \______/

Sie sind nicht laut. Sie reagieren auf die Signale, die Sie über U9 bis U12 verzögert haben.

Die kombinatorische Logik reagiert nach einer kurzen Verzögerung auf jede Änderung an ihrem Eingang. Wenn eng beieinander liegende Änderungen auftreten, hat der Ausgang keine Zeit, vollständig zu reagieren, und er kann Ausgänge ohne einen vollständigen Logikhub erzeugen, wie Sie sehen.

Es ist gut, dass Sie auf dieses Verhalten jetzt in der Simulation gestoßen sind und nicht nachdem Ihr erstes Logikdesign auf eine Platine kam und Sie es auf die harte Tour fanden.

Die Lehren daraus sind vielfältig

  • Die Ausgabe der kombinatorischen Logik sollte vom Zeitpunkt der ersten Änderung der Eingabe bis zu einer Ausbreitungsperiode nach der letzten Änderung der Eingabe als undefiniert angesehen werden
  • Verwenden Sie solche Ausgänge nicht direkt, sondern verwenden Sie sie am besten als Dateneingänge für einen Latch, der getaktet wird, nachdem die Laufzeitverzögerung abgelaufen ist. Wenn Sie sie für eine analoge Ausgabe verwenden, z. B. gefilterte PWM, können Sie mit einer Tiefpassfilterung davonkommen.
  • Verwenden Sie solche Ausgänge niemals als Takteingang für einen Latch, da die von Ihnen beobachteten Spitzen sie möglicherweise takten oder nicht
  • Wenn Sie kombinatorische Ausgänge direkt verwenden müssen, können Sie oft damit durchkommen, indem Sie ihre Eingänge ausrichten, indem Sie sie alle aus den Ausgängen desselben Latch erzeugen. Dies funktioniert jedoch nicht, wenn Sie so etwas wie einen 138 3-8-Zeilen-Decoder fahren, der unterschiedliche Ausbreitungsverzögerungen von verschiedenen Eingängen hat.
Wenn ich die Latch-Taktung z. B. mit einem UND-Gatter begrenzen möchte, wie vermeide ich Spitzen auf diesen Taktdrähten?
@Netch Das ist genau die Art von Dingen, die Sie sehr falsch machen können. Sie müssen sicherstellen, dass jedes Taktaktivierungssignal an das Gate mit dem Taktsignal verriegelt wird, das es ansteuert, um sicherzustellen, dass keine Runt-Impulse erzeugt werden. Gestalten Sie das Timing so, dass die Freigabe nicht wechseln kann, wenn die Uhr in der "falschen" Polarität ist.

Beachten Sie, dass es möglich ist, kombinatorische Schaltungen zu entwerfen, die solche Störungen nicht aufweisen. Dazu fügen Sie zusätzliche Terme in die DNF Ihrer Funktionen ein, sodass es in der Karnaugh-Karte keine angrenzenden, nicht überlappenden Regionen gibt. Solche Karten werden als "gefahrlos" bezeichnet und erzeugen keine Störungen, wenn eine einzelne Eingabe ihren Zustand ändert.

Hier ist ein Beispiel, das die Technik genauer erklärt. In Ihrem Fall werden die Störungen absichtlich eingeführt (durch Hinzufügen von U9-U12), und durch einfaches Ausschließen dieser Wechselrichter wird eine funktional äquivalente Schaltung erzeugt, die störungsfrei ist.

Irgendetwas stimmt mit Ihrem Simulator nicht. Sie sollten bbm-Ausgänge mit etwa 30-ns-Impulsen sehen.

Ich vermute, dass die Modelle in LTSpice irgendwie so gebaut sind, dass sie erwarten, dass die V-Pins an jedem Gate auf Masse liegen, nicht auf -2,5. Infolgedessen sehen die Schaltungen Übergänge, die knapp unter den nominellen 2,5 (relativ zu V-) Pegeln liegen, auf die der IC reagiert.

Versuchen Sie, Ihre Schaltung mit GND und +5 V als logische Versorgungspegel zu überarbeiten. Sie müssen auch den DC-Pegel an Vx anpassen.

Wenn Sie an verschiedenen Punkten aufgenommene Spuren anzeigen, legen Sie für die Zukunft den Startpunkt für jede Spur zur gleichen Zeit fest. Auf diese Weise können wir (und Sie) sehen, wie sich verschiedene Teile der Schaltung zu einem bestimmten Zeitpunkt verhalten, indem Sie einfach vertikal verschieben und die Zeitbasis nicht überprüfen müssen.

Danke für den Hinweis.
Aufgrund der Anwendung ist ein Schwung von -2,5 bis +2,5 erforderlich.
@elektronik - OK, aber Sie müssen es nicht so simulieren. Versetzen Sie einfach den Eingang um 2,5 Volt.