Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как описать QDR прием ?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
DS
Надо принять (Kintex) сигнал на x4 от тактовой.

Казалось бы - IFDDR, PLL x2 и пара триггеров + финальный четырехбитный регистр от CLK.

Но почему-то ISE лепит регистр, который тактируется от CLK через несколько регионов от места, где разведен IFDDR и FF с CLKx2. Естественно, PAR долго думает и не сходится в итоге.

Как правильно задавать констрейнты в этом случае ?

P.S. Может и правильно все работает, но я не задал где-то TIG ? Появляются HOLD с какими-то дикими значениями -6.ххх нс.
Dr.Alex
Констрейн для ддр это в любом случае такая штука где легко облажаться.
Так что если уж пошли таким путём (не уверен что правильным), то идите до конца:: ПЛЛ пусть умножает на 4, и никаких IFDDR.
DS
На 4 уже нельзя умножить.

Похоже, компилятору не нравится переход от двойной частоты к одинарной, он видит потери половины данных. Как должен выглядеть констрейн на этот переход, чтобы ISE его правильно понимал ?
krux
дык это.... x4 это нифига уже не IDDR, это должен быть ISERDES.

с другой стороны QDR-II/QDR-II+ SRAM от Cypress - это не х4, а х2 и с темпом запросов не 1, а 1/2.

итого: у вас таки-что?
Golikov A.
Я бы попробовал сказать что констраинить только путь данных от двойного клока к одинарному, на длину в 1 такт одинарного. А правильнее бы их через FIFO пропустить, чтобы пересинхронизация с двойной на одинарную частоту правильно прошла.

То есть DDR по переднему и заднему фронту двойного принимаются, потом по двойному их в FIFO, а потом по одинарному из FIFO забрать, как то так должно сойтись вроде как...
DS
Цитата(krux @ Jun 1 2017, 20:46) *
дык это.... x4 это нифига уже не IDDR, это должен быть ISERDES.

с другой стороны QDR-II/QDR-II+ SRAM от Cypress - это не х4, а х2 и с темпом запросов не 1, а 1/2.

итого: у вас таки-что?


У меня асинхронный вход. Разобрался уже с модой OVERSAMPLING, пока работает (надо в другом банке еще то же сделать, с того же PLL).

Вопрос - есть какой-нибудь стандартный документированный способ синхронного перехода от домена 2х к 1х с удвоением данных ? Что-то всякие примеры констрейнов дают неустойчивые (в смысле результатов компиляции) результаты на частотах 600 и больше.

Когда есть сдвиг клоков PLL в сторону ухудшения, XST за 1 такт 2х не может построить переход между триггерами. И возникают 2 вопроса - 1. как в этих условиях правильно задать выбор периода 2х , в котором писать в регистр, и 2. как объяснить XST, что смотреть надо через 2 такта (это вроде понятно, что в UCF 2 цикла можно задать, но что-то невразумительное я получаю, может потому что п.1 не выполняется).

C HOLD ошибками я разобрался, это из-за сдвига клока.
Bad0512
Цитата(DS @ Jun 1 2017, 19:49) *
Но почему-то ISE лепит регистр, который тактируется от CLK через несколько регионов от места, где разведен IFDDR и FF с CLKx2. Естественно, PAR долго думает и не сходится в итоге.

Как правильно задавать констрейнты в этом случае ?

P.S. Может и правильно все работает, но я не задал где-то TIG ? Появляются HOLD с какими-то дикими значениями -6.ххх нс.

Ограничить местоположение регистра областью около IFDDR и все дела. Я в подобных случаях (переход из одного кратного клока в другой через регистр) часто специально добавляю слой регистров дабы
быть уверенным, что по выходу блока все тайминги в порядке и все выходы регистровые, чтобы потом не вылезло траблов в таймингах при стыковке с последующими блоками.

З Ы Важное замечание. Ваши клоки CLK и CLKx2 должны из одной PLLки делаться и одинаковым способом, иначе потом замучаетесь тайминги сводить, либо сетап расползётся, либо холд.
DS
Естественно, из одного PLL.
Проблем вытащить из ISERDES нет.

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

P.S. Нашел правильный ответ у Xilinx - нужно сделать тестовую пару ISERDES-OSERDES и достаточно сложную логику привязки фаз с управлением MMCM. Решения средствами языка/констрейнсов нет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.