Forum: Mikrocontroller und Digitale Elektronik Binär zu 3x Binär


von Elektronik Bastler (Gast)


Lesenswert?

Ich habe einen rechner gebaut, der zwei Dualzahlen (4bit) addiert. Jetzt 
stehe ich aber vor einem Problem:
Ich möchte, dass das Ergebnis auf zwei 7 Segment anzeigen aufleuchtet. 
Dazu brauche ich einen Decoder, der mir das Ergebnis (4 bit, es geht 
also bis 15) in 2x 4 bit umwandelt (also je 4bit von 0 bis 9).

Vielen dank für hilfreiche antworten schon im voraus!

: Verschoben durch Moderator
von Neugierig (Gast)


Lesenswert?

Dec, hex, oct, ...?

von Horst (Gast)


Lesenswert?

Elektronik Bastler schrieb:
> Dazu brauche ich einen Decoder, der mir das Ergebnis (4 bit, es geht
> also bis 15) in 2x 4 bit umwandelt (also je 4bit von 0 bis 9).

Dein Stichwort für Google ist 'BCD'

von Alexander (Gast)


Lesenswert?

Vor dem Problem stand ich auch gerade: Ich habe keinen fertigen Baustein 
gefunden, der 4-Bit zu einer Anzeige 0-9 UND A-F darstellen kann.
Ich habe dann einen Attiny und ein Shiftregister genommen und mir 
schnell selber die Anzeige zusammengefrickelt.

von Harald W. (wilhelms)


Lesenswert?

Alexander schrieb:

> Vor dem Problem stand ich auch gerade: Ich habe keinen fertigen Baustein
> gefunden, der 4-Bit zu einer Anzeige 0-9 UND A-F darstellen kann.

Wenn Du auf A-F verzichtest, gab es solche Ics schon vor fünfzig
Jahren. Z.B. SN7447

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Harald W. schrieb:
> Wenn Du auf A-F verzichtest, gab es solche Ics schon vor fünfzig
> Jahren. Z.B. SN7447

Hi,
gibt auch CMOS der 4xxx-Serie, die A-F darstellen.
Bitte um etwas Geduld, ich muß gerade noch die "Hex-Anzeige" für den 
EPrommer raussuchen.
Momang...der 40511 war's wohl. (Wo gibt's den heute noch zu kaufen?)

ciao
gustav

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Elektronik Bastler schrieb:
> Vielen dank für hilfreiche antworten schon im voraus!

Das würde ich mit Digitaltechnik angehen. Wenn das mit handelsüblichen 
Logikbausteinen richtig aufgebaut ist, ist da analoge Elektronik eher 
wenig gefragt (bis auf evtl. Vorwiderstände zur Stabilisierung des 
Stroms durch die LEDs der 7-Segment Anzeige).

Du könntest die Anzeige über eine Diodenmatrix/EEPROM steuern ;-)
Für erstere Lösung bräuchtest du einen 74HC154 und die Dioden, bei der 
zweiten ein/zwei kleine EEPROMs mit 8 Eingängen und 14 Ausgängen.

von Ralf D. (doeblitz)


Lesenswert?

Alexander schrieb:
> Vor dem Problem stand ich auch gerade: Ich habe keinen fertigen Baustein
> gefunden, der 4-Bit zu einer Anzeige 0-9 UND A-F darstellen kann.

40511 aus DDR-Produktion, der konnte nicht nur 0-9 (wie der 4511), 
sondern eben auch A-F darstellen. Davon findest du vielleicht noch 
irgendwo Restbestände (Nein, meine gebe ich nicht her).

von hinz (Gast)


Lesenswert?

Harald W. schrieb:
> Alexander schrieb:
>
>> Vor dem Problem stand ich auch gerade: Ich habe keinen fertigen Baustein
>> gefunden, der 4-Bit zu einer Anzeige 0-9 UND A-F darstellen kann.
>
> Wenn Du auf A-F verzichtest, gab es solche Ics schon vor fünfzig
> Jahren. Z.B. SN7447

Und mit A-F: V40511.

von Harald W. (wilhelms)


Lesenswert?

Ralf D. schrieb:

> 40511 aus DDR-Produktion,

Die gabs auch im Westen, vermutlich einige Jahre früher.

von hinz (Gast)


Lesenswert?

Und Oppermann hat wohl noch Restbestände des V40511.

von hinz (Gast)


Lesenswert?

Harald W. schrieb:
> Ralf D. schrieb:
>
>> 40511 aus DDR-Produktion,
>
> Die gabs auch im Westen, vermutlich einige Jahre früher.

Nö, da gabs nur 4511.

von Andreas M. (andi2013)


Lesenswert?

0...9 und A...F zeigen z.B. ´4311, V40511D und D345D/D346D an.

VG

Andreas

von Frank L. (hermastersvoice)


Lesenswert?

TIL311 gäbe es als Komplettlösung. BCD rein, 0-F raus.

von Harald W. (wilhelms)


Lesenswert?

Frank L. schrieb:

> TIL311 gäbe es als Komplettlösung. BCD rein, 0-F raus.

Ja, die gabs auch schon in den frühen siebziger Jahren.

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

Zur ursprünglichen Frage:

Elektronik Bastler schrieb:
> Dazu brauche ich einen Decoder, der mir das Ergebnis (4 bit, es geht
> also bis 15) in 2x 4 bit umwandelt (also je 4bit von 0 bis 9).

Ich nehme an, du hast den Addierer nicht mit einem programmierbaren
Baustein aufgebaut (sonst könntest du damit ja auch gleich den Dekoder
realisieren) und möchtest auch den Dekoder aus einfachen Logikbausteinen
aufbauen.

Das geht mit zwei 74xx-ICs (s. Anhang). Zur Ansteuerung der 7-Segment-
Anzeige für die Einerziffer kannst du einen 74x47 nehmen. Für die
Zehnerziffer ist das ebenfalls möglich. Da dort aber nur die Ziffern 0
und 1 angezeigt werden, kannst du die Segmente b und c dauerhaft mit
Strom versorgen und die Segmente a, d, e und f über einen Treiber an
A10 der Schaltung anschließen.

von Jörg R. (solar77)


Lesenswert?

Eprom:

8 Bit und 2 CD 4511 an die Ausgänge
16 Bit, direkte Ausgabe für 7-Segment, 2 Treiber-IC oder Transistoren an 
die Ausgänge

: Bearbeitet durch User
von Elektronik Bastler (Gast)


Lesenswert?

Vielen Dank an Yalu X.
Genau so eine Schaltung hab ich bis jetzt überall im Internet vergeblich 
gesucht!
Dass gute ist, dass ich sie im Fall der Fälle auch noch auf 8 Bits oder 
noch weiter erweitern kann!

Dankeschön!

von Yalu X. (yalu) (Moderator)


Lesenswert?

Elektronik Bastler schrieb:
> Dass gute ist, dass ich sie im Fall der Fälle auch noch auf 8 Bits oder
> noch weiter erweitern kann!

Bist du dir da sicher? ;-)

Dadurch, dass der Wertebereich momentan nur bis 15 geht, ist die Sache
noch halbwegs überschaubar. Falls du ihn auf 255 erweitern möchtest,
wird das schon ein ziemliches IC-Grab, zumal man die Schaltung mit
zunehmender Komplexität nicht mehr so leicht optimieren kann.

Sehr viel einfach wird es, wenn du deinen Addierer von vornherein in BCD
rechnen lässt. Damit ersparst du dir den aufwendigen Dekodiervorgang.

von Hans-Georg L. (h-g-l)


Lesenswert?

Wenn sich dein Wertebereich von 0..15 auf die Eingänge deines Addierers 
bezieht musst du den Überlauf berüchsichtigen und hast dann schon mal 5 
Bit am Ausgang. Denn 15+15=30 ;-). Die käuflichen Sieben-Segment Decoder 
erwarten am Eingang BCD Kode und du hast am Ausgang deines Binären 
Addierers natürlich auch Binärcode. Dafür gab es mal den 74185 der kann 
6 Bit Binär in BCD wandeln. Den kann man auch kaskadieren und mit 3 
Stück kannst du 8 Bit wandeln.

von Elektronik Bastler (Gast)


Lesenswert?

Yalu X. schrieb:
> Elektronik Bastler schrieb:
>> Dass gute ist, dass ich sie im Fall der Fälle auch noch auf 8 Bits oder
>> noch weiter erweitern kann!
>
> Bist du dir da sicher? ;-)

Nicht mehr :(  Ich hab zu voreilig gedacht.

Yalu X. schrieb auch:
> Falls du ihn auf 255 erweitern möchtest,
> wird das schon ein ziemliches IC-Grab, zumal man die Schaltung mit
> zunehmender Komplexität nicht mehr so leicht optimieren kann.


Und Hans-Georg L. schrieb:
> Wenn sich dein Wertebereich von 0..15 auf die Eingänge deines
> Addierers
> bezieht musst du den Überlauf berüchsichtigen und hast dann schon mal 5
> Bit am Ausgang. Denn 15+15=30 ;-).

Stimmt.
Kann man das denn nicht irgendwie anders Realisieren? wie macht dass 
eigentlich ein Computer? Oder die Zuse Z3, die nur aus Relais besteht?

von Axel S. (a-za-z0-9)


Lesenswert?

Elektronik Bastler schrieb:
> Hans-Georg L. schrieb:
>> Wenn sich dein Wertebereich von 0..15 auf die Eingänge deines
>> Addierers
>> bezieht musst du den Überlauf berüchsichtigen und hast dann schon mal 5
>> Bit am Ausgang. Denn 15+15=30 ;-).
>
> Stimmt.
> Kann man das denn nicht irgendwie anders Realisieren?
> wie macht dass eigentlich ein Computer?

Mal so mal so. Manche haben eine ALU, die direkt in BCD rechnen kann, 
entweder als separate Opcodes oder per Flag umgeschaltet (6502: D-Flag). 
Wieder andere haben einen extra Opcode, um das Ergebnis einer binären 
Addition bzw. Subtraktion zu BCD zu korrigieren (Z80: Opcode DAA).

Natürlich kann ein Computer auch einen Algorithmus implementieren, der 
eine beliebig lange Binärzahl nach BCD umwandelt, ein gebräuchlicher 
Algorithmus heißt Dreierkorrektur.

Am allereinfachsten ist es aber, die Dezimaldarstellung aufzugeben und 
alles hexadezimal ein- und auszugeben.

von Elektronik Bastler (Gast)


Lesenswert?

Man kann das ja auch mit einer Frequenz machen. Das würde aber bei 
GROßEN Zahlen (z.B. 10^100) schon eine merkliche verzögerung geben und 
es wäre zu aufwendig. Obwohl... Mit ein paar Flip Flops, Zählern, 
Vergleichern (xor Gatter) und einigen Logikgattern Gattern müsste man 
das schon hinbekommen... dann könnte man auch gleich mit dieser Methode 
einen Rechner bauen und hätte dann das Problem mit den Decodern nicht 
mehr...

naja :)

von Peter D. (peda)


Lesenswert?

Elektronik Bastler schrieb:
> wie macht dass
> eigentlich ein Computer?

Z.B. mit printf() oder itoa(), d.h. es gibt fertige Libs für sowas.
Man kann es aber auch zu Fuß programmieren.

von Possetitjel (Gast)


Lesenswert?

Yalu X. schrieb:

> Das geht mit zwei 74xx-ICs (s. Anhang).

Darf ich drei Fragen dazu stellen?

Falls ja:
1. Wie hast Du das ausgerechnet? Karnaugh-Plan?
2. Womit hast Du den hübschen Schaltplan gezeichnet?
3. Ist da nicht ein Fehler drinnen (s.u.)?

Im 7486 sind meiner Erinnerung nach vier XOR-Gatter drin.
Gezeichnet sind aber Äquivalenzgatter. Fehlt da nur der
Kringel am Ausgang?
Für A2 macht das ja einen Unterschied.

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

Possetitjel schrieb:
> Darf ich drei Fragen dazu stellen?

Gerne :)

> 1. Wie hast Du das ausgerechnet?

Ich habe die Wertetabelle aufgestellt und durch scharfes Anschauen
derselben versucht, für die vier nichttrivialen Ausgänge möglichst
einfache Terme zu finden. Dabei habe ich auch Ausgangssignale als
Operanden in den Termen zugelassen, wenn sich dadurch ein besonders
einfacher Term ergab. So sieht man bspw. die folgenden Zusammenhänge:


Dann habe ich in den gefundenen Termen gemeinsame Teilausdrücke gesucht,
um die Anzahl der benötigten Gatter zu reduzieren. Damit hatte ich eine
Lösung mit 1 XOR-, 4 AND- und 4 NOT-Gattern. Leider braucht man dafür
mindestens drei 74xx-ICs, wobei einige Gatter ungenutzt bleiben.

Also habe ich versuchsweise per De Morgan die AND-in OR-Operationen
umgewandelt. Durch die Verwendung von NOR- statt OR-Gattern und einen
neuentstandenen gemeinsamen Teilausdruck konnte ich schließlich die
Anzahl der NOTs auf 3 reduzieren, die mit den ansonsten ungenutzten
XOR-Gattern des 74x86 realisiert werden können.

Ein rechnergestütztes Optimierungstool wäre für solche Dinge natürlich
ein feine Sache, allerdings kenne ich kein wirklich gutes. Da man diese
Sorte Aufgaben meist sowieso nur während des Studiums löst, ist das auch
nicht weiter schlimm :)

> Karnaugh-Plan?

Der Karnaugh-Plan hat IMHO einige Nachteile, weswegen ich ihn nur selten
verwende:

- Es muss viel gezeichnet werden (in diesem Fall vier 4×4-Matrizen)

- Das Eintragen der Werte ist mühsam und fehlerträchtig, weil die
  Reihenfolge der Einträge nicht mit der Wertetabelle übereinstimmt (ok,
  man könnte die Wertetabelle natürlich auch so hinschreiben, dass sie
  "Karnaugh-freundlicher" ist)

