Lionet 0 2 сентября, 2016 Опубликовано 2 сентября, 2016 · Жалоба Добрый день Есть Vivado и SDK, версия 2014.4 и отладочные платы (ZC706, ZedBoard и другие). Есть несколько сложностей с корректным взаимодействием между Вивадой и SDK, и вообще иделогией Xilinx в этом плане. Разъясните, пожалуйста, кто "в теме". 1. Vivado: Export hardware - здесь момент следущий: опция "Include bitstream" - насколько я понимаю, если нам нужен только процессор (PS) без программируемой логики (PL), то создаём Block design, добавляем Zynq Processing system, настраиваем, экспортируем без Include bitstream (его и не будет), работаем в SDK как с обычным ARM-процессором. Так? Если мы что-то насоздавали в ПЛИС, то генерируем bitstream и экспортируем с ним. Но тогда возникает проблема синхронизации файлов - копия битстрима уходит в SDK и, если мы потом что-то изменим в FPGA-коде, SDK всё равно будет использовать старый вариант. Можно, конечно, попробовать обновить данные путём Change Hardware Platform Specification в SDK или вручную скопировать новый битстрим, но это какие-то костыли. Непонятно. 2. SDK. Создание конфигурации отладки/выполнения (Debug/Run configurations) приложения. Вообще, по логике должно быть два варианта: 1) полный сброс системы, заливка указанного пользователем bitstream, загрузка в память приложения и его отладка. Настройку процессора можно было бы сделать в виде Си кода в начале приложения ну или tcl-скриптами, как сейчас, но как-то более прозрачно. 2) сброс только процессора (если в ПЛИС ничего менять не надо, для экономии времени), инциализация процессора, загрузка и запуск приложения. У Xilinx всё как-то хитрее - в окнах Run Configurations, Debug Configurations и Program FPGA кнопки Search (которая позволяет, видимо, выбрать файл (bitstream или скрипт) из текущей Hardware Platform Specification) и Browse (позволяющая выбрать произвольный файл) становятся активными и неактивными по каждый раз по-новому по какому-то неведомому алгоритму. Опция Run ps7_post_config (которая отвечает, судя по Гуглу, как раз за включение мота PS-PL и выдачу тактовых сигналов и сброса в PL от PS) никак не даёт себя включить (хотя в других проектах бывает доступна). В общем, чуть-чуть сильно запутался (с) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndruB 0 4 ноября, 2016 Опубликовано 4 ноября, 2016 · Жалоба 1. Если мы что-то насоздавали в ПЛИС, то генерируем bitstream и экспортируем с ним. Но тогда возникает проблема синхронизации файлов - копия битстрима уходит в SDK и, если мы потом что-то изменим в FPGA-коде, SDK всё равно будет использовать старый вариант. Можно, конечно, попробовать обновить данные путём Change Hardware Platform Specification в SDK или вручную скопировать новый битстрим, но это какие-то костыли. Непонятно. 2. Вообще, по логике должно быть два варианта: 1) полный сброс системы, заливка указанного пользователем bitstream, загрузка в память приложения и его отладка. Настройку процессора можно было бы сделать в виде Си кода в начале приложения ну или tcl-скриптами, как сейчас, но как-то более прозрачно. 2) сброс только процессора (если в ПЛИС ничего менять не надо, для экономии времени), инциализация процессора, загрузка и запуск приложения. 1. После любого изменения в FPGA надо а. экспортировать bitstream б. зайти в SDK и перегенерировать все bsp "Re-generate BSP Sources" (выделяете папку проекта bsp, правая кнопка мыши) если последний пункт не сделать, то начинаются дикие глюки работы программы. 2. Эти варианты и реализованы в SDK. 1) Согласен, что работа со штатной загрузкой SDK не радует, но tcl-скрипты удобны. Я взял за основу bat файлы загрузки из примера zc706_bist\ready_for_download, переделал их под проект и пользуюсь только ими. 2) При запуске debug это и происходит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться