Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Специалисты по XILINX...Подскажите по опции Registers IOB Packing
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Singer
Здравствуйте! Вот возник вопрос. У Ксайлинкса в опциях мэппера есть такой пункт - Perform registers and latches packing into iobs. Эту опцию рекомендуется включать для достижения наилучших скоростных результатов на внешних шинах. Я так понимаю что при этом триггера которые соединены с IOB просто переносятся в эти самые IOB, так? Вот возникает вопрос, а что происходит при включении этой опции, когда в VHDL коде между последним триггером и выходным пином присутствует комбинаторная логика? Он что, все равно добавляет регистр в IOB(несанкционированная задержка на такт!) или оставляет все как есть?
makc
Комбинаторная логика не дает мапперу помещать триггеры в IOB. Т.е. все остается как есть.
Boris_TS
Цитата(Singer @ Dec 4 2008, 12:41) *
Вот возникает вопрос, а что происходит при включении этой опции, когда в VHDL коде между последним триггером и выходным пином присутствует комбинаторная логика? Он что, все равно добавляет регистр в IOB(несанкционированная задержка на такт!) или оставляет все как есть?

ISE никакой отсебятины не добавляет.

Если может затолкать триггеры в IOB, то заталкивает. Если ей что-то помешает запихнуть триггер в IOB, то может выдать предупреждение вида: "вот если бы не то-то, то этот триггер прекрасно бы залез в IOB".

Рекомендую поглядывать FPGA Editor'ом на получившийся результат. И если чего не запихнулось в IOB - анализировать причины.

Ну а чтобы у меня не было каких-либо проблем, то я еще в и HDL описании вставляют все на интересующие меня регистры (триггеры) атрибут IOB=true.
DmitryR
Цитата(Singer @ Dec 4 2008, 11:41) *
Я так понимаю что при этом триггера которые соединены с IOB просто переносятся в эти самые IOB, так? Вот возникает вопрос, а что происходит при включении этой опции, когда в VHDL коде между последним триггером и выходным пином присутствует комбинаторная логика?

В этом случае триггер не является соединенным с IOB и следовательно (сюрприз!) в него не переносится в силу невозможности этой операции.
Singer
Спасибо за ответы! Просто Precision 2007 был пойман на несанкционированном ретайминге (глобально ретайминг был запрещен, но в одном месте он упорно вставлял триггер (которому при этом красноречиво ставил название типа origsig_retimed), которого в коде не было, при этом логика работы разваливалась, пришлось принудительно поставить атрибут dont_retime на этот сигнал). После этого дую на воду smile.gif Кстати никто не сталкивался с таким? Это у меня был пока единственный случай такой самодеятельности, но неприятный.
avesat
Всегда смотреть FPGA Editor -ом на кристалл.
andrew_b
Цитата(avesat @ Dec 4 2008, 15:18) *
Всегда смотреть FPGA Editor -ом на кристалл.
Это экстремизм. sad.gif Всё хорошо видно в отчёте map. В Section 6 есть этого отчёта таблица, в таблице есть колонка "Reg (s)".
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.