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

 
 
> Проблемы с выводом сигнала с ПЛИС
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
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 23)
iosifk
сообщение Jul 9 2018, 12:54
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 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 011
Регистрация: 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 011
Регистрация: 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 975
Регистрация: 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 011
Регистрация: 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 011
Регистрация: 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 011
Регистрация: 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
Inanity
сообщение Jul 10 2018, 15:33
Сообщение #16


Местный
***

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



Цитата(iosifk @ Jul 10 2018, 16:27) *
А у ТС - синусоида, а это значит, что сигнал интегрируется, т.е фронты завалены из-за большой емкости линии. И источнику сигнала просто не хватает мощности для зарядки емкости линии.

Согласен, невнимательно прочитал.
Go to the top of the page
 
+Quote Post
Naixrim
сообщение Jul 10 2018, 17:48
Сообщение #17


Участник
*

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



По сути, я могу попробовать дальше насиловать плату кмопом и запитать ее сильнее, так как запитан банк сейчас от 2.5, и выдает она соответственно LVCMOS25 при 12мА, но можно запитать от 3.3, также можно поднять DRIVE, правда придется поменять банк, я сейчас вывожу со 2 банка, а он выше 16мА не поддерживает. Грубо говоря увеличить мощность, выяснить хватает ли ее для покрытия паразитной емкости линии. Насчет шинников, хм... мне нужны будут шинники, чтобы протянуть сигналы до шинников, что выдают сигнал во вне. Это не лишено смысла, но пока не хочется так кардинально менять все, но если вопрос будет стоять именно таким ребром надо будет думать в эту сторону. Насчте эффекта окурка, как он в оригинале называется, я бы глянул?
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jul 10 2018, 18:02
Сообщение #18


Гуру
******

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



Цитата(Naixrim @ Jul 10 2018, 20:48) *
Насчте эффекта окурка, как он в оригинале называется, я бы глянул?

Найдите лучше книгу, точно названия не помню, но есть слова "черная магия" и "высокоскоростная передача сигналов".
И гонять по плате 100 Мгц но не LVDS - это не айс...


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


Местный
***

Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695



Цитата(iosifk @ Jul 10 2018, 21:02) *
Найдите лучше книгу, точно названия не помню, но есть слова "черная магия" и "высокоскоростная передача сигналов".
И гонять по плате 100 Мгц но не LVDS - это не айс...

оно ?
https://electronix.ru/forum/index.php?showtopic=73295
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jul 10 2018, 18:31
Сообщение #20


Гуру
******

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



Цитата(Alex77 @ Jul 10 2018, 21:26) *

Да оно, две книги и примеры к ним...
У Аналога были книги по скоростным АЦП, там тоже наверняка что-то про передачу сигналов есть...


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


Участник
*

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



У меня есть эта книга в печатном варианте, но такого я там не помню, буду внимательней читать =)
Go to the top of the page
 
+Quote Post
XVR
сообщение Jul 11 2018, 11:40
Сообщение #22


Гуру
******

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



Цитата(Naixrim @ Jul 10 2018, 13:52) *
74lvt125

Во первых у неё есть так называемый 'bus hold' (по входу). Это значит, что она будет пытаться изнасиловать перетянуть выход FPGA, слава богу что хоть ток не очень большой (порядка 150мка), но на 100MHz это последствия могут быть плачевными.

Во вторых у неё воемя распространения сигнала 4ns (в худшем случае). Умножаем на 2 (т.к. фронта 2) - получаем 8ns, а 100MHz - это 10ns. Так что на выходе точно будет нечто напоминающее синусоиду sm.gif

Go to the top of the page
 
+Quote Post
Naixrim
сообщение Jul 11 2018, 18:37
Сообщение #23


Участник
*

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



Цитата(XVR @ Jul 11 2018, 14:40) *
Во первых у неё есть так называемый 'bus hold' (по входу). Это значит, что она будет пытаться изнасиловать перетянуть выход FPGA, слава богу что хоть ток не очень большой (порядка 150мка), но на 100MHz это последствия могут быть плачевными.

Во вторых у неё воемя распространения сигнала 4ns (в худшем случае). Умножаем на 2 (т.к. фронта 2) - получаем 8ns, а 100MHz - это 10ns. Так что на выходе точно будет нечто напоминающее синусоиду sm.gif



Насчет качества пропускаемого сигнала я посмотрю отдельным экспериментом, подав на нее сигнал с генератора и посмотрев, что собственно будет на выходе, там думаю можно будет думать, но я этот парамтер tPHL воспринимал лишь как время задержки от входа до выхода, но после вашего комментария пересмотрел графики и вы правы насчет 100 МГц.
Go to the top of the page
 
+Quote Post
Naixrim
сообщение Jul 12 2018, 12:58
Сообщение #24


Участник
*

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



Цитата(Inanity @ Jul 10 2018, 16:09) *
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

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

 


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


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