Назад в библиотеку

Разработка VHDLописаний цифровых устройств, проектируемых на основе ПЛИС фирмы Xilinx, с использованием шаблонов САПР ISE Design Suite

Автор:Валерий ЗотоВ
Источник: КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 2 '2010

Аннотация

Языки описания аппаратуры HDL (Hardware Description Language) в настоящее время являются основным средством представления цифровых устройств при их проектировании. В значительной степени это обусловлено широким применением программируемых логических интегральных схем (ПЛИС) в качестве элементной базы для создания цифровых систем, а также постоянным совершенствованием соответствующих инструментов синтеза и средств HDLмоделирования. Кроме того, при реализации больших проектов на базе современных ПЛИС проявляются ограничения схемотехнического метода описания цифровых устройств, которые снимаются при использовании языков высокого уровня VHDL и Verilog. Эти ограничения наиболее заметны при использовании кристаллов программируемой логики с архитектурой FPGA (Field Programmable Gate Array)

Введение

Применение языков описания аппаратуры высокого уровня также повышает мобильность разрабатываемых проектов, так как большинство систем проектирования различных производителей поддерживает стандарты VHDL и Verilog. Поэтому проекты, представленные в виде HDLописаний, с минимальными изменениями переносятся из одной системы проектирования в другую. Необходимость такого переноса часто возникает при смене элементной базы для реализации проектируемого устройства. На сегодняшний день имеется ряд изданий , посвященных основам языка VHDL и примерам его использования, которые предоставляют разработчикам возможность самостоятельного освоения этого средства описания разрабатываемых цифровых устройств. После изучения теоретических основ данного языка при переходе к практике создания описаний проектов использование инструмента шаблонов позволяет упростить и ускорить процесс обучения. В состав пакетов современных САПР, в частности ISE (Integrated Software Environment/Integrated Synthesis Environment) Design Suite фирмы Xilinx, входит редактор HDLкода, который, помимо простейших операций редактирования (копирования и вставки текста), поддерживает механизм шаблонов. Эти шаблоны могут эффективно использоваться не только в процессе изучения языка, но и в последующей практической работе.

Применение шаблонов, поддерживаемых встроенным HDLредактором САПР серии Xilinx ISE Design Suite, предоставляет разработчикам целый ряд преимуществ, среди которых наиболее существенными являются:

Создание описания проектируемого устройства на языке VHDL в САПР серии Xilinx ISE Design Suite

Создание VHDLописания разрабатываемого устройства или его функциональных блоков начинается с выполнения процедуры подготовки основы нового исходного модуля проекта, которая активизируется кнопкой на панели инструментов, расположенной слева от окна исходных модулей Sources, или командой New Source из раздела Project основного меню навигатора проекта (Project Navigator). При этом производится запуск мастера формирования основы нового исходного модуля описания New Source Wizard. Работа мастера начинается с открытия стартовой диалоговой панели Select Source Type, показанной на рис. 1.

Рис. 1 – Выбор типа создаваемого файла в стартовой 
диалоговой панели Select Source Type «мастера» формирования 
основы нового исходного модуля описания New Source Wizard

Рис. 1 – Выбор типа создаваемого файла в стартовой диалоговой панели Select Source Type «мастера» формирования основы нового исходного модуля описания New Source Wizard

Данная панель позволяет выбрать тип нового модуля, задать его имя и указать место расположения создаваемого файла на диске. В диалоговой панели Select Source Typeпрежде всего нужно указать тип создаваемого исходного модуля (соответствующая строчка в списке в левой части панели). Чтобы сформировать файл исходного VHDLописания проектируемого устройства, в качестве типа нового модуля необходимо выбрать строку VHDL Module. Затем активизировать поле редактирования названия модуля File Nameи ввести имя создаваемого файла. В составе идентификатора формируемого модуля VHDLописания могут использоваться только заглавные и строчные буквы латинского алфавита (A–Z, a–z), цифры (0–9) и символ подчеркивания (_). Место расположения создаваемого модуля на диске указывается в поле редактирования Location. По умолчанию в этом поле редактирования предлагается название рабочего каталога текущего проекта, включающее полный путь доступа к нему. Для выбора иного каталога следует воспользоваться клавиатурой или диалоговой панелью навигации, которая выводится на экран при нажатии кнопки с пиктограммой «…», расположенной справа от поля редактирования Location. После ввода названия создаваемого файла VHDLописания и нажатия кнопки «Далее» (Next), расположенной в нижней части диалоговой панели Select Source Type, открывается следующая диалоговая панель мастера формирования основы нового исходного модуля описания New Source Wizard, именуемая Define Module. Вид этой диалоговой панели представлен на рис. 2.

Рис. 2 – Определение исходных данных для создаваемого VHDLописания 
с помощью диалоговой панели Define Module «мастера» формирования 
основы нового исходного модуля New Source Wizard

Рис. 2 – Определение исходных данных для создаваемого VHDLописания с помощью диалоговой панели Define Module «мастера» формирования основы нового исходного модуля New Source Wizard

Диалоговая панель Define Moduleпредоставляет возможность определения в наглядной форме исходных данных для создаваемого VHDLописания. Содержит два поля редактирования — Entity Nameи Architecture Name, а также таблицу, в которой должна быть представлена вся необходимая информация об интерфейсных портах описываемого объекта. В поле редактирования Entity Nameнеобходимо указать имя объекта. По умолчанию предлагается идентификатор, совпадающий с названием создаваемого модуля. Имя архитектурного тела VHDLописания указывается в поле редактирования Architecture Name. По умолчанию в качестве имени архитектурного тела предлагается идентификатор Behavioral. Он предполагает, что в описании будет использован поведенческий стиль. При необходимости с помощью клавиатуры можно изменить данный идентификатор. Далее следует заполнить таблицу описания портов, которая содержит пять столбцов. В ячейки первого столбца, озаглавленного Port Name, заносится идентификатор порта. В колонке Direction указывается тип порта для передачи данных. Каждая ячейка данного столбца представляет собой поле выбора, выпадающий список которого содержит три возможных варианта, определяющих тип порта: in(входной), out(выходной) или inout(двунаправленный). В третьей колонке (Bus) указывается информация о структуре сигнала, который ассоциируется с описываемым портом. Если этот сигнал имеет шинную структуру, то следует переключить индикатор в состояние «Включено». Колонки MSBи LSBзаполняются только для портов, представленных в виде шин и описываемых с помощью векторов. В столбце MSBуказываются значения индекса, соответствующего старшему разряду шины (вектора), а в LSB — младшему. Если описание портов нового модуля не помещается в видимой части таблицы, следует воспользоваться элементами вертикальной прокрутки. После внесения всех необходимых данных следует нажать кнопку «Далее» (Next) в нижней части диалоговой панели Define Module, в результате чего открывается заключительная информационная панель Summary«мастера» формирования основы нового исходного модуля описания New Source Wizard. В этой панели, вид которой приведен на рис. 3

Рис. 3 –   Заключительная информационная панель Summary «мастера» формирования 
основы нового исходного модуля описания New Source Wizard

Рис. 3 – Заключительная информационная панель Summary «мастера» формирования основы нового исходного модуля описания New Source Wizard

Отображается вся информация, на базе которой выполняется автоматическое формирование основы нового модуля VHDLописания. Если все данные, необходимые для создания основы нового VHDLописания, указаны корректно, нужно нажать кнопку «Готово» (Finish), в результате чего в навигаторе проекта (Project Navigator) открывается новое рабочее окно встроенного HDLредактора (), в котором отображается автоматически сформированный код. Сгенерированный код основы нового VHDLописания проектируемого устройства включает декларацию используемых библиотек и пакетов, интерфейса описываемого объекта entityи основу архитектурного вого слова beginдо заключительной строки end Behavioralс помощью параллельно выполняемых операторов языка VHDL добавить определение функционирования или структуры объекта, который представляет разрабатываемое устройство. Текст описания архитектуры проектируемого устройства вводится с помощью клавиатуры. При этом рекомендуется использовать шаблоны встроенного HDLредактора пакета САПР серии Xilinx ISE Design Suite. Модуль VHDLописания проекта следует сохранить в виде файла, используя для этого команды Saveили Save Asиз всплывающего меню Fileили кнопку , расположенную на оперативной панели управления Project Navigator.

Создание VHDLпакета в САПР серии Xilinx ISE

Для оптимального многократного использования собственных типов данных, констант, функций и процедур в различных проектах целесообразно поместить их декларации и определения в отдельный пакет. Чтобы применять все эти элементы в новом проекте, достаточно включить в его состав соответствующий сформированный пакет. В общем случае в структуре описания VHDLпакета можно выделить три части:

Первая часть необязательна. Она применяется в случаях, когда в описании VHDLпакета используются элементы, которые определяются в других библиотеках и пакетах. Во второй части, которая начинается с ключевого слова packageи завершается ключевым словом end с указанием названия пакета, производится декларация всех элементов создаваемого пакета, которые должны быть доступны пользователям этого пакета. Третья часть начинается с сочетания ключевых слов package body и заканчивается ключевым словом endс указанием названия этого пакета. В теле пакета приводятся определения функций и процедур, которые были объявлены в предыдущей части формируемого VHDLпакета. Здесь же могут присутствовать выражения декларации локальных типов данных и констант, которые используются только в теле пакета и недоступны за его пределами. Создание пакета начинается так же, как и подготовка основы нового исходного модуля VHDLописания, с нажатия кнопки на панели инструментов или активизации команды New Sourceиз раздела Project основного меню Project Navigator.

Использование шаблонов встроенного HDLредактора САПР серии Xilinx ISE Design Suite

HDLредактор пакета САПР серии Xilinx ISE Design Suite включает шаблоны для языков описания аппаратуры высокого уровня Verilog и VHDL. Кроме того, имеется группа шаблонов временных и топологических ограничений, предназначенных для формирования файлов UCF (User Constraints File). В последних версиях рассматриваемых средств проектирования предусмотрен также набор шаблонов команд управления. Чтобы воспользоваться всеми этими шаблонами, нужно прежде всего открыть рабочее окно интегрированного HDLредактора, в котором создается VHDLописание разрабатываемого устройства или одного из его модулей. Далее следует активизировать окно шаблонов, используя команду Language Templatesиз всплывающего меню Editили кнопку . При этом открывается новое окно с заголовком Language Templates, вид которого представлен на.

