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

 
 
 
Reply to this topicStart new topic
> Проблемы с системой на спартане6, Microblaze + Ethernet + 2xDDR3 + LwIP
Golikov A.
сообщение Jun 24 2013, 21:18
Сообщение #1


Гуру
******

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



Всем привет.

На платке trenz-электроникс на спартане 6 собираю систему. 2 банка ДДР3, гигабитный езернет, Микроблайз 100 МГц, шина - фулл регистеред. Подключен кеш данных и интсрукций 32 кбайта. Программа работает из ДДР, ТСР-IP на ЛвИП.

Эта система работает крайне не стабильно. То работает, то не с того не с сего ресетиться и виснет с сообщением что нет мак контроллера или с ошибками ДМА контроллера, в ходе инициализации. Подозревал перегрев, теперь система с радиатором и вентилятором, особенно не греется, но стабильности особенно не добавило.

Вроде бы система не супер какая... и чего она не работает не понятно....


Вопрос: что можно добавить в систему чтобы диагностировать где и почему она падает? Кто собирал что-то подобное? На что еще обратить внимание. Что-то я уже не знаю чего и делать то....
Любые мысли и любая помощь... хелп!
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jun 25 2013, 16:18
Сообщение #2


Гуру
******

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



На первый взгляд решил проблему

ДДР перевел на свой клок генератор, всю остальную систему на другой. Клок генератор ДДР через констраин разместил в модуле х0у1. После синтеза максимальная частота работы платы возросла со 103 до 146 МГц, и зависания вроде бы тоже ушли.

Думаю проблема была в нестабильном клоке или клоке на гране возможности...
Go to the top of the page
 
+Quote Post
akorud
сообщение Jun 25 2013, 18:10
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Цитата(Golikov A. @ Jun 25 2013, 18:18) *
На первый взгляд решил проблему

ДДР перевел на свой клок генератор, всю остальную систему на другой. Клок генератор ДДР через констраин разместил в модуле х0у1. После синтеза максимальная частота работы платы возросла со 103 до 146 МГц, и зависания вроде бы тоже ушли.

Думаю проблема была в нестабильном клоке или клоке на гране возможности...

Ну явно все указывает на проблемы с таймингом. В XPS -> Project -> View Design summary -> Performance Summary -> Timing Constraints было "All Constraints Met"? И дальше, кликая на линк - все ли клоки представлены в таблице?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jun 26 2013, 04:44
Сообщение #4


Гуру
******

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



не знаю, не знал раньше где смотреть. Смотрел по отчетам что в консоле пишутся при синтезе и прочее, там вроде бы никаких ужасов не видел. Я вот сейчас вдруг подумал, у меня входной клок в схему 125 МГц. То есть когда схема пишет что будет работать на 100 МГц это она про входной клок говорит или все таки про клок микроблайза?
Если меньше 100 она не давала экспортнуть проект, если больше все ок, так что я думал что это про клок микроблайза, а может она про входной писала, тогда реально 103 МГц не могло работать. Хотя некоторое время и в некоторых условиях работало...

наверное все же это клок проца, и 103 МГц - это очень маленький запас, на ДДР клоки приходили небось с разными длинными путями, и прочие прелести, отсюда и работало все через одно место...
Go to the top of the page
 
+Quote Post
akorud
сообщение Jul 1 2013, 07:40
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Цитата(Golikov A. @ Jun 26 2013, 06:44) *
не знаю, не знал раньше где смотреть. Смотрел по отчетам что в консоле пишутся при синтезе и прочее, там вроде бы никаких ужасов не видел. Я вот сейчас вдруг подумал, у меня входной клок в схему 125 МГц. То есть когда схема пишет что будет работать на 100 МГц это она про входной клок говорит или все таки про клок микроблайза?
Если меньше 100 она не давала экспортнуть проект, если больше все ок, так что я думал что это про клок микроблайза, а может она про входной писала, тогда реально 103 МГц не могло работать. Хотя некоторое время и в некоторых условиях работало...

наверное все же это клок проца, и 103 МГц - это очень маленький запас, на ДДР клоки приходили небось с разными длинными путями, и прочие прелести, отсюда и работало все через одно место...

Я бы вам советовал поглубже изучить тему таймингов, ибо тут не зная можно получить кучу проблем на ровном месте. "Система пишет" - это ничего не значит, грубая оценка после синтеза. У меня система пишет что буде работать на 50, а работает на 320. Все интересное происходит на этапе Place&Route. Тут роутер должен точно знать все клоки в системе - от вас. И будет так располагать примитивы и тянуть дорожки чтобы не было "разных длинных путей". Если он не будет знать - сделает как бог на душу положит. После P&R - последний этап timing analysis - он оценивает будет ли работать то, что получилось на заданных клоках. И вот это скромное но очень желанное сообщение "All constraints met" - результат его работы.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jul 1 2013, 07:46
Сообщение #6


