Jump to content

    
Sign in to follow this  
attaboy

ZC706 и Vivado 2020.1

Recommended Posts

Есть отладочная плата ZC706 c ZYNQ-7000 XC7Z045 на борту и Vivado 2020.1. Нужно на этой плате проверить ref_design zc706_bist. Проблема в том, что ref_design  сделан для Vivado 2015, где был SDK, и соответственно все скрипты из папки ready_for_download не работают. Как я понимаю в последних версиях Vivado на смену SDK пришел Vitis нужно как-то использовать его. Пока я в процессе изучения, кто-нибудь может объяснить, как перевести ref_design zc706_bist в вид, совместимый с Vivado 2020.1 (ну наверное любой версии с Vitis)?

Share this post


Link to post
Share on other sites
12 hours ago, attaboy said:

Пока я в процессе изучения, кто-нибудь может объяснить, как перевести ref_design zc706_bist в вид, совместимый с Vivado 2020.1 (ну наверное любой версии с Vitis)?

Почти все скрипты от Xilinx очень зависят от версии. Так что, единственный путь - ставить 2015.1 и разворачивать проект в ней. Потом, уже развернутый проект открывать в 2020+. И дальше Вивада сама подскажет, что делать.

Share this post


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

Почти все скрипты от Xilinx очень зависят от версии. Так что, единственный путь - ставить 2015.1 и разворачивать проект в ней. Потом, уже развернутый проект открывать в 2020+. И дальше Вивада сама подскажет, что делать.

Да проект то и так открывается в 2020. И пересобирается до битстрима, после обновления ядер. Но столкнулся с проблемой, что нужен Vitis. А мне он до этого был не нужен, поэтому не устанавливал. А теперь, раз уж делать обновление, решил поставить последнюю версию - 2021.2. А тут ещё одно проблема - чтобы установить Vivado+Vitis 2021.2, нужно почти 200Гб дискового пространства!  У меня в текущей конфигурации было несколько меньше.

Хотелось по быстрому, без вникания в детали Цинков, проверить работоспособность платы, но получается как обычно.

10 hours ago, gosha-z said:

А что такого там делают эти скрипты?

Прошивают плату. Вот например вот этот скрипт:

open_hw_manager
connect_hw_server -url localhost:3121
current_hw_target [get_hw_targets */xilinx_tcf/Digilent/*]
set_property PARAM.FREQUENCY 15000000 [get_hw_targets */xilinx_tcf/Digilent/*]
open_hw_target
current_hw_device [lindex [get_hw_devices] 1]
refresh_hw_device [lindex [get_hw_devices] 1]
create_hw_cfgmem -hw_device [lindex [get_hw_devices] 1] -mem_dev  [lindex [get_cfgmem_parts {s25fl128s-1.8v-qspi-x8-dual_parallel}] 0]
set_property PROGRAM.BLANK_CHECK  0 [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 1 ]]
set_property PROGRAM.ERASE  1 [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 1 ]]
set_property PROGRAM.CFG_PROGRAM  1 [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 1 ]]
set_property PROGRAM.VERIFY  1 [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 1 ]]
refresh_hw_device [lindex [get_hw_devices] 1]
set_property PROGRAM.ADDRESS_RANGE  {use_file} [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 1 ]]
set_property PROGRAM.FILES {bist_app.mcs} [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 1]]
set_property PROGRAM.BLANK_CHECK  0 [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 1 ]]
set_property PROGRAM.ERASE  1 [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 1 ]]
set_property PROGRAM.CFG_PROGRAM  1 [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 1 ]]
set_property PROGRAM.VERIFY  1 [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 1 ]]
program_hw_cfgmem -hw_cfgmem [get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 1 ]]

Жалуется, что не найден fsbl. Хотя в директории есть файл zynq_fsbl.elf

Share this post


Link to post
Share on other sites

Выяснилась проблема с платой - про прошивке PL части через JTAG не поднимается prog_done, соответственно выдается ошибка. Но при этом PS часть не сконфигурирована. Вопрос - а вообще можно прошивать через JTAG PL часть при несконфигурированной PS? Или нужно сначала сконфигурировать PS, а потом PL?

Share this post


Link to post
Share on other sites
15 minutes ago, attaboy said:

Выяснилась проблема с платой - про прошивке PL части через JTAG не поднимается prog_done, соответственно выдается ошибка. Но при этом PS часть не сконфигурирована. Вопрос - а вообще можно прошивать через JTAG PL часть при несконфигурированной PS? Или нужно сначала сконфигурировать PS, а потом PL?

ЕМНП нет, там все на проц завязано. Был опыт с 45ым цинком. 

Share this post


Link to post
Share on other sites
1 minute ago, des00 said:

ЕМНП нет, там все на проц завязано. Был опыт с 45ым цинком. 

На ZC706 как раз и стоит 45-й цинк. А зачем тогда на плате JTAG? Для отладки?

Делал пример из UG940 - vivado-tutorial-embedded-design. Там в первом примере выполняется ряд шагов в Vivado, затем дизайн экспортируется в Vitis. Потом в Vitis ещё ряд настроек, и после этого бинарник прошивается через JTAG. Это происходит до конфигурирования процессора. И вот у меня до прошивки все нормально получается, а на этапе прошивки - ошибка.

Share this post


Link to post
Share on other sites
52 minutes ago, attaboy said:

На ZC706 как раз и стоит 45-й цинк. А зачем тогда на плате JTAG? Для отладки?

Делал пример из UG940 - vivado-tutorial-embedded-design. Там в первом примере выполняется ряд шагов в Vivado, затем дизайн экспортируется в Vitis. Потом в Vitis ещё ряд настроек, и после этого бинарник прошивается через JTAG. Это происходит до конфигурирования процессора. И вот у меня до прошивки все нормально получается, а на этапе прошивки - ошибка.

Для отладки. У меня была своя система на ПЛИС, проц не влиял на работу, только статистику читал. По привычке залил-посмотрел, не получалось отлаживаться. Не стартовала прошивка. Пришлось через проц все делать, т.е. проект с отладчиком заливался процем. Я еще удивлялся почему так сделано, но т.к. в проце и линуксе я как свинья в апельсинах, не углублялся. 

Share this post


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

Вопрос - а вообще можно прошивать через JTAG PL часть при несконфигурированной PS? Или нужно сначала сконфигурировать PS, а потом PL?

При отладке 7х цинков с сдк сначала загружается плис (можно отдельной командой из меню или включить галку в конфиге отладки), затем по команде начала отладки запускается скрипт конфигурирования проца (аналог работы фсбл-а) и далее уже запускается ваш код. Инициализация проца перед загрузкой плис не нужна, но она обязательно нужна (после или до по вкусу) если в плис используются такты с проца - без запуска скрипта инициализации или фсбл их не будет. Можно так же загрузить код в проц во внутренней памяти без запуска скрипта инициализации, но тогда вся периферия будет отключена и фактически можно будет только пошагово пройтись по строчкам кода. При загрузке с флэшки сначала загружается фсбл в проц и инициализирует периферию проца, затем фсбл грузит плис и напоследок загружает и запускает штатный процессорный код.

Edited by fguy

Share this post


Link to post
Share on other sites

Собрал свой проект. Содержит процессорное IP-ядро и логику включения светодиода на AXI шине процессора. В Vivado вроде проект собирается нормально. Затем экспортирую hardware в Vitis через создание файла *.xsa. Создаю там новый Application Project. На этапе конфигурирования Application Project нужно указать процессор. Для XC7Z045   может быть несколько вариантов - нулевое ядро, первое ядро, или SMP. Но c моим xsa почему-то процессорные ядра не показываются. Похоже, что их там нет, по какой-то причине Vivado соптимизировало процессорное ядро (я так полагаю). Но просматривая Utilization reports в Vivado я не нашел там никакой информации о процессорном ядре.  Можно ли где-нибудь в Vivado посмотреть процессорные ресурсы, которые были использованы при сборке прошивки? Или там отчеты только о PL части?

Share this post


Link to post
Share on other sites

PS и PL части могут работать независимо друг от друга, битстрим и все отчеты "вивады" относится только к PL части. В "виваде" конфигурируется IP-ядро PS для генерации *.xsa файла, синтез и имплементация не влияют на этот файл, а *.xsa файл это zip архиф со скриптами и "си" кодом настроек перефирии процессора для загрузчика.

Share this post


Link to post
Share on other sites
24.12.2021 в 21:04, attaboy сказал:

Создаю там новый Application Project.

Прежде чем это делать вам нужно создать Platform Project на базе файла xsa - это аналог bsp в старом сдк. Если только осваиваете витис, то лучше для начала пройтись  по туториалам с офсайта для освоения продукта.

Вивады 2020 это промежуточные версии новой платформы витис и не лучшего качества - если у вас нет к ним никакой принципиальной привязки по купленным ядрам, то лучше перейти на последнюю 2021.2.

Share this post


Link to post
Share on other sites
23 hours ago, fguy said:

Прежде чем это делать вам нужно создать Platform Project на базе файла xsa - это аналог bsp в старом сдк. Если только осваиваете витис, то лучше для начала пройтись  по туториалам с офсайта для освоения продукта.

Вивады 2020 это промежуточные версии новой платформы витис и не лучшего качества - если у вас нет к ним никакой принципиальной привязки по купленным ядрам, то лучше перейти на последнюю 2021.2.

Да, я так и сделал - перешел на последнюю версию, 2021.2. В принципе немного разобрался, собрал небольшой проект с работающей PLи PS частями. Обнаружил следующее: Vivado генерирует корректный xsa только из блокдизайна, а если просто вставить IP ядро процессорной части в текстовый топовый файл, то xsa генерируется с ошибкой.  Можно ли  обойтись без блокдизайна для генерации xsa?

Share this post


Link to post
Share on other sites
35 минут назад, attaboy сказал:

Можно ли  обойтись без блокдизайна для генерации xsa?

Видимо это особенность вивады. Сталкивался с похожим эффектом на обычной плис без встроенных процов - если ядро ддр4 (имеет в составе микроблэйз) вставлять в топ вне бд, а в бд будет микроблэйз, то в сдк будет отображаться 2 микроблэйза. Я пользуюсь бд всегда, поэтому с такой проблемой практически не сталкиваюсь. Поищите на офсайте на форуме или в AR - может кто что нашел.

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