Контроллер MICROBLAZE на плис FPGA

В статье кратко освещаются вопросы реа­лизации конфигурируемого контроллера, легко встраиваемого в любой проект на ПЛИС FPGA без использования специальных инструментов или сложных программ.

А. Мельниченко

Встроенные контроллеры нашли широкое применение в приложениях различной слож­ности. С 2000 года компания Xilinx выпускает аппаратные микроконтроллеры PowerPC® 405 и PowerPC 440, а также программный конт­роллер MicroBlaze™. Весомым преимуще­ством контроллера MicroBlaze является воз­можность обработки сложных приложений с использованием, при необходимости, ресурсов операционной системы, а также простых уни­версальных приложений.

Контроллер MicroBlaze может быть реали­зован на любой из выпускаемых компанией Xilinx ПЛИС FPGA. При этом обеспечивается возможность простого перехода от одного се­мейства FPGA к другому, а также высокая гиб­кость контроллера.

Используя соответствующую технологию, можно реализовать простой контроллер Mi­croBlaze, сконфигурировать его и легко встроить в любой проект FPGA. Его парамет­ризация выполняется на языке HDL в процес­се проектирования FPGA без использования специальных инструментов или сложных про­грамм. Необходимы лишь три файла: два файла аппаратной реализации и файл обновления программы. Такой способ позволяет начать разработку встроенных приложений на FPGA, не имея почти никаких знаний и опыта в этой области.

Начиная с версии САПР ISE® 11.1, выпус­кается отдельный комплект для разработки программного обеспечения контроллера Mi­croBlaze (SDK – Software Development Kit), позволяющий создавать и отлаживать прило­жения на языках C или C++ без необходимо­сти использования полного комплекта ПО для встроенных приложений (EDK – Embedded De­velopment Kit). Контроллер предварительно сконфигурирован в одном из двух вариантов: с UART или опцией отладки. Число блоков FPGA, необходимых для реализации микро­контроллера, приведено в таблице. Кроме ука­занных в таблице блоков в FPGA семейства Virtex® задействованы два блока памяти, а в FPGA семейства Spartan® – четыре таких бло­ка. После завершения отладки эту опцию мож­но удалить, уменьшив объем ресурсов FPGA, необходимый для работы контроллера. К при­меру, в контроллере Spartan-6 число конфигурируемых логических блоков можно таким об­разом уменьшить с 410 до 220.

Ресурсы FPGA, необходимые для реализации контроллера MicroBlaze

Конфигурация контроллера ** Spartan-3 Virtex-5 Spartan-6 Virtex-6
LUT FF КЛБ LUT FF КЛБ LUT FF КЛБ LUT FF КЛБ
SMM + UART + отладка 1770 1240 1120 1020 1230 460 1350 1200 470 1350 1200 520
SMM + UART 1510 900 1090 830 880 360 1060 860 320 1050 870 350
SMM + отладка 1390 790 820 820 780 330 990 750 410 990 750 430
SMM 1130 450 630 630 440 220 690 440 220 690 440 250

** SMM (Simple MicroBlaze Microcontroller) – простой контроллер MicroBlaze,

UART – универсальный приемопередатчик, LUT (Look-Up Table) – таблицы преобразования, FF (Flip-Flop) триггеры, КЛБконфигурируемые логические блоки.

КРАТКОЕ ОПИСАНИЕ КОНТРОЛЛЕРА MICROBLAZE

Контроллер MicroBlaze (рис. 1) состоит из 32-разрядного процессора MicroBlaze, ОЗУ или ПЗУ объемом 8 Кбайт, 32-разрядного ин­терфейса пользователя с адресным простран­ством 64 Кбайт, блока поддержки прерыва­ний, а также опционных интерфейсов UART и JTAG.

Рис. 1. Выводы контроллера MicroBlaze

Частота входного тактового сигнала может быть сколь угодно низкой, ее максимальное значение определяется возможностями аппа­ратуры. Входной сигнал сброса синхронизи­рован сигналом тактовой частоты. Поступаю­щий на вход сигнал прерывания обслуживает­ся контроллером с формированием сигнала подтверждения прерывания. Простой пользо­вательский интерфейс синхронизирован сиг­налом тактовой частоты, его параметры могут быть настроены пользователем. Временные диаграммы работы интерфейса показаны на рис. 2. Входы “Byte Enable” используются для выбора формата данных (в байтах или полу­словах).

К контроллеру можно подключать различ­ные интерфейсы пользователя или периферий­ные устройства. Выборка данных производит­ся в течение двух периодов тактовой частоты, следующих за сигналом “Chip Select”.

Некоторые из предварительно сконфигури­рованных версий контроллера имеют (в виде опции) последовательный интерфейс UART 16450. Скорость передачи данных через него задается программно и не зависит от тактовой частоты.

Отладка осуществляется через интерфейс JTAG с применением стандартного кабеля для загрузки приложений в FPGA. При отладке используются внутренние ресурсы FPGA.

 

ПРОЕКТИРОВАНИЕ КОНТРОЛЛЕРА НА FPGA

Проектирование контроллера начинается после запуска стандартной среды проектиро­вания ISE – Intelligent Synthesis Environment, как показано на рис. 3. Проектировать конт­роллер можно на языках Verilog или VHDL на любом уровне иерархии проекта. Для реализа­ции проекта необходимо всего два файла: таб­лица соединений (smm.ngc) и файл, отобра­жающий содержание памяти (smm.bmm). Не нужно осваивать новые инструменты програм­мирования или использовать сложные про­граммы.

Для перехода от одной конфигурации конт­роллера к другой достаточно просто заменить файл netlist на новый и перепрограммировать FPGA. По окончании программирования со­здается файл, указывающий место размеще­ния используемого контроллером блока памя­ти (smm_bd.bmm).

Рис. 2. Временные диаграммы операций записи и считывания данных

Рис. 3. Последовательность проектирования FPGA в среде ISE

РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

В файле описания программы (smm.xml) со­держится вся информация, необходимая для проектирования контроллера. Разработка может начаться независимо от проектирования FPGA.

Как уже упоминалось, начиная с версии ISE 11.1, выпускается отдельный комплект, содержащий все инструменты, драйверы, биб­лиотеки и утилиты, достаточные для разработ­ки программного обеспечения контроллера MicroBlaze. На рис. 4 показан стандартный процесс разработки, начиная с файла обновле­ния программы. Адресное пространство для контроллера включает 8 Кбайт памяти, поль­зовательский интерфейс, а также область ре­гистра UART (если имеется опция UART).

Программа может быть написана на языке C или C++ и сохранена в блоке памяти конт­роллера. Область памяти также используется как ПЗУ для контроллера, так как в нее может быть предварительно загружено приложение для FPGA. После того, как FPGA сконфигури­рована и снят сигнал сброса контроллера, это приложение начнет выполняться. Контроллер станет полностью автономным.

Наличие опции отладки позволяет выпол­нять полную отладку приложения на уровне исходных кодов с обеспечением доступа к па­мяти, регистрам и переменным. С целью облег­чения отладки приложения можно установить контрольные точки для прерывания выполне­ния программы.

Рис. 4. Процесс разработки контроллера с использованием комплекта SDK

ПРИМЕР ПРОЕКТИРОВАНИЯ

В качестве примера рассмотрим проект контроллера ЖКИ, в котором использованы различные особенности контроллера Micro­Blaze. Для реализации функций контроллера ЖКИ хорошо подходят микроконтроллеры с их невысоким быстродействием, простым ин­терфейсом и возможностью хранения большо­го числа кодов символов.

Для выведения информации на символьный ЖКИ используются коды HDL (Hardware De­scription Language) и C. Код HDL управляет ра­ботой аппаратного интерфейса, в то время как программа управляет работой ЖКИ.

Тактовая частота, необходимая для работы ЖКИ, сравнительно невелика, поэтому вре­менной интервал между командами и данными должен быть достаточно большим. Например, интервал между командой очистки экрана и приходом следующей команды или данных должен быть не менее 1.52 мс.

Хотя для создания временного интервала в коде С можно использовать программные цик­лы, точность полученной таким способом за­держки невысока. Лучшим вариантом являет­ся создание в FPGA 32-разрядного счетчика, формирующего сигнал прерывания в контрол­лер в течение заданного программой времени. По этому сигналу контроллер записывает дан­ные, имеющиеся на шине интерфейса пользо­вателя, в ячейку памяти по адресу 0x10 и ожи­дает разрешения продолжить работу.

Проект FPGA состоит из модуля высшего уровня, модуля тактовой частоты для ЖКИ и программируемого таймера. Файл высшего уровня содержит простой контроллер Micro­Blaze с тактовой частотой 66 МГц.

Приложение на языке C размещается в од­ном файле. Оно позволяет прерывать работу контроллера, инициализировать ЖКИ, вво­дить различные задержки, выводить на печать данные двух строк ЖКИ, фиксировать момен­ты нажатия кнопок, выполнять очистку экра­на и выводить на него новую информацию.

На отладочной плате Virtex-6 ML605 про­ект занимает менее 1% ресурсов FPGA. Для ускорения проектирования его можно разбить на части. Компилирование и отладка кода C выполняются на порядок быстрее, чем реали­зация и отладка контроллера с использовани­ем только кода HDL.

НАСТРОЙКА КОНТРОЛЛЕР

Для настройки встроенной системы с конт­роллером MicroBlaze в распоряжении разработчика имеются различные периферийные устройства и опции. Пользователь может ис­пользовать FPGA различной архитектуры, увеличить объем основной памяти, добавить блок для выполнения операций с плавающей запятой или стандартный интерфейс SPI, или I2C.

Все эти возможности обеспечивает ком­плект EDK (Embedded Development Kit). Он со­держит большое число встроенных проектов различной конфигурации, которые можно мо­дифицировать в соответствии с требованиями пользователя. Если, к примеру, необходимо увеличить объем памяти со стандартных 8 до 16 Кбайт, то, открыв проект, следует модифи­цировать область памяти MicroBlaze, после чего генерировать новый файл списка соедине­ний, а также файлы блока памяти и описания программы.

Несмотря на то, что контроллер MicroBlaze не позволяет удовлетворить все требования разработчиков, он ориентирован на тех поль­зователей, которым необходим простой кон­троллер, обеспечивающий эффективное вы­полнение функций управления.

Останні новини

Надтонкі джерела живлення MEAN WELL серії XDR потужністю до 960 Вт
Brands

Надтонкі джерела живлення MEAN WELL серії XDR потужністю до 960 Вт

ПЛК MEAN WELL PLC-DPLC-32MT/ET для промислової автоматизації
Brands

ПЛК MEAN WELL PLC-DPLC-32MT/ET для промислової автоматизації

Двонаправлені перетворювачі MEAN WELL BIC-5K 5 кВт
Brands

Двонаправлені перетворювачі MEAN WELL BIC-5K 5 кВт

Інтелектуальні системи живлення 1–18 кВт на базі AC/DC-перетворювачів MEAN WELL серії RCP
Brands

Інтелектуальні системи живлення 1–18 кВт на базі AC/DC-перетворювачів MEAN WELL серії RCP

VD MAIS стає членом Global Electronics Association
VD MAIS

VD MAIS стає членом Global Electronics Association

Mean Well SHP — промислові джерела живлення великої потужності (10–30 кВт)
Brands

Mean Well SHP — промислові джерела живлення великої потужності (10–30 кВт)