Forum: Offtopic NAND-Vereinfachung


von hein (Gast)


Angehängte Dateien:

Lesenswert?

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. :)

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Quine-Mc Clusky Verfahren sollte hier wohl etwas zur vereinfachung 
Beitragen denk ich :)

von yalu (Gast)


Lesenswert?

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.

von Matthias L. (Gast)


Lesenswert?

@hein:

Poste doch mal ne wahrheitstabelle, (eingänge und ausgänge)

von hein (Gast)


Lesenswert?

@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

von hein (Gast)


Angehängte Dateien:

Lesenswert?

@Matthias
np

von Falk B. (falk)


Lesenswert?

@  hein (Gast)

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

GAL, CPLD, EPROM.

>PS: Ja, ich kann mit µC umgehen. :)

Und warum nutzt du den dann nicht?

MfG
Falk

von yalu (Gast)


Lesenswert?

Ich nehme hiermit den Quatsch, den ich um 19:30 geschrieben habe,
ersatzlos zurück. Denkfehler ;-)

von hein (Gast)


Lesenswert?

@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

von Tishima (Gast)


Lesenswert?

Hallo!

Schonmal über ein 74154 nachgedacht ???

mfg,
Bjoern

von hein (Gast)


Lesenswert?

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

von Mr K. (mrk)


Lesenswert?

brutale methode: schalt algebra (terme vereinfachen)
alternativ: KV-diagramm
aquivalent zu KV-diagramm: Quine-Mc Clusky Verfahren (wie bereits von 
läubi vorgeschlagen)

von Matthias L. (Gast)


Lesenswert?

>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...

von Morin (Gast)


Lesenswert?

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.

von Mr K. (mrk)


Lesenswert?

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 :-)

von Tobias P. (hubertus)


Lesenswert?

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.

von Michael Wilhelm (Gast)


Lesenswert?

>Wozu dient eine solche Schaltung?

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

von Falk B. (falk)


Lesenswert?

@ 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

von Tobias P. (hubertus)


Lesenswert?

@Falk:
Nur ein kg? Das reicht ja nirgends hin.
Wenn schon soll er doch einen eigenen, neuen 64 Bit Processor mit NANDs 
erfinden. Das könnte man nachher auch brauchen... ;)

von Michael Wilhelm (Gast)


Lesenswert?

>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

von Dirk J. (dirk-cebu)


Lesenswert?

hein wrote:
> in einem Projekt möchte ich eine Logikschaltung mit 7400 Gattern
> realisieren.

Und ich dachte, er will 7.400 Gatter verbauen (obwohl er nur 52 
braucht).

Vereinfachungsvorschlag: nimmt ein paar Relais...

von Hein (Gast)


Lesenswert?

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

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Ja... da macht man ne Wertetabele... trägt das in ein KV-Diagramm oder 
Quine MC-Clusky wenn man lustig ist und schon hat man eine Minimierung 
ereicht, sogar in zweistufiger Logik.

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.