des00 25 13 марта, 2006 Опубликовано 13 марта, 2006 (изменено) · Жалоба У меня стоит ФПГА 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) ?? ЗЫ. Если вопросы глупые просьба не пинать, первый раз с таким столкнулся :) Заранее спасибо. Изменено 13 марта, 2006 пользователем des00 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
oval 0 13 марта, 2006 Опубликовано 13 марта, 2006 · Жалоба По первой части вопроса. Очень возможно, что один или несколько сигналов (или отдельных их составляющих битов): CE, SWE, EA[11:0], BE[3:0], ED[31:0] (xapp753, p.38, Fg.3-6) связаны с пинами корпуса, входные триггера которых (этих пинов) оказываются недоступны для специальной выделенной клоковой цепи, доступ к которой получен через BUFIO связанный с пином B17. Как вариант, можно попробовать отцепить все сигналы кроме EclkOutx от пинов и попробовать развести. З.Ы. Чисто теоритическое предположение. Может я чего и неправильно понимаю. ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 14 марта, 2006 Опубликовано 14 марта, 2006 · Жалоба 2 des00 Хотя я с виртехами еще не знаком, но по аналогии со спартаном2, на пины с глобальными буферами нельзя ставить простые буфера (в 3 спартане это ограничение убрали). Еще мне непонятен смысл последовательного (такое вообще возможно?) включения входных буферов "IBUF -> BUFIO -> BUFR". Еще, думается где то глюк, путь в 10нс от пина до FFS (только на разводку) это черезчур даже для спартана2. А по поводу того что IOBDELAY в ограничениях нет, думаю предполагается что синтезатор сам туда триггеры расставит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 14 марта, 2006 Опубликовано 14 марта, 2006 · Жалоба Спасибо всем за участие, проблема разрешилась: Сыплю голову пеплом, как я не обратил внимание, что EclkOutx идет на пин 3 го банка, а все остальные 5 го банка. Естественно что локальные буферы BUFR не могут в этом случае быть использованы. Законектил клок на IBUFG и пропустил его через DCM. Пописал констрейны на OFFSET и заработало с пол-пинка, при этом задержка от пина до входа тригера составила всего 1.55нс. Еще раз всем спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
oval 0 14 марта, 2006 Опубликовано 14 марта, 2006 · Жалоба Спасибо всем за участие, проблема разрешилась: Сыплю голову пеплом, как я не обратил внимание, что EclkOutx идет на пин 3 го банка, а все остальные 5 го банка. Естественно что локальные буферы BUFR не могут в этом случае быть использованы. Законектил клок на IBUFG и пропустил его через DCM. Пописал констрейны на OFFSET и заработало с пол-пинка, при этом задержка от пина до входа тригера составила всего 1.55нс. Еще раз всем спасибо! Практически это я и имел ввиду, только разве что в отношение буферов BUFIO :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 15 марта, 2006 Опубликовано 15 марта, 2006 · Жалоба Практически это я и имел ввиду, только разве что в отношение буферов BUFIO :) Да все правильно, ибо 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 ..... Поэтому в реф.дезайне они затаскивают клок через входной пин, а затем нагружают локалный клоковый регион, что бы не грузить глобальные ресурсы, ради нескольких тригеров и блоков памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться