Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Cyclone и тактирование внешних устройств
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Andr2I
Стандартная задача - тактировать внешнее устройство (ЦАП, например).
Выводим наружу данные, выводим тактовую частоту. Если делать совсем хорошо, то надо прицепить тактовый вход ЦАП к специальному выходу от PLL, но обычно это очень неудобно реализовать на плате. Поэтому задача усложняется - выход самый обычный. Квартус ругается - джиттер, однако... Все вроде понятно. Но выходы можно здорово настраивать. Для выходных данных можно использовать Fast OutPut Rtgister. А для клокового выхода может тоже есть чего? cranky.gif Может кто эту задачу уже решал?
Harbour
Оно ж от разводки зависеть будет, да и сомневаюсь что диапазон подстроек у пина шибко большой. Это все из славянской серии "зачем делать по datasheet'у, когда можно через задницу".
EvgenyNik
Во-первых, всё зависит от частоты... Если частота небольшая (1-20МГц), то при небольшой длинне проводников этой проблемой можно себя не озадачивать. Разве что, согласовать линии резисторами (последовательный у передатчика, параллельный у приемника), чтобы не было "колебанки" и высставить ток выводов в настройках циклоновского проекта.
Если же частоты выше, то борьбу надо разворачивать на поле PCB-дизайна, потому что даже идеально подогнанные времена пинов, могут быть безнадёжно "исправлены" проводниками на плате.
Postoroniy_V
Цитата(Andr2I @ Apr 9 2007, 23:46) *
Стандартная задача - тактировать внешнее устройство (ЦАП, например).
Выводим наружу данные, выводим тактовую частоту. Если делать совсем хорошо, то надо прицепить тактовый вход ЦАП к специальному выходу от PLL, но обычно это очень неудобно реализовать на плате. Поэтому задача усложняется - выход самый обычный. Квартус ругается - джиттер, однако... Все вроде понятно. Но выходы можно здорово настраивать. Для выходных данных можно использовать Fast OutPut Rtgister. А для клокового выхода может тоже есть чего? cranky.gif Может кто эту задачу уже решал?

дупустим нужно 50 мгц подать на выход
тогда с PLL берёте 100 мгц и подаёте на D триггер. в результате на выходе D триггера получите свои 50.
и чтобы результат не зависел "от синтеза до синтеза" этот триггер размещаете в IO cell тоесть как Fast OutPut Rеgister. Метод не мой у кого то тут на никсе и подглядел. Но после применения этого метода кварутс матерится не будет smile.gif
Ну а jitter у тактовой будет всегда, и родной pll его не давит.
И тут ещё нужно смотреть с каким джиттером допустимо тактировать ваш ацп. могут быть проблемы glare.gif
Andr2I
Harbour
Цитата
Оно ж от разводки зависеть будет, да и сомневаюсь что диапазон подстроек у пина шибко большой. Это все из славянской серии "зачем делать по datasheet'у, когда можно через задницу".


На счет славянской серии - святая правда! Но что делать если у каждой PLL только 2 нормальных выхода на пины? Вот и приходится использовать обычные пины для тактирования.

Евгений Николаев
Цитата
Во-первых, всё зависит от частоты... Если частота небольшая (1-20МГц), то при небольшой длинне проводников этой проблемой можно себя не озадачивать. Разве что, согласовать линии резисторами (последовательный у передатчика, параллельный у приемника), чтобы не было "колебанки" и высставить ток выводов в настройках циклоновского проекта.
Если же частоты выше, то борьбу надо разворачивать на поле PCB-дизайна, потому что даже идеально подогнанные времена пинов, могут быть безнадёжно "исправлены" проводниками на плате


Частота 70 МГц. Дорожки все короткие (около 1 см). Тактовая включена через резистор 50 Ом последовательно. Все нормально работает. Вопрос был - можно ли что-то улучшить? Есть смысл играться выходным током, заваливая или выпрмляя фронты?

Postoroniy_V
Цитата
дупустим нужно 50 мгц подать на выход
тогда с PLL берёте 100 мгц и подаёте на D триггер. в результате на выходе D триггера получите свои 50.
и чтобы результат не зависел "от синтеза до синтеза" этот триггер размещаете в IO cell тоесть как Fast OutPut Rеgister. Метод не мой у кого то тут на никсе и подглядел. Но после применения этого метода кварутс матерится не будет
Ну а jitter у тактовой будет всегда, и родной pll его не давит.
И тут ещё нужно смотреть с каким джиттером допустимо тактировать ваш ацп. могут быть проблемы


В принципе согласен! Но есть несколько вопросов чайника - чем D-триггер лучше подачи частоты PLL на отдельный пин. Может лучше подать через lcell (на задержку плевать, но есть экономия по энергопотреблению триггера) и объявить выход Fast OutPut Rеgister. И наконец, в чем разница между Fast OutPut Rеgister и Fast Enable OutPut Rеgister (у Квартуса есть оба варианта)?
То что Квартус ругается - ерунда, можно и потерпеть.
То что джиттер будет всегда - понятно. Если величина джиттера в ps не зависит от частоты, то D-триггер, уменьшает его относительную величину в 2 раза (как и простое уменьшение частоты PLL).
Postoroniy_V
Цитата(Andr2I @ Apr 10 2007, 21:05) *
В принципе согласен! Но есть несколько вопросов чайника - чем D-триггер лучше подачи частоты PLL на отдельный пин. Может лучше подать через lcell (на задержку плевать, но есть экономия по энергопотреблению триггера) и объявить выход Fast OutPut Rеgister. И наконец, в чем разница между Fast OutPut Rеgister и Fast Enable OutPut Rеgister (у Квартуса есть оба варианта)?
То что Квартус ругается - ерунда, можно и потерпеть.
То что джиттер будет всегда - понятно. Если величина джиттера в ps не зависит от частоты, то D-триггер, уменьшает его относительную величину в 2 раза (как и простое уменьшение частоты PLL).


а лучше он тем о чём я вам уже написал smile.gif
и чтобы результат не зависел "от синтеза до синтеза"
Fast OutPut Rеgister и Fast Enable OutPut Rеgister относится только к тригерам, и откуда у вас он возмётся если вы хотите просто с выхода pll подать на выход я не знаю smile.gif
И в случае когда у вас будет тригер на выходе можно легко поменять фазировку выходного сигнала
а без триггера будете иметь гемор с выставлением нужной вам фазы.
ЭЭЭ....Простите не понял а как триггером вы можете уменьшить джиттер? джиттер есть во входном сигнале и pll 1)этот джиттер не давит 2) вносит свой.
sazh
Но что делать если у каждой PLL только 2 нормальных выхода на пины? Вот и приходится использовать обычные пины для тактирования.
////////////////////////////
Обычно гораздо больше. Даже если не хватает, можно размножить клок, использовать clock buffer с нулевой задержкой типа idt2305, idt2309.
существует idt 5v991 SKEW PLL CLOCK DRIVER TURBOCLOCK™
А если джиттер волнует, есть lvpecl генераторы (например ics843011) и клоковый буфер к нему (например ics85304), размноженный клок от которого можно подать и на клоковый вход FPGA, сделав его пекловским.
EvgenyNik
Цитата
Есть смысл играться выходным током, заваливая или выпрмляя фронты?

