166 I www.finestreet.ru
технологии I схемотехника, проектирование, моделирование
Начало в№ 8 ’2005
Валерий ЗОТОВ
walerry@km.ru
Создание проекта встраиваемой системы
на основе микропроцессорного ядра семейства PicoBlaze
После нажатия клавиши Далее(Next) на экран выводится очередная диалоговая панель «мастера» New Project Wizard, с помощью которой определяются следующие параметры нового проекта:
• семейство ПЛИС, на базе которого разрабатывается микропроцессорная система;
• тип кристалла, выбираемого для реализации микропроцессорной системы;
• тип корпуса ПЛИС, выбранной для реализации проектируемой системы;
• категория быстродействия используемого кристалла;
• применяемые средства синтеза и моделирования проектируемой системы;
• язык HDL, используемый для формирования моделей разрабатываемой системы. Вид этой диалоговой панели представлен
на рис. 4.
Семейство ПЛИС, тип кристалла, корпуса, категория быстродействия, средства синтеза и моделирования, а также язык HDL, используемый для описания моделей, устанавливаются в форме таблицы параметров проекта (рис. 4). В первом столбце этой таблицы отображаются названия параметров (Property Name), а во втором — их значения (Value). Каждая ячейка столбца Value представляет собой поле выбора значения соответствующего параметра. Чтобы установить требуемое значение какого-либо параметра, следует активизировать соответствующее поле выбора, поместив на него курсор и щелкнув левой кнопкой мыши. После этого в правой части этого поля появляется кнопка управ-
ления выпадающим списком. При нажатии на нее отображается список возможных значений соответствующего параметра. Выбор требуемого значения осуществляется щелчком левой кнопки мыши на нужной строке. После выбора одной из строк выпадающего списка указанное в ней значение автоматически отображается в поле выбора.
Для определения семейства ПЛИС, на базе которого проектируется микропроцессорная система, следует воспользоваться полем выбора параметра Device Family (рис. 4). При нажатии на кнопку управления выпадающим списком этого поля на экране отображается список семейств ПЛИС, поддерживаемых используемой версией средств проектирования серии Xilinx ISE.
В поле выбора типа кристалла для реализации проектируемой микропроцессорной системы Device автоматически отображается тип ПЛИС, установленный по умолчанию для выбранного семейства. Для его изменения необходимо в выпадающем списке для параметра Device выделить строку, содержащую требуемый тип кристалла. Если разработчик затрудняется определить тип кристалла, необходимый для реализации проектируемой системы, то следует использовать автоматический выбор типа кристалла. Для этого в списке ПЛИС необходимо выбрать строку Auto для требуемого семейства ПЛИС. Программы трассировки определят кристалл с минимальным количеством ресурсов, необходимых для реализации разрабатываемой системы.
Тип корпуса кристалла, выбранного для реализации микропроцессорной системы, указывается в поле выбора Package. Если в качестве типа кристалла задано значение Auto, то в этом поле отображается символ «*», соответствующий режиму автоматического выбора типа корпуса. В этом случае также можно указать конкретный тип корпуса с неопределенным количеством выводов. Для этого следует выбрать значение <тип корпуса>* из выпадающего списка, который появляется при щелчке левой кнопкой мыши в поле выбора Package. Если в поле Device указан определенный тип ПЛИС, то выпадающий список значений поля выбора Package содержит обозначения только тех типов корпусов, в которых выпускается данный кристалл.
Для определения категории быстродействия выбранного кристалла предназначено поле выбора параметра Speed Grade. Выпадающий список этого поля отображает градации быстродействия для выбранного типа ПЛИС. Если тип кристалла не конкретизирован (в поле Device указано значение Auto), то список содержит единственное значение «*», соответствующее режиму автоматического выбора категории быстродействия ПЛИС.
Набор поддерживаемых средств синтеза определяется выбранным семейством ПЛИС. Чтобы просмотреть этот набор и при необходимости изменить средства синтеза, предлагаемые по умолчанию, следует воспользоваться полем выбора Synthesis Tool (рис. 4). Состав поддерживаемых средств синтеза зависит также от используемой конфигурации средств проектирования серии Xilinx ISE. Навигатор проекта автоматически корректирует содержимое выпадающего списка инструментов синтеза в соответствии с конфигурацией САПР и выбранным семейством ПЛИС. По умолчанию предлагаются встроенные средства синтеза САПР серии Xilinx ISE — Xilinx Synthesis Technology (XST). Кроме того, разработчик может использовать следующие инструменты синтеза третьих фирм: системы Synplify или Synplify Pro, предлагаемые корпорацией Synplicity (http://www.synplicity.com), и систему LeonardoSpectrum фирмы Mentor Graphics (http://www.mentor.com). Соответствующие средства синтеза должны быть предварительно установлены на компьютере для работы под управлением САПР серии Xilinx ISE. В этом случае для указания требуемого инструмента синтеза следует выбрать строку с его названием в выпадающем списке параметра Synthesis Tool.
Для определения средств моделирования проектируемой системы нужно воспользоваться полем выбора параметра Simulator. Конфигурации системы проектирования ISE BaseX и ISE Foundation обладают собственными средствами моделирования ISE Simulator. Кроме того, все конфигурации средств проектирования поддерживают систему моделирования ModelSim. Для выбора одного из этих инструментов моделирования необходимо в выпадающем списке возможных значений параметра Simulator выделить строку
^ ~
jelect tie Dev** and Омф) По«у Гог ihe Pioteci
! I Vatu*
CwKVfamly Ivnwi'
Dew* »C?v40
P*C*»je C9144
VpeMQrMe !-«
I
lOP-LtV* M0OJt Typ* «■
Syrtnem Tool jXST (V>Cc/Vertog)
SeuMtV .KSmMot
SanJMra 1 *i-i/m/ *1
Отмена | Спрайта |
Рис. 4. Диалоговая панель выбора ПЛИС, средств синтеза и моделирования проектируемой микропроцессорной системы
с его названием. В случае использования других систем моделирования следует выбрать строку Other.
Параметр Generated Simulation Language позволяет определить язык HDL, используемый для автоматического формирования моделей проектируемой системы. В выпадающем списке значений этого параметра представлено два значения — VHDL и Verilog, которые соответствуют языкам высокого уровня, поддерживаемым средствами синтеза. В процессе генерации моделей разрабатываемой микропроцессорной системы целесообразно использовать тот же язык HDL, что был выбран для создания модулей исходного описания верхнего уровня иерархии и ее компонентов.
После определения значений всех параметров в диалоговой панели, показанной на рис. 4, следует нажать клавишу Далее (Next), которая находится в нижней части этой панели. В результате на экране отображается следующая диалоговая панель «мастера» формирования нового проекта New Project Wizard, вид которой показан на рис. 5.
Рис. S. Диалоговая панель создания нового исходного модуля проекта
Данная диалоговая панель предоставляет возможность создания нового модуля исходного описания микропроцессорной системы и включения его в состав проекта. Чтобы сформировать основу нового модуля исходного описания, следует нажать кнопку New Source (рис. 5). В результате выполненных действий открывается диалоговая панель, представленная на рис. 6, в которой необходимо выбрать тип нового модуля, задать его имя и указать место расположения создаваемого файла на диске. Новые модули исходного описания проектируемой микропроцессорной системы могут создаваться в любой последовательности. Целесообразно в первую очередь приступить к формированию модуля описания для верхнего уровня иерархии разрабатываемой системы.
В диалоговой панели, показанной на рис. 6, прежде всего рекомендуется установить тип создаваемого исходного модуля, для чего в списке (рис. 6) следует выделить соответствующую строку, щелкнув на ней левой кнопкой мыши. Содержание списка возможных типов исходных модулей зависит от выбранного семейства ПЛИС и средств синтеза,
Рис. 6. Диалоговая панель установки параметров нового исходного модуля проекта
используемых в проекте. Учитывая, что все компоненты ядра выполнены в виде VHDL-описаний, следует выбрать в предложенном списке в качестве типа создаваемого модуля VHDL Module. Затем нужно активизировать поле редактирования названия модуля (файла) File Name, поместив на него курсор и щелкнув левой кнопкой мыши. Ввод имени файла осуществляется с помощью клавиатуры. Расширение имени файла устанавливается автоматически в соответствии с выбранным типом модуля. Место расположения создаваемого модуля на диске указывается в поле редактирования Location диалоговой панели (рис. 6). По умолчанию предлагается рабочий каталог формируемого проекта. Для создаваемых модулей исходного описания проекта рекомендуется использовать именно этот каталог. Особое внимание необходимо обратить на состояние индикатора автоматического включения модуля в состав проекта Add to project. Если флаг индикатора установлен (поле индикатора помечено маркером), то созданный модуль автоматически включается в состав формируемого проекта. По умолчанию флаг индикатора находится в установленном состоянии. Для модификации этого параметра достаточно щелкнуть левой кнопкой мыши, поместив курсор на поле индикатора. При этом состояние индикатора изменится на противоположное.
Установка значений всех необходимых параметров создаваемого модуля завершается нажатием клавиши Далее (Next), которая находится в нижней части диалоговой панели (рис. 6). Если создается основа VHDL-модуля, то далее открывается диалоговая панель определения исходных данных, необходимых для автоматической генерации шаблона VHDL-описания. Вид этой диалоговой панели показан на рис. 7.
В поле редактирования Entity Name после его активизации необходимо указать имя описываемого объекта. По умолчанию предлагается идентификатор, совпадающий с названием создаваемого модуля. Имя архитектурного тела VHDL-описания указывается в поле редактирования Architecture Name.
По умолчанию в качестве такого имени предлагается идентификатор Behavioral. Далее следует заполнить таблицу описания портов, которая содержит четыре столбца. Ячейки первого столбца представляют собой поле редактирования, в которое с помощью клавиатуры заносится идентификатор порта Port Name. Во второй колонке указывается тип порта Direction. Каждая ячейка этого столбца представляет собой поле выбора, выпадающий список которого содержит три значения, определяющие тип порта: in (входной), out (выходной) или inout (двунаправленный). Колонки MSB и LSB заполняются только для портов, представленных в виде шин и описываемых с помощью векторов. В столбце MSB указывается значение индекса, соответствующего старшему разряду вектора, а в LSB — младшему. Если описание портов нового модуля не помещается в видимой части таблицы, следует воспользоваться элементами вертикальной прокрутки, рас-
Рис. 7. Диалоговая панель определения исходных данных для формирования шаблона VHDL-описания
положенными вдоль правой границы таблицы. После внесения всех необходимых данных следует нажать кнопку Далее (Next) (рис. 7), в результате чего открывается панель с информацией, на основе которой выполняется формирование нового модуля VHDL-описания (рис. 8).
Pioiec» Navigator wi сіеУе a new sketeton toutce vtfh the fdowng spectoahortv
Source Type VHDL Modie Scx*c*> Name NewTopt_evw( vfid Emily Name NewTopLevH AicWectixe Name Behavioral J
Ы
Source Orectcry С \Pr<^ectVNewPl|
< Иама IT Готово 1 Отмела 1 Справка
Рис. 8. Информационная панель «мастера» подготовки шаблона VHDL-описания, отражающая значения параметров создаваемого исходного модуля проекта
1б8
технологии схемотехника, проектирование, моделирование
Если все данные, необходимые для создания основы нового VHDL-описания, указаны корректно, то далее нужно нажать кнопку Готово (Finish) в нижней части информационной панели (рис. 8), в результате чего открывается новое рабочее окно встроенного HDL-редактора Навигатора проекта, в котором отображается автоматически сформированный код. Этот код включает декларацию используемых библиотек и пакетов, интерфейса описываемого объекта entity и основу архитектурного тела VHDL-описания. Для получения законченного описания на языке VHDL необходимо основу архитектурного тела дополнить кодом, описывающим внутреннюю структуру или поведение объекта. Текст описания вводится с помощью клавиатуры или шаблонов встроенного HDL-редактора САПР серии Xilinx ISE. После завершения формирования модуля текстового описания следует сохранить его в виде файла на диске, используя команды Save или Save As из всплывающего меню File или кнопку И], расположенную на оперативной панели управления Навигатора проекта.
Одновременно с открытием окна встроенного HDL-редактора на экран вновь выводится диалоговая панель создания нового исходного модуля, в которой отображается название этого модуля (рис. 5). В этой панели нужно нажать клавишу Далее (Next), после чего на экране появляется следующая диалоговая панель «мастера» формирования нового проекта New Project Wizard, вид которой представлен на рис. 9.
в диалоговой панели. В первой колонке этой таблицы с названием Source File отображается название включаемого файла, во второй, с названием Type, — его тип. Третья колонка — Copy to project содержит индикатор автоматического копирования модуля в состав проекта. Если флаг установлен (поле индикатора помечено маркером), то включаемый модуль автоматически копируется в рабочий каталог создаваемого проекта. Для изменения состояния индикатора на противоположное нужно поместить курсор на его поле и щелкнуть левой кнопкой мыши. Когда в состав проекта добавляется файл с расширением VHD, то на экран автоматически выводится диалоговая панель, позволяющая уточнить тип включаемого модуля (рис. 10).
Рис. 9. Диалоговая панель включения существующих модулей исходного описания в состав создаваемого проекта
Эта диалоговая панель позволяет включить в состав формируемого проекта существующие модули исходного описания, в том числе и созданные ранее в рамках предыдущих проектов. Чтобы добавить существующий модуль в состав создаваемого проекта, следует воспользоваться кнопкой Add Source (рис. 9), после чего на экране отображается стандартная панель диалога открытия файла. В этой стандартной панели нужно выбрать соответствующий файл, подтвердив сделанный выбор нажатием клавиши Открыть (Open), после чего название этого файла автоматически заносится в таблицу, расположенную
Рис. 10. Диалоговая панель выбора типа VHDL-модуля при включении его в состав создаваемого проекта
Если добавляемый файл с расширением VHD содержит исходное описание компонента проектируемой системы на языке VHDL, то в этой диалоговой панели нужно выбрать строку VHDL Design File. В том случае, если включаемый файл представляет собой описание тестового модуля, следует выбрать строку VHDL Test Bench File.
Рассмотренную процедуру нужно поочередно повторить для включения всех необходимых модулей в состав создаваемого проекта. Прежде всего, необходимо добавить в формируемый проект модули исходного описания микропроцессорного ядра PicoBlaze. Эти файлы были скопированы в рабочий каталог проекта сразу после его создания, но не были включены в проект. Поэтому для них индикатор автоматического копирования модуля в состав проекта, расположенный в колонке Copy to project, может находиться в выключенном состоянии. Кроме того, нужно не забыть добавить в состав проекта файл описания содержимого программной памяти, соответствующий разработанной микропроцессорной программе. Этот файл с именем < название_мжропроцессорной_программы>. vhd должен быть автоматически сформирован ассемблером в процессе трансляции исходного текста программы. Когда все требуемые модули будут добавлены в состав формируемого проекта, следует нажать кнопку Далее (Next), расположенную в нижней части диалоговой панели, представленной на рис. 9. В результате на экран выводится информационная панель, в которой отображаются установленные значения основных пара-
Рис. 11. Информационная панель «мастера» формирования нового проекта New Project Wizard
метров создаваемого проекта. Вид этой панели показан на рис. 11.
Если необходимо изменить значение какого-либо параметра, то кнопка Назад (Back), расположенная в нижней части информационной панели, позволяет вернуться к предыдущей диалоговой панели. Для завершения процесса формирования нового проекта следует нажать кнопку Готово (Finish) в нижней части информационной панели (рис. 11). После этого созданный проект автоматически открывается в рабочей области Навигатора проекта. При этом в области расположения рабочих окон отображается подробная информация о новом проекте (рис. 12).
На следующем шаге формирования проекта микропроцессорной системы, при необходимости, нужно сформировать недостающие модули исходного описания. (Например, HDL-описания компонентов проектируемой системы.) Для создания основы нового модуля исходного описания проекта следует нажать кнопку на оперативной панели, которая дублирует команду New Source из раздела Project основного меню Навигатора проекта. После этого на экран выводится диалоговая панель установки параметров нового исходного модуля проекта (рис. 6). Далее необходимо выполнить ту же последовательность действий, что и при создании модуля с помощью «мастера» формирования нового проекта New Project Wizard, которая была рассмотрена выше.
Кроме модулей исходного описания разрабатываемой микропроцессорной системы в состав проекта в большинстве случаев необходимо включить файл временных и топологических ограничений User Constraints File (UCF). Данный файл содержит дополнительную информацию для программ синтеза, размещения и трассировки, в частности информацию о привязке внешних цепей разрабатываемой микропроцессорной системы к выводам ПЛИС [9]. Поэтому остановимся на изучении только двух, наиболее часто используемых, типов ограничений.
Параметр LOC позволяет установить соответствие между внешними цепями проектируемой системы и номерами выводов ПЛИС, а также явно указать конфигурируемый логи-
Рис. 12. Вид основного окна Навигатора проекта после создания нового проекта
ческий блок (Configurable Logic Block, CLB) для реализации элементов проекта. Для привязки интерфейсных цепей проектируемой системы (подключаемых к контактам кристалла) к требуемым выводам ПЛИС используется следующий формат выражения ограничения:
NET <название_цепи> LOC=<номер_вывода_ПЛИС>;
Форма записи номера вывода ПЛИС в этом выражении зависит от типа используемого корпуса микросхемы. Для корпусов, относящихся к категории BGA (Ball Grid Array), номер вывода указывается в том же виде, в каком он представлен в документации. При использовании корпусов других типов номер вывода ПЛИС, указанный в документации, в выражении ограничения LOC сопровождается префиксом P. В качестве примеров топологических ограничений, используемых для указания соответствия внешних цепей разрабатываемой микропроцессорной системы и номеров выводов ПЛИС, приводятся следующие выражения
NET clk_s LOC=C5; NET datel LOC=P15;
Максимальное значение периода сигнала синхронизации для соответствующей цепи разрабатываемой микропроцессорной системы задается с помощью параметра PERIOD.
Полный формат соответствующего выражения ограничения имеет вид:
NET <название_цепи_синхронизации> PERIOD=<длитель-ность_периода> [<единицы_измерения>] [{HIGH I LOW} [<дли-тельность_первой_фазы_периода> [<единицы_измерения>] ]];,
Здесь значение HIGH или LOW указывает логический уровень сигнала в первой фазе периода, а элементы, указанные в квадратных скобках, являются необязательными. По умолчанию установлены в качестве единиц измерения длительности наносекунды нс (ns) и одинаковая продолжительность состояний высокого и низкого уровня периода синхросигнала, в результате чего получается сокращенный формат записи:
NET <название_цепи_синхронизации> PERIOD =<длитель-ность_периода> ;
Например, NET clock PERIOD=25ns;.
Таким образом, значение параметра PERIOD накладывает ограничение на время распространения сигналов по цепям и логике, подключенным между выходом одного и входом другого синхронного элемента (триггера, регистра или ОЗУ), которые тактируются одним и тем же сигналом синхронизации.
Для создания основы файла UCF следует воспользоваться кнопкой а на оперативной панели или командой New Source из раздела Project основного меню Навигатора проекта.
После этого в открывшейся диалоговой панели установки параметров нового модуля следует выделить строку Implementation Constraints File (поместив на нее курсор и щелкнув левой кнопкой мыши), которая в качестве типа нового модуля задает файл временных и топологических ограничений проекта (рис. 6). Затем в этой же панели нужно указать название нового файла UCF в поле редактирования File Name и нажать кнопку Далее (Next). После этого на экран выводится следующая панель диалога, которая позволяет выбрать модуль исходного описания проекта, с которым ассоциируется создаваемый файл временных и топологических ограничений (рис. 13). Для этого следует расположить курсор мыши на требуемой строке списка, отображаемого в диалоговой панели, и щелкнуть левой кнопкой. Как правило, выбирается модуль описания верхнего уровня иерархии проекта.
Если все данные, необходимые для создания нового файла UCF, указаны корректно, то далее нужно нажать кнопку Готово (Finish) в нижней части информационной панели (рис. 13). Кнопка Назад (Back) позволяет при необходимости вернуться к предыдущим шагам его создания. При успешном завершении рассмотренного процесса в окне исходных модулей Навигатора проекта появляется строка с названием нового файла ограничений.
Для внесения информации в файл UCF можно использовать встроенный HDL-редактор или специальную программу Constraints Editor, которая на основании данных, указанных разработчиком в диалоговом режиме, автоматически формирует соответствующие выражения для описания ограничений проекта. Кроме того, в проектах, выполняемых на основе ПЛИС семейств FPGA, для этих целей может использоваться редактор назначения выводов кристалла и топологических ограничений PACE (Pinout and Area Constraints Editor). Все перечисленные программы входят в состав средств проектирования серии Xilinx ISE. Чтобы приступить к редактированию файла UCF, необходимо в окне исходных модулей Навигатора проекта щелчком левой кнопки мыши выделить строку с его названием, после чего в окне процессов развернуть строку User Constraints (рис. 12). Для изменения файла UCF во встроенном текстовом редакторе следует дважды щелк-
нуть левой кнопкой мыши на строке Edit Constraints (Text), в результате чего открывается новое окно редактирования. Ввод выражений временных и топологических ограничений осуществляется с помощью клавиатуры. При этом рекомендуется использовать шаблоны HDL-редактора, представленные в папке UCF. Чтобы выполненные изменения вступили в силу, необходимо сохранить файл временных и топологических ограничений на диске, воспользовавшись командой Save из всплывающего меню File или кнопкой Ш, расположенной на оперативной панели управления Навигатора проекта.
После того, как сформированы все необходимые исходные модули проекта, следует перейти к выполнению основных этапов разработки встраиваемой микропроцессорной системы. Выполнение этих этапов в САПР серии Xilinx ISE будет рассмотрено в следующей публикации цикла. ■
Литература
1. Зотов В. PicoBlaze — семейство восьмиразрядных микропроцессорных ядер, реализуемых на основе ПЛИС фирмы Xilinx. // Компоненты и технологии. 2003. № 4.
2. Зотов В. Система команд микропроцессорного ядра PicoBlaze, реализуемого на основе ПЛИС семейств Spartan-II, Spartan-IIE, Virtex, Virtex-E // Компоненты и технологии. 2003. № 5.
3. Зотов В. Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения
в проектах, реализуемых на основе ПЛИС семейства Virtex-II // Компоненты и технологии.
2003. № 6.
4. Зотов В. Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейства CoolRunner-II // Компоненты и технологии. 2003. № 7.
5. Зотов В. Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейств Spartan-3, Virtex-II и Virtex-IIPRO // Компоненты и технологии. 2005. № 5-6.
6. Зотов В. Разработка программ на языке ассемблер для семейства микропроцессорных ядер PicoBlaze // Компоненты и технологии. 2003. №8.
7. Зотов В. Инструментальный комплект Spartan-3 Starter Kit для практического освоения методов проектирования встраиваемых микропроцессорных систем на основе ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2005. №7.
8. Кузелин М. О., Кнышев Д. А., Зотов В. Ю. Современные семейства ПЛИС фирмы Xilinx. Справочное пособие. М.: Горячая линия — Телеком.
2004.
9. Зотов В. Проектирование цифровых устройств на основе ПЛИС фирмы Xilinx в САПР WebPack ISE. М.: Горячая линия — Телеком. 2003.
10. Зотов В. Средства программирования ПЛИС семейства CoolRunner-II фирмы Xilinx // Схемотехника. 2004. № 12.