Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002) (1095889), страница 133
Текст из файла (страница 133)
6.21. Структурная ННОЕ-архитектура схемы коррекции при сдвиге влево агсп1Сессиге 11хир вские ог Тахир зв в1Бпа1 ГБЕь: ЯТО ьОСТС УЕСТОМ(15 дояпСо 0); — Гьхир ав1«сс деЕТп ГБЕ1 (16) < 'О'; 000Т(15) < 01И(16) ) 01: Тот 1 зп 14 Поипео О ЕепегаСе ГБЕЫ1) <= '1' яйвп СОМУ 1МТЕОЕЕ(Я) " 1+1 е1ва ГБЕь(1+1); 000ТС() <= ГОЛТ я)геа (ГЯЕТ-(1) = '1' аид ГЕИ = '1') е1ае 01М(1); епи Еевегасе; епд 11хир„вегас; Е табл.
6.22 приведена объединенная структурная архитектура полного 16- разрядного устройства быстрого сленга с 6-ю режимами работы, в котором реализован подход, изображенный иа рис. 6.14. Объявление объекта ьахге116 6,3. Примеры проектирования с использованием языка ЧН0(. 696 табл. 6.22. Структурная ЧНОЬ-архитект)(рн устройства быстрого Сдвига с 6- ю режимами работы атсайтестпте Ьетте116 аттис ог Ьатте116 те сопропепс то1т16 ротс ( 01Н: 1и ЯТО 10610 ТЕСТОВ(15 йоипсо О); Я; та СКВХСНЕО(З й Со 0); ЩВ. !и ВТО 10610! ОСОТ: оит ЯТО ЫС1С„ТЕСТОВ(!5 йоипто 0) ); епй соаропеи Наса >прите ЯЬХХС аппп:С, 0-15 зььтс й!тест!оп, 0=> , 1=>В Окса Ьип острит сааропепс 1>хир ротс ( 01Н: !и ЯТО ЬСС1С РЕСИН(!5 йоопто О); Ап ОНЗ1СНЕО(З йоы со О); РЕН: Ха Втв 10610! РОАТ: зтс Ощс; ОСОТ: о»С ЯТО ЬОС1С иЕСГОМ15 йоипсо 0) ); еай сопроиепт; — Отта >ириса — ЗЬтхс ас с, С-!5 — Р(хир епаше -- Р!хир йаоа — Паса Ьие опсрис тйВ ах ОТВ ВИНТ, РХХ щсит, РХХ ВХСНт Оят, РТХ Ерт, РТХ ЬРРТ ОАт: ВтО * ОС!С; е(впа1 ВОСТ, РОСТ, ВР1Х1Н, ВРХХООТ; ЯТО 10610 ТЕСТОВ(15 йоипсо О)! пе61п 01Р.
В10вт < '1' иЬеп С Втосасе от С В1овйса1 от С Ват1сЬ е1ее '0'; Р1Х ЬЕРТ к '1' иЬеа 01В ВХСНТ 'О' аас (С = Щов!са1 от С Ьаттсщ е1пе 'О'; РТХ ВХСНТ <-" '1' иЬеп 01В, В1СНТ='!' атй (С В1ов!са1 от С = Ватйию е1ае 'С'; РТХ ХЕРТ ОАТ <- 01Н(О) ипеп С - Ьатйпь ехае Р1Х ВИНТ ОАТ к ИН(15) иЬеп С В>ат11Ь е1ае 'О'; 01; то1т16 ротс пар (МЯ, 3, 01В„ВТСНТ, ВОСТ); Оз: 1!хир ротс пар (6001, я, Рхх Херт, Рхх ьерт ОАт, Рост); Оз: 1от 1 1а О со !5 непетасе Врхх1н(1) <= Рснт(!5-1); епй вепетасе; Ой' 11хир рота пар (ВРХХ1В, 3, Р1Х В1СНТ, Р1Х В1СНТ ОАТ, ВР!ХОЬГ); 05: Ест ! Ап О Со 15 Зеиетасе ООЬТЫ) <= ВР1ХООТ(15"1); есй яеиетапе; епй ьатте1!6 аттис; Например, первый оператор присваивания устанавливает единичное значение сигнала ()1н н1ент, когда значением с задается один из сдвигов вправо. !!Ри логических и арифметических сдвигах влево и вправо вырабатываются сигналы Разрешения для схем коррекции е1х ееет и е1х е1снт.
Значениям корректирующихбитовприсвоены именае1х ееГт ()дт ие1х н16нт Вдт. Хотя все операторы в этой архитектуре выполняются одновременно, для удобства чтения они перечислены в табл, б.22 в порядке фактического потока данных. Сначала вызвается компонент го1г1 б для выполнения основного циклического сдвига влево или вправо. Результат этого сдвига подается на вход первого компонента тххпр (() 2) для осу)цествления коррекции битов прн логическом и арифметическом сдвигах влево.
Затем следует оператор депегасе (()3), который изме- оставлено таким же, как и в табл. б.! 7. В архитектуре объявлены два компонента! то1г1 б и 11хпр, для которых используются наши предыдущие определения объектов, Обращение к этим компонентам происходит в части программы, с!щержащей исполняемые операторы. Там же имеется несколько операторов присваивания, которые вырабатывают необходимые управляющие сигналы (то есть реализуют «дополнительную логику», указанную на рис. б.)4), 696 Глава 6. Примеры проектирования комбинационных схем стиль упРятывАния инФОРИАции Зная, как кодируется управляющий сигнал С, вы, возможно, захотите написать первый оператор присваивания в табл.
6.22 в виде В1В В1 унт<=С 1о ), что гарантировало бы более эффективную реализацию схемы, которая вырабатывает этот управляющий сигнаж схема состояла бы всего лишь из одного соединения! Но при этом нарушился бы программистский стиль упрятывания информации, и это могло бы привести к появлению конструктивных недостатков Мы в явном виде записали коды сдвигов в объявлении объекта Ьагге11 6 посредством определения констант.
Архитектуре не нужно знать детали кодирования. Предположим, однако, что в нашей архитектуре произведена все же предложенная выше замена. Если бы кто-то другой (или мы сами!) захотел позднее изменить определения сопя ьапс в объявлении объектаьагге11 б, задавая коды сдвигов иначе, то при новом способе кодирования уже нельзя бьшо бы воспользоваться данной архитектурой! В задаче 6.13 требуется так изменить определения, чтобы обьявление объекта позволяло уменьшить стоимость проекта, осуществив предложенную нами замену. няет порядок следования битов данных для следующего обращения к компоненту 51хпр (В4), производящему коррекцию при логическом и арифметическом сдвигах вправо. наконец, другой оператор делегате (65) возвращает прежний порядок следования битов, измененный оператором 03.
Заметьте, что исполнение ВЗ и В5 заключается в простом изменении порядка соединений. Для исходного объекта Ьаг ге116 можно написать много других архитектур. В задаче 6.14 мы предлагаем архитектуру, которая позволяет выполнять циклический сдвиг с помощью объекта го116, использующего только 2-входовые мультиплексоры, а не с помощью более дорогого объекта го1г16. 6.3.2.
Простой шифратор для получения чисел с плавающей точкой В разделе 6.1.2 мы определили простой формат числа с плавающей точкой и изложилии задачу проектирования преобразователя числа с фиксированной точкой в число с плавающей точкой. Задача нахождения показателя экспоненты числа с плавающей точкой легко решается с помощью приоритетного шифратора, выполненного в виде ИС средней степени интеграции. При программировании на любом из языков описания схем решение той же самой задачи отображается в виде вложенных операторов "Зй".
В табл. 6.23 приведена поведенческая ЧН(3(.-программа шифратора для получения чисел с плавающей точкой. В пределах архитектуры йреп э агсп с помощью вложенного оператора "15" проверяется величина входной переменной В и устанавливаются соответствующие значения И и В, Обратите внимание, что в программе используется пакет 1ЕЕЕ эхс) 1од1с агъсй; это сделано для того, чтобы у нас были тип 1)))51апкВ и операции сравнения, которые сопровождают его, как было объяснено в разделе 5.9.6.
Ради представления программы в компактном виде введена переменная ВВ, выражающая значение пеРеменной В в формате типа ВЫ В 1аЫВ)); в принципе, в каждом вложенном опеРаторе "16" вместо В1) можно написать БЫВ1анВВ 1В ), О.З. Примеры проектирования с использованием языка УН0ь 597 11Ьгагу 1ЕЕЕ; пвв 1ЕЕЕ.в«6 1обас 1164.а11; пве 1ЕЕЕ.в«6 1обас аг1«в.а11; еп«1«у Трепа 1в рог« В: 1п БТО 1.ОСХС ЧЕСТОВ(10 поип«о О); И: оп« ВТО ЬОС1С ЧЕСТОВ(З аовп«о О); Е: оп« ВТ0 ЬОС10 ЧЕСТОВ(2 аоъп«о О) ); епа Трепе; 11хва-ро1п« ппвЬег 11оа«1пЕ-ро1п« шап«1ваа 11оа«1пЕ-ро1п« ехропеп« агсв1«ес«пге Хрепс аг<Ь от Ьебьп ргосввв(В) таг1ав)е ВО: СМ31СНЕО(10 Ьеяьп ВС :=- 0)131СИЕО(В); 11 ВС < 16 «Ьеп И е1в11 ВО < 32 «Ьеп и е1в11 ВС < 64 «Ьеп М в1в11 ВС < 126 «Ьеп И е1в11 ВС < 256 «Ьеп М е1в(Х ВО < 612 «Ьеп М е1а11 ВО < 1024 «Ьеп И е1ее И епа 11; епа ргосевв; епа трепе агсв, 1репс 1в доил«с О); <= В( 3 аояп«о О) <"- В( 4 доча«о 1) < В( 5 лоип«о 2) <= В( б воип«с 3) < В( 7 аоъп«о 4) <= В( 8 доно«о Б) < В( 9 аоъп«о 6) <= В(10 аоип«о 7) Е <= "000"; Е <= "001"; Е < "010"; Е < "011"; Е <= "100"; Е < "101"; Е < "110" „ Е <= "111"; ПЕРЕМЕННАЯ "Вп НЕ МОЕГО ТИПА В табл.
6.23 мы использовали выражение СИВ1 ОМЕР ( В ) для преобразования переменной В; массив типа БТО ЬОС1С ЧЕСТОВ преобразуется в массив типа ОМЕХСЫЕО. Эта операция называется явным преобразованием тинов. Язык ЧНРЬ позволяет преобразовывать тесно связанные между собой типы, записывая желаемый тип, за которым в круглых скобках слелует преобразуемая величина. два типа массивов считаются «тесно связанными», если у них один и тот жо тип элелиентов, одна и та же размерность н одинаковые типы индексов (обычно 1М ТЕС ЕЕ), а также те массивы, тнп которых можно преобразовать.