Создание проекта встраиваемой системы на основе микропроцессорного ядра семейства PicoBlaze
В предыдущей части данного цикла было представлено семейство свободно распространяемых 8-разрядных ядер PicoBlaze [1–6]. После ознакомления с архитектурой, системой команд и ассемблером ядер этого семейства можно приступить к практическому изучению процесса разработки встраиваемых микропроцессорных систем на их основе.
Так как ПЛИС с архитектурой FPGA обладают более широкими функциональными возможностями по сравнению с кристаллами серий CPLD [8], для реализации встраиваемых микропроцессорных систем в большинстве случаев рекомендуется использовать микросхемы семейств FPGA. Поэтому в данной и последующих статьях основное внимание будет уделяться изучению процесса проектирования систем на основе ядер семейства PicoBlaze, реализуемых в ПЛИС серий FPGA. Настоящая статья знакомит со средствами и этапами проектирования встраиваемых микропроцессорных систем на основе ядер семейства PicoBlaze, а также с процессом создания нового проекта.
Средства проектирования встраиваемых микропроцессорных систем на основе 8-разрядных ядер семейства PicoBlaze
Для сквозного проектирования встраиваемых микропроцессорных систем на основе ядер семейства PicoBlaze необходимы следующие инструменты:
- пакет средств автоматизированного проектирования серии Xilinx ISE (Integrated Synthesis Environment);
- архив, содержащий модули исходных описаний и ассемблер для выбранной версии микропроцессорного ядра PicoBlaze;
- загрузочный кабель JTAG-интерфейса;
- аппаратный отладочный модуль.
Кроме того, для отладки разрабатываемых микропроцессорных кодов могут применяться специальные программные средства, выпускаемые «третьими» фирмами и производителями. Использование этих средств не является обязательным, но позволяет повысить эффективность и наглядность процесса отладки.
Средства проектирования серии Xilinx ISE выпускаются в трех конфигурациях: ISE Foundation, ISE BaseX и ISE WebPACK. Основное отличие между этими конфигурациями заключается в количестве поддерживаемых кристаллов и наборе дополнительных инструментов проектирования. К моменту подготовки материала данной статьи последней версией средств проектирования серии Xilinx ISE, доступной для разработчиков, являлась версия 7.1i. Ниже приводятся краткие рекомендации по выбору конфигурации САПР для разработки систем на основе ядер семейства PicoBlaze.
Пакет программных средств ISE Foundation представляет собой наиболее полную систему сквозного проектирования, которая поддерживает весь спектр ПЛИС фирмы Xilinx. Данную конфигурацию САПР следует использовать в том случае, когда кристалл, выбранный для реализации встраиваемой микропроцессорной системы, не поддерживается двумя другими пакетами. Для практического освоения методов проектирования встраиваемых микропроцессорных систем, реализуемых на основе ПЛИС фирмы Xilinx, можно воспользоваться бесплатной 60-дневной версией пакета САПР ISE Foundation.
Экономичная конфигурация средств проектирования ISE BaseX имеет более низкую стоимость по сравнению с ISE Foundation, но поддерживает не все типы ПЛИС. Пакет ISE BaseX позволяет выполнять проекты на основе всех кристаллов семейств CPLD и ПЛИС серий FPGA с логической емкостью не более 600 000 системных вентилей. Кроме того, модуль программирования iMPACT, входящий в состав пакета, может применяться для конфигурирования практически всех кристаллов, выпускаемых фирмой Xilinx. Для создания конфигурационной последовательности при этом используются другие средства проектирования, предоставляемые фирмой Xilinx. Пакет ISE BaseX рекомендуется применять в том случае, если в процессе разработки микропроцессорной системы предполагается использование генератора логических ядер CORE Generator и топологического редактора FPGA Editor (при выборе ПЛИС, логическая емкость которых не выходит за указанный выше предел).
Свободно распространяемая (бесплатная) модификация САПР ISE WebPACK поддерживает все кристаллы семейств CPLD и ПЛИС серий FPGA с логической емкостью не более 300 000 системных вентилей. Кроме того, одно из главных отличий пакета ISE WebPACK от конфигурации ISE BaseX заключается в отсутствии генератора логических ядер CORE Generator и топологического редактора FPGA Editor. Бесплатную конфигурацию САПР серии Xilinx ISE WebPACK целесообразно использовать в том случае, когда предполагается использовать следующие типы ПЛИС:
- кристаллы XCV50E — XCV300E семейства Virtex-E;
- кристаллы XC2V40 — XC2V250 семейства Virtex-II;
- кристалл XC2VP2 семейства Virtex-II Pro;
- кристаллы XC4VLX15, XC4VLX25 семейства Virtex-4;
- все кристаллы семейства Spartan-II;
- кристаллы XC2S50E — XC2S300E семейства Spartan IIE;
- кристаллы XC3S50 — XC3S1500 семейства Spartan-3;
- кристаллы XC3S100E — XC3S500E семейства Spartan-3E;
- кристаллы XC3S1000L, XC3S1500L семейства Spartan-3L;
- все кристаллы семейства CoolRunner-II.
Все конфигурации средств проектирования серии Xilinx ISE имеют одинаковую структуру и пользовательский интерфейс. Поэтому переход от одной конфигурации САПР к другой, например от свободно распространяемой системы проектирования ISE WebPACK к полному пакету ISE Foundation, не требует дополнительных временных затрат для изучения нового пакета [9].
Возможные варианты получения архива, содержащего модули исходных описаний и ассемблер для выбранной версии микропроцессорного ядра PicoBlaze, подробно описаны в других статьях цикла [1, 3–5].
Кабель JTAG-интерфейса, необходимый для загрузки конфигурационной последовательности микропроцессорной системы в ПЛИС, можно изготовить самостоятельно [10]. Кроме того, фирмой Xilinx выпускается несколько вариантов универсального загрузочного JTAG-кабеля, предназначенных для сопряжения с различными внешними интерфейсами персонального компьютера.
Для аппаратной отладки разрабатываемой системы может использоваться самостоятельно изготовленное устройство или один из серийно выпускаемых универсальных инструментальных модулей, выполненных на основе ПЛИС фирмы Xilinx семейств CPLD. Преимуществами применения недорогих промышленно выпускаемых аппаратных модулей являются:
- сокращение общего времени процесса разработки микропроцессорной системы;
- исключение вероятных ошибок, вносимых при изготовлении печатной платы и монтаже компонентов;
- наличие в комплекте загрузочного JTAG-кабеля;
- комплектация всеми необходимыми средствами проектирования.
Примером такого отладочного модуля является плата Xilinx Spartan-3 Starter Board, которая поставляется в составе инструментального комплекта Spartan-3 Starter Kit [7].
Этапы проектирования встраиваемых систем на основе микропроцессорных ядер семейства PicoBlaze
Проектирование микропроцессорных систем с использованием 8-разрядных ядер семейства PicoBlaze включает в себя все стандартные этапы разработки цифровых устройств с аппаратной реализацией операций на базе ПЛИС фирмы Xilinx. Содержание и выполнение этих этапов в САПР серии Xilinx ISE подробно рассмотрено в другой работе автора [9], поэтому далее они освещаются кратко. Кроме того, маршрут проектирования микропроцессорных систем на основе ядер рассматриваемого семейства содержит этапы создания программного обеспечения для разрабатываемой системы.
В общем случае в процессе проектирования встраиваемых систем на основе микропроцессорных ядер семейства PicoBlaze можно выделить следующие этапы:
- выбор семейства, типа ПЛИС, соответствующей версии микропроцессорного ядра для реализации проектируемой системы и разработка ее архитектуры;
- создание исходного текста микропроцессорной программы на языке ассемблера;
- трансляция программы на языке ассемблера;
- создание нового проекта в САПР серии Xilinx ISE с указанием выбранного семейства и типа ПЛИС, а также средств синтеза и моделирования;
- подготовка описания проектируемой системы в схемотехнической, алгоритмической или текстовой форме;
- синтез проектируемой микропроцессорной системы;
- отладка программной и аппаратной части разрабатываемой системы методом функционального моделирования;
- размещение и трассировка проекта встраиваемой микропроцессорной системы в кристалле;
- отладка программной и аппаратной части разрабатываемой системы методом временного (полного) моделирования;
- формирование конфигурационной последовательности ПЛИС, соответствующей проекту разрабатываемой системы;
- программирование ПЛИС (загрузка проекта разработанной микропроцессорной системы в кристалл) или конфигурационного ПЗУ/ППЗУ.
Маршрут проектирования встраиваемых микропроцессорных систем в общем виде инвариантен по отношению к семействам ПЛИС, используемых для их реализации. При этом следует учитывать, что только содержание и выполнение начальных этапов разработки (создание нового проекта и подготовка исходных описаний программной и аппаратной части проектируемой системы) не зависит от выбранного типа ПЛИС. Содержание последующих этапов (синтеза, функционального и временного моделирования, размещения, трассировки и загрузки проекта в кристалл) различается для ПЛИС семейств CPLD и FPGA. С особенностями выполнения этих этапов при использовании микросхем серий CPLD можно ознакомиться в другой работе автора [9].
В наглядном виде типовой маршрут проектирования встраиваемых систем на основе ядер PicoBlaze показан на рис. 1. Рассматривая последовательность выполнения этапов, следует обратить внимание на то, что этапы разработки программной части проектируемой системы могут выполняться как до, так и после создания исходных описаний аппаратной части. Далее приводятся краткие пояснения по содержанию перечисленных выше этапов проектирования встраиваемых систем на основе микропроцессорных ядер семейства PicoBlaze.
Прежде чем приступить к созданию нового проекта, следует определиться с выбором метода описания микропроцессорной системы и, соответственно, средств синтеза. Исходная информация о проектируемой системе может быть представлена в виде принципиальных схем, описаний на языке HDL, диаграмм состояний, пакетов и библиотек пользователя. Учитывая, что все компоненты микропроцессорного ядра PicoBlaze выполнены на языках VHDL и Verilog, рекомендуется использовать их и для описания разрабатываемой системы. При этом целесообразно выбирать тот язык HDL, в терминах которого представлены описания компонентов микропроцессорного ядра. Так как наиболее распространенным языком описания компонентов микропроцессорных ядер семейства PicoBlaze является VHDL (все варианты ядер содержат соответствующие VHDL-описания), то далее рассматривается процесс разработки встраиваемых систем с использованием именно этого языка HDL в качестве основного.
При определении семейства и типа ПЛИС (и соответствующей версии ядра PicoBlaze) для реализации проекта микропроцессорной системы необходимо не только оценить ее сложность с учетом требований, предъявляемых к быстродействию, потребляемой мощности, условиям эксплуатации, но и учесть дополнительные факторы, такие как стоимость и возможность перепрограммирования в системе. Выбранное семейство или тип кристалла при необходимости достаточно легко можно изменить в процессе проектирования. При этом следует помнить, что в случае смены семейства ПЛИС (и соответственно версии ядра PicoBlaze) потребуется коррекция разработанной ранее программы. В процессе разработки архитектуры встраиваемой микропроцессорной системы, реализуемой на основе ядра PicoBlaze в ПЛИС фирмы Xilinx, определяется ее конфигурация и состав периферийных устройств.
Разработка программной части микропроцессорной системы включает в себя подготовку исходных текстов программ на языке ассемблера и их последующую трансляцию. Эти процедуры подробно рассмотрены в другой статье цикла [6].
На этапе подготовки описания проектируемой системы кроме формирования исходных текстов на языке HDL нужно также установить временные и топологические ограничения, которые должны учитываться при синтезе, размещении и трассировки проекта микропроцессорной системы в кристалле. В процессе синтеза на основании исходных модулей проекта формируется список соединений (netlist), содержащий набор примитивов или компонентов, который может быть реализован на основе ресурсов выбранного кристалла ПЛИС. Результаты синтеза используются далее в качестве исходных данных средствами размещения и трассировки. Отладка разрабатываемой системы, выполняемая методом функционального моделирования, производится без учета реальных значений задержек прохождения сигналов и позволяет проконтролировать соответствие выходных сигналов алгоритму работы микропроцессорной программы. На этапе размещения и трассировки проекта в кристалл производится распределение выполняемых функций в конфигурируемые логические блоки CLB (Configurable Logic Block) или макроячейки Macrocell (в зависимости от используемого семейства ПЛИС) и формирование необходимых связей в кристалле. В процессе выполнения этого этапа проектирования также определяются реальные значения задержек распространения сигналов, которые необходимы для полного временного моделирования системы. Основным результатом этапа размещения и трассировки является формирование файла, в котором содержится информация о конфигурации ПЛИС, реализующей проектируемую систему. Далее на основе этого файла создается конфигурационная битовая последовательность, предназначенная для программирования ПЛИС, или файл прошивки конфигурационного ПЗУ/ППЗУ. Завершением процесса разработки системы является загрузка конфигурационных данных в кристалл или программирование конфигурационного ПЗУ/ППЗУ с помощью соответствующих программ и загрузочного кабеля.
Следует обратить внимание на то, что этапы функционального и временного моделирования не являются обязательными. Тем не менее, использование высокоэффективных средств моделирования, включаемых в состав пакетов САПР фирмы Xilinx, в качестве отладочных инструментов позволяет обнаружить большинство возможных ошибок в аппаратной и программной части и, тем самым, значительно сократить общее время разработки системы [9]. При обнаружении ошибок на любом из этих этапов, например, логических ошибок на этапе функционального моделирования, или при получении неудовлетворительных результатов временного моделирования следует вернуться на стадию разработки исходных описаний проекта и микропроцессорной программы, внести необходимые изменения и повторить последующие этапы.
Перед тем как перейти к описанию выполнения всех перечисленных выше этапов процесса проектирования встраиваемых микропроцессорных систем на основе ядер семейства PicoBlaze в рамках САПР серии Xilinx ISE, следует определить понятие проекта.
Структура проекта встраиваемой микропроцессорной системы на основе ядра семейства PicoBlaze в САПР серии Xilinx ISE
Под проектом встраиваемой микропроцессорной системы в САПР серии Xilinx ISE понимается совокупность модулей (файлов), которые содержат информацию, необходимую для выполнения всех этапов процесса разработки данной системы на базе ПЛИС фирмы Xilinx. В отличие от проекта цифрового устройства с аппаратной реализацией операций [9], проект микропроцессорной системы включает в себя дополнительно файлы, используемые в процессе разработки программных средств. В структуре проекта в САПР серии Xilinx ISE ISE можно выделить следующие группы модулей:
- исходные описания проектируемого устройства в графической или текстовой форме;
- модули временных и топологических ограничений проекта;
- исходные тексты микропроцессорных программ на языке ассемблера;
- результаты трансляции микропроцессорных программ на языке ассемблера, представленные в различных форматах;
- документация, сопровождающая проект;
- промежуточные результаты, используемые в качестве исходных данных для последующих шагов проектирования;
- отчеты о выполнении основных этапов проектирования;
- функциональная и временная модели проектируемой системы;
- описания тестовых воздействий, необходимых для моделирования разрабатываемой системы, в текстовом и графическом формате;
- результаты функционального и временного моделирования проектируемой системы в графической и текстовой форме;
- отчеты, формируемые вспомогательными средствами пакета;
- окончательные результаты проектирования, используемые для конфигурирования ПЛИС.
Все модули проекта располагаются в одном каталоге (папке), название которого совпадает с названием проекта. Изначально проект представлен только заголовком и модулем, в котором указываются параметры проекта. Затем к проекту добавляются модули исходного описания аппаратной части проектируемой системы и исходные тексты микропроцессорных программ. Далее, после выполнения каждого этапа процесса разработки, в проект включаются результаты, полученные на этом этапе, и соответствующий отчет. Кроме того, разработчик может включить в проект необходимую текстовую документацию.
Создание нового проекта системы на основе ядра семейства PicoBlaze в Xilinx ISE
Прежде чем приступить к созданию нового проекта в САПР серии Xilinx ISE рекомендуется сформировать папку для хранения файлов этого проекта. Для этого можно воспользоваться средствами операционной системы Windows (например, Проводником) или какой-либо управляющей оболочки (файлового менеджера), например, Total Commander (Windows Commander). Имя создаваемой папки для нового проекта должно совпадать с его названием. Целесообразно хранить все проекты в специально созданном для этих целей каталоге, например, C:Project. Каталог, в котором находятся все проекты пользователя, должен располагаться вне раздела, содержащего средства проектирования серии Xilinx ISE, чтобы при обновлении версии пакета САПР он не был удален.
В папку, предназначенную для хранения модулей нового проекта, нужно скопировать файлы исходных описаний используемой версии микропроцессорного ядра PicoBlaze, соответствующую версию ассемблера и шаблоны описания содержимого программной памяти. После этого следует в этой же папке сформировать файл, содержащий исходный текст микропроцессорной программы на языке ассемблера. Далее необходимо произвести трансляцию разработанной программы, при успешном завершении которой будут сгенерированы файлы описания содержимого программной памяти. Выполнение этих процессов подробно рассмотрено ранее [6].
Все последующие этапы разработки микропроцессорной системы выполняются в среде САПР серии Xilinx ISE. Поэтому далее необходимо открыть управляющую оболочку этого пакета Навигатор проекта (Project Navigator), дважды щелкнув левой кнопкой мыши на пиктограмме
, расположенной на Рабочем столе ПК. При отсутствии данной пиктограммы можно воспользоваться кнопкой Пуск (Start). После нажатия этой кнопки в открывшейся панели необходимо выбрать строку Программы (Programs), а затем в предложенном списке выбрать группу программ Xilinx ISE 7.1i, в которой выделить строку Project Navigator и щелкнуть на ней левой кнопкой мыши. При успешном выполнении указанных операций на экране монитора отображается основное окно Навигатора проекта, вид которого представлен на рис. 2.
Для создания нового проекта в САПР серии Xilinx ISE следует выполнить команду File основного меню Навигатора проекта, а затем во всплывающем меню выбрать строку New Project, как показано на рис. 2.
В результате указанных действий запускается «мастер» формирования нового проекта New Project Wizard. Работа этого «мастера» начинается с вывода на экран диалоговой панели, вид которой показан на рис. 3.
В стартовой диалоговой панели «мастера» New Project Wizard должны быть определены следующие исходные данные, необходимые для создания нового проекта:
- название проекта;
- диск и каталог, в котором должен располагаться проект;
- тип (способ описания) модуля верхнего уровня иерархии проекта.
В первую очередь рекомендуется определить раздел (папку), в котором будет располагаться рабочий каталог проекта. Место расположения проекта на диске указывается в поле редактирования Project Location (рис. 3). По умолчанию в поле редактирования Project Location предлагаются диск и каталог, которые использовались в предыдущем проекте. Изменить расположение создаваемого проекта можно двумя способами: используя клавиатуру или стандартную панель навигации по дискам компьютера. При выборе первого метода следует поместить курсор на поле редактирования Project Location и щелкнуть левой кнопкой мыши, после чего ввести с клавиатуры имя диска и каталога. Если указываемый каталог отсутствует на диске, то он создается автоматически. Для выбора каталога, который уже существует, удобнее воспользоваться вторым способом, нажав кнопку с пиктограммой «…», расположенную справа от поля редактирования Project Location. В открывшейся диалоговой панели навигации следует с помощью мыши выбрать требуемый диск и каталог, а затем подтвердить сделанный выбор нажатием клавиши OK. После закрытия панели навигации выбранные параметры автоматически отображаются в поле редактирования Project Location.
Чтобы задать имя создаваемого проекта, необходимо поместить указатель мыши на поле редактирования Project name (рис. 3) и щелкнуть левой кнопкой мыши, после чего ввести с клавиатуры соответствующее название. Рекомендуется задавать мнемонические имена проектов, чтобы впоследствии было удобнее ориентироваться при поиске требуемого проекта. Введенное название проекта автоматически добавляется в поле Project Location, определяя тем самым название рабочего каталога проекта.
Тип (способ описания) модуля верхнего уровня иерархии проекта определяется с помощью поля выбора Top-Level Module Type. Список, который открывается при нажатии кнопки, расположенной в правой части этого поля выбора, содержит четыре варианта: HDL, Schematic, EDIF и NGC/NGO. При использовании языков высокого уровня VHDL и Verilog для описания модуля верхнего уровня иерархии проекта в качестве значения параметра Top-Level Module Type устанавливается вариант HDL. Если исходный модуль верхнего уровня иерархии проекта будет представлять собой схему, выполненную в схемотехническом редакторе САПР серии Xilinx ISE, то следует выбрать вариант Schematic. В случаях, когда в качестве модуля верхнего уровня иерархии предполагается использовать описания в формате EDIF или NGC/NGO, должны быть указаны соответствующие варианты значения параметра Top-Level Module Type.
Установка значений всех необходимых параметров создаваемого проекта завершается нажатием клавиши Далее (Next), которая находится в нижней части диалоговой панели (рис. 3). Следует обратить внимание на то, что эта клавиша становится доступной только после определения значений всех перечисленных выше параметров. Если значение какого-либо параметра не задано, то данная клавиша остается в неактивном состоянии (ее название отображается серым цветом).
Бесплатную версию программы можно получить у официальных дистрибьюторов.
Окончание следует
Литература
- Зотов В. PicoBlaze — семейство восьмиразрядных микропроцессорных ядер, реализуемых на основе ПЛИС фирмы Xilinx // Компоненты и технологии. 2003. № 4.
- Зотов В. Система команд микропроцессорного ядра PicoBlaze, реализуемого на основе ПЛИС семейств Spartan-II, Spartan-IIE, Virtex, Virtex-E // Компоненты и технологии. 2003. № 5.
- Зотов В. Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейства Virtex-II // Компоненты и технологии. 2003. № 6.
- Зотов В. Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейства CoolRunner-II // Компоненты и технологии. 2003. № 7.
- Зотов В. Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейств Spartan-3, Virtex-II и Virtex-IIPRO // Компоненты и технологии. 2005. № 5-6.
- Зотов В. Разработка программ на языке ассемблера для семейства микропроцессорных ядер PicoBlaze // Компоненты и технологии. 2003. № 8.
- Зотов В. Инструментальный комплект Spartan-3 Starter Kit для практического освоения методов проектирования встраиваемых микропроцессорных систем на основе ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2005. № 7.
- Кузелин М. О., Кнышев Д. А., Зотов В. Ю. Современные семейства ПЛИС фирмы Xilinx. Справочное пособие. М.: Горячая линия-Телеком, 2004.
- Зотов В. Проектирование цифровых устройств на основе ПЛИС фирмы Xilinx в САПР WebPack ISE. М.: Горячая линия — Телеком, 2003.
- Зотов В. Средства программирования ПЛИС семейства CoolRunner-II фирмы Xilinx // Схемотехника. 2004. № 12.