316
o)
b)
cj
Rys.8.
7. Układ dzielący z: przykładu 8.1: a) wejścia i wyjścia, b) sieć działań pierwszej wersji US, c) realizacja z druga wersją US
B = 1 O 1 1
O
(8.4)
A = 1 10 1 10 11 0 0 0 0
+
10 11 10 11
C = 1 0 0 0 1 1 1 1
Dla n-bitowych liczb A i B mamy zatem
n- 1
A « y~2*°a■, a^ e jo, l|,
i=0
n- 1
8
i=0
n-1
C = A • B = | V2i.ai) B =
i-0
(8.Sb)
Proponujemy Czytelnikowi zaprojektowanie układu mnożącego metodą unitarną (algorytm jest bardzo podobny do algorytmu dzielenia z rys.8.7c), natomiast tu rozważymy drugą metodę, bazującą na zależności (8.5). Zależności tej odpowiada sieć działań układu sterującego US z rys.8.8b. Wprowadzono tu pomocniczą zmienną R2 odpowiadającą przesuniętej mnożnej B. W sieci działań z rys.8.8b występują zmienne wejściowe A. B oraz zmienne wewnętrzne C, I, R2. Ma zmiennej C wykonywane są mikrooperacje: C := 0, C := C + R2, odpowiada jej więc rejestr równoległy z dołączonym do wejścia sumatorem. Na zmiennej I wykonywane są mikrooperacje: I := 0 oraz I := I + 1, odpowiada jej więc licznik. Zawartość licznika równa n musi być sygnalizowana układowi sterującemu US (jeśli licznik liczy moduło n, to trzeba sygnalizować 1=0). Na zmiennej R2 wykonywane są mikrooperacje: R2 : = B oraz R2 :« 2»R2, odpowiada jej więc rejestr przesuwający z wpisywaniem równoległym. Ostateczny schemat układu operacyjnego (UO) wraz z odpowładającym mu układem sterującym (US) przedstaw i ono na rys.8.8b.