|
|
  |
spartan6 LX150t и 3 GTP, не работает :-(. |
|
|
|
Jun 16 2012, 08:15
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 2-10-04
Из: Мухосранска
Пользователь №: 763

|
Есть плата, на ней стоит xс6slx150t. у микросхемы 3 гигабитных интерфейса, но заведены они следующим образом- в каждом tile задействован только один GTP трансивер. Если в ПЛИС-е инициализировать только два гигабитных интерфейса, то всё работает. Но как только я включаю в схему ещё и третий, то начинаются чудеса - пропадает клок. диагностирую я это тем, что чипскоп мне говорит, что у вас либо нету клока, либо он слишком медленный+ счетчик выведенный на внешний пин так же не генерит частоту.
да, в данном варианте клок у меня один, генерит его один из интерфейсов, а для остальных интерфейсов он является опорным. Поэтому провел следующий эксперимент. сделал так, что два интерфейса синхронизируются по одному клоку (clk_125) , а третий по другому( clk_125_3). получилось ещё веселей- clk_125 пропал, но clk_125_3 рабочий.
Есть у кого мысли, что я делаю не так?
|
|
|
|
|
Jun 16 2012, 09:54
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 2-10-04
Из: Мухосранска
Пользователь №: 763

|
синхронизацию делал, как рекомендуют в описании на ядро "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.
Эскизы прикрепленных изображений
 РЈРСеньшено Р Т‘Р С• 57%
398 x 700 (20.77 килобайт)
|
 РЈРСеньшено Р Т‘Р С• 57%
398 x 700 (22.61 килобайт)
|
|
|
|
|
|
Jun 18 2012, 08:50
|
Знающий
   
Группа: Свой
Сообщений: 529
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032

|
Цитата(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, она была всегда.
--------------------
Россия это даже не страна. Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
|
|
|
|
|
Jun 18 2012, 11:11
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 2-10-04
Из: Мухосранска
Пользователь №: 763

|
Цитата(wolfman @ Jun 18 2012, 12:50)  Именно по этому, ну и в документе нашел, что можно через dll завести.
Так выход divclk буфера buffio2 это деленка до 25МГц, попытка использовать другие выходы приводила к ругани и отказу разводиться..
TILE0_GTPCLKOUT0_OUT их две, та которая с индексом 0-ль, появлялась, а потом пропадала. Поэтому использовал с индексом 1, она была всегда. ага. ну, почему он не может развести у себя я нашел- в спартане оказалось путь от buffio2 до bufg один. А у меня данный буфер был занят под другой клок. Поэтому и ругается. Когда ручкаму указал буфера- проблему ушла. а вот на счет выхода divclk буфера buffio2.. в примере, который рожает кореген у buffio2 скаллер стоит единица. Поэтому сделал вывод, что он там 125 МГц. Или мы про разные buffio2 говорим?
|
|
|
|
|
Jun 18 2012, 11:20
|
Знающий
   
Группа: Свой
Сообщений: 529
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032

|
Цитата(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МГц.
--------------------
Россия это даже не страна. Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
|
|
|
|
|
Jun 19 2012, 10:03
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 2-10-04
Из: Мухосранска
Пользователь №: 763

|
Цитата(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-е по цепям. ну и соотвественно, когда это до меня дошло,то всё встало на свои места и всё заработало.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|