реклама на сайте
подробности

 
 
> SP605 SFP clock 125 MHz
Kirill_Good
сообщение Aug 3 2011, 06:34
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 10-12-10
Из: Москва
Пользователь №: 61 528



Здравствуйте!

Кто пользовался Xilinx SP605 или кто не пользовался, не могли бы помочь с использованием SFP clock 125 MHz. На плате имеется осциллятор 125 МГц для тактирования трансиверов ПЛИС. Он дифференциальный и подключен к ПЛИС, сигналы можно найти в ucf sp605. Сделав простой проект для проверки с использованием этого сигнала, на этапе MAP возникла ошибка "Pack was unable to combine the symbols listed below into a single IOB component because the site type selected is not compatible". Возникла мысль, что напрямую их использовать нельзя, потому что и пропуская сигнал через Clock wizard сообщения те же самые. Изучая поверхностно manual RocketIO я встречал что у трансиверов есть специальные выводы для тактирования соседа. Можно ли использовать SFP сигнал для тактирования user логики или трансивера?

Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kst
сообщение Aug 3 2011, 20:39
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Пардон, неправильно понял задачу.

Клок SFPCLK 125 МГц заведен на MGTREFCLK0P/N (Lane 2) примитива GTP_DUAL123.
Разъемы SMA подключены к контактам MGTTX1P/N и MGTRX1P/N (Lane 1) примитива GTP_DUAL101.

Если следовать докам, чтобы все заработало, SFPCLK должен пройти следующий путь:
1. Вход MGTREFCLK0P/N.
2. Входной буфер IBUFDS.
3. Входной порт CLK00 примитива GTP_DUAL123.
4. Мультиплексор, для которого управляющий порт REFSELDYPLL0[2:0] примитива GTP_DUAL123 должен быть установлен в "000".
5. Выходной порт REFCLKPLL0 примитива GTP_DUAL123.
6. Входной порт CLKINWEST1 примитива GTP_DUAL101.
7. Мультиплексор, для которого управляющий порт REFSELDYPLL1[2:0] примитива GTP_DUAL101 должен быть установлен в "111".
8. PLL1 примитива GTP_DUAL10.
После PLL еще есть мультиплексоры, но это уже совсем другая история.

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

Для наглядности посмотрите кртинку "Figure 2-7: Multiple External Reference Clock", там примерчик, как две пары кидаются друг в друга тактовыми сигналами. Вам, соответственно, нужно только одно направление, а именно справа налево.

Возможно имеет смысл полистать хелп/доку на визард.

Да, вот еще что. В спартане6 куча конфликтных ситуаций с клоками. Если намереваетесь использовать GTP_DUAL101 и GTP_DUAL123, лучше не использовать специализированные тактовые контакты (GCLK) банка 0 в качестве тактовых входов: E16 (GCLK13), F15 (GCLK14), F14 (GCLK15), G11 (GCLK16), H12 (GCLK17), F10 (GCLK18), G9 (GCLK19).
Go to the top of the page
 
+Quote Post
Kirill_Good
сообщение Aug 4 2011, 14:04
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 10-12-10
Из: Москва
Пользователь №: 61 528



Цитата(kst @ Aug 4 2011, 00:39) *
Пардон, неправильно понял задачу.

Клок SFPCLK 125 МГц заведен на MGTREFCLK0P/N (Lane 2) примитива GTP_DUAL123.
Разъемы SMA подключены к контактам MGTTX1P/N и MGTRX1P/N (Lane 1) примитива GTP_DUAL101.

Если следовать докам, чтобы все заработало, SFPCLK должен пройти следующий путь:
1. Вход MGTREFCLK0P/N.
2. Входной буфер IBUFDS.
3. Входной порт CLK00 примитива GTP_DUAL123.
4. Мультиплексор, для которого управляющий порт REFSELDYPLL0[2:0] примитива GTP_DUAL123 должен быть установлен в "000".
5. Выходной порт REFCLKPLL0 примитива GTP_DUAL123.
6. Входной порт CLKINWEST1 примитива GTP_DUAL101.
7. Мультиплексор, для которого управляющий порт REFSELDYPLL1[2:0] примитива GTP_DUAL101 должен быть установлен в "111".
8. PLL1 примитива GTP_DUAL10.
После PLL еще есть мультиплексоры, но это уже совсем другая история.

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

Для наглядности посмотрите кртинку "Figure 2-7: Multiple External Reference Clock", там примерчик, как две пары кидаются друг в друга тактовыми сигналами. Вам, соответственно, нужно только одно направление, а именно справа налево.

Возможно имеет смысл полистать хелп/доку на визард.

Да, вот еще что. В спартане6 куча конфликтных ситуаций с клоками. Если намереваетесь использовать GTP_DUAL101 и GTP_DUAL123, лучше не использовать специализированные тактовые контакты (GCLK) банка 0 в качестве тактовых входов: E16 (GCLK13), F15 (GCLK14), F14 (GCLK15), G11 (GCLK16), H12 (GCLK17), F10 (GCLK18), G9 (GCLK19).


Спасибо за ответ!

Без плясок тут явно не обойтись видно, описывать ещё один трансивер, подключать. А что вы имели ввиду про конфликтные ситуации с клоками?
Go to the top of the page
 
+Quote Post
kst
сообщение Aug 4 2011, 19:26
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Цитата(Kirill_Good @ Aug 4 2011, 18:04) *
А что вы имели ввиду про конфликтные ситуации с клоками?
В спартане-6 много чего связанного с клоками базируется на понятии тактовый регион (clock region). Все ресурсы ввода/вывода бьются на 8 таких областей, каждая из которых опутана скорострельными тактовыми линиями (скорострельнее,чем глобальные тактовые). Эти линии проложены только в пределах региона.
Линии эти здорово "завязаны" на буферы BUFIO2. Как именно я так и не понял. А буферы эти какие-то волшебные. Но я тоже не очень разобрался в этом волшебстве. Все бы ничего, и без волшебства прожить можно, да только вот доступ к таким штуковинам как PLL и DCM осуществляется только через эти буферы. Доступ со стороны контактов GCLK ПЛИС.
GTP-трансиверам зачем-то эти буферы тоже позарез нужны. И получается, что если в 0 или 2 банке работает трансивер, и вы хотите затащить сигнал со входа GCLK на PLL, имеет место конфликт. Кто победит, честно говоря, не знаю. При этом затащить этот сигнал на BUFG не составит труда.

Еще один тип конфликтов (это так, к слову) связан с тем, что число тактовых входов в два раза больше глобальных буферов. Два тактовых контакта делят один буфер. Только одному достанется. Это надо иметь в виду. В доках есть таблицы, где все конфликты описаны. Позже ссылочку приведу.
Хочется один момент рассмотреть. Ну вот пускай два контакта вступили в схватку за один глобальный тактовый буфер. Что делать? Есть выход. Надо один из этих тактовых входов пустить через BUFIO2 на PLL и вуаля, у нас есть второй тактовый сигнал в ПЛИС. Вроде все счастливы? Усложним задачу! А если в этом банке работает GTP? ... cranky.gif

Обещанные ссылочки.
ug382 Spartan-6 FPGA Clocking Resources
Глава Clock Resources
Table 1-1: Shared Global Clocking Resources for Bank 0 and Bank 1
Table 1-2: Shared Global Clocking Resources for Bank 2 and Bank 3
Table 1-3: BUFIO2 Input Conflicts for SDR Data Rates (ISERDES2 (SDR), OSERDES2 (SDR))
Table 1-4: BUFIO2 Input Conflicts for DDR Data Rates (IDDR2, ODDR2, ISERDES2 (DDR), OSERDES2
(DDR))
Жаль, что пояснений к таблицам маловато. Это касается последних двух. Не очень понятна природа конфликтов GTP и GCLK. А в других документах настойчивые ссылки на эти таблицы. Типа там все предельно ясно. Возможно конечно, что еще не дописали эту доку до конца.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 23:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016