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

Проблемы с констрейнами в Spartan-6

Приветствую многоуважаемых инженеров ! Дико извиняюсь, возможно проблема чайнецкая, но что-то никак не могу справиться сам.

Есть несложный проект на Spartan-6 (более точно XC6SLX16), под ISE 14.7 (linux) Никаких PLL, дополнительных клоковых доменов и т.п. Начиналось просто с моргания светодиодами через UART реализованный на плисине. Дальше туда просто докидывался код, отлаживаемый на симуляторе.

Так вот. Когда всё только начиналось, я прописал там два временнЫх констрейна, даже особо не вдаваясь в подробности, что оно означает (взял из демки к отладочной плате):

NET "clk" LOC = T8 | TNM_NET = sys_clk_pin;
TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 50000 kHz;
С этим всё прекрасно собиралось и работало. Сегодня, когда я захотел залить в железо отлаженный код, произошло следующее:
 
WARNING:ConstraintSystem:137 - Constraint <TNM_NET = sys_clk_pin;>
   [src/prog_test.ucf(1)]: No appropriate instances for the TNM constraint are
   driven by "clk".
 
WARNING:ConstraintSystem:191 - The TNM 'sys_clk_pin', does not directly or
   indirectly drive any flip-flops, latches and/or RAMS and cannot be actively
   used by the referencing Period constraint 'TS_sys_clk_pin'.
 
WARNING:ConstraintSystem:197 - The following specification is invalid because
   the referenced TNM constraint was removed:
   <TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 50000 kHz;>
   [src/prog_test.ucf(2)]
 
После чего проект был обрезан в ноль. Сначала я подумал, что забыл подключить выходы к ногам. Проверил - нет, не забыл. Но результат неизменен. Поглядел по англоязычным форумам. Проблема имеет место быть и у них. Но вразумительных и информативных ответов нет. Никто не подскажет как с этим бороться ??? Впервые с FPGA ловлю такой прикол ! Правда со Spartan-6 никогда не работал, да и вообще последний раз имел дело с Xilinx лет 20 назад.
Заранее благодарен добрым людям !
Евгений. 

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


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

Если верить второму варнингу то он говорит что эта цепь никак не связана с триггерами и их клоковыми входами. 
Такое возможно по нескольким причинам:
1. Цепь в результате оптимизации была полностью выпилена из проекта. 
2. Реальная цепь называется как то иначе...

Я бы ставил на первый вариант.

Цитата

После чего проект был обрезан в ноль.

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

Читайте выше варнинги. Может из вашего проекта ничего не выходит например или ещё какой косяк.

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


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

54 minutes ago, MegaVolt said:

Если верить второму варнингу то он говорит что эта цепь никак не связана с триггерами и их клоковыми входами. 
Такое возможно по нескольким причинам:
1. Цепь в результате оптимизации была полностью выпилена из проекта. 
2. Реальная цепь называется как то иначе...

Да, это тоже смутило. Смотрел. Оно во-первых с триггерами связано. Более того, клок вообще нигде не используется как комбинационный сигнал, и активный фронт везде положительный. Цепь синхронизации у меня всегда называется одинаково - clk. Либо clk_0, clk_1, clk_2 и т.п, если проект многодоменный. Тоже на всякий случай проверил. Всё в порядке. Вобщем непонятка полная. Думаю сейчас скачать более старую версию и попробовать собрать на ней. Возможно баг самого ISE.

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


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

Если из проекта что-то удаляется, то синтезатор пишет об этом. Читайте лог.

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


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

15 hours ago, eugenk said:
После чего проект был обрезан в ноль. Сначала я подумал, что забыл подключить выходы к ногам. Проверил - нет, не забыл. Но результат неизменен. Поглядел по англоязычным форумам. Проблема имеет место быть и у них. Но вразумительных и информативных ответов нет. Никто не подскажет как с этим бороться ??? Впервые с FPGA ловлю такой прикол ! Правда со Spartan-6 никогда не работал, да и вообще последний раз имел дело с Xilinx лет 20 назад.
Заранее благодарен добрым людям !
Евгений. 

Посмотрите RTL schematic после синтеза.

Все, что имеет только входы, и не имеет никаких выходов, он будет оптимизирован в 0.

Или выложите проект.

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


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

20 hours ago, eugenk said:

Сначала я подумал, что забыл подключить выходы к ногам. Проверил - нет, не забыл

Этого недостаточно. Ещё должна быть какая-то осознанная логика внутри ПЛИС, подключенная к выводам. Вообще это  распространенная проблема, когда проект работает в симуляторе, но оптимизируется во время сборки. В 99% случаев - это ошибка соединения. Где-то что-то не подключено или неправильно подключено. Я бы не стал списывать такую ошибку на проблему ISE14.7. Да, в этой системе есть много проблем, но в целом она вполне работоспособная и уж точно способна собрать проект уровня UART.

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


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

5 hours ago, gosha said:

Посмотрите RTL schematic после синтеза.

Все, что имеет только входы, и не имеет никаких выходов, он будет оптимизирован в 0.

Или выложите проект.

Тоже решил идти этим путем. Выложить проект это не вариант. Не потому что он какой-то суперсекретный, просто там сотня с лишним килобайт кода на верилоге (это некий 36-битный процессор), кто это будет смотреть ! Пока решил разобраться с латчями. Я получил кучу предупреждений, что из-за неполноты case или if сгерерирован латч. Сейчас написал на яве утилитку, читающую интерфейс модуля и раскидывающую его в ucf по всем ногам корпуса. Попробую синтезировать компоненты по отдельности и посмотреть что с ними происходит. А потом по возможности удалить латчи.   А то сейчас из-за этого синтезируется совсем не то что я себе представлял, и я не очень понимаю что именно.

51 minutes ago, attaboy said:

Я бы не стал списывать такую ошибку на проблему ISE14.7.

Уже проверил. Скачал 13.3. То же самое. Так что проблема в проекте.

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...