Корзина

0  Товары

0.00 RUB

Вход

Классический вход

Сообщество

Блог

Использование MicroBlaze на примере отладочной платы VE-XC6SLX9.

В данной статье рассматривается пошаговое создание проекта на основе Microblaze для Xilinx EDK в Xilinx ISE 14.7. Рассмотрим процесс создания проекта для microblaze на примере отладочной платы VE-XC6SLX9. MicroBlaze — soft-процессорное ядро, разработанное компанией Xilinx для использования в FPGA. MicroBlaze реализуется с помощью стандартной логики и блоков памяти ПЛИС. С точки зрения архитектуры, MicroBlaze очень похож на процессор с основанной на RISC DLX-архитектурой, описанной в книге Д. Паттерсона (David Patterson) и Дж. Хеннеси (John L. Hennessy). За исключением отдельных случаев MicroBlaze может выполнять по одной инструкции за такт, сохраняя такую производительность практически в любых условиях.

В этом материале мы создадим проект, использующий Microblaze для организации управления периферийными устройствами FPGA. Создание проекта начнем с запуска Project Navigator’a, входящего в комплект ISE Design Suite (Рис. 1) и выбора пункта «New Project» меню File.

pic1

Рис. 1: Создание нового проекта в ISE Project Navigator

Следующим шагом (Рис. 2) зададим параметры FPGA, используемой в проекте. В данном случае параметры определяются для отладочной платы VE-XC6SLX9, для которой выполняется создание проекта.

pic2

Рис. 2: Конфигурирование нового проекта в IDE ISE

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

pic3

Рис. 3: Проверка параметров нового проекта, описанного в мастере

В созданный проект добавим процессор Microblaze (Рис. 4).

pic4

Рис. 4: Добавление процессора

В открывшемся списке выбираем процессор Microblaze (Рис. 5).

pic5

Рис. 5: Выбираем процессор MicroBlaze MCS 1.4

Нажимаем Next и видим информацию о созданном процессоре (Рис. 6).

pic6

Рис. 6: Общая информация о нашем процессоре

Далее приступим к настройке микропроцессора Microblaze. На вкладке MCS обязательно необходимо установить галку в пункт Enable Debug Support (Рис. 7).

pic7

Рис. 7: Настройка процессора, вкладка MCS

На вкладке GPO добавим один 32 битный порт вывода данных (Рис. 8).

pic8

Рис. 8: Настройка порта вывода, вкладка GPO

На этом настройка нашего проекта закончена. На следующем шаге добавим виртуальные индикаторы, из нашего предидущего проекта Виртуальные светодиоды и 7-ми сегментный индикатор. Для этого добавим файлы display.v, hvsync.v, vga_leds.v а также создадим модуль синтезатора частоты pll. (Рис. 9).

pic9

Рис. 9: Добавление файлов виртуальных индикаторов

Модуль верхнего уровня должен выглядеть следующим образом:

Verilog Code:
  1. module vga_leds(
  2. input wire CLK50MHZ,
  3. input wire KEY0,
  4. input wire KEY1,
  5. output wire [7:0]LED,
  6. // outputs:
  7. output wire hsync,
  8. output wire vsync,
  9.  
  10. //high-color test video signal
  11. output wire [3:0]r,
  12. output wire [3:0]g,
  13. output wire [3:0]b
  14. );
  15.  
  16. wire w_clk_video;
  17. wire w_clk_cpu;
  18. wire w_clk_hdmi;
  19. wire w_locked;
  20.  
  21. clk_wiz_v3_6 mypll_inst(
  22. .CLK_IN1( CLK50MHZ ),
  23. .CLK_OUT1( w_clk_video ), //74MHz
  24. .CLK_OUT2( w_clk_cpu ), //100MHz
  25. .LOCKED( w_locked )
  26. );
  27.  
  28. wire [31:0]counter;
  29.  
  30. cpu cpu_inst(
  31. .Clk (w_clk_cpu),
  32. .Reset (~w_locked),
  33. .GPO1 (counter)
  34. );
  35.  
  36. display display_inst(
  37. .reset( ~w_locked ),
  38. .clk_video( w_clk_video ),
  39. .red_leds( counter[31:16] ),
  40. .green_leds( ~counter[31:16] ),
  41. .segments( counter[31:16] ),
  42. .hsync (hsync),
  43. .vsync (vsync),
  44. .r (r),
  45. .g (g),
  46. .b (b)
  47. );
  48.  
  49. endmodule

