Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Миграция проекта Spartan 3 -> Spartan 6 прошла неудачно
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
egorman44
Здравствуйте многоуважаемые форумчане.
Сегодня занялся переносом проекта со Spartan'a 3 на 6-ой. Выкинул некоторые примитивы, поменял назначения пинов и т.д. и т.п. Начал собирать проект и во время "Place and Route" мне вывалилось сообщение:

Код
ERROR:Place:1136 - This design contains a global buffer instance,
   <i2c_module/word_control/fsm/wr_rd_derived_clock_cb>, driving the net,
   <mpi_rw>, that is driving the following (first 30) non-clock load pins.
   < PIN:
   tss_module/tss_module/connect_mem/BU2/U0/blk_mem_generator/valid.cstr/ramloop
   [0].ram.r/s3a_noinit.ram/dpram.ram.WEA3; >
   < PIN:
   tss_module/tss_module/connect_mem/BU2/U0/blk_mem_generator/valid.cstr/ramloop
   [0].ram.r/s3a_noinit.ram/dpram.ram.WEA2; >
   < PIN:
   tss_module/tss_module/connect_mem/BU2/U0/blk_mem_generator/valid.cstr/ramloop
   [0].ram.r/s3a_noinit.ram/dpram.ram.WEA1; >
   < PIN:
   tss_module/tss_module/connect_mem/BU2/U0/blk_mem_generator/valid.cstr/ramloop
   [0].ram.r/s3a_noinit.ram/dpram.ram.WEA0; >
   This is not a recommended design practice in Spartan-6 due to limitations in
   the global routing that may cause excessive delay, skew or unroutable
   situations.  It is recommended to only use a BUFG resource to drive clock
   loads. If you wish to override this recommendation, you may use the
   CLOCK_DEDICATED_ROUTE constraint (given below) in the .ucf file to demote
   this message to a WARNING and allow your design to continue.
   < PIN "i2c_module/word_control/fsm/wr_rd_derived_clock_cb.O"
   CLOCK_DEDICATED_ROUTE = FALSE; >


Все что написал он мне, я понял. Но извините, почему сигнал <mpi_rw> с выхода автомата состояний, который управляет записью в BLOCK RAM, был заведен в глобальный клоковый буфер?! Я сбит с толку, господа прошу разъяснить что не так и кто в этом виноват . И понятно, что можно использовать CLOCK_DEDICATED_ROUTE дабы перемолоть все вышеупомянутое, но это не по фэншую вроде бы как.
Timmy
Думаю, в дизайне на самом деле используется gated clock, S3 умеет клоки цеплять к логике локально, а S6 - только глобально, отсюда проблемы.
AndreiUS
Было такое. Когда у неклокового сигнала слишком большой fanout, placer начинает вставлять глобальные буферы на этот сигнал. Уменьшайте fanout или вставляйте доп. регистры.
egorman44
Огромное спасибо за ответы. sm.gif

Цитата(AndreiUS @ Jul 22 2015, 10:30) *
Было такое. Когда у неклокового сигнала слишком большой fanout, placer начинает вставлять глобальные буферы на этот сигнал. Уменьшайте fanout или вставляйте доп. регистры.


Эта версия кажется мне правдоподобной.

TRILLER
Цитата(AndreiUS @ Jul 22 2015, 10:30) *
Было такое. Когда у неклокового сигнала слишком большой fanout, placer начинает вставлять глобальные буферы на этот сигнал. Уменьшайте fanout или вставляйте доп. регистры.

Тоже об этом подумал. Было такое, правда, не припомню при каких обстоятельствах. В большинстве случаев синтезатор сам доставляет регистры, если в настройках не лазить.
Timmy
Цитата(AndreiUS @ Jul 22 2015, 10:30) *
Было такое. Когда у неклокового сигнала слишком большой fanout, placer начинает вставлять глобальные буферы на этот сигнал. Уменьшайте fanout или вставляйте доп. регистры.

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