Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отладка Microblaze в симуляторе
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Олег Гаврильченко
Проектируется система на Xilinx Kintex-7. Среда разарботки ISE 14.7. Для симуляции использую Active-HDL 9.1 или Modelsim 10
В системе используется IP ядро Microblze MCS(Микроконтроллерная система на Microblaze 1.4.1). Симуляция HDL запускается нормально.
Такой вопрос, возможно ли во время HDL симуляции как-то "подключиться" к микроконтроллеру и отлаживать его на уровне исходного кода. Другими словами, если например, я остановил HDL симуляцию в Active-HDL в какой-то точке, как понять, в каком месте остановилась программа в Microblaze? Microblaze имеет Trace Port, в нем можно видеть текущую инструкцию, но это мало-что говорит, так как даже содержимого регистров я не знаю.
Возможно ли, при исполнении программы в симуляторе как-то видеть отладочную печать от Microblaze, снимать отладочные дампы или даже подключать пошаговый отладчик?
Заранее спасибо всем за ответы?
agregat
Знаю точно что код можно отлаживать по шагам с эмулятором, но это уже на готовом изделии..
С другой стороны, проц программный, какой смысл моделировать его на уровне кода в Modelsim?
Главное при синтезе получить отчет что с задержками все нормально и этого должно быть достаточно для работоспособности Microblaze.
Ничего нового прогон программы по шагам в отладчике не добавит... Или я чего то не понимаю.
Kuzmi4
Цитата(Олег Гаврильченко @ Sep 16 2015, 11:12) *
...возможно ли во время HDL симуляции как-то "подключиться" к микроконтроллеру и отлаживать его на уровне исходного кода?

с глобальной точки зрения на имеющихся в доступе средствах - нет.
Олег Гаврильченко
Цитата(agregat @ Sep 16 2015, 14:07) *
Знаю точно что код можно отлаживать по шагам с эмулятором, но это уже на готовом изделии..
С другой стороны, проц программный, какой смысл моделировать его на уровне кода в Modelsim?
Главное при синтезе получить отчет что с задержками все нормально и этого должно быть достаточно для работоспособности Microblaze.
Ничего нового прогон программы по шагам в отладчике не добавит... Или я чего то не понимаю.


Я хочу иметь возможность проверять работу программы не только в железе, но и на ПК. Мне кажется, это может быть полезно.
Kuzmi4
2 Олег Гаврильченко
если стоит вопрос проверки софта, то в SW вы его на 100% не проверите
Олег Гаврильченко
Цитата(Kuzmi4 @ Sep 16 2015, 15:15) *
2 Олег Гаврильченко
если стоит вопрос проверки софта, то в SW вы его на 100% не проверите

Это-то понятно, что на ПК я его и не проверю. Но какая-то часть ошибок все же будет устранена.
iosifk
Цитата(Олег Гаврильченко @ Sep 16 2015, 12:12) *
Такой вопрос, возможно ли во время HDL симуляции как-то "подключиться" к микроконтроллеру и отлаживать его на уровне исходного кода. Другими словами, если например, я остановил HDL симуляцию в Active-HDL в какой-то точке, как понять, в каком месте остановилась программа в Microblaze?
Возможно ли, при исполнении программы в симуляторе как-то видеть отладочную печать от Microblaze, снимать отладочные дампы или даже подключать пошаговый отладчик?
Заранее спасибо всем за ответы?

Я думаю, что можно такое сделать...
Например что-то такое:
В память Процессора загрузить программу-монитор, которая будет ресурсы процессора записывать куда-нибудь, например в порт... Которую и вызывать после каждой выполненной команды.
А в тестбенче эти данные выводить на консоль, тогда они появятся в окне сообщений симулятора.
И остается открыть файл с исследуемой программой и его "по шагам" скармливать процессору. Как? Ну например вычитывая команду процессором из какого-нибудь порта... Или чем-то внешним по DMA загонять в тестбенче эту команду в память команд... Или загонять в стек и из него извлекать...
Такой путь конечно "кривой" и трудоемкий, но он возможен. На консоли будете получать трассировку - время симуляции, команду, ресурсы процессора...
Но мне например проще вообще на Си сделать программную модель процессора и в ней все отладить. Как я и делал для самопального процессора.
RobFPGA
Приветствую!

Возможно написание PLI/VPI/DPI модуля который позволит в симуляторе гонять софт как на всамделишном проце и даже отлаживать его стандартным дебагером! .

Но это во первых будет меееееедлено - а во вторых много С-шной писанины.

Успехов! Rob.
jojo
Можно параметризовать, сохранить и декриптовать ядро, где-то тут пробегал рецепт.
Тогда все потроха процессора, по идее, будут видны в симуляторе.
Игрался тут с исходниками MCS, включал ему FPU и прочие юниты, получалось...


Олег Гаврильченко
Цитата(jojo @ Sep 16 2015, 20:00) *
Можно параметризовать, сохранить и декриптовать ядро, где-то тут пробегал рецепт.
Тогда все потроха процессора, по идее, будут видны в симуляторе.
Игрался тут с исходниками MCS, включал ему FPU и прочие юниты, получалось...

А разве исходники MCS доступны? У меня есть только исходники для симуляции, в которых разобраться слишком сложно.
jojo
Цитата(Олег Гаврильченко @ Sep 16 2015, 20:12) *
А разве исходники MCS доступны? У меня есть только исходники для симуляции, в которых разобраться слишком сложно.


Нет, но их можно добыть. Это неофициальный маршрут проектирования.
Олег Гаврильченко
Цитата(jojo @ Sep 16 2015, 20:19) *
Нет, но их можно добыть. Это неофициальный маршрут проектирования.

А можно узнать, как можно достать исходники Microblaze?
jojo
Ответил в сообщении.

Если коротко, то

XIL_CG_API_DEBUG=TRUE
XIL_COREUTIL_DEBUG_GENERATECORE=TRUE

Потом декомпрессор ядер


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.