|
|
  |
Глобальные клоки на Spartan6 |
|
|
|
Apr 8 2011, 06:43
|
Группа: Участник
Сообщений: 10
Регистрация: 8-07-09
Пользователь №: 51 025

|
Доброго времени суток! Помогите разобраться с подключением глобальных тактовых сигналов к Spartan6. Всего необходимо 5 глобальных тактовых сигналов. Согласно Clock Guide всего 32 GCLK пина, но глобальных буферов только 16, поэтому существуют парные глобальные пины. В приложении табличка парных буферов с собственно схемой соединения буферов. Понятно, что GCLK19 и GCLK11 соединены непосредственно и подключены к BUFGMUX_X2Y1 и разные клоки к ним подключать "не стоит". Такая же история с GCLK15 и GCLK7. Непонятно только как эти пары взаимодействуют между собой и почему они объединены в таблице. Также не понятно как связаны между собой BUFGMUX-ы. Например X2Y1 и X2Y2. И последний вопрос - тактирование от любого глобального тактового сигнала распространяется на все банки или только на ту пару, которая описана в приведенной таблице??
|
|
|
|
|
Apr 8 2011, 20:08
|
Знающий
   
Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219

|
Цитата(toxxin @ Apr 8 2011, 10:43)  Доброго времени суток! Помогите разобраться с подключением глобальных тактовых сигналов к Spartan6. Всего необходимо 5 глобальных тактовых сигналов. Согласно Clock Guide всего 32 GCLK пина, но глобальных буферов только 16, поэтому существуют парные глобальные пины. В приложении табличка парных буферов с собственно схемой соединения буферов. Понятно, что GCLK19 и GCLK11 соединены непосредственно и подключены к BUFGMUX_X2Y1 и разные клоки к ним подключать "не стоит". Такая же история с GCLK15 и GCLK7. Непонятно только как эти пары взаимодействуют между собой и почему они объединены в таблице. Также не понятно как связаны между собой BUFGMUX-ы. Например X2Y1 и X2Y2. И последний вопрос - тактирование от любого глобального тактового сигнала распространяется на все банки или только на ту пару, которая описана в приведенной таблице?? Дык всё же нарисовано. Если тактироваться напрямую через глобальные буферы, то нельзя подавать разные клоки на GCLK19 и GCLK11(возникает конфликт), если тактировать SERDESы в БАНКЕ0 через BUFIO, то конфликт между GCLK19 и GCLK15. Аналогично если тактировать SERDESы в БАНКЕ1 через BUFIO, то конфликт между GCLK11 и GCLK7. В UG382 далее приведена таблица конфликтов. Тактирование через глобальный буфер естественно распространяется на всю ПЛИС и все БАНКИ, а BUFIO расположен в конкретном банке.
|
|
|
|
|
Apr 12 2011, 11:01
|
Участник

Группа: Свой
Сообщений: 74
Регистрация: 29-11-08
Из: санкт-петербург
Пользователь №: 42 061

|
на конкретный банк,если не ошибаюсь, распространяются региональные клоки
|
|
|
|
|
Apr 12 2011, 17:31
|
Профессионал
    
Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118

|
Раз уж про клок... ISE, Spartan3a/e. После P&R выдает Fmax ~600МГц для клока. Тогда как по даташиту максимальная частота клокового дерева (BUFG и тп) ~300МГц. Как это понимать? STA не учитывает эти ограничения ? И чем вызвано это ограничение Fmax для BUFG (для триггеров Fmax ~600МГц) ? Может ли небольшая часть дизайна работать со своим клоковым деревом на ~600МГц ? Можно запретить использование BUFG для клока, тогда получается ~500МГц после P&R. Как все-таки правильно?
|
|
|
|
|
Apr 12 2011, 20:39
|
Знающий
   
Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219

|
Цитата(Leka @ Apr 12 2011, 21:31)  Раз уж про клок... ISE, Spartan3a/e. После P&R выдает Fmax ~600МГц для клока. Тогда как по даташиту максимальная частота клокового дерева (BUFG и тп) ~300МГц. Как это понимать? STA не учитывает эти ограничения ? И чем вызвано это ограничение Fmax для BUFG (для триггеров Fmax ~600МГц) ? Может ли небольшая часть дизайна работать со своим клоковым деревом на ~600МГц ? Можно запретить использование BUFG для клока, тогда получается ~500МГц после P&R. Как все-таки правильно? Чудеса  Может проект слишком маленький и целиком в один slice-lut влезает, или клок dcm-кой делится. А может ИСЕ версии типа 11.1 стоит глюкавое.
|
|
|
|
|
Apr 13 2011, 11:14
|
Знающий
   
Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219

|
Цитата(Leka @ Apr 13 2011, 01:08)  Если убрать (* buffer_type = "ibuf" *) - будет задействовано глобальное клоковое дерево (а у него по даташиту 350МГц max) - STA по-прежнему выдаст 500МГц... Реальная схема - асинхронный последовательный интерфейс, но в форуме лучше простой пример разобрать, предлагаю сдвиговый регистр (см выше). Сдвиговый регистр упаковывается в LUT (SLICEM) без использования триггеров, поэтому если нет триггеров - нет и анализа путей между ними. В результате пишется максимальная частота тактирования сдвигового регистра, равная из даташита на Spartan3 500МГц. Это кстати, большой косяг, т.к. при этом никоим образом не учитываются пути от ног ввода вывода до LUTов. Надо ставить аттрибуты, запрещающие shift register extraction. А в Virtex6 появилась опция, позволяющая задавать длину цепочки, больше которой которой осуществляется "экстракция" регистров сдвига. А чтобы сказать, что-то определённое про клоковые деревья, то надо в FPGA editor глядеть. P.S. скоре всего STA, увидев такую асинхронщину, забыл про клоковые деревья и пошёл отдыхать
|
|
|
|
|
Apr 13 2011, 14:17
|
Профессионал
    
Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118

|
Можно и другие мелкие схемки придумать на ~500МГц по STA, 4х-разрядный счетчик: Код module tst( (* buffer_type = "ibuf" *) input clk, output reg [3:0] q = 0 ); always@(posedge clk) q <= q + 1; endmodule Красным выделен клок: Реальный проект побольше, конечно, и 500МГц клок внутри формируется, но суть та-же, имхо.
Эскизы прикрепленных изображений
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|