Реализация проекта встраиваемой системы на основе микропроцессорного ядра семейства PicoBlaze
Данная статья является продолжением цикла, посвященного применению конфигурируемых микропроцессорных ядер фирмы Xilinx. В предыдущей публикации [1] был представлен процесс создания нового проекта встраиваемой системы на основе ядра семейства PicoBlaze [2–6]. Настоящая статья знакомит с выполнением этапов синтеза, размещения и трассировки сформированного проекта и генерации конфигурационной последовательности ПЛИС в САПР серии Xilinx ISE версии 7.1.
Выполнение основных этапов проектирования встраиваемых систем на основе ядер семейства PicoBlaze в САПР серии Xilinx ISE
Созданный проект должен быть открыт в среде управляющей оболочки средств проектирования серии Xilinx ISE. Чтобы получить доступ к интерактивному списку основных этапов процесса разработки, в окне исходных модулей Навигатора проекта следует щелчком левой кнопкой мыши выделить строку с названием файла описания верхнего уровня иерархии проекта. При этом в окне процессов отображается маршрут проектирования, соответствующий выбранному типу ПЛИС и средств синтеза (рис. 1). В представленном маршруте обязательными этапами являются синтез, размещение и трассировка проекта в кристалле, формирование конфигурационной последовательности ПЛИС и загрузка проекта в кристалл. Данные этапы, за исключением последнего, обычно выполняются в автоматическом режиме. Для управления соответствующими процессами разработчик может использовать файлы временных и топологических ограничений, а также параметры этих процессов, устанавливаемые с помощью диалоговых панелей Навигатора проекта.
Вид основного окна Навигатора проекта после создания нового проекта системы на основе ядра семейства PicoBlaze (Рис. 1)
Прежде чем непосредственно активизировать процессы, соответствующие перечисленным этапам, предварительно рекомендуется проконтролировать и при необходимости установить требуемые значения параметров этих процессов. Для этого в окне процессов Навигатора проекта щелчком левой кнопки мыши следует выделить строку с названием каждого процесса, после чего нажать кнопку
, расположенную на оперативной панели, или воспользоваться командой Properties контекстно-зависимого всплывающего меню, которое выводится щелчком правой кнопки мыши. В результате на экране монитора появится диалоговая панель параметров выделенного процесса. Подробное описание каждого параметра всех процессов приведено в отдельной книге [7]. Для большинства параметров можно использовать значения, установленные по умолчанию. Далее будут указаны только те параметры, на которые следует обратить особое внимание. При изменениях значений параметров следует подтвердить их нажатием кнопки ОК, расположенной в нижней части каждой диалоговой панели.
Доступ к параметрам синтеза открывает строка Synthesize, расположенная в окне процессов (рис. 2). Диалоговая панель параметров синтеза, вид которой показан на рис. 2, отображаемая на экране монитора, содержит три вкладки: Synthesis options, HDL options и Xilinx Specific options.
Диалоговая панель, предназначенная для установки параметров процесса синтеза проектируемой системы (вкладка Synthesis options) (Рис. 2)
В этой панели рекомендуется проконтролировать параметры, управляющие оптимизацией процесса синтеза и подключением буферных элементов к внешним цепям проектируемой системы. Параметры оптимизации расположены на вкладке Synthesis options. Параметр Optimization Goal позволяет выбрать критерий оптимизации и может принимать одно из двух значений: Speed и Area. Значение Speed устанавливает стратегию оптимизации, ориентированную на достижение максимального быстродействия проектируемого устройства. При выборе значения Area оптимизация выполняется с целью минимизации используемой области (ресурсов) кристалла. По умолчанию установлено значение Speed. Параметр Optimization Effort определяет уровень производимой оптимизации и имеет два возможных значения: Normal и High. Если задано значение Normal, то используются стандартные алгоритмы оптимизации. При выборе значения High выполняется дополнительная оптимизация с учетом особенностей архитектуры выбранного кристалла ПЛИС, что позволяет достигнуть более высоких результатов, но приводит к увеличению времени вычислений. По умолчанию установлено значение Normal. Параметр Add I/O Buffers разрешает или запрещает автоматическое подключение буферных элементов к цепям модуля исходного описания верхнего уровня проекта, которые предназначены для соединения с выводами кристалла. Для проверки и изменения его значения нужно открыть вкладку Xilinx Specific options диалоговой панели параметров синтеза (рис. 3). По умолчанию установлено разрешающее значение этого параметра.
Вкладка Xilinx Specific options диалоговой панели параметров синтеза проектируемой системы (Рис. 3)
Этап реализации (Implementation) проектов, выполняемых на базе ПЛИС семейств FPGA, включает в себя три фазы: трансляции (Translate), отображения логического описания проекта на физические ресурсы кристалла (MAP), размещения и трассировки (Place and Route). Для контроля параметров соответствующих процедур нужно в окне процессов воспользоваться строкой с названием этапа Implement Design. Диалоговая панель параметров реализации содержит семь вкладок: Translate Properties, MAP Properties, Place and Route Properties, Incremental Design Properties, Simulation Properties, Post-Map Static Timing Report Properties и Post-Place & Route Timing Report Properties (рис. 4).
Диалоговая панель параметров процесса реализации проекта разрабатываемой микропроцессорной системы (вкладка Translate Properties) (Рис. 4)
На вкладке Translate Properties, содержащей параметры процедуры трансляции проекта разрабатываемой микропроцессорной системы, следует убедиться, что для параметра Use LOC Constraints установлено значение «включено». В этом случае процесс трансляции будет выполняться с учетом топологических ограничений, описываемых с помощью выражений LOC = …, которые присутствуют вфайле UCF.
Открыв вкладку MAP Properties, на которой сосредоточены параметры процедуры распределения ресурсов CLB кристалла для реализации проектируемой системы (рис. 5), необходимо с помощью параметра Optimization Strategy (Cover Mode) выбрать стратегию оптимизации для данной фазы. На этой фазе производится назначение функциональных генераторов CLB для реализации соответствующих функций системы. В разворачивающемся списке возможных значений этого параметра представлено четыре элемента: Area, Speed, Balanced, Off. Значение Area, установленное по умолчанию, определяет в качестве критерия оптимизации минимизацию количества используемых таблиц преобразования (LUT) и, следовательно, конфигурируемых логических блоков. При выборе значения Speed целью оптимизации является уменьшение задержек распространения сигналов за счет сокращения количества уровней логики. Значение Balanced позволяет сочетать рассмотренные выше стратегии оптимизации. Использование значения Off запрещает оптимизацию при распределении ресурсов CLB кристалла.
Вкладка MAP Properties диалоговой панели параметров для процесса реализации проекта разрабатываемой микропроцессорной системы (Рис. 5)
Далее следует перейти к вкладке Place and Route Properties (рис. 6), которая объединяет параметры управления процедурами размещения и трассировки проекта аппаратной части микропроцессорной системы. Прежде всего, нужно с помощью параметра Place and Route Effort Level (Overall) указать требуемый уровень эффективности процедур размещения и трассировки проекта в кристалл. Этот параметр позволяет за счет выбора более совершенных алгоритмов размещения и трассировки (соответственно за счет увеличения времени выполнения рассматриваемого этапа) достичь более высоких результатов. И наоборот, выбирая менее сложные алгоритмы, можно сократить время выполнения процесса размещения и трассировки, но получить результаты, далекие от оптимальных. Для сложных проектов снижение времени, необходимого для выполнения размещения и трассировки, может привести к появлению неразведенных цепей и увеличению задержек распространения сигналов. В разворачивающемся списке возможных значений этого параметра представлено три элемента, расположенных в порядке возрастания уровня эффективности результатов размещения и трассировки: Standard, Medium, High. Значение Standard позволяет минимизировать время размещения и трассировки за счет низкого уровня оптимизации этих процессов. При выборе значения High достигаются наилучшие результаты, но требуется максимальное время для выполнения всех процедур. Можно также установить различный уровень эффективности для каждой фазы этого процесса, используя параметры Placer Effort Level (Overrides Overall Level) и Router Effort Level (Overrides Overall Level), которые предназначены для раздельной установки уровня эффективности процедур размещения и трассировки соответственно.
Вкладка Place and Route Properties диалоговой панели параметров размещения и трассировки проекта разрабатываемой микропроцессорной системы (Рис. 6)
Выбирая значение параметра Extra Effort (Highest PAR level only), можно предусмотреть возможность выделения дополнительного времени для выполнения процедур размещения и трассировки, необходимого для удовлетворения различных временных ограничений проекта. Этот параметр используется только в случае, если для Place and Route Effort Level (Overall) задано значение High. По умолчанию установлено значение None, которое запрещает выделение дополнительного времени. При выборе других значений (Normal или Continue on Impossible) допускается увеличение времени выполнения процедур размещения и трассировки.
Значение параметра Place and Route Mode позволяет выбрать режим выполнения процесса размещения и трассировки. Для данного параметра рекомендуется использовать значение Normal Place and Route, установленное по умолчанию. Это значение соответствует нормальному режиму трассировки и размещения, при котором выполняются все процедуры с учетом параметров, указанных разработчиком или установленных по умолчанию. При выборе значения Reentrant Route осуществляется многократное повторение процедур трассировки с целью оптимизации результатов. Но этот режим можно устанавливать только в том случае, если хотя бы один раз полностью пройдена стадия размещения и трассировки.
Для того чтобы средствами размещения и трассировки принимались во внимание временные ограничения проекта, указанные в файле UCF, необходимо выбрать для параметра Use Timing Constraints значение «включено».
Чтобы получить доступ к параметрам процесса генерации конфигурационной последовательности, нужно воспользоваться строкой Generate Programming File в окне процессов (рис. 1). Диалоговая панель параметров процесса генерации конфигурационной последовательности, вид которой показан на рис. 7, содержит пять вкладок: General Options, Configuration Options, Startup Options, Readback Options, Encryption Options.
Диалоговая панель параметров процесса генерации конфигурационной последовательности (вкладка Startup Options) (Рис. 7)
В этой панели нужно открыть вкладку Startup Options, на которой расположены параметры управления фазой активизации логики после конфигурирования кристалла (рис. 7). Значение параметра Start-Up Clock определяет источник сигнала синхронизации, используемого в процессе конфигурирования. Разворачивающийся список содержит три возможных значения: CCLK, User Clock, JTAG Clock. Значение CCLK, установленное по умолчанию, назначает в качестве сигнала синхронизации процесса активизации логики тактовый сигнал CCLK, вырабатываемый внутри кристалла. При выборе значения User Clock тактовым является определяемый разработчиком сигнал, который подключается к выводу CLK символа STARTUP. Значение JTAG Clock следует выбирать при загрузке конфигурационной последовательности в режиме периферийного сканирования через JTAG-порт.
После контроля и установки требуемых значений параметров следует перейти к выполнению основных этапов проектирования. Все перечисленные выше процессы могут быть активизированы поочередно. Для запуска процесса следует дважды щелкнуть левой кнопкой мыши на строке с его названием. Используя средства проектирования серии Xilinx ISE, необходимо принять во внимание, что при активизации какого-либо процесса все предшествующие этапы (процессы) будут выполнены автоматически, если не были успешно завершены до этого. Учитывая данную особенность, рекомендуется сразу запустить процесс генерации конфигурационной последовательности, дважды щелкнув левой кнопкой мыши на строке Generate Programming File в окне процессов (рис. 1). При этом этапы (процессы) синтеза, размещения и трассировки будут выполнены автоматически. Выполнение всех процессов сопровождается информацией в окне консольных сообщений и строке состояния. Вкладка Console окна консольных сообщений является основной (чаще всего используется в работе с проектом) и предназначена для вывода информационных сообщений о запуске и ходе выполнения процедур. На вкладках Errors и Warnings отображаются соответственно сообщения об ошибках и предупреждения, сопровождаемые идентификационными кодами. О характере завершения каждого этапа сигнализирует соответствующая пиктограмма в строке с его названием в окне процессов. Возможные варианты пиктограмм рассмотрены в книге [7]. Более подробные сведения о результатах выполнения процесса содержатся в соответствующем отчете. Для просмотра отчета удобнее всего дважды щелкнуть левой кнопкой мыши на строке с его названием в окне процессов.
При успешном завершении процесса генерации конфигурационной последовательности создается файл с расширением bit, который может быть загружен непосредственно в ПЛИС или использоваться в качестве исходного для генерации файла программирования ПЗУ/ППЗУ. После этого следует перейти к заключительному этапу проектирования — конфигурированию ПЛИС.
Загрузка конфигурационной последовательности разработанной микропроцессорной системы в ПЛИС
Для загрузки конфигурационной последо-
вательности из файла с расширением bit в кристалл FPGA с помощью программы iMPACT можно использовать любой из следующих кабелей:
- JTAG-кабель, подключаемый к параллельному порту (LPT) персонального компьютера (Parallel Download Cable);
- универсальный кабель MultiLinx, подключаемый к последовательному порту (COM) персонального компьютера (MultiLinx Download Cable RS-232);
- универсальный кабель MultiLinx, подключаемый к последовательной шине (Universal Serial Bus, USB) персонального компьютера (MultiLinx Download Cable USB);
- кабель, входящий в состав комплекса MultiPro Desktop Tool.
Наиболее доступным для разработчиков является JTAG-кабель, подключаемый к параллельному порту (LPT) персонального компьютера (Parallel Download Cable). Его можно изготовить самостоятельно, воспользовавшись принципиальными схемами, имеющимися в документации средств проектирования и отладочных модулей. Поэтому далее рассматриваются варианты конфигурирования ПЛИС с применением JTAG-кабеля. Загрузка конфигурационного битового потока может производиться через JTAG-порт кристалла в режиме периферийного сканирования Boundary-Scan (JTAG) или через специальные контакты ПЛИС, предназначенные для конфигурирования, в подчиненном последовательном режиме Slave Serial.
При использовании режима периферийного сканирования перед формированием конфигурационной последовательности необходимо установить для параметра Start-Up Clock значение JTAG Clock. После генерации файла конфигурации следует подключить сигнальные выводы загрузочного кабеля Test Data In(TDI), Test Mode Select (TMS), Test Clock (TCK) и Test Data Out (TDO) к одноименным контактам кристалла, а выводы GND и VCC — к общей шине и цепи питания. После этого следует подать напряжение питания на систему. Такая последовательность обеспечивает возможность автоматического обнаружения и инициализации загрузочного кабеля и цепочки периферийного сканирования кристаллов ПЛИС при активизации программы iMPACT. Если загрузочный кабель подключается после запуска модуля программирования, то в таком случае необходимо выполнить вручную операции установки типа и параметров используемого кабеля и инициализации цепочки периферийного сканирования кристаллов.
Для активизации программы iMPACT следует дважды щелкнуть левой кнопкой мыши на строке Configure Device (iMPACT) в окне процессов Навигатора проекта (рис. 1). Если для программы iMPACT используются значения параметров инициализации, установленные по умолчанию, то после ее активизации автоматически запускается «мастер», который позволяет определить эти параметры в интерактивном режиме. Работа «мастера» начинается с вывода на экран диалоговой панели Configure Devices, в которой необходимо выбрать режим конфигурирования ПЛИС (рис. 8).
Диалоговая панель выбора режима конфигурирования ПЛИС (Рис. 8)
Чтобы выполнить загрузку конфигурационной битовой последовательности в ПЛИС в режиме периферийного сканирования, в этой диалоговой панели следует выбрать строку Boundary-Scan Mode. После установки режима конфигурирования ПЛИС нужно нажать клавишу Далее (Next), чтобы перейти к заключительной диалоговой панели «мастера», вид которой показан на рис. 9.
Диалоговая панель, позволяющая выбрать способ обнаружения загрузочного кабеля и цепочки периферийного сканирования (Рис. 9)
Рекомендуется установить режим автоматического обнаружения подключенного загрузочного кабеля и цепочки периферийного сканирования. Для этого в диалоговой панели Boundary-Scan Mode Selection следует выбрать строку Automatically connect to cable and identify Boundary-Scan Chain. Работа «мастера» завершается нажатием кнопки Готово (Finish) в нижней части диалоговой панели Boundary-Scan Mode Selection.
При выборе ручного способа определения цепочки периферийного сканирования после завершения работы «мастера» выводится стандартная панель открытия файла, в которой нужно указать название cdf-файла. В файле cdf (Chain Description File) сохраняется информация, описывающая состав и конфигурацию цепочки периферийного сканирования.
Если был установлен режим автоматической идентификации типа подключенного кабеля и цепочки периферийного сканирования, то далее программа iMPACT выполняет процедуру обнаружения загрузочного кабеля. Ход этого процесса отображается на экране дисплея с помощью всплывающего окна индикации и сопровождается соответствующей информацией в окне регистрации сообщений. При успешной идентификации присоединенного загрузочного кабеля производится автоматический поиск и инициализация цепочки периферийного сканирования ПЛИС, подключенной к выбранному JTAG-порту. В случае обнаружения микросхем в составе цепочки периферийного сканирования на экран выводится информационная панель, содержащая сообщение об их количестве (рис. 10).
Информационная панель, сообщающая о количестве обнаруженных микросхем в составе цепочки периферийного сканирования (Рис. 10)
После идентификации каждого кристалла выводится стандартная панель выбора файла, в которой необходимо указать название соответствующего модуля, содержащего конфигурационные данные для этой ПЛИС. Информация об идентифицированной цепочке периферийного сканирования ПЛИС отображается в графической форме в рабочей области основного окна и в текстовом виде в окне регистрации сообщений программы iMPACT (рис. 11).
Отображение цепочки периферийного сканирования в окне модуля iMPACT средств проектирования серии Xilinx ISE (Рис. 11)
Под каждым условным графическим образом (УГО) ПЛИС указывается ее тип и название соответствующего файла, содержащего конфигурационную последовательность. Если эта информация отсутствует, или необходимо изменить название файла программирования, то следует выделить требуемый УГО, щелкнув на нем левой кнопкой мыши, после чего воспользоваться командой Assign Configuration File из меню Edit или кнопкой
, расположенной на оперативной панели. Можно также использовать команду Assign New Configuration File из контекстно-зависимого меню, активизируемого щелчком правой кнопки мыши на соответствующем УГО в рабочей области. В результате выполненных действий на экране отображается стандартное окно открытия файла, с помощью которого производится выбор требуемого файла программирования.
Загрузка конфигурационной последовательности в выбранный кристалл осуществляется с помощью команды Program меню Operations или контекстно-зависимого всплывающего меню, после активизации которой на экран выводится диалоговая панель параметров процесса загрузки конфигурации ПЛИС (рис. 12).
Диалоговая панель параметров процесса конфигурирования ПЛИС (Рис. 12)
Значение параметра Verify, расположенного в этой диалоговой панели, определяет использование операции контроля конфигурационных данных по окончании программирования ПЛИС. Выбор значения «включено» устанавливает режим проверки конфигурационной последовательности после ее загрузки в кристалл. По умолчанию установлено значение «выключено», при котором верификация загруженных конфигурационных данных не выполняется.
После установки необходимого значения параметра Verify и нажатия кнопки «ОК» в нижней части диалоговой панели (рис. 12) стартует операция загрузки конфигурационных данных в выбранный кристалл. Состояние процесса конфигурирования ПЛИС отображается с помощью всплывающего окна индикации. Завершение процесса загрузки конфигурационной последовательности сопровождается соответствующей информацией в рабочей области и окне регистрации сообщений программы iMPACT. На этом фактически завершается процесс разработки микропроцессорных систем на основе ядер семейства PicoBlaze.
Учитывая, что в большинстве разрабатываемых встраиваемых систем конфигурационные данные в ПЛИС должны загружаться из ПЗУ/ППЗУ, в следующей публикации цикла будет рассмотрен процесс подготовки соответствующего файла программирования.
Литература
- Зотов В. Создание проекта встраиваемой системы на основе микропроцессорного ядра семейства PicoBlaze // Компоненты и технологии. 2005. № 8–9.
- Зотов В. 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.
- Зотов В. Проектирование цифровых устройств на основе ПЛИС фирмы Xilinx в САПР WebPack ISE. М.: Горячая линия — Телеком. 2003.