Версия для печати темы
Форум разработчиков электроники ELECTRONIX.ru _ Системы на ПЛИС - System on a Programmable Chip (SoPC) _ параметры IP-корки
Автор: Anton1990 Jul 2 2018, 14:53
Все добрый день.
Есть IP корка (например, комплексный умножитель). Как в программе на VHDL определить параметры этой корки, а именно, разрядность входных-выходных данных, задержка в тактах.
И еще.
Все наверное знают что можно использовать компонент с помощью конструкции:
inst: entity work.Мой_компонент port map(....);
без предварительного объяевления этого компонента. Вопрос: а можно ли таким же образом использовать компоненты IP?
Заранее спасибо за ответы.
Автор: RobFPGA Jul 2 2018, 15:30
Приветствую!
Цитата(Anton1990 @ Jul 2 2018, 17:53)
Все добрый день.
Есть IP корка (например, комплексный умножитель). Как в программе на VHDL определить параметры этой корки, а именно, разрядность входных-выходных
...
Было бы неплохо уточнить в каком виде и в каком IDE есть эти корки?
Корки они ведь разные бывают
- есть как камень - в виде скомпилированных netlist. Их не угрызть и ничего не поменять.
Есть просто черствые - для смены параметров надо
размачивать запускать скрипт/corogen для генерации новой.
Ну и свежие вкусняшки в исходниках (правда очень часто
плесневелые криптованные) - их можно использовать в RTL как обычные модули задавая параметры через generic.
Удачи! Rob.
Автор: Anton1990 Jul 2 2018, 16:17
Цитата(RobFPGA @ Jul 2 2018, 18:30)
Приветствую!
Было бы неплохо уточнить в каком виде и в каком IDE есть эти корки?
Корки они ведь разные бывают
- есть как камень - в виде скомпилированных netlist. Их не угрызть и ничего не поменять.
Есть просто черствые - для смены параметров надо
размачивать запускать скрипт/corogen для генерации новой.
Ну и свежие вкусняшки в исходниках (правда очень часто
плесневелые криптованные) - их можно использовать в RTL как обычные модули задавая параметры через generic.
Удачи! Rob.
Работаю в Vivado. Использую корки из IP генератора. VHDL.
Мне не нужно менять у них параметры из VHDL. Корку я сгенерю/перегенерю в ручную. Мне необходимо в своем коде знать параметры корки, например задержку в тактах (Latensiy которую она вносит в сигнал.
Автор: RobFPGA Jul 2 2018, 17:31
Приветствую!
Цитата(Anton1990 @ Jul 2 2018, 19:17)
Работаю в Vivado. Использую корки из IP генератора. VHDL.
Мне не нужно менять у них параметры из VHDL. Корку я сгенерю/перегенерю в ручную. Мне необходимо в своем коде знать параметры корки, например задержку в тактах (Latensiy которую она вносит в сигнал.
Ааa... Вы хотите узнать вкус корки не попробовав
Увы - автоматом из RTL этого не сделать.
Есть два варианта - нормальный - когда генерируете корку в имении ее кодируете основные параметры (типа dpram_1Kx16p2_512x32p1) ну и глазками следите чтобы имя совпадало с параметром в RTL (ну или можно сразу насушить мешок корок разного сорта
и использовать нужную в зависимости от параметра).
И нетрадиционной ориентации вариант - когда скриптом получаете значение параметров корки - report_property [get_ips core_name] ... парсите портянку CONFIG.* параметров и пишете нужные значения в файл ... который подключается потом при синтезе вашего RTL (как pkg или include)
.
Похожий нетрадиционный способ но более розовый
- только в этом случае парсите исходник обертки корки генерируемый Vivado выдергивая от туда теги типа (* CORE_GENERATION_INFO = ... C_IR_ID_INSTR=0 ...
Удачи! Rob.
Автор: Flip-fl0p Jul 2 2018, 18:16
Цитата
Мне необходимо в своем коде знать параметры корки, например задержку в тактах (Latensiy которую она вносит в сигнал.
А что говорит user guide на корку ?
Автор: Vengin Jul 3 2018, 09:44
Цитата(Anton1990 @ Jul 2 2018, 17:53)
Все наверное знают что можно использовать компонент с помощью конструкции:
inst: entity work.Мой_компонент port map(....);
без предварительного объяевления этого компонента. Вопрос: а можно ли таким же образом использовать компоненты IP?
А что конкретно подразумевается под словом "использовать"?
Да в vhdl коде можно точно так же без объявления компонента написать, скажем, для комплексного умножителя:
Код
LIBRARY cmpy_v6_0_14;
USE cmpy_v6_0_14.cmpy_v6_0_14;
...
U0 : entity cmpy_v6_0_14.cmpy_v6_0_14
Т.е. вместо библиотеки
work, нужно указывать библиотеку IP-Core, в данном случае
cmpy_v6_0_14.
Цитата(Flip-fl0p @ Jul 2 2018, 21:16)
Цитата(Anton1990 @ Jul 2 2018, 19:17)
Мне необходимо в своем коде знать параметры корки, например задержку в тактах (Latensiy которую она вносит в сигнал.
А что говорит user guide на корку ?
ИМХО, для целей автора нужно смотреть доки не на конкретную корку, а на что-то типа UG896 "Designing with IP", где в целом описано, как работать с корками. И в частности есть некое описание и примеры tcl команд, которые и советовал RobFPGA.
Автор: Flip-fl0p Jul 3 2018, 09:57
Цитата(Vengin @ Jul 3 2018, 12:44)
По-хорошему надо все смотреть
Автор: Tpeck Jul 3 2018, 10:10
Цитата(Flip-fl0p @ Jul 2 2018, 21:16)
А что говорит user guide на корку ?
Получается, надо будет UG читать для каждой корки!!!!!???
Автор: andrew_b Jul 3 2018, 10:16
Цитата(Tpeck @ Jul 3 2018, 13:10)
Получается, надо будет UG читать для каждой корки!!!!!???
Ну можете из астрала информацию доставать.
Автор: RobFPGA Jul 3 2018, 11:02
Приветствую!
Цитата(Tpeck @ Jul 3 2018, 13:10)
Получается, надо будет UG читать для каждой корки!!!!!???
Чтение доков это такое жесткое садо-мазо - не каждому по душе - нетрадиционные способы ... куда интереснее
Удачи! Rob.
Автор: Anton1990 Jul 4 2018, 14:49
Цитата(Vengin @ Jul 3 2018, 12:44)
А что конкретно подразумевается под словом "использовать"?
Да в vhdl коде можно точно так же без объявления компонента написать, скажем, для комплексного умножителя:
Код
LIBRARY cmpy_v6_0_14;
USE cmpy_v6_0_14.cmpy_v6_0_14;
...
U0 : entity cmpy_v6_0_14.cmpy_v6_0_14
Т.е. вместо библиотеки
work, нужно указывать библиотеку IP-Core, в данном случае
cmpy_v6_0_14.
А вот так чего то не хочет. Говорит ощибка. мол нету такой библиотеки
Автор: Vengin Jul 4 2018, 14:51
Цитата(Anton1990 @ Jul 4 2018, 17:49)
А вот так чего то не хочет. Говорит ощибка. мол нету такой библиотеки
Ну, при этом подразумевается, что эта библиотека у вас добавлена в проект (vlib, vmap).
А кто конкретно "говорит", в какой IDE ругается (и на каком этапе)?
Автор: Anton1990 Jul 5 2018, 13:51
Цитата(Vengin @ Jul 4 2018, 17:51)
Ну, при этом подразумевается, что эта библиотека у вас добавлена в проект (vlib, vmap).
А кто конкретно "говорит", в какой IDE ругается (и на каком этапе)?
Говорит вивада на этапе синтеза. Кажется, проще объявить компонент как и раньше.
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)