После внесения всех изменений в проект, смело жмем пункт Generate Programming File. Если процесс прошел без ошибок, мы с помощью программатора iMPACT прошиваем нашу плату. В принципе на этом шаге, на дисплее VGA монитора уже должны отобразится наши виртуальные приборы. Причем зеленые светодиоды должны гореть, красные должны быть погашены а индикатор отображать число 00000.

Далее приступим к созданию прошивки для нашего процессора. Для этого выберем приложение Xilinx Software Development Kit. После запуска, нам будет предложено выбрать путь к нашим будущим проектам (Рис. 10).

pic10

Рис. 10: Выбор пути для каталога проектов

Выбираем пункт меню File->New->Application Project (Рис. 11).

pic11

Рис. 11: Новый проекта

На этом шаге создаем Hardware Project, куда включаем файлы с залитым в нашу плату битстримом и Block RAM Memory Map (карта памяти) (Рис. 12).

pic12

Рис. 12: Новый проекта

Теперь создадим собственно сам проект для нашего процессора. Для этого выбираем пункт меню File->New->Project, выбираем Application Project и жмем Next (Рис. 13).

pic13

Рис. 13: Новый проекта

На этом шаге выбираем для нашего проекто, ранее созданную аппаратную платформу (Рис. 14).

pic14

Рис. 14: Выбор платформы

Надеюсь что все прошло хорошо, и Вы увидел окно с только что созданным проектом (Рис. 15).

pic15

Рис. 15: Созданный проект

Изменяем текст программы helloworld.c, для управления нашими виртуальными индикаторами:

C++ Code:
  1. /*
  2.  * Copyright (c) 2009-2012 Xilinx, Inc. All rights reserved.
  3.  *
  4.  * Xilinx, Inc.
  5.  * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A
  6.  * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS
  7.  * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR
  8.  * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION
  9.  * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE
  10.  * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION.
  11.  * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO
  12.  * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO
  13.  * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE
  14.  * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY
  15.  * AND FITNESS FOR A PARTICULAR PURPOSE.
  16.  *
  17.  */
  18.  
  19. #include
  20. #include "platform.h"
  21. #include "xil_io.h"
  22.  
  23. #define ADDR_GPIO_BASE 0x80000000
  24.  
  25. void print(char *str);
  26.  
  27. int main()
  28. {
  29. unsigned long tst;
  30. init_platform();
  31.  
  32. for(tst=0x00000000;tst<0x7FFFFFFF;tst++)
  33. {
  34. Xil_Out32(ADDR_GPIO_BASE + 0x10, tst);
  35. }
  36.  
  37. return 0;
  38. }

Так выглядит среда разработки с нашей программой (Рис. 16).

pic16

Рис. 16: Текст программы

Осталось настроить отладку. Выбираем пункт меню Run->Debug Gonfigurations.

Делаем двойной клик левой кнопкой мыши на пункте Xilinx C/C++ application (GDB) (Рис. 17).

pic17

Рис. 17: Меню настройки отладчика

Если никаких ошибок не совершено, то должна автоматически создатся конфигурация для отладки проекта (Рис. 18).

pic18

Рис. 18: Готовая вкладка отладчика

Осталось нажать кнопку Debug! (Рис. 19).

pic19

Рис. 19: Отладка проекта

На видео показана рабоа микропроцессора Microblaze:

Проект дизайна микропроцессора Microblaze для платы VE-XC6SLX9: microblaze_hard.zip

Проект программы микропроцессора Microblaze для платы VE-XC6SLX9 microblaze_soft.zip

Карта сайта Визуальная электроника Полезные ссылки сайта Визуальная электроника

Алиса это умеет

Оплата товаров

Cookies make it easier for us to provide you with our services. With the usage of our services you permit us to use cookies.
More information Ok