Пример сквозного проектирования встраиваемой восьмиразрядной микропроцессорной системы на базе ядра семейства PicoBlaze, реализуемой на основе ПЛИС фирмы Xilinx. Часть 3

№ 9’2006
PDF версия
После завершения процесса подготовки всех необходимых модулей исходного описания проекта на языке VHDL определяем выводы кристалла, к которым будет выполняться трассировка «внешних» цепей разрабатываемого контроллера. Чтобы указать требуемую привязку интерфейсных цепей контроллера к выводам ПЛИС, сформируем файл временных и топологических ограничений проекта.

Все статьи цикла:

После завершения процесса подготовки всех необходимых модулей исходного описания проекта на языке VHDL определяем выводы кристалла, к которым будет выполняться трассировка «внешних» цепей разрабатываемого контроллера. Чтобы указать требуемую привязку интерфейсных цепей контроллера к выводам ПЛИС, сформируем файл временных и топологических ограничений проекта. Для этого еще раз инициируем процедуру создания нового исходного модуля проекта, воспользовавшись кнопкой на оперативной панели Навигатора проекта или командой New Source из всплывающего меню Project. В открывшейся диалоговой панели параметров нового исходного модуля (рис. 20) для определения типа создаваемого файла выберем строку Implementation Constraints File. Затем в поле редактирования File Name указываем имя файла ограничений, совпадающее с названием проекта sampled_data_controller.

Рис. 20. Вид диалоговой панели исходных данных для создания основы файла временных и топологических ограничений проекта контроллера

После нажатия кнопки Далее (Next) (рис. 20) на экране появляется диалоговая панель, которая содержит список всех исходных модулей проекта контроллера, среди которых нужно выбрать тот, с которым ассоциируется создаваемый файл UCF (рис. 21).

Рис. 21. Диалоговая панель выбора модуля исходного описания, с которым ассоциируется создаваемый файл UCF для проекта контроллера

Формируемый файл временных и топологических ограничений относится к модулю исходного описания верхнего уровня иерархии проекта. Поэтому в предложенном списке выделяем строку с названием файла VHDL-описания верхнего уровня иерархии проекта sampled_data_controller и подтверждаем выбор нажатием кнопки Далее (Next) (рис. 21). Затем в открывшейся информационной панели (рис. 22) подтверждаем указанные ранее исходные данные для генерации основы файла UCF нажатием кнопки Готово (Finish), в результате чего создается пустой файл временных и топологических ограничений проекта контроллера, а рабочая область Навигатора проекта принимает вид, показанный на рис. 23.

Рис. 22. Информационная панель «мастера», отображающая исходные параметры создаваемого модуля временных и топологических ограничений проекта контроллера
Рис. 23. Вид рабочей области Навигатора проекта после создания основы модуля временных и топологических ограничений проекта контроллера

Для внесения данных в файл UCF воспользуемся интегрированным текстовым редактором средств проектирования серии Xilinx ISE [15], дважды щелкнув левой кнопкой мыши на строке Edit Constraints (Text) в окне процессов (рис. 23).

В открывшемся окне редактирования с помощью клавиатуры набираем следующий текст:

Приведенные выражения ограничений устанавливают привязку интерфейсных цепей контроллера к выводам кристалла с учетом архитектуры используемой отладочной платы из инструментального комплекта Spartan-3 Starter Kit [12]. При выполнении указанных ограничений входы параллельного порта in_port1 будут подключены к восьми ползунковым переключателям SW0–SW7, с помощью которых имитируются входные сигналы, поступающие с первого датчика (первого источника). Входы параллельного порта in_port2 будут выведены на контакты разъема A2 отладочной платы, на которые могут быть поданы сигналы данных, поступающих от второго источника. Выходы параллельного порта out_port1 должны подключаться к светодиодным индикаторам LD0–LD7. Выходы параллельного порта out_port2 для наглядности соединяются с отдельными сегментами светодиодных семисегментных индикаторов дисплея DSP1. Выходы параллельных портов out_port3 и out_port4 будут выведены на контакты разъема A2, к которым могут быть подключены внешние устройства. Вход сброса reset в соответствии с указанными выше топологическими ограничениями будет подключаться к кнопке BTN3. Вход тактового сигнала clk должен сопрягаться с выходом кварцевого генератора, установленного на отладочной плате. В начало файла UCF включено выражение, которое устанавливает временное ограничение проекта, соответствующее значению тактовой частоты разрабатываемого контроллера — 50 МГц.

Завершив редактирование файла ограничений, сохраняем его на диске и приступаем к выполнению основных этапов проектирования. Для этого в окне исходных модулей проекта выделяем строку с названием модуля описания верхнего уровня иерархии sampled_data_controller — Structural. При этом окно процессов Навигатора проекта принимает вид, показанный на рис. 24.

Рис. 24. Вид рабочей области Навигатора проекта после создания всех модулей исходного описания проекта контроллера

Перед активизацией всех процессов, соответствующих основным этапам проектирования, устанавливаем необходимые значения их параметров. Для процессов синтеза, размещения и трассировки проекта встраиваемой микропроцессорной системы в кристалле оставляем значения всех параметров, установленные по умолчанию [14, 15]. В параметрах процесса формирования конфигурационной последовательности ПЛИС, соответствующей проекту разработанной системы, изменим значение опции Start-Up Clock. Для этого щелчком правой кнопки мыши на строке Generate Programming File в окне процессов (рис. 24) открываем диалоговую панель параметров процесса генерации конфигурационной последовательности для разработанного контроллера. В данной панели на странице Startup Options (рис. 25) для параметра Start-Up Clock выбираем значение JTAG Clock, так как последующая загрузка конфигурационной последовательности будет выполняться в режиме периферийного сканирования через JTAG-порт.

Рис. 25. Диалоговая панель параметров процесса генерации конфигурационной последовательности разработанного контроллера (страница Startup Options)

Далее запускаем процесс автоматического выполнения всех необходимых этапов проектирования, дважды щелкнув левой кнопкой мыши на строке Generate Programming File в окне процессов Навигатора проекта (рис. 24). Процесс выполнения всех этапов может занять несколько минут в зависимости от производительности используемого компьютера. За ходом выполнения всех процедур можно наблюдать, отслеживая информацию, которая поэтапно отображается в окне консольных сообщений. Если все исходные описания проекта контроллера были введены без ошибок, то весь процесс проектирования должен закончиться успешно (возможно появление только нескольких предупреждений, на которые можно не обращать внимания в данном проекте). После этого можно загрузить сформированную конфигурационную последовательность разработанного контроллера в кристалл ПЛИС и убедиться в его работоспособности.

Загрузка конфигурационных данных проекта разработанного контроллера в кристалл ПЛИС и последующая проверка его функционирования

Для активизации процесса загрузки конфигурационной последовательности разработанного контроллера в кристалл ПЛИС нужно щелкнуть левой кнопкой мыши на строке Configure Device (iMPACT) в окне процессов Навигатора проекта (рис. 24). В результате на экран будет автоматически выведена стартовая диалоговая панель «мастера» определения параметров инициализации программы iMPACT (рис. 26), в которой выбирается режим конфигурирования ПЛИС. Прежде чем продолжить процедуру загрузки конфигурационной последовательности проекта контроллера в ПЛИС, подключим загрузочный кабель к отладочной плате и подадим на нее напряжение питания. Загрузку конфигурационных данных в кристалл будем осуществлять с помощью JTAG-кабеля, подключаемого к параллельному порту (LPT) персонального компьютера (Parallel Download Cable III). Именно этот кабель включен в состав инструментального комплекта Spartan-3 Starter Kit [12].

Рис. 26. Диалоговая панель выбора режима конфигурирования ПЛИС, на основе которой реализуется разработанный контроллер

Далее, используя стартовую диалоговую панель «мастера» инициализации программы iMPACT, выбираем режим периферийного сканирования Boundary-Scan Mode для загрузки сформированной конфигурационной последовательности разработанного контроллера в кристалл. После этого, нажав кнопку Далее (Next), переходим к следующей диалоговой панели «мастера», вид которой показан на рис. 27. С помощью данной панели устанавливаем режим автоматического обнаружения подключенного загрузочного кабеля и цепочки периферийного сканирования, зафиксировав в нажатом состоянии кнопку Automatically connect to cable and identify Boundary-Scan Chain.

Рис. 27. Диалоговая панель, позволяющая выбрать способ обнаружения загрузочного кабеля и цепочки периферийного сканирования

После нажатия кнопки Готово (Finish) в нижней части панели, представленной на рис. 27, на экран выводится информационная панель (рис. 28), которая завершает работу «мастера» определения параметров инициализации программы iMPACT. В этой панели отображается сообщение об обнаружении двух микросхем в составе цепочки периферийного сканирования, подключенной к загрузочному кабелю. Данное сообщение соответствует конфигурации используемой отладочной платы.

Рис. 28. Информационная панель, сообщающая о количестве обнаруженных микросхем в составе цепочки периферийного сканирования

Закрываем информационную панель нажатием кнопки ОК (рис. 28), после чего автоматически открывается окно программы iMPACT, вид которого показан на рис. 29.

Рис. 29. Вид окна программы iMPACT, отображающего цепочку периферийного сканирования отладочной платы из инструментального комплекта Spartan-3 Starter Kit

В составе цепочки периферийного сканирования, обнаруженной на отладочной плате из инструментального комплекта Spartan-3 Starter Kit, должны присутствовать ПЛИС XC3S200 и конфигурационное ППЗУ XCF02S. Для ПЛИС, представленной в цепочке периферийного сканирования, указываем название файла, содержащего сформированную конфигурационную последовательность проекта контроллера sampled_data_controller.bit. Затем, выделив условный графический образ ПЛИС, с помощью команды Program меню Operations или контекстно-зависимого всплывающего меню загружаем конфигурационную последовательность проекта контроллера в кристалл. При выполнении этой команды на экран предварительно выводится диалоговая панель параметров процесса загрузки конфигурации ПЛИС (рис. 30), в которой необходимо выключить режим проверки загруженной конфигурационной последовательности. Для этого устанавливаем для параметра Verify значение «выключено» (соответствующий индикатор в диалоговой панели переводим в сброшенное состояние).

Рис. 30. Диалоговая панель параметров процесса загрузки в ПЛИС конфигурационной последовательности разработанного контроллера

После этого нажатием кнопки ОК в нижней части диалоговой панели (рис. 30) запускаем операцию загрузки конфигурационных данных разработанного контроллера в выбранный кристалл. Ход выполнения процесса конфигурирования ПЛИС контролируем с помощью всплывающего окна индикации и по информации, отображаемой в рабочей области и окне регистрации сообщений программы iMPACT. При успешном завершении этой процедуры можно визуально проверить функционирование разработанного контроллера. Для этого, изменяя положение ползунковых переключателей, имитируем различные комбинации значений данных, поступающих в первый входной порт, и, наблюдая за состоянием светодиодных индикаторов, убеждаемся в нормальной работоспособности контроллера. Затем переходим к завершающим этапам процесса проектирования контроллера: генерации файла «прошивки» конфигурационного ППЗУ и его последующего программирования.

Генерация файла программирования конфигурационного ППЗУ для разработанного контроллера

Прежде чем приступить к процессу формирования файла программирования конфигурационного ППЗУ для разработанного контроллера повторим процедуру генерации конфигурационной последовательности ПЛИС, установив для параметра Start-Up Clock значение CCLK (рис. 25). Для преобразования сформированной конфигурационной последовательности контроллера в файл программирования ППЗУ вновь воспользуемся программой iMPACT, выбрав режим генерации файлов «прошивки» ППЗУ в стандартных промышленных форматах. Чтобы активизировать программный модуль iMPACT в этом режиме, дважды щелкнем левой кнопкой мыши на строке Generate PROM, ACE или JTAG File, расположенной в окне процессов Навигатора проекта. В результате этого автоматически запускается соответствующий «мастер» инициализации программы iMPACT, работа которого начинается с вывода на экран диалоговой панели выбора типа формируемого файла программирования, показанной на рис. 31.

Рис. 31. Диалоговая панель выбора типа файла программирования конфигурационного ППЗУ для разработанного контроллера

Для генерации файла «прошивки» конфигурационного ППЗУ, зафиксируем в нажатом состоянии кнопку PROM file, после чего, воспользовавшись клавишей Далее (Next), переходим к следующей диалоговой панели «мастера», вид которой изображен на рис. 32.

Рис. 32. Диалоговая панель установки параметров файла программирования конфигурационного ППЗУ для разработанного контроллера

С помощью данной панели выбираем вид используемого элемента ППЗУ, формат и параметры создаваемого файла программирования. В качестве конфигурационной памяти используем перепрограммируемое в системе последовательное ППЗУ фирмы Xilinx, поэтому фиксируем в нажатом состоянии кнопку Xilinx PROM (рис. 32). Для формируемого файла «прошивки» выбираем формат MCS, переключив в нажатое состояние одноименную кнопку в группе PROM File Format. В качестве названия создаваемого файла программирования в поле редактирования PROM File Name с помощью клавиатуры указываем идентификатор prom. Чтобы генерируемый файл «прошивки» был записан в рабочий каталог проекта контроллера, в поле редактирования значения параметра Location указываем полное название соответствующей папки C:Projectsampled_data_controller, используя стандартную панель выбора диска и раздела, которая открывается при нажатии кнопки Browse (рис. 32). Завершив процесс установки параметров файла программирования нажатием кнопки Далее (Next), переходим к очередной диалоговой панели «мастера», в которой выбираем серию и тип используемого ППЗУ (рис. 33).

Рис. 33. Диалоговая панель выбора серии и типа используемого конфигурационного ППЗУ для разработанного контроллера

Для определения серии конфигурационного ППЗУ воспользуемся кнопкой активизации выпадающего списка, расположенной в правой части поля выбора Select a PROM. В появившемся списке выбираем строку с условным обозначением xcf, так как в составе инструментального отладочного модуля Xilinx Spartan-3 Starter Board в качестве ППЗУ для хранения конфигурационных данных ПЛИС используется микросхема FLASH-PROM серии Platform Flash. После этого активизируем выпадающий список второго поля выбора, в котором выделяем строку, содержащую условное обозначение микросхемы ППЗУ, установленной на плате отладочного модуля, xcf02s. Затем, чтобы использовать выбранный элемент конфигурационной памяти, нажимаем кнопку Add и завершаем процедуру выбора нажатием кнопки Далее (Next) (рис. 33), после чего установленные значения всех параметров процесса генерации файла программирования будут отображены на появившейся информационной панели, показанной на рис. 34.

Рис. 34. Информационная панель, отображающая значения параметров, используемых при генерации файла программирования конфигурационного ППЗУ для разработанного контроллера

В этой панели проверяем соответствие указанных значений параметров процесса формирования файла «прошивки» конфигурационного ППЗУ и подтверждаем их нажатием кнопки Далее (Next). В результате этого на экране должна появиться следующая диалоговая панель «мастера», с помощью которой определим идентификатор файла конфигурационной последовательности, используемого в качестве исходного при генерации файла программирования (рис. 35).

Рис. 35. Диалоговая панель выбора файла конфигурационной последовательности, используемого в качестве исходного для генерации файла «прошивки» ППЗУ

Нажав кнопку Add File, расположенную в этой панели, открываем стандартную диалоговую панель выбора файла, в которой вначале указываем рабочий каталог проекта, а затем в качестве исходного выбираем файл sampled_data_controller.bit. Далее в ответ на запрос о включении еще одной конфигурационной последовательности в загружаемый поток данных (Data Stream) (рис. 36) нажимаем кнопку No, после чего переходим к заключительной панели «мастера», представленной на рис. 37.

Рис. 36. Панель запроса о включении еще одной конфигурационной последовательности в загружаемый поток данных
Рис. 37. Итоговая панель «мастера» формирования файла программирования конфигурационного ППЗУ для разработанного контроллера

Нажатием кнопки Готово (Finish) в этой диалоговой панели инициируем процесс автоматического формирования файла программирования конфигурационного ППЗУ. Этот процесс стартует сразу же после соответствующего подтверждения (нажатия кнопки Yes) в диалоговой панели запроса (рис. 38).

Рис. 38. Диалоговая панель, содержащая запрос подтверждения немедленного запуска генерации файла программирования конфигурационного ППЗУ для разработанного контроллера

Ход выполнения процесса генерации файла программирования контролируем по информации, появляющейся в окне регистрации сообщений программы iMPACT. Об успешном завершении формирования файла «прошивки» уведомляет соответствующее сообщение в рабочей области основного окна программы iMPACT и условный графический образ (УГО) ППЗУ, рядом с которым указывается его название и процент заполнения. Структура сформированного файла программирования конфигурационного ППЗУ также отображается в графической форме в виде условного изображения ПЛИС, реализующей проект контроллера (рис. 39). При расположении курсора мыши на УГО появляется всплывающая панель, в которой представлена информация о соответствующем элементе в рабочей области основного окна программы iMPACT.

Рис. 39. Отображение структуры сформированного файла «прошивки» ППЗУ контроллера в рабочей области окна модуля iMPACT

Сформированный файл «прошивки» prom.mcs используем далее непосредственно для программирования конфигурационного ППЗУ, выполняемого с помощью модуля iMPACT.

Программирование конфигурационного ППЗУ разработанного контроллера

Перед активизацией программы iMPACT убеждаемся в том, что загрузочный кабель подключен к соответствующему порту ПК и контактам JTAG-разъема инструментального модуля, после чего подаем напряжение питания на плату, используемую для аппаратной отладки разработанного контроллера. Для запуска процесса программирования конфигурационного ППЗУ выполняем те же действия, что и при конфигурировании ПЛИС в режиме периферийного сканирования. После успешного обнаружения микросхемы ППЗУ xcf02s в цепочке периферийного сканирования, о чем свидетельствует появление ее условного графического образа в рабочей области окна программы iMPACT, указываем название используемого файла «прошивки» с помощью стандартного диалогового окна открытия файла. Для этого можно также использовать команду Assign Configuration File из всплывающего меню Edit или кнопку , расположенную на оперативной панели управления программы iMPACT, после выделения в рабочей области УГО конфигурационного ППЗУ.

Далее инициируем процесс программирования выбранной микросхемы, выполнив команду Program из всплывающего меню Operations или контекстно-зависимого всплывающего меню. В появившейся после этого диалоговой панели (рис. 40) устанавливаем следующие параметры этого процесса.

Рис. 40. Диалоговая панель параметров процесса программирования выбранного элемента конфигурационного ППЗУ для разработанного контроллера

Спомощью параметра Erase Before Programming включаем режим предварительного «стирания» конфигурационных данных, находящихся в ППЗУ перед его программированием. Для параметра Verify, определяющего необходимость проверки записанной информации, оставляем значение «выключено», установленное по умолчанию. Так как в рассматриваемом примере нет необходимости установки защиты загружаемых конфигурационных данных от несанкционированного чтения (копирования) и не планируется применение оригинального пользовательского идентификационного кода USERCODE, то для параметров Read Protect и PROM Usercode (8 HEX Chars) сохраняем значения «выключено», принятые по умолчанию. После этого подтверждаем установленные значения параметров нажатием кнопки ОК в нижней части диалоговой панели (рис. 40) и, тем самым, запускаем процесс программирования выбранного элемента конфигурационного ППЗУ. Длительность этого процесса обычно составляет несколько десятков секунд, в течение которых на экране отображается всплывающее окно индикации. Если все необходимые операции были выполнены в точном соответствии с вышесказанным, то процесс программирования должен завершиться успешно, о чем сигнализируют соответствующие уведомления в рабочей области и окне регистрации сообщений программы iMPACT.

Для проверки функционирования разработанного контроллера после загрузки конфигурационной последовательности в ПЛИС из ППЗУ можно воспользоваться кнопкой PROG, расположенной на отладочной плате Xilinx Spartan-3 Starter Board, или выключить и вновь включить напряжение питания этой платы. После окончания загрузки конфигурационных данных, изменяя положение ползунковых переключателей, модифицируем значения данных на входах первого порта ввода/вывода и визуально, по состоянию светодиодных индикаторов, оцениваем выполнение микропрограммы контроллера. Если последовательность операций, рассмотренных в последних двух разделах, была выполнена правильно, то разработанный контроллер должен функционировать точно в соответствии с заложенной микропрограммой.

На этом завершается процесс сквозного проектирования контроллера, выполняемого на основе восьмиразрядного ядра семейства PicoBlaze. В заключение следует обратить внимание на то, что средства проектирования серии Xilinx ISE и интегрированная среда разработки и отладки программного обеспечения встраиваемых восьмиразрядных микропроцессорных систем pBlaze IDE регулярно обновляются. При использовании новых версий данных инструментов некоторые операции в процессе проектирования могут выполняться с несущественными отличиями, по сравнению с тем, как они были представлены в [1, 8–15].

Литература
  1. Зотов В. Проектирование встраиваемых микропроцессорных систем на основе ПЛИС фирмы Xilinx. М.: Горячая линия — Телеком. 2006.
  2. Зотов В. PicoBlaze — семейство восьмиразрядных микропроцессорных ядер, реализуемых на основе ПЛИС фирмы Xilinx // Компоненты и технологии. 2003. № 4.
  3. Зотов В. Система команд микропроцессорного ядра PicoBlaze, реализуемого на основе ПЛИС семейств Spartan-II, Spartan-IIE, Virtex, Virtex-E // Компоненты и технологии. 2003. № 5.
  4. Зотов В. Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейства Virtex-II // Компоненты и технологии. 2003. № 6.
  5. Зотов В. Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейства CoolRunner-II // Компоненты и технологии. 2003. № 7.
  6. Зотов В. Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейств Spartan-3, Virtex-II и Virtex-IIPRO // Компоненты и технологии. 2005. № 5–6.
  7. Зотов В. Разработка программ на языке ассемблера для семейства микропроцессорных ядер PicoBlaze // Компоненты и технологии. 2003. № 8.
  8. Зотов В. Программирование конфигурационной памяти встраиваемой системы, реализуемой на основе микропроцессорного ядра семейства PicoBlaze в ПЛИС фирмы Xilinx. // Компоненты и технологии. 2006. № 2.
  9. Зотов В. pBlaze IDE — интегрированная среда разработки и отладки программного обеспечения встраиваемых восьмиразрядных микропроцессорных систем, реализуемых на основе ПЛИС фирмы Xilinx // Компоненты и технологии. 2006. № 3–4.
  10. Зотов В. Директивы и сообщения об ошибках интегрированной среды разработки и отладки программного обеспечения встраиваемых восьмиразрядных микропроцессорных систем, реализуемых на основе ПЛИС фирмы Xilinx, pBlaze IDE // Компоненты и технологии. 2006. № 5.
  11. Зотов В. Разработка и отладка программного обеспечения встраиваемых восьмиразрядных микропроцессорных систем, реализуемых на основе ПЛИС фирмы Xilinx, в среде pBlaze IDE // Компоненты и технологии. 2006. № 6.
  12. Зотов В. Инструментальный комплект Spartan-3 Starter Kit для практического освоения методов проектирования встраиваемых микропроцессорных систем на основе ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2005. № 7.
  13. Зотов В. Создание проекта встраиваемой системы на основе микропроцессорного ядра семейства PicoBlaze // Компоненты и технологии. 2005. № 8–9.
  14. Зотов В. Реализация проекта встраиваемой системы на основе микропроцессорного ядра семейства PicoBlaze // Компоненты и технологии. 2006. № 1.
  15. Зотов В. Проектирование цифровых устройств на основе ПЛИС фирмы Xilinx в САПР WebPack ISE. М.: Горячая линия — Телеком. 2003.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *