Подписка на новости

Опрос

Нужны ли комментарии к статьям? Комментировали бы вы?

Реклама

 

2005 №4

Разработка встраиваемых микропроцессорных систем на основе ядра MicroBlaze, реализуемых в ПЛИС семейств FPGA фирмы Xilinx, с помощью «мастера» Base System Builder Wizard

Зотов Валерий


Открывшаяся очередная диалоговая панель мастера Base System Builder Wizard используется для управления процессом создания файла директив компоновщика linker script и тестовой прикладной программы (рис. 12).

Диалоговая панель управления процессом создания файла директив для компоновщика linker script и тестовой прикладной программы
Рис. 12. Диалоговая панель управления процессом создания файла директив для компоновщика linker script и тестовой прикладной программы

Для того чтобы мастер Base System Builder Wizard в последствии автоматически сформировал файл директив компоновщика linker script и исходный текст тестовой прикладной программы, необходимо перевести во включенное состояние (отмеченное маркером) индикатор Generate Sample Application and Linker Script. В этой же диалоговой панели нужно указать идентификаторы компонентов периферийных устройств, которые будут использоваться в качестве стандартных устройств ввода STDIN и вывода STDOUT.

Поле выбора Standard Input позволяет определить стандартное устройство ввода. Выпадающий список, открываемый с помощью кнопки, расположенной в правой части этого поля выбора, содержит идентификаторы доступных периферийных устройств, которые могут быть задействованы в качестве стандартного устройства ввода. Поле выбора Standard Output предназначено для определения идентификатора компонента периферийного устройства, которое будет использоваться в качестве стандартного устройства вывода. Состояние указанных полей выбора, представленное на рис. 12, соответствует случаю, когда в роли стандартного устройства ввода и вывода выступает последовательный асинхронный приемопередатчик интерфейса RS232.

В процессе автоматической генерации файла директив для компоновщика linker script используется информация о выбранных устройствах памяти микропроцессорной системы, которые предназначены для хранения инструкций, данных и организации стека соответственно. Эта исходная информация определяется с помощью соответствующих полей выбора, которые расположены в нижней части диалоговой панели управления процессом создания файла директив linker script и тестовой прикладной программы (рис. 12). В поле выбора Instructions указывается идентификатор устройства памяти, используемого для хранения команд программы. Поле выбора Data позволяет определить идентификатор устройства памяти, которое отводится под память данных. С помощью поля выбора Stack/Heap осуществляется назначение устройства памяти для организации стека. Если в составе проектируемой микропроцессорной системы не используются внешние (по отношению к ПЛИС) запоминающие устройства, то для хранения инструкций, данных и организации стека может использоваться только память, которая реализуется на базе ресурсов блочной памяти ПЛИС Block SelectRAM.

Процедура определения всех параметров, необходимых для формирования файла директив компоновщика linker script и исходного текста прикладной тестовой программы, завершается нажатием клавиши Next, находящейся в нижней части диалоговой панели (рис. 12). После закрытия этой панели на экран выводится следующая диалоговая панель мастера Base System Builder Wizard (рис. 13).

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

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

В верхней части диалоговой панели, представленной на рис. 13, находится встроенное окно, в котором отображаются следующие сведения о конфигурации проектируемой системы:

  • тип используемого микропроцессорного ядра;
  • выбранное значение системной тактовой частоты;
  • информация об используемых инструментах отладки программного обеспечения;
  • объем используемой блочной памяти ПЛИС Block SelectRAM.

Информация об адресном пространстве, выделяемом автоматически мастером Base System Builder Wizard для периферийных устройств, которые входят в состав разрабатываемой системы, отображается в соответствующих встроенных окнах диалоговой панели (рис. 13).

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

Все таблицы, представленные во встроенных окнах этой диалоговой панели, имеют аналогичную структуру. Верхняя строка каждой таблицы содержит сведения о названии соответствующей шины и ее типе. В ячейках, образующих первую колонку таблицы «Core Name», указываются названия типов IP-компонентов, входящих в состав микропроцессорной системы и подключенных к соответствующей шине. В ячейках, составляющих вторую колонку таблицы «Instance Name», отображаются идентификаторы соответствующих экземпляров IP-компонентов. Ячейки, входящие в состав колонки с названием «Base Addr», содержат значения базового адреса выделяемого адресного пространства для соответствующих экземпляров компонентов. В ячейках, которые образуют колонку с названием «High Addr», представлены значения, определяющие верхнюю границу адресного пространства компонентов.

Если какие-либо из значений адресов, установленных автоматически в таблицах, не удовлетворяют требованиям конфигурации адресного пространства разрабатываемой системы, то их следует изменить после завершения работы мастера Base System Builder Wizard. Процесс редактирования может выполняться как в интерактивном, так и в текстовом режиме. Для изменения значений адресов в интерактивном режиме нужно открыть страницу «Peripherals» панели диалога создания и редактирования спецификации аппаратной платформы, воспользовавшись командой Add/Edit Cores из меню Project управляющей оболочки Xilinx Platform Studio. Можно также воспользоваться аналогичной командой из контекстно-зависимого меню, отображаемого на экране при щелчке правой кнопкой мыши на строке MHS File, которая находится на странице System встроенного окна проекта разрабатываемой системы, в разделе Project Files [6].

Запуск процесса автоматической генерации исходных файлов описания проектируемой микропроцессорной системы осуществляется с помощью кнопки Generate, которая расположена в нижней части диалоговой панели (рис. 13). После успешного завершения всех процедур формирования исходных файлов для проекта разрабатываемой системы на экране появляется финишная диалоговая панель мастера (рис. 14).

Диалоговая панель завершения работы мастера Base System Builder Wizard
Рис. 14. Диалоговая панель завершения работы мастера Base System Builder Wizard

В верхней части этой диалоговой панели содержится сообщение о завершении автоматического создания исходных модулей проекта и результатах работы мастера. В центральной части диалоговой панели находится встроенное окно, в котором отображается список всех сформированных файлов. Идентификаторы сгенерированных файлов включают в себя полный путь доступа к ним. Мастер автоматически создает следующие исходные модули проекта разрабатываемой микропроцессорной системы:

  • файл спецификации аппаратной платформы системы Microprocessor Hardware Specification (MHS);
  • файл спецификации программных средств Microprocessor Software Specification (MSS);
  • файл временных и топологических ограничений проекта аппаратной платформы (только для инструментальных модулей, которые поддерживаются средствами разработки Xilinx Embedded System Tools);
  • файл директив linker scripts, который описывает порядок размещения секций в исполняемом файле прикладной программы;
  • файл, содержащий исходный текст тестовой прикладной программы;
  • командный файл download.cmd, предназначенный для управления процессом загрузки конфигурационной последовательности проекта в ПЛИС непосредственно из оболочки Xilinx Platform Studio (XPS).

Под встроенным окном расположен индикатор состояния Save Settings File, который используется для управления сохранением всех значений параметров, установленных в текущем сеансе работы с мастером Base System Builder Wizard. Если этот индикатор находится в состоянии «включено», то все выполненные настройки будут сохранены в файле с расширением bsb.

Название этого файла совпадает с идентификатором проекта разрабатываемой микропроцессорной системы. Данный файл может использоваться для создания проекта новой системы, конфигурация которой незначительно отличается от конфигурации уже разработанной. Если все указанные выше файлы сформированы успешно, то для завершения работы мастера следует нажать кнопку Готово, которая находится в нижней части диалоговой панели (рис. 14). В противном случае для внесения каких-либо изменений можно вернуться к предыдущим диалоговым панелям, воспользовавшись кнопкой Назад. После закрытия финишной панели диалога мастера страница System встроенного окна проекта управляющей оболочки Xilinx Platform Studio приобретает вид, показанный на рис. 15.

Вид страницы System встроенного окна проекта управляющей оболочки Xilinx Platform Studio после успешного завершения работы мастера Base System Builder Wizard
Рис. 15. Вид страницы System встроенного окна проекта управляющей оболочки Xilinx Platform Studio после успешного завершения работы мастера Base System Builder Wizard

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

Спецификация аппаратной платформы встраиваемой микропроцессорной системы, подготовленная на основании данных, которые были указанны в интерактивном режиме с помощью диалоговых панелей, показанных на рис. 5–10, выглядит следующим образом:

##############################################################
#
# Created by Base System Builder Wizard for Xilinx EDK 6.3 Build
EDK_Gmm.11.2
#
# Mon Apr 11 16:39:51 2005
#
# Target Board: Xilinx Spartan-3 Starter Board Rev E
# Family: spartan3
# Device: XC3S200
# Package: FT256
# Speed Grade: -4
#
# Processor: Microblaze
# System clock frequency: 50.000000 MHz
# Debug interface: No Debug
# On Chip Memory : 8 KB
#
##############################################################
PARAMETER VERSION = 2.1.0
PORT fpga_0_RS232_RX_pin = fpga_0_RS232_RX, DIR = INPUT
PORT fpga_0_RS232_TX_pin = fpga_0_RS232_TX, DIR = OUTPUT
PORT fpga_0_LEDs_8Bit_GPIO_d_out_pin = fpga_0_LEDs_8Bit
_GPIO_d_out, DIR = OUTPUT, VEC = [0:7]
PORT fpga_0_LED_7SEGMENT_GPIO_d_out_pin = fpga_0_LED
_7SEGMENT_GPIO_d_out, DIR = OUTPUT, VEC = [0:11]
PORT fpga_0_DIP_Switches_8Bit_GPIO_in_pin = fpga_0_DIP
_Switches_8Bit_GPIO_in, DIR = INPUT, VEC = [0:7]
PORT sys_clk_pin = sys_clk_s, DIR = INPUT, SIGIS = CLK
PORT sys_rst_pin = sys_rst_s, DIR = INPUT
BEGIN microblaze
PARAMETER INSTANCE = microblaze_0
PARAMETER HW_VER = 3.00.a
BUS_INTERFACE DOPB = mb_opb
BUS_INTERFACE IOPB = mb_opb
BUS_INTERFACE DLMB = dlmb
BUS_INTERFACE ILMB = ilmb
PORT CLK = sys_clk_s
END

BEGIN lmb_v10
PARAMETER INSTANCE = ilmb
PARAMETER HW_VER = 1.00.a
PARAMETER C_EXT_RESET_HIGH = 1
PORT SYS_Rst = sys_rst_s
PORT LMB_Clk = sys_clk_s
END

BEGIN lmb_v10
PARAMETER INSTANCE = dlmb
PARAMETER HW_VER = 1.00.a
PARAMETER C_EXT_RESET_HIGH = 1
PORT SYS_Rst = sys_rst_s
PORT LMB_Clk = sys_clk_s
END

BEGIN lmb_bram_if_cntlr
PARAMETER INSTANCE = dlmb_cntlr
PARAMETER HW_VER = 1.00.b
PARAMETER C_BASEADDR = 0x00000000
PARAMETER C_HIGHADDR = 0x00001fff
BUS_INTERFACE SLMB = dlmb
BUS_INTERFACE BRAM_PORT = dlmb_port
END

BEGIN lmb_bram_if_cntlr
PARAMETER INSTANCE = ilmb_cntlr
PARAMETER HW_VER = 1.00.b
PARAMETER C_BASEADDR = 0x00000000
PARAMETER C_HIGHADDR = 0x00001fff
BUS_INTERFACE SLMB = ilmb
BUS_INTERFACE BRAM_PORT = ilmb_port
END

BEGIN bram_block
PARAMETER INSTANCE = lmb_bram
PARAMETER HW_VER = 1.00.a
BUS_INTERFACE PORTA = ilmb_port
BUS_INTERFACE PORTB = dlmb_port
END

BEGIN opb_v20
PARAMETER INSTANCE = mb_opb
PARAMETER HW_VER = 1.10.b
PARAMETER C_EXT_RESET_HIGH = 1
PORT SYS_Rst = sys_rst_s
PORT OPB_Clk = sys_clk_s
END

BEGIN opb_uartlite
PARAMETER INSTANCE = RS232
PARAMETER HW_VER = 1.00.b
PARAMETER C_BAUDRATE = 9600
PARAMETER C_DATA_BITS = 8
PARAMETER C_ODD_PARITY = 0
PARAMETER C_USE_PARITY = 0
PARAMETER C_CLK_FREQ = 50000000
PARAMETER C_BASEADDR = 0x80040000
PARAMETER C_HIGHADDR = 0x8004ffff
BUS_INTERFACE SOPB = mb_opb
PORT OPB_Clk = sys_clk_s
PORT RX = fpga_0_RS232_RX
PORT TX = fpga_0_RS232_TX
END

BEGIN opb_gpio
PARAMETER INSTANCE = LEDs_8Bit
PARAMETER HW_VER = 3.01.a
PARAMETER C_GPIO_WIDTH = 8
PARAMETER C_IS_DUAL = 0
PARAMETER C_IS_BIDIR = 0
PARAMETER C_ALL_INPUTS = 0
PARAMETER C_BASEADDR = 0x80050000
PARAMETER C_HIGHADDR = 0x8005ffff
BUS_INTERFACE SOPB = mb_opb
PORT OPB_Clk = sys_clk_s
PORT GPIO_d_out = fpga_0_LEDs_8Bit_GPIO_d_out
END

BEGIN opb_gpio
PARAMETER INSTANCE = LED_7SEGMENT
PARAMETER HW_VER = 3.01.a
PARAMETER C_GPIO_WIDTH = 12
PARAMETER C_IS_DUAL = 0
PARAMETER C_IS_BIDIR = 0
PARAMETER C_ALL_INPUTS = 0
PARAMETER C_BASEADDR = 0x80060000
PARAMETER C_HIGHADDR = 0x8006ffff
BUS_INTERFACE SOPB = mb_opb
PORT OPB_Clk = sys_clk_s
PORT GPIO_d_out = fpga_0_LED_7SEGMENT_GPIO_d_out
END

BEGIN opb_gpio
PARAMETER INSTANCE = DIP_Switches_8Bit
PARAMETER HW_VER = 3.01.a
PARAMETER C_GPIO_WIDTH = 8
PARAMETER C_IS_DUAL = 0
PARAMETER C_IS_BIDIR = 0
PARAMETER C_ALL_INPUTS = 1
PARAMETER C_BASEADDR = 0x80070000
PARAMETER C_HIGHADDR = 0x8007ffff
BUS_INTERFACE SOPB = mb_opb
PORT OPB_Clk = sys_clk_s
PORT GPIO_in = fpga_0_DIP_Switches_8Bit_GPIO_in
END

Файл спецификации программных средств для проектируемой системы, сформированный мастером Base System Builder Wizard в соответствии с теми значениями параметров, которые были установлены в диалоговых панелях, представленных на рис. 5–10, имеет следующий вид:

PARAMETER VERSION = 2.2.0
BEGIN OS
PARAMETER OS_NAME = standalone
PARAMETER OS_VER = 1.00.a
PARAMETER PROC_INSTANCE = microblaze_0
PARAMETER STDIN = RS232
PARAMETER STDOUT = RS232
END

BEGIN PROCESSOR
PARAMETER DRIVER_NAME = cpu
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = microblaze_0
PARAMETER COMPILER = mb-gcc
PARAMETER ARCHIVER = mb-ar
END

BEGIN DRIVER
PARAMETER DRIVER_NAME = bram
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = dlmb_cntlr
END

BEGIN DRIVER
PARAMETER DRIVER_NAME = bram
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = ilmb_cntlr
END

BEGIN DRIVER
PARAMETER DRIVER_NAME = opbarb
PARAMETER DRIVER_VER = 1.02.a
PARAMETER HW_INSTANCE = mb_opb
END

BEGIN DRIVER
PARAMETER DRIVER_NAME = uartlite
PARAMETER DRIVER_VER = 1.00.b
PARAMETER HW_INSTANCE = RS232
END

BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
PARAMETER DRIVER_VER = 2.00.a
PARAMETER HW_INSTANCE = LEDs_8Bit
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
PARAMETER DRIVER_VER = 2.00.a
PARAMETER HW_INSTANCE = LED_7SEGMENT
END

BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
PARAMETER DRIVER_VER = 2.00.a
PARAMETER HW_INSTANCE = DIP_Switches_8Bit
END

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

##############################################################
## This system.ucf file is generated by Base System Builder based on the
## settings in the selected Xilinx Board Definition file. Please add other
## user constraints to this file based on customer design specifications.
##############################################################
Net sys_clk_pin LOC=T9;
Net sys_rst_pin LOC=l14;
## System level constraints
Net sys_clk_pin PERIOD = 20000 ps;
Net sys_rst_pin TIG;
## FPGA pin constraints
Net fpga_0_RS232_RX_pin LOC=t13;
Net fpga_0_RS232_TX_pin LOC=r13;
Net fpga_0_LEDs_8Bit_GPIO_d_out_pin<0> LOC=k12;
Net fpga_0_LEDs_8Bit_GPIO_d_out_pin<1> LOC=p14;
Net fpga_0_LEDs_8Bit_GPIO_d_out_pin<2> LOC=l12;
Net fpga_0_LEDs_8Bit_GPIO_d_out_pin<3> LOC=n14;
Net fpga_0_LEDs_8Bit_GPIO_d_out_pin<4> LOC=p13;
Net fpga_0_LEDs_8Bit_GPIO_d_out_pin<5> LOC=n12;
Net fpga_0_LEDs_8Bit_GPIO_d_out_pin<6> LOC=p12;
Net fpga_0_LEDs_8Bit_GPIO_d_out_pin<7> LOC=p11;
Net fpga_0_LED_7SEGMENT_GPIO_d_out_pin<0> LOC=e14;
Net fpga_0_LED_7SEGMENT_GPIO_d_out_pin<1> LOC=g13;
Net fpga_0_LED_7SEGMENT_GPIO_d_out_pin<2> LOC=n15;
Net fpga_0_LED_7SEGMENT_GPIO_d_out_pin<3> LOC=p15;
Net fpga_0_LED_7SEGMENT_GPIO_d_out_pin<4> LOC=r16;
Net fpga_0_LED_7SEGMENT_GPIO_d_out_pin<5> LOC=f13;
Net fpga_0_LED_7SEGMENT_GPIO_d_out_pin<6> LOC=n16;
Net fpga_0_LED_7SEGMENT_GPIO_d_out_pin<7> LOC=p16;
Net fpga_0_LED_7SEGMENT_GPIO_d_out_pin<8> LOC=d14;
Net fpga_0_LED_7SEGMENT_GPIO_d_out_pin<9> LOC=g14;
Net fpga_0_LED_7SEGMENT_GPIO_d_out_pin<10> LOC=f14;
Net fpga_0_LED_7SEGMENT_GPIO_d_out_pin<11> LOC=e13;
Net fpga_0_DIP_Switches_8Bit_GPIO_in_pin<0> LOC=k13;
Net fpga_0_DIP_Switches_8Bit_GPIO_in_pin<1> LOC=k14;
Net fpga_0_DIP_Switches_8Bit_GPIO_in_pin<2> LOC=j13;
Net fpga_0_DIP_Switches_8Bit_GPIO_in_pin<3> LOC=j14;
Net fpga_0_DIP_Switches_8Bit_GPIO_in_pin<4> LOC=h13;
Net fpga_0_DIP_Switches_8Bit_GPIO_in_pin<5> LOC=h14;
Net fpga_0_DIP_Switches_8Bit_GPIO_in_pin<6> LOC=g12;
Net fpga_0_DIP_Switches_8Bit_GPIO_in_pin<7> LOC=f12;

Исходный текст тестовой прикладной программы TestApp.c, подготовленный мастером Base System Builder Wizard на основе сведений о конфигурации инструментального модуля, выбранного для реализации разрабатываемой микропроцессорной системы, выглядит следующим образом:

/*
* Xilinx EDK 6.3 EDK_Gmm.11.2
*
* This file is a sample test application
*
* This application is intended to test and/or illustrate some
* functionality of your system. The contents of this file may
* vary depending on the IP in your system and may use existing
* IP driver functions. These drivers will be generated in your
* XPS project when you run the «Generate Libraries» menu item
* in XPS.
*
* Your XPS project directory is at:
* C:\Project\NewSys
*/
// Located in: microblaze_0/include/xparameters.h
#include «xparameters.h»
#include «xutil.h»
#include «xgpio_l.h»
/*
* Routine to write a pattern out to a GPIO
* which is configured as an output
* PARAMETER C_ALL_INPUTS = 0
*/
void WriteToGPOutput(Xuint32 BaseAddress, int gpio_width)
{
int i=0, j=0, k=0;
int numTimes = 5;
XGpio_mSetDataDirection(BaseAddress, 1, 0x00000000); /* Set as
outputs */
while (numTimes > 0) {
j = 1;
for(i=0; i<(gpio_width-1); i++) {
XGpio_mSetDataReg(BaseAddress, 1, j);
j = j << 1;
for (k=0; k<1000000; k++) {
; //wait
}
}
j = 1;
j = ~j;
for(i=0; i<(gpio_width-1); i++) {
XGpio_mSetDataReg(BaseAddress, 1, j);
j = j << 1;
for (k=0; k<1000000; k++) {
; //wait
}
}
numTimes--;
}
}
/*
* Routine to read data from a GPIO
* which is configured as an input
* PARAMETER C_ALL_INPUTS = 1
*/
Xuint32 ReadFromGPInput(Xuint32 BaseAddress)
{
Xuint32 data = XGpio_mGetDataReg(BaseAddress, 1);
return data;
}
//==============================================
int main (void)
{
print(«-- Entering main() --\r\n»);
/*
* MemoryTest routine will not be run for the memory at
* dlmb_cntlr.C_BASEADDR
* because it is being used to hold a part of this application program
*/
/*
* MemoryTest routine will not be run for the memory at
* ilmb_cntlr.C_BASEADDR
* because it is being used to hold a part of this application program
*/
WriteToGPOutput(XPAR_LEDS_8BIT_BASEADDR, 8);
WriteToGPOutput(XPAR_LED_7SEGMENT_BASEADDR, 12);
{
Xuint32 data = ReadFromGPInput(XPAR_DIP_SWITCHES_8BIT
_BASEADDR);
xil_printf(«Data read from DIP_Switches_8Bit: 0x%x\r\n», data);
}
print(«-- Exiting main() --\r\n»);
return 0;
}

Тестовая программа TestApp выполняет проверку функционирования всех периферийных устройств ввода-вывода, которые были включены в состав проектируемой системы. В начале файла TestApp.c в виде комментариев приведены краткие сведения о сформированной программе. Затем следуют директивы включения необходимых заголовочных файлов. После этого определяется функция WriteToGPOutput, которая выполняет запись данных в параллельный порт ввода-вывода, и функция ReadFromGPInput, которая осуществляет чтение данных из параллельного порта ввода-вывода. Далее расположен исходный текст основной программы main.

Исходный файл тестовой программы, создаваемый автоматически мастером Base System Builder Wizard, может использоваться в качестве шаблона в процессе разработки оригинальных пользовательских прикладных программ.

Формирование конфигурационной последовательности для проекта аппаратной части разрабатываемой системы

Дальнейший процесс разработки аппаратной части проектируемой микропроцессорной системы включает в себя последовательное выполнение следующих этапов [7]:

  • формирование списка соединений аппаратной платформы системы;
  • реализация (Implementation) проекта аппаратной части системы;
  • генерация конфигурационной последовательности ПЛИС.

Для ускорения процесса разработки можно сразу активизировать процедуру генерации конфигурационной последовательности ПЛИС, не выполняя предшествующих этапов. Перед этим необходимо при установке параметров проекта EDK с помощью группы кнопок с зависимой фиксацией Implementation Tool Flow выбрать управление процессом реализации проекта непосредственно из оболочки Xilinx Platform Studio. Чтобы приступить непосредственно к формированию конфигурационной последовательности ПЛИС для аппаратной части разрабатываемой системы, следует выбрать команду Generate Bitstream из всплывающего меню Tools или нажать кнопку на оперативной панели управления XPS. Далее все необходимые процедуры выполняются в автоматическом режиме, включая все пропущенные этапы разработки. При этом необходимо обратить внимание на информационные сообщения соответствующих программ, которые выводятся на странице Output встроенного окна консольных сообщений XPS, а также на предупреждения и сообщения об ошибках на страницах Warnings и Errors соответственно. При отсутствии ошибок, после успешного создания файла конфигурационной последовательности ПЛИС можно перейти к разработке программного обеспечения для проектируемой системы.

Создание программного обеспечения для разрабатываемой системы

После успешного создания мастером Base System Builder Wizard спецификации программной платформы, проекта тестовой прикладной программы (Software project) и файла директив компоновщика (linker script) для завершения разработки программного обеспечения необходимо выполнить следующие процедуры [9]:

  • генерацию драйверов и библиотек;
  • компиляцию и компоновку прикладной тестовой программы.

Чтобы ускорить процесс формирования программного обеспечения для разрабатываемой микропроцессорной системы, можно сразу инициировать процесс генерации исполняемого кода прикладной тестовой программы. Для этого необходимо в основном меню управляющей оболочки Xilinx Platform Studio выделить пункт Tools, после чего в открывшемся всплывающем меню выбрать команду Build All User Applications или воспользоваться кнопкой быстрого доступа , расположенной на оперативной панели управления XPS.

При этом перед выполнением компиляции и компоновки прикладной тестовой программы автоматически осуществляется генерация драйверов и библиотек в соответствии со спецификацией программной платформы. Информация о ходе выполнения все перечисленных выше процедур и их результатах отражается на странице Output встроенного окна консольных сообщений управляющей оболочки XPS. При этом необходимо убедиться в отсутствии ошибок, сведения о которых выводятся на странице Errors. В результате успешного завершения процедур компиляции и компоновки создается файл executable.elf, который содержит исполняемый код тестовой программы.

Включение исполняемого кода прикладной программы в конфигурационную последовательность проекта аппаратной части и загрузка конфигурационных данных в ПЛИС

Заключительными этапами процесса разработки встраиваемой микропроцессорной системы на основе FPGA фирмы Xilinx являются:

  • запись исполняемого кода прикладной программы в конфигурационную последовательность проекта аппаратной части микропроцессорной системы;
  • загрузка конфигурационных данных в кристалл.

Для дополнения конфигурационной последовательности ПЛИС, реализующей функции аппаратной части микропроцессорной системы, исполняемым кодом прикладной программы следует выполнить команду Update Bitstream из всплывающего меню Tools или нажать кнопку быстрого доступа , которая находится на оперативной панели управления XPS.

Обновленная конфигурационная последовательность записывается в файл download.bit, который может непосредственно использоваться для конфигурирования кристалла FPGA.

Формирование мастером Base System Builder Wizard командного файла download.cmd позволяет осуществлять процесс загрузки конфигурационных данных в ПЛИС в пакетном режиме непосредственно из управляющей оболочки XPS. Чтобы выполнить конфигурирование кристалла FPGA для реализации функций разработанной микропроцессорной системы, необходимо подключить загрузочный кабель к порту JTAG-интерфейса ПЛИС и затем выполнить команду Download из всплывающего меню Tools или нажать кнопку быстрого доступа , расположенную на оперативной панели управления XPS. Проверка функционирования созданной микропроцессорной системы производится с помощью тестовой программы путем визуального контроля состояния светодиодных индикаторов и сообщений, отображаемых на экране монитора компьютера в рабочем окне программы HyperTerminal.

Порядок сопряжения компьютера и отладочной платы из инструментального комплекта Spartan-3 Starter Kit, а также настройка параметров подключения программы HyperTerminal и протокола передачи данных детально рассмотрены в отдельной публикации [9].

Заключение

Мастер Base System Builder Wizard имеет множество преимуществ по сравнению с обычным способом [5–9] подготовки исходных файлов описания разрабатываемой системы. Для практического изучения процесса сквозного проектирования встраиваемых микропроцессорных систем с применением мастера BSB рекомендуется воспользоваться бесплатной 60-дневной версией пакета САПР Xilinx Embedded Development Kit (EDK). Данную версию средств проектирования можно запросить у официального дистрибьютора фирмы Xilinx в России, Беларуси и Украине, которым является центр поддержки и продаж InlineGROUP (http://www.plis.ru/).

Литература

  1. Зотов В. MicroBlaze — семейство тридцатидвухразрядных микропроцессорных ядер, реализуемых на основе ПЛИС фирмы Xilinx // Компоненты и технологии. 2003. № 9.
  2. Зотов В. Система команд микропроцессорного ядра MicroBlaze // Компоненты и технологии. 2004. № 1-3.
  3. Зотов В. Embedded Development Kit — система проектирования встраиваемых микропроцессорных систем на основе ПЛИС серий FPGA фирмы Xilinx. 2004. № 3.
  4. Зотов В. Организация памяти микропроцессорного ядра MicroBlaze // Компоненты и технологии. 2004. № 5.
  5. Зотов В. Создание проекта микропроцессорной системы на основе ядра MicroBlaze, реализуемой в ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2004. № 3.
  6. Зотов В. Формирование спецификации аппаратной платформы микропроцессорной системы на основе ядра MicroBlaze, реализуемой в ПЛИС семейств FPGA фирмы Xilinx //Компоненты и технологии. 2004. №№ 7– 8.
  7. Зотов В. Реализация аппаратной платформы микропроцессорной системы, проектируемой на основе ядра MicroBlaze, в ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2004. № 9.
  8. Зотов В. Разработка спецификации программных средств микропроцессорной системы на основе ядра MicroBlaze, реализуемой в ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2005. № 1.
  9. Зотов В. Проектирование цифровых устройств на основе ПЛИС фирмы Xilinx в САПР WebPack ISE. М.: Горячая линия-Телеком. 2003.
  10. Кнышев Д. А., Кузелин М. О. ПЛИС фирмы «Xilinx»: описание структуры основных семейств. М.: Издательский дом «Додека-XXI». 2001.

Скачать статью в формате PDF  Скачать статью Компоненты и технологии PDF

 


Сообщить об ошибке