1632
правки
Изменения
м
[[Категория: Дискретная математика и алгоритмы]]
== Определение ==
Матричный умножитель {{---}} цифровая [[Реализация булевой функции схемой из функциональных элементов|схема]], осуществляющая умножение двух чисел c помощью [[Двоичный каскадный сумматор|двоичного каскадного сумматора]].
==== Вычисление частичных произведений ====Умножение в бинарной системе счисления происходит точно так же, как в десятичной {{---}} по схеме ''умножения столбиком''. Для Если множимое {{---}} <tex>k</tex> разрядное, а множитель {{---}} <tex>n</tex> разрядный, то для формирования частичного произведения, кроме операции умножения на один разряд, требуется осуществлять его сдвиг влево на число разрядов, соответствующее весу разряда множителя. Сдвиг можно осуществить простым соединением соответствующих разрядов вычислить <tex>n</tex> частичных произведений к необходимым разрядам двоичного сумматораи сложить их между собой.
Принципиальная схема умножителя, реализующая алгоритм двоичного умножения в столбик, приведена на схеме. Формирование частичных произведений в этой схеме осуществляется посредством логических элементов “И”<tex> l=n+k </tex>.
Помимо этого, рассматриваемая схема содержит шесть дополнительных двухвходовых элементов "исключающее ИЛИ" и два дополнительных входа <tex> u1, u2 </tex>. При этом в рабочем режиме на входы <tex> c, u1, u2, p1, p2, p3 </tex> подаются сигналы логического "0".
Это нужно для работы теста проверяющего неисправностиВсе конъюнкторы работают параллельно. Но это не относится к этой темеПолные одноразрядные сумматоры обеспечивают поразрядное сложение результатов конъюнкций и переносов из предыдущих разрядов сумматора.===== Работа схемы =====В приведенной схеме использованы четырех разрядные сумматоры с последовательным переносом.Схема работает по достаточно простому принципуВремя выполнения операции умножения определяется временем распространения переносов до выходного разряда <tex> p8 </tex>.
В начале первый разряд первого ==== '''Матричный умножитель''' ====Если внимательно посмотреть на схему '''матричного умножителя''' (англ. ''binary multiplier''), то можно увидеть, что она образует матрицу, сформированную проводниками, по которым передаются разряды числа <tex>A</tex> и первый разряд второго числа поступают на элемент "И" и результат сразу записывается в первый разряд произведения<tex>B</tex>. В точках пересечения этих проводников находятся логические элементы <tex>\&</tex>. Именно по этой причине умножители, реализованные по данной схеме, получили название матричных умножителей.
Дальше второй разряд первого числа снова поступает вместе с первым разрядом второго числа на элемент И и результат уже суммируется с произведение первого разряда первого числа и второго разряда второго числа и все это записывается во второй разряд произведения.
И дальше все продолжается по циклу.
То есть все произведения разрядов первого числа на <tex> n - 1 </tex> разряд второго числа суммируются с произведением предыдущего разряда первого числа на <tex> n </tex> разряд второго числа. И далее эта сумма так же суммируется, если только мы уже не получили нужный нам разряд произведения.
===== Проводники =====
Как мы можем видеть, <tex>y1 - y5</tex> — разряды первого числа, <tex>x1 - x4</tex> — разряды второго числа. <tex>y1 - y5</tex> проводники идут ко всем элементам "И", а <tex>x1 - x4</tex> идут каждый только к одному из пяти разрядных сумматоров <tex>SM</tex>. А на выходе мы имеем <tex>z1 - z9</tex> — разряды конечного числа.
==== "Матричный умножитель" ====
Если внимательно посмотреть на схему умножителя, то можно увидеть, что она образует матрицу, сформированную проводниками, по которым передаются разряды числа <tex>A</tex> и числа <tex>B</tex>. В точках пересечения этих проводников находятся логические элементы “И”. Именно по этой причине умножители, реализованные по данной схеме, получили название матричных умножителей.
rollbackEdits.php mass rollback
== Принцип работы ==
==== Умножение в бинарной системе ====
[[Файл:Двоумнmult_bin.gifpng|90px300px|left]][[Файл:Матричный_умножитель_2.PNG|420pxright|thumb|right''Умножение в столбик'']]Умножение в бинарной системе счисления происходит точно так же, как в десятичной.Для формирования произведения требуется вычислить <tex>n</tex> (где <tex>n</tex> — количество разрядов в числах) частичных произведений. Примечательно то, что в бинарной арифметике следует умножать только числа <tex>1</tex> и <tex>0</tex>. Это означает, что нужно прибавлять к сумме остальных частичных произведений либо множитель, либо ноль. Таким образом, для формирования частичного произведения можно воспользоваться логическими элементами “И”.
===== Вычисление частичных произведений =====В бинарной системе для вычисления частичного произведения можно воспользоваться логическими элементами <tex>\&</tex> {{---}} конъюнкторами.Каждое частичное произведение <tex>(m_i)</tex> {{---}} это результат выполнения <tex>k</tex> логических операции <tex>\&</tex> ( между текущим <tex>i</tex>, где <tex>i=1..n</tex>, разрядом множителя и всеми <tex>k</tex> разрядами множимого) и сдвига результата логической операции влево на число разрядов, соответствующее весу текущего разряда множителя. Матричный умножитель вычисляет частичные произведения по формуле:
<tex>m_i = 2^{i- 1} (a \& b_i), (i=1..n)</tex> ===== Суммирование частичных произведений =====На этом этапе происходит сложение всех частичных произведений <tex> m </tex>. В большинстве современных систем это происходит с помощью [[Дерево Уоллеса|дерева Уоллеса]].
==== Схема ====
[[Файл:Mul_2Mult_3.jpgpng|700px|right|thumb|Схема матричного умножителя]]Далее будем рассматривать умножение пяти разрядного и четырех разрядного Принципиальная схема умножителя, реализующая алгоритм двоичного умножения в столбик для двух четырёх {{---}} разрядных чиселприведена на рисунке. Соответственно нам понадобится три пяти разрядных сумматораФормирование частичных произведений осуществляется посредством логических элементов <tex>\&</tex>.Полные одноразрядные сумматоры обеспечивают формирование разрядов результата. Разрядность результата {{---}} <tex>l</tex> определяется разрядностью множителя {{---}} <tex>n</tex> и множимого {{---}} <tex>k</tex>:
==Схемная сложность==
Частичные произведения вычисляются за <tex>n</tex> шагов. Сложение с вычислением переносов включает <tex>n - 1</tex> шаг. Последнее сложение можно выполнить за <tex>O(\log n)</tex>.
Есть и более быстрые способы умножения двух чисел, например умножение с помощью [[дерево Уоллеса|дерева Уоллеса]], которое работает <tex>O(\log n)</tex>.
== Литература и источники См. также ==* Е. Угрюмов "Цифровая схемотехника" 2001г. [[Дерево Уоллеса]]*[[Двоичный каскадный сумматор]]
== Источники информации ==* Дк[http://bookfi. Фnet/book/556972 Е. Уэйкерли Угрюмов "Проектирование цифровых устройств, том 1.Цифровая схемотехника" 2002г2001г. ]
* М[http://bookfi.Иnet/book/532753 Дк. Богданович Ф. Уэйкерли "Цифровые интегральные микросхемыПроектирование цифровых устройств, том 1." 1996г2002г. ]
* В[http://bookfi.Лnet/book/637011 М. Шило И. Богданович "Популярные цифровые Цифровые интегральные микросхемы" 1988г1996г. ]
* [http://library.espec.ws/section6/article46.html Схема умножителя]
* ''[http://ru.wikipedia.org/wiki/Кормен Кормен Т.], [http://ru.wikipedia.org/wiki/Лейзерсон,_Чарльз_Эрик Лейзерсон Ч.], [http://ru.wikipedia.org/wiki/Ривест,_Рональд_Линн Ривест Р.]''. Алгоритмы: построение и анализ = Introduction to Algorithms / Пер. с англ. под ред. А. Шеня. — М.: МЦНМО, 2000. — 960 с. — ISBN 5-900916-37-5
[[Категория: Дискретная математика и алгоритмы]]
[[Категория: Схемы из функциональных элементов ]]