|
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 8 2017, 08:50
|
Местный
  
Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653

|
Цитата(ViKo @ Jun 8 2017, 07:44)  Delay относительно чего? Между тактовой частотой внутри ПЛИС с ФАПЧ и входными тактами? Классический Source Synchronous дизайн, обмен данными с некоторым сторонним устройством по двунаправленной шине. С единственно разницей в том, что тактовый сигнал (входящий) не один, их 4. Но выбирается клок снаружи перемычкой ОДИН раз после подачи питания. Дальнейшая работа на выбранном клоке. В процессе работы клок меняться не будет. Для корректного обмена на шине у меня естественно есть ограничения input и output delay, которые привязаны к выбранному клоку.
|
|
|
|
|
Jun 8 2017, 10:47
|
Местный
  
Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653

|
Цитата(alexadmin @ Jun 8 2017, 13:21)  Может проще пропустить клок через ту самую перемычку? Цитата(Inanity @ Jun 2 2017, 17:16)  Кто-то, наверное, скажет, что нужно было самой перемычкой из 4 клоков выбрать один и подать на ПЛИС. Но "рвать" дорожку тактового сигнала перемычками тоже не хочется. Цитата(ViKo @ Jun 8 2017, 13:40)  А для проекта с одним тактовым сигналом у вас зазоры выдерживаются? Вы данные защелкиваете тактовым сигналом, созданным в PLL, правильно? Так сдвиньте ей фазу. Да, выдерживаются. С любым из четырёх. Но нужно чтобы с мультиплексором тоже всё было хорошо. Вы предлагаете clk0 взять как опорный и остальные генерировать сдвигом по фазе? Я не имею права так делать, поскольку нет чёткой взаимосвязи между фазой clk0 и фазой clk1, clk2, clk3. Если я предположу, что clk1 сдвинут относительно clk0 на 10 град, а в реальности там 50 град, то я нарушу setup/hold либо у себя, либо у девайса с которым общаюсь.
Сообщение отредактировал Inanity - Jun 8 2017, 10:54
|
|
|
|
|
Jun 8 2017, 11:43
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(Inanity @ Jun 8 2017, 13:47)  Да, выдерживаются. С любым из четырёх. Но нужно чтобы с мультиплексором тоже всё было хорошо. Вы предлагаете clk0 взять как опорный и остальные генерировать сдвигом по фазе? Я не имею права так делать, поскольку нет чёткой взаимосвязи между фазой clk0 и фазой clk1, clk2, clk3. Нет, я не предлагаю это. Это уже предлагали. Если без мультиплексора все нормально, а с мультиплексором нет, значит, надо задержать данные на то же время. Или фазу подкрутить в ФАПЧ.
|
|
|
|
Сообщений в этой теме
Inanity Cyclone V clock mux Jun 1 2017, 22:25 wert101 Цитата(Inanity @ Jun 2 2017, 01:25) Приве... Jun 2 2017, 13:07 Inanity Цитата(wert101 @ Jun 2 2017, 16:07) Не со... Jun 2 2017, 14:16  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 Цитата(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
|
|
|