Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум разработчиков электроники 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 есть эти корки?
Корки они ведь разные бывают wink.gif - есть как камень - в виде скомпилированных netlist. Их не угрызть и ничего не поменять.
Есть просто черствые - для смены параметров надо размачивать запускать скрипт/corogen для генерации новой.
Ну и свежие вкусняшки в исходниках (правда очень часто плесневелые криптованные) - их можно использовать в RTL как обычные модули задавая параметры через generic.

Удачи! Rob.


Автор: Anton1990 Jul 2 2018, 16:17

Цитата(RobFPGA @ Jul 2 2018, 18:30) *
Приветствую!
Было бы неплохо уточнить в каком виде и в каком IDE есть эти корки?
Корки они ведь разные бывают wink.gif - есть как камень - в виде скомпилированных 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... Вы хотите узнать вкус корки не попробовав sm.gif Увы - автоматом из RTL этого не сделать.

Есть два варианта - нормальный - когда генерируете корку в имении ее кодируете основные параметры (типа dpram_1Kx16p2_512x32p1) ну и глазками следите чтобы имя совпадало с параметром в RTL (ну или можно сразу насушить мешок корок разного сорта santa2.gif и использовать нужную в зависимости от параметра).

И нетрадиционной ориентации вариант - когда скриптом получаете значение параметров корки - report_property [get_ips core_name] ... парсите портянку CONFIG.* параметров и пишете нужные значения в файл ... который подключается потом при синтезе вашего RTL (как pkg или include) wacko.gif .

Похожий нетрадиционный способ но более розовый wink.gif - только в этом случае парсите исходник обертки корки генерируемый 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) *

По-хорошему надо все смотреть bb-offtopic.gif

Автор: 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 читать для каждой корки!!!!!???
Чтение доков это такое жесткое садо-мазо - не каждому по душе - нетрадиционные способы ... куда интереснее biggrin.gif

Удачи! 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)