Перейти к содержанию
    

Гуру Xilinx подскажите что не так делаю ?

У меня стоит ФПГА 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) ??

 

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

 

Заранее спасибо.

Изменено пользователем des00

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

З.Ы. Чисто теоритическое предположение. Может я чего и неправильно понимаю. ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 des00

Хотя я с виртехами еще не знаком, но по аналогии со спартаном2, на пины с глобальными буферами нельзя ставить простые буфера (в 3 спартане это ограничение убрали). Еще мне непонятен смысл последовательного (такое вообще возможно?) включения входных буферов "IBUF -> BUFIO -> BUFR".

Еще, думается где то глюк, путь в 10нс от пина до FFS (только на разводку) это черезчур даже для спартана2.

А по поводу того что IOBDELAY в ограничениях нет, думаю предполагается что синтезатор сам туда триггеры расставит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо всем за участие, проблема разрешилась:

Сыплю голову пеплом, как я не обратил внимание, что EclkOutx идет на пин 3 го банка, а все остальные 5 го банка. Естественно что локальные буферы BUFR не могут в этом случае быть использованы.

Законектил клок на IBUFG и пропустил его через DCM. Пописал констрейны на OFFSET и заработало с пол-пинка, при этом задержка от пина до входа тригера составила всего 1.55нс.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо всем за участие, проблема разрешилась:

Сыплю голову пеплом, как я не обратил внимание, что EclkOutx идет на пин 3 го банка, а все остальные 5 го банка. Естественно что локальные буферы BUFR не могут в этом случае быть использованы.

Законектил клок на IBUFG и пропустил его через DCM. Пописал констрейны на OFFSET и заработало с пол-пинка, при этом задержка от пина до входа тригера составила всего 1.55нс.

 

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

 

Практически это я и имел ввиду, только разве что в отношение буферов BUFIO :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Практически это я и имел ввиду, только разве что в отношение буферов 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

.....

Поэтому в реф.дезайне они затаскивают клок через входной пин, а затем нагружают локалный клоковый регион, что бы не грузить глобальные ресурсы, ради нескольких тригеров и блоков памяти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...