|
Cyclone V clock mux, Как сделать по уму динамический выбор 1-го тактового сигнала из 4-ёх |
|
|
|
Jun 1 2017, 22:25
|
Местный
  
Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653

|
Приветствую всех.
Глобально задача выглядит следующим образом: Cyclone V E. Есть 4 входящих тактовых сигнала одной частоты (30mhz), но различной фазы (что на самом деле не суть важно). Требуется реализовать возможность динамически выбирать нужный тактовый сигнал для всей схемы на ПЛИС. Все 4 клока заведены на специальные клоковые ноги ПЛИСины.
Что пробовал:
1. Пробовал использовать ядро ALTCLKCTRL, оно как раз на 4 клока рассчитано, но к сожалению только 2 входа могут быть с внешних портов, остальные 2 должны быть с PLL. Каскадировать это ядро нельзя.
2. Два клока выбираются с помощью PLL через 2 входа reclk и refclk1 с ручным выбором Switchover, т.е. по сути PLL работает как мультиплексор. Остальные 2 идут на ALTCLKCTRL вместе с результирующим клоком с PLL. Итого из трех выбирается один. Вроде как всё разводится, но тут другая засада. Заключается она в том, что по сути ничего не переключается. Ни на PLL, ни на этом чертовом ALTCLKCTRL. Проблем с пайкой и прочих детсадовских ошибок точно нет.
Вот так совершенно, казалось бы, простая задача на этой "крутой" ПЛИС пока не решается по уму. Борюсь с искушением сделать мультиплексор на логике, а потом завести это каким-нибудь образом на вход PLL в режиме 1:1. Частота небольшая, но это как-то криво, хочется оставить на крайний случай.
Сообщение отредактировал Inanity - Jun 1 2017, 22:26
|
|
|
|
|
 |
Ответов
|
Jun 2 2017, 13:07
|
Участник

Группа: Свой
Сообщений: 71
Регистрация: 29-02-08
Из: Москва
Пользователь №: 35 493

|
Цитата(Inanity @ Jun 2 2017, 01:25)  Приветствую всех.
Глобально задача выглядит следующим образом: Cyclone V E. Есть 4 входящих тактовых сигнала одной частоты (30mhz), но различной фазы (что на самом деле не суть важно). Требуется реализовать возможность динамически выбирать нужный тактовый сигнал для всей схемы на ПЛИС. Все 4 клока заведены на специальные клоковые ноги ПЛИСины.
Что пробовал: ... Вот так совершенно, казалось бы, простая задача на этой "крутой" ПЛИС пока не решается по уму. Борюсь с искушением сделать мультиплексор на логике, а потом завести это каким-нибудь образом на вход PLL в режиме 1:1. Частота небольшая, но это как-то криво, хочется оставить на крайний случай. Не совсем понятна Ваша задача и что Вы хотите сделать с "4 входящими тактовыми сигналами одной частоты (30mhz), но различной фазы". Попробуйте посмотреть в сторону "clock switching glitch free". http://www.eetimes.com/document.asp?doc_id=1202359http://www.valpont.com/2x1-and-nx1-glitch-...-switching/pst/
|
|
|
|
|
Jun 2 2017, 14:16
|
Местный
  
Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653

|
Цитата(wert101 @ Jun 2 2017, 16:07)  Не совсем понятна Ваша задача и что Вы хотите сделать с "4 входящими тактовыми сигналами одной частоты (30mhz), но различной фазы". Конструктивно устроено так, что на плату может быть подан один из четырёх тактовых сигналов. По идее снаружи нужно было бы установить мультиплексор и выбирать нужный клок. Выбор клока осуществляется 2-битной перемычкой на плате. Но т.к. на плате стоит ПЛИС, то было принято решение не ставить внешний мультиплексор, а выбирать нужный клок внутри ПЛИС, в зависимости от положения внешней перемычки. Вот тут возникли проблемы. Цитата(DmitryR @ Jun 2 2017, 16:26)  Это как раз важно. Если они все имеют одну частоту (то есть не плывут один к дргому), то просто заведите один сигнал на PLL, и нужный фазовый сдвиг сделайте на ней. Я на самом деле зря упомянул про фазы. Задача намного проще. Пусть эти клоки никак не связаны по фазе и даже могут отличаться друг от друга по частоте или вовсе отсутствовать. Задача в том, чтобы просто иметь возможность один раз после подачи питания выбрать нужный клок в зависимости от внешней перемычки и с ним работать всегда. Кто-то, наверное, скажет, что нужно было самой перемычкой из 4 клоков выбрать один и подать на ПЛИС. Но "рвать" дорожку тактового сигнала перемычками тоже не хочется.
Сообщение отредактировал Inanity - Jun 2 2017, 14:22
|
|
|
|
Сообщений в этой теме
Inanity Cyclone V clock mux Jun 1 2017, 22:25  DmitryR Цитата(Inanity @ Jun 2 2017, 17:16) Задач... Jun 2 2017, 14:36 DmitryR Цитата(Inanity @ Jun 2 2017, 01:25) Cyclo... Jun 2 2017, 13:26 dvladim Цитата(Inanity @ Jun 2 2017, 17:16) Задач... Jun 6 2017, 20:49 Inanity Цитата(dvladim @ Jun 6 2017, 23:49) Решен... Jun 7 2017, 19:09 ViKo Сделайте мультиплексор тактов на логике внутри ПЛИ... Jun 7 2017, 08:01 dvladim UPD:
Решение третье: заведите клок на PLL, выход c... Jun 7 2017, 18:26 ViKo Delay относительно чего? Между тактовой частотой в... Jun 8 2017, 04:44 Inanity Цитата(ViKo @ Jun 8 2017, 07:44) Delay от... Jun 8 2017, 08:50  alexadmin Цитата(Inanity @ Jun 8 2017, 11:50) такто... Jun 8 2017, 10:21   Inanity Цитата(alexadmin @ Jun 8 2017, 13:21) Мож... Jun 8 2017, 10:47    ViKo Цитата(Inanity @ Jun 8 2017, 13:47) Да, в... Jun 8 2017, 11:43  ViKo Цитата(Inanity @ Jun 8 2017, 11:50) Класс... Jun 8 2017, 10:40 Inanity Цитата(ViKo @ Jun 8 2017, 14:43) Нет, я н... Jun 9 2017, 12:09
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|