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

 
 
> проблема с использованием clock
Evgeny72
сообщение May 3 2017, 06:39
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 4-01-14
Пользователь №: 79 899



Добрый день!
Проблема вот в чем. Собрал проект, пара dual clock asynchronous FIFO. Наладку производил с установленным на этой же плате осциллятором. Все отлично работает. Но, нужно использовать clock с другой платы. При подключении clock сигнала с другой платы, как было изначально задумано, отлично работающий проект через несколько минут начинает "плыть". Частоты осциллятора и сигнала clock с другой платы одинаковы. Сигналы с осциллятора и сигнала сlock (с другой платы) заведены на входа ПЛИС группы PLL/DLL Input. При подаче клока с другой платы, пин с осциллятора на ПЛИС отключаю, удаляю в PIN Planer. Входные сигналы не меняю, меняется только способ подачи clock сигнала. Внутренний PLL ПЛИС не использую. Пробовал задействовать внутренний PLL плис, как с умножением на 2 и переделкой проекта под новую частоту, так и с коэффициентом умножения PLL равным 1. Результат то же - несколько минут начинает "плыть". ПЛИС 10M08SCE144. Может кто знает как решить проблему?

Сообщение отредактировал Evgeny72 - May 3 2017, 07:35
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 14)
alexadmin
сообщение May 3 2017, 09:58
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Хорошо бы уточнить что значит "плыть". А так смотреть на используемый стандарт, параметры входного сигнала и "связность" земель двух плат.
Go to the top of the page
 
+Quote Post
Evgeny72
сообщение May 3 2017, 10:15
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 4-01-14
Пользователь №: 79 899



Цитата(alexadmin @ May 3 2017, 12:58) *
Хорошо бы уточнить что значит "плыть". А так смотреть на используемый стандарт, параметры входного сигнала и "связность" земель двух плат.


плыть - перестает правильно работать. Земли... есть что проанализировать...
Go to the top of the page
 
+Quote Post
bugdesigner
сообщение May 3 2017, 16:32
Сообщение #4


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

Группа: Участник
Сообщений: 123
Регистрация: 12-06-15
Из: Земля
Пользователь №: 87 133



Цитата(Evgeny72 @ May 3 2017, 12:15) *
плыть - перестает правильно работать. Земли... есть что проанализировать...

Попробуйте еще триггер Шмидта включить на этом пине. Если фронт сигнала клока "завален" это может помочь.
А частота клока у Вас какая? И что за источник клока? Может у Вас согласование неправильно сделано (или совсем не сделано)?
Go to the top of the page
 
+Quote Post
Jackov
сообщение May 3 2017, 18:13
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(Evgeny72 @ May 3 2017, 09:39) *
проект через несколько минут начинает "плыть"

Плыть будет - проблема известная, сам с подобным сталкивался.
Всё дело в том что, у Вас такты идут с разных тактовых генераторов, хоть на них и написаны одинаковые циферки, но есть такая штука, как технологический разброс, невозможно изготовить две абсолютно одинаковые вещи, в том числе и тактовые генераторы, у них всегда будет разница в частотах. Если у одного, например, частота 50МГц и мы его берём за эталон, то у другого будет 50,0001МГц (зависит от точности производства), или 49,9999МГц. Это примерно как часы, которые периодически нужно подводить. И через некоторое время эта погрешность нарастает и становится критической.
Тут можно попробовать как-то изловчится и засинхронизировать внешнюю частоту с частотой проекта, либо пересмотреть архитектуру системы в целом.
Go to the top of the page
 
+Quote Post
krux
сообщение May 3 2017, 19:58
Сообщение #6


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

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



в нулевом приближении считаю, что у вас наблюдается overflow/underflow (или прокрутка указателей в памяти на 360 градусов), связанные с отличием ppm в генераторах на разных платах.

далее, по мелочи:
1) СХ) тактовую, полученную на эту плату с некоей удаленной на расстояние платы, обязательно необходимо пробуфферизировать.
2) ПР) убедиться, что полученный сигнал (ещё не тактовая!) пригоден для использования (частотомер в этой же плис, плюс использовать накопление показаний частотомера 5...10 сек)
3) ПР) только убедившись, что сигнал пригоден, после этого пытаться использовать этот сигнал как тактовый для asyncram, читай: только после этого отпускать async_reset от этой asyncram.
4) ПР) продолжать мониторить сигнал на отклонения (продолжать определять что сигнал - есть тактовая).
иначе глюки неизбежны.

где СХ - задача схемотехника, ПР - задача проектировщика на HDL.

Цитата
входа ПЛИС группы PLL/DLL Input

зачем вы это написали? с входа эти сигналы идут на DLL/PLL? если нет, то смысл, зачем туда вообще заводили?


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
Evgeny72
сообщение May 4 2017, 07:08
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 4-01-14
Пользователь №: 79 899



Цитата(bugdesigner @ May 3 2017, 19:32) *
Попробуйте еще триггер Шмидта включить на этом пине. Если фронт сигнала клока "завален" это может помочь.
А частота клока у Вас какая? И что за источник клока? Может у Вас согласование неправильно сделано (или совсем не сделано)?


частота 49.154 МГц. На плате (на которой расположена ПЛИС 10M08...) - обычный кварцевый генератор типоразмера 0705. С платы, с которой необходимо подать клок - кварцевый генератор заведен на плис MAXII EPM1270, через нее сигнал проброшен на шлейф. Этим шлейфом соединены обе платы. В шлейфе, провода по обеим сторонам от провода передающего клок, заземлены на приемной и передающей стороне. Пробовал миновать ПЛИС EPM1270, подключившись просто проводом к генератору, результат тот же. Пробовал подключать через 74LVC1G125.


Цитата(krux @ May 3 2017, 22:58) *
зачем вы это написали? с входа эти сигналы идут на DLL/PLL? если нет, то смысл, зачем туда вообще заводили?


Для общего понимания, что и куда я подал. Когда проектировал ПП, планировал задействовать ПЛЛ. На данный момент нет необходимости использовать ПЛЛ.
Была мысль - завести сигнал клока на простой пин, не входа DLL/PLL.

Сообщение отредактировал Evgeny72 - May 4 2017, 07:11
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 4 2017, 13:15
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Вообще не понимаю о чем вы тут говорите.

Был проект отлаженный на одном источнике клока. Источник клока сменили и проект стал плохо работать.
При чем тут разброс генераторов, при чем тут 2 клоковое FIFO?


Go to the top of the page
 
+Quote Post
Alex11
сообщение May 4 2017, 18:06
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Какая длина провода между платами? Правильно делать передачу клока витой парой с диф. сигналом и соответствующими приемниками и передатчиками (можно реализовать и в ПЛИС). В вашей конструкции попробуйте поставить резистор 20-30 Ом в разрыв провода с тактовым сигналом. С какой стороны - надо подобрать. По идее, со стороны передатчика должно быть лучше.
Go to the top of the page
 
+Quote Post
Evgeny72
сообщение May 5 2017, 07:34
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 4-01-14
Пользователь №: 79 899



Цитата(Alex11 @ May 4 2017, 21:06) *
Какая длина провода между платами? Правильно делать передачу клока витой парой с диф. сигналом и соответствующими приемниками и передатчиками (можно реализовать и в ПЛИС). В вашей конструкции попробуйте поставить резистор 20-30 Ом в разрыв провода с тактовым сигналом. С какой стороны - надо подобрать. По идее, со стороны передатчика должно быть лучше.


Длина шлейфа 20 см. Резистор на 51 ом установлен на стороне передатчика. Пробовал его замыкать - толку не дало. Про диф пару понял, надо подумать, как реализовать в на имеющихся платах.
Go to the top of the page
 
+Quote Post
Maverick
сообщение May 5 2017, 08:14
Сообщение #11


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Evgeny72 @ May 5 2017, 10:34) *
Длина шлейфа 20 см. Резистор на 51 ом установлен на стороне передатчика. Пробовал его замыкать - толку не дало. Про диф пару понял, надо подумать, как реализовать в на имеющихся платах.

скорость передачи данных какая?
у меня SPI при такой длине шлейфа работает без ошибок не более чем на 7МГц для sclk

Можно попробовать:
lvds изолятор
Как ранее подсказали поставить на одной плате клоковый буфер с выходом lvds и на другой плате поробовать использовть этот lvds клок (например), а может лучше всего брать тактовый генератор с несколькими lvds выходами для двух плат одновременно

Но:
По хорошему надо делать передачу данных по LVDS (обмен между платами)


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 5 2017, 08:20
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



да там вообще вроде не данные передают, а клок, все остальное в описании проблемы для драматизма%).
Можно ли по одному проводу передать 50 МГц с нормальными фронтами, житером и без помех на 20 см? - вот основной вопрос темы. И ответ походу - нет%)

И что-то мне говорит что там надо еще согласование какое-то делать, чтобы в проводе каша не началась и обычного резистора подобранного на глаз не хватит.

У ПЛИС иногда бывают диф входы клока и диф выходы, тут такой магии нет?
Go to the top of the page
 
+Quote Post
Evgeny72
сообщение May 5 2017, 08:56
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 4-01-14
Пользователь №: 79 899



Цитата(Maverick @ May 5 2017, 11:14) *
скорость передачи данных какая?


максимальная частота bit clock 24 мГц, но он уже идет в обратную сторону, от 10M08... к EPM1270...

Цитата(Golikov A. @ May 5 2017, 11:20) *
У ПЛИС иногда бывают диф входы клока и диф выходы, тут такой магии нет?


у 10M08... есть что-то подобное. Это должна быть группа clock pins или могут быть обычные пины готовые принять диф сигнал?

Сообщение отредактировал Evgeny72 - May 5 2017, 09:07
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 5 2017, 10:24
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Если вы хотите использовать сигнал как клок внутри ПЛИС, то есть в always@(posedge ...) блоках. То лучше чтобы это были спец пины готовые принять клок.
Обычные ноги тоже могут принять этот сигнал, но такой маршрут заставит мапер сначала дотянуть этот сигнал через буфер до клокового дерева, и только потом распространить его на схему, что вставляет ему дикую задержку и портит времянку.

А дальше уже зависит от вашей схемы и необходимой оперативности, как то я тянул 50 МГц СПИ, с заходом не через клоковую ногу на спартане 6. В целом если работать по одному фронту получилось. Но там 1 линия, параллельная шина может внести свои коррективы.
Go to the top of the page
 
+Quote Post
Evgeny72
сообщение May 12 2017, 09:40
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 4-01-14
Пользователь №: 79 899



попробовал все перечисленные варианты.
- укоротил шлейф до 10 см, не помогло, результат тот же, через некоторое время все начинает плыть.
- устанавливал на входной сигнал клока триггер- шмитта, не помогло, проблема стала "вылазить" быстрее, чем без него,
- завел клок через симметричный интерфейс, не помогло.
А кто-нибудь подскачет - какая разница (дельта) между частотами записи/чтения в ФИФО допустима, учитывая, что запись и чтение идет не прерывно? Нельзя остановить поток данных приходящих на ФИФО, на клоковые входа записи/чтения ФИФО подаются одинаковые частоты, например 24,576 Мгц. Клоки асинхронны.

Сообщение отредактировал Evgeny72 - May 12 2017, 09:41
Go to the top of the page
 
+Quote Post

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

 


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


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