|
проблема с использованием clock |
|
|
|
May 3 2017, 06:39
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 14)
|
May 3 2017, 10:15
|
Участник

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

|
Цитата(alexadmin @ May 3 2017, 12:58)  Хорошо бы уточнить что значит "плыть". А так смотреть на используемый стандарт, параметры входного сигнала и "связность" земель двух плат. плыть - перестает правильно работать. Земли... есть что проанализировать...
|
|
|
|
|
May 3 2017, 16:32
|
Частый гость
 
Группа: Участник
Сообщений: 123
Регистрация: 12-06-15
Из: Земля
Пользователь №: 87 133

|
Цитата(Evgeny72 @ May 3 2017, 12:15)  плыть - перестает правильно работать. Земли... есть что проанализировать... Попробуйте еще триггер Шмидта включить на этом пине. Если фронт сигнала клока "завален" это может помочь. А частота клока у Вас какая? И что за источник клока? Может у Вас согласование неправильно сделано (или совсем не сделано)?
|
|
|
|
|
May 3 2017, 18:13
|
Местный
  
Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485

|
Цитата(Evgeny72 @ May 3 2017, 09:39)  проект через несколько минут начинает "плыть" Плыть будет - проблема известная, сам с подобным сталкивался. Всё дело в том что, у Вас такты идут с разных тактовых генераторов, хоть на них и написаны одинаковые циферки, но есть такая штука, как технологический разброс, невозможно изготовить две абсолютно одинаковые вещи, в том числе и тактовые генераторы, у них всегда будет разница в частотах. Если у одного, например, частота 50МГц и мы его берём за эталон, то у другого будет 50,0001МГц (зависит от точности производства), или 49,9999МГц. Это примерно как часы, которые периодически нужно подводить. И через некоторое время эта погрешность нарастает и становится критической. Тут можно попробовать как-то изловчится и засинхронизировать внешнюю частоту с частотой проекта, либо пересмотреть архитектуру системы в целом.
|
|
|
|
|
May 3 2017, 19:58
|
Профессионал
    
Группа: Свой
Сообщений: 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? если нет, то смысл, зачем туда вообще заводили?
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
|
May 4 2017, 07:08
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
May 5 2017, 07:34
|
Участник

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

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

я только учусь...
     
Группа: Модераторы
Сообщений: 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.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
May 5 2017, 08:56
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
May 12 2017, 09:40
|
Участник

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

|
попробовал все перечисленные варианты. - укоротил шлейф до 10 см, не помогло, результат тот же, через некоторое время все начинает плыть. - устанавливал на входной сигнал клока триггер- шмитта, не помогло, проблема стала "вылазить" быстрее, чем без него, - завел клок через симметричный интерфейс, не помогло. А кто-нибудь подскачет - какая разница (дельта) между частотами записи/чтения в ФИФО допустима, учитывая, что запись и чтение идет не прерывно? Нельзя остановить поток данных приходящих на ФИФО, на клоковые входа записи/чтения ФИФО подаются одинаковые частоты, например 24,576 Мгц. Клоки асинхронны.
Сообщение отредактировал Evgeny72 - May 12 2017, 09:41
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|