Современная электроника №8/2023

ЭЛЕМЕНТЫ И КОМПОНЕНТЫ 25 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА • № 8 / 2023 хросигнала и сброса IP- ядра (input HCLK и input hwRstn), цепи отла - дочного интерфейса JTAG (inout JTAG_3 – inout JTAG_18), вход и выход линий приёма и передачи UART0 (input UART0RXD и output UART0TXD), а также пара служеб - ных выходных сигналов ядра . Послед - ние мы использовать не будем . Из шаблона необходимо скопировать исходный код и вставить его в наш файл модуля верхнего уровня про - екта (FPGA_modul.v), отредактиро - вав его путём задания ему уникаль - ного имени , а также имён входных и выходных сигналов , как показано на рис . 18 б . В качестве синхросиг - нала модуля IP- ядра используем выходной сигнал нашей системы PLL (clkout_o_PLL). Остальные цепи и сиг - налы модуля IP- ядра привязываем к цепям и сигналам нашего проекта , как показано на рис . 19. Цепи GPIO_ io[0]-GPIO_io[5] назначаем для управ - ления выходами ПЛИС led_0-led_5, к которым на плате TangNano 9K под - ключены светодиоды . Цепь GPIO_io[6] назначаем для приёма сигнала от вхо - да ПЛИС button_0, к которому на пла - те TangNano 9K подключена кноп - ка . Цепь GPIO_io[15] назначаем для управления выходом ПЛИС Output_ upr_ind_LCD. Запускаем общую сборку проекта ПЛИС ( синтез и компиляцию ) кли - ком на иконке «Run All» на панели инструментов : . По результатам сборки проекта IDE не выдала ника - ких замечаний на недостаточность ресурсов ПЛИС в части BSRAM. В слу - чае безошибочного завершения сбор - ки можно переходить к загрузке про - екта в конфигурационную память целевой ПЛИС , как описано в [1]. В ходе загрузки в конфигурационную память ПЛИС будут автоматически загружены как файлы встроенного ПО IP- ядра (itcm0–itcm3), так и файл битового потока проекта ПЛИС , включающего IP- ядро и его перифе - рию (fpga_project.fs). Отладка ПО для программного IP- ядра в IDE ARM Keil MDK После завершения загрузки проекта в целевую ПЛИС встроенное ПО про - цессорного IP- ядра начинает выпол - няться одновременно с остальным проектом ПЛИС по сигналу систем - ного сброса . Поскольку при синте - зе процессорного IP- ядра мы задали возможность поддержки отладки ПО процессорного IP- ядра Gowin_EMPU_ M1 через интерфейсы JTAG и SW, то теперь можно проверить возможность этой отладки « в железе », подключив к нашему макету внешний аппаратный JTAG- отладчик . В качестве такового в [3] рекомендуется использовать отлад - чик J-LINK или U-LINK. Автор исполь - зовал недорогой китайский клон отлад - чика J-LINK, подключённый к макету с ПЛИС через JTAG, а к ПК хоста – через USB. Для проверки работы перифе - рийного модуля UART0 процессорно - го IP- ядра макет с ПЛИС также мож - но подключить к COM- порту ПК через интерфейс RS-232. Для проверки работы отладчика откроем наш проект FPGA_project_ keil_soft в IDE ARM Keil MDK, выбе - рем в главном меню : Project > Options for Target ‘Target 1 и перейдём на стра - ницу «Debug» ( рис . 8). Далее клик - нем на кнопке «Settings», после чего откроется окно настроек аппаратно - го отладчика J-LINK/J-TRACE Cortex, показанное на рис . 20. На странице «Debug» этого окна в поле «J-Link/J- Trace Adapter» отображается инфор - мация о подключённом в данный момент к ПК аппаратном отладчике J-LINK: его серийный номер , назва - ние модели , версии прошивки , а также выбранный по умолчанию отладочный интерфейс (JTAG) и максимальная поддерживаемая отладчиком ско - рость обмена через него (5 МГц ). Последние два параметра доступны для редактирования пользователем – вместо JTAG можно выбрать интер - фейс SW, который также поддержи - вается ядром Gowin_EMPU_M1, а ско - рость обмена выбрать из выпадающего списка . Для улучшения стабильности отладки скорость обмена через JTAG понизим до 1 МГц . Рис . 18. а ) Шаблон заголовка модуля нижнего уровня IP- ядра , б ) отредактированный заголовок модуля нижнего уровня IP- ядра Рис . 19. Привязка к цепям и сигналам проекта сигналов IP- ядра

RkJQdWJsaXNoZXIy MTQ4NjUy