Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
|
(926)274-88-54 ГлавнаяИнтернет-магазинТкани в наличииМягкая мебельДиваны еврокнижка
Диван-кровать
Диван книжка
Кожаные диваны
Угловые диваны
Кресло-кровать
Недорогие диваны
Кресла
Диваны с фабрики
Кожаная мебель
Производство
Недорогая мебель
Как купитьЗаказ мебелиМебель для домаКухниШкафы купеОфисная мебельШкольная мебельПродажа мебели
Карта сайта
Вакансии
Схема проезда
(926)274-88-54
|
Читальный зал --> Программные средства foundation library IEEE; use IEEE.std Iogic 1164.all; use IEEE.std logic arith.all; entity vadd is port ( A, B: in UNSIGNED (7 downto 0); C-. in SIGNED (7 downto 0); D: in STD.LOGIC.VECTOR (7 downto 0); S: out UNSIGNED (8 downto 0); T: out SIGNED (8 downto 0); U: out SIGNED (7 downto 0); V: out STD.LOGIC.VECTOR (8 downto 0) end vadd; aurchitecture vadd.arch of vadd is begin S <= CO & A) + CO & B); T <- A + C; и <= С + SIGNED(D); V <= С - UNSIGNED(D); end vadd.arch; Как было объяснено в разделе 5.9.6, в пакете IEEE std logic arith определены два новых типа массивов - SIGNED и UNSIGNED - и набор функций сравнения для операндов типа INTEGER, S IGNED и UNSIGNED. В данном пакете определены операции сложения и вычитания для операндов тех же типов, а также для 1-разрядных операндов типа STD LOGIC и STD ULOGIC. При большом числе перекрывающихся функций сложения и вычитания не столь очевидно, каким окажется тип результата сложения или вычитания. Если хотя бы один из операндов принадлежит типу S IGNED, то обычно результат будет типа SIGNED, в противном случае результат будет типа UNSIGNED. Но если результирующее значение присваивается сигналу или переменной типа S Т D LOG I C VE С Т OR, ТО результат типа SIGNEDилиUN SIGNED преобразуется к этому типу. Разрядность любого результата обычно равна разрядности самого длинного операнда. Однако, когда операнд типа UNSIGNED участвует в одной операции с операндом типа SIGNED или INTEGER, его разрядность увеличивается на 1 для размещения в нем знакового бита, равного О, и только после этого устанавливается разрядность результата. В табл. 5.55 приведена VHDL-программа сложения 8-разрядных операндов различного типа, иллюстрирующая эти правила. Первый результат S объявлен как 9-разрядное двоичное число в предположении, что разработчика интересует перенос, который может возникнуть при сложении 8-разрядных операндов А и В типа UNSIGNED. С помощью оператора конкатенации & операнды А и В расширяются так, чтобы функция сложения помещала бит переноса в старший разряд результата. Табл. 5.55. VHDL-программа сложения и вычитания 8-разрядных целых чисел различных типов Следующий результат Т также является 9-разрядным, так как функция сложения расширяет операнд А типа UNSIGNED при его сложении с операндом С типа SIGNED. В третьей операции сложения 8-разрядный операнд D типа STD LOGIC VECTOR преобразуется в операнд типа SIGNED и складывается с операндом С, так что в результате получается 8-разрядное двоичное число U типа SIGNED. В последнем операторе величина D преобразуется в операнд типа UNSIGNED, автоматически расширяется на один разряд и вычитается из С, так что результат V оказывается 9-разрядным. Так как сложение и вычитание являются довольно дорогими операциями в смысле числа требуемых вентилей, многие VHDL-средства синтеза будут пытаться многократно использовать блоки сумматора всякий раз, когда это возможно. В табл. 5.56, например, приведена VHDL-программа, включающая два различных сложения. Вместо того, чтобы образовать два сумматора и с помощью мультиплексора выбирать выход одного из них, синтезирующая профамма может создать только один сумматор и с помощью мультиплексоров переключать его входы, в результате чего схема в целом будет иметь меньшие размеры. Табл. 5.56. VHDL-программа с многократным использованием сумматора library IEEE; use IEEE.std logic 1164.all; use IEEE.std Iogic arith.all; entity vaddshr is port ( A, B, C, D: m SIGNED (7 downto 0); SEL: m STD.LOGIC; S: out SIGNED (7 downto 0) end vaddshr; architecture vaddshr arch of vaddshr is begin S <= A + В when SEL = 1 else С + D; end vaddshr arch; *5.11. Комбинационные умножители *5.11.1. Структура комбинационных умножителей В парафафе 2.8 в общих чертах был описан алгоритм перемножения и-разрядных двоичных чисел посредством и сдвигов и сложений. Хотя этот алгоритм реализует способ, которым мы умножаем десятичные числа вручную, в нем нет ничего принципиально последовательного или зависящего от времени . Другими словами, при наличии и-разрядных входных слов X и К можно составить таблицу истинности, которая представляет 2и-разрядное произведение Р =Х Ув виде комбинационной функции X и Y Комбинационный умножитель (combinational multiplier) является логической схемой с такой таблицей истинности. В большинстве случаев реализация комбинационного умножения основана на алгоритме сдвига и сложения, применяемого при умножении вручную. Рис. 5.97 служит иллюстрацией основной идеи перемножения двух 8-разрядных целых чисел без знака: множимого X = хххххххх и множителя = УтУ/--о такую схему называют умножителем 8x8. Каждая строка, называемая компонентом произведения (product component), является сдвинутым множимым, умноженным на О или на 1 в зависимости от значения соответствующего разряда множителя. Каждый небольшой прямоугольник представляет собой один бит компонента произведения ух, получаемый в результате выполнения логической операции И над битом множителя j. и битом множимого Произведение Р=р ...рр получается путем сложения всех компонентов произведения и содержит 16 битов. I y-i I .УЛ >>V7 .V.j.tf. y4.tj № УьЧ .V(, 5 yiM + .W7 % У-Ч № Ут,Ч /15 /it Pij Pm /11 Vw y-fi У\х1\У\Ч УгЧ № >У5 .34 У\Ч yv .V-f.5 № Wi .4. >V: .V:V*0 № >Vl -Vi-Vo /8 />? /6 P5 4 P? /Л /1 Рис. 5.97. Компоненты произведения в умножителе 8x8 Нарис. 5.98 продемонстрирован один из способов сложения компонентов произведения. Здесь биты компонента произведения размещены в разрядку, а каждый прямоугольник со знаком + является полным сумматором, эквивалентным сумматору, приведенному нарис. 5.86(c). В каждой строке выходы сигналов переноса полных сумматоров соединены так, чтобы получался 8-разрядный сумматор со сквозным переносом. Таким образом, первый сумматор со сквозным переносом суммирует первые два компонента произведения, образуя первое частичное произведение согласно определению, данному в параграфе 2.8. Последующие сумматоры складьшают предыдущее частичное произведение со следующим компонентом произведения. Интересно рассмотреть задержку распространения в схеме, приведенной на рис. 5.98. Худшим является такой случай, когда биты на входах младшего сумматора (yXj пух влияют на значение старшего разряда произведения (р). Если ради простоты предположить, что задержки сигналов в полном сумматоре от любого входа до любого выхода одинаковы и равны, скажем, t, то в худшем случае сигнал проходит через 20 сумматоров и задержка составляет 20/р. Соответствующий результат можно получить и в том случае, когда задержки различны; см. задачу 5.83. ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |