Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003) (1095892), страница 92
Текст из файла (страница 92)
При этом он зачастую не позволяет получить достаточно хорошее качество оптимизации таких регулярных структур, как сдвиговые регистры, счетчики, сумматоры, блоки памяти. Списки связей для более крупных блоков с неоднородной структурой также могут быть оптимизированы более качественно с использованием специальных процедур оптимизации, ориентированных именно на этот тип блоков. Глава 7 49б В Еоипдабоп включены два инструмента, позволяющие генерировать оптимизированные списки связей для большого набора наиболее употребимых компонентов.
Применение этих списков связей позволяет сократить плошадь кристалла, занимаемую компонентом, и увеличить его быстродействие по сравнению с использованием тех списков связей, которые сгенерированы на базе поведенческого описания. Инструмент Ьой!ВЬОХ предназначен для синтеза списков связей компонентов с малой степенью интеграции. Инструмент СОКЕСЕ1ч предназначен для синтеза списков связей компонентов с большой степенью интеграции. Использование ~ од!!В~ ОХ-компонентов Инструмент Ьо81ВЬОХ вЂ” это графический интерфейс пользователя, который позволяет создавать так называемые Ьой(ВЬОХ-компоненты высокого уровня (такие как счетчики, сдвиговые регистры, мультиплексоры, и др.).
Они используются, как правило, для схем, описанных на языках высокого уровня — ЧНИ или ЧеП1о8. В состав этого инструментария входит библиотека описаний компонентов. Для каждого компонента определен набор параметров, которые может определять пользователь и правила построения оптимизированного списка связей. Например, с помощью этого инструмента можно сгенерировать оптимизированный список связей для регистра и определить для него такие параметры, как разрядность регистра, возможность асинхронного сброса я асинхронной установки.
Наряду с оптимизированным списком связей генерируется поведенческое описание компонента. Это позволяет выполнять поведенческое моделирование устройства, в состав которого включается этот компонент. Для создания нового Ьой!ВЬОХ-компонента необходимо выполнить сле- дующую последовательность действий; 1. Запустить Ьоя!ВЬОХ-генератор, для чего выбрать подпункт Ьой!ВЬОХ шова!е яепегв!ог пункта Рея!яд Ев!гу в меню Тоо!в. В результате будет запущена программа ЬВСЫ1 и открыто диалоговое окно Ьоя!ВЬОХ яе!ес!ог.
Кроме того, открывается диалоговое окно Ьой1ВЬОХ Сг)1 Мевввйез, в котором отображаются сообщения программы ЬВСЕЬ 2. В окне Ьоя!ВЬОХ ве!ес!ог в поле Мойв1е Хате можно выбрать имя одного из уже существующих компонентов или ввести имя вновь создаваемого. 3. В поле Моби!е !уре необходимо указать тип создаваемого модуля. 4.
В списке Ввз тгЫтв выбрать ширину шины (2, 4, 8,!6, 32). 5. Выбрать дополнительные сигналы, необходимые для работы устройства. Проектирование СБИС на языке И4Ш в среде гоопт1а!юп Ехргевв 497 Для каждого вновь создаваемого компонента создаются следующие файлы: С! файл графического представления компонента; С! ЕР1Р-список связей; С! МОР-файл, содержащий описание входных и выходных сигналов; С! ЧНРЕ- или Чег(!оя-шаблон компонента; С! ЧНР!.- или Чегйоя-файл описания поведения компонента. Генерация и использование макроячеек ОР-блоков, СОВЕ-мо!дулей) Инструмент Ха!ах СОКЕ яепега1ог вув1еш позволяет создавать параметризуемые макроячейки, 1Р-ядра (согев), оптимизированные для Хййпх РРОА.
С помощью этого генератора могут создаваться как относительно простые макроячейки (сумматоры, умножители), так и блоки со значительно более сложным поведением. Создаваемые макроячейки генерируются с оптимизацией их размещения на кристалле, таким образом, что их производительность не зависит ни от размеров используемой СВИС РРОА, ни от включения в состав проекта на РРОА других макроячеек, компонентов, !Р-ядер. Оптимизированная компоновка улучшает производительность и сокращает энергопотребление сгенерированного компонента.
Производительность и показатели использования ресурсов РРОА для макроячеек, автоматически сгенерированных программой СОКЕ лепета!от, близки к характеристикам, которые можно получить при ручном проектировании опытными разработчиками. Для сгенерированной макроячейки 1Р-ядра формируется детальное функциональное описание, временные диаграммы, показатели производительности. В СОКЕ Ыепегагог используется так называемая Ютагг 1Р-технология.
Он позволяет использовать предварительно разработанные параметризованные 1Р- блоки. Эти блоки имеют структуру, оптимизированную на физическом уровне в соответствии с выбранной для реализации элементной базой. Для создания новой макроячейки необходимо выполнить следующие действия: !.
Выбрать пункт Саге 6епега1ог из подменю Реяйп епггу в меню Тоо!в. В результате будет открыто окно Х!!!их Соге Сепега1ог. 2. В открывшемся окне надо выбрать тип макроячейки из списка, расположенного в левой части окна. 3. В правой части окна, в появившемся наборе макроячеек, входящих в этот тип, дважды щелкнуть мышью по конкретной макроячейке. 498 Глава 7 4. В появившемся диалоговом окне (его имя совпадает с именем выбранной макроячейки, в дальнейшем будем называть его Масго !Маше) определить параметры этой макроячейки.
После нажатия кнопки Сепегаге появится последовательность диалоговых панелей Ревг(па!(оп Рго)есб 5. В диалоге Эеаг(па!(оп Рго)ес( можно указать проект, в который должна быть добавлена создаваемая макроячейка. По умолчанию проектом назначения является текущий проект. После нажатия кнопки ОК автоматически выполняется генерация макро- ячейки: 1.
Создается графическое представление макроячейки; 2. Формируется ЕР1Р-список связей; 3. Генерируется ЧНР1.- или Чег!1оя-шаблон компонента (включает в себя декларацию компонента и конфигурационную спецификацию); 4. Генерируется ЧНРЬ- или Чег!1оя-файл описания поведения компонента. ЕР1Р-список связей автоматически конвертируется в АЬК- и АБХ-файлы, содержащие бинарное представление списка связей и описания портов. Созданный компонент автоматически сохраняется в рабочей библиотеке проекта. Если уже созданный с использованием Соге аепегагог блок необходимо изменить, то в Соге лепета!ог для этого блока может быть использован ХСО- файл, который создается при первом создании блока. Соге аепегагог может создавать следующие выходные файлы, содержащие описание блока: П ЕРХ вЂ” ЕР!Р-список связей (используется инструментарием Хрйпх (пп р!егпепгабоп); (з ЧНΠ— файл ЧНИ=шаблона (используется для создания компонента- "ядра" - Соге (иначе — 1Р-блока модели), а также для определения ссылки на сгенерированное поведенческое описание, текст которого пользователю не доступен); С! ЧЕΠ— файл Чег(!оя-шаблона (используется для создания спецификации ! Р-ядра Чег(!оя); (з ЕРМ вЂ” ЕИР-список связей; С! ХСΠ— файл параметров блока (создается при его первой генерации); С! М1Р— файл инициализации памяти, который автоматически создается для модулей Ч(цех В!оск ВАМ (если для них установлена опция НРЬ гйпш!абоп Йовг).
При создании 1Р-блока определяется элементная база (семейство РРОА), на которую он ориентирован. Для другой элементной базы его использование Проектирование СБИС на языке ЧНШ в среде Роипйавоп Ехргевв без перегенерации, с соответствующим изменением параметров, будет не- возможнымм. Определение параметров макроячейки может осуществляться непосредственно в полях диалогового окна Масго па3ве. Параметры могут также загружаться из файла с расширением СОЕ (структура этого файла будет рассмотрена позже).
Для выбора файла, из которого будут загружены эти параметры, необходимо воспользоваться кнопкой 1лав Рагав1е$егв. При генерации элементов памяти могут задаваться не только параметры блока памяти, но и начальные значения элементов памяти. Аналогично могут задаваться и коэффициенты Г!К-фильтров. Эта информация также может загружаться из файлов СОЕ. Если для определения каких-либо параметров блока может быть использован СОЕ-файл, то его формат подробно описывается в документации для соответствующего типа блоков. В общем случае данные в файлах СОЕ представляются следующим образом: Кеуногс1=Ча1ие; Сопгаепе Все, что следует в строке после точки с запятой, рассматривается как комментарий.
Для блоков памяти в качестве Кеу%огв используется слово МевРа!а, а для блоков памяти Ч~г~ех используется Мевюгу 1и!г!и!)яабов Уес(ог. Пример СОЕ-файла параметров для блока ВАМ приведен в листинге 7.!. Данные в памяти определяются в шестнадцатеричном формате. ! : :Лйотинг 7.т Сопропепе Навекаав1бх12; Паев И1ССЬ = 12; Ысьевв иЫси = а; Перев = 16," Вао1х = 1б; тевхтаеа=заб,ВПА,ОРб,Р91,079,РС8,053, РЕ2,03С,РР2,020,РРВ,022,002,01А,005; В этом примере определены следующие параметры: С! Соеропепс пате — имя компонента; С! Папа ыгсзеи — раэрядНОСтЬ даННЫХ; О АЫгевв И1аСЬ вЂ” РаЗРЯДНОСтЬ аДРЕСа; С! перси — количество слов памяти; С! мепдаса — содержимое блока памяти. /лввв 7 В листинге 7.2 приведен пример СОЕ-файла для КОМ; элементы памяти задаются в десятичном представлении.
Г""т""*' ЬЛзйотинг РД Соеропепс Иапеееога32ха; Папа И?с?ЕЬ = 8; Аос?хееа И?оЕЬ = 5; перец = 32; Вас??х = 10; пепх?аеа=127,127,127,127,127,126,126,126, 125,125,125,4,3,2,0,-1,-2,-4,-5,-6,-8,-9, -11,-12,-13,-38,-39,-41,-42,-44,-45,-128; В листинге 7.3 приведен пример однопортового ОЗУ (КАМ), для которого определяются начальные значения не для всех ячеек.
Параметр Вагап?С Паса позволяет задать значение ячейки по умолчанию. ! 'Листинг 7.3 Сопропепс нате = т арЬгапц Перец = 256; паев ХЫЕЬ = 32; Вас??х = 16; Вебера?С Паев = РРР; немовт тнтт1А1 12Аттон ??истов РРО,РОР,ОРР,РР4,Р4Р,4РР,РР8,Р8Р,8РР; Пример файла спецификации параметров для генерации макроячейки (!Р- блока) двухпортового ОЗУ КАМ для ГРОА семейства Ч?ггех приведен в листинге 7.4. 1 Листинг 7.4 Соеропепе Набеге с?рЬгаа?? Перги А = 4096; Папа Хгс?ЕЬ А = 16; Перец В = 1024; Папа И?с?СЬ В = 64; вас??х = 2; Пебап?Е Паса = 1О1О?О?О; Проектирование СБИС нв языке !тн0Ь в среде Гоипг)адоп Ехргевв о01 неноеу титттА1 1елттон \1естОе= 1111111111111110, 1111111111111101, 1111111111111011, 1111111111110111; Теперь рассмотрим, как осуществляется интеграция сгенерированной макроячейки (1Р-блока) в модель проектируемого устройства.