Перейти к содержанию

    

параметры IP-корки

Все добрый день.

Есть IP корка (например, комплексный умножитель). Как в программе на VHDL определить параметры этой корки, а именно, разрядность входных-выходных данных, задержка в тактах.

И еще.

Все наверное знают что можно использовать компонент с помощью конструкции:

inst: entity work.Мой_компонент port map(....);

без предварительного объяевления этого компонента. Вопрос: а можно ли таким же образом использовать компоненты IP?

Заранее спасибо за ответы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

Все добрый день.

Есть IP корка (например, комплексный умножитель). Как в программе на VHDL определить параметры этой корки, а именно, разрядность входных-выходных

...

Было бы неплохо уточнить в каком виде и в каком IDE есть эти корки?

Корки они ведь разные бывают ;) - есть как камень - в виде скомпилированных netlist. Их не угрызть и ничего не поменять.

Есть просто черствые - для смены параметров надо размачивать запускать скрипт/corogen для генерации новой.

Ну и свежие вкусняшки в исходниках (правда очень часто плесневелые криптованные) - их можно использовать в RTL как обычные модули задавая параметры через generic.

 

Удачи! Rob.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Приветствую!

Было бы неплохо уточнить в каком виде и в каком IDE есть эти корки?

Корки они ведь разные бывают ;) - есть как камень - в виде скомпилированных netlist. Их не угрызть и ничего не поменять.

Есть просто черствые - для смены параметров надо размачивать запускать скрипт/corogen для генерации новой.

Ну и свежие вкусняшки в исходниках (правда очень часто плесневелые криптованные) - их можно использовать в RTL как обычные модули задавая параметры через generic.

 

Удачи! Rob.

 

Работаю в Vivado. Использую корки из IP генератора. VHDL.

Мне не нужно менять у них параметры из VHDL. Корку я сгенерю/перегенерю в ручную. Мне необходимо в своем коде знать параметры корки, например задержку в тактах (Latensiy которую она вносит в сигнал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

Работаю в Vivado. Использую корки из IP генератора. VHDL.

Мне не нужно менять у них параметры из VHDL. Корку я сгенерю/перегенерю в ручную. Мне необходимо в своем коде знать параметры корки, например задержку в тактах (Latensiy которую она вносит в сигнал.

Ааa... Вы хотите узнать вкус корки не попробовав :) Увы - автоматом из RTL этого не сделать.

 

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

 

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

 

Похожий нетрадиционный способ но более розовый ;) - только в этом случае парсите исходник обертки корки генерируемый Vivado выдергивая от туда теги типа (* CORE_GENERATION_INFO = ... C_IR_ID_INSTR=0 ...

 

 

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Мне необходимо в своем коде знать параметры корки, например задержку в тактах (Latensiy которую она вносит в сигнал.

А что говорит user guide на корку ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Все наверное знают что можно использовать компонент с помощью конструкции:

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.

 

Мне необходимо в своем коде знать параметры корки, например задержку в тактах (Latensiy которую она вносит в сигнал.
А что говорит user guide на корку ?

ИМХО, для целей автора нужно смотреть доки не на конкретную корку, а на что-то типа UG896 "Designing with IP", где в целом описано, как работать с корками. И в частности есть некое описание и примеры tcl команд, которые и советовал RobFPGA.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
А что говорит user guide на корку ?

Получается, надо будет UG читать для каждой корки!!!!!???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Получается, надо будет UG читать для каждой корки!!!!!???
Ну можете из астрала информацию доставать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

Получается, надо будет UG читать для каждой корки!!!!!???
Чтение доков это такое жесткое садо-мазо - не каждому по душе - нетрадиционные способы ... куда интереснее :biggrin:

 

Удачи! Rob.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
А что конкретно подразумевается под словом "использовать"?

Да в 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.

 

А вот так чего то не хочет. Говорит ощибка. мол нету такой библиотеки

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
А вот так чего то не хочет. Говорит ощибка. мол нету такой библиотеки
Ну, при этом подразумевается, что эта библиотека у вас добавлена в проект (vlib, vmap).

А кто конкретно "говорит", в какой IDE ругается (и на каком этапе)?

Изменено пользователем Vengin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Ну, при этом подразумевается, что эта библиотека у вас добавлена в проект (vlib, vmap).

А кто конкретно "говорит", в какой IDE ругается (и на каком этапе)?

Говорит вивада на этапе синтеза. Кажется, проще объявить компонент как и раньше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти