Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Гуру Xilinx подскажите что не так делаю ?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
des00
У меня стоит ФПГА v4sx35-668-10 и в пару к ней ДСП от тиая. Между собой завязаны по EMIF интерфейсу. В качестве опорного дезайна я использую
http://www.xilinx.com/bvdocs/appnotes/xapp753.pdf

Выбрал вариант Block RAM Used as Memory with Front-Side Flip-Flops (входные сигналы пропускаються через тригеры во входных ячейках), модифицировал как мне нужно,
синтез проходит нормально, но вот с разводкой проблемы, а именно

я использую в качестве процессорного клока сигнал EMIF_CLK, что идет с процессора на ногу #B17# 668 пинового корпуса. По даташиту ug075.pdf эта нога имеет описание B17 - IO_L7P_GC_LC_3 , т.е. может быть использована для сигналов клока и может быть подключена к клоквым буферам BUFG, BUFIO. (ug070.pdf)
Но цепочка из реф. дезайна, а именно IBUF -> BUFIO -> BUFR не собираеться, плейсер (7.1сп4) ругаеться на ошибку

Цитата
The reason for this issue:
Some of the logic associated with this structure is locked. This should cause
the rest of the logic to be locked. A problem was found where we should
place BUFIO emifmodule/ClkIoBuf off the edge of the chip in order to satisfy
the relative placement requirement of this logic. The following components
are part of this structure:
IOB e_clk
BUFIO emifmodule/ClkIoBuf
BUFR emifmodule/ClkBufr


Если убрать BUFIO то проект собираеться, но тайминги по задержкам полностью разваливаються. (файл констрейнов я прописал аналогично реф. дезайну).
Что и не мудренно, т.к. в этом случае задержка по сигналу клока, которая идет с блока IDELAY, с дефолтными настройками составляет порядка 10нс.

Если заменить BUFIO на BUFG, то проект разводиться (правда констрейны не выполняються).
Тут у меня первый вопрос: Почему к пину, который может быть использован для клока подключаеться BUFG, но не подключаеться BUFIO ?

Второй вопрос очень простой, в реф. дезайне в файле констрейнов есть строки:

Цитата
INST "DspCEn" TNM = "DspPads";
INST "DspEA*" TNM = "DspPads";
INST "DspSOEn" TNM = "DspPads";
INST "DspSWEn" TNM = "DspPads";
INST "DspED*" TNM = "DspPads";
TIMESPEC "TS_03" = FROM "DspPads" TO "FFS" 1.4ns;


Как они добиваються задержки распространения сигнала от входа до тригера в 1.4 нс, БЕЗ использования IDELAYCTRL блоков (в коде реф.дезайна их нет). Ведь IDELAY с параметром (IOBDELAY_TYPE = DEFAULT) дает задержку в 10ns, (Table 30 ds302.pdf) ??

ЗЫ. Если вопросы глупые просьба не пинать, первый раз с таким столкнулся smile.gif

Заранее спасибо.
oval
По первой части вопроса. Очень возможно, что один или несколько сигналов (или отдельных их составляющих битов): CE, SWE, EA[11:0], BE[3:0], ED[31:0] (xapp753, p.38, Fg.3-6) связаны с пинами корпуса, входные триггера которых (этих пинов) оказываются недоступны для специальной выделенной клоковой цепи, доступ к которой получен через BUFIO связанный с пином B17. Как вариант, можно попробовать отцепить все сигналы кроме EclkOutx от пинов и попробовать развести.

З.Ы. Чисто теоритическое предположение. Может я чего и неправильно понимаю. wink.gif
3.14
2 des00
Хотя я с виртехами еще не знаком, но по аналогии со спартаном2, на пины с глобальными буферами нельзя ставить простые буфера (в 3 спартане это ограничение убрали). Еще мне непонятен смысл последовательного (такое вообще возможно?) включения входных буферов "IBUF -> BUFIO -> BUFR".
Еще, думается где то глюк, путь в 10нс от пина до FFS (только на разводку) это черезчур даже для спартана2.
А по поводу того что IOBDELAY в ограничениях нет, думаю предполагается что синтезатор сам туда триггеры расставит.
des00
Спасибо всем за участие, проблема разрешилась:
Сыплю голову пеплом, как я не обратил внимание, что EclkOutx идет на пин 3 го банка, а все остальные 5 го банка. Естественно что локальные буферы BUFR не могут в этом случае быть использованы.
Законектил клок на IBUFG и пропустил его через DCM. Пописал констрейны на OFFSET и заработало с пол-пинка, при этом задержка от пина до входа тригера составила всего 1.55нс.

Еще раз всем спасибо!
oval
Цитата(des00 @ Mar 14 2006, 16:19) *
Спасибо всем за участие, проблема разрешилась:
Сыплю голову пеплом, как я не обратил внимание, что EclkOutx идет на пин 3 го банка, а все остальные 5 го банка. Естественно что локальные буферы BUFR не могут в этом случае быть использованы.
Законектил клок на IBUFG и пропустил его через DCM. Пописал констрейны на OFFSET и заработало с пол-пинка, при этом задержка от пина до входа тригера составила всего 1.55нс.

Еще раз всем спасибо!


Практически это я и имел ввиду, только разве что в отношение буферов BUFIO smile.gif
des00
Цитата(oval @ Mar 14 2006, 09:40) *
Практически это я и имел ввиду, только разве что в отношение буферов BUFIO smile.gif


Да все правильно, ибо
BUFIO это Local Clock Buffer for I/O, и он может относиться только к своему клоковому региону.

2 3.14
Смысл цепи IBUF -> BUFIO -> BUFR
в том что
BUFR это Regional Clock Buffer for I/O and Logic Resources
...
BUFRs can be driven by either the output from BUFIOs or local interconnect
.....
Поэтому в реф.дезайне они затаскивают клок через входной пин, а затем нагружают локалный клоковый регион, что бы не грузить глобальные ресурсы, ради нескольких тригеров и блоков памяти.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.