Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не пойму что за байда с Sinplify в проекте ISE 8.2
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Dimonira
Решил попробовать проект (с 1Г МАК-ом) перевести с синтеза XST на Sinplify 8.2 pro.
Синтез делается успешно. А дальше транслятор не хочет переваривать прежний ucf файл.
Причина одна и таже - не может найти в проекте либо NET, либо INST.
Вот для примера пишет такую ошибку:
Код
ERROR:NgdBuild:756 - Line 48 in 'top.ucf': Could not find net(s)
   '*rgmii_interface/rgmii_rx_clk_bufg' in the design.  To suppress this error
   specify the correct net name or remove the constraint.

При этом связь rgmii_rx_clk_bufg в этом модуле (rgmii_interface) присутствует, так же как и она же инверсная (180) под названием not_rgmii_rx_clk_bufg. В этом модуле они определены так:
Код
  wire       rgmii_rx_clk_bufg;
  wire       not_rgmii_rx_clk_bufg;
...
  DCM rgmii_rxc_dcm (
         .CLKIN  (rgmii_rxc_ibufg),
         .CLKFB  (rgmii_rx_clk_bufg),
         .RST    (dcm_reset),
         .CLK0   (rgmii_rx_clk_dcm),
         .CLK180 (not_rgmii_rx_clk_dcm),
         .LOCKED (dcm_locked)
         );
...
   BUFG bufg_rgmii_rx_clk     (.I(rgmii_rx_clk_dcm),     .O(rgmii_rx_clk_bufg));
   BUFG bufg_not_rgmii_rx_clk (.I(not_rgmii_rx_clk_dcm), .O(not_rgmii_rx_clk_bufg));
...
   always @(posedge rgmii_rx_clk_bufg or posedge reset)
...
   always @(posedge not_rgmii_rx_clk_bufg or posedge reset)
...

А в ucf файле транслятор ругается только на строку, соответствующую rgmii_rx_clk_bufg, а на строку для not_rgmii_rx_clk_bufg не ругается. Вот эти строки:
Код
NET "*rgmii_interface/rgmii_rx_clk_bufg" TNM_NET = "rgmii_rx_clk_bufg";
...
NET "*rgmii_interface/not_rgmii_rx_clk_bufg" TNM_NET = "not_rgmii_rx_clk_bufg";

Почему это происходит? Как от этого избавиться?
Просто выкинуть строки из ucf нельзя - они "времязадающие".
des00
Цитата
Почему это происходит?


синтезатор похерил иерархию проекта + переименовал цепи

Цитата
Как от этого избавиться?


самый простой способ откатиться к XST, более сложный переписать ucf файл под новые имена
Dimonira
А где их взять, эти новые имена?
des00
Цитата(Dimonira @ Jun 20 2007, 07:03) *
А где их взять, эти новые имена?


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

ИМХО оставить XST.
andrew_b
Цитата(des00 @ Jun 20 2007, 14:55) *
более сложный переписать ucf файл под новые имена

Это бесперспективно. Надо заставить синтезатор не коверкать имена с помощью соответствующего атрибута. Если этот сигнал внутри иерархии, то сохранить иерархию. Иначе придется каждый раз переписывать ucf.
des00
Цитата(andrew_b @ Jun 20 2007, 08:20) *
Это бесперспективно. Надо заставить синтезатор не коверкать имена с помощью соответствующего атрибута. Если этот сигнал внутри иерархии, то сохранить иерархию. Иначе придется каждый раз переписывать ucf.


насколько я помню, по работе с симплифаем сохранение иерархии на имена внутренних сигналов не распространяеться. Хотя сейчас уже может быть поправили сие. При синтезе он может запросто переименовать сигнал как ему будет угодно.
думаю что собирать подобные дезайны и констрейны имеет смысл в самом ISE, а то что на генерил симплифай подключать как блек-боксы.
andrew_b
Цитата(des00 @ Jun 21 2007, 05:20) *
насколько я помню, по работе с симплифаем сохранение иерархии на имена внутренних сигналов не распространяеться.

Не понял фразы.

Цитата
При синтезе он может запросто переименовать сигнал как ему будет угодно.

Атрибутом syn_keep ему можно дать по слишком шаловливым ручкам.
Dimonira
У меня с помощью syn_keep почему-то не удалось сохранить имена связей. Если вообще в них дело было.

Так что я вернулся к XST и удачно завершил дело.
des00
Цитата(andrew_b @ Jun 20 2007, 23:47) *
Не понял фразы.


Атрибутом syn_keep ему можно дать по слишком шаловливым ручкам.


в топике приведен констрейн в котором участвует, похоже комбинационный сигнал. А симплифай при синтезе комбинационные сигналы переименовывает (добавляет свое окончание).

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