„Naszkicuj układ kombinacyjny, który przyjmuje jako dane wejściowe dwie 4-bitowe liczby binarne, A3A2A1A0 i B3B2B1B0, i który wyprowadza 8-bitowy produkt P7P6P5P4P3P2P1P0. Załóżmy, że masz szesnaście bramek 2-wejściowych AND i trzy sumatory 4-bitowe. Proszę wyjaśnić powody swojego projektu. ”
Po odrobinie manipulacji zbliżyłem się do ostatniego obwodu, ale odkryłem, że trzy 4-bitowe dodatki nie wystarczą. Aby zaoszczędzić czas (i mój całkowity brak możliwości wyjaśnienia czegokolwiek), znalazłem to , co jest prawie dokładnie tym, czego potrzebuję, poza tym, że używał dwóch 4-bitowych sumatorów i jednego 6-bitowego sumatora. Chcę wiedzieć, czy jest nawet możliwe skonstruowanie obwodu, który może pomnożyć dwie liczby 4-bitowe przy użyciu bram podanych powyżej, a jeśli tak, jak można to zrobić?
Z góry dziękuję.
Odpowiedzi:
Pierwszym krokiem jest ORAZ wszystkie kombinacje wejść, które wymagają wszystkich 16 bramek AND.
Nazwijmy te wyniki $ S_ {00} $ $ S_ {01} $ $ S_ {02} $ $ S_ {03} $ S_ {10} $ itd.
Czy aranżujemy je w sposób, w jaki musimy je dodać, otrzymujemy:
$$ start {matrix} & amp; & amp; & amp; S_ {03} & amp; S_ {02} & amp; S_ {01} & amp; S_ {00} & amp; & amp; S_ {13} & amp; S_ {12} & amp; S_ {11} & amp; S_ {10} & amp; \\ & amp; S_ {23} & amp; S_ {22} & amp; S_ {21} & amp; S_ {20} & amp; & amp; \\ S_ {33} & S_ {32} i S_ {31} & amp; S_ {30} & amp; & amp; \\ end {matrix} $$
$ S_ {00} $ jest niskim bitem wyjścia.
Następnie dodajesz 1 4-bitowy dodatek, aby dodać {0, $ S_ {03} $, $ S_ {02} $, $ S_ {01} $} i {$ S_ {13} $, $ S_ {12} $, $ S_ {11} $, $ S_ {10} $} Wynik to {$ A_c $, $ A_3 $, $ A_2 $, $ A_1 $, $ A_0 $}
Jeśli zastąpimy ten wynik w oryginalnej tabeli, zobaczymy, że powoduje to zwinięcie dwóch górnych wierszy:
$$ start {matrix} & amp; Oboz; A_3 i A_2 i A_1 i A_0 i S_ {00} & amp; S_ {23} & amp; S_ {22} & amp; S_ {21} & amp; S_ {20} & amp; & amp; \\ S_ {33} & S_ {32} i S_ {31} & amp; S_ {30} & amp; & amp; \\ end {matrix} $$
$ A_0 $ jest bitem 1 wyjścia
Następnie używasz drugiego 4-bitowego dodatku, aby dodać {$ A_c $, $ A_3 $, $ A_2 $, $ A_1 $} i {$ S_ {23} $, $ S_ {22} $, $ S_ {21} $ , $ S_ {20} $} wynik to {$ B_c $, $ B_3 $, $ B_2 $, $ B_1 $, $ B_0 $}
$$ start {matrix} B_c i B_3 i B_2 i B_1 i B_0 i A_0 i S_ {00} S_ {33} & S_ {32} i S_ {31} & amp; S_ {30} & amp; & amp; \\ end {matrix} $$
$ B_0 $ jest bitem 2 wyjścia
Następnie używasz trzeciego 4-bitowego dodatku, aby dodać {$ B_c $, $ B_3 $, $ B_2 $, $ B_1 $} i {$ S_ {33} $, $ S_ {32} $, $ S_ {31} $ , $ S_ {30} $} wynik to {$ C_c $, $ C_3 $, $ C_2 $, $ C_1 $, $ C_0 $}
Wejście przenoszenia na wszystkich 4-bitowych sumatorach wynosi 0.
Całkowity wynik to: {$ C_c $, $ C_3 $, $ C_2 $, $ C_1 $, $ C_0 $, $ B_0 $, $ A_0 $, $ S_ {00} $}
źródło