реклама на сайте
подробности

 
 
> Cyclone V clock mux, Как сделать по уму динамический выбор 1-го тактового сигнала из 4-ёх
Inanity
сообщение Jun 1 2017, 22:25
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Jun 8 2017, 04:44
Сообщение #2


Универсальный солдатик
******

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



Delay относительно чего? Между тактовой частотой внутри ПЛИС с ФАПЧ и входными тактами?
Go to the top of the page
 
+Quote Post
Inanity
сообщение Jun 8 2017, 08:50
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653



Цитата(ViKo @ Jun 8 2017, 07:44) *
Delay относительно чего? Между тактовой частотой внутри ПЛИС с ФАПЧ и входными тактами?


Классический Source Synchronous дизайн, обмен данными с некоторым сторонним устройством по двунаправленной шине. С единственно разницей в том, что тактовый сигнал (входящий) не один, их 4. Но выбирается клок снаружи перемычкой ОДИН раз после подачи питания. Дальнейшая работа на выбранном клоке. В процессе работы клок меняться не будет. Для корректного обмена на шине у меня естественно есть ограничения input и output delay, которые привязаны к выбранному клоку.
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Jun 8 2017, 10:21
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(Inanity @ Jun 8 2017, 11:50) *
тактовый сигнал (входящий) не один, их 4. Но выбирается клок снаружи перемычкой ОДИН раз после подачи питания. Дальнейшая работа на выбранном клоке. В процессе работы клок меняться не будет.


Может проще пропустить клок через ту самую перемычку?
Go to the top of the page
 
+Quote Post
Inanity
сообщение Jun 8 2017, 10:47
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 8 2017, 11:43
Сообщение #6


Универсальный солдатик
******

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



Цитата(Inanity @ Jun 8 2017, 13:47) *
Да, выдерживаются. С любым из четырёх. Но нужно чтобы с мультиплексором тоже всё было хорошо.
Вы предлагаете clk0 взять как опорный и остальные генерировать сдвигом по фазе? Я не имею права так делать, поскольку нет чёткой взаимосвязи между фазой clk0 и фазой clk1, clk2, clk3.

Нет, я не предлагаю это. Это уже предлагали. Если без мультиплексора все нормально, а с мультиплексором нет, значит, надо задержать данные на то же время. Или фазу подкрутить в ФАПЧ.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 00:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01417 секунд с 7
ELECTRONIX ©2004-2016