Изменения

Перейти к: навигация, поиск

Матричный умножитель

1093 байта убрано, 22:22, 19 января 2016
Вычисление частичных произведений
== Назначение ==
 
Матричный умножитель предназначен для арифметического умножения двух двоичных чисел произвольной разрядности.
 
== Принцип работы ==
==== Умножение в бинарной системе ====
[[Файл:mult_bin.png|180px300px|right|thumb|''Умножение в столбик'']]
Умножение в бинарной системе счисления происходит точно так же, как в десятичной {{- --}} по схеме "''умножения столбиком"''. Если множимое {{--- }} <tex>k</tex> разрядное, а множитель {{---}} <tex>n</tex> разрядный, то для формирования произведения требуется вычислить <tex>n</tex> частичных произведений и сложить их между собой.
===== Вычисление частичных произведений =====В бинарной системе для вычисления частичного произведения можно воспользоваться логическими элементами "AND" <tex>\&</tex> {{- --}} конъюнкторами.Каждое частичное произведение (<tex>(m_i)</tex>) {{--- }} это результат выполнения <tex>k</tex> логических операции "AND" <tex>\&</tex> ( между текущим <tex>i ( </tex>, где <tex>i=1..n)</tex> , разрядом множителя и всеми <tex>k</tex> разрядами множимого) и сдвига результата логической операции влево на число разрядов, соответствующее весу текущего разряда множителя. Матричный умножитель вычисляет частичные произведения по формуле:
<tex>m_i = 2^{i - 1} (a \wedge & b_i), где (i=1..n)</tex>
===== Суммирование частичных произведений =====
На этом этапе происходит сложение всех частичных произведений <tex> m </tex>.
==== Схема ====
[[Файл:Mult_3.png|700px|right|thumb|Схема матричного умножителя]]Принципиальная схема умножителя, реализующая алгоритм двоичного умножения в столбик для двух четырёх{{---}} разрядных чисел приведена на рисунке. Формирование частичных произведений осуществляется посредством логических элементов "AND"<tex>\&</tex>.
Полные одноразрядные сумматоры обеспечивают формирование разрядов результата.
Разрядность результата {{---}} <tex> l </tex> определяется разрядностью множителя {{--- }} <tex> n </tex> и множимого {{-- -}} <tex> k </tex>: <tex> l=n+k </tex> ===== Работа схемы =====В начале первый разряд первого и первый разряд второго числа поступают на элемент "И" и результат сразу записывается в первый разряд произведения.
Дальше второй разряд первого числа снова поступает вместе с первым разрядом второго числа на элемент И и результат уже суммируется с произведение первого разряда первого числа и второго разряда второго числа и все это записывается во второй разряд произведения<tex> l=n+k </tex>.
И дальше все продолжается по циклу.
То есть все произведения Все конъюнкторы работают параллельно.Полные одноразрядные сумматоры обеспечивают поразрядное сложение результатов конъюнкций и переносов из предыдущих разрядов первого числа на <tex> n - 1 </tex> разряд второго числа суммируются сумматора.В приведенной схеме использованы четырех разрядные сумматоры с произведением предыдущего последовательным переносом.Время выполнения операции умножения определяется временем распространения переносов до выходного разряда первого числа на <tex> n p8 </tex> разряд второго числа. И далее эта сумма так же суммируется, если только мы уже не получили нужный нам разряд произведения.
===== Проводники ='''Матричный умножитель''' ====Как мы можем видетьЕсли внимательно посмотреть на схему '''матричного умножителя''' (англ. ''binary multiplier''), то можно увидеть, что она образует матрицу, <tex>y1 - y5</tex> — сформированную проводниками, по которым передаются разряды первого числа, <tex>x1 - x4A</tex> — разряды второго и числа. <tex>y1 - y5B</tex> проводники идут ко всем элементам "И", а <tex>x1 - x4</tex> идут каждый только к одному из пяти разрядных сумматоров . В точках пересечения этих проводников находятся логические элементы <tex>SM\&</tex>. А на выходе мы имеем <tex>z1 - z9</tex> — разряды конечного числаИменно по этой причине умножители, реализованные по данной схеме, получили название матричных умножителей.
==== "Матричный умножитель" ====
Если внимательно посмотреть на схему умножителя, то можно увидеть, что она образует матрицу, сформированную проводниками, по которым передаются разряды числа <tex>A</tex> и числа <tex>B</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 Схема умножителя]
172
правки

Навигация