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

spartan6 LX150t и 3 GTP

Есть плата, на ней стоит xс6slx150t.

у микросхемы 3 гигабитных интерфейса, но заведены они следующим образом- в каждом tile задействован только один GTP трансивер.

Если в ПЛИС-е инициализировать только два гигабитных интерфейса, то всё работает.

Но как только я включаю в схему ещё и третий, то начинаются чудеса - пропадает клок.

диагностирую я это тем, что чипскоп мне говорит, что у вас либо нету клока, либо он слишком медленный+ счетчик выведенный на внешний пин так же не генерит частоту.

 

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

Поэтому провел следующий эксперимент.

сделал так, что два интерфейса синхронизируются по одному клоку (clk_125) , а третий по другому( clk_125_3).

получилось ещё веселей- clk_125 пропал, но clk_125_3 рабочий.

 

Есть у кого мысли, что я делаю не так?

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


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

Начните с выкладывания схемы. В смысле, схемы синхронизации GTP.

Затем нужно подробнее описать, что такое "пропадает клок". Т.е., где конкретно он пропадает.

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


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

синхронизацию делал, как рекомендуют в описании на ядро "Ethernet 1000BASE-X PCS/PMA or SGMII"

на картинке 1.jpg - схема с одним клоком.

на картинке 2.jpg - схема с двумя.

Во второй схеме ck_125 пропадает, а clk_12_3 рабочий.

серым цветом выделены GTP которые используются в работе.

 

На счет пропадания клока.я запускаю чипскоп. он набирает некоторое количество отсчетов и больше не запускается -говорит,что клока нет. И вот тут что я подумал- а может у меня PLL какая-нибуть дурит? очень похоже, что её "колбасит" сначала( чипскоп как-то собирает данные), а потом она подыхает( клока нет).

Но почему её колбасить начинает, когда 3 GTP в схеме - не пойму.

 

ща попробую :

1. в качестве опорного выбрать другой GTP

2. cделать в схеме 3 клока- по одному из каждого GTP.

post-763-1339839845_thumb.jpg

post-763-1339839869_thumb.jpg

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


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

Mad Makc

 

Я подключал 4-е трансивера, и все нормально работало, правда пришлось немного по колдовать с тактовой.

 

Update:

Я подключал след. образом:

TILE0_GTPCLKOUT0_OUT(1) на buffio2,

с его выхода divclk на dll, где умножается до 125МГц и уже после этого заводится на TILE0_RXUSRCLK0_IN, TILE0_TXUSRCLK0_IN и на Ethernet 1000BASE-X PCS/PMA or SGMII, по другому не работало.

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


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

wolfman:

 

а почему пришлось на dll завести? Случайно не потому, что плейсер ругался, что не сможет развести цепь с buffio2 до bufg ?

а для чего умножать до 125 МГц? с TILE0_GTPCLKOUT0_OUT вроде как уже 125 идет. или как?

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


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

wolfman:

 

а почему пришлось на dll завести? Случайно не потому, что плейсер ругался, что не сможет развести цепь с buffio2 до bufg ?

а для чего умножать до 125 МГц? с TILE0_GTPCLKOUT0_OUT вроде как уже 125 идет. или как?

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


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

wolfman:

 

а почему пришлось на dll завести? Случайно не потому, что плейсер ругался, что не сможет развести цепь с buffio2 до bufg ?

Именно по этому, ну и в документе нашел, что можно через dll завести.

 

а для чего умножать до 125 МГц? с TILE0_GTPCLKOUT0_OUT вроде как уже 125 идет. или как?

 

Так выход divclk буфера buffio2 это деленка до 25МГц, попытка использовать другие выходы приводила к ругани и отказу разводиться..

 

TILE0_GTPCLKOUT0_OUT их две, та которая с индексом 0-ль, появлялась, а потом пропадала. Поэтому использовал с индексом 1, она была всегда.

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


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

 

Именно по этому, ну и в документе нашел, что можно через dll завести.

 

 

 

Так выход divclk буфера buffio2 это деленка до 25МГц, попытка использовать другие выходы приводила к ругани и отказу разводиться..

 

TILE0_GTPCLKOUT0_OUT их две, та которая с индексом 0-ль, появлялась, а потом пропадала. Поэтому использовал с индексом 1, она была всегда.

 

ага. ну, почему он не может развести у себя я нашел- в спартане оказалось путь от buffio2 до bufg один. А у меня данный буфер был занят под другой клок.

Поэтому и ругается. Когда ручкаму указал буфера- проблему ушла.

 

а вот на счет выхода divclk буфера buffio2.. в примере, который рожает кореген у buffio2 скаллер стоит единица. Поэтому сделал вывод, что он там 125 МГц.

Или мы про разные buffio2 говорим?

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


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

ага. ну, почему он не может развести у себя я нашел- в спартане оказалось путь от buffio2 до bufg один. А у меня данный буфер был занят под другой клок.

Поэтому и ругается. Когда ручкаму указал буфера- проблему ушла.

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

 

http://electronix.ru/forum/style_emoticons...lt/laughing.gif

а вот на счет выхода divclk буфера buffio2.. в примере, который рожает кореген у buffio2 скаллер стоит единица. Поэтому сделал вывод, что он там 125 МГц.

Или мы про разные buffio2 говорим?

 

Хм, сейчас посмотрел, у меня тоже стоит DIVIDE => 1, а с выхода divclk идет 25МГц. :laughing:

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


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

Mad Makc:

Вывел на внешний пин, в чипскопе не очень хорошо разбираюсь, возможно в нем тоже можно было как-то посмотреть.

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


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

Mad Makc:

Вывел на внешний пин, в чипскопе не очень хорошо разбираюсь, возможно в нем тоже можно было как-то посмотреть.

 

так, я тут копнул мануал на GTP. И если верить картинке 3-18, то 25 МГц у вас возможны, если мультиплексор CLK_OUT_GTP_SEL_ берёт сигнал от передатчика.

вопрос: а чему у вас равен этот парметр CLK_OUT_GTP_SEL_0 ? у меня REFCLKPLL0 а у вас?

 

а теперь по основной теме: проблему победил. вроде всё ожило и работает. Засада была в том, что в спартаке несмотря на наличие коммутационных матриц на глобальные линии, они( мартицы) не могут переключать все буфера buffio2 со всеми bufg ( как пример). Убедиться в этом можно, если полчаса полазить в FPGA editor-е по цепям.

ну и соотвественно, когда это до меня дошло,то всё встало на свои места и всё заработало.

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


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

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

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

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

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

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

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

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

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

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