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

 
 
> MicroBlaze. Ошибки в работе с DDR3 памятью
Чиповод
сообщение Sep 21 2011, 11:34
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 11-01-11
Из: Москва
Пользователь №: 62 160



Здравствуйте,

в проекте с MicroBlaze использую контроллер DDR3 памяти - axi_s6_ddrx. Все работает хорошо, но время от времени при переразводке проекта возникает такой симптом: начинаю дебажить программу в SDK, программа грузится, иду по шагам, после нескольких шагов получаю сообщение вида

Код
Error: MicroBlaze Pipeline Stalled on a Blocking Instruction or Invalid Bus Access
    Stalled PC: 0xc0000030
Try Resetting the Processor to Continue..


Код грузится во внешнюю DDR3 память. Причем, если не повезло с разводкой ошибка возникает всегда, только на разных адресах. Бывает что программа вообще не загружается, не проходит проверка elf файла.

Насколько я понимаю происходит неправильное чтение инструкции из DDR3 памяти и MicroBlaze дает клина. Т.е проблема в DDR3 контроллере. Частота DDR3 памяти 300МГц.

Кристалл забит на 80% и я понимаю, что это не очень хорошо. Из констрейнов относящихся к теме, имеется по сути один - на тактовую частоту входного клока, который идет на корку clock_generator. Он выполняется.

Нужны ли какие-нибудь констрейны для правильной работы DDR3 контроллера или за всем этим следит генератор корок?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 12)
DmitryR
сообщение Sep 22 2011, 10:44
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Генератор корок генерирует констрейны (в отдельный UCF файл), а вы разумеется должны этот файл включить в свой проект и добиться выполнения всех констрейнов в нем.
Go to the top of the page
 
+Quote Post
Чиповод
сообщение Sep 22 2011, 12:37
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 11-01-11
Из: Москва
Пользователь №: 62 160



Ага, он генерирует и сам подключает, но там только констрейны касающиеся размещения пинов, несколько TIG, а констрейнов на клоки или данные нет.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Sep 22 2011, 12:47
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Плату сами делали или на ките гоняете?
Go to the top of the page
 
+Quote Post
Чиповод
сообщение Sep 26 2011, 05:36
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 11-01-11
Из: Москва
Пользователь №: 62 160



Использую доску SP-605, по схематику на ней стоит MT41J64M16LA-187E. На самом деле, кажется что-то другое, по крайней мере логотипа микрона не видно. Кристалл на ней со спидгрейдом -3, НЕ инженерный сэмпл, слава Богу.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Sep 26 2011, 06:02
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 Чиповод
у меня SP-605 с ES чипом, память микроновская. DDR3 пробовал давно и без Blaze-а, но бегало без ошибок laughing.gif
Go to the top of the page
 
+Quote Post
Чиповод
сообщение Sep 26 2011, 06:37
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 11-01-11
Из: Москва
Пользователь №: 62 160



Цитата(Kuzmi4 @ Sep 26 2011, 10:02) *
2 Чиповод
у меня SP-605 с ES чипом, память микроновская. DDR3 пробовал давно и без Blaze-а, но бегало без ошибок laughing.gif
Это хорошо, а то народ жалуется, что в инженерных сэмплах MCB сырой был. А как вы кстати тестировали на ошибки?

Я тут разбираюсь со своими зверушками. Clock для памяти среда XPS предложила мне сделать без глобальных клоковых буферов. Я, в таком случае, решил зажать его констрейном MAX_SKEW. Это помогло, из 8 разводок - 7 оказалось удачных (раньше было примерно 50 на 50). Но нужно, конечно, окончательно разобраться.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Sep 26 2011, 07:12
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



Цитата(Чиповод @ Sep 26 2011, 09:37) *
..А как вы кстати тестировали на ошибки?....

Та вот начитался я как и вы про "сырой MCB", ну и наваял специально проектиГ - там внутри всё проверялось, генерились тестовые паттерны по разному. После проверки отправлялся результат (+ подсветка леда если ошибка хоть одна была ), и всё запускалось по кругу. "Беспредела" не было замечено wink.gif
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Sep 26 2011, 08:41
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(Чиповод @ Sep 26 2011, 08:36) *
На сааметрами памчмом деле, кажется что-то другое

В этом может быть проблема, если у той микрухи например CAS Latency другая.
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Sep 28 2011, 06:33
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Гонял немножко DDR3 на SP605 с ES.
Особо хитрых тестов не генерил, но в тех, которые генерил, проблем не было.
Go to the top of the page
 
+Quote Post
Sergey_Bekrenyov
сообщение Sep 30 2011, 19:41
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 323
Регистрация: 14-12-10
Из: Королёв
Пользователь №: 61 599



Помнится раньше у Xilinx были софтовые тесты для памяти. Может попробовать маленький софтик в BRAM, а DDR3 затестировать насмерть?
Go to the top of the page
 
+Quote Post
Чиповод
сообщение Oct 12 2011, 12:33
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 11-01-11
Из: Москва
Пользователь №: 62 160



Цитата
Помнится раньше у Xilinx были софтовые тесты для памяти. Может попробовать маленький софтик в BRAM, а DDR3 затестировать насмерть?
Проблема в том, что ошибки я вижу так сказать не вооруженным глазом, но бывает так, что целый день работаю без ошибок. Все зависит от везения в разводке.

Вообщем подозрение с самой микросхемы DDR3 памяти и сырости MCB Спартана я решил пока снять. Плата SP-605 Rev.D, микросхема оказалась все-таки Micron, та самая что на схематике.

Пока лечил свой проект тем, что лочил в PlanAhead кусок с axi_ddr коркой, это работало, но при каждом серьезном изменении проекта эту работу приходилось делать заново, иначе Router не мог развести проект.

Сейчас я временно облегчил проект до 60% - проблема исчезла.

Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Oct 14 2011, 16:48
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Уже не очень хорошо помню, но вообще там было достаточно много требований к тому, как генерить различные частоты для MCB.
Соблюдены ли эти требования?

P.S. Была такая корка, уже не помню, то ли на S3, то ли на V5, то ли на S6.
Пошли ошибки при выполнении из SDRAM (не помню, какая конкретно память).
Оказалось, что в начале программы был маленький тестик этой самой SDRAM, который писал всякое поверх кода sm.gif.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 01:23
Рейтинг@Mail.ru


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