реклама на сайте
подробности

 
 
> Отключение глоабльных сигналов в Quartus, AUTO_GLOBAL_CLOCK OFF - вроде как не работает
Cordroy
сообщение Oct 10 2011, 13:06
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 13-09-10
Из: Israel
Пользователь №: 59 464



Всем привет!

Проблема вкратце такая:

выставлена опция в Квартусе (QSF):
Код
set_global_assignment -name AUTO_GLOBAL_CLOCK OFF


и она как будто не работает - фиттер продолжает запихивать ненужные мне сигналы в глобальныe сети и в конце заваливается, потому как их всего 16. А сигналов "похожих" на клок - несколько сотен.

Нужен какой-то способ абсолютно запретить Квартусу что-либо класть в глобальный раутинг.

Кто-то знает способ?

-----------------------------------------------------------------------------

Подробнее:

в QSF выставлено следующее:

Код
set_global_assignment -name AUTO_GLOBAL_CLOCK OFF
set_global_assignment -name AUTO_GLOBAL_REGISTER_CONTROLS OFF


Плюс, пара десятков не-клоков которые я уже успел отловить:

Код
set_instance_assignment -name GLOBAL_SIGNAL OFF -to u_ ... ... _НЕ_КЛОК
set_instance_assignment -name GLOBAL_SIGNAL OFF -to u_ ...  ..._НЕ_КЛОК


Плюс, несколько НУЖНЫХ мне установок:

Код
set_instance_assignment -name GLOBAL_SIGNAL ON-to u_ ...  ..._ДА_КЛОК
set_instance_assignment -name GLOBAL_SIGNAL ON -to u_ ...  ..._ДА_КЛОК


В самом RTL есть еще несколько глобальных буферов для клока, в сумме с установленными в QSF - всего 16.

В процессе фиттинга Квартус кидает подобную ошибку:

Код
Error: Design requires 17 clock signal(s) of type Global Clock but device can contain only 16 clock signals of type Global Clock


И далее список клоков, из которых 16 правильные и еще один ненужный.

-------------------------------------------

Проблема в том, что компиляция до момента ошибки, несколько часов и каждый раз получается поймать только один ненужный клок.
Я его выставляю в список GLOBAL_SIGNAL OFF и запускаю заново и так сто-питсот раз.

и еще этот Квартус меняет имена и не всегда кушает "*" в QSF. И один раз он засовывает, например, combout~54 в globals, а в следующей компиляции - combout~100500.
Имена меняются, непредсказуемо - особенно когда он какой-то wire для улучшения тайминга/раутинга заталкивает в глобальный нет. И имя этого wire будет что-то вроде __~47 , существует оно только в этой конкретной компиляции.
------------------------------------------

Сам проект - эмуляция большого чипа на ПЛИСе. Поэтому код огромен, написан почти сотней людей.
В виду чувствительности такого кода, оптимизации связанные с изменением многих блоков не подходят...
И жестко привязываться к железу ПЛИС-а с партишинами, лоджик-локами и прочей инкрементальщиной тоже нельзя.
------------------------------------------

Окружение:
Девайс: Stratix II, EP2S180F1508C3
Версии Квартуса, где пробовалось: 9.0, 10.1-SP1
под Юниксом, если важно - узнаю точнее какие машины.



Спасибо всем кто откликнется! sm.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 05:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01591 секунд с 7
ELECTRONIX ©2004-2016