Warum brauchen wir Taktimpulse in sequentiellen Schaltungen?

Ich muss wissen, warum wir Taktimpulse in sequentiellen Schaltungen brauchen, aber nicht in kombinatorischen Schaltungen?

mögliches Duplikat von Why do we clock Flip Flops?

Antworten (4)

Zunächst einmal haben nicht alle sequentiellen Schaltungen (Schaltungen mit Rückkopplung) Uhren.

Das Design von asynchronen Zustandsmaschinen ist jedoch sehr esoterisch und erfordert die Berücksichtigung aller möglichen Störungen und Rennpfade durch die Logik, um es richtig zu machen, und ich vermute, dass es heutzutage nicht allgemein gelehrt wird.

Daher werden einfache asynchrone Zustandsmaschinen in Form von getakteten Flip-Flops (T, D, SR, JK usw.) von Standardtypen gekapselt, und alle Schaltungen höherer Ordnung werden unter Verwendung von getakteten Techniken aufgebaut, was ihren Entwurf erheblich vereinfacht. Es vereinfacht auch das Design von Softwaretools, die solche Schaltungen synthetisieren können, erheblich.

Wow, ich hatte noch nie zuvor von einer asynchronen Zustandsmaschine gehört.
Vielen Dank für die Antwort. Nun, was ich aus Ihrer Antwort verstehe, ist, dass all dies nur getan wird, um die Schaltung einfach zu machen. Bin ich ryt?

Da sequentielle Schaltungen eine Rückkopplung haben, würde ein Betrieb ohne Verzögerung wenig nützliche Ergebnisse liefern, da sie im Grunde nur oszillieren würden. Eine Taktquelle wird verwendet, um zu steuern, welche Aktionen zu einem bestimmten Zeitpunkt durchgeführt werden sollen.

Ich empfehle Ihnen, einige von beiden Typen zu entwerfen (und zu bauen), und die Notwendigkeit einer Uhr wird schnell offensichtlich.

Danke. Das werde ich tun.

Kombinatorische Schaltungen haben Ausgänge, die von Eingängen abhängen. Sie haben keine Mechanismen, die die Zuordnung von Eingabe zu Ausgabe ändern - Eingaben werden Ausgaben immer auf konsistente Weise zugeordnet.

Sequentielle Schaltungen haben auch Ausgänge, die von Eingängen abhängen, ABER die Ausgänge hängen auch von dem "Zustand" ab, den die sequentielle Schaltung gerade annimmt. Ein Wechsel vom Zustand n zum Zustand n+1 kann neu abbilden, wie die Ausgänge von den Eingängen abhängen. Die Zustandsänderung wird durch einen Takt bewirkt.

Danke für ans, aber erklären Sie, was Sie mit "konsequentem Weg" meinten.
@ user122345656 Eingänge werden unabhängig von der Zeit immer auf die gleiche Weise den Ausgängen zugeordnet

Wenn eine Schaltung einige Eingänge und Ausgänge hat und wenn die Elemente innerhalb der Schaltung so eingestuft werden können, dass Elemente der Ebene 0 nur von den Eingängen der Schaltung abhängen und die Elemente jeder höheren Ebene nur von den Eingängen der Schaltung oder von Elementen niedrigerer Ebene abhängen, dann heißt die Schaltung kombinatorisch. Wenn die Eingänge einen bestimmten Zustand annehmen, kann es eine Weile dauern, bis alles darauf reagiert, aber nach einiger Zeit nehmen die Ausgänge einen Zustand an, der vollständig von den Eingängen abhängt. Kein Schaltungselement ändert seinen Zustand, es sei denn, oder bis einige der Eingänge dies tun. Eine solche Schaltung wird "rein kombinatorisch" genannt.

Wenn eine Schaltung Rückkopplungspfade enthält, ist eine solche Schaltung nicht kombinatorisch, sondern "sequentiell". Im Allgemeinen variiert das Verhalten sequentieller Schaltungen in Abhängigkeit von der Reihenfolge, in der verschiedene Ereignisse auftreten. Wenn eine Schaltung nur aus Registern (Flip-Flops) besteht, die sich alle einen gemeinsamen Takt teilen, deren Dateneingänge von einer rein kombinatorischen Logik angesteuert werden, die von den Ausgängen von sich selbst und voneinander gespeist wird, dann vergeht nach jedem Taktimpuls eine kurze Zeit wo sich Daten durch die kombinatorische Logik ausbreiten können; ist diese Zeit abgelaufen, passiert bis zum nächsten Takt überhaupt nichts. Wenn die Zeit zwischen den Taktimpulsen die Worst-Case-Zeit für alles (einschließlich der Eingangsschaltung der Flip-Flops) überschreitet, um sich auszugleichen, Die Reihenfolge, in der Ereignisse auftreten, hängt nur von der Anzahl der Taktimpulse ab, die zu ihrer Erzeugung erforderlich sind, und nicht von der Geschwindigkeit irgendeiner kombinatorischen Schaltung. All dies ermöglicht eine sehr einfache Timing-Analyse: Finden Sie die Worst-Case-Laufzeiten heraus und bestätigen Sie, dass sie kürzer sind als der Abstand zwischen den Taktimpulsen. Wenn dies der Fall ist, können Zeitabläufe durch "Zählen" von Taktimpulsen bestimmt werden.

Wenn eine Schaltung Rückkopplungspfade enthält, die keine Register mit gemeinsam genutztem Takt beinhalten, dann ist es wahrscheinlich, dass die Reihenfolge, in der wichtige Ereignisse auftreten, von den genauen Verzögerungen abhängt, die durch kombinatorische Elemente auferlegt werden. Solche Abhängigkeiten werden „Wettlaufbedingungen“ genannt [zwei Ereignisse durchlaufen unterschiedliche Logikpfade, und es gibt ein „Wettrennen“, um zu sehen, welches zuerst ausgegeben wird]. Es ist im Allgemeinen viel einfacher zu sagen, dass sich zB eine Änderung am Eingang des kombinatorischen Schaltkreises in weniger als 10 ns zu seinem Ausgang ausbreitet, als zu sagen, dass eine solche Ausbreitung zwischen 8 ns und 12 ns dauern wird. Während es möglich ist, sequentielle Schaltungen zu konstruieren, die keine Uhren erfordern, umfassen solche Schaltungen ausnahmslos viele Rennbedingungen, und es ist im Allgemeinen ziemlich schwierig, Dinge so zu entwerfen, dass die richtigen Ereignisse jedes Rennen gewinnen.

Thnx.It war wirklich informativ für mich.