Окно шаблонов содержит две встроенные панели. В левой части окна отображается панель, содержащая список шаблонов, а в правой — панель, в которой открывается текст выбранного шаблона. Первоначально отображаются четыре папки с названиями Verilog, VHDL, UCFи TCL, в которых содержатся шаблоны соответствующих языков описания аппаратуры HDL, ограничений проекта и команд управления. Чтобы включить требуемый шаблон в состав создаваемого VHDLописания, нужно открыть папку VHDL, дважды щелкнув левой кнопкой мыши. После этого в той же встроенной панели будут показаны основные группы шаблонов в виде папок с соответствующими названиями. Краткое описание этих групп шаблонов приводится ниже в данном разделе.

В каждой из основных групп шаблоны разделены на подгруппы. Поэтому далее нужно последовательно открыть папки соответствующей группы и подгруппы, пока на экране в левой встроенной панели окна Language Templatesне появится список шаблонов, входящих в состав выбранной подгруппы. В этом списке на соответствующей строке следует кликнуть название требуемого шаблона, после чего текст содержимого выбранного шаблона отобразится в правой встроенной панели. Затем нужно воспользоваться командой Use in…из всплывающего меню Edit или контекстнозависимого меню, которое выводится на экран щелчком правой кнопки мыши. Кроме того, для этой же цели можно использовать кнопку быстрого доступа (). При этом шаблон будет вставлен в то место создаваемого файла VHDL. Навигатор проекта (Project Navigator) после активизации окна шаблонов Language Templates описания, где расположен курсор в рабочем окне интегрированного HDLредактора. Если требуется вставить только фрагмент шаблона, то необходимо выделить его в правой встроенной панели окна Language Templates и выполнить команды копирования (Copy) и вставки (Paste) из всплывающего меню Edit или контекстнозависимого меню.

Для языка VHDL в одноименной папке представлены шесть основных групп шаблонов, оформленные в виде папок со следующими названиями: Common Constructs, Device Macro Instantiation, Device Primitive Instantiation, Simulation Constructs, Synthesis Constructsи User Templates(). В папке Common Constructsсодержатся образцы основных базовых конструкций языка VHDL. В разделе Device Macro Instantiation представлены макросы, предназначенные для описания специализированных аппаратных блоков кристаллов программируемой логики. Папка Device Primitive Instantiationвключает примеры использования компонентов, которые входят в состав библиотеки примитивов, предоставляемой фирмой Xilinx. Она содержит, в частности, VHDLописания специализированных ресурсов ПЛИС семейств CPLD (Complex Programmable Logic Device) и FPGA. Шаблоны из папки Device Primitive Instantiationсодержат образцы применения этих библиотечных компонентов, которые сгруппированы в иерархическую систему папок в соответствии с архитектурой ПЛИС, для которых они предназначены, и функциональным назначением примитивов. Все описания, относящиеся к группам Device Macro Instantiationи Device Primitive Instantiation, поддерживаются средствами синтеза VHDLкода САПР серии Xilinx ISE Design Suite. Папка Synthesis Constructsобъединяет блоки кода, большинство из которых предназначено для использования в процессе создания поведенческих, потоковых и смешанных описаний проектируемых устройств. Некоторые шаблоны, находящиеся в данной папке, могут также использоваться в структурных описаниях разрабатываемых устройств. Кроме того, в папке Synthesis Constructs представлены образцы описания основных функциональных элементов цифровых устройств на языке VHDL.

В отличие от законченных VHDLописаний шаблоны в этой папке не содержат ссылок на используемые библиотеки и пакеты, объявлений сигналов и выражений, представляющих интерфейс объекта. Эти выражения обычно приводятся в форме комментариев. Интерфейсные цепи шаблонов могут быть декларированы в создаваемом описании или как порты, или как сигналы. Все описания в папке Synthesis Constructsвыполнены на базе синтезируемого подмножества языка VHDL [2–5]. В Simulation Constructsсобраны шаблоны базовых конструкций языка VHDL, которые могут потребоваться при описании тестовой системы и тестовых воздействий. Эти описания необходимы для осуществления функционального и полного (временного) моделирования проектируемого устройства. Шаблоны в папках Common Constructs, Synthesis Templatesи Simulation Constructsносят обобщенный характер и могут использоваться в проектах, реализуемых на базе ПЛИС различных семейств. Большинство элементов, представленных в папках Device Macro Instantiation и Device Primitive Instantiation, предназначено для конкретных семейств кристаллов программируемой логики, выпускаемых фирмой Xilinx. Папка User Templatesпредназначена для хранения шаблонов, создаваемых разработчиком. Процедура создания и особенности применения пользовательских шаблонов рассматриваются в следующем разделе.