|
|
|
параметры IP-корки, определение параметров IP на vhdl |
|
|
|
Jul 2 2018, 15:30
|
Профессионал
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643
|
Приветствую! Цитата(Anton1990 @ Jul 2 2018, 17:53) Все добрый день. Есть IP корка (например, комплексный умножитель). Как в программе на VHDL определить параметры этой корки, а именно, разрядность входных-выходных ... Было бы неплохо уточнить в каком виде и в каком IDE есть эти корки? Корки они ведь разные бывают - есть как камень - в виде скомпилированных netlist. Их не угрызть и ничего не поменять. Есть просто черствые - для смены параметров надо размачивать запускать скрипт/corogen для генерации новой. Ну и свежие вкусняшки в исходниках (правда очень часто плесневелые криптованные) - их можно использовать в RTL как обычные модули задавая параметры через generic. Удачи! Rob.
|
|
|
|
|
Jul 2 2018, 16:17
|
Частый гость
Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584
|
Цитата(RobFPGA @ Jul 2 2018, 18:30) Приветствую! Было бы неплохо уточнить в каком виде и в каком IDE есть эти корки? Корки они ведь разные бывают - есть как камень - в виде скомпилированных netlist. Их не угрызть и ничего не поменять. Есть просто черствые - для смены параметров надо размачивать запускать скрипт/corogen для генерации новой. Ну и свежие вкусняшки в исходниках (правда очень часто плесневелые криптованные) - их можно использовать в RTL как обычные модули задавая параметры через generic. Удачи! Rob. Работаю в Vivado. Использую корки из IP генератора. VHDL. Мне не нужно менять у них параметры из VHDL. Корку я сгенерю/перегенерю в ручную. Мне необходимо в своем коде знать параметры корки, например задержку в тактах (Latensiy которую она вносит в сигнал.
|
|
|
|
|
Jul 2 2018, 17:31
|
Профессионал
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643
|
Приветствую! Цитата(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.
|
|
|
|
|
Jul 3 2018, 09:44
|
Частый гость
Группа: Свой
Сообщений: 82
Регистрация: 7-02-07
Из: Беларусь, г. Минск
Пользователь №: 25 149
|
Цитата(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.
|
|
|
|
|
Jul 3 2018, 10:10
|
Местный
Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243
|
Цитата(Flip-fl0p @ Jul 2 2018, 21:16) А что говорит user guide на корку ? Получается, надо будет UG читать для каждой корки!!!!!???
|
|
|
|
|
Jul 4 2018, 14:49
|
Частый гость
Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584
|
Цитата(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. А вот так чего то не хочет. Говорит ощибка. мол нету такой библиотеки
|
|
|
|
|
Jul 4 2018, 14:51
|
Частый гость
Группа: Свой
Сообщений: 82
Регистрация: 7-02-07
Из: Беларусь, г. Минск
Пользователь №: 25 149
|
Цитата(Anton1990 @ Jul 4 2018, 17:49) А вот так чего то не хочет. Говорит ощибка. мол нету такой библиотеки Ну, при этом подразумевается, что эта библиотека у вас добавлена в проект (vlib, vmap). А кто конкретно "говорит", в какой IDE ругается (и на каком этапе)?
Сообщение отредактировал Vengin - Jul 4 2018, 15:00
|
|
|
|
|
Jul 5 2018, 13:51
|
Частый гость
Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584
|
Цитата(Vengin @ Jul 4 2018, 17:51) Ну, при этом подразумевается, что эта библиотека у вас добавлена в проект (vlib, vmap). А кто конкретно "говорит", в какой IDE ругается (и на каком этапе)? Говорит вивада на этапе синтеза. Кажется, проще объявить компонент как и раньше.
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|