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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Проблемы с выводом сигнала с ПЛИС
Naixrim
сообщение Jul 9 2018, 12:44
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 3-06-15
Пользователь №: 86 991



Здравствуйте Пользователи.

У меня стоит задача выдать с ПЛИС меандр с частотой 100МГц. На вход ПЛИС (xc6slx100) приходит меандр 50 МГц с кварца. Как показано на приложенном рисунке, я пропускаю сигнал через DCM -> PLL -> ODDR2, чтобы умножить сигнал в два раза. ODDR2 был прикручен, так как при компиляции проекта, шли ошибки о невозможности вывести данный сигнал через обычный IO.
Проблема закралась в том, что при выводе сигнала, я получаю вместо меандра с частотой 100МГц получаю синус 100МГц.

Прошу дать совета по направлению поиска ошибок. Всю недостающую информацию предоставлю позднее, так как не знаю, что потребуется для решения.



Go to the top of the page
 
+Quote Post
iosifk
сообщение Jul 9 2018, 12:54
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 4 004
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Naixrim @ Jul 9 2018, 15:44) *
получаю вместо меандра с частотой 100МГц получаю синус 100МГц.
Прошу дать совета по направлению поиска ошибок. Всю недостающую информацию предоставлю позднее, так как не знаю, что потребуется для решения.


Начнем с того, что и у кого "стоит" -> "У меня стоит задача". И расскажите нам, как она именно "стоит".
Как определен стандарт вывода? Какая взята скорость наростания сигнала? Какой максимальный ток вывода?
А самое главное, зачем выводить "меандр с частотой 100МГц"? Для кого? Какого качества он требуется? С какими фронтами? На какую емкость линии? И способен ли данный вывод у данной ПЛИС вообще выводить такой меандр?
Ну и на сладкое. Если взять отличный меандр и смотреть его щупом осцилла, у которого полоса 100МГц, то что покажет осцилл?


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Naixrim
сообщение Jul 9 2018, 13:36
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 3-06-15
Пользователь №: 86 991



Цитата(iosifk @ Jul 9 2018, 15:54) *
Начнем с того, что и у кого "стоит" -> "У меня стоит задача". И расскажите нам, как она именно "стоит".
Как определен стандарт вывода? Какая взята скорость наростания сигнала? Какой максимальный ток вывода?
А самое главное, зачем выводить "меандр с частотой 100МГц"? Для кого? Какого качества он требуется? С какими фронтами? На какую емкость линии? И способен ли данный вывод у данной ПЛИС вообще выводить такой меандр?
Ну и на сладкое. Если взять отличный меандр и смотреть его щупом осцилла, у которого полоса 100МГц, то что покажет осцилл?


Задача - Необходимо сформировать меандр 100 МГц и вывести его на несколько шинных формирователей, для дальнейшего усиления до TTL и выдачей наружу, далее не уведомлен. (т.е. сформировать несколько таких сигналов.) За основу взять кварцевый генератор, который выдает меандр с частотой 50МГц.
Стандарт вывода - LVCMOS2.5
Скорость наростания - Честно признаюсь, что не осведомлен о возможности ее регулировать, я считал, что она определяется непосредственно возможностями выходных пинов ПЛИС.
Максимальный ток вывода - Если правильно понимаю 12мА.
Зачем выводить - так определено задание ничего более сказать не могу.
Также считал, что выводы единозначно выводят сигнал, то есть все одинаково, в плане фронтов и частоты. Видимо я был не прав, раз вы задаете такой вопрос. Согласно даташиту, ПЛИС может выдавать такую частоту.

Фронты - хотелось бы конечно 2ns. Опять же согласно даташиту максимальный фронт для данной ПЛИС - 144ps. Видимо в идеальном случае.

Сладкое оставлю на завтра.

Сообщение отредактировал Naixrim - Jul 9 2018, 13:54
Go to the top of the page
 
+Quote Post
Naixrim
сообщение Jul 10 2018, 07:23
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 3-06-15
Пользователь №: 86 991



UPD!

Ранее я смотрел сигнал неосредственно в точке, между выводом ПЛИС и входом шинного формирователя, где и видел свой синус. Но ответ iosifk натолкнул на мысль посмотреть чисто вывод ПЛИС и вуаля, я получил свой меандр, вполне красивый, что говорит, что природа синуса кроется непосредственно в соединении ПЛИС и шинника. Данную проблему буду решать самостоятельно, но от вероятных советов или мыслей не откажусь.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jul 10 2018, 07:32
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 4 004
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Naixrim @ Jul 9 2018, 16:36) *
Стандарт вывода - LVCMOS2.5
Скорость наростания - Честно признаюсь, что не осведомлен о возможности ее регулировать, я считал, что она определяется непосредственно возможностями выходных пинов ПЛИС.
Максимальный ток вывода - Если правильно понимаю 12мА.

Я не знаю, какую Вы применяете ПЛИС.
Но на всякий случай напишу. Я помню, что у Виртексов максимальный ток был 24 мА, а минимальный по умолчанию - 2мА. И это надо было специально указывать для каждого вывода. Скорость наростания задаются: fast или slow... Проверьте что достаточно конденсаторов по питанию для этого банка.
И еще есть SSO - ограничение на число одновременно переключаемых выводов, в зависимости от тока выводов.


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Naixrim
сообщение Jul 10 2018, 07:43
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 3-06-15
Пользователь №: 86 991



Цитата(iosifk @ Jul 10 2018, 10:32) *
Я не знаю, какую Вы применяете ПЛИС.
Но на всякий случай напишу. Я помню, что у Виртексов максимальный ток был 24 мА, а минимальный по умолчанию - 2мА. И это надо было специально указывать для каждого вывода. Скорость наростания задаются: fast или slow... Проверьте что достаточно конденсаторов по питанию для этого банка.
И еще есть SSO - ограничение на число одновременно переключаемых выводов, в зависимости от тока выводов.



Применяемую ПЛИС назвал еще начальном сообщении, но продублирую - xc6slx100 (SPARTAN 6 LX100) Максимальный ток выдает вроде 24мА.

Почитав на досуге Constrain Guide, нашел интересную конструкцию вида NET ”net_name” MAXSKEW=allowable_skew [units]; Это к вашим fast или slow, попробовал, действительно фронты становятся короче, но не приближаются к заданным значениям, т.е. задавал 2ns и 1ns, 2ns он выдает, при 1ns, фронт короче, но скорее 1,8ns.

UPD -

Посчитал, для каждого из банков необходимое количество конденсаторов по питанию, возможно надо поменять их емкость, в данный момент стоит - 0,1 мкФ

Сообщение отредактировал Naixrim - Jul 10 2018, 07:46
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jul 10 2018, 08:33
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 4 004
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Naixrim @ Jul 10 2018, 10:43) *
Это к вашим fast или slow, попробовал, действительно фронты становятся короче,

Вот фрагмент файла ucf:
# VCCO33

NET "I_FORCE_CONTROL13" LOC = "B4";
INST "Buf_I_FORCE_CONTROL13" IOSTANDARD = LVCMOS33;
INST "I_FORCE_CONTROL13" IOB = FALSE;
INST "I_FORCE_CONTROL13" SLEW = SLOW;
NET "I_FORCE_CONTROL13" SLEW = SLOW;
INST "I_FORCE_CONTROL13" DRIVE = 4;

Здесь цепь I_FORCE_CONTROL13, задается вывод, стандарт, расположение в выходном буфере, скорости наростания, и сила тока...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Jul 10 2018, 09:11
Сообщение #8


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

Группа: Свой
Сообщений: 1 972
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(iosifk @ Jul 10 2018, 11:33) *
Вот фрагмент файла ucf:
# VCCO33

NET "I_FORCE_CONTROL13" LOC = "B4";
INST "Buf_I_FORCE_CONTROL13" IOSTANDARD = LVCMOS33;
INST "I_FORCE_CONTROL13" IOB = FALSE;
INST "I_FORCE_CONTROL13" SLEW = SLOW;
NET "I_FORCE_CONTROL13" SLEW = SLOW;
INST "I_FORCE_CONTROL13" DRIVE = 4;


Зачем одновременно NET и INST?
Код
NET "I_FORCE_CONTROL13"  LOC = "B4";
NET "I_FORCE_CONTROL13" IOSTANDARD = LVCMOS33 | SLOW | DRIVE = 4;
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jul 10 2018, 09:28
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 4 004
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(andrew_b @ Jul 10 2018, 12:11) *
Зачем одновременно NET и INST?
Код
NET "I_FORCE_CONTROL13"  LOC = "B4";
NET "I_FORCE_CONTROL13" IOSTANDARD = LVCMOS33 | SLOW | DRIVE = 4;

Да просто дело в том, что тогда я написал на Си программку, которая все это автоматически и генерила из списка уж не помню какого файла. Потому как выводов было 425 и писать вручную для меня - это наделать много ошибок. А так действительно, если делать вручную, то через "|" запись получится короче.


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Naixrim
сообщение Jul 10 2018, 09:40
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 3-06-15
Пользователь №: 86 991



Цитата(iosifk @ Jul 10 2018, 11:33) *
Вот фрагмент файла ucf:
# VCCO33

NET "I_FORCE_CONTROL13" LOC = "B4";
INST "Buf_I_FORCE_CONTROL13" IOSTANDARD = LVCMOS33;
INST "I_FORCE_CONTROL13" IOB = FALSE;
INST "I_FORCE_CONTROL13" SLEW = SLOW;
NET "I_FORCE_CONTROL13" SLEW = SLOW;
INST "I_FORCE_CONTROL13" DRIVE = 4;

Здесь цепь I_FORCE_CONTROL13, задается вывод, стандарт, расположение в выходном буфере, скорости наростания, и сила тока...



Благодарю за обьяснение. Где-нибудь прописано как и на сколько отличаются FAST и SLOW? И как зависят от выходных параметров? А также что значит - INST "I_FORCE_CONTROL13" IOB = FALSE; ?
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jul 10 2018, 09:49
Сообщение #11


Гуру
******

Группа: Модераторы
Сообщений: 4 004
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Naixrim @ Jul 10 2018, 12:40) *
А также что значит - INST "I_FORCE_CONTROL13" IOB = FALSE; ?

Это значит, что инстанс может распологаться не только в выходном буфере, но и внутри кристалла.
А вот про параметры fast или slow для этой серии надо искать в даташите. Ну или написать в Инлайн или в Макро в техподдержку, они точно дадут ссылку на документ..


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
XVR
сообщение Jul 10 2018, 10:42
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Naixrim @ Jul 10 2018, 10:23) *
Ранее я смотрел сигнал неосредственно в точке, между выводом ПЛИС и входом шинного формирователя, где и видел свой синус.
А какой у вас шинный формирователь? 100MHz не всякий шинник потянет (в том числе может и вход посадить)

Go to the top of the page
 
+Quote Post
Naixrim
сообщение Jul 10 2018, 10:52
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 3-06-15
Пользователь №: 86 991



Цитата(XVR @ Jul 10 2018, 13:42) *
А какой у вас шинный формирователь? 100MHz не всякий шинник потянет (в том числе может и вход посадить)



74lvt125
Go to the top of the page
 
+Quote Post
Inanity
сообщение Jul 10 2018, 13:09
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653



Naixrim, я думаю, что у вас просто линия не согласована. Таким образом возникают отражения, которые портят ваш меандр. Для Spartan-6 попробуйте включить последовательный терминатор на буфере через OUT_TERM. Начните с 25 ом, мне кажется это поможет.

NET <NET NAME> OUT_TERM = <NONE/ UNTUNED_25 / UNTUNED_50 / UNTUNED_75>;
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jul 10 2018, 13:27
Сообщение #15


Гуру
******

Группа: Модераторы
Сообщений: 4 004
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Inanity @ Jul 10 2018, 16:09) *
Naixrim, я думаю, что у вас просто линия не согласована. Таким образом возникают отражения, которые портят ваш меандр.

Если говорить об отражениях, то это колебательности на фронтах. Я в одной англоязычной книге нашел термин - "эффект окурка". Потом представил смятый окурок в пепельнице и все стало понятно.
А у ТС - синусоида, а это значит, что сигнал интегрируется, т.е фронты завалены из-за большой емкости линии. И источнику сигнала просто не хватает мощности для зарядки емкости линии.
Хотя, согласен, что согласование линии - это хорошо.
И еще. Для распределения импульсов по плате применяют специальные микросхемы, а не насилуют ПЛИсы сигналами LVCMOS.
Как альтернативу, может быть есть смысл поискать шинники, преобразующие LVDS в LVCMOS. И передачу импульсов по плате гнать как LVDS...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd September 2018 - 19:08
Рейтинг@Mail.ru


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