Поиграться током и Slow slew rate'ом может быть полезно, т.к. это в некоторой степени равноценно изменению фазы тактового выходного сигнала, т.к. меняет момент времени, когда приёмник будет реагировать на фронт сигнала.
---
Небольшой офф: когда в линии согласующие резисторы включены (относительно букв приёмник слево, источник - справа) Г-образно или П-образно (для двунаправленной линии), то интересных эффектов для формирования фронта можно добиться последовательным переводом выхода в разные состояния.
Пример: Надо плавно перейти из лог. "1" к лог. "0".
Выводим "0" - выход резко дёргается вниз,
переводим вывод в третье состояние - выход плавно идёт к нулю,
снова выводим "0" - выход окончательно притягивается к земле.
Комбинирую длительность и очерёдность таких состояний можно добиваться красивых фронтов. Подобная методика используется в выходных каскадах некоторых МК.
Andr2I
Postoroniy_V
Цитата
а лучше он тем о чём я вам уже написал
и чтобы результат не зависел "от синтеза до синтеза"


Может не правильно понял, но плюсы состоят в том, что "Квартус не матерится" и результат не меняется в процессе синтеза?
Про фазировку согласен - иногда нужна.
А в чем все таки разница между Fast OutPut Rеgister и Fast Enable OutPut Rеgister ? Неужели в возможности запрета переключения триггера?

Цитата
ЭЭЭ....Простите не понял а как триггером вы можете уменьшить джиттер? джиттер есть во входном сигнале и pll 1)этот джиттер не давит 2) вносит свой.


Разговор шел про относительную величину джиттера, т.е. отношение времени дрожания к периоду частоты. Абсолютная величина не уменьшится, но может даже увеличиться. Если питание D-триггера дергается (за счет работы соседей), то и порог срабатывания будет дергаться - дополнительный джиттер. Т.е. иногда D-триггер может ухудшить ситуация с джиттером (также как и lcell).


sazh
Цитата
Но что делать если у каждой PLL только 2 нормальных выхода на пины? Вот и приходится использовать обычные пины для тактирования.
////////////////////////////
Обычно гораздо больше. Даже если не хватает, можно размножить клок, использовать clock buffer с нулевой задержкой типа idt2305, idt2309.


Работаю с EP2C5 - у него, как я понял, 2 PLL и у каждой по 2 выхода наружу PLL1_OUTp и PLL1_OUTn (или по 1 дифференциальному).
Внешние примочки пока ставить не хочу - и так все нормально. Было желание немного улучшить ситуацию за счет многочисленных настроек Квартуса.

Евгений Николаев
Цитата
Пример: Надо плавно перейти из лог. "1" к лог. "0".
Выводим "0" - выход резко дёргается вниз,
переводим вывод в третье состояние - выход плавно идёт к нулю,
снова выводим "0" - выход окончательно притягивается к земле.
Комбинирую длительность и очерёдность таких состояний можно добиваться красивых фронтов.


Спасибо за советы! Буду пробовать.
На счет "формирования красивых фронтов" - как я понял, это что-то вроде ШИМ модуляции - меняя время можно изменять откачиваемый заряд?
Postoroniy_V
Цитата(Andr2I @ Apr 11 2007, 10:17) *
Postoroniy_V
Может не правильно понял, но плюсы состоят в том, что "Квартус не матерится" и результат не меняется в процессе синтеза?
Про фазировку согласен - иногда нужна.
А в чем все таки разница между Fast OutPut Rеgister и Fast Enable OutPut Rеgister ? Неужели в возможности запрета переключения триггера?
Разговор шел про относительную величину джиттера, т.е. отношение времени дрожания к периоду частоты. Абсолютная величина не уменьшится, но может даже увеличиться. Если питание D-триггера дергается (за счет работы соседей), то и порог срабатывания будет дергаться - дополнительный джиттер. Т.е. иногда D-триггер может ухудшить ситуация с джиттером (также как и lcell).

1)Поняли верно
2)Fast OutPut Rеgister - это сам триггер Fast Enable OutPut Rеgister - это enable для этого триггера
Fast Enable OutPut Rеgister - это то что управляет третьим состоянием
смотрите в cyclone2_handbook рисунок
Figure 2–32. Cyclone IOE in Bidirectional I/O Configuration
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.