- Das Verfahren liefert zwar die optimale DNF, KNF oder RNF, diese
  Darstellungen sind aber i.Allg. nicht optimal bezogen auf die Anzahl
  der Bauteile für eine elektronische Realisierung.

- Bei mehr als vier Eingängen wird die Sache sehr unübersichtlich.

> 2. Womit hast Du den hübschen Schaltplan gezeichnet?

Ursprünglich habe ich LTspice benutzt, mit dem Schaltpläne sehr fix
eingegeben und anschließend gleich auch noch simuliert werden können.
Auch das Herumschieben von Symbolen und Leitungen im Hinblick auf eine
kompakte und übersichtliche Gesamtdarstellung geht mit LTspice recht
komfortabel. Allerdings sehen Digitalschaltungen dort sehr gruselig aus
(s. Anhang), weswegen ich das Ganze noch einmal mit Inkscape nachgemalt
habe :)

Man erkennt in der Simulation übrigens ein paar Glitches, die aber hier
nicht stören dürften.

> 3. Ist da nicht ein Fehler drinnen (s.u.)?
>
> Im 7486 sind meiner Erinnerung nach vier XOR-Gatter drin.
> Gezeichnet sind aber Äquivalenzgatter. Fehlt da nur der
> Kringel am Ausgang?

IMHO (und nach https://de.wikipedia.org/wiki/Logikgatter) stimmt das
schon. Das "=1" im Kasten (nicht zu verwechseln mit dem "≡" im alten
DIN-XNOR-Symbol) bedeutet, dass genau 1 Eingang high sein muss, um am
Ausgang ein High-Signal erscheinen zu lassen. Entsprechend steht im
OR-Gatter ein "≥1", weil hier mindestens 1 Eingang high sein muss.

: Bearbeitet durch Moderator
von Harald W. (wilhelms)


Lesenswert?

Elektronik Bastler schrieb:

> Genau so eine Schaltung hab ich bis jetzt überall im Internet vergeblich
> gesucht!

Da es Volladdierer schon lange als fertiges IC gibt, findet man
diese Schaltung auch in deren Datenblatt. Außerdem auch in Grund-
lagenbüchern wie den Tietze/Schenk. Das gleiche gilt auch für
Siebensegment-Dekoder.

von Harald W. (wilhelms)


Lesenswert?

Elektronik Bastler schrieb:

> wie macht dass eigentlich ein Computer?
> Oder die Zuse Z3, die nur aus Relais besteht?

Tja, auch Zuse beherrschte damals schon die Grundlagen
der binären Mathematik.

von Thomas E. (picalic)


Lesenswert?

Yalu X. schrieb:
> Allerdings sehen Digitalschaltungen dort sehr gruselig aus

Da hätte ich evtl. einen Tipp für Dich: installiere Dir doch z.B. die 
74HC-Lib, da gibt es vernünftige Symbole und außerdem verhalten sich die 
Gates auch etwas realitätsnäher.
Sorry hab da grad keinen Link dazu - habs schon vor längerer Zeit 
heruntergeladen - ich meine, es war über die LTSpice Yahoo Group.

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

Ja, damit sieht es schon deutlich besser aus. Danke für den Tipp!

Ich habe auf die Schnelle nur die Version gefunden, die Helmut vor
längerer Zeit hier gepostet hat:

  Beitrag "Re: LT Spice SwitcherCad II 74er TTL"

Möglicherweise gibt es in seiner Yahoo-Group (bei der ich nicht Mitglied
bin) eine neuere Version.

von Thomas E. (picalic)


Lesenswert?

Yalu X. schrieb:
> Möglicherweise gibt es in seiner Yahoo-Group (bei der ich nicht Mitglied
> bin) eine neuere Version.

die LIB aus Helmut's Beitrag dürfte schon aktuell sein. Habe mich aus 
(diesem) aktuellen Anlass vorhin gerade auch nochmal bei Yahoo neu 
registriert - ist ja kein Aufwand. Ich verwende übrigens schon immer die 
74HC_v.lib - soweit ich verstanden habe, sollen da die Pegel auch 
abhängig von VCC sein, im Gegensatz zur "normalen" 74HC.lib? Hab's jetzt 
mit der 74HC.lib nicht probiert, was das konkret heisst...

von Possetitjel (Gast)


Lesenswert?

Yalu X. schrieb:

>> 1. Wie hast Du das ausgerechnet?
>
> Ich habe die Wertetabelle aufgestellt und durch scharfes
> Anschauen derselben versucht, [...]
> Dann habe ich in den gefundenen Termen gemeinsame
> Teilausdrücke gesucht, [...]

Ah, okay.
Freistil-Verfahren in Anlehnung an Quine/McClusky.

> Ein rechnergestütztes Optimierungstool wäre für solche Dinge
> natürlich ein feine Sache, allerdings kenne ich kein wirklich
> gutes.

Hmm. Da sagst Du was...

Hast Du eine Vorstellung, was so ein Tool können sollte?

> Da man diese Sorte Aufgaben meist sowieso nur während des
> Studiums löst, ist das auch nicht weiter schlimm :)

Naja, manchmal hätte ich schon ganz gern einen Eindruck,
wieviel Gatteraufwand hinter einer bestimmten Verknüpfung
steckt.

Mal sehen...

>> Karnaugh-Plan?
>
> Der Karnaugh-Plan hat IMHO einige Nachteile, weswegen ich
> ihn nur selten verwende:
>
> - Es muss viel gezeichnet werden (in diesem Fall vier
>   4×4-Matrizen)

Naja, auf kariertem Papier relativiert sich das.

Es ist andererseits wesentlich weniger Schreiberei als eine
Wertetabelle; auch die quasi-graphische anschauliche Darstellung
finde ich praktisch. Ist aber natürlich Geschmackssache; ich
bin generell sehr auf die Anschauung fixiert.

> - Das Eintragen der Werte ist mühsam und fehlerträchtig,
>   weil die Reihenfolge der Einträge nicht mit der Wertetabelle
>   übereinstimmt (ok, man könnte die Wertetabelle natürlich
>   auch so hinschreiben, dass sie "Karnaugh-freundlicher" ist)

Binäre Wertetabellen haben wir beim Studium praktisch überhaupt
nicht verwendet. Unser Professor war insofern Außenseiter, als
er mit seiner Arbeitsgruppe an Ternärvektorlisten geforscht und
folglich auch seine Lehre konsequent darauf aufgebaut hat.
Binärvektorlisten wurden als Zeit- und Platzverschwendung
angesehen :)

> - Das Verfahren liefert zwar die optimale DNF, KNF oder RNF,
>   diese Darstellungen sind aber i.Allg. nicht optimal bezogen
>   auf die Anzahl der Bauteile für eine elektronische Realisierung.

Ja, das war der Hintergedanke meiner Frage: Deine Schaltung oben
ist keine zweistufige Kombinatorik, sondern hat mehr Ebenen; darauf
sind die Lehrbuch-Verfahren i.d.R. nicht eingerichtet.
Aber auf Grundlage der Wertetabelle geht natürlich alles.

> - Bei mehr als vier Eingängen wird die Sache sehr unübersichtlich.

Hmmja... also bis sechs Eingänge geht noch ganz gut. Man muss nur
wissen, dass der (in einer Ebene gezeichnete) Karnaugh-Plan in
Wahrheit auf einem Torus wohnt, und dass außerdem spiegelbildlich
zueinander liegende Felder auch topologisch benachbart sind :)

("...ach, das ist ganz einfach: Ich stelle mir immer erst einen
unendlichdimensionalen Raum vor und vereinfache dann auf den
Spezialfall n=17.")

>> 3. Ist da nicht ein Fehler drinnen (s.u.)?
>>
>> Im 7486 sind meiner Erinnerung nach vier XOR-Gatter drin.
>> Gezeichnet sind aber Äquivalenzgatter. Fehlt da nur der
>> Kringel am Ausgang?
>
> IMHO (und nach https://de.wikipedia.org/wiki/Logikgatter) stimmt
> das schon. Das "=1" im Kasten (nicht zu verwechseln mit dem "≡"
> im alten DIN-XNOR-Symbol) bedeutet, dass genau 1 Eingang high
> sein muss, um am Ausgang ein High-Signal erscheinen zu lassen.

Du hast Recht; ich habe gerade nochmal nachgelesen.

Vom Wutanfall hält mich nur die mit zunehmendem Alter reifende
Erkenntnis ab, dass Einstein ("Zwei Dinge sind unendlich, ...")
wohl richtig lag -- und gehirntote Normen zu den Dingen gehören,
die unausrottbar sind:

Wie kann man den bittesehr das logische Symbol von einer Eigenschaft
abhängig machen, die NUR beim Gatter mit zwei Eingängen erfüllt
ist? Ein 3er-XOR muss nämlich auch bei "111" am Eingang eine Eins
am Ausgang liefern! Unfassbar...

von niemand (Gast)


Lesenswert?

Yalu X. schrieb:
> Ein rechnergestütztes Optimierungstool wäre für solche Dinge natürlich
> ein feine Sache, allerdings kenne ich kein wirklich gutes.

an der uni haben wir damals (tm) mit berkley sis ein bisschen 
experimentiert. ist schon eine weile her, kenne daher den aktuellen 
stand der software nicht.
stamina oder nova müsste das gesuchte tool sein, bedienung ist bei 
beiden - hmm - gewöhnungsbedürftig ;-)

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

Hier mal das Ganze als 8051 Assemblerprogramm:
1
        jmp     main
2
main:
3
        mov     a, p0
4
        anl     a, #0Fh         ; only 4 bits
5
        mov     b, p1
6
        anl     b, #0Fh         ; only 4 bits
7
        call    add_bin         ; p0 + p1
8
        call    get_2digits     ; a = a / 10, b = a % 10     
9
        call    get_sevenseg
10
        mov     p3, A           ; p3 = tens
11
        mov     a, b
12
        call    get_sevenseg
13
        mov     p2, A           ; p2 = ones
14
        jmp     main
15
add_bin:
16
        add     a, b
17
        ret
18
get_2digits:
19
        mov     b, #10
20
        div     ab
21
        ret
22
get_sevenseg:
23
        inc     a               ; 0 = first entry behind RET
24
        movc    a, @a+pc
25
        ret
26
        db      10001000b
27
        db      10111110b
28
        db      00011001b
29
        db      00011100b
30
        db      00101110b
31
        db      01001100b
32
        db      01001000b
33
        db      10111100b
34
        db      00001000b
35
        db      00001100b
36
        end
Es wird 00 .. 30 angezeigt.
Anbei das Listing.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Possetitjel schrieb:
> Wie kann man den bittesehr das logische Symbol von einer Eigenschaft
> abhängig machen, die NUR beim Gatter mit zwei Eingängen erfüllt
> ist? Ein 3er-XOR muss nämlich auch bei "111" am Eingang eine Eins
> am Ausgang liefern! Unfassbar...

Ja, die alte Diskussion. Der Fehler liegt nicht im Symbol, sondern in
der Bezeichnung:

Das Gatter wird zwar als XOR (also exklusiv Oder) bezeichnet, gemeint
ist oft die ungerade Parität (ODD) der Eingänge. Bei nur zwei Eingängen
besteht kein Unterschied, ab drei Eingängen sollte man aber zwischen
XOR, ODD und evtl. noch negierter Äquivalenz (NEQ) unterscheiden:

1
E1  E2  E3    XOR ODD NEQ
2
—————————————————————————
3
 0   0   0     0   0   0
4
 0   0   1     1   1   1
5
 0   1   0     1   1   1
6
 0   1   1     0   0   1
7
 1   0   0     1   1   1
8
 1   0   1     0   0   1
9
 1   1   0     0   0   1
10
 1   1   1     0   1   0
11
—————————————————————————

Im Gegensatz zu ODD lassen sich XOR und NEQ nicht durch Kaskadierung
mehrerer Gatter mit jeweils zwei Eingängen darstellen, was vielleicht
der Grund dafür ist, dass von vielen nur ODD als Verallgemeinerung des
Gatters auf mehr als zwei Eingänge akzeptiert wird.

Für XOR in seiner wörtlichen Bedeutung ("entweder E1, E2 oder E3" bzw.
"genau eines davon") ist die Beschriftung des Symbols mit "=1" schon in
Ordnung. Dass die Erfinder der IEC-Symbole auch Gatter mit mehr als zwei
Eingängen berücksichtigt haben, erkennt man daran, dass das AND-Gatter
nicht etwa mit "=2" beschriftet wurde (was ja eigentlich besser zum "=1"
des XOR- und zum "≥1" des OR-Gatters gepasst hätte), sondern stattdessen
"&" gewählt wurde, das unabhängig von der Anzahl der Eingänge ist.


niemand schrieb:
> an der uni haben wir damals (tm) mit berkley sis ein bisschen
> experimentiert. ist schon eine weile her, kenne daher den aktuellen
> stand der software nicht.
> stamina oder nova müsste das gesuchte tool sein, bedienung ist bei
> beiden - hmm - gewöhnungsbedürftig ;-)

Danke für die Info. Ich werde mir diese Tools bei Gelegenheit mal
anschauen.

von Peter D. (peda)


Lesenswert?

Yalu X. schrieb:
> Im Gegensatz zu ODD lassen sich XOR und NEQ nicht durch Kaskadierung
> mehrerer Gatter mit jeweils zwei Eingängen darstellen

Seien wir mal ehrlich, wer hat je ein echtes XOR oder NEQ gebraucht. Von 
daher finde ich es zulässig auch das echte ODD als XOR zu bezeichnen. In 
der Praxis gibt es dadurch keine Irrtümer. Man muß nicht alles auf die 
Goldwaage legen.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Peter D. schrieb:
> Seien wir mal ehrlich, wer hat je ein echtes XOR oder NEQ gebraucht.

Wenn ich mal von mir ausgehe: Ein echtes XOR mit mehr als zwei Eingängen
hätte ich früher tatsächlich schon ein- oder zweimal brauchen können,
ein ODD oder ein NEQ noch nie. Als Anwendung für ein ODD-Gatter mit mehr
als zwei Eingängen fällt mir eigentlich nur ein Paritygenerator für
einen UART ein. Aber wer baut schon einen UART aus einzelnen Gattern
auf?

Generell sind Anwendungen für XOR, ODD und NEQ mit mehr als zwei
Eingängen so rar gesät, dass es m.W. keine fertigen Bausteine dafür
gibt. Insofern ist es auch ziemlich egal, wie man diese Logikfunktion
benennt oder wie ihr Schaltplansymbol aussieht.

von Karl B. (gustav)


Lesenswert?

Hi,
habe noch eine Variante für BCD-nach-7-Segment-Decoder gefunden.
Interessant ist auch die Variation in der Darstellung der Ziffern von 6 
und 9, was bislang hier noch nicht erwähnt wurde.

https://sophisticatedcircuits.wordpress.com/category/empfangerbasteln-dcf77/

ciao
gustav

von Harald W. (wilhelms)


Lesenswert?

Yalu X. schrieb:

> Aber wer baut schon einen UART aus einzelnen Gattern auf?

...und wer baut schon einen Binär -> BCD-Wandler aus einzelnen
Gattern auf? Wenn man da schon keinen µC nehmen will, kann
man ja die entsprechenden TTL-ICs nehmen, oder eine Tabelle in
einem Eprom.

von Possetitjel (Gast)


Lesenswert?

Peter D. schrieb:

> Yalu X. schrieb:
>> Im Gegensatz zu ODD lassen sich XOR und NEQ nicht durch
>> Kaskadierung mehrerer Gatter mit jeweils zwei Eingängen
>> darstellen
>
> Seien wir mal ehrlich, wer hat je ein echtes XOR oder
> NEQ gebraucht.

Die "alte Diskussion" vor ein, zwei Jahren, auf die Yalu
anspielt, war gerade deshalb aufgekommen, weil jemand ein
echtes XOR mit mehreren Eingängen gebraucht hat. Der
Erwiderung, das ginge nicht so einfach mit kaskadierten
7486, wurde zuerst durchaus kein Glaube geschenkt.

von Possetitjel (Gast)


Lesenswert?

Yalu X. schrieb:

> Ja, die alte Diskussion.

Ich wollte die eigentlich nicht wieder aufkochen; das war mehr
eine Randbemerkung.

> Der Fehler liegt nicht im Symbol, sondern in der Bezeichnung:

Ja, das ist mir gestern dann auch im Rahmen einer längeren
Diskussion klargeworden. Die Bezeichnung "XOR" für die
Antivalenz ist falsch (bzw. mindestens extrem ungeschickt).

von niemand (Gast)


Lesenswert?

Yalu X. schrieb:
> niemand schrieb:
>> an der uni haben wir damals (tm) mit berkley sis ein bisschen
>> experimentiert. ist schon eine weile her, kenne daher den aktuellen
>> stand der software nicht.
>> stamina oder nova müsste das gesuchte tool sein, bedienung ist bei
>> beiden - hmm - gewöhnungsbedürftig ;-)
>
> Danke für die Info. Ich werde mir diese Tools bei Gelegenheit mal
> anschauen.

uups, tschuldign vielmals - hab grad die version in den untiefen der 
festplatte gefunden. das war V1.2, für die minimierung boolscher 
ausdrücke ist espresso zuständig; stamina und nova sind für state 
machine optimization

beispiel für ein espresso-file (auszug manpage)

A two-bit adder which takes in two 2-bit operands and produces a  3-bit
result can be described completely in minterms as:
1
 # 2-bit by 2-bit binary adder (with no carry input)
2
 .i 4
3
 .o 3
4
 0000  000
5
 0001  001
6
 0010  010
7
 0011  011
8
 0100  001
9
 0101  010
10
 0110  011
11
 0111  100
12
 1000  010
13
 1001  011
14
 1010  100
15
 1011  101
16
 1100  011
17
 1101  100
18
 1110  101
19
 1111  110

von Joachim B. (jar)


Lesenswert?

Peter D. schrieb:
> Seien wir mal ehrlich, wer hat je ein echtes XOR gebraucht.

ich, aber nur mit 2 Eingänge, als Frequenzverdoppler in atariST für den 
Floppy Controller um von 8MHz auf 16 MHz zu kommen um die 3.5" HD 
Laufwerke im HD Mode anzufeuern,

4050 einige als Laufzeitglied, dann direkt und verzögert ins XOR und das 
ganze verodert per enable durch die HD-Lochauswertung, später mit GAL 
nachgebaut, sparte ICs.

Yalu X. schrieb:
> Wenn ich mal von mir ausgehe: Ein echtes XOR mit mehr als zwei Eingängen
> hätte ich früher tatsächlich schon ein- oder zweimal brauchen können,

aber zugegeben für mehr als 2 Eingänge fällt mir auch nichts ein.

von Possetitjel (Gast)


Lesenswert?

Joachim B. schrieb:

> Yalu X. schrieb:
>> Wenn ich mal von mir ausgehe: Ein echtes XOR mit mehr
>> als zwei Eingängen hätte ich früher tatsächlich schon
>> ein- oder zweimal brauchen können,
>
> aber zugegeben für mehr als 2 Eingänge fällt mir auch
> nichts ein.

Ein "echtes" XOR mit n Eingängen prüft einen 1-aus-n-Code
auf Gültigkeit. Das ist genau der Fall, in dem man es
braucht.

(Das allgemein übliche XOR liefert die Parität; es ist
daher kein "echtes" XOR.)

von Hp M. (nachtmix)


Lesenswert?

Elektronik Bastler schrieb:
> Ich habe einen rechner gebaut, der zwei Dualzahlen (4bit) addiert. Jetzt
> stehe ich aber vor einem Problem

E baut einen Tischcomputer,
der, sobald er  angeknipst,
stets die Null zeigt,
ja, das tut er,
welche Taste du auch tippst.

In dem Kreis der Sachverständ'gen
aus GI *) und Industrie
konnt man kaum die Freude bändgen
- Doch ein Schlager ward er nie.

*) https://de.wikipedia.org/wiki/Gesellschaft_f%C3%BCr_Informatik

(unbekannter Dichter)

von Bernhard S. (b_spitzer)


Lesenswert?

Karl B. schrieb:
> Interessant ist auch die Variation in der Darstellung der Ziffern von 6
> und 9, was bislang hier noch nicht erwähnt wurde.

Man kann hier beim Segment a bzw. d mal ein Don't-Care in die Tabelle 
einsetzten und - Trommelwirbel - die minimale Schaltung ist "die 
Übliche", also mit Segment a bei der 6 und Segment d bei der 9...

Um sich die benötigten Terme der disjunktiven oder konjunktiven 
Minimalform anzusehen, kann man die Wertetabelle mal in ein Synthesetool 
(z.B. Lattice ispLever oder Xilinx ISE) einhacken und sich die 
generierten Gleichungen ansehen. Ist manchmal auch schon aufschlußreich. 
Allerdings sehen die synthetisierten Schaltungen in CPLDs bei größeren 
Problemen manchmal doch anders aus, wenn die Anzahl Eingänge in einen 
Block überschritten wurde. Ob die Tools dann auch Kniffe wie 
Bündelminimierung beherrschen ist mir unbekannt. (vermutlich eher nicht, 
dabei generiert man mehrstufige Logik, die sich nicht mehr in eine 
2-Stufige CPLD-Struktur einbetten lässt)

von Peter D. (peda)


Lesenswert?

Elektronik Bastler schrieb:
> Dazu brauche ich einen Decoder, der mir das Ergebnis (4 bit, es geht
> also bis 15)

Nö.
2 4Bit Zahlen addiert ergeben 5 Bit.
Bei BCD ist 9 + 9 = 18,
bei binär ist 0x0F + 0x0F = 0x1E (30 dez)

von Erich (Gast)


Lesenswert?

Weil man es immer wieder anfragt und sucht,
hier mehrere Hardware-Lösungen für das Problem
"Binär nach BCD" bzw. "Binär nach 7-Segment"

Der Ansatz mit 74185 steht wegen schlechter Verfügbarkeit nicht zur 
Verfügung.

1.)
Lösung mit (Eprom) Tabelle
http://www.electro-tech-online.com/threads/8bit-binary-number-to-multiple-7seg-displays.145910/
Beitrag #17 und #20
Mit mehrerer Eproms (eines je Stelle 100er, 10er, 1er) könnte auch der 
7-Segment-Decoder gleich mit reinkommen.

2.)
"Shift and Add-3" bekannt auch als "double dabble"
Wohl geeignet für programmierbare Logik
http://www.johnloomis.org/ece314/notes/devices/binary_to_BCD/bin_to_bcd.html
http://www.tkt.cs.tut.fi/kurssit/1426/S12/Ex/ex4/Binary2BCD.pdf
https://en.wikipedia.org/wiki/Double_dabble

3.)
Sehr aufwendig, nur zur Abrundung, die Lösung mit Binär-Abwärts und 
gleichzeitigen Dezimal-Aufwärtszähler
https://electronics.stackexchange.com/questions/237874/display-large-decimal-number-using-seven-segments-display

4.) Natürlich auch: uC benutzen

Gruss

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.