Перейти к содержанию
    

Есть отладочная плата 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)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 hours ago, attaboy said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 minutes ago, attaboy said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, des00 said:

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

52 minutes ago, attaboy said:

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, attaboy сказал:

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

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

Изменено пользователем fguy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

vivado никаким бесом не регулирует сколько процессоров. а вот vitis - он определяет на каком ядре проца что будет работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

24.12.2021 в 21:04, attaboy сказал:

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

23 hours ago, fguy said:

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

35 минут назад, attaboy сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...