sunder 0 29 июля, 2021 Опубликовано 29 июля, 2021 · Жалоба Здравствуйте, уважаемые коллеги! Встала передо мной, казалось бы, простая задача: вывести внутренний сигнал на глобальные цепи. бОльшая часть схемы работает на половинной частоте, а поскольку дело имеем с 5576ХС1, то о PLL даже не думаем. Сделал простейший clock_enable: Вот этот CLK_EN я и хочу сделать глобальным. В документации и на нашу ПЛИС, и на серию FLEX10K, написано, что можно вывести сигналы с внутренней логики на глобальные цепи. Но когда я добавляю на выход триггера буфер Global, при компиляции получаю "Warning: Ignored Global Signal assignment for logic cell "inst3" because there are not enough global signals available in the device". ПЛИС имеет 2 предопределённых входа для клоков и 4 входа для других глобальных сигналов, их всех этих 6 ног занята только одна, собственно под клок, но при этом квартус пишет, что не достаточно глобальных цепей. Почитал ещё немного. Со входным пином понятно, нужно повесить на землю, но квартус же не знает, на земле пин или нет. Получается, я должен каким-то образом "пообещать" квартусу не использовать какой-то (или все) незадействованные dedicated pins. Как это сделать, я так и не нашел. Пробовал в Assignments -> Settings -> Fitter Settings -> More Fitter Settings установить параметр Auto Global Register Control Signals (у меня же clock enable и в проекте заводится на соответствующие входы блоков) в положение On, но это ничего не дало. Фраза "Эта функция идеально подходит для внутренних сигналов очистки или синхросигнала с большим разветвлением.", возможно, говорит о НЕОБХОДИМОСТИ большого количества fan-out. В моём проекте их пока 19 и, опять же возможно, квартус считает сигнал недостойным отдельной глобальной линии. Попробую накидать каких-нибудь блоков, чтоб увеличить fan-out, но сомневаюсь, что дело в этом, компилятор-то в варнинге говорит, что глобальных линий нет. Я это всё к чему? Может кто-то знает, как правильно разобраться с ситуацией? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 1 30 июля, 2021 Опубликовано 30 июля, 2021 · Жалоба 15 hours ago, sunder said: Фраза "Эта функция идеально подходит для внутренних сигналов очистки или синхросигнала с большим разветвлением.", возможно, говорит о НЕОБХОДИМОСТИ большого количества fan-out А мне кажется - говорит о том, что наоборот, если сигналы имеют большой fanout, то стоит применить эту функцию. Т.е. специально принудительно увеличивать fanout нет необходимости. 15 hours ago, sunder said: Со входным пином понятно, нужно повесить на землю, но квартус же не знает, на земле пин или нет Вы уже назначили выводы в проекте? Ну и неиспользуемые глобальные пины стоит подключить соответствующим образом... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sunder 0 30 июля, 2021 Опубликовано 30 июля, 2021 · Жалоба 21 minutes ago, Yuri124 said: А мне кажется - говорит о том, что наоборот, если сигналы имеют большой fanout, то стоит применить эту функцию. Т.е. специально принудительно увеличивать fanout нет необходимости. Я имел в виду, что функция задействуется при большом fanout, а если их мало, то и не надо никакие сигналы на глобал тащить. 24 minutes ago, Yuri124 said: Вы уже назначили выводы в проекте? Ну и неиспользуемые глобальные пины стоит подключить соответствующим образом... Выводы назначил, но не все, некоторые квартус сам раскидывает при компиляции. А насчет неиспользуемых глобальных пинов, "соответствующим образом" значит на землю? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 1 30 июля, 2021 Опубликовано 30 июля, 2021 · Жалоба 8 minutes ago, sunder said: некоторые квартус сам раскидывает при компиляции Если Вас это устраивает - можете оставить, но можно и переназначить на те, которые Вас больше устраивают. 9 minutes ago, sunder said: "соответствующим образом" значит на землю? ну да, может тогда поймет. 10 minutes ago, sunder said: а если их мало, то и не надо никакие сигналы на глобал тащить. может так и происходит - программа считает, что проще развести проект без вывода на глобальную линию... Я считал, что прога обязана выполнять пожелание разработчика, но вполне вероятно, что ее "интеллект" считает себя более приоритетным... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sunder 0 30 июля, 2021 Опубликовано 30 июля, 2021 · Жалоба Ну незанятые глобальные пины на землю я подключу на уровне платы. Квартус не знает, куда я их подключил и, по идее, с его точки зрения ничего не поменяется Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 1 30 июля, 2021 Опубликовано 30 июля, 2021 · Жалоба 3 minutes ago, sunder said: Квартус не знает, куда я их подключил Я имел в виду - в проекте описать, что эти ноги на земле - может тогда и поймет. Хотя по логике - раз ресурс в проекте не задействован - значит, свободен... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sunder 0 30 июля, 2021 Опубликовано 30 июля, 2021 · Жалоба Just now, Yuri124 said: Я имел в виду - в проекте описать, что эти ноги на земле - может тогда и поймет. Хотя по логике - раз ресурс в проекте не задействован - значит, свободен... Или я этого не знаю, или просто туплю... Как описать в проекте, что вход висит на земле? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 1 30 июля, 2021 Опубликовано 30 июля, 2021 (изменено) · Жалоба Возможно - задать для проекта подключение всех неиспользуемых выводов - As output driving ground (в окне Device and Pin Options/unused pins)... Но тогда нужно на 100% убедиться, что на плате ноги разведены так, что при включении этой опции не произойдет конфликта (короткого замыкания). Например, на неиспользуемую ногу заведен на плате клок с генератора - и тут его коротят на землю... Изменено 30 июля, 2021 пользователем Yuri124 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sunder 0 30 июля, 2021 Опубликовано 30 июля, 2021 (изменено) · Жалоба 1 hour ago, Yuri124 said: Возможно - задать для проекта подключение всех неиспользуемых выводов - As output driving ground (в окне Device and Pin Options/unused pins)... Но тогда нужно на 100% убедиться, что на плате ноги разведены так, что при включении этой опции не произойдет конфликта (короткого замыкания). Например, на неиспользуемую ногу заведен на плате клок с генератора - и тут его коротят на землю... Этот способ знаю, пробовал, не помогает Изменено 30 июля, 2021 пользователем sunder edit Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sunder 0 30 июля, 2021 Опубликовано 30 июля, 2021 · Жалоба Поковырял другой проект и вроде разобрался. 1. И, наверно, самое важное. Число fanout должно быть большим. С 19 fanout не работает, с 627 fanout работает. 2. При большом числе fanout включенная функция Auto Global Register Control Signals в Assignments -> Settings -> Fitter Settings -> More Fitter Settings делает сигнал глобальным. Я пробовал с функцией Auto Global Clock, но по идее они работают одинаково. 3. Если функция Auto Global Register Control Signals выключена, то сигнал сделать глобальным можно через буфер Global. Опять же наличие большого числа fanout обязательно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 30 июля, 2021 Опубликовано 30 июля, 2021 · Жалоба А может просто в .qsf файле прописать в явном виде, зачем усложнять? set_instance_assignment -name GLOBAL_SIGNAL "GLOBAL CLOCK" -to CLK_EN Хотя квартус8 (9) и тупой, но он самостоятельно способен вытащить сигнал на глобальную тактовую дорожку не только при большом фанауте, но и при невыполнении временных ограничений (если они конечно заданы). И проверьте, что фиттер реально ваш сигнал поместил на глобальную линию - compilation report - fitter - resource section - global & other... Вот если не поместил, тогда надо внимательно читать отчеты... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sunder 0 2 августа, 2021 Опубликовано 2 августа, 2021 · Жалоба On 7/30/2021 at 3:15 PM, bogaev_roman said: И проверьте, что фиттер реально ваш сигнал поместил на глобальную линию - compilation report - fitter - resource section - global & other... Помещает. Я правда не сообразил и смотрел в файле fit.rpt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 2 августа, 2021 Опубликовано 2 августа, 2021 · Жалоба Вообще аккуратнее с этим чипом - классический временной анализатор дает задержки для флекса. Производитель утверждает, что они корректны и для их чипа. Только есть одно НО - различия в питании ядра (это для 5576хс4, для 1 по идее тоже самое) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться