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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Spartan 6 Ввод тактового сигнала ПЛИС
ZZZRF413
сообщение Feb 4 2015, 06:12
Сообщение #1


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

Группа: Участник
Сообщений: 115
Регистрация: 26-07-09
Из: Нижний Новгород
Пользователь №: 51 578



Всем доброго дня!

Помогите пожалуйста разобраться: "проседает" тактовый сигнал на ПЛИС XC6SLX100T с генератора. Микросхема генератора AD9518. Выходы генератора запрограммированы на выходное дифференциальное напряжение в 960 mV. Стандарт LVPECL_33. ПЛИС запускается 50/50. В последнее время преимущественно не запускается. На рисунках 1 и 3 в прикреплении показан тактовый сигнал на ПЛИС (рис. 1 (CLK_1)) и тактовый сигнал на АЦП с того же генератора (рис. 3 (CLK_ADC_3)).

Так же сильно "подсажен" с АЦП сигнал DCO, который используется в качестве тактового (рис. 2 (DCO_2)). Тип сигнала DCO: LVDS.
Сигнал с DCO в ПЛИС заводиться на PLL (DCO => IBUFDS => BUFG => PLL). PLL не запускается.
Если сделать на проход (DCO => IBUFDS => test_pin) то с выхода ПЛИС постоянный уровень '1'.
Ранее на тестовом сигнале в 200 МГц DCO сигнал воспринимался ПЛИС как тактовый (но не заводился на PLL) т.е. DCO => IBUFDS => BUFG, все работало. Форма сигнала не контролировалась.

Терминирующие резисторы тактового сигнала и DCO внешние и равны 100 Ом.

В чем может быть причина? Почему не работает? Как можно ещё по тестировать?
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Timmy
сообщение Feb 4 2015, 07:28
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(ZZZRF413 @ Feb 4 2015, 09:12) *
Терминирующие резисторы тактового сигнала и DCO внешние и равны 100 Ом.

Вот эта фраза наводит на подозрение, что вы неправильно терминировали lvpecl, там одним резистором не обойтись. По lvds, внешние терминирующие резисторы надо ставить возле источника, если невозможно их установить в непосредственной близости от приёмника, я обсуждал эту тему при первом появлении на форумеsm.gif. Так у меня успешно работает lvds 200МГц на 250мм линии. Кстати, на 180мм линии 200МГц клок на строне передатчика становится почти не виден, так как излучённый сигнал противофазно складывается с отражённым, но на стороне приёмника при этом всё в порядке.
В вашем случае можно попробовать использовать для LVDS внутренние терминаторы S6, а внешние отключить.

Ну и всё это надо моделировать Hyperlynx-ом, там проблемы видно хорошо, если правильно модель сделать.
Go to the top of the page
 
+Quote Post
des00
сообщение Feb 4 2015, 14:01
Сообщение #3


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



а смотрите чем ? 10-20 пф щупом ?


--------------------
Go to the top of the page
 
+Quote Post
krux
сообщение Feb 4 2015, 14:38
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



схему подключения тактового - в студию!


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
ZZZRF413
сообщение Feb 5 2015, 09:30
Сообщение #5


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

Группа: Участник
Сообщений: 115
Регистрация: 26-07-09
Из: Нижний Новгород
Пользователь №: 51 578



Цитата(Timmy @ Feb 4 2015, 11:28) *
Вот эта фраза наводит на подозрение, что вы неправильно терминировали lvpecl, там одним резистором не обойтись. По lvds, внешние терминирующие резисторы надо ставить возле источника, если невозможно их установить в непосредственной близости от приёмника, я обсуждал эту тему при первом появлении на форумеsm.gif. Так у меня успешно работает lvds 200МГц на 250мм линии. Кстати, на 180мм линии 200МГц клок на строне передатчика становится почти не виден, так как излучённый сигнал противофазно складывается с отражённым, но на стороне приёмника при этом всё в порядке.
В вашем случае можно попробовать использовать для LVDS внутренние терминаторы S6, а внешние отключить.

Ну и всё это надо моделировать Hyperlynx-ом, там проблемы видно хорошо, если правильно модель сделать.


Убрал внешний резистор (он был непосредственно рядом с выводами; номинал проверел - 100 Ом), добавил внутренний. Картина не изменилась, ну может чуть чуть побольше сигнал стал.
Внутрений включал так:
ADC2_BUF: IBUFDS
generic map ( DIFF_TERM => TRUE)
...

Цитата(des00 @ Feb 4 2015, 18:01) *
а смотрите чем ? 10-20 пф щупом ?


Щуп Tektronix P6139B
10 МОм, 8 пФ

Цитата(krux @ Feb 4 2015, 18:38) *
схему подключения тактового - в студию!


В приложении
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение

 
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Feb 5 2015, 10:27
Сообщение #6


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



..судя по схемам - вы отрезали среднюю точку у PECL, а для LVDS новую среднюю точку 1.25V не создали.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Timmy
сообщение Feb 5 2015, 11:49
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(Lmx2315 @ Feb 5 2015, 13:27) *
..судя по схемам - вы отрезали среднюю точку у PECL, а для LVDS новую среднюю точку 1.25V не создали.

Да, есть такое дело. Но это не объясняет двукратную просадку напряжения на линии к FPGA по сравнению с линией к ADC.
8 pf щуп имеет емкостное сопротивление 50 Ом на 400МГц, так что пользоваться им нужно с оглядкой.
И вообще нет объяснения низкому напряжению на LVDS, разве что АЦП не сконфигурирован и ничего не передаёт. Кстати, это похоже на правду, ведь на осциллограмме LVDS 400МГц, а должно бы быть 200МГц.
Go to the top of the page
 
+Quote Post
des00
сообщение Feb 5 2015, 12:56
Сообщение #8


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



да нормальное у него напряжение, на щупе все падает 99%. нужен щуп с емкостью пару пикушек.


--------------------
Go to the top of the page
 
+Quote Post
Timmy
сообщение Feb 5 2015, 13:38
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(des00 @ Feb 5 2015, 15:56) *
да нормальное у него напряжение, на щупе все падает 99%. нужен щуп с емкостью пару пикушек.

От ёмкости не могла разница в 2 раза набраться, ведь сигнал к АЦП эта ёмкость тоже сажает. Хотя надо бы уточнить у ТС контрольные точки. Может быть, решающую роль сыграл длинный заземлитель через крокодил.
Go to the top of the page
 
+Quote Post
des00
сообщение Feb 5 2015, 13:51
Сообщение #10


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Timmy @ Feb 5 2015, 21:38) *
От ёмкости не могла разница в 2 раза набраться, ведь сигнал к АЦП эта ёмкость тоже сажает. Хотя надо бы уточнить у ТС контрольные точки. Может быть, решающую роль сыграл длинный заземлитель через крокодил.

Могла, был у меня подобный случай, как раз с тактовой под 200 МГц, судя по осцилу там все плохо по уровню. Взял нормальный осцил с полосой под гиг и высокочастотные щупы и все там стало нормально sm.gif


--------------------
Go to the top of the page
 
+Quote Post
ZZZRF413
сообщение Feb 5 2015, 14:07
Сообщение #11


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

Группа: Участник
Сообщений: 115
Регистрация: 26-07-09
Из: Нижний Новгород
Пользователь №: 51 578



Цитата(Lmx2315 @ Feb 5 2015, 14:27) *
..судя по схемам - вы отрезали среднюю точку у PECL, а для LVDS новую среднюю точку 1.25V не создали.


Цитата(Timmy @ Feb 5 2015, 15:49) *
Да, есть такое дело. Но это не объясняет двукратную просадку напряжения на линии к FPGA по сравнению с линией к ADC.
8 pf щуп имеет емкостное сопротивление 50 Ом на 400МГц, так что пользоваться им нужно с оглядкой.
И вообще нет объяснения низкому напряжению на LVDS, разве что АЦП не сконфигурирован и ничего не передаёт. Кстати, это похоже на правду, ведь на осциллограмме LVDS 400МГц, а должно бы быть 200МГц.


В рабочем режиме частота должны быть 400 МГц. Это для тестирования я брал 200 МГц, чтобы посмотреть chipscope-ом (у него максимум 320 МГц). На chipscope в качестве тактового подавался сигнал DCO. Все работало.

Цитата(des00 @ Feb 5 2015, 16:56) *
да нормальное у него напряжение, на щупе все падает 99%. нужен щуп с емкостью пару пикушек.


Попробую щуп с меньшей емкостью

В приложении снимки DCO с использованием внутреннего сопротивления и с ножек разрядов данных D0, D1.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
des00
сообщение Feb 5 2015, 14:11
Сообщение #12


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(ZZZRF413 @ Feb 5 2015, 21:07) *
Попробую щуп с меньшей емкостью

вы еще не забывайте что если смотрите прямоугольный сигнал, то вам нужен осцил с намного более широкой аналоговой полосой и малым временем установления сигнала Иначе вы увидите смещенный недосинус маленькой амплитуды.


--------------------
Go to the top of the page
 
+Quote Post
krux
сообщение Feb 5 2015, 17:25
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



картинка до конденсаторов С119 и С120 и после - одинаковая?
а с загруженной ПЛИС и с пустой?
а если снять С119 и С120?
если во всех случаях всё примерно одинаково выглядит - я бы проверил номиналы, что вам впаяли вместо R35 R36.

а так, вообще-то, подтяните входы к средней точке 1.25 В, сами они не подтянутся ;-)

и ещё, в отчете PAR какие буферы в LOC'ах фигурируют? должны быть только входные, и никак не BIDIR.


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 5 2015, 18:02
Сообщение #14


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Если у вас LVDS, то R39, R40 не нужны. А если PECL, то не нужен R10.
Go to the top of the page
 
+Quote Post
ZZZRF413
сообщение Feb 6 2015, 08:29
Сообщение #15


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

Группа: Участник
Сообщений: 115
Регистрация: 26-07-09
Из: Нижний Новгород
Пользователь №: 51 578



Сделал следующее:
Второй канал DCO 2 отключил, закоментировав соотвествующие выводы. Понизил частоту до 200 МГц. Картинки на линиях DCO_1 и DCO_2 в приложении. Так же подключил chipscope с тактовым сигналом (ADC1_DCO) от АЦП 1. И он работает! (см. приложение). А вот сигнала LOCKED с соотвествующей PLL нет. Может быть с PLL что-нибудь не так?
Код:
CODE

...
ADC1_DIFF_BUF : IBUFDS
generic map( DIFF_TERM => FALSE,
IOSTANDARD => "LVDS_25")
port map( I => ADC1_DCO_p,
IB => ADC1_DCO_n,
O => ADC1_DCO);
ADC1_DCO_BUFG: BUFG
port map(
I => ADC1_DCO,
O => ADC1_CLKIN);
ADC1_PLL:PLL_ADV
generic map
(
BANDWIDTH => "OPTIMIZED",
CLKIN1_PERIOD => 2.5,
CLKIN2_PERIOD => 2.5,
CLKOUT0_DIVIDE => 1,
CLKOUT1_DIVIDE => 4,
CLKOUT2_DIVIDE => 1,
CLKOUT3_DIVIDE => 1,
CLKOUT4_DIVIDE => 1,
CLKOUT5_DIVIDE => 1,
CLKOUT0_PHASE => 0.000,
CLKOUT1_PHASE => 0.000,
CLKOUT2_PHASE => 0.000,
CLKOUT3_PHASE => 0.000,
CLKOUT4_PHASE => 0.000,
CLKOUT5_PHASE => 0.000,
CLKOUT0_DUTY_CYCLE => 0.500,
CLKOUT1_DUTY_CYCLE => 0.500,
CLKOUT2_DUTY_CYCLE => 0.500,
CLKOUT3_DUTY_CYCLE => 0.500,
CLKOUT4_DUTY_CYCLE => 0.500,
CLKOUT5_DUTY_CYCLE => 0.500,
COMPENSATION => "INTERNAL",
DIVCLK_DIVIDE => 1,
CLKFBOUT_MULT => 1,
-- CLKFBOUT_MULT => 2,
CLKFBOUT_PHASE => 0.0,
REF_JITTER => 0.1,
SIM_DEVICE => "SPARTAN6"
)
port map
(
CLKFBIN => ADC1_CLKFB,
CLKINSEL => '1',
CLKIN1 => ADC1_CLKIN,
CLKIN2 => '0',
DADDR => (others => '0'),
DCLK => '0',
DEN => '0',
DI => (others => '0'),
DWE => '0',
REL => '0',
RST => reset,
CLKFBDCM => open,
CLKFBOUT => ADC1_CLKFB,
CLKOUTDCM0 => open,
CLKOUTDCM1 => open,
CLKOUTDCM2 => open,
CLKOUTDCM3 => open,
CLKOUTDCM4 => open,
CLKOUTDCM5 => open,
CLKOUT0 => ADC1_CLK,
CLKOUT1 => ADC1_DCLK,
CLKOUT2 => open,
CLKOUT3 => open,
CLKOUT4 => open,
CLKOUT5 => open,
DO => open,
DRDY => open,
LOCKED => ADC1_PLL_LOCKED
);

ADC1_BUFFPLL:BUFPLL
generic map( DIVIDE => 4,
ENABLE_SYNC => TRUE)
port map ( PLLIN => ADC1_CLK,
-- GCLK => ADC1_DIVCLK,
GCLK => DIVCLK,
LOCKED => ADC1_PLL_LOCKED,
IOCLK => ADC1_SerDes_CLK,
SERDESSTROBE => ADC1_SerDes_Strobe,
LOCK => adc1_bufpll_locked
);
ADC1_DCLK_BUF : BUFG
port map( I => ADC1_DCLK,
O => ADC1_DIVCLK);

--ADC2_DIFF_BUF : IBUFDS
-- generic map( DIFF_TERM => TRUE,
-- IOSTANDARD => "LVDS_25")
-- port map( I => ADC2_DCO_p,
-- IB => ADC2_DCO_n,
-- O => ADC2_DCO);
--test_out<=ADC2_DCO;
--ADC2_DCO_BUFG: BUFG
-- port map(
-- I => ADC2_DCO,
---- I => ADC2_DCO_BUF,
-- O => ADC2_CLKIN);
ADC2_CLKIN<='0';
ADC2_PLL:PLL_ADV
generic map
(
BANDWIDTH => "OPTIMIZED",
CLKIN1_PERIOD => 2.5,
CLKIN2_PERIOD => 2.5,
CLKOUT0_DIVIDE => 1,
CLKOUT1_DIVIDE => 4,
CLKOUT2_DIVIDE => 1,
CLKOUT3_DIVIDE => 1,
CLKOUT4_DIVIDE => 1,
CLKOUT5_DIVIDE => 1,
CLKOUT0_PHASE => 0.000,
CLKOUT1_PHASE => 0.000,
CLKOUT2_PHASE => 0.000,
CLKOUT3_PHASE => 0.000,
CLKOUT4_PHASE => 0.000,
CLKOUT5_PHASE => 0.000,
CLKOUT0_DUTY_CYCLE => 0.500,
CLKOUT1_DUTY_CYCLE => 0.500,
CLKOUT2_DUTY_CYCLE => 0.500,
CLKOUT3_DUTY_CYCLE => 0.500,
CLKOUT4_DUTY_CYCLE => 0.500,
CLKOUT5_DUTY_CYCLE => 0.500,
COMPENSATION => "INTERNAL",
DIVCLK_DIVIDE => 1,
CLKFBOUT_MULT => 1,
-- CLKFBOUT_MULT => 2,
CLKFBOUT_PHASE => 0.0,
REF_JITTER => 0.1,
SIM_DEVICE => "SPARTAN6"
)
port map
(
CLKFBIN => ADC2_CLKFB,
CLKINSEL => '1',
CLKIN1 => ADC2_CLKIN,
CLKIN2 => '0',
DADDR => (others => '0'),
DCLK => '0',
DEN => '0',
DI => (others => '0'),
DWE => '0',
REL => '0',
RST => reset,
CLKFBDCM => open,
CLKFBOUT => ADC2_CLKFB,
CLKOUTDCM0 => open,
CLKOUTDCM1 => open,
CLKOUTDCM2 => open,
CLKOUTDCM3 => open,
CLKOUTDCM4 => open,
CLKOUTDCM5 => open,
CLKOUT0 => ADC2_CLK,
CLKOUT1 => ADC2_DCLK,
CLKOUT2 => open,
CLKOUT3 => open,
CLKOUT4 => open,
CLKOUT5 => open,
DO => open,
DRDY => open,
LOCKED => ADC2_PLL_LOCKED
);

ADC2_BUFFPLL:BUFPLL
generic map( DIVIDE => 4,
ENABLE_SYNC => TRUE)
port map ( PLLIN => ADC2_CLK,
-- GCLK => ADC2_DIVCLK,
GCLK => DIVCLK,
LOCKED => ADC2_PLL_LOCKED,
IOCLK => ADC2_SerDes_CLK,
SERDESSTROBE => ADC2_SerDes_Strobe,
LOCK => adc2_bufpll_locked
);

ADC2_DCLK_BUF : BUFG
port map( I => ADC2_DCLK,
O => ADC2_DIVCLK);
...

Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 20:58
Рейтинг@Mail.ru


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