Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ISE выдает ошибку
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
serg_k1
Здравствуйте. Использую ISE , zynq XC7Z020 , в проекте используются компоненты fmc_imageon_vita_receiver от AVNET и gmii_to_rgmii от xilinx. При Implement Design на Map выдается ошибка
MapLib:1120 - IDELAYCTRL
fmc_imageon_vita_receiver_0/fmc_imageon_vita_receiver_0/USER_LOGIC_I/VITA_COR
E_I/vita_iserdes_v5.vita_iserdes/generate_idelay.serdesidelayrefclk/IDELAYCTR
L_INST[0].u_idelayctrl, gmii_to_rgmii_0/gmii_to_rgmii_0/dlyctrl have no
IODELAY_GROUP association. Only one IODELAY Controller may have no LOC
constraint and no IODELAY_GROUP.
Как быть?
Amurak
Найти блочек idelayctrl и задать для него аттрибут:

attribute IODELAY_GROUP : string;
attribute IODELAY_GROUP of u_idelayctrl : label is "GMII";

и для всех линий задержек, которыми он управляет задать такое же значение.

Хотя если это готовая корка, то по идее уже должно быть все прописано.
serg_k1
Цитата(Amurak @ Nov 26 2014, 17:07) *
Найти блочек idelayctrl и задать для него аттрибут:

attribute IODELAY_GROUP : string;
attribute IODELAY_GROUP of u_idelayctrl : label is "GMII";

и для всех линий задержек, которыми он управляет задать такое же значение.

Хотя если это готовая корка, то по идее уже должно быть все прописано.

Т.е. предлагается доработать компонент?
Нашел в fmc_imageon_vita_receiver следующее
Код
IDELAYCTRL_INST : for bnk_i in 0 to NROF_DELAYCTRLS-1 generate
  u_idelayctrl : IDELAYCTRL
    port map (
      rdy     => idelay_ctrl_rdy_i(bnk_i),
      refclk  => REF_CLK,
      rst     => RESET_DELAYCTRL
    );
end generate IDELAYCTRL_INST;


а в gmii_to_rgmii
Код
dlyctrl : IDELAYCTRL
      port map (
         RDY               => open,
         REFCLK            => refclk,
         RST               => idelayctrl_reset_sync
      );

получились одинаковые имена
Тогда , допустим в fmc_imageon_vita_receiver, нужно добавить
attribute IODELAY_GROUP : string;
attribute IODELAY_GROUP of u_idelayctrl : label is "IDELAYCTRL_fmc";
а может просто заменить IDELAYCTRL на IDELAYCTRL_fmc ?
а т.к. больше ничего не найдено , то
действие
и для всех линий задержек, которыми он управляет задать такое же значение.
считать выполненным?
Amurak
>может просто заменить IDELAYCTRL на IDELAYCTRL_fmc ?

IDELAYCTRL - это не имя, а тип компонента у Xilinx. Этот компонент используется совместно с библиотечными компонентами IDELAYE2.

То есть на каждую группу компонентов IDELAYE2 должен быть один компонент IDELAYCTRL.

При этом для группы IDELAYE2 и для управляющего ими IDELAYCTRL должен быть объявлен атрибут IODELAY_GROUP:

attribute IODELAY_GROUP : string;
attribute IODELAY_GROUP of <название IDELAYCTRL> : label is "ololo";
attribute IODELAY_GROUP of <название IDELAYE2> : label is "ololo";

Вы для начала просто посмотрите, у вас эти атрибуты вообще объявлены или их вообще нет?
serg_k1
Цитата(Amurak @ Nov 26 2014, 18:55) *
Вы для начала просто посмотрите, у вас эти атрибуты вообще объявлены или их вообще нет?

Посмотрел. Никакого объявления нет.
Я понимаю так. Пока компоненты не использовались вместе , то IDELAYCTRL использовался системой для каждого автоматически . Но при совместном использовании необходимо указать , что это различные группы.
значит нужно для каждого ( ? ) указать свою группу.
в библиотечном модуле gmii_to_rgmii.vhd сделать следующее изменение
attribute IODELAY_GROUP : string;
attribute IODELAY_GROUP of dlyctrl : label is "ololo1";

а в библиотечном модуле компонента fmc_imageon_vita_receiver iserdes_idelayctrl.vhd сделать следующее изменение
attribute IODELAY_GROUP : string;
attribute IODELAY_GROUP of u_idelayctrl : label is "ololo2";
Так? Этого достаточно? Или может достаточно только в одном.
И еще вопрос. Если они видят друг друга, то нельзя ли указать это где-то в общем модуле (например в top), чтобы не править библиотечные компоненты?
Amurak
Цитата(serg_k1 @ Nov 27 2014, 10:34) *
в библиотечном модуле gmii_to_rgmii.vhd сделать следующее изменение
attribute IODELAY_GROUP : string;
attribute IODELAY_GROUP of dlyctrl : label is "ololo1";

а в библиотечном модуле компонента fmc_imageon_vita_receiver iserdes_idelayctrl.vhd сделать следующее изменение
attribute IODELAY_GROUP : string;
attribute IODELAY_GROUP of u_idelayctrl : label is "ololo2";

Еще раз. Атрибут IODELAY_GROUP должен быть назначен на контроллер линий задержек (IDELAYCTRL) и на все задержки, которыми он управляет (IDELAYE2).

По идее - да, можно задать только одну группу, раз ISE пишет
Only one IODELAY Controller may have no LOC constraint and no IODELAY_GROUP

>И еще вопрос. Если они видят друг друга, то нельзя ли указать это где-то в общем модуле (например в top), чтобы не править библиотечные компоненты?
Не уверен, что сработает, но можно попробовать задать так:
attribute IODELAY_GROUP of top/u_idelayctrl : label is "ololo2"
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.