So. Ja, diese Woche werde ich dann in dem jetzt folgenden Kapitel,
boah, ich habe mich hier gerade verblättert, wie ich gerade sehe.
Nehmen wir das? Nämlich Nummer 13. Schaltwerke vorstellen. Da geht es im Prinzip darum,
dass wir gesagt haben, also vorher hatten wir Garterfunktionen,
dann Schaltnetze, also im Prinzip Bündel von irgendwelchen Funktionen,
die aber eben keinerlei Rückkopplung enthalten durften.
Und am Ende, also sprich letzten Freitag,
hatte ich dann ja eben noch das Konzept von Gatterverzögerungen beziehungsweise Leitungsverzögerungen
kurz erklärt und da dann eben wirklich motiviert das.
Also entsprechend den elektrischen Gegebenheiten,
wie sie jetzt also wirklich in realen Schaltungen dann auch eben vorkommen,
man eben versucht dann mit entsprechenden Verzögerungsmodellen dann eben auch bei
der Simulation von solchen Schaltnetzen dafür zu sorgen,
dass eben diese Verzögerungen entsprechend wirksam werden
Gut, damit wir uns jetzt befassen werden, sind eben sogenannte Schaltwerke.
Dort spielen also eben solche Verzögerungen auch eine entscheidende Rolle,
weil, also ohne die Verzögerung,
wurden die Schaltwerke sowieso schon mal gar nicht funktionieren.
Entscheidend ist dann aber eigentlich, dass Schaltwerke eben zusätzlich Rückkopplungen haben.
Das heißt also, Ausgänge oder eben Teile der Ausgänge
sind dann quasi wieder auf Eingänge der Schaltung zurückgeführt.
Dadurch haben Schaltwerke eben erstmal prinzipiell grundsätzlich andere Eigenschaften jetzt als irgendwelche Schaltnetze,
weil jetzt eben die Ausgangswerte eben nicht nur von den aktuellen Eingängen oder irgendeinem Eingangsfektor abhängig sind,
sondern aufgrund dieser Rückkopplung dann eben auch von der Vorgeschichte.
Diese Vorgeschichte wird dann eben immer als ein interner Zustand quasi repräsentiert oder angesehen. So,
das, was man dann bei Charlottwerken eigentlich haben möchte,
ist, dass diese Schaltwerke jetzt nicht nur irgendwie relativ unmotiviert,
also irgendwelche internen Zustände haben aufgrund der Verzögerung,
die sie vielleicht wechseln, sondern dass es sogenannte stabile Zustände gibt.
Das heißt, dass jetzt eben bestimmte interne Zustände irgendwo gespeichert
werden und man damit dann eben auch die Möglichkeit hat,
dann eben auch wirklich dauerhaft Informationen zu speichern,
nicht nur im Minimalfall.
Für uns heißt das dann eben erstmal quasi sowas wie die
Speicherung eines Bits, also sprich irgendwo stabilen logischen Wert 0
oder 1
irgendwo zu speichern
Wenn man das nicht hat, dann hat man dann eben beim Entwurf ein mehr oder minder chaotisches Verhalten,
was ich dann meistens, also in der Simulation,
sieht man das dann auch immer ganz gut, dann eben in Form von irgendwelchen Oszillationen äußert.
So wie Sie ihn, Schaltwerke prinzipiell aus,
kann sich das eben immer vorstellen, dass man sagt,
ich habe hier erstmal sowas wie normales Schaltnetz, habe dort dann eben die Eingangsvariablen,
wie ich das jetzt ja vorher auch schon Im vorigen Kapitel,
ein vorgestellt hatte und aus diesem Vektor von Eingangsvariablen werden dann eben diverse Ausgangsvariablen berechnet.
Und was jetzt eben hinzukommt, ist,
dass eben ein Teil dieser Variablen dann quasi als Zustand angesehen wird,
wo dann eben hier berechnete Werte quasi als Folgezustand, Z Plus,
angesehen oder interpretiert werden, dann eben über Verzögerung oder eben entsprechende Speicherglieder,
dann eben wieder direkt als Eingänge und als aktueller Zustand dann eben auf das Schaltennetz zurückwirken.
Denn je nachdem,
ob jetzt diese Rückkopplung nur aufgrund der Gata-Verzögerung oder der Leitungsverzögerung aufgebaut wird,
spricht man dann eben wirklich jetzt nur von irgendwelchen Gata-Verzögerungen,
beziehungsweise dann eben asynchronen Schaltwerken,
wenn ich hier jetzt also auch irgendwelche getakteten Elemente habe und dann eben zu dem definierten Zeitpunkten aufgrund eines externen Taktsignals,
dann eben dafür sorgen kann,
dass eben sich der aktuelle Zustand ändert, beziehungsweise das,
was sie als Folgezustand berechnet wurde,
dann eben in einem nächsten Tagschritt der aktuelle Zustand wird,
dann spricht man dann eben entsprechend von getakteten Schaltwerk.
Oder Synchronenschaltwerk
Gut, hier auf dieser Folie ist das Ganze dann
eben nochmal von den Begriffen her erläutert.
Hatte ich aber im Prinzip gerade eben schon soweit vorgestellt.
Also Asynchrone oder nicht getaktete Schaltwerke, wenn eben nur Gatterverzögerung wirken.
Und wenn dort bestimmte Zeitglieder eingesetzt werden, wie die aussehen,
werde ich also jetzt im Laufe dieses Kapitels bzw. schätzungsweise heute noch beschreiben,
spricht man dann eben von Synchronen bzw. getakteten Schaltwerken
Gut, bei Synchronenschaltwerken gibt es dann eben ein explizites Taktsignal. Nicht das,
was wir eigentlich jetzt in technischen Systemen oder technischen Geräten
dann quasi immer als Glock eigentlich kennen,
das dann eben dafür sorgt,
dass entsprechend zeitsynchron dann eben der Zustand sich ändert,
während eben bei Asynchronenschaltwerken wirkt wirklich jetzt nur die Gartenverzögerung TAU
oder wie auch immer man jetzt also da seinen Verzögerungsmodell
angesetzt hat
Prinzipiell kann man jetzt sagen, dass ich,
wenn ich jetzt also einen Asynchronentwurf mache,
eigentlich eine etwas höhere Arbeitsgeschwindigkeit erreichen kann,
werde ich nachher,
also oder schätzungsweise an Freitag nochmal kurz motivieren und vorstellen,
wenn ich also letztendlich erklärt habe,
welche zusätzlichen Zeitverhältnisse jetzt bei Synchronenschaltwerken
noch wirksam werden
Und da werde ich dann noch mal kurz einige Ideen skizzieren, wie man im Prinzip asynchrone Schaltungen entwerfen könnte. Problem bei Asynchronenschaltungen ist aber,
dass das Ganze dann eben ein wirklich extrem aufwendiger Entwurf ist,
der eben auch vergleichsweise schnell fehleranfällig ist,
beziehungsweise man da sehr schnell Fehler einbauen kann,
weil ich natürlich jetzt nicht Apriori sagen kann,
also die Schaltung oder das Skater hat die und die Verzögerungszeit,
sondern auch das, was man so in Datenblättern findet,
ist eben eine Zeit oder ein Sidewert, der jetzt quasi,
sagen wir mal, so im statistischen Mittel entspricht,
ist aber eben noch einen ganzen Raum,
sagen wir mal, von Streuung geben kann,
wo jetzt also abhängig von irgendwelchen technischen Gegebenheiten,
also Bautortaleranzen, Temperatur, Spannungsschwankungen, was auch immer,
also sich diese Zeiten entsprechend verschieben können,
beziehungsweise man eben auch innerhalb einer Fertigungsserie nicht,
und das ist ja das,
wovon also zum Beispiel auch die Halbleiterhersteller,
also zum Beispiel bei Spare ich aber auch Stein oder bei Prozessoren ja leben,
man da eben auch eine relativ breite Spanne von Schwankungen hat und letztendlich,
wenn jetzt also Prozessorhersteller,
Intel beispielsweise jetzt also seine Prozessoren mit, sagen wir mal,
gleichartiger Ausstattung oder gleichartiger Funktion dann eben in vier unterschiedlichen Geschwindigkeiten zu vier unterschiedlichen Preisen verkauft,
dann sind das nicht vier unterschiedliche Entwürfe,
sondern es ist ein Entwurf und nach der Fertigung wird der halt quasi getestet und entsprechend einsortiert,
je nachdem,
wo dann also quasi bei der Fertigung jetzt also Schwankungen aufgetreten sind,
gibt es eben mal schnellere,
mal langsamere Exemplare und die werden dann eben entsprechend vorsortiert und
dann als unterschiedliche Prozessoren quasi gebrendet und verkauft
Gut, bye, Schaltwerken,
steckt natürlich dann wie bei vielen Sachen in der Informatik,
dann ist es auch noch irgendwo eine schicke Theorie dahinter.
In diesem Fall nennt sich das Ganze endliche Automaten,
beziehungsweise wenn man das jetzt auf das, auf den englischen Begriff geht,
dann heißt das Fahren als State Machine, beziehungsweise dann FSM abgekürzt.
Also falls ich hier auch irgendwo mal auf den Fohlen
nachher so FSM stehen habe, nur dass sie wissen,
also da geht es dann eben auch um solche Automaten.
Formal gesehen, wenn man das jetzt noch ein bisschen weiter unterteilt,
beruhen Schaltwerke dann eigentlich auf, deterministischen, endlichen Automaten mit Ausgabe.
Dazu gibt es in der Theorie zwei leicht unterschiedliche, aber zueinander äquivalente Modelle.
Das heißt also äquivalent im Sinne von beide Typen von Automaten können gleich viel beschreiben.
Die verhalten sich zwar zeitlich unterschiedlich und man kann dann auch immer sagen,
das Verhalten oder die Funktion,
die ich mit dem einen Automaten mache,
wenn ich die mit dem anderen Automatentyp modellieren möchte,
bräuchte ich beispielsweise mehr Zustände,
aber im Prinzip sind die funktional zueinander
völlig äquivalent
Und diese Automaten sind einmal das sogenannte Milli-Modell, beziehungsweise dann das Murr-Modell.
Beides nach irgendwelchen Agennamen benannt, von denjenigen oder den Theoretikern,
die das dann, also letztendlich mit entwickelt haben, beziehungsweise diese Modelle aufgestellt haben.
Unterschied zwischen beiden Modellen ist einfach nur beim Milli-Modell,
ist die Ausgabe vom aktuellen Zustand und von dem aktuellen Eingabevektor abhängig,
während beim Mormodell hängt die Ausgabe nur vom aktuellen Zustand ab.
Es ist also unabhängig von Eingabevektor. So,
wenn man das Ganze dann jetzt im Sinne der theoretischen Informatik beschreibt,
würde man sagen, also ein endlicher Automat,
beziehungsweise ein deterministischer, endlicher Automaten mit Ausgabe,
ist ein sechs Tupel, Z, Sigma Delta,
Clan Delta, Lamda und Z. Null.
Wobei diese Begriffe stehen, Z ist eine Menge von Zuständen
dieses Automaten
Es gibt dann eine Eingabe, Alphabet. Also die ist
groß. Sigma, ein Ausgabealphabet, das Großdelta.
Dann zwei Funktionen. Das sind dann im Prinzip formal gesehen
also nichts anderes als Schaltfunktion, nämlich einmal eine Zustandsübergangsfunktion.
Delta, die quasi abhängig von einem Zustand und einem Eingabewort
einen neuen Zustand berechnet
Und eine Ausgabefunktion Lamda, die abhängig von Zustand und Eingabewort,
ein Ausgabewort errechnet, war Milli-Modell und beim Moor-Modell berechnet Lamda
dann eben nur abhängig von dem Zustand, das Ausgabewort.
Und zusätzlich gibt es dann eben auch noch einen ausgezeichneten Zustand,
Z0, der quasi als Startzustand des Automaten fungiert
Gut, hier auf dieser Folie sind jetzt also nochmal explizit
diese Unterschiede zwischen Mili und Moor-Modellierung aufgezeigt. Also wie gesagt,
beim Mili-Modell hängt die Ausgabe nur vom Zustand und dem Eingabevektor ab,
während beim Moor-Modell ist es eben nur der aktuelle Zustand.
Das heißt also hier die Abhängigkeit vom Angabe Vactor X entfällt.
Nicht demzufolge gilt dann eben für diese Funktion Für die Ausgabefunktion des Mili-Automaten habe ich dann eben Ausgabevektor Y,
Islam da von Z und X beim U-Automaten ist Y dann eben
nur Lahm davon Z und für die Übergangsfunktion gilt dann das eben der Folgezustand,
Z Plus, Delta von Z und X ist,
was dann also bei beiden Automaten im Prinzip der Fall ist.
Gleichzeitig gibt es dann eben noch diese Speicherglieder oder eben nur Gatterverzögerungszeiten im Rückkopplungsfahrt und wenn man diese ganzen Begriffe und das Ganze dann also in irgendwelche Grafiken bringt,
dann hat man also das,
was jetzt also auf dieser Folie zu sehen ist,
wo man jetzt eben hier sieht, Mili-Automat,
hier diese beiden Funktionen für den Zustandsübergang,
der Eltern bzw. die Berechnung des Ausgabevektors Y,
eben diese Funktion Lahm da und der Unterschied ist eben bei Mili-Automat gibt es dann eben noch hier die Abhängigkeit von dem Eingangsvektor beim Moor-Automaten nicht.
Ansonsten war das identisch und je nachdem,
ob es sich dann eben um Synchrone oder asynchrone Schaltwerke handelt,
hat man eben hier in diesem Rückkopplungspfad quasi vom Folgezustandszelt plus auf den aktuellen Zustandszelt,
eben entweder nur die Gatterverzörungszeiten wirksam oder man hat dort eben irgendwelche getakteten Elemente dann in Synchronschalt werden.
Gut, asynchronische Schaltung, was ist das,
beziehungsweise solche Rückkopplungen im einfachsten Fall, wäre das also sowas wie,
also einfach ein Inverter, dessen Ausgang quasi auf den Eingang zurückgekoppelt ist.
Hier hätte ich jetzt also eine entsprechende Hades-Schaltung jetzt hier als Ringostsellator und was hier eben passiert ist,
dass jetzt also hier ein paar mehr gerade da drin sind mit einer Verzögerungszeit,
ich eben entsprechend eine ungerade Anzahl von Gattern habe,
das ist eigentlich immer nur das Entscheidende,
sodass quasi dann die Ausgabe dann immer nach einem Durchlauf sich quasi selber invertiert,
wenn ich das Ganze nehme quasi hier einfach irgendwie wie so ein Taktsignal auf so einen Zähler aufschaltet,
dann sieht man,
dass der halt eben beliebig weit drauf zählt.
Und hier ist jetzt einfach nur noch zusätzlich mit eingebaut,
dass eben quasi an einer Stelle jetzt hier Stationis Inverterson nennt,
Gatta da ist,
wo ich dann eben letztendlich mit zum Eingang das Ganze einmal anhalten kann,
beziehungsweise dann entsprechend weiterschalten kann.
Wie gesagt, hier als sehr einfaches Beispiel,
jetzt dieser Ring-Ostsilator, nicht das, was,
also hier jetzt quasi an Zustandsübergangsfunktionen beziehungsweise an Ausgabefunktionen ist,
ist natürlich vergleichsweise trivial,
nicht weil sowohl der Zustand als auch meinetwegen die Ausgabe wäre,
dann einfach jetzt hier dieser Wert dieser Leitung,
der dann eben entweder nun null oder eins sein kann und
dann eben letztendlich mit beliebig schnell immer
wechseln würde
Nicht mit solchen Schaltungen, wo dann im Prinzip,
also jetzt ich eben so eine Oststellation erreiche,
kann man dann ihm beispielsweise,
wenn man jetzt also irgendeine neue Halbleitertechnologie hat oder irgendwie so Testschaltungen aufbaut,
dann eben wirklich mal sehen,
wie groß ist jetzt also die maximale Shartfrequenz,
wo ich dann eben wirklich mal sehe,
was die Technik dort im Prinzip maximal möglich macht.
Also hier auf der Folie ist das Ganze dann also jetzt hier für die einzelnen hat er dann eben auch nochmal in Form so eines Impulsdiagramms aufgezeichnet,
wo man dann eben immer sehr gut sieht, wie dann also hier mit entsprechender zeitlicher Verzögerung,
wie sie jetzt hier in der Simulation eingetragen ist, dann eben der Wert invertiert wird und sich dann dementsprechend fortpflanzt. Gut,
bei solchen Asynchronenscheidungen,
also wie das jetzt beispielsweise beim Ring-Ostseelade der Fall war,
kann man jetzt eben sagen, je nachdem,
um welche Art von Schaltung es sich handelt,
kann diese Schaltung dann eben sowohl stabiler als auch nicht stabile Zustände enthalten,
also im Fall des Ring-Ostsellators waren das zwar nicht stabile Zustände,
weil da rauscht halt mit maximaler Faktfrequenz da,
also irgendwie war es durch und ich kann jetzt nicht gezielt sagen,
ich habe in meiner Schaltung irgendwie ein Bit 0 oder eins gespeichert und was man da dann eben auch entsprechend sehen kann,
Ist letztendlich eben, was sie ja auch schon angedeutet hatte,
dass eben diese Verzögerung der Bauelemente eben nicht apriououi bekannt sind,
beziehungsweise dass die sich dann eben auch teilweise im Betrieb auch noch ändern können.
Also zum einen können das dann eben wirklich irgendwelche Umwelteinflüsse sein.
Zusätzlich habe ich dann aber teilweise auch noch irgendwelche Alterungseffekte, wo dann eben auch noch die Schaltung sich entsprechend anders verhalten kann. Deswegen ist es dann eben wirklich vergleichsweise schwierig mit irgendwelchen Synchronschaltung,
jetzt wirklich eine bestimmte Funktion zu garantieren,
beziehungsweise wenn man das machen möchte,
also am Ende dieses Kapitels werde ich dann nochmal so zwei,
drei kleine Beispiele kurz skizzieren,
muss dann eben vergleichsweise aufwendige Handshake-Protokolle vornehmen, wo man dann eben sagt,
ich habe jetzt also irgendwie beispielsweise irgendwo ein fertiges Ergebnis berechnet und dieses Ergebnis soll jetzt also in der nächsten Stufe weiter bearbeitet werden,
da wird dann eben über eine Handshake-Leitung gesagt,
der nächsten Stufe,
du kannst dir dort an deinen Eingängen was abholen und die muss dann eben wieder selber signalisieren,
ich habe die Werte abgeholt,
rechne damit und der vorhergehende Teil könnte dann jetzt eben beispielsweise
wieder neue Werte berechnen
Deswegen hat man in der Praxis eigentlich nur synchrone Schaltwerke.
Das heißt, alles, womit wir dann auch arbeiten werden,
beziehungsweise was dann also auch in diesem Begriff des Schaltwerksentwurfs reingeht,
wird dann eigentlich immer nur in Form von Synchronenschaltwerken durchgeführt.
Dazu hat man dann eben spezielle Bauelemente, die dann eben,
anstatt der Gatterverzögerungszeiten quasi in diesem Rücken Kopplungsfahrt drin sitzen und in diesem Fall wären das dann eben irgendwelche Flip-Flops,
also speichernde Elemente, wo ich dann eben jeweils ein einzelnes Bit,
beziehungsweise wenn ich entsprechend viele habe, dann eben einen entsprechenden Zustandsvektor abspeichern kann.
Gut bei Synchronschaltung, wie gesagt, Flip-Flops als Zeitglieder,
in denen dann eben unabhängig von den Eingabewerten und dem,
was sich also jetzt in den Charlotten-Nettes, beziehungsweise jetzt speziell in einem Delta-Schaltnetz tut, dann eben die Werte gespeichert bleiben. Das heißt,
nicht wenn ich jetzt also hier nochmal so auf so eine Grafik zurückgehe,
dass man eben quasi hier in dieser Rückkopplung oder in dieser Schleife jetzt eben das Ganze wirklich an dieser Stelle über die entsprechenden Elemente auftrennen kann und eben sagen kann,
ich habe hier ein Schaltnetz oder eine Schaltfunktion,
die mir jetzt eben einen neuen Zustandsvektor berechnet als Set Plus,
ich dann aber eben nur über ein Taktsignal,
wie auch immer das jetzt aussehen mag,
dann eben dafür sorgen kann,
dass ich dann eben nur zu bestimmten diskreten Zeitpunkten sich dann eben
der Zustand ändert und ich dann eben hier jetzt nicht wie in diesem Ring Oscillate oder dann eben so einen Durchlauf habe,
wo eben beispielsweise jetzt also der Wert immer von 0 nach 1,
nach 0 nach 1 und
so weiter wechseln würde
Gut, für die Art und Weise,
wie jetzt diese Taktsteuerung passiert,
beziehungsweise wie jetzt also diese Flipflops angesteuert werden,
kann man sagen, da gibt es also unterschiedliche Möglichkeiten,
sogenannte Pegelsteuerung oder Flankensteuerung,
unterschiedliche Taktschemata mit Mehrphasentakten,
all das werde ich also jetzt im Verlauf dieses Kapitels
dann also noch ein bisschen weiter motivieren und dann das auch
noch weiter vorstellen
Quintessenz erstmal nur ist eben das synchronische Schaltwerke aufgrund dieser Trennung von Ausgang bzw. Folgezustand
zu aktuellem Zustand eben deutlich einfacher zu entwerfen und auch zu analysieren sind.
Gut, diese Zeitlieder oder die Flip-Flops, wie sehen die rein technisch aus.
Wenn man jetzt also einen Elektrotechniker fragt, dann würde er sagen,
das sind sogenannte bisstabile Bauelemente oder auch Kippglieder. Wir,
beziehungsweise ich werde jetzt also im folgenden eigentlich immer den englischsprachigen Begriff,
also Flipflops benutzen, womit dann eigentlich auch schon angedeutet ist,
dass ich eben mit diesem Bauelement letztendlich zwei diskrete Zustände,
nämlich ein Gesetz und ein Gesetzzustand quasi speichern kann,
was dann also formal gesehen,
also noch nichts anderes ist als ein einzelnes Bit.
So, um jetzt zwischen diesen Übergängen oder diesen Zuständen irgendwie umzuschalten,
muss sich das Ganze dann eben nur passend ansteuern.
Dazu werde ich jetzt also gleich noch verschiedene Flip-Flop-Typen genauer vorstellen.
Wie gesagt, also Flip-Flop ist eigentlich jetzt der Name,
der eigentlich auch jetzt wieder für einen an sich elementares Schaltwerk mit zwei Zuständen steht.
Das heißt also, ein Flip-Flop selber ist prinzipiell erstmal nichts
anderes als an und für sich gesehen ein asynchrones Schaltwerk.
Das ist bloß vergleichsweise sehr einfach aufgebaut und es ist in
Anführungszeichen sauber entworfen. Das heißt, man weiß genau,
dass es eben unter bestimmten Bedingungen eben zwei stabile Zustände hat und
eben jetzt nicht in so eine ungewollte Aszillation gelangen kann
Nicht, weswegen es dann eben als Verzögerung ist bzw.
als Speicherelement dann in getakteten Schaltwerken benutzt werden kann.
Gut, wie gesagt, Flip Flop selber hat zwei Zustände.
In der Regel dann sowas wie ein oder zwei Ausgänge,
die dann also letztendlich dem Zustand gleichgesetzt werden.
Wobei ich dann eben auch sagen kann,
ich habe also einen Ausgang und Invertierendenausgang
Gut, verschiedene Typen. Es gibt erstmal als Allereinfachste Variante,
sogenanntes Basis- oder Reset-Set-Flip-Flop. Das ist eigentlich eine Schaltung,
die sehr einfach aufgebaut ist und die sich dann in mehr oder minder
abgewandelter Form dann eben auch in allen anderen Flip-Flop-Typen wiederfindet.
Auf diesem Basis-Flip-Flop baut aber eigentlich diese Eigenschaft des Speicherns von
zwei Zuständen in dem Flip-Flop eben immer auf.
Das kann man dann eben entsprechend erweitern, um jetzt irgendwelche Taktungen. Dann das,
was Wie jetzt eigentlich im Schaltwerksentwurf immer einsetzen werden,
sind dann eben Pegel oder flankengesteuerte D-Flip-Flops, sogenannte,
die Ledges für Pegelgesteuerte oder D-Flip-Flops dann für flankengesteuerte Elemente,
wo ich dann eben ein einzelnes Bit speichern kann und ein,
zwei andere Philip-Flop-Typen werde ich dann im einzelnen nachher auch noch vorstellen.
So eine Frage
Also die Frage war, ich habe ja angangs gesagt,
beziehungsweise es steht hier auf der Schaltung drauf, Lipflops selber sind nicht getaktet.
Und jetzt breche, habe ich hier auf einmal irgendwie getaktete RS
Flip Frost, beziehungsweise Pegel und Flanken gesteuerte Flip Flops. Damit ist,
sagen wir jetzt eigentlich, folgendes gemeint, dass man Letztendlich,
wenn man sich jetzt also Schaltwerke generell ansieht, sagen kann,
dass ein Flipflop selber eigentlich ein asynchrones Schaltwerk ist.
Das heißt, das ist das Flipflop selber ist eigentlich nicht getaktet.
Also das heißt, da gibt es Rückkopplungen,
die sind unabhängig vom Takt beziehungsweise bei diesem,
was ich da jetzt also als getaktete Flipflops bezeichnet habe,
gibt es dann zwar etwas,
was ich dann Taktsignal nennt,
das ist aber was anderes als ein synchrones Schaltwerk
Ist jetzt also von der Terminologie ein bisschen blöd,
weil Takt kommt dort eigentlich in unterschiedlichen Bedingungen vor.
Also einmal takt jetzt im Sinne der Theorie im Schaltwerksentwurf und einmal takt
jetzt irgendwie als ein Eingangssignal in einem asynchronen Schaltwerk, nämlich dem Flip-Flop,
wo ich sage, das nenne ich jetzt C für Clock oder wie auch immer.
Also ein Flip-Flop selber ist eigentlich erstmal nicht weiter getaktet,
mit den Flip-Flops baue ich dann aber eben sowas wie Ledges oder eben flankengesteuerte Flip-Flops auf und die setze ich dann quasi in diesen Rückkopplungsfahrt,
wenn ich jetzt wirklich schalt, Werke entwerfe,
also sprich größere Automaten, die ich also zum Beispiel benutze,
um jetzt irgendwelche argebedeckten Systeme zu steuern,
um einen Aufzug zu steuern, um das beliebte Beispiel,
was ihnen dann auch noch begegnen wird,
Ampelschaltung zu realisieren oder eben um Letztendlich was,
was ich jetzt den internen Zustand jetzt im Prozessor hier in meiner CPU irgendwo abzuspeichern.
Das heißt, letztendlich ist jeder Zähler,
jede CPU was, was ich auch immer formal gesehen,
erstmal nichts anderes als ein Schaltwerk.
Bloß man hat da dann eben wirklich, sagen wir jetzt,
so eine Trennung zwischen den Begriffen nicht.
Also wo habe ich jetzt hier eigentlich asynchrone Schaltwerke und alles,
was man aber eigentlich technisch in irgendwelchen Geräten findet,
sind immer synchronische Altwerke
Gut, also Flip-Flops, jetzt eben wirklich als so ein Minimalbeispiel oder als jetzt eben eine sehr einfache Realisierung,
um dann eben wirklich zwei einzelne Bits zu speichern und die einfachste Variante davon ist eben die sogenannte RS-Flip-Flop.
RS steht dann immer für Reset und Set,
kann ich eben entweder in Form von zwei nennen oder in Form von zwei Norgattern letztendlich realisieren,
Die Funktion werde ich jetzt also hier auch gleich noch mal in Hades zeigen,
weil dann sieht man das dann nämlich gleich noch ein bisschen anschaulicher, was sich dabei tut.
So, und zwar, wie man hier sieht,
habe ich jetzt eben einfach,
zum Beispiel jetzt in dieser Nentform,
zwei Nent-Gutter, jeweils hier ein Eingang,
den nenne ich jetzt mal ein wenig mal S oder mit so einem Strich S,
also irgendwie sowas wie so ein invertiertes S und R,
hier an einem anderen Gatter,
dann habe ich hier irgendwie zwei Ausgänge und gleichzeitig sind diese Ausgänge dann quasi über Kreuz wieder auf die Eingänge des jeweils gegenüberliegenden Gattas geführt.
So, was passiert, Heba jetzt in der Simulation, wenn beide Eingänge eins sind?
Dann kann ich hiermit, also jetzt sagen wir noch nicht sonderlich viel machen,
wenn ich jetzt aber einen Eingang,
in diesem Fall habe ich jetzt den S-Eingang mal auf Null geschaltet,
führt das dazu, dass sie, wenn ich hier eine Null habe,
erzwinge ich quasi bei dem Landgatter am Ausgang eine Eins,
nämlich und zwar unabhängig davon,
was also dieser andere Eingang macht.
So, das heißt, hiermit habe ich diesen Ausgang jetzt also auf Eins gesetzt.
Nicht gleichzeitig ist hier diese Reset-Eingange ja auch noch eins.
Habe ich hier am Ausgang eine Null. Und gut,
diese Null, sag mal, würde dann eben auch hier diesen Ausgang wieder auf Eins bringen.
Letztendlich habe ich dann also jetzt stabil am Ausgang,
also an dem Kuhausgang eine Eins, an dem Kuh nicht,
quasi hier eine Null. Wenn ich jetzt dieses S wieder zurücknehme,
würde dieser eingestellte Wert erhalten bleiben,
weil ich jetzt ja immer sagen kann,
also hier an dem zweiten Eingang von diesem Gatter habe ich jetzt
eine Null und diese Null führt ja dann eben auch wieder dazu,
dass ich das Ganze,
wie eben vorgestellt,
selber erhält
So,
und wenn ich jetzt dieses Flip-Flop oder den Gespeicherten werde,
dieses Flip-Flops, umschalten will,
müsste ich quasi jetzt hier auf der anderen Seite diesen,
also jetzt Reset-Eingang quasi von eins auf null schalten und analog zu dem eben beschriebenen,
würde ich damit dann sagen, gut,
also mit der Null hier erzwinge ich hier am Ausgang eine Eins,
also das heißt,
diese N-Kuh-Ausgang wird eins,
das führt dazu,
dass das zusammen mit dieser Eins hier eine Null ergibt,
QA wird demzufolge null
Und das führt dann eben hier in dieser Rückkopplung dann auch wieder dazu,
dass sich das Ganze auch erhält, wenn ich jetzt den entsprechend das Ganze wieder auf eins schalte. So,
die Funktion ist jetzt hier quasi in dieser Tabelle beschrieben,
das heißt, mit estgleich null kann ich das Ganze setzen,
mit erdgleichen null kann ich das Ganze zurücksetzen,
wenn beide Kontrolleingänge eins sind, ändert sich nichts,
der gespeicherte Wert bleibt erhalten und was man also erstmal nicht machen darf oder was also nicht passieren sollte,
ist, wenn man jetzt eben quasi beide Eingänge auf Null setzt,
würden also beide Ausgänge erstmal auf eins gezwungen werden.
So, und das kriege ich jetzt hier so natürlich nicht hin.
Wenn ich ja so anschließend das Ganze jetzt wieder irgendwie zurückschalte,
laufe ich natürlich wieder in ein von den Anführungszeichen normalen Betriebszuständen.
Wenn ich das jetzt also hier nicht über irgendwie anklicken,
sondern irgendwie über eine Datei eingabe oder wie auch immer,
so umschalten würde, dass also wirklich beide E-Eingänge absolut gleichzeitig umschalten,
dann hätte ich in diesem Fall hier auch eine Oszillation,
also sprich genau das,
was man also nicht haben sollte.
Deswegen steht dann hier quasi in der Beschreibung dann auch immer
das Dieses gleichzeitige Aktivieren beider Eingänge quasi als Forbidden gekennzeichnet ist.
Gut, das war das Ganze für das Nant.
Analog dazu kann ich das im Prinzip auch mit dem Norm machen.
Logik ist dann eben quasi nur andersrum, das heißt also Eingänge.
Inneraktiv heißt, sie sind beide null. Und mit
einer 1 am Eingang kann ich quasi beim Norm erzwingen,
dass der Zugehörige Ausgang null wird. Und das Führt dann dazu,
dass ich also hier über diese Rückkopplung dann hier an dem
zweiten anderen Ausgang dann entsprechender Eins erhalte,
die dann eben genau dafür sorgt, dass sich das eben entsprechend erhält.
Und andersrum hier mit der Eins kann ich das dann dementsprechend
wieder in den anderen Zustand setzen.
Nicht das ist also das, was diese Basis RS-Flip-Flops sind,
also entweder als Rückgekoppelte nennt oder Rückgekoppelte Norgatta,
wo ich dann eben wirklich zwei stabile Zustände entsprechend einstellen kann
Gut, hier nur mal als Beispiel,
also meistens findet man das,
wenn man das jetzt zeichnet,
dann immer irgendwie wirklich so in dieser Form,
wo das also mehr oder minder symmetrisch gezeichnet ist mit diesen Rückkopplungen,
um das also auch nochmal wirklich so ein bisschen zu verdeutlichen,
wenn man das jetzt also hier zeichnerisch oder grafisch auseinanderzieht,
könnte man das also auch so zeichnen,
aber auch dann sieht man also eben sehr schön,
letztendlich habe ich hier immer irgendwo ein Signal oder eine Leitung,
was dann wirklich so als Rückkopplung
bis in den Eingang zurückgeht
Gut, wenn ich das Verhalten dieses RS-Flip-Flops analysiere, wobei,
das ist jetzt hier natürlich didaktisch wieder nur bedingt schlau gemacht,
also sowohl die Grafik als auch diese Tabellen werde ich dann also
etwas später noch erläutern, wie die eigentlich aufgebaut sind.
Man kann es sich aber im Prinzip immer so vorstellen,
beziehungsweise wenn man sich jetzt also hier diese Tabelle ansieht,
dass es im Prinzip aufgebaut wie ein,
wie die Funktionstabelle letztendlich von ganz normalen Schaltfunktionen.
Das heißt, ich habe hier also auf der linken Seite jetzt irgendwo meinen Zustand,
nicht jetzt für die beiden möglichen Bits, Kuh und Kuh nicht,
entsprechend jetzt erstmal alle vier Kombinationen, die möglich sind.
Ich habe dann hier jetzt eine Eingabe für Set und Reset
und wenn ich das Ganze dann eben wirklich jetzt perhades oder manuell,
wie auch immer, quasi jetzt diese Schaldung hier,
also diese Norrealisierung durchsimuliere, Kann man sich dann eben letztendlich ausrechnen,
wenn ich quasi in einem Zustand 0-0 bin.
Das heißt, der Wert ist null und der Wert ist null
und ich habe jetzt hier irgendwie einen entsprechenden Wert dafür R&S von 2 Bit,
nicht was würde sich dann quasi jetzt hier als Folgezustand für Kuh und Nicht-Kuh einstellen.
Und genau das ist im Prinzip dann immer hier aufgezeichnet.
Das heißt, Zustand, die vier möglichen Eingabekombinationen und dann
eben die zugehörigen Folgezustände. Das wurde dann eben dazu führen,
dass, wenn ich das jetzt eben als Schaltnetz simuliere,
ich nach Ablauf einer Verzögerungszeit quasi dieser Folgezustand dazu führt,
dass ich da natürlich dann also auch entsprechend der Zustand der Schaltung ändert.
Das heißt also beispielsweise, wenn ich in dem Zustand 0-0 bin,
als Eingabe dann eben null und null habe, wäre der Folgezustand.
1-1 führt dann eben dazu, dass nach Ablauf einer Verzögerungszeit,
ich quasi ziehe in dieser Zeile nachsehen muss und dann eben gucke,
bei der Eingabe 0-0,
was wäre dann wieder der Folgezustand nicht und dann sieht man,
dass es dann hier auch wieder 0-0, das heißt,
hier hätte man jetzt eben immer schön so eine Oststellation zwischen diesen beiden Zuständen.
Und das, was dann hier rot gekennzeichnet sind,
sind dann eben letztendlich die sogenannten stabilen Zustände,
nämlich wo ich jetzt eben sage, ich habe einen bestimmten Zustand eingenommen
Und unter dieser Eingabe hätte ich dann als Folgezustand quasi wieder den identischen Zustand.
Das heißt, der ändert sich nicht. Und was man dann eben hier entsprechend auch sehen kann,
ist, dass quasi jetzt für diese beiden,
ist man jetzt normalen Betriebsfälle,
wo ich nämlich entweder ein Bit null oder ein Bit 1 gespeichert habe,
ich also demzufolge als Zustand entweder 0-1 oder 1
-0 habe und ich quasi jetzt mit dem setzen der Schaltung das Ganze dann eben in den entsprechenden anderen Zustand überführen kann,
beziehungsweise mit dem Rücksetzen,
das Ganze dann eben entsprechend hierhin überführen kann.
Nicht nur dich sonst, aber wenn die Eingabe quasi hier
mit 0-0 inaktiv ist, ich eben immer in diesem Zustand bleibe. Gut,
und diese möglichen Kombinationen von Zustand,
was also jetzt hier in diesem Grafen quasi jetzt immer durch so einen Kreis gekennzeichnet ist,
dem Eingangsvektor,
was dann eben immer hier eine Kombination an so einem Pfeil
ist und dem Übergang auf einen Folgezustand gekennzeichnet dann eben durch einen entsprechenden Pfeil entweder auf den Zustand selber,
wenn es sich jetzt eben um stabile Zustände handelt oder auf einen anderen Zustand
Das entspricht dann letztendlich hier diesem Inhalt. Gut,
das Ganze nennt sich dann entweder hier rechts Flusstafel und diese Art von Diagramm heißt dann Zustandsdiagramm,
beziehungsweise genauer gesagt eigentlich Zustandsübergangsdiagramm, wie man das jetzt eben beschreibt,
beziehungsweise wie man damit dann also nachher auch wirklich arbeitet beim Automatenentwurf,
werde ich dann also weiter nachher bei den Beispielen zu den takteten Schaltwerken dann auch genauer vorstellen,
weil das dann eigentlich auch die Art und Weise ist,
wie sie das beispielsweise jetzt in den Übungsaufgaben einsetzen werden.
Gut, Asynchrone beziehungsweise ungetaktete Schaltwerke,
also wie gesagt, das Allereinfachste und das,
was man eigentlich immer und bei allen Flipflops wiederfindet,
ist erstmal irgendwie sowas wie dieses RS-Flip-Flop,
also so rückgekoppelte Nant oder Norgatta,
um jetzt eben genau ein Bit irgendwie stabil zu speichern
So und alles, was ich jetzt noch an Flipfrops quasi vorstellen werde,
sind dann quasi darauf aufbauend, noch irgendwelche weiteren Elemente,
die dann eben noch zusätzliche Eingänge haben, mit,
sagen wir mal, entsprechend anderen Bezeichnungen,
die dann eben dazu führen,
dass die Schaltung da jetzt eben nur abhängig von bestimmten Steuersignalen was tut,
wie das also jetzt hier bei diesem RS-Flipfrop mit Takt der Fall ist oder dann eben auch diese Trennung zwischen setzen und rücksetzen,
auch nur entsprechend geändert wird, wie das Nasen nachher beispielsweise bei Delages oder D-Flip-Flops der Fall ist.
Gut, also das, was ich jetzt hier IS-Flip-Flop mit Takt nenne,
wobei Takt eben jetzt hier in dem Kontext nichts anderes ist als jetzt also der Bezeichner eines ausgewählten Eingangssignals,
aber jetzt nichts mit dem Takt im Schaltwerksentwurf zu tun hat,
da habe ich im Prinzip jetzt hier auch erstmal diese speichernde Struktur hier jetzt also quasi aus zwei Norgattern und zusätzlich jetzt einfach diese beiden Eingänge zum Setzen und Rücksetzen,
noch über zwei und Gatter mit einem zusätzlichen Signal verknüpft,
was sich jetzt eben hier C für Clock beispielsweise bezeichnet,
was dann eben so wirkt,
dass ich letztendlich Änderungen hier am Ausgang nur erzeugen kann,
während C aktiv ist.
Das heißt, in diesem Fall der Realisierung mit einem und Gatter,
wie das jetzt hier der Fall ist, muss eben C gleich 1 sein.
Dann habe ich eben genau diese Kombinationen,
wo ich eben entweder meinen gespeicherten Wert beibehalte,
die schade und dann eben explizit setzen oder zurücksetzen kann.
Nicht je nachdem, ob es gleich eins ist oder erdleich eins,
die Kombination, dass alle drei aktiv sind,
ist also auch in diesem Fall nicht erwünscht.
Und wenn Zehleich null ist, dann ist es letztendlich,
also hier S und R, egal. Das heißt,
das ist jetzt, dass ich hier angedeutet von Don't Care eigentlich,
dann kann ich unabhängig davon,
bleib da dann eben auch entsprechender Wert gespeichert
Gut, auch das gibt es dann also als hartes Beispiel,
beziehungsweise jetzt hier an diesem Hades Beispiel, wenn ich das jetzt hier hoffentlich finde, zack. Also hier sieht man,
wenn nicht aktiv ist, bewirkend der natürliche Eingang erstmal gar nichts,
weil ich letztendlich, also einfach diese Funktion hier aufgeblendet habe,
nicht und wenn es sehaktiv ist,
habe ich jetzt eben hier mein normales Rücksetzen, beziehungsweise setzen der Schaltung,
weswegen ich das jetzt also doch nochmal in eine Simulation gestartet habe,
ist, also hiermit kann ich jetzt nämlich,
hoffe ich zumindest gleich mal, diese Ostsellationssagen, die man nicht haben sollte.
Also ich habe jetzt hier nämlich dieses Forbidden eingeschaltet,
das heißt alle drei Eingänge aktiv und wenn ich jetzt das C abschalte,
dann verhält sich das jetzt hier immer so,
dass also hier jetzt quasi immer ein, ist zu keiner Ostsellation kommt,
also hier quasi sich ein bestimmter Wert einstellt,
was dann 2,7. Letztendlich hier nur daran liegen kann, genau,
dass sie nämlich unterschiedliche Verzögerungszeiten in Modellen haben und ich deswegen, also diesen Fall nie hinbekomme.
Das heißt, wenn ich jetzt also hier mal das Ganze Ende
Und mich mal vergewisser, dass ich überall identische Verzögerungszeiten habe.
So, dann sollte jetzt genau der Fall eigentlich möglich sein, den man nicht haben möchte. Das,
wenn ich jetzt hier also die Simulation starte,
diesen verbotenen Zustand einnehme, Und anschließend den Takt ausschalte,
beziehungsweise dafür sorge, dass also beide Eingänge hier gleichzeitig weggehen,
dann sieht man also,
dass dann also auch in diesem Fall eine Oststellation auftritt,
also genau das, was man jetzt also tue mich nicht mit realen Schaltungen machen sollte.
Gut, also er ist Ship Trop mit Takt,
also im Prinzip auch nur diese Basis RS-Schaltung,
dann aber eben noch um einen zusätzlichen Eingang erweitert
Nicht und hier, also da nochmal entsprechend die Funktionalität des Ganzen im Impulsdiagramm. Wie gesagt,
das können Sie sich dann also auch selber entsprechend entweder jetzt aus dem Hades heraus ableiten,
beziehungsweise dann also hier nochmal nachvollziehen,
wo ich dann eben sehe, dass eben nur,
wenn der Takteingang glockt gleich eins ist,
also aktiv ist,
dann entsprechend hier an dem Ausgang entsprechend was umgeschaltet werden kann und gut,
die Funktionalität kann man sich dann eben hier
aus den beiden Schaltfunktionen dann entsprechend auch ableiten
Gut, das, was man dann eigentlich meistens findet,
jetzt also zum Speichern von irgendwelchen Werten, ist also jetzt gar nicht hieß er. Essschaltung mit irgendwelchen Sets- und Rücksetzeingängen,
sondern das, was man da dann eigentlich immer hat,
sind irgendwelche D-Ledges beziehungsweise dann nachher, also die Flip-Props,
beziehungsweise oder andersrum,
also in diesem Fall jetzt hier so erstmal als Pegel gesteuertes D-Flip-Flop,
wo ich dann eben sage, ich habe quasi diesen Takteingang,
das heißt, das ist ein ausgewählter Eingang,
den ich jetzt erstmals Takt bezeichne,
der dann eben eine spezielle Funktionalität hat und dann eben einen eigentlichen Dateneingang.
Und die Funktion ist dann, wie jetzt quasi in dieser Tabelle beschrieben,
dass ich eben sage, wenn der Takteingang beispielsweise null ist,
dann behalte ich quasi jetzt als Folgezustand immer meinen aktuellen Zustand.
Das ist also das, was jetzt hier mit diesen beiden Werten
quasi jetzt hier für Kuhstrich eingezeichnet oder Q-Plus angezeichnet ist,
dass eben der Folgezustand leichter aktuelle Zustand ist, unabhängig von meinem Dateneingang.
Und ansonsten, wenn der Takteingang eins ist,
ist der Wert des Flipflops bzw. des Ledges,
also dieses Zustandes Kuplus dann eben gleich dem Dateneingang. So,
und je nachdem, ob das Ganze jetzt eben passiert,
wenn, wie in dieser Tabelle angedeutet, der Takteingang eins ist,
dann spricht man eben von einem High-aktiven Ledge,
nämlich Block ist 1 oder Clock Assay, das heißt, da tut sich was.
Oder wenn das Ganze jetzt eben passiert,
was jetzt also hier nicht in dieser Tabelle drin steht,
alternativ dazu, wenn der Zustand quasi jetzt gespeichert wird oder weitergeleitet wird,
wenn der Datennahegang null ist, dann spricht man dann eben von einem low-aktiven Ledge.
Gut, wie kann man jetzt so ein beziehungsweise ein pegelgesteuertes Deflip-Flop realisieren.
Zum einen kann ich natürlich sagen,
ich nehme jetzt also hier im Prinzip einfach so ein RRS-Flip-Flop,
benutze hier einfach,
wie gewohnt den Takteingang C und der Dateneingang ist im Prinzip
noch nichts anderes als das Setzsignal und für das Reset-Signal nehme ich dann eben den Dateneingang quasi noch einmal invertiert.
Das heißt, mit Er ist gleich, D und Ehren,
gleich delegiert, habe ich dann mit so einem getakten,
er ist Philipp Flop, ihm mein Deletsch aufgebaut.
Das Ganze kann man letztendlich aber auch noch ein bisschen einfacher aufbauen oder minimieren,
würde dann eben quasi dieser Struktur hier entsprechen,
wo ich dann eben auch hier wieder für die eigentliche Speicherung jetzt eben irgendwie so ein Rückgekoppeltes Basis-RS-Flip-Flop habe,
nicht und hier jetzt eben irgendwelche Logik vorneweg,
mit der ich dann eben mit dem Takteingang was ausblenden kann und dann eben hier mit dem Eingang jetzt ihm auch dafür sorge, dass ihr ansprechende Werte eingestellt werden.
Das Ganze, also auch später,
wenn man das in Hades jetzt noch in anderen Schaltungen dann weiterverwendet,
wird dann oft immer,
was man dann also auch in irgendwelchen Datenblättern oder in irgendwelchen Diagrammen findet,
immer irgendwie durch solche Schaltsymbole so ähnlich wie dieses hier gekennzeichnet,
also sprich irgendwie so ein kleines Kästchen mit den beiden Ausgängen,
also einem normalen und einem invertierten,
der ist dann immer angedeutet durch diesen gezeichneten im Ausgang.
Dieses wäre dann eben der Dateneingang D. Und der Takteingang C.
Und um anzudeuten, dass der Takt,
wie jetzt hier in diesem Fall, quasi pegelgesteuert arbeitet.
Das heißt, entweder bei Takt gleich A ist,
wer bei Takt gleich Null der Eingang direkt weitergeleitet wird,
hat man dann eben hier noch so ein kleines Kästchen dahinter
Gut, auch das könnte... Entschuldigung. So,
also auch das könnte man jetzt formal wieder in so ein Zustandsdiagramm,
beziehungsweise so eine Flussstafel bringen. Die sieht jetzt also hier
ein bisschen einfacher aus als bei den einfachen, er ist Flip-Flop,
nämlich ich habe, hier geht es nur genau zwei Zustände.
Und hier sieht man dann eben, dass ich dann eben
wirklich immer Bei Clock gleich null sowieso in stabilen Zuständen bin.
Das heißt, da ändert sich also hier am Zustand nichts. Und wenn der Takt 1 ist,
zwinge ich quasi eins hier mit dem Dateneingang D,
eben entweder hier den Zustandswechsel,
wenn die gleich eins ist,
gehe ich dann eben hier in den Zustand 1,
wo ich dann als stabilen Zustand verbleibe oder wenn die gleich null ist und der Takt 1 nicht,
dann bleibe ich in dem Zustand als stabilen Zustand.
Und auch das wäre dann in Form so eines Zustandsübergangsdiagramms sowas
wieder, also links auf der Folie angedeutet
Gut, das, was man jetzt eigentlich meistens bei Schaltung oder im Schaltwerksentwurf verwendet,
sind jetzt aber keine Tag-Pegel-gesteuerten Elemente, sondern Tag flankengesteuerte Elemente.
Funktionalität ist dann eigentlich folgendes,
wie das jetzt also hier auf dieser Tabelle letztendlich skizziert ist,
dass ich sage, ich habe also einen Takteingang,
C, Dateneingang, D, ein Zustand bzw. Folgezustand,
die sich quasi jetzt so ergeben, dass ich sage,
wenn der Takt stabil einen Wert tat.
Also entweder 0 oder 1 ist, ändert sich der Zustand nicht.
Und nur wenn ich eine Taktflanke habe, also sprich,
der Takt ist null, und wechselt auf eins.
Also in diesem Fall wäre das dann eine sogenannte Vorderflanke,
also sprich von Nullen nach eins als Wechsel,
was jetzt hier durch diesen Fall nach oben beispielsweise angedeutet ist.
Nur in dem Fall würde ich dann eben den Dateneingang übernehmen
und entsprechend dann eben als Folgezustand oder als Zustand des D-Flip-Flops
Gut, auch hier kann man jetzt immer unterscheiden zwischen Vorderflankensteuerung,
wie jetzt also hier in der Tabelle, aufgelistet.
Das heißt, wenn sich das Taktsignal von 0 nach 1 ändert,
wäre das dann eben meine Vorderflankensteuerung und eurem analog.
Dazu hätte ich dann eben eine Rückflankensteuerung,
wenn sich das Taktsignal von 1 nach 0 ändert,
was dann quasi dem letztendlich umgekehrten Verhalten entspricht.
Gut, wie kann man jetzt solche D-Flip-Props technisch realisieren,
Auch da gibt es dann verschiedene Varianten, das zu machen.
Die allereinfachste Variante nennt sich dann eigentlich Master-Slave-Flip-Flop. Das ist
also im Prinzip nichts anderes als zwei von diesen D-Ledges,
die ich gerade eben vorgestellt habe, hintereinander geschaltet, also kaskadiert.
Und das fordere und das hintere Ledge-Trump quasi zueinander versetzt,
invertierten Takt oder ein invertiertes Taktsignal. Das heißt also beispielsweise,
wenn ich das jetzt also so beschalte, dass das Fordere Ledge,
also in diesem Fall jetzt das Master Ledge, low aktiv ist.
Das heißt, transparent bei Taktsignal gleich null. Und das Hintere,
das Layfledge, High aktiv ist,
also jetzt transparent bei Taktsignal gleich 1,
dann habe ich erreicht, dass sich ein Eingangswerte wechsle,
quasi jetzt während der Takt null ist,
durch die Smaster Ledge hindurch ausbreitet,
aber quasi am Eingang des Slave Ledges
hängen bleibt oder stehen bleibt
Und wenn ich dann den Tag umschalte, würde eben dieses Masterledge quasi dann mit Taktsignal
gleich eins seinen Wert beibehalten, das heißt gespeichert behalten.
Und gleichzeitig würde dann eben die Centeral Ledge aktiv werden.
Das heißt, der Wert von dem Master wird dann zum eigentlichen Ausgang der Schaltung erst weitergeleitet.
Das heißt eben genau bei dem Übergang von Takt null nach Tag 1,
das heißt also bei der Vorderflanke des Taktes würde man das
Ganze dann entsprechend am Ausgang sehen und das die Schaltung selber verhält sich dann eben letztendlich wie ein Vorderflanken gesteuerte Sledge.
Gut, auch das kann man dann am besten,
jetzt war ich natürlich schlau und okay, das Ganze zu beenden,
kann man natürlich am besten nochmal in dem Ah,
das Editor, sich ansehen.
So, also was man jetzt hier hat,
ist eben genau nichts anderes als zwei,
nämlich ein vorderes und ein hinteres,
im Prinzip identisch aufgebaut werden
Ähm, D-Ledges. Und was man dann eben nur sieht,
ist, dass also der Takteingang, gut,
hier ist er am Eingang nochmal ein Inverter,
aber ist letztendlich egal, ähm,
hier einmal auf dieses Ledge geht und bevor er dann,
also ich auf das zweite Ledge geht, er ihm nochmal entsprechend invertiert wird.
So, und jetzt habe ich mit Takteingang Null, sehe ich das,
wenn ich jetzt hier also an den Dateneingang irgendwie umschalte,
Würde quasi mit entsprechenden Garterverzögerungszeiten dann aber eben dieser Wert des Dateneingangs hier auch am Eingang des Slave Ledges anliegen,
nämlich in diesem Fall jetzt also hier die Eins,
beziehungsweise wenn ich jetzt hier umgeschaltet habe, entsprechend die Null.
Und wenn ich jetzt den Takt eben einmal schalten lasse,
führt das dazu,
dass also hier dieses vordere Masterledge quasi jetzt inaktiv geschaltet wird,
das heißt also das,
was ich vorher vor dem Umschalten des Taktes hier am Ausgang hatte, bleibt gespeichert.
Und dieser Wert geht dann eben durch das Slave letztendlich auf diesen Ausgang. Und jetzt sieht man,
dass wenn ich jetzt also den Dateneingang entsprechend wechsle,
dass jetzt hier natürlich keine Auswirkungen hat,
weil das also hier bei dem Master also völlig inaktiv ist.
Andererseits, der hat seinen Wert hier gespeichert, der setzt sich
dann eben jetzt Hidrities High-aktive Ledge zum Ausgang fort. Wobei sich hier aber dieser Eingang natürlich jetzt nicht weiter ändern kann. So,
und wenn ich jetzt also hier wieder entsprechend umschalte,
beispielsweise jetzt hier den Datenangang vor mal auf Null schalte,
dann habe ich ihm wieder genau die Situation,
dass eben hier noch der alte Wert gespeichert wurde,
weil dieses Ledge jetzt hier wieder in diesem Speichermodus ist,
das heißt unabhängig von diesem Dateneingang,
dieses Masterledge ist jetzt wieder transparent geschaltet,
und mit dem Dateneingang könnte ich jetzt also hier den Ausgang entsprechend beeinflussen,
aber auch das wirkt sich jetzt eben hier nicht weiter aus,
weil wie gesagt, dieses jetzt hier in aktiv ist.
Und wenn ich jetzt wieder eine Vorderflanke erzeuge, das heißt,
den Takt von 0 nach 1 schalte, sieht man an eben,
wie entsprechend dieser Wert jetzt hier wieder gespeichert wird und eben auch unabhängig davon,
was sich jetzt hier am Takt mache,
dann eben auch entsprechend gespeichert bleibt.
Das heißt, über diese Kombination von einem Loh aktiven und
einem High-Aktiven, Delec habe ich dann eben letztendlich genau
So eine Flankensteuerung erreicht. Also hier noch mal die Referenz,
also auf die Hades-Webseite bzw. dort die Web-Demos, also unter Flip-Flops,
DLED, DFFF findet sich da dann das Ganze.
Gut, dass wir jetzt eben letztendlich die Realisierung jetzt als Master Slave-Flip-Flop,
man kann das Ganze dann also auch logisch jetzt von den Ausdrücken
noch entsprechend miteinander, also irgendwie umformen,
ein bisschen kleiner machen
Führt dann im Prinzip, also zu so einer Struktur,
also jetzt nur als Beispiel, wie gesagt,
also sowas müssen sie jetzt nicht auswendig lernen,
das wird also auch nicht in der Prüfung abgefragt, von daher keine Angst.
Aber letztendlich, also im Prinzip, sowas wäre dann eben
auch eine Schaltungstechnische Realisierung für so Einforderflanken gesteuert ist, D-Flip-Floor.
Also auch hier erstmal entscheidend,
man sieht hier am Ausgang irgendwo hier so eine Speicherung in Form,
besonders RS-Flip-Flops und hier ist jetzt eben nur zusätzlich,
also quasi hier dieses zweite RS-Flip-Flop, also dann eben hier schon eine Stufe weitergewandert.
Nicht aber auch hier gibt es da also nochmal so eine Struktur,
wo man also hier diese Rückkopplung letztendlich erkennen kann. Gut,
das sind jetzt, sag ich mal,
eigentlich so die Basis-Flip-Flop-Typen, beziehungsweise das,
womit heutzutage eigentlich nur noch irgendwie Schadungen entworfen werden,
nämlich sowas wie D Ledges,
das heißt also irgendwelche Takt pegelgesteuerten Elemente,
wo es also darum geht,
ob der Takteingang eben entweder null oder eins ist und demzufolge dann eben der Dateneingang quasi einen Ausgang weitergeleitet wird.
Oder eben flankengesteuerte Flip-Flops, wo ich dann eben entweder
als Vorderflanken oder als Rückflanken gesteuerte Elemente dafür sorgen kann,
dass ich eben beim Takt wechsle von 0 nach 1
oder von eins nach null,
eben der Eingangswert an den Ausgang übernommen und gespeichert wird
Entscheidend bei allen diesen Elementen sind dann eben aber nach wie vor immer noch bestimmte Zeitbedingungen,
welche es da gibt und wie die wirken,
werde ich also jetzt oder nachher im folgenden noch kurz erklären.
Also ein Flip-Flop-Typ, den man früher häufiger noch hatte,
sogenannte JK-Flip-Flop, geht im Prinzip zurück auf die Idee,
dass man sagt,
bei diesem Basis-RS-Flip-Flop hatte ich ja eigentlich immer einen in Anführungszeichen verbotenen Eingangskombinationen,
die dann eben zu solchen Aszillationen geführt hatte,
wie ich das vorhin in der Simulation vorgeführt habe.
Und die Idee war im JK-Flip-Flop ist jetzt,
dass ich also quasi zwei Eingangssignale J,
Jump und K für Kill habe,
wo ich dann eben sagen kann,
also ich möchte einen Wert explizit setzen.
Ich möchte einen Wert explizit zurücksetzen. Ich habe dann
quasi sowas inaktives, wo der Wert gespeichert wird.
Und ich habe dann eben für die vierte Kombination von J
und K,
wo der Wert invertiert wird
Und dieses hier wäre jetzt eben ein JK-Flip-Flop dann eben
noch zusätzlich mit Taktsignal beziehungsweise ihr Vorderflanken gesteuert,
wo ich dann eben auch sage,
das Ganze funktioniert eben hier jetzt nur,
wenn gleichzeitig noch eine Taktvorderflanke ist und in allen anderen Fällen,
das heißt der taktstabilen Null oder eins ist beziehungsweise das Taktsignal von eins nach Null wechselt,
also bei einer Rückflanke bleibt der Wert gespeichert und da tut
sich nichts
Naja,
also wie man jetzt ja so aufgrund dieser Eingangskombination sieht,
kann man jetzt natürlich sagen, okay,
das Ganze ist also vergleichsweise universell einsetzbar und ein paar Schaltungen oder Schaltungstypen,
also gerade sowas wie bestimmte Zähler lassen sich mit solchen JK-Flip-Flops,
also noch deutlich einfacher realisieren,
weil dann teilweise ein Teil dieser Zähllogik dann hier in diese Funktionalität dieser Eingänge mit reingerechnet werden kann.
Ansonsten kann ich sagen, wie jetzt hier angedeutet,
kann man so ein JK-Flip-Flop im Prinzip auch einfach mit einem ganz normalen D-Flip-Flop und entsprechender Logik am Eingang,
da sieht es ja auch so und, und,
oder Gattern, oder könnte man das dann entsprechend auch noch aufbauen.
Was hier jetzt eigentlich noch drauf ist oder weswegen ich die Folie eigentlich wesentlich interessanter finde.
Also hier sehen sie jetzt also auch nochmal das Symbol für flankengesteuerte Philip-Flops.
Also dieses hier soll jetzt also ein D-Flip-Flop sein.
Ich hatte hier schon kurz gezeigt beim D-Ledge, nicht das Symbol im Prinzip,
so ein Kasten, Dateneingang, Takteingang, Ausgang invertierter Ausgang. Und um jetzt eben diese Funktionalität des Ledges zu zeigen,
wo ich jetzt also abhängig vom Pegel bin,
hat man dann quasi an dem Takteingang dann eben so ein kleines Kästchen oder so ein kleines Rechteck angezeichnet bei flankengesteuerten Elementen,
wird dann in der Regel an dem Dateneingang,
also hier ist ein kleines Dreiecke gezeichnet,
also in diesem Fall beim Vorderflanken gesteuerten Element dann eben ein nicht ausgefülltes Dreieck beim Rückflanken gesteuerten wäre,
dass sein ausgefülltes Dreieck Gut, auch so ein JK-Flipflop,
kann man dann jetzt, wie auch immer,
sich jetzt ein schlauer Entwerfer überlegt hat,
dann also auch in entsprechende Gatter-Funktionen umsetzen,
beziehungsweise über solche rückkoppelten Gatter aufbauen.
Nicht und hieß,
hier wäre dann jetzt eben beispielsweise dann so ein Vordergeflanken gesteuertes JK-Flipflop dann,
auch in so einer Art Master-Slave-Schaltung,
wo ich dann eben hier einmal auch wieder diese Basis-RS-Elemente habe,
mich dann hier über entsprechende Logik irgendwie das Ganze quasi jetzt erst mal wie so ein JK Ledge betreibe.
Und hier dann eben auch einen vorderen Master und einen hinteren Slave-Teil habe,
die dann eben quasi der Arne direkt am Takteingang und der
andere dann an einem invertierten Taktangegangen hängen.
Nachteil bei der Simulation bei solchen Schaltungen.
Also deswegen hier also nur schon mal diese Anmerkung.
Also wenn man sowas dann also schon in Hades simuliert,
muss man sich also teilweise wirklich schon Gedanken machen,
wie ich das das überhaupt vernünftig initialisiert bekomme,
dass die Simulation richtig läuft
Weil das Problem ist jetzt natürlich,
also mit solchen Rückkopplungen,
dass ich in den Simulationsmodellen ja schon dafür sorgen muss,
dass jetzt irgendwelche Werte, die hier drauf sind,
bei den Rückkopplungen quasi jetzt erstmal gezielt überschrieben werden,
um das jetzt mit Werten zu setzen,
um da dann also entsprechend dann weiter zu simulieren
Gut, hier wäre dann also auch das JK-Flip-Flop nur nochmal aufgezeichnet.
Im Prinzip dann also als nochmal deutlich unübersichtlicheres Schaltbild,
wie es dann also beispielsweise dann auch in so einem Standard-IC verwendet wurde.
Gut, brauche ich jetzt nichts mehr dazu zu sagen.
Kann man dann eigentlich erstmal nur so historisch hier nehmen.
Gut, hier nochmal diese verschiedenen Flip-Flop-Typen beziehungsweise die entsprechenden Symbole,
wie sie dann also auch in Hades verwendet werden,
nämlich einmal
Typ Ledges, beziehungsweise D-Typ. Flip-Flops. Als Unterschied eben,
je nachdem, ob das nun Pegel oder Flanken gesteuert ist,
eben immer angedeutet ist über dieses Dreieck oder eben über dieses kleine Kästchen.
Zusätzlich gibt es die dann teilweise noch mit unterschiedlichen Varianten,
was jetzt also hier noch mit angedeutet ist,
wo ich jetzt also nicht nur Clock-Eingang und Dateneingang habe,
sondern wo ich die Schaltung dann eben beispielsweise noch über Reset oder Setleitungen
unabhängig von diesen Eingängen hier gezielt setzen oder zurücksetzen kann.
Auch nur als Anmerkung in Hades selber,
wenn sie also dann nachher Schaltungen auch entwerfen,
beziehungsweise dann also auch simulieren mit diesen Elementen,
beziehungsweise in der Regel wird das dann mit sowas hier passieren.
Es gibt neben diesen Diesen beiden Typen auch noch zwei Typen,
die dann also quasi als Metastable-D-Ledge beziehungsweise Metastable,
die Flip-Flop bezeichnet sind und dann immer von Norma Hendrik
mit dem Kommentar nicht benutzen versehen worden sind.
Im Prinzip machen die genau das Gleiche eigentlich wie diese Elemente hier. Der einzige Unterschied ist,
den sie hoffentlich nicht bemerken werden oder bemerken sollten,
also davon abgesehen,
dass sie ihr Element auch nicht benutzen sollten,
ist,
dass die sich in der Simulation
in Bezug auf die ungültigen Eingaben
anders verhalten
Das liegt jetzt wieder so ein bisschen daran,
wenn ich jetzt irgendwelche Schalt-Elemente... Oder irgendwelche Ledges simuliere und
jetzt in den Zeiten oder in den Zeitbedingungen irgendwas vorkommt,
was, wo ich sage,
also ich habe dann bestimmte Eingangskombinationen,
die eigentlich
nicht sein sollte
Dann arbeiten, sagen wir mal, vernünftige Simulationsmodelle so,
dass sie einem das quasi am Ausgang der Schaltung dadurch signalisieren,
dass sie jetzt nicht irgendwie willkürlich den Wert null oder eins annehmen,
sondern dass sie also einen Wert annehmen,
der mir signalisiert,
also da ist irgendwie Schrott passiert und es gibt dann sowas wie ein ungültig oder undefiniert zurück.
Das machen die Normalsimulationsmodelle,
diese Metastable-Modelle nehmen dann halt einfach einen der beiden Werte null
oder eins willkürlich an und verhalten sich dadurch
ein bisschen anders
Gut, eine Frage. Nee, also das ist,
wollte ich jetzt nämlich auch noch mal kurz gezeigt haben,
also wenn ich jetzt hier mit Hades anfangen würde,
irgendwie jetzt selber, also solche Schaltungen zu entwerfen mit den Dingern,
dann habe ich jetzt hier meinen Schaltplan-Editor und kann jetzt ja hier sagen,
gut, das macht jetzt hier also bei der Schaltung natürlich keinen Sinn,
aber ich kann jetzt ja hier sagen,
also ich mache hier also Create,
Flip-Flop und dann finde ich jetzt hier diese unterschiedlichen Flip-Flop-Typen,
die ich da jetzt gerade eben auf der Folie hatte und das sind dann eben hier die normalen D-Flip-Flop oder Ledge,
dies einfache RS,
JK-Flip-Flop und dann gibt es eben noch diese Variation mit einem asynchronen Reset,
beziehungsweise noch ein Enable oder mit Reset und Set-Signal.
Das heißt, wenn ich jetzt also hier beispielsweise einfach mal dieses DFF nehmen würde,
hätte ich jetzt hier also irgendwie so ein Symbol,
was ich hier hinsetzen könnte.
Und Entsprechend könnte ich jetzt natürlich sagen, ich nehme jetzt,
also hier dieses Metastable, die Flip-Flop,
dass sie das natürlich erstmal genauso aus.
Die verhalten sich jetzt nur in der Simulation unterschiedlich. Letztendlich würde man das dann,
also wenn man das benutzt und eben solche verbotenen Eingangskombinationen hat oder eben irgendwie sowas hat,
wo das auftritt, das dann also am Ergebnis selber sehen.
Rein praktisch würde ich jetzt eben immer sagen, deswegen,
also diese Anmerkung hier mit dem Metastable beziehungsweise eben auf der Folie mit dem Nicht-Benutzen.
Da sie dann, sagen wir mal, solche Schadungen ja selber eingeben,
wissen sie natürlich dann, was er verwendet haben.
Und... Ja gut,
also wenn man jetzt hier natürlich irgendwo erstmal irgendwo so ein
Skematic vorgesetzt bekommt oder das man irgendwie gemacht hat und sich da irgendwie vertan hat,
und sich dann nachher wundert manchmal,
warum verhält sich das eigentlich irgendwie komisch, dann ist es schlecht.
Also dann müsste man wirklich, also relativ aufwendig, die Wagen. Das heißt also,
dazu hat man dann ja eben in der Simulation,
dass man eben hier jetzt an irgendwelche Leitung eben diese Probe
setzt und dann eben in Form von Impulsdiagramm guckt,
was tut sich da zeitlich und dann eben versucht,
per Reverse-Engineerung sich zu überlegen,
Mensch,
wie verhält sich das oder warum verhält sich das dann so
Gut, das ist da nicht so ganz einfach,
dann zu unterscheiden. Also warum ist da ein Fehler aufgetreten?
Aber wie gesagt, da kann ich jetzt also nur beruhigen.
Also das wird wieder in irgendwelchen Übungsaufgaben und
erst recht nicht in der Klausur irgendwo bösartig ausgenutzt werden,
dass es dann heißt nicht, also wieso, weshalb, warum?
Also von daher. Gut, eine zweite Frage. Ja,
müsste ich mal, gut, ich muss zugeben,
ich bin ja also auch immer nur bedingt.
So, der sagt jetzt hier Instant Sname,
Propagation Delay, Setup,
Time,
Whole Time
Sieht identisch aus. Also es gibt noch einen Trick,
also in die Hades-Datei selber reinzugucken.
Das ist eigentlich auch nur eine Textdatei. Da werden die
Dinger unterschiedlich benamst sein. Aber so wüsste ich jetzt,
glaube ich, auch erstmal nicht,
wie man das jetzt also irgendwie aufgrund dieser Proparties
jetzt also je direkt aus dem Element herauslesen kann
Ja. Ähm... Bin ich schon wieder zu blind,
genau. Oder? Ja, gut, dann muss zugehen,
weil ich benutze die Dinger immer irgendwie, ähm...
Nicht so richtig, oder liegt das... Nee,
nee, nee, das ist, das, das,
das, das lag hier irgendwie nur am Rendering von dem,
von der Grafik
Also ich meine, die sind also identisch.
Also wie gesagt, also das Problem wird nicht auftauchen.
Die Symbole sehen identisch aus. An den Properties sieht man
das auch nicht. Also wo man das sehen würde.
Oh ja, also irgendeine sinnlose Schaltung generieren.
Wie gesagt, ich hatte ja gesagt,
die Vorlesung Hades
So, also diese Hades-Datei ist, hat er gesagt,
also letztendlich nichts anderes als nachher eine Text-Datei.
Man, okay, das muss man jetzt nicht unbedingt mit einem Text-Editor machen oder erstellen.
So, und hier sollten die sich jetzt irgendwo Und erscheinen,
hier heißt es also einmal Haar des Models, Flipflops,
DFF-Meter-Stable und einmal Haar des Models, Flipflops, DFF.
Also das heißt, dahinter stehen dann eben die unterschiedlichen Simulationsmodelle.
Aber okay, das ist natürlich nicht so direkt.
Jetzt also irgendwie aus dem Skematic oder außer Grafik ist ablesbar.
Aber wie gesagt, in der Regel sieht das ja so aus,
dass es so, ja, das Sachen wird mal selber entworfen haben.
Und wie gesagt, da kann ich nur sagen,
sollte man sich dann eben entsprechend auch an die Vorgabe halten und diese Metastable-Teile nicht benutzen.
Gut, damit habe ich dann eigentlich heute schon leicht überzogen.
Wäre ich dann also jetzt erst mal mit den Flip-Flops oder Flip-Flop-Typen entsprechend fertig,
Impulsdiagramme und dann eben den Entwurf von Schaltung,
Schaltwerken und die entsprechenden Beispiele, wo dann diese Flip-Flops benutzt werden,
werde ich dann also übermorgen am Freitag vorstellen,
schönen Abend