|
Тест памяти DDR проходит, но программа из DDR не исполняется, Xilinx ISE/EDK 14.7 Spartan-6 |
|
|
|
Jul 2 2015, 08:43
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056

|
Согласен, но как я понимаю, для начала надо убедиться в том, что программа запускается через XMD. Цитата(Golikov A. @ Jul 2 2015, 11:39)  А как она из флешки в ДДР попадет? Загрузчик писать надо. для тестов надо загрузить бутлуп в ПЛИС в микроблайз, А потом залить программу и стартануть из РАМа. Это если жетагом.
А автономный старт требует дополнительно загрузчика, который будет перепихивать программу из флеш в ддр
|
|
|
|
|
Jul 2 2015, 08:50
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056

|
Когда я в SDK нажимаю на иконку "запустить", программа не запускается. Цитата(Golikov A. @ Jul 2 2015, 11:44)  для этого в SDK есть запуск проекта, сначала загружаете в ПЛИС bootloop - это автоматом создаваемый проект, можно в флеш прошить, можно просто грузить каждый раз А потом вверху SDK есть иконка запустить или отладить. Через них запускаете проект из ДДР на запуск или на отладку
|
|
|
|
|
Jul 2 2015, 10:18
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056

|
Спасибо. Сейчас, правда выясняется, что наши PCB-дизайнеры сочли возможным заменить low-ESR конденсаторы на обыкновенные. М.б. в этом дело, потому как и тест памяти не всегда проходит... А где можно про векторы почитать, ссылку не скинете? Цитата(serjj @ Jul 2 2015, 12:41)  Предположение. Не помню как там у Xilinx, у альтеровского ниоса есть порт мастера данных и порт мастера инструкций. Когда ставишь on-chip ram, то оба этих порта на её слейв порт цепляешь и вектора процессора прописываешь на эту память. С векторами не в курсе, но если вы хотите секцию .text с собственно программой грузить с ddr, то проверьте, что у вас instruction master к ней подключен, может быть в этом дело.
|
|
|
|
|
Jul 2 2015, 11:20
|
Знающий
   
Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866

|
Цитата А где можно про векторы почитать, ссылку не скинете? У меня самого руки не доходили еще основательно изучить эти моменты. Там основная идея, что есть Reset Vector и Exception Vector. Вам наиболее инетересен первый, т.к. это тот адрес, с которого начинается бут сразу после резета. Можете покопать в эту сторону. Соответсвенно по этому адресу некий асембер, например, лежит, который дальше управление будет передавать. Цитата и тест памяти не всегда проходит а сигналы init_done, cal_success, cal_fail проверяете чип-скопом? Может у вас её что-то сбрасывает? Если для некоторых условий тетс памяти проходит, то сама память то целая.
|
|
|
|
|
Jul 2 2015, 11:26
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056

|
Цитата(serjj @ Jul 2 2015, 14:20)  У меня самого руки не доходили еще основательно изучить эти моменты. Там основная идея, что есть Reset Vector и Exception Vector. Вам наиболее инетересен первый, т.к. это тот адрес, с которого начинается бут сразу после резета. Можете покопать в эту сторону. Соответсвенно по этому адресу некий асембер, например, лежит, который дальше управление будет передавать.
а сигналы init_done, cal_success, cal_fail проверяете чип-скопом? Может у вас её что-то сбрасывает? Если для некоторых условий тетс памяти проходит, то сама память то целая. Все это сейчас в EDK, и memory controller там как черный ящик. С левой стороны сигналы на микросхему, с правой - AXIS. Подозреваю, что init_done, cal_success, cal_fail - это некие внутренние сигналы. Если моя версия с ESR-конденсаторами не подтвердится, создам проект в ISE и буду тогда смотреть эти сигналы. Спасибо.
|
|
|
|
|
Jul 2 2015, 11:51
|
Знающий
   
Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866

|
Цитата С левой стороны сигналы на микросхему, с правой - AXIS. Подозреваю, что init_done, cal_success, cal_fail - это некие внутренние сигналы. Вы используете контроллер памяти от Xilinx или сторонний? Контроллер должен выдавать на внутреннюю логику помимо AXIS дополнительный набор сигналов, как то: клоки со встроенного PLL, статусную шину и т.д. Перечисленные сигналы должны входить в статусную шину, просто у них возможно будет другое имя. В EDK можно разместить модуль чип скопа, если мне не изменяет память, и подключить его к этим сигналам. Просто эти сигналы первое, что следует проверять в случае проблем с DDR.
|
|
|
|
|
Jul 2 2015, 12:21
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056

|
Цитата(serjj @ Jul 2 2015, 14:51)  Вы используете контроллер памяти от Xilinx или сторонний? Контроллер должен выдавать на внутреннюю логику помимо AXIS дополнительный набор сигналов, как то: клоки со встроенного PLL, статусную шину и т.д. Перечисленные сигналы должны входить в статусную шину, просто у них возможно будет другое имя. В EDK можно разместить модуль чип скопа, если мне не изменяет память, и подключить его к этим сигналам. Просто эти сигналы первое, что следует проверять в случае проблем с DDR. Я использую контроллер памяти от Xilinx. Клоки от встроенного PLL действительного выдаются. Вы правы. Но статусной шины нет. Есть только uo_done_clk. Все остальное м.б. есть внутри, буду смотреть нетлист.
Эскизы прикрепленных изображений
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|