|
SP605 SFP clock 125 MHz |
|
|
|
 |
Ответов
|
Aug 3 2011, 20:39
|

Частый гость
 
Группа: Свой
Сообщений: 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).
|
|
|
|
|
Aug 4 2011, 14:04
|
Местный
  
Группа: Участник
Сообщений: 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). Спасибо за ответ! Без плясок тут явно не обойтись видно, описывать ещё один трансивер, подключать. А что вы имели ввиду про конфликтные ситуации с клоками?
|
|
|
|
|
Aug 4 2011, 19:26
|

Частый гость
 
Группа: Свой
Сообщений: 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? ... Обещанные ссылочки. 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. А в других документах настойчивые ссылки на эти таблицы. Типа там все предельно ясно. Возможно конечно, что еще не дописали эту доку до конца.
|
|
|
|
|
Aug 5 2011, 03:42
|
Местный
  
Группа: Участник
Сообщений: 217
Регистрация: 10-12-10
Из: Москва
Пользователь №: 61 528

|
Цитата(kst @ Aug 4 2011, 23:26)  В спартане-6 много чего связанного с клоками базируется на понятии тактовый регион (clock region). Все ресурсы ввода/вывода бьются на 8 таких областей, каждая из которых опутана скорострельными тактовыми линиями (скорострельнее,чем глобальные тактовые). Эти линии проложены только в пределах региона. Линии эти здорово "завязаны" на буферы BUFIO2. Как именно я так и не понял. А буферы эти какие-то волшебные. Но я тоже не очень разобрался в этом волшебстве. Все бы ничего, и без волшебства прожить можно, да только вот доступ к таким штуковинам как PLL и DCM осуществляется только через эти буферы. Доступ со стороны контактов GCLK ПЛИС. GTP-трансиверам зачем-то эти буферы тоже позарез нужны. И получается, что если в 0 или 2 банке работает трансивер, и вы хотите затащить сигнал со входа GCLK на PLL, имеет место конфликт. Кто победит, честно говоря, не знаю. При этом затащить этот сигнал на BUFG не составит труда. Еще один тип конфликтов (это так, к слову) связан с тем, что число тактовых входов в два раза больше глобальных буферов. Два тактовых контакта делят один буфер. Только одному достанется. Это надо иметь в виду. В доках есть таблицы, где все конфликты описаны. Позже ссылочку приведу. Хочется один момент рассмотреть. Ну вот пускай два контакта вступили в схватку за один глобальный тактовый буфер. Что делать? Есть выход. Надо один из этих тактовых входов пустить через BUFIO2 на PLL и вуаля, у нас есть второй тактовый сигнал в ПЛИС. Вроде все счастливы? Усложним задачу! А если в этом банке работает GTP? ... Обещанные ссылочки. 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. А в других документах настойчивые ссылки на эти таблицы. Типа там все предельно ясно. Возможно конечно, что еще не дописали эту доку до конца. Ух, я что то когда разбирался с GCLK не заметил, хотя помню что, что то было в замечаниях. Просто на отладочной плате пока видно не сталкивался с такими проблемами. И стараюсь делать проекты где как можно меньше частот. Спасибо!
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|