Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: параметры IP-корки
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Anton1990
Все добрый день.
Есть IP корка (например, комплексный умножитель). Как в программе на VHDL определить параметры этой корки, а именно, разрядность входных-выходных данных, задержка в тактах.
И еще.
Все наверное знают что можно использовать компонент с помощью конструкции:
inst: entity work.Мой_компонент port map(....);
без предварительного объяевления этого компонента. Вопрос: а можно ли таким же образом использовать компоненты IP?
Заранее спасибо за ответы.
RobFPGA
Приветствую!
Цитата(Anton1990 @ Jul 2 2018, 17:53) *
Все добрый день.
Есть IP корка (например, комплексный умножитель). Как в программе на VHDL определить параметры этой корки, а именно, разрядность входных-выходных
...
Было бы неплохо уточнить в каком виде и в каком IDE есть эти корки?
Корки они ведь разные бывают wink.gif - есть как камень - в виде скомпилированных netlist. Их не угрызть и ничего не поменять.
Есть просто черствые - для смены параметров надо размачивать запускать скрипт/corogen для генерации новой.
Ну и свежие вкусняшки в исходниках (правда очень часто плесневелые криптованные) - их можно использовать в RTL как обычные модули задавая параметры через generic.

Удачи! Rob.

Anton1990
Цитата(RobFPGA @ Jul 2 2018, 18:30) *
Приветствую!
Было бы неплохо уточнить в каком виде и в каком IDE есть эти корки?
Корки они ведь разные бывают wink.gif - есть как камень - в виде скомпилированных netlist. Их не угрызть и ничего не поменять.
Есть просто черствые - для смены параметров надо размачивать запускать скрипт/corogen для генерации новой.
Ну и свежие вкусняшки в исходниках (правда очень часто плесневелые криптованные) - их можно использовать в RTL как обычные модули задавая параметры через generic.

Удачи! Rob.


Работаю в Vivado. Использую корки из IP генератора. VHDL.
Мне не нужно менять у них параметры из VHDL. Корку я сгенерю/перегенерю в ручную. Мне необходимо в своем коде знать параметры корки, например задержку в тактах (Latensiy которую она вносит в сигнал.
RobFPGA
Приветствую!
Цитата(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
Цитата
Мне необходимо в своем коде знать параметры корки, например задержку в тактах (Latensiy которую она вносит в сигнал.

А что говорит user guide на корку ?
Vengin
Цитата(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
Цитата(Vengin @ Jul 3 2018, 12:44) *

По-хорошему надо все смотреть bb-offtopic.gif
Tpeck
Цитата(Flip-fl0p @ Jul 2 2018, 21:16) *
А что говорит user guide на корку ?

Получается, надо будет UG читать для каждой корки!!!!!???
andrew_b
Цитата(Tpeck @ Jul 3 2018, 13:10) *
Получается, надо будет UG читать для каждой корки!!!!!???
Ну можете из астрала информацию доставать.
RobFPGA
Приветствую!
Цитата(Tpeck @ Jul 3 2018, 13:10) *
Получается, надо будет UG читать для каждой корки!!!!!???
Чтение доков это такое жесткое садо-мазо - не каждому по душе - нетрадиционные способы ... куда интереснее biggrin.gif

Удачи! Rob.
Anton1990
Цитата(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
Цитата(Anton1990 @ Jul 4 2018, 17:49) *
А вот так чего то не хочет. Говорит ощибка. мол нету такой библиотеки
Ну, при этом подразумевается, что эта библиотека у вас добавлена в проект (vlib, vmap).
А кто конкретно "говорит", в какой IDE ругается (и на каком этапе)?
Anton1990
Цитата(Vengin @ Jul 4 2018, 17:51) *
Ну, при этом подразумевается, что эта библиотека у вас добавлена в проект (vlib, vmap).
А кто конкретно "говорит", в какой IDE ругается (и на каком этапе)?

Говорит вивада на этапе синтеза. Кажется, проще объявить компонент как и раньше.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.