Multiplizierer? < Elektrotechnik < Ingenieurwiss. < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 15:22 Mi 02.11.2011 | Autor: | bandchef |
Aufgabe | Entwerfen und testen Sie einen „2 Bit-Normalform-Parallelmultiplzierer“, d.h. eine Schaltung, die zwei 2-Bit-Zahlen multipliziert, und zwar nicht durch fortlaufende Addition oder durch Shiftoperationen, sondern durch eine logische Verknüpfung. |
Hi Leute!
Ich hab die obige Aufgabe eigentlich schon gemacht, würde aber gerne wissen, ob die soweit korrekt ist. Es wäre SEHR NETT, wenn mir einer eine Antwort bezüglich der Richtigkeit meiner Lösung geben könnte, denn ich hab dazu leider keine Lösung :-(
Meine Lösung:
Wertetabelle:
D C B A R1 R0 C1 C0
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 1 0 0 0 0 0
0 0 1 1 0 0 0 0
0 1 0 0 0 0 0 0
0 1 0 1 0 1 0 0
0 1 1 0 1 0 0 0
0 1 1 1 1 1 0 0
1 0 0 0 0 0 0 0
1 0 0 1 1 0 0 0
1 0 1 0 0 0 1 0
1 0 1 1 1 0 1 0
1 1 0 0 0 0 0 0
1 1 0 1 1 1 0 0
1 1 1 0 1 0 1 0
1 1 1 1 0 1 0 1
Daraus abgelesene und minmierte Terme:
R0 = A UND C
R1 = (~A UND B UND C) ODER (B UND C UND ~D) ODER (A UND ~C UND D) ODER (A UND B UND D)
Die Überträge hab ich nicht minimiert, da es ja nur ein 2-Bit-Multiplizierer werden soll...
Stimmt das soweit?
|
|
|
|
Hallo bandchef,
eine Wertetabelle ist hier sicher ein guter Ansatz.
> Entwerfen und testen Sie einen „2
> Bit-Normalform-Parallelmultiplzierer“, d.h. eine
> Schaltung, die zwei 2-Bit-Zahlen multipliziert, und zwar
> nicht durch fortlaufende Addition oder durch
> Shiftoperationen, sondern durch eine logische
> Verknüpfung.
>
> Ich hab die obige Aufgabe eigentlich schon gemacht, würde
> aber gerne wissen, ob die soweit korrekt ist. Es wäre SEHR
> NETT, wenn mir einer eine Antwort bezüglich der
> Richtigkeit meiner Lösung geben könnte, denn ich hab dazu
> leider keine Lösung :-(
>
> Meine Lösung:
>
>
> Wertetabelle:
> D C B A R1 R0 C1 C0
> 0 0 0 0 0 0 0 0 ok
> 0 0 0 1 0 0 0 0 ok
> 0 0 1 0 0 0 0 0 ok
> 0 0 1 1 0 0 0 0 ok
> 0 1 0 0 0 0 0 0 ok
> 0 1 0 1 0 1 0 0 ok
> 0 1 1 0 1 0 0 0 ok
> 0 1 1 1 1 1 0 0 ok
> 1 0 0 0 0 0 0 0 ok
> 1 0 0 1 1 0 0 0 ok
> 1 0 1 0 0 0 1 0 ok
> 1 0 1 1 1 0 1 0 ok
> 1 1 0 0 0 0 0 0 ok
> 1 1 0 1 1 1 0 0 ok
> 1 1 1 0 1 0 1 0 ok
> 1 1 1 1 0 1 0 1 ok
Es wäre nett, wenn Du die Spalten in Zukunft definieren würdest.
Du multiplizierst also (DC) mit (BA) und erhältst das Ergebnis [mm] (C_0C_1R_1R_0), [/mm] alle Zahlen in binärer Ziffernschreibweise.
Die Indizierung von C und R ist nicht einheitlich, was irritierend ist. Deswegen war die Tabelle auch schwer zu "knacken", vielleicht der Grund, warum Du bisher keine Antwort bekommen hast.
> Daraus abgelesene und minmierte Terme:
> R0 = A UND C
> R1 = (~A UND B UND C) ODER (B UND C UND ~D) ODER (A UND ~C
> UND D) ODER (A UND B UND D)
Das müsste doch symmetrisch sein. Die beiden zweistelligen Zahlen sind ja vertauschbar. Du erfasst die beiden Fälle 1101 und 1111 nicht korrekt (wie in der Tabelle jeweils DCBA).
Deins kann man auch so schreiben:
[mm] R_1= [/mm] ((B UND C) UND (~A ODER ~D)) ODER ((A UND D) UND (~C ODER B))
Die letzte Klammer stört hier die Symmetrie. Sie müsste (~C ODER ~B) heißen.
Vielleicht noch hübscher: [mm] R_1= [/mm] ((B UND C) UND ~(A UND D)) ODER (~(B UND C) UND (A UND D))
- denn dann kann man definieren: X=(B UND C), Y=(A UND D) und hat
[mm] R_1= [/mm] (X UND ~Y) ODER (~X UND Y) = X EXOR Y
> Die Überträge hab ich nicht minimiert, da es ja nur ein
> 2-Bit-Multiplizierer werden soll...
Da bin ich unschlüssig, weil die Aufgabe nichts dazu sagt. Keine Ahnung, ob Du [mm] C_0 [/mm] und [mm] C_1 [/mm] auch bestimmen sollst. Schwer wäre es nicht. [mm] \ge{8} (1000_2) [/mm] ist ja nur ein Ergebnis, und die mit einer 1 an der 4er-Stelle sind nicht schwer zu identifizieren.
> Stimmt das soweit?
Mit der einen Korrektur, ja.
Grüße
reverend
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:16 Fr 04.11.2011 | Autor: | bandchef |
Zitat: "Es wäre nett, wenn Du die Spalten in Zukunft definieren würdest.
Du multiplizierst also (DC) mit (BA) und erhältst das Ergebnis $ [mm] (C_0C_1R_1R_0), [/mm] $ alle Zahlen in binärer Ziffernschreibweise.
Die Indizierung von C und R ist nicht einheitlich, was irritierend ist. Deswegen war die Tabelle auch schwer zu "knacken", vielleicht der Grund, warum Du bisher keine Antwort bekommen hast."
In Zukunft bei eventuellen weiteren ähnlichen Fragestellungen werde ich darauf achten, dass ich die Indizierungen und Bezeichnungen einheitlich und übersichtlich gestalten werde! Sorry...
Was mir allerdings noch etwas schleierhaft ist, ist, was du mit "Die Indizierung von C und R ist nicht einheitlich, was irritierend ist." meinst. Meinst du damit weil in meiner Tabelle bei den "echten" Ausgängen erst das höcherwertige Bit kommt und das niederwertige Bit im Gegensatz zu den Carries, denn da kommt erst das niederwertige und dann das höherwertige Bit...?
Du hattest übrigens Recht! Es hat sich ein kleiner Fehler eingeschlichen, der aber nur in einem vergessenen Not vom B resultiert. Den Strich drüber gemacht und jetzt passts. Das Not hab ich nur vergessen.
PS: Da sich die Aufgabe in der Tat darüber Ausschweigt ob man die Carries auch minimieren soll, werde ich demnächst nachfragen...
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:23 Fr 04.11.2011 | Autor: | reverend |
Hallo bandchef,
> Zitat: "Es wäre nett, wenn Du die Spalten in Zukunft
> definieren würdest.
> Du multiplizierst also (DC) mit (BA) und erhältst das
> Ergebnis [mm](C_0C_1R_1R_0),[/mm] alle Zahlen in binärer
> Ziffernschreibweise.
> Die Indizierung von C und R ist nicht einheitlich, was
> irritierend ist. Deswegen war die Tabelle auch schwer zu
> "knacken", vielleicht der Grund, warum Du bisher keine
> Antwort bekommen hast."
>
> In Zukunft bei eventuellen weiteren ähnlichen
> Fragestellungen werde ich darauf achten, dass ich die
> Indizierungen und Bezeichnungen einheitlich und
> übersichtlich gestalten werde! Sorry...
Schon gut. Ich habs ja noch entziffern können. Oder sollte ich sagen, dechiffrieren?
Eine einfache Multiplikationstabelle wäre jedenfalls einfacher gewesen.
> Was mir allerdings noch etwas schleierhaft ist, ist, was du
> mit "Die Indizierung von C und R ist nicht einheitlich, was
> irritierend ist." meinst. Meinst du damit weil in meiner
> Tabelle bei den "echten" Ausgängen erst das höcherwertige
> Bit kommt und das niederwertige Bit im Gegensatz zu den
> Carries, denn da kommt erst das niederwertige und dann das
> höherwertige Bit...?
Das meine ich. Hier sind ja nicht nur Informatiker unterwegs. Manche können Dir trotzdem weiterhelfen, auch wenn ihnen nicht bewusst ist, dass C für Carry=Übertrag steht. Mir z.B. geht das so...
> Du hattest übrigens Recht! Es hat sich ein kleiner Fehler
> eingeschlichen, der aber nur in einem vergessenen Not vom B
> resultiert. Den Strich drüber gemacht und jetzt passts.
> Das Not hab ich nur vergessen.
Dann ist es ja gut.
Darfst Du EXOR verwenden? Dann ist die Lösung ja fast elegant.
> PS: Da sich die Aufgabe in der Tat darüber Ausschweigt ob
> man die Carries auch minimieren soll, werde ich demnächst
> nachfragen...
Ich bin gespannt.
Grüße
reverend
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:13 Mo 07.11.2011 | Autor: | bandchef |
Hallo
Ich hab jetzt noch mal beim Prof. nachgefragt und der meinte, dass man nicht MUSS, aber kann. Als Übungszwecke könnte man die beiden Carries noch minimieren...
Danke für deine hilfe!
|
|
|
|