Forum: Mikrocontroller und Digitale Elektronik Frage zu Hazards bei Schaltwerke


von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Ich grüße euch Elektronikexperten,

zur Zeit versuche ich mich im Bau von Schaltwerken mit Logikgattern und 
Flipflops.

Nachdem ich die Kapitel über die Erstellung von Schaltnetze, Schaltwerke 
und den Verfahren allesamt gelesen habe, beschäftige ich mich nun mit 
den ungeliebten Hazards die auftreten können.

Im Bild oben sieht man ein Schaltnetz mit einem '1' Hazard und das 
Zeitdiagramm dazu.

Mein Problem ist nun aber das Signal 4.

Um an einem UND-Gatter eine '1' zu erhalten, müssen alle Eingänge des 
Gatters auf '1' liegen.
"Signal 1" liegt aber immer auf '0'.


Woher erhalte ich an Signal 4 nun meinen "HighPegel" ?

Beim Lesen des Skriptes der FH-Kiel ist mir zudem aufgefallen, dass die 
Signallaufzeit bei UND-, ODER-Gattern häufig nicht berücksichtigt wird, 
die Laufzeit bei einem Inverter aber sehr wohl.

Hat dies einen bestimmten Grund?


Viele Grüße und vielen Dank für eure Hilfe

Stefan

von Joe F. (easylife)


Lesenswert?

In dem Timing-Diagram ist so einiges falsch.
Ich denke Signal 1 soll die ganze Zeit high sein.
Dass die Gatterlaufzeiten von UND und ODER nicht berücksichtigt werden, 
ist natürlich falsch.
Nur wenn sich der Zustand eines Gatters nicht ändert, ist dessen 
Laufzeit natürlich irrelevant.

von Dussel (Gast)


Lesenswert?

Joe F. schrieb:
> In dem Timing-Diagram ist so einiges falsch.
Zu dem Ergebnis komme ich auch. Solange ein Eingang der beiden 
Und-Gatter immer 0 ist, kann das Oder-Gatter keine 1 ausgeben.

Stefan schrieb:
> Beim Lesen des Skriptes der FH-Kiel ist mir zudem aufgefallen, dass die
> Signallaufzeit bei UND-, ODER-Gattern häufig nicht berücksichtigt wird,
> die Laufzeit bei einem Inverter aber sehr wohl.
Das kenne ich nur von einfachen Beispielschaltungen, mit denen Hazards 
demonstriert werden sollen.
Dabei wird das gleiche Signal direkt an den einen und invertiert an den 
anderen Eingang eines Logikgatters gelegt. Da ist die Laufzeitdifferenz 
durch den Invertierer wichtig, aber nicht die für beide Signale gleiche 
Laufzeit durch das Logikgatter.

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Hier habe ich noch so einen Fall über den ich mir schon länger den Kopf 
zerbreche.

Laut Angabe ist Zn+1 = d * ~Zn oder ~e * Zn
Hier handelt es sich aber um Asynchrone-Signale.

Mit den Eintragungen von (d * ~Zn) komme ich klar, mit den Eintragungen 
von der anderen Hälfte (~e * Zn) aber nicht, vor allem in dem Bereich 
vom roten Kreis.

Wieso fehlt mir also der Kurze Puls beim roten Kreis?
Hier ist doch die Bedigungung  ~e * Zn auch erfüllt.

Viele Grüße

Stefan


Das Diagramm zu den Synchronen Signalen habe ich nur vorsichtshalber 
angehängt, damit komme ich aber auch zurecht :)

von Falk B. (falk)


Lesenswert?

Siehe Glitch

von W.A. (Gast)


Lesenswert?

Stefan schrieb:
> mit einem '1' Hazard ...

Bevor du mit solchen Schlagworten um dich schmeißt, empfehle ich erstmal 
die Grundlagen des Designs von asynchronen Schaltwerken zu 
verinnerlichen.

von unk (Gast)


Lesenswert?

er hat doch explizit darauf hingewiesen dass es sich bei der 2. Frage um 
asynchrone Eingaenge und Signalehandelt. Daher wuerde ich annehmen, dass 
ihm bewusst ist, dass Bits unterschiedlich schnell umschalten und dass 
das zu Problemen fuehrt. Daher fragt er wohl auch nach der Stelle mit 
dem roten Kreis.

Im Skript der FH Kiel steht halt drinnen, dass so etwas im oberen 
Zustandsdiagramm'1' Hazard genannt wird, also nicht schlimm, wenn er das 
auch so nennt.

@Falk und andere

Hier wird wohl vereinfachend angenommen, dass jedes Gatter gleich 
verzoegert.
Villeicht koennt ihr ja erklaeren was am oberen Diagramm nicht stimmt.
Signal x0, x2, x3 auf high zu legen fuehrt auch nicht auf die Signale 3 
und 4

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

In meinem Buch "Grundlagen der Digitaltechnik" habe ich noch so ein 
Beispiel entdeckt:

Nachdem KV-Diagramm habe ich als Lösung:

y = a * c  +  b * ~c


Das Diagramm zeigt mir aber etwas anderes.
Eigentlich müsste die Zeile a * c eine Zeiteinheit nachdem c auf '0' 
geht, auch auf '0' fallen, was aber hier nicht der Fall ist.

Ich wäre euch sehr dankbar, wenn ihr mich auf meinen Fehler hinweisen 
könntet.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.