6. Aufgabenblatt

Werbung
Fachgebiet Rechnerarchitektur
Fachbereich Informatik
6. Übung
Technische Grundlagen der Informatik II
Sommersemester 2009
Aufgabe 6.1: Multiplikation von positiven Dualzahlen
Berechnen Sie gemäß folgendem Beispiel die Multiplikationen.
1 0 1 0
1010 * 1101 =
10000010
* 1 1 0 1
0
1 0
+ 1 0 1
1 0 0 0
=
1010
=
1310
0 1 0
=
13010
1010
*1101
=
=
–610
–310
1
0
1
0
0
0 1 0
0 0
0
a) 1001 * 0010
b) 1101 * 1001
c)10101 * 0100
Aufgabe 6.2: Multiplikation von 2K-Zahlen
Multiplizieren Sie die folgenden 2K-Zahlen.
Beispiel:
1010 * 1101 = 10010
1010
0000
1010
1010
10000010
+0110
+0011
100010010
a) 1101 * 1001
Seite 1 von 3
Compl.
Compl.
=
1810
Aufgabe 6.3: Division
Dividieren Sie die folgenden Zahlen mit den beiden dargestellten Methoden.
Vergleichsmethode:
0 1 0
( – 0 1 0
1 0
– 0 1
0
– 0
0
1
0
0
1
1
0
( – 0
0
0
)
0
1
1
0
1
1
1
1 0 ÷0 1 0 1 =
nicht möglich
1
1
0 0
0 1 )
0 0
0 1 1 0, Rest 0 1 0 0
 0
passt

passt

nicht möglich


1
1
0
Rest
Methode ohne Rückstellen des Restes:
mit D = 0101, D’ = 1011
0
+1
1
+
1 0
1 0 0
0 1 1
1 1 1
0 1 0
0 0 1
+1 0
1 0 0
+1
1
+0
1 0
0 1 0 ÷0 1 0 1 =
0 1 1 0, Rest 0 1 0 0
+D’, Test auf Overflow im ersten Schritt
0
negativ  Quotientenbit 0, kein Overflow
1
+D
1 1
positiv 
Quotientenbit 1
1 1
+D’
1 0 0
positiv 
Quotientenbit 1
0 1 1
+D’
1 1 1
negativ 
Quotientenbit 0
1 0 1
+D für positiven Rest-Wert
1 0 0

Rest
a) 0101010 ÷ 0101
b) 0101010 ÷ 0110
Aufgabe 6.4: IEEE 754 – Gleitkommadarstellung, Multiplikation
Hinweis: Die tiefgestellte Zahl bezeichnet die Zahlenbasis, falls diese nicht aus dem
Zusammenhang ersichtlich ist.
Gegeben sind die beiden Gleitkommazahlen in einfacher Genauigkeit:
X = 1 1001 0101 111 0010 0000 0000 0000 0000
Y = 1 1001 0100 110 0001 1000 0000 0000 0000
a) Die beiden Gleitkomma-Zahlen X und Y sollen multipliziert werden (P = X * Y).
Führen Sie die Multiplikation aus.
Aufgabe 6.5: Serienparallele Multiplikation
a) Führen Sie für die Zahlen x = -4 und y = 6 die serienparallele Multiplikation
durch.
b) Ergänzen Sie das Verilog HDL Programm, welches zwei vorzeichenbehaftete 4-BitZahlen serienparallel multipliziert.
Seite 2 von 3
module mult(x, y, p1, p2, pv, xv, yv);
parameter n = 4;
input [n-1 : 0] x, y;
input xv, yv;
output reg[n-1 : 0] p1, p2;
output pv;
assign pv = ….
always @(x or y) begin
end
endmodule
module testbed(p1, p2, pv);
reg [3 : 0] x, y;
reg xv, yv;
output [3 : 0] p1, p2;
output pv;
mult test(x, y, p1, p2, pv, xv, yv);
`timescale 1ns/1ns
initial begin
x = 4'b0011; y = 4'b0100; xv = 0; yv = 0;
#5 x = 4'b0111; y = 4'b0100; xv = 1; yv = 0;
#5 x = 4'b0111; y = 4'b1100; xv = 0; yv = 0;
end
initial #30 $finish;
initial begin $dumpfile("mult.vcd"); $dumpvars(0); end
endmodule
c) Simulieren Sie Ihre Schaltung und weisen Sie die korrekte Funktionsweise nach.
Seite 3 von 3
Herunterladen