Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы с системой на спартане6
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Golikov A.
Всем привет.

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

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

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


Вопрос: что можно добавить в систему чтобы диагностировать где и почему она падает? Кто собирал что-то подобное? На что еще обратить внимание. Что-то я уже не знаю чего и делать то....
Любые мысли и любая помощь... хелп!
Golikov A.
На первый взгляд решил проблему

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

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

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

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

Ну явно все указывает на проблемы с таймингом. В XPS -> Project -> View Design summary -> Performance Summary -> Timing Constraints было "All Constraints Met"? И дальше, кликая на линк - все ли клоки представлены в таблице?
Golikov A.
не знаю, не знал раньше где смотреть. Смотрел по отчетам что в консоле пишутся при синтезе и прочее, там вроде бы никаких ужасов не видел. Я вот сейчас вдруг подумал, у меня входной клок в схему 125 МГц. То есть когда схема пишет что будет работать на 100 МГц это она про входной клок говорит или все таки про клок микроблайза?
Если меньше 100 она не давала экспортнуть проект, если больше все ок, так что я думал что это про клок микроблайза, а может она про входной писала, тогда реально 103 МГц не могло работать. Хотя некоторое время и в некоторых условиях работало...

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

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

Я бы вам советовал поглубже изучить тему таймингов, ибо тут не зная можно получить кучу проблем на ровном месте. "Система пишет" - это ничего не значит, грубая оценка после синтеза. У меня система пишет что буде работать на 50, а работает на 320. Все интересное происходит на этапе Place&Route. Тут роутер должен точно знать все клоки в системе - от вас. И будет так располагать примитивы и тянуть дорожки чтобы не было "разных длинных путей". Если он не будет знать - сделает как бог на душу положит. После P&R - последний этап timing analysis - он оценивает будет ли работать то, что получилось на заданных клоках. И вот это скромное но очень желанное сообщение "All constraints met" - результат его работы.
Golikov A.
Да я уже это понял. Я раньше делал только модули, не имел дела с процами в плисе. Потому пока набираюсь всего и вся... Собственно основная часть моих вопрос сейчас, где на что надо смотреть и что надо проверять... и как что кому объяснить...

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

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

Могу только сказать из собственного опыта - возможно. У меня похожая на вашу (попроще) система работает как часы, серийно выпускается и никто не жалуется sm.gif
Golikov A.
Опятушки накосятушки...

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

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

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

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

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

Кто подобное видел, что может делать так что сумма не считается и в пакет не добавляется?
akorud
Вот может будет интересно, игрался тут со своей системой и в 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)

И сразу знаю, что случайные зависания практически гарантированы, вопрос времени и температуры.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.