«Нарисуйте комбинационную схему, которая принимает в качестве входных данных два 4-битных двоичных числа, A3A2A1A0 и B3B2B1B0 и который выводит 8-битное произведение P7P6P5P4P3P2P1P0. Предположим, у вас есть шестнадцать 2-входных логических элементов И и три 4-битных сумматора. Пожалуйста, объясните причину вашего дизайна. "
После недолгой разминки я подошел к финальной схеме, но обнаружил, что трех 4-битных сумматоров будет недостаточно. Чтобы сэкономить время (и мое полное отсутствие возможности объяснить что-либо) я нашел этот Это почти то, что мне нужно, за исключением того, что используются два 4-битных сумматора и один 6-битный сумматор. Я хочу знать, возможно ли вообще построить схему, которая может умножать два 4-битных числа, используя вентили, указанные выше, и если да, как вы можете это сделать?
Заранее спасибо.
Ответы:
Первым шагом является И для всех комбинаций входов, который использует все 16 доступных логических элементов И.
Назовем эти результаты $ S_ {00} $ $ S_ {01} $ $ S_ {02} $ $ S_ {03} $ $ S_ {10} $ и т. Д.
Мы организуем их в том, как мы должны добавить их, мы получаем:
$$ \ Начать {матрица} & Амп; & Амп; & Амп; S_ {03} & амп; S_ {02} & амп; S_ {01} & amp; S_ {00} \\ & Амп; & Амп; S_ {13} & амп; S_ {12} & амп; S_ {11} & amp; S_ {10} & amp; \\ & Амп; S_ {23} & амп; S_ {22} & амп; S_ {21} & amp; S_ {20} & amp; & Амп; \\ S_ {33} & амп; S_ {32} & амп; S_ {31} & amp; S_ {30} & amp; & Амп; \\ \ Конец {матрица} $$
$ S_ {00} $ - младший бит вывода.
Затем вы используете 1 4-битный сумматор для добавления {0, $ S_ {03} $, $ S_ {02} $, $ S_ {01} $} и {$ S_ {13} $, $ S_ {12} $, $ S_ {11} $, $ S_ {10} $} Выходные данные: {$ A_c $, $ A_3 $, $ A_2 $, $ A_1 $, $ A_0 $}
Если мы заменим этот результат в исходной таблице, мы увидим, что это сворачивает две верхние строки:
$$ \ Начать {матрица} & Амп; Лагерь; A_3 & amp; A_2 & amp; A_1 & amp; A_0 & amp; S_ {00} \\ & Амп; S_ {23} & амп; S_ {22} & амп; S_ {21} & amp; S_ {20} & amp; & Амп; \\ S_ {33} & амп; S_ {32} & амп; S_ {31} & amp; S_ {30} & amp; & Амп; \\ \ Конец {матрица} $$
$ A_0 $ - это бит 1 вывода
Затем вы используете второй 4-битный сумматор для добавления {$ A_c $, $ A_3 $, $ A_2 $, $ A_1 $} и {$ S_ {23} $, $ S_ {22} $, $ S_ {21} $. , $ S_ {20} $} - это {$ B_c $, $ B_3 $, $ B_2 $, $ B_1 $, $ B_0 $}
$$ \ Начать {матрица} B_c & amp; B_3 & amp; B_2 & amp; B_1 & amp; B_0 & amp; A_0 & amp; S_ {00} \\ S_ {33} & амп; S_ {32} & амп; S_ {31} & amp; S_ {30} & amp; & Амп; \\ \ Конец {матрица} $$
$ B_0 $ - это бит 2 вывода
Затем вы используете третий 4-битный сумматор для добавления {$ B_c $, $ B_3 $, $ B_2 $, $ B_1 $} и {$ S_ {33} $, $ S_ {32} $, $ S_ {31} $. , $ S_ {30} $} - это {$ C_c $, $ C_3 $, $ C_2 $, $ C_1 $, $ C_0 $}
Входной сигнал переноса на всех 4-битных сумматорах равен 0.
Таким образом, общий результат будет: {$ C_c $, $ C_3 $, $ C_2 $, $ C_1 $, $ C_0 $, $ B_0 $, $ A_0 $, $ S_ {00} $}
источник