реклама на сайте
подробности

 
 
> Тест памяти DDR проходит, но программа из DDR не исполняется, Xilinx ISE/EDK 14.7 Spartan-6
aabmail
сообщение Jul 2 2015, 08:22
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056



Коллеги, подскажите, в чем может быть дело.

Имеется плата со Spartan-6 и DDR MT41J128M16HA-125.
На основе Base system builder cоздал проект в EDK, экспортировал в SDK, сгенерировал программу с тестом памяти - работает.
Далее создаю программу Hello World, в linker script все секции прописываю в DDR - не работает.

Заранее благодарен.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Jul 2 2015, 13:43
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



покажите картинку с шинами
как у вас шина инструкций и шина данных программ идут?

по поводу ДДР - ОЧЕНЬ!!! важно чтобы их контроллер питался от PLL в их регионе, просто через клок визард назначить клоки нельзя. Я налетел на это и время от времени процессор вис. Про это есть приписка в реф дизайне для ДДР, надо добавлять специальный констраин чтобы использвался верный PLL блок. Посмотрите пример любой с ддр вы увидите это констраин.

Про вектора вам это сейчас вообще не надо. Это все будет после загрузчика. Сейчас для этого bootloop есть он сделает как надо все. Загрузит проц и остановит его в ожидании прошивки для DDR. Попробуйте запустить проц на отладку, если у вас сбои DDR вы это увидите, как только делаете шаг на след инструкцию и она не наступает, то значит память грохнулась, останавливаете брейком и видите что вы черти где и память черти какая... или видит ошибку от жетага.

И еще если у вас в проце есть кеши, их надо инвалидейтнуть перед включением, лучше на первом этапе без них вообще. Это в свойствах проца настраивается.
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Jul 2 2015, 15:05
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



В S6 ddr3 ввобще без проблем работает, когда создаёте проект визардом прямо в нём указываете ddr3, все настройки правильно визард делает. Потом можно поменять mcb блок на другой. Лучше всего проверить проект на ref плате типа SP605, если всё окей, то на своей. Разводка и пайка своей платы должна быть хорошей, тесты памяти только для младших адресов, они могут проходить, а программа не работать.
Go to the top of the page
 
+Quote Post
aabmail
сообщение Jul 3 2015, 09:08
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056



Все огромное спасибо за ответы.

Цитата(dmitry-tomsk @ Jul 2 2015, 18:05) *
В S6 ddr3 ввобще без проблем работает, когда создаёте проект визардом прямо в нём указываете ddr3, все настройки правильно визард делает. Потом можно поменять mcb блок на другой. Лучше всего проверить проект на ref плате типа SP605, если всё окей, то на своей. Разводка и пайка своей платы должна быть хорошей, тесты памяти только для младших адресов, они могут проходить, а программа не работать.


Сейчас к сожалению у меня нет борды SP6, поэтому проверить не могу. Данный проект - это фактически проект, сгенеренный BSB (заменил ноги в UCF, поменял тактовую частоту). На старой работе проекты, сгенернные визардом, на бордах точно работали.
Что Вы имеет в виду под "Потом можно поменять mcb блок на другой"?

Про то, что "тесты памяти только для младших адресов, они могут проходить, а программа не работать." Я подкорректировал тест памяти. Проводится полная проверка, а не только младшие адреса.
ИМХО важная деталь: Если программу теста памяти объединить с bit-файлом через data2mem, то тест всегда проходит. Если программу теста памяти запустить через XMD, то он всегда виснет после печати начальных сообщений. Наверное, что-то не то со структурой EDK-проекта. Сейчас буду прикладывать скриншоты.

Конденсаторы поменял на Low-ESR - не помогло.

Цитата(Golikov A. @ Jul 2 2015, 16:43) *
покажите картинку с шинами
как у вас шина инструкций и шина данных программ идут?




Цитата(Golikov A. @ Jul 2 2015, 16:43) *
по поводу ДДР - ОЧЕНЬ!!! важно чтобы их контроллер питался от PLL в их регионе, просто через клок визард назначить клоки нельзя. Я налетел на это и время от времени процессор вис.



Цитата(Golikov A. @ Jul 2 2015, 16:43) *
Про это есть приписка в реф дизайне для ДДР, надо добавлять специальный констраин чтобы использвался верный PLL блок. Посмотрите пример любой с ддр вы увидите это констраин.


Подскажите, где можно посмотреть приписку? Вот UCF из refдизайна.

Код
#
# pin constraints
#
NET CLK_N LOC = "K22"  |  DIFF_TERM = "TRUE"  |  IOSTANDARD = "LVDS_25";
NET CLK_P LOC = "K21"  |  DIFF_TERM = "TRUE"  |  IOSTANDARD = "LVDS_25";
NET RESET LOC = "H8"  |  IOSTANDARD = "LVCMOS15"  |  TIG;
NET RS232_Uart_1_sin LOC = "H17"  |  IOSTANDARD = "LVCMOS25";
NET RS232_Uart_1_sout LOC = "B21"  |  IOSTANDARD = "LVCMOS25";
#
# additional constraints
#

