Перейти к содержанию
    

проблема с использованием clock

Добрый день!

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

Изменено пользователем Evgeny72

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хорошо бы уточнить что значит "плыть". А так смотреть на используемый стандарт, параметры входного сигнала и "связность" земель двух плат.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хорошо бы уточнить что значит "плыть". А так смотреть на используемый стандарт, параметры входного сигнала и "связность" земель двух плат.

 

плыть - перестает правильно работать. Земли... есть что проанализировать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

плыть - перестает правильно работать. Земли... есть что проанализировать...

Попробуйте еще триггер Шмидта включить на этом пине. Если фронт сигнала клока "завален" это может помочь.

А частота клока у Вас какая? И что за источник клока? Может у Вас согласование неправильно сделано (или совсем не сделано)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

проект через несколько минут начинает "плыть"

Плыть будет - проблема известная, сам с подобным сталкивался.

Всё дело в том что, у Вас такты идут с разных тактовых генераторов, хоть на них и написаны одинаковые циферки, но есть такая штука, как технологический разброс, невозможно изготовить две абсолютно одинаковые вещи, в том числе и тактовые генераторы, у них всегда будет разница в частотах. Если у одного, например, частота 50МГц и мы его берём за эталон, то у другого будет 50,0001МГц (зависит от точности производства), или 49,9999МГц. Это примерно как часы, которые периодически нужно подводить. И через некоторое время эта погрешность нарастает и становится критической.

Тут можно попробовать как-то изловчится и засинхронизировать внешнюю частоту с частотой проекта, либо пересмотреть архитектуру системы в целом.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

далее, по мелочи:

1) СХ) тактовую, полученную на эту плату с некоей удаленной на расстояние платы, обязательно необходимо пробуфферизировать.

2) ПР) убедиться, что полученный сигнал (ещё не тактовая!) пригоден для использования (частотомер в этой же плис, плюс использовать накопление показаний частотомера 5...10 сек)

3) ПР) только убедившись, что сигнал пригоден, после этого пытаться использовать этот сигнал как тактовый для asyncram, читай: только после этого отпускать async_reset от этой asyncram.

4) ПР) продолжать мониторить сигнал на отклонения (продолжать определять что сигнал - есть тактовая).

иначе глюки неизбежны.

 

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте еще триггер Шмидта включить на этом пине. Если фронт сигнала клока "завален" это может помочь.

А частота клока у Вас какая? И что за источник клока? Может у Вас согласование неправильно сделано (или совсем не сделано)?

 

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

 

 

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

 

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

Была мысль - завести сигнал клока на простой пин, не входа DLL/PLL.

Изменено пользователем Evgeny72

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Был проект отлаженный на одном источнике клока. Источник клока сменили и проект стал плохо работать.

При чем тут разброс генераторов, при чем тут 2 клоковое FIFO?

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Длина шлейфа 20 см. Резистор на 51 ом установлен на стороне передатчика. Пробовал его замыкать - толку не дало. Про диф пару понял, надо подумать, как реализовать в на имеющихся платах.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Длина шлейфа 20 см. Резистор на 51 ом установлен на стороне передатчика. Пробовал его замыкать - толку не дало. Про диф пару понял, надо подумать, как реализовать в на имеющихся платах.

скорость передачи данных какая?

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

 

Можно попробовать:

lvds изолятор

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

 

Но:

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да там вообще вроде не данные передают, а клок, все остальное в описании проблемы для драматизма%).

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

 

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

 

У ПЛИС иногда бывают диф входы клока и диф выходы, тут такой магии нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

скорость передачи данных какая?

 

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

 

У ПЛИС иногда бывают диф входы клока и диф выходы, тут такой магии нет?

 

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

Изменено пользователем Evgeny72

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Обычные ноги тоже могут принять этот сигнал, но такой маршрут заставит мапер сначала дотянуть этот сигнал через буфер до клокового дерева, и только потом распространить его на схему, что вставляет ему дикую задержку и портит времянку.

 

А дальше уже зависит от вашей схемы и необходимой оперативности, как то я тянул 50 МГц СПИ, с заходом не через клоковую ногу на спартане 6. В целом если работать по одному фронту получилось. Но там 1 линия, параллельная шина может внести свои коррективы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

попробовал все перечисленные варианты.

- укоротил шлейф до 10 см, не помогло, результат тот же, через некоторое время все начинает плыть.

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

- завел клок через симметричный интерфейс, не помогло.

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

Изменено пользователем Evgeny72

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...