Jump to content

    
Sign in to follow this  
Doka

[Vivado] конфликт SysMon при создании прошивки для US+

Recommended Posts

Описание прjблемы: при заливке битстрима в VU13P, она оканчивается неудачей с формулировкой ошибки:

ERROR: [Labtools 27-3165] End of startup status: LOW

На этапе сборки битстрима из RTL нет никаких критикал-варнингов, за которые можно было бы зацепиться, чтобы понять в чём дело,

гугл выдавал советы:

  • понизить частоту JTAG
  • усилить питание по линии Vint из-за вероятных просадок во время конфига

 

Методом последовательного исключения (от голого проекта с обёрткой с постепенным добавлением начинки) было установлено, что как только в проект добавляется SysMon, то это вызывает незаливаемость битстрима, притом на этапе сборки битстрима никаких подозрительных вещей не выводится в лог,

 

встречался ли кто-то с таким и как это лечится, если лечится?*..

Share this post


Link to post
Share on other sites

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

 

С таким не встречался, но как гипотеза:

Может вы в настойках SysMon накрутили низкие пороги (в отличие от дефолтных) и при загрузке они срабатывают и сбрасывают прошивку?

 

Удачи! Rob.

Share this post


Link to post
Share on other sites

это мысль....

в скрипте стоит:

set_property BITSTREAM.CONFIG.OVERTEMPSHUTDOWN enable [current_design]

и как я понимаю,  это строчка действует только, если в проект добавлен SysMon

Share this post


Link to post
Share on other sites

это как-то странно...

 

выяснил, что причиной послужила совокупность факторов: в tcl:

set_property BITSTREAM.CONFIG.OVERTEMPSHUTDOWN ENABLE [current_design]

а в параметрах SYSMONE4:

  .INIT_50(16'hAF7B), //ALM[0]  upper alarm trigger 70°C - Vref_int
  .INIT_54(16'hAA5F), //ALM[0]  lower alarm reset   60°C - Vref_int
  .INIT_53(16'hB723), //OT      upper alarm limit   85°C - Vref_int
  .INIT_57(16'hAF7B), //OT      lower alarm reset   70°C - Vref_int

брал пример из верилог-референса UG580, там правда для US (SYSMONE1), а у меня  SYSMONE4 и коэф. при формулах немного иные, но не настолько же!

вот как было задано в UG580 для SYSMONE1:

  .INIT_50(16'hB723),// Temp upper alarm trigger 85°C - For On-Chip Reference
  .INIT_54(16'hAA5F),// Temp lower alarm reset   60°C - For On-Chip Reference
  .INIT_53(16'hCB93),// OT   upper alarm limit  125°C - For On-Chip Reference
  .INIT_57(16'hAF7B),// OT   lower alarm reset   70°C - For On-Chip Reference

что интересно - не работает также и с дефолтными (из UG580 значениями регистров 0x50,0x54, 0x53,0x57)!!!

 

UPD:

изучаю дальше UG580 - пишут как раз про разницу поведения для регистров 0x54, 0x57 для SYSMONE4

 

Share this post


Link to post
Share on other sites

Победил проблему!!!

 

конфиг в UG580 рабочий, НО только для SYSMONE1, а для SYSMONE4 надо принимать во внимание следующее:

Quote

In SYSMONE4 for UltraScale+ devices only, temperature alarms can operate in a mode similar to the supply sensor alarms. When bit 0 of 0x54 or 0x57 is set High, the respective alarm is enabled when the temperature range falls below the target temperature as specified in bits 15:1 in these registers.

в итоге всё заволось после минорной правки бита 0 в 0x57:

  .INIT_57(16'hAF7С), //OT      lower alarm reset   70°C - Vref_int

 

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

Share this post


Link to post
Share on other sites

Кстати, столкнулся со странностью на Kintex US - в проекте, где инстанцированы SYSMON и блок SPI для конфигурационной флешки (т.е. используется STARTUP, через который выходит SPI CLK) - пин DONE остается в нуле после загрузки. При этом Internal Done status - high, Done pin - low. И чип работает. Всякие тестовые проекты, где нет ни того, ни другого - DONE поднимается.

Подозреваю, какая-то кривизна со STARTUP, но пока нет времени разобраться.

Share this post


Link to post
Share on other sites

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

13 hours ago, Doka said:

Победил проблему!!!

Мелкая неприятность, а не проблема оказалась :smile:  Хотя когда FPGA на плате за 30-50K уе. вдруг отказывается грузиться тот еще мандраж бывает.:swoon:

 

Удачи! Rob.

Share this post


Link to post
Share on other sites
2 hours ago, Flood said:

Кстати, столкнулся со странностью на Kintex US - в проекте, где инстанцированы SYSMON и блок SPI для конфигурационной флешки (т.е. используется STARTUP, через который выходит SPI CLK) - пин DONE остается в нуле после загрузки. При этом Internal Done status - high, Done pin - low. И чип работает. Всякие тестовые проекты, где нет ни того, ни другого - DONE поднимается

Pin Done - это тристейт выход и если его снаружи кто то тянет вниз то соответственно он будет в нуле. Может быть проблема в этом? Хотя обчно (по крайней мере в более ранних версиях так было) внутреннее состояние читается прямо с пина.

Share this post


Link to post
Share on other sites
1 час назад, vitus_strom сказал:

Pin Done - это тристейт выход и если его снаружи кто то тянет вниз то соответственно он будет в нуле.

Снаружи никого нет, кроме пуллапа и входа светодиодного драйвера.

На тестовых прошивках DONE поднимается, на описываемой - нет. Думаю, проблема в STARTUP и клоке - внутреннее состояние DONE не переключается наружу, т.к. на выходном триггере нет клока. Ну или что-то в этом роде.

Пока нет возможности разобраться, т.к. проблема в данном случае достаточно косметическая - некорректная индикация.

Share this post


Link to post
Share on other sites

да возможно проблемы с настройкой стартапа (отсутствие лока, настройка цикла выстваления, отстутствие клока для стартапа).

Но как правило с дефолтными настройками должно работать.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this