OparinVD 0 20 января, 2022 Опубликовано 20 января, 2022 · Жалоба При включении XIL_IFX_TRACE едет куча информации, а при включении XIL_IFX_DEBUG на "всё" интерконнект сломался, при изменении количества интерфейсов стал вываливаться с руганью на другие параметры - неожиданно :) В любом случае, для меня это большой шаг вперед, буду развлекаться, поклон вам! Еще напоследок вопрос: namespace для IPI - ipx? или каждая корка в своем namespace живет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 35 20 января, 2022 Опубликовано 20 января, 2022 · Жалоба 2 minutes ago, OparinVD said: Еще напоследок вопрос: namespace для IPI - ipx? или каждая корка в своем namespace живет? Увы не скажу, я давно уже с этим разбирался, да так и не доразбирался Да и необходимости особой не было, для интереса просто возился. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 65 21 января, 2022 Опубликовано 21 января, 2022 · Жалоба 20 часов назад, OparinVD сказал: Вовсе нет... Как раз наоборот, результат идентичный. Я хочу сказать, что вроде как не параметризуемый снаружи cell вполне себе меняет внутреннюю структуру и подтягивает разные исходники в зависимости от параметров... Чего-то подобного я и хочу добиться от своей корки Всё же не понятен такой момент. Вот если вы нарисуете руками и отредактируете всё, что нужно, то если теперь сохранить этот BD в Tcl скрипт (через экспорт), потом удалить BD из проекта, и, наконец, запустить сохранённый скрипт из консоли, оно родит корректно всё то же самое, что вы руками сделали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OparinVD 0 21 января, 2022 Опубликовано 21 января, 2022 · Жалоба Для хранения в git я отдельно сохраняю проект в tcl и отдельно сохраняю BD в tcl. Потом в скрипт восстановления проекта добавляю source BD.tcl. Да, после этого рождается тот же самый BD, что я руками рисовал (с поправкой, конечно, на взаимной расположение BD_cell'ов) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 65 21 января, 2022 Опубликовано 21 января, 2022 · Жалоба Т.е. если скрипт рожает то, что надо, следовательно он подтаскивает внутри всё, что требуется. Посмотрите, какие команды он там применяет. Чтобы восстановить вид, надо кроме этого тикля ещё ui файлик сохранять, в нём layout и хранится, насколько помню. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OparinVD 0 21 января, 2022 Опубликовано 21 января, 2022 · Жалоба 31 minutes ago, dxp said: кроме этого тикля ещё ui файлик сохранять, в нём layout и хранится Да, нашел такой файлик, спасибо, буду иметь в виду. 36 minutes ago, dxp said: Посмотрите, какие команды он там применяет Команды там понятные. HDL исходники подтягиваются из внешней папки при восстановлении проекта, а при восстановлении BD - в основном create_bd_cell и connect_net. Я сейчас пробую разобраться с тиклем, который лежит в папке /ipcore/xgui/. В нем расписан собственно сам интерфейс кастомизации (страницы, группы, поля) и прописаны функции update и validate для параметров. Только вот пока не докопался до того, как эта вся механика работает, кто кого вызывает? То ли сюда и напихать все эти create_bd_cell и connect_net, то ли наоборот подключать его как библиотеку в скрипте восстановления BD и рисовать этот BD с учетом параметров из GUI... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OparinVD 0 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба On 1/21/2022 at 11:42 AM, dxp said: Всё же не понятен такой момент. Вот если вы нарисуете руками и отредактируете всё, что нужно, то если теперь сохранить этот BD в Tcl скрипт (через экспорт), потом удалить BD из проекта, и, наконец, запустить сохранённый скрипт из консоли, оно родит корректно всё то же самое, что вы руками сделали? Только что столкнулся с такой ситуацией: На выходе стоит axis_switch, который коммутирует несколько потоков в один. В гуи задал ему параметр ARB_ON_TLAST=1, в таком виде ipcore на основе BD без проблем упаковывался, всё работало. Сделал экспорт BD в tcl, и после восстановления этот параметр оказался равен 0. Скопировал из консоли строчку с принудительной установкой в 1, он мне заявил, что нельзя установить disabled параметр. Обошел проблему заменой switch на axis_interconnect... Не стал заводить новую тему, просто вспомнился старый разговор :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OparinVD 0 23 августа, 2022 Опубликовано 23 августа, 2022 · Жалоба Спустя полгода, я снова добрался до этой темы, и в этой войне я снова проигрываю Обновлю хотелки, и что имеется у меня на сегодняшнем этапе развития: Топ-левел в моем проекте собран в BD из моих hdl-ных модулей, связанных стандартными axi интерконнектами и другими стандартными корками. Далее этот BD я упаковываю как ipcore и отправляю на дальнейшую сборку. Но в таком ipcore всё намертво прибито гвоздями, ничего не настроить. К тому же появляются новые варианты конфигурации, и приходится поддерживать несколько независимых схем, хоть и имеющих между собой много общего. Хочу научиться собирать bd динамически на основе галочек в настроечном gui (ну или по значениям property в xci). Плюс хочу генерировать свои дополнительные output products, например yaml-описание для программистов, файл connectivity.ini и *.xo (для сборки под Alveo). И я не перестаю верить в то, что в понятие "генерация" входит возможность именно генерировать нечто кастомное, а не только экспорт hdl с места на место. Как это реализовать непосредственно в коде, вроде, проблем нет. По крайней мере, я знаю, где всё это посмотреть в примерах. А вот как привязать запуск моих функций к соответствующим функциям vivado - хоть убей, не могу найти. Вряд ли каждый ipcore вешает свой хук, например, на generate_target ... Я игрался с XIL_IFX_TRACE, можно проследить всю цепочку вызова функций внутри, но нет первичного запуска. Например, при добавлении на канвас axis_interconnect trace-цепочка начинается с запуска update_boundary из его bd.tcl, а для axis_switch запускается init из его bd.tcl... Как vivado понимает, кому какую функцию запустить надо? Облазил с grep всё что доступно в текстовом виде tcl/xml - не нашел, где бы ipcore регистрировал свои функции в функциях vivado. Аналогичная ситуация и для generate_target. Я даже пробовал что-то типа info body ::generate_target - не показал ничего :) Прошу стартового пинка в направлении, как создавать динамические корки, а дальше я уж сам :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 24 августа, 2022 Опубликовано 24 августа, 2022 · Жалоба 9 hours ago, OparinVD said: Топ-левел в моем проекте собран в BD из моих hdl-ных модулей, связанных стандартными axi интерконнектами и другими стандартными корками. Далее этот BD я упаковываю как ipcore и отправляю на дальнейшую сборку. Но в таком ipcore всё намертво прибито гвоздями, ничего не настроить. К тому же появляются новые варианты конфигурации, и приходится поддерживать несколько независимых схем, хоть и имеющих между собой много общего. Прошу стартового пинка в направлении, как создавать динамические корки, а дальше я уж сам :) пробовал раскидать простейшую корку UART в бд, чтобы вытаскивала сама частоту, без задания настроек, как сделать зависимые крутиляторы. Перечитал доки с вивадо, по разработке IP, сама корка доступна в сорцах RTL/TCL, но так и не понял как это все реализовать и упаковать. В итоге бросил. Для меня там какие то высшие материи, но может быть у вас получится) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OparinVD 0 24 августа, 2022 Опубликовано 24 августа, 2022 · Жалоба И на том спасибо, а то я уж начал думать, что со мной что-то не так :) Связывался с ребятами из plis2, они сходятся на том, что для обычных смертных доступна упаковка ipcore только в виде полностью статичной единицы, а вся кастомизация доступна только на основе hdl параметров, прокинутых наверх. Помнится в похожей теме уважаемый RobFPGA говорил, модули на BD это скрипты на TCL... Вот именно это мне сейчас и нужно. Есть ли у Вас чем поделиться по этой теме? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 24 августа, 2022 Опубликовано 24 августа, 2022 · Жалоба 37 minutes ago, OparinVD said: Есть ли у Вас чем поделиться по этой теме? не, я пас. мои потуги закончились вот на этом Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OparinVD 0 24 августа, 2022 Опубликовано 24 августа, 2022 · Жалоба пока на подъеме энтузиазма мне кажется, что я готов терпеть боль и неудобства дебага :) лишь бы начать upd: для начала в качестве эксперимента запустил упаковку не обычной корки, а axi periferal... Обнаружил, что в Advanced группе файлов появился раздел Block Diagram, в котором собственно лежит bd.tcl: поредактировал его, всё сохраняется и обратно не затирается... эта боль вроде как не побеспокоит. Напихал в каждую proc свой puts {Hellow world} и получил его в ответ и от init, и от pre_propagate, и от popogate, значит они как-то зарегистрировались в системе и запускаются. А может достаточно просто придерживаться предопределенных имен Еще гадство заключается в том, что раздел Block Diagram отсутствует для простых смертных. Как мастер упаковки его впихнул остается неясным... но это всё вроде не мешает продолжать тыкать палкой в этот черный ящик, работает и ладно :) Еще в разделе drivers нашел скрипт с функцией generate. По идее она должна генерировать xparameters.h для микроба, и мне бы она подошла. Второе гадство в том, что я не получил от нее Hellow world при генерации BD, видимо она запускается в другом месте, а счастье было так возможно :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OparinVD 0 28 декабря, 2022 Опубликовано 28 декабря, 2022 · Жалоба Я из будущего оставлю себе из прошлого подборку ссылочек: my-greatest-xilinx-hack ip-packaging-parameter-passing help-with-automatic-generation-of-parameter-such-as-clock-frequency how-to-i-get-the-auto-button-in-custom-ip inferring-axi-clock-freq-inside-custom-ip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться