![]() |
Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
![]() ![]() ![]() |
Читальный зал --> Программные средства foundation [3 [Э щ H545454545454544> Н545454545454Ж 04545454504545.0 Рис. 5.98. Промежуточные соединения в комбинационном умножителе 8x8 В последовательных умножителях (sequential multipliers) используется единственный сумматор и регистр накопления частичных произведений. Сначала в регистр частичного произведения заносится первый компонент произведения, а затем - при перемножении двух и-разрядных чисел - выполняется и - 1 шагов: на каждом шаге очередной компонент произведения с помощью сумматора добавляется в регистр частичного произведения. Для ускорения процедуры умножения в некоторых последовательных умножителях используется сложение с сохранением переноса (carry-save addition). Идея состоит в разрыве цепочки переносов в сумматоре со сквозным переносом, чтобы уменьшить время, затрачиваемое на каждое сложение. Достигается это путем соединения выхода переноса /-го разряда нау-м шаге со входом переноса (/ + 1 )-го разряда на следующем, (J + 1 )-м шаге. После того как добавлен последний компонент произведения, необходим еще один шаг, на котором переносы подключаются обычным образом и сумматору предоставляется возможность функционировать по принципу сквозного переноса от младшего разряда к старшему. На рис. 5.99 показан комбинационный эквивалент умножителя 8x8, в котором реализовано сложение с сохранением переноса. Обратите внимание, что выход переноса каждого полного сумматора в первых семи рядах соединен с одним из входов сумматора, расположенного ниже. Выходы переносов полных сумматоров в восьмом ряду соединены со входами переносов следующих сумматоров так. что образуется обычный сумматор со сквозным переносом. Хотя этот комбинационный умножитель состоит из точно такого же числа логических схем, что и предыдущий (64 двухвходовых вентиля И и 56 полных сумматоров), задержка распространения в нем существенно меньше. В худшем случае задержка определяется временем прохождения сигнала только через 14 полных сумматоров. При использовании в последнем ряду сумматора с ускоренным переносом задержка может быть еще меньше. га И Е] 1 [НЗ [ ...г Е] ЕЗ 0?D Ш1 иы га га тштшт Рис. 5.99. промежуточные соединения в комбинационном умножителе 8x8 с повышенным быстродействием Регулярность структуры комбинационных умножителей делает их идеальными для реализации внутри СБИС и специализированных ИС. Важность быстрого умножения в микропроцессорах, цифровой видеотехнике и многих других приложениях привела к многочисленным исследованиям в этой области и разработке еще лучших структур и схем комбинационных умножителей (см. Обзор литературы). *5.11.2. Описание процедуры умножения на языке ABEL и ее реализация в ПЛУ В языке ABEL существует оператор умножения *, но его можно применять только к отдельным сигналам, числам или специальным константам, но не к наборам. Таким образом, пользуясь языком ABEL, нельзя синтезировать схему умножителя единственным соотношением типа Р=Х*¥ . Однако языком ABEL можно воспользоваться для описания комбинационного умножителя, если разбить его на меньшие части. В табл. 5.57, например, приведена программа перемножения 4-разрядных чисел без знака в соответствии с той же общей структурой умножителя, какая была представлена на рис. 5.97. Сначала находятся четыре компонента произведения РС1, РС2, РСЗ и РС4, которые затем складываются в разделе программы equations. Эта процедура не создает массив полных сумматоров, как нарис. 5.98 или 5.99. Вместо этого компилятор языка ABEL послушно исполнит инструкцию сложения и составит минимальную сумму для каждого из восьми выходных битов произведения. Удивительно, но для формирования сигнала на выходе Р4 в худшем случае требуется только 36 термов-произведений, что многовато, но безусловно реализуемо за два прохода через ПЛУ Табл. 5.57. Программа на языке ABEL для комбинационного умножителя 4x4 module mul4x4 title 4x4 Combinational Multiplier X3..X0, Y3..yo pin; multiplicand, multiplier P7..P0 pin istype com; product P = [P7. .PO] ; PCI = YO fe [0, 0, 0, 0,X3,X2.X1,X0] PC2 = Yl & [0, 0, 0,X3,X2,X1,X0, 0] PCS = Y2 & [0, 0,X3,X2,X1.X0, 0, 0] PC4 = УЗ & [0.X3,X2,X1,X0. 0, 0, 0] equations P = PCI + PC2 + PC3 + PC4; end mul4x4 *5.11.3. Описание процедуры умножения на языке VHDL Язык VHDL достаточно богат, чтобы выражать умножение разными способами; лучший из них мы оставим напоследок. В табл. 5.58 представлена поведенческая профамма на языке VHDL, которая воспроизводит структуру умножителя, приведенную нарис. 5.99. Для указанных на рисунке внутренних сигналов в профамме определяется новый тип данных аггау8х8, который является двумерным массивом элементов типа STD LOGIC (напомним, что STD L0GIC VECT0R-3to одномерный массив элементов типа STD LOGIC). Переменная PC объявлена как массив типа аггауВхВ, предназначенный для хранения битов компонентов произведения, а переменные PCS и РОС представляют собой аналогичные массивы для хранения сумм и переносов основного массива полных сумматоров. ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |