Frage:
Karnaugh Maps - Was ist der Zweck einer "egal" Bedingung?
user159676
2014-06-23 19:43:25 UTC
view on stackexchange narkive permalink

Ich habe ein Problem und steckte den ganzen Tag fest.

Ich entwerfe einen gemeinsamen Kathodendecoder mit Oktal- bis 7-Segmenten, bei dem nur die Oktalziffern 2 bis 7 an die Eingänge des angeschlossen werden Decoder, daher wird die Kombination für die Ziffern 0 und 1 niemals angewendet.

Ich verstehe, dass X egal Bedingungen 1 oder 0 sein können.

enter image description here

Für meinen Eingang A enter image description here

Aber als ich versuchte, Eingang A einzustellen, leuchtet er auf, wenn 1 eingeschaltet ist?

Ich wollte nur, dass 2,3,4 angezeigt wird , Nur 5,6,7 Ziffern

Was ist der Zweck, egal Bedingungen?

Wenn Sie möchten, dass die Anzeige für die Ziffern "0" und "1" leer ist, "kümmern" Sie sich um die Ausgänge des Segments (alle 0).deshalb hast du kein "egal".Ihre Tabelle entspricht nicht Ihrem gewünschten Verhalten.
Was ist dann der Grund, warum es für diesen Fall egal ist? Liegt es daran, dass ich die Wahl habe, entweder 1 oder 0 zu wählen, aber ich habe gelernt, dass es egal ist, ob die Bedingung darin besteht, weiter zu vereinfachen?
@user, Ich habe das unten skizziert.* Egal * Bedingungen vereinfachen das Design, aber solche Zustände werden undefiniert.
Sie würden "egal" verwenden, wenn die Eingabekombinationen 000 oder 001 nicht auftreten oder wenn es Ihnen wirklich egal ist, was für diese Kombinationen auf dem Display angezeigt wird.Wenn Sie erwarten, dass 001 bei Ihrer Eingabe auftritt und keine Segmente leuchten sollen, sollten Sie alle Nullen (nicht X) eingeben.
** In einer Implementierung gibt es kein "undefiniertes Verhalten", nur in einer Spezifikation.Jedes Verhalten in einer Implementierung * muss * definiert werden, auch wenn es entartet ist. **
@IgnacioVazquez-Abrams, du hast mich.Ich sprach in Bezug auf undefinierte Designabsichten.
@sherrellbc: Ich habe dich nicht ins Visier genommen, ich habe es nur für den Fragesteller geklärt.
Der Zweck von "egal" besteht darin, die k-Map-Optimierung zu ermöglichen, um den Booleschen Ausdruck effizienter zu reduzieren.
In ELI5-Begriffen vereinfacht es den Ausdruck.Wenn Sie bei Ihrer letzten K-Map die X in 0 geändert haben, ist dies 'INPUT A = AC + B', was ein weiteres Gate ist.
Auch ich denke mit "INPUT A" meinst du eigentlich "OUTPUT A"?Also wirklich 'OUTPUT A = AC + B' (vorausgesetzt, A / B / C bedeutet für sich genommen die Eingänge)
@IgnacioVazquez-Abrams: In der asynchronen Logik, die Rückkopplungsschleifen enthält, können wirklich undefinierte Verhaltensweisen vorhanden sein.Betrachten Sie die Schaltung X = Y nand (A nand E);Y = X n und (B n und E).Wenn A, B und E alle hoch sind, sind sowohl X als auch Y hoch.Wenn A niedrig und dann E wird, wird X niedrig und bleibt niedrig, während Y hoch bleibt.Wenn B niedrig und dann E wird, wird Y niedrig und X bleibt hoch.Wenn E jedoch zuerst auf niedrig geht, ist das Schaltungsverhalten undefiniert.
Drei antworten:
horta
2014-06-23 20:23:01 UTC
view on stackexchange narkive permalink

Immer wenn Eingang A auf 1 gesetzt ist, soll Ausgang A leuchten, wie in der folgenden Abbildung gezeigt. An der Beleuchtung von Ausgabe A ist nichts auszusetzen, da das Diagramm zeigt, dass genau das ist, was Sie möchten.

Der Grund, warum Ausgabe A 001 nicht interessiert, ist, dass Sie angegeben haben, dass Sie nie haben 001 als Eingabe. Bei Ihren Tests sehen Sie, dass Ausgang A leuchtet, wenn Eingang A auf 1 gesetzt ist, da dies genau die Funktionalität ist, nach der Sie suchen.

Der Zweck von egal ist es, die Menge an Logik zu vereinfachen, die Sie benötigen. Was es hier getan hat. Sie müssen den Sonderfall A nicht ausgeben, um sich Gedanken darüber zu machen, ob B und C gesetzt sind, wenn A gesetzt ist. Bei Eingang A kümmert sich Ausgang A nur darum, was Eingang A ist.

Wenn Sie sich um 001 kümmern würden, wäre Ihre Ausgangslogik für Ausgang A:
A = B + CA
Anstelle von:
A = B + A
Sie würden brauche ein zusätzliches UND-Gatter für C * A. Wenn Sie sich nicht darum kümmern, wird die Anzahl der Gates reduziert, die Sie benötigen, um Ihre Ausgabe richtig zu erhalten.

enter image description here

Schließlich wäre es etwas weniger verwirrend, wenn Sie ein anderes verwenden würden Namenskonvention zwischen Eingabe und Ausgabe. So etwas wie Eingabe = XYZ und Ausgabe = ABCDEFG oder Eingabe = ABC und Ausgabe = abcdefg.

sherrellbc
2014-06-23 19:51:50 UTC
view on stackexchange narkive permalink

"Don't Care" -Bedingungen sind in Ihrem Design weiterhin vorhanden. Sie sagen lediglich, dass es Ihnen egal ist, was passiert, wenn dieser Eingabesatz auftritt. Wenn Sie die resultierende Wahrheitstabelle zuordnen und eine entsprechende Gruppierung durchführen (entweder 1s oder 0s), legen Sie effektiv fest, wie die nicht interessierenden Ausgaben aussehen werden.

Wenn Sie nämlich eine Bedingung ohne Sorge mit 1s (Zwischenzeiten) gruppieren, wird sie zu einer 1. Dies gilt natürlich auch für Bedingungen ohne Sorge und Gruppierung mit 0s (maximale Begriffe).

Beispielsweise ist Ihre Eingabe C'B'A jetzt eine 1, da Sie sie als solche gruppiert haben. Dies hat zum Ziel, die Ausgabebeschränkungen für Zustände zu lockern, die für Sie nicht wirklich wichtig sind, damit Sie beim Zuordnen mehr Freiheit haben.

Sie müssen entweder festlegen, was passiert, wenn diese unerwünschte Eingabe auftritt (dh das Segment ausschalten, indem Sie alle LEDs ausschalten), oder sicherstellen, dass solche Eingangskombinationen niemals in Ihrem Produkt auftreten es wird undefiniertes Verhalten hervorrufen.

John
2016-04-22 11:57:35 UTC
view on stackexchange narkive permalink

Durch Markieren von nicht interessierenden Begriffen in Ihrer Karnaugh-Karte können Sie bei Verwendung der Karte zur Vereinfachung Ihrer Logik entscheiden, ob sie entweder 1 oder 0 sein sollen - je nachdem, welcher Ausdruck den einfacheren logischen Ausdruck ergibt. Wenn Sie sie unnötig auf 1 oder 0 beschränken würden, hätten Sie diese Flexibilität nicht.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...