|
|
  |
Как описать QDR прием ? |
|
|
|
Jun 1 2017, 12:49
|
Гуру
     
Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250

|
Надо принять (Kintex) сигнал на x4 от тактовой.
Казалось бы - IFDDR, PLL x2 и пара триггеров + финальный четырехбитный регистр от CLK.
Но почему-то ISE лепит регистр, который тактируется от CLK через несколько регионов от места, где разведен IFDDR и FF с CLKx2. Естественно, PAR долго думает и не сходится в итоге.
Как правильно задавать констрейнты в этом случае ?
P.S. Может и правильно все работает, но я не задал где-то TIG ? Появляются HOLD с какими-то дикими значениями -6.ххх нс.
--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
|
|
|
|
|
Jun 5 2017, 20:50
|
Гуру
     
Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250

|
Цитата(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 ошибками я разобрался, это из-за сдвига клока.
--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
|
|
|
|
|
Jun 6 2017, 02:19
|
Знающий
   
Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650

|
Цитата(DS @ Jun 1 2017, 19:49)  Но почему-то ISE лепит регистр, который тактируется от CLK через несколько регионов от места, где разведен IFDDR и FF с CLKx2. Естественно, PAR долго думает и не сходится в итоге.
Как правильно задавать констрейнты в этом случае ?
P.S. Может и правильно все работает, но я не задал где-то TIG ? Появляются HOLD с какими-то дикими значениями -6.ххх нс. Ограничить местоположение регистра областью около IFDDR и все дела. Я в подобных случаях (переход из одного кратного клока в другой через регистр) часто специально добавляю слой регистров дабы быть уверенным, что по выходу блока все тайминги в порядке и все выходы регистровые, чтобы потом не вылезло траблов в таймингах при стыковке с последующими блоками. З Ы Важное замечание. Ваши клоки CLK и CLKx2 должны из одной PLLки делаться и одинаковым способом, иначе потом замучаетесь тайминги сводить, либо сетап расползётся, либо холд.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|