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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Нестабильная работа внешней памяти
bognev
сообщение Nov 6 2014, 09:44
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475



Работаю с памятью DDRII SRAM на виртексе 6. Заявленная частота работы памяти 333 МГц. На плате стоит 2 модуля обработки. На каждом модуле по 6 виртексу и планке памяти. Получается такая проблема, что на плате в левом субмодуле память работает корректно на 200МГц, а на правом субмодуле на 160МГц. Если запустить память на левом субмодуле на 160 МГц, то ее калибровка проходит, но считываемые данные приходят с ошибками. А если запустить память на правом субмодуле на 200 МГц, то калибровка вообще не проходит. Пробовал прошивки 4х платах, такая ситуция только на одной. Причем, на 3х платах память работает корректно, как на 200МГц, так и на 100 МГц.
С памятью работаю с помощью контроллера, сгенерированного в ISE.
Вопрос такой, что может быть не так с той платой? Или в моей прошивке.
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Nov 6 2014, 10:07
Сообщение #2


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

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(bognev @ Nov 6 2014, 12:44) *
Вопрос такой, что может быть не так с той платой? Или в моей прошивке.

Временные ограничения выполняются?
Go to the top of the page
 
+Quote Post
bognev
сообщение Nov 6 2014, 10:16
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475



Цитата(bogaev_roman @ Nov 6 2014, 13:07) *
Временные ограничения выполняются?

Да, временных ошибок нет.
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Nov 6 2014, 10:26
Сообщение #4


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

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(bognev @ Nov 6 2014, 13:16) *
Да, временных ошибок нет.

Тогда дело скорее всего не в прошивке, планки памяти пробовали менять местами или такой возможности нет?
Go to the top of the page
 
+Quote Post
bognev
сообщение Nov 6 2014, 10:27
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475



Цитата(bogaev_roman @ Nov 6 2014, 13:26) *
Планки памяти пробовали менять местами или такой возможности нет?

Такая возможность отсутствует.
Причем, если перегенирить прошивку, то калибровка на правом субмодуле проходит. Но данные все равно с ощибками считываются.

Сообщение отредактировал bognev - Nov 6 2014, 10:30
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Nov 6 2014, 11:15
Сообщение #6


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

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Не обижайтесь - но прикольно читать такие вопросы.
"справа не работает, а слева ошибки - что делать?"

Было бы куда интересней придумывать ответы если бы Вы указали для начала тип платы (покупная или собственного производства) и хотя бы тип памяти (отдельные чипы или модули SODIM).
Поскольку если плата покупная - то тогда 99% глюки в проекте - не полностью/неправильно заданы времянки, некорректный выбор источника тактовой или некорректная разводка тактовой между модулями, неправильные конфигурация для корки контроллера и т.д. и.т.п.

Если же это изделие собственной выпечки - то тут возможности глюкануть расширяются неимоверно!
И в этом случае легче получить ответ задав этот вечный вопрос "что делать?" в google sm.gif

В любом случае - для отладки такой неприятности нужно сделать маленький проектик ТОЛЬКО для тестирования памяти - выбросив все что для этого не нужно, максимально зафиксировать модули на кристалле. При широкой шине данных памяти отлаживать боле узкими частями (по отдельным банкам DQS)

То что у Вас при пере разводке проекта меняется поведение уже косвенно указывает на глюки в дизайне
могу предположить что где то в 20 строке третьего файла правой части левого модуля wink.gif

Успехов! Rob.

Go to the top of the page
 
+Quote Post
SM
сообщение Nov 6 2014, 11:38
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



С какой-то долей вероятности можно предположить, что Вы забыли обконстрейнить какие-то важные сигнальные пути. В результате STA отрицательных слаков не дает, а непроверяемые пути - глючат. Это раз. А два (если плата самодельная) - внимательно проверьте цепи VREF, увеличьте емкость по ним.
Go to the top of the page
 
+Quote Post
bognev
сообщение Nov 6 2014, 12:28
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475



Цитата(RobFPGA @ Nov 6 2014, 14:15) *
Приветствую!

Не обижайтесь - но прикольно читать такие вопросы.
"справа не работает, а слева ошибки - что делать?"

Было бы куда интересней придумывать ответы если бы Вы указали для начала тип платы (покупная или собственного производства) и хотя бы тип памяти (отдельные чипы или модули SODIM).
Поскольку если плата покупная - то тогда 99% глюки в проекте - не полностью/неправильно заданы времянки, некорректный выбор источника тактовой или некорректная разводка тактовой между модулями, неправильные конфигурация для корки контроллера и т.д. и.т.п.

Если же это изделие собственной выпечки - то тут возможности глюкануть расширяются неимоверно!
И в этом случае легче получить ответ задав этот вечный вопрос "что делать?" в google sm.gif

В любом случае - для отладки такой неприятности нужно сделать маленький проектик ТОЛЬКО для тестирования памяти - выбросив все что для этого не нужно, максимально зафиксировать модули на кристалле. При широкой шине данных памяти отлаживать боле узкими частями (по отдельным банкам DQS)

То что у Вас при пере разводке проекта меняется поведение уже косвенно указывает на глюки в дизайне
могу предположить что где то в 20 строке третьего файла правой части левого модуля wink.gif

Успехов! Rob.


Я понимаю, что прошу описать сферического коня в вакууме. Просто вот так сразу написать все не получится. Слишком много)

Плата покупная. http://www.insys.ru/products/dsp/adp201cp5. Память GS8662R36E-333 http://www.datasheetarchive.com/dl/Datashe...DSA00268030.pdf
Я бы сказал, что 100% глюки в дизайне, у самого опыта не так много и в чем копать уже не знаю.

Собрал минималистичный проект. На левом субмодуле калибровка происходит практически мгновенно, а на правом со значительной задержкой порядка десятка секунд. После калибровки данные верные.

Цитата(SM @ Nov 6 2014, 14:38) *
С какой-то долей вероятности можно предположить, что Вы забыли обконстрейнить какие-то важные сигнальные пути. В результате STA отрицательных слаков не дает, а непроверяемые пути - глючат. Это раз. А два (если плата самодельная) - внимательно проверьте цепи VREF, увеличьте емкость по ним.

Можете посоветовать какие сигнальные пути можно считать важными и как их необходимо обконстрейнить?

Сообщение отредактировал bognev - Nov 6 2014, 12:40
Go to the top of the page
 
+Quote Post
iosifk
сообщение Nov 6 2014, 12:43
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(bognev @ Nov 6 2014, 16:28) *
Плата покупная. http://www.insys.ru/products/dsp/adp201cp5.


Написать в Инсис, там есть Дмитрий Смехов - dsmv@insys.ru.
Ну и по простому попросить у него помощи с файлом констрейнов. Я не думаю, что для платы, которую продает Инсис, файл констрейнов будет коммерческой тайной...
Удачи!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Nov 6 2014, 13:11
Сообщение #10


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

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Цитата(bognev @ Nov 6 2014, 14:28) *
Плата покупная. http://www.insys.ru/products/dsp/adp201cp5...

Вот! - сразу получили дельный совет от iosifk.

Только задавая вопрос все же уточните с какой платой работаете - так как по приведенной Вами ссылке плата с Virtex4
и памятью SDRAM wacko.gif - получается какой то "сферический конь в вакууме" кубической формы.

Успехов! Rob.
Go to the top of the page
 
+Quote Post
bognev
сообщение Nov 6 2014, 13:27
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475



Цитата(RobFPGA @ Nov 6 2014, 16:11) *
Приветствую!


Вот! - сразу получили дельный совет от iosifk.

Только задавая вопрос все же уточните с какой платой работаете - так как по приведенной Вами ссылке плата с Virtex4
и памятью SDRAM wacko.gif - получается какой то "сферический конь в вакууме" кубической формы.

Успехов! Rob.


Это основная плата. Субмодуль вот такая http://www.insys.ru/products/subunits/adm416x130mrf. Собственно, На картинке под 6 виртексом сразу память стоит.

Сообщение отредактировал bognev - Nov 6 2014, 13:40
Go to the top of the page
 
+Quote Post
SM
сообщение Nov 6 2014, 13:43
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(bognev @ Nov 6 2014, 15:28) *
Можете посоветовать какие сигнальные пути можно считать важными и как их необходимо обконстрейнить?


Какие сигналы - ВСЕ ПОГОЛОВНО, идущие к/от памяти. Как - это обычно описано в документации на примененное ядро контроллера памяти.
Go to the top of the page
 
+Quote Post
bognev
сообщение Nov 6 2014, 14:06
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475



Цитата(SM @ Nov 6 2014, 16:43) *
Какие сигналы - ВСЕ ПОГОЛОВНО, идущие к/от памяти. Как - это обычно описано в документации на примененное ядро контроллера памяти.

В документации на ядро для работы с DDRII SRAM есть упоминание о залочивании idelay и больше никаких. http://www.xilinx.com/support/documentatio...ation/ug086.pdf
Go to the top of the page
 
+Quote Post
SM
сообщение Nov 6 2014, 14:26
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Определить I/O стандарт (SSTL какой нибудь, смотря что за память), а также диф. стандарты для диф. тактовых - это то уж точно обязательно, и об этом уже в доке на ядро не сказано - это просто надо! А то, мало ли, может быть Вы даете на память сигналы совсем не тех уровней и не той системы sm.gif
Go to the top of the page
 
+Quote Post
bognev
сообщение Nov 6 2014, 14:41
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475



Цитата(SM @ Nov 6 2014, 17:26) *
Определить I/O стандарт (SSTL какой нибудь, смотря что за память), а также диф. стандарты для диф. тактовых - это то уж точно обязательно, и об этом уже в доке на ядро не сказано - это просто надо! А то, мало ли, может быть Вы даете на память сигналы совсем не тех уровней и не той системы sm.gif

В файле от инсиса изначально прописаны стандарты. Ошибки не может быть в том, что они разные?

NET "bd[*]" IOSTANDARD = HSTL_II_DCI_18;
NET "ba[*]" IOSTANDARD = HSTL_I_18;
NET "bld" IOSTANDARD = HSTL_I_18;
NET "brw" IOSTANDARD = HSTL_I_18;
NET "boff" IOSTANDARD = HSTL_I_18;
NET "bbw[*]" IOSTANDARD = HSTL_I_18;
NET "bcq" IOSTANDARD = HSTL_II_DCI_18;
NET "bcq_n" IOSTANDARD = HSTL_II_DCI_18;

NET "bk" IOSTANDARD = HSTL_I_18;
NET "bk_n" IOSTANDARD = HSTL_I_18;

Сообщение отредактировал bognev - Nov 6 2014, 14:42
Go to the top of the page
 
+Quote Post

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

 


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


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