Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Technische Informatik (http://www.informatikerboard.de/board/board.php?boardid=7)
--- BCD code addition (http://www.informatikerboard.de/board/thread.php?threadid=2718)


Geschrieben von maxXxX am 02.01.2016 um 15:26:

  BCD code addition

Hallo,

ich bin gerade am verzweifeln. Ich soll eine Schaltung entwerfen die als Eingaben zwei
einstellige BCD Zahlen bekommt und das Ergebnis auf zwei 7-Segment Anzeigen ausgibt.
Meine Idee:
Die 7-Segment Anzeigen mit einen Decoder verbinden und vier Eingänge des einen Decoders mit vier Volladdieren verbinden. Den Übertrag der Volladdierer in den nächsten Volladdierer hinein. Da einer einstelligen BCD Zahl maximal 18 raus kommt, dachte ich mir den zweiten Decoder so verbinden, dass das die 7-Segment Anzeigen nur eine Eins zeigt.

Mein Problem:
Der Übertrag! Ich weiß nicht in welchen Volladdier ich welchen Übertrag rein geben soll. Meine ober genante Idee mit dem Übergrag in den nächsten Volladdierer rein zu schieben funktioniert so nicht. Da wenn ich 1+1 habe also 0001+0001 und somit der letzte Volladdiere einen Übertrag hat, den er nicht weitergeben kann. Auch 9+9 also 1001+1001 funktioniert nicht , da es 0001 1000 ergibt und ich dies mit diser Schaltung so garnicht betrachte.
Solange bei einer Rechning der Übertrag nur nach unten weitergegeben wird funktioniert meine Schaltung.

Ich hoffe ihr könnt mir helfen.



Geschrieben von eulerscheZahl am 02.01.2016 um 15:46:

 

Da fällt mir auch nur ein, jeden der 19 Fälle (Zahlen von 0 bis 18) getrennt zu behandeln.
Die Terme für die einzelnen Bits kannst du dann noch vereinfachen, z.B. q0 = b0.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
n |b4|b3|b2|b1|b0||q3|q2|q1|q0
------------------------------
 0| 0| 0| 0| 0| 0|| 0| 0| 0| 0
 1| 0| 0| 0| 0| 1|| 0| 0| 0| 1
 2| 0| 0| 0| 1| 0|| 0| 0| 1| 0
 3| 0| 0| 0| 1| 1|| 0| 0| 1| 1
...
10| 0| 1| 0| 1| 0|| 0| 0| 0| 0
11| 0| 1| 0| 1| 1|| 0| 0| 0| 1
12| 0| 1| 1| 0| 0|| 0| 0| 1| 0
...
18| 1| 0| 0| 1| 0|| 1| 0| 0| 0

Das ist jetzt für die niederwertigere Anzeige, für die andere musst du nur ein Bit beachten, der Rest kann 0 bleiben.



Geschrieben von maxXxX am 04.01.2016 um 08:58:

 

Ich habe etwas im Internet gesucht und mir ist eine neue Idee. Man könnte es mit einem Barrel Stifter versuchen. Nur leider habe ich keine Idee wie ich den mit Logischengattern baue.



Geschrieben von eulerscheZahl am 04.01.2016 um 10:58:

 

Allgemein würde ich dir mit dem Barrel Shifter Recht geben. Für nur 19 Fälle glaube ich aber nicht, dass sich damit etwas kürzer darstellen lässt.


Forensoftware: Burning Board, entwickelt von WoltLab GmbH