Полная версия этой страницы:
spartan6 LX150t и 3 GTP
Mad Makc
Jun 16 2012, 08:15
Есть плата, на ней стоит xс6slx150t.
у микросхемы 3 гигабитных интерфейса, но заведены они следующим образом- в каждом tile задействован только один GTP трансивер.
Если в ПЛИС-е инициализировать только два гигабитных интерфейса, то всё работает.
Но как только я включаю в схему ещё и третий, то начинаются чудеса - пропадает клок.
диагностирую я это тем, что чипскоп мне говорит, что у вас либо нету клока, либо он слишком медленный+ счетчик выведенный на внешний пин так же не генерит частоту.
да, в данном варианте клок у меня один, генерит его один из интерфейсов, а для остальных интерфейсов он является опорным.
Поэтому провел следующий эксперимент.
сделал так, что два интерфейса синхронизируются по одному клоку (clk_125) , а третий по другому( clk_125_3).
получилось ещё веселей- clk_125 пропал, но clk_125_3 рабочий.
Есть у кого мысли, что я делаю не так?
Koluchiy
Jun 16 2012, 08:24
Начните с выкладывания схемы. В смысле, схемы синхронизации GTP.
Затем нужно подробнее описать, что такое "пропадает клок". Т.е., где конкретно он пропадает.
Mad Makc
Jun 16 2012, 09:54
синхронизацию делал, как рекомендуют в описании на ядро "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.
wolfman
Jun 17 2012, 11:22
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, по другому не работало.
Mad Makc
Jun 18 2012, 08:00
wolfman:
а почему пришлось на dll завести? Случайно не потому, что плейсер ругался, что не сможет развести цепь с buffio2 до bufg ?
а для чего умножать до 125 МГц? с TILE0_GTPCLKOUT0_OUT вроде как уже 125 идет. или как?
Mad Makc
Jun 18 2012, 08:00
wolfman:
а почему пришлось на dll завести? Случайно не потому, что плейсер ругался, что не сможет развести цепь с buffio2 до bufg ?
а для чего умножать до 125 МГц? с TILE0_GTPCLKOUT0_OUT вроде как уже 125 идет. или как?
wolfman
Jun 18 2012, 08:50
Цитата(Mad Makc @ Jun 18 2012, 18:30)

wolfman:
а почему пришлось на dll завести? Случайно не потому, что плейсер ругался, что не сможет развести цепь с buffio2 до bufg ?
Именно по этому, ну и в документе нашел, что можно через dll завести.
Цитата
а для чего умножать до 125 МГц? с TILE0_GTPCLKOUT0_OUT вроде как уже 125 идет. или как?
Так выход
divclk буфера buffio2 это деленка до 25МГц, попытка использовать другие выходы приводила к ругани и отказу разводиться..
TILE0_GTPCLKOUT0_OUT их две, та которая с индексом 0-ль, появлялась, а потом пропадала. Поэтому использовал с индексом 1, она была всегда.
Mad Makc
Jun 18 2012, 11:11
Цитата(wolfman @ Jun 18 2012, 12:50)

Именно по этому, ну и в документе нашел, что можно через dll завести.
Так выход divclk буфера buffio2 это деленка до 25МГц, попытка использовать другие выходы приводила к ругани и отказу разводиться..
TILE0_GTPCLKOUT0_OUT их две, та которая с индексом 0-ль, появлялась, а потом пропадала. Поэтому использовал с индексом 1, она была всегда.
ага. ну, почему он не может развести у себя я нашел- в спартане оказалось путь от buffio2 до bufg один. А у меня данный буфер был занят под другой клок.
Поэтому и ругается. Когда ручкаму указал буфера- проблему ушла.
а вот на счет выхода divclk буфера buffio2.. в примере, который рожает кореген у buffio2 скаллер стоит единица. Поэтому сделал вывод, что он там 125 МГц.
Или мы про разные buffio2 говорим?
wolfman
Jun 18 2012, 11:20
Цитата(Mad Makc @ Jun 18 2012, 21:41)

ага. ну, почему он не может развести у себя я нашел- в спартане оказалось путь от buffio2 до bufg один. А у меня данный буфер был занят под другой клок.
Поэтому и ругается. Когда ручкаму указал буфера- проблему ушла.
Возможно у меня та же проблема, я так глубоко не копал, мне нужно было срочно проверить, что все нормально развели и с основным железом эти трансиверы будут жить.
Цитата
http://electronix.ru/forum/style_emoticons...lt/laughing.gifа вот на счет выхода divclk буфера buffio2.. в примере, который рожает кореген у buffio2 скаллер стоит единица. Поэтому сделал вывод, что он там 125 МГц.
Или мы про разные buffio2 говорим?
Хм, сейчас посмотрел, у меня тоже стоит DIVIDE => 1, а с выхода divclk идет 25МГц.
Mad Makc
Jun 18 2012, 12:35
а как вы диагностировали 25 Мгц? на модели или в железе как-то?
wolfman
Jun 18 2012, 17:10
Mad Makc:
Вывел на внешний пин, в чипскопе не очень хорошо разбираюсь, возможно в нем тоже можно было как-то посмотреть.
Mad Makc
Jun 19 2012, 10:03
Цитата(wolfman @ Jun 18 2012, 21:10)

Mad Makc:
Вывел на внешний пин, в чипскопе не очень хорошо разбираюсь, возможно в нем тоже можно было как-то посмотреть.
так, я тут копнул мануал на GTP. И если верить картинке 3-18, то 25 МГц у вас возможны, если мультиплексор CLK_OUT_GTP_SEL_ берёт сигнал от передатчика.
вопрос: а чему у вас равен этот парметр CLK_OUT_GTP_SEL_0 ? у меня REFCLKPLL0 а у вас?
а теперь по основной теме: проблему победил. вроде всё ожило и работает. Засада была в том, что в спартаке несмотря на наличие коммутационных матриц на глобальные линии, они( мартицы) не могут переключать все буфера buffio2 со всеми bufg ( как пример). Убедиться в этом можно, если полчаса полазить в FPGA editor-е по цепям.
ну и соотвественно, когда это до меня дошло,то всё встало на свои места и всё заработало.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.