Гуру
******

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



Да я уже это понял. Я раньше делал только модули, не имел дела с процами в плисе. Потому пока набираюсь всего и вся... Собственно основная часть моих вопрос сейчас, где на что надо смотреть и что надо проверять... и как что кому объяснить...

На сегодняшний момент получил очередную работающую систему, правда такое было уже 2 разаsm.gif Надеюсь в скором времени не всплывет что-то очередное что я не учел по незнанию... Вообще это конечно стремный момент, обычно я люблю гарантировать что-то в проектах не тестами что пока все работает, а архитектурой и пониманием... Но как тут этого добиться я правда не знаю...
Go to the top of the page
 
+Quote Post
akorud
сообщение Jul 1 2013, 18:25
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Цитата(Golikov A. @ Jul 1 2013, 09:46) *
Да я уже это понял. Я раньше делал только модули, не имел дела с процами в плисе. Потому пока набираюсь всего и вся... Собственно основная часть моих вопрос сейчас, где на что надо смотреть и что надо проверять... и как что кому объяснить...

На сегодняшний момент получил очередную работающую систему, правда такое было уже 2 разаsm.gif Надеюсь в скором времени не всплывет что-то очередное что я не учел по незнанию... Вообще это конечно стремный момент, обычно я люблю гарантировать что-то в проектах не тестами что пока все работает, а архитектурой и пониманием... Но как тут этого добиться я правда не знаю...

Могу только сказать из собственного опыта - возможно. У меня похожая на вашу (попроще) система работает как часы, серийно выпускается и никто не жалуется sm.gif
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jul 2 2013, 13:51
Сообщение #8


Гуру
******

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



Опятушки накосятушки...

Всплыл очередной косячек, думаю как всегда от незнания предмета.

LwIP работает на двух таймерах в RAW режиме. Быстрый таймер 10 мСек, медленный 500 мСек.

С компьютера сыпятся данные раз в 50 мСек, принимаются плисиной, быстро обрабатываются и шлются обратно.

Долгое время работает все хорошо. Но иногда компьютер начинает ретрансмитить пакеты и мой замечательный управляющий поток затыкается. Через некоторое время все восстанавливается, быстро 3-4 ретрансмита, но у меня через этот канал налажено управление, и приятный реалтайм управления сбивается.

Анализируя шарком увидел что ретрансмиты начинаются после прихода подтверждающего прием пакета с 0 контрольной суммой. Хотя обычно она есть. Сумму у меня считает трех-головый МАК контроллер (не лайт который), железным образом. Причем в пакетах от компьютера этой суммы почему то никогда нет... А если приходит пакет с 0 суммой от плис сразу начинаются ретрансмиты.

Кто подобное видел, что может делать так что сумма не считается и в пакет не добавляется?
Go to the top of the page
 
+Quote Post
akorud
сообщение Jul 4 2013, 05:51
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Вот может будет интересно, игрался тут со своей системой и в Post-PAR Static Timing Report вижу
Код
Timing constraint: TS_clock_generator_0_clock_generator_0_SIG_PLL0_CLKOUT3 =
PERIOD TIMEGRP         "clock_generator_0_clock_generator_0_SIG_PLL0_CLKOUT3"
TS_sys_clk_pin         HIGH 50%;
For more information, see Period Analysis in the Timing Closure User Guide (UG612).

1070970 paths analyzed, 23092 endpoints analyzed, 3 failing endpoints
3 timing errors detected. (3 setup errors, 0 hold errors, 0 component switching limit errors)
Minimum period is  10.112ns.

И дальше
Код
....
Slack:                  -0.112ns (requirement - (data path - clock path skew + uncertainty))
  Source:               microblaze_0/microblaze_0/MicroBlaze_Core_I/Performance.Decode_I/PC_Module_I/Use_BTC_2.bt_delayslot_target_18 (FF)
  Destination:          microblaze_0/microblaze_0/MicroBlaze_Core_I/Performance.Using_ICache.ICache_I1/Data_RAM_Module/Using_B16_S2.The_BRAMs[1].RAMB16_S2_1 (RAM)

И сразу знаю, что случайные зависания практически гарантированы, вопрос времени и температуры.
Go to the top of the page
 
+Quote Post

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

 


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


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