NET "CLK" TNM_NET = sys_clk_pin;
TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 200000 kHz;


Цитата(Golikov A. @ Jul 2 2015, 16:43) *
И еще если у вас в проце есть кеши, их надо инвалидейтнуть перед включением, лучше на первом этапе без них вообще. Это в свойствах проца настраивается.


Я правильно понял, что надо на вкладке Cashe у МicroBlaze снять галки Enable Cashe? Если так, то MCB вообще остается отключенным.

Цитата(Golikov A. @ Jul 2 2015, 16:43) *
Попробуйте запустить проц на отладку, если у вас сбои DDR вы это увидите, как только делаете шаг на след инструкцию и она не наступает, то значит память грохнулась, останавливаете брейком и видите что вы черти где и память черти какая... или видит ошибку от жетага.


Даже входа в отладку не происходит. Нельзя сделать даже первый шаг.


Цитата(Corvus @ Jul 2 2015, 15:58) *
Сделайте в XPS очистку проекта и повторный экспорт в SDK. Возможно адресация в проекте изменилась и не передалась в SDK.
Когда память тестировали, адреса точно правильные были указаны? Именно DDR, а не внутренней памяти?


Понимаю, о чем Вы говорите, - EDK/SDK иногда подглючивает. Проект очистил, адреса проверил. Тестируются все 128 МБайт памяти, но только при условии, что сам тест запускается не из XMD, а из BRAM-ов.

Цитата(serjj @ Jul 2 2015, 15:43) *
можно мониторить uo_done_cal и pll_locked, по ним уже можно что-то судить.


uo_done_cal вывели на светодиод. Он НЕ светится.
C чипскопом небольшая проблема. В EDK, кажется, нужно system.ngc как-то преобразовывать, а потом уже грузить в chipscope. ngcbuild как то надо дополнительно запускать. У меня этот батник в другом корпусе blush.gif .

pll_locked тоже не светится.
Т.е. все правильно, т.к. светодиоды на плате тянутся в VCC.

================================================================
А ВОТ СТОИТ ЗАПУСТИТЬ ТЕСТ ПАМЯТИ ИЗ-ПОД ОТЛАДЧИКА, И СИГНАЛ uo_done_cal ПАДАЕТ !!!
================================================================

Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- aabmail   Тест памяти DDR проходит, но программа из DDR не исполняется   Jul 2 2015, 08:22
- - Golikov A.   А как она из флешки в ДДР попадет? Загрузчик писа...   Jul 2 2015, 08:39
|- - aabmail   Согласен, но как я понимаю, для начала надо убедит...   Jul 2 2015, 08:43
- - Golikov A.   для этого в SDK есть запуск проекта, сначала загру...   Jul 2 2015, 08:44
|- - aabmail   Когда я в SDK нажимаю на иконку "запустить...   Jul 2 2015, 08:50
- - serjj   Предположение. Не помню как там у Xilinx, у альтер...   Jul 2 2015, 09:41
|- - aabmail   Спасибо. Сейчас, правда выясняется, что наши PCB-д...   Jul 2 2015, 10:18
- - serjj   ЦитатаА где можно про векторы почитать, ссылку не ...   Jul 2 2015, 11:20
|- - aabmail   Цитата(serjj @ Jul 2 2015, 14:20) У меня ...   Jul 2 2015, 11:26
- - serjj   ЦитатаС левой стороны сигналы на микросхему, с пра...   Jul 2 2015, 11:51
|- - aabmail   Цитата(serjj @ Jul 2 2015, 14:51) Вы испо...   Jul 2 2015, 12:21
- - serjj   можно мониторить uo_done_cal и pll_locked, по ним ...   Jul 2 2015, 12:43
|- - Corvus   Сделайте в XPS очистку проекта и повторный экспорт...   Jul 2 2015, 12:58
- - serjj   ЦитатаА ВОТ СТОИТ ЗАПУСТИТЬ ТЕСТ ПАМЯТИ ИЗ-ПОД ОТЛ...   Jul 3 2015, 09:29
- - Golikov A.   воот... M_AXI_DC, M_AXI_IC - это шина данных и ш...   Jul 3 2015, 09:46
|- - aabmail   Цитата(Golikov A. @ Jul 3 2015, 12:46) во...   Jul 3 2015, 10:31
- - Golikov A.   да с кешем все ок. ЦитатаМне непонятно, как вообщ...   Jul 3 2015, 10:54
|- - aabmail   Цитата(Golikov A. @ Jul 3 2015, 13:54) XM...   Jul 3 2015, 11:08
- - Golikov A.   Ну тогда все правильно... Проект из ДДР так не зап...   Jul 3 2015, 11:48
- - aabmail   Цитата(Golikov A. @ Jul 3 2015, 14:48) Ну...   Jul 3 2015, 12:28


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 13th August 2025 - 04:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01434 секунд с 7
ELECTRONIX ©2004-2016