NAND-Vereinfachung

Gast #795829
Hallo Leute,

in einem Projekt möchte ich eine Logikschaltung mit 7400 Gattern 
realisieren. Also NAND mit zwei Eingängen. Die Logikschaltung soll für 
jeden Zustand des BCD-Codes ein Signal liefern. Anders gesagt: Zu jeder 
mögliche Kombination des BCD gibt es einen bestimmten Ausgang. Im Anhang 
mal eine Schaltung von mir. Es werden zuerst je zwei Eingänge (A&B) 
(C&D) in jeder möglichen Kombination UND-Verknüpft. Im nächsten Schritt 
werden jeweils zwei Kombinationen wieder UND-Verknüpt. Macht 16 
Möglichkeiten und 52 Gatter.

Hat jemand noch einen Vereinfachungsvorschlag? Oder gar einen ganz 
anderen Lösungsansatz mit 7400 Gattern?

Ich hoffe irgendwer hat verstanden was ich meine. Sonst sende ich gleich 
nochmal eine Funktionstabelle.

Danke
Hein

PS: Ja, ich kann mit µC umgehen. :)
Angehängte Dateien:
Gast #795856
Die als Inverter geschalteten NANDS V7 bis V10 und V17 bis V20 kannst
du weglassen, wenn du A0 mit A3, A1 mit A2, A4 mit A8 (sollte wohl A7
heißen) und A5 mit A6 tauschst.

Du schriebst etwas von BCD. Das heißt doch, dass an den Eingängen
nicht alle Kombinationen von 0 (0000) bis 15 (1111), sondern nur von 0
(0000) bis 9 (1001) auftreten. Damit kannst du V21 bis V32 ebenfalls
weglassen.

So arg viel mehr lässt sich meinem Gefühl nach nicht vereinfachen, es
sei denn, jemand hat eine Idee, wie man einige der hässlichen Inverter
an den Ausgängen (V44, V42, V40 usw.) wegbekommt.
Gast #795866
@Läubi
danke guter tipp, habe ich noch nicht gekannt. Leider hilft es in diesem 
speziellen Fall nicht weiter, da er sich einfach ein 4-Fach-NAND nimmt. 
Oder kann man das noch umstellen?

@Yalu
Danke, das werde ich gleich mal prüfen. Und ja du hast recht, es ist 
nicht wirklich ein BCD sondern einfach 4Bit

Hein
Gast #795895
@Falk
So eine Antwort habe ich von dir erwartet und ich werde sie auch nicht 
weiter kommentieren. Nix für ungut. :D

@Yalu
Jo, habe mich grade stark gewundert.

Hein
Gast #795937
Na klar, es gibt viele Möglichkeiten dieses Problem zu lösen. 74154 ist 
dabei wohl die eleganteste, aber es geht mir darum das Problem 
ausschießlich mit 7400 zu lösen.

Hein
Gast #796019
>alternativ: KV-diagramm

Das werd ich morgen mal probieren, lange ists her..


A,B,C,D sind EIngänge und 0..9 sind die Ausgänge?

Was ist mit den nicht eingetragenene Werten in der Tabelle?
Alle Null nehme ich an?

74HC00 = NAND...
Gast #796040
Eine Möglichkeit: Minimieren mittels Quine/McClusky, danach die 
N-fach-NANDs durch Kaskaden von 2-NANDs realisieren. Ist aber fraglich 
wie "minimal" das dann noch ist. Versuchen kann mans aber mal.

Ansonsten kannst du natürlich auch per Programm und Brute-Force diverse 
Möglichkeiten durchprobieren. Beachte dabei, nicht jede Ausgangsfunktion 
für sich zu minimieren, sondern gemeinsame Terme mitzubenutzen. 
Suchbäume, die auf jeden Fall ein schlechteres Ergebnis als eine bereits 
gefundene Lösung liefern (start: deine Lösung), kannst du gleich an 
deren Wurzel ignorieren, das spart Laufzeit.

Gibts in 74xx Multiplexer? Wenn ja kannst du damit die Funktionen nach 
je einer Variablen entwickeln:
  F(a,b,c,d) = (a AND F(1,b,c,d)) OR (/a AND F(0,b,c,d))
Das entspricht einem Mux mit a als selector und den 3-Eingänge-Fs als 
Daten.

Überleg auch mal ob du noch mehr Schaltungen rein auf 74xx aufbauen 
willst; in dem Fall machst du es dir sicher einfacher wenn du den 
Computer für dich rechnen lässt.
#796149
Matthias Lipinsky wrote:
>>alternativ: KV-diagramm
>
> Das werd ich morgen mal probieren, lange ists her..
>
>
> A,B,C,D sind EIngänge und 0..9 sind die Ausgänge?
>
Laut funktionstabelle sind die A,B,C,D eingänge. Ausgänge sind 
0...9,A',B',C',D',E,F
Die striche bei den ABCD deshalb weil laut schematik die eingangs ABCDs 
nicht mit den ausgangs ABCDs zusammenhängen.

> Was ist mit den nicht eingetragenene Werten in der Tabelle?
> Alle Null nehme ich an?
>
Nein können auch Dont Cares sein, musst du überprüfen.

> 74HC00 = NAND...
kA :-)
#796591
Wozu dient eine solche Schaltung?
Es gibt doch dafür einerseits fertige 74xx und wenn einem das nicht 
dienlich ist kann man ja ein GAL/PAL/PALCE... nehmen. Und CPLDs gibts ja 
auch noch, und wenn man ein etwas dickeres Portemmonaie hat kann man 
auch noch einen FPGA verwenden.
#796630
@ Michael Wilhelm (Gast)

>>Wozu dient eine solche Schaltung?

>Wurde oben schon erwähnt. Entweder Lötmasochist, Aktieninhaber von z. B.
>TI, ...

Oder da gabs auf Ebay billig ein kg 7400, die müssen jetzt verbaut 
werden, koste es was es wolle! ;-)

MFG
Falk
Gast #796725
>Oder da gabs auf Ebay billig ein kg 7400, die müssen jetzt verbaut
>werden, koste es was es wolle! ;-)

Das wären 7727 ICs. Eben bei TI nachgesehen, einer wiegt 129,4 mg. 
Könnte bei verbleiter Version etwas weniger werden :-( .

MW
Gast #796767
Hallo,
danke für die Antworten. Ich hatte die Aufgabe aus einem Gray-Code 15 
verschiedene Schaltzustände auszuwerten. Jetzt habe ich das ganze 
nochmal verkompliziert. Einfach nur so ein Gedankenspiel wie weit man 
mit 2-Fach-NANDS vereinfachen kann. Das heißt ich habe nicht vor diese 
Schaltung zu bauen, sondern nur zu vereinfachen. Dabei habe ich das 
Gefühl, dass mein Vorschlag noch nicht das kleinst möglichste Ergebnis 
ist.

Man stelle sich einfach eine theoretische Übungsaufgabe vor(andere lösen 
Sudoku) mit folgender Aufgabenstellung: Von einen 4-Bit Signal(A,B,C,D) 
soll für jede Kombination je ein Ausgang (1-F) auf 1 geschaltet werden. 
Entwerfe eine möglichst kleine Logikschaltung ausschließlich mit 
2-Fach-NANDS.

So und bitte keine Haarspaltereien mit meiner Aufgabenformulierung. ;)

@Morin
Das mit dem NAND Kaskadieren verstehe ich nicht, kannst du mir das 
nochmal erläutern?

Nochwas: In der Wertetabelle stehen die freien Felder auf der 
Ausgangseite für 0.

Gruß
Hein

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.