Singer 0 4 декабря, 2008 Опубликовано 4 декабря, 2008 · Жалоба Здравствуйте! Вот возник вопрос. У Ксайлинкса в опциях мэппера есть такой пункт - Perform registers and latches packing into iobs. Эту опцию рекомендуется включать для достижения наилучших скоростных результатов на внешних шинах. Я так понимаю что при этом триггера которые соединены с IOB просто переносятся в эти самые IOB, так? Вот возникает вопрос, а что происходит при включении этой опции, когда в VHDL коде между последним триггером и выходным пином присутствует комбинаторная логика? Он что, все равно добавляет регистр в IOB(несанкционированная задержка на такт!) или оставляет все как есть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 218 4 декабря, 2008 Опубликовано 4 декабря, 2008 · Жалоба Комбинаторная логика не дает мапперу помещать триггеры в IOB. Т.е. все остается как есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Beby 8 4 декабря, 2008 Опубликовано 4 декабря, 2008 · Жалоба Вот возникает вопрос, а что происходит при включении этой опции, когда в VHDL коде между последним триггером и выходным пином присутствует комбинаторная логика? Он что, все равно добавляет регистр в IOB(несанкционированная задержка на такт!) или оставляет все как есть? ISE никакой отсебятины не добавляет. Если может затолкать триггеры в IOB, то заталкивает. Если ей что-то помешает запихнуть триггер в IOB, то может выдать предупреждение вида: "вот если бы не то-то, то этот триггер прекрасно бы залез в IOB". Рекомендую поглядывать FPGA Editor'ом на получившийся результат. И если чего не запихнулось в IOB - анализировать причины. Ну а чтобы у меня не было каких-либо проблем, то я еще в и HDL описании вставляют все на интересующие меня регистры (триггеры) атрибут IOB=true. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 4 декабря, 2008 Опубликовано 4 декабря, 2008 · Жалоба Я так понимаю что при этом триггера которые соединены с IOB просто переносятся в эти самые IOB, так? Вот возникает вопрос, а что происходит при включении этой опции, когда в VHDL коде между последним триггером и выходным пином присутствует комбинаторная логика? В этом случае триггер не является соединенным с IOB и следовательно (сюрприз!) в него не переносится в силу невозможности этой операции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Singer 0 4 декабря, 2008 Опубликовано 4 декабря, 2008 · Жалоба Спасибо за ответы! Просто Precision 2007 был пойман на несанкционированном ретайминге (глобально ретайминг был запрещен, но в одном месте он упорно вставлял триггер (которому при этом красноречиво ставил название типа origsig_retimed), которого в коде не было, при этом логика работы разваливалась, пришлось принудительно поставить атрибут dont_retime на этот сигнал). После этого дую на воду :) Кстати никто не сталкивался с таким? Это у меня был пока единственный случай такой самодеятельности, но неприятный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
avesat 0 4 декабря, 2008 Опубликовано 4 декабря, 2008 · Жалоба Всегда смотреть FPGA Editor -ом на кристалл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 4 декабря, 2008 Опубликовано 4 декабря, 2008 · Жалоба Всегда смотреть FPGA Editor -ом на кристалл. Это экстремизм. :( Всё хорошо видно в отчёте map. В Section 6 есть этого отчёта таблица, в таблице есть колонка "Reg (s)". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться