Перейти к содержанию
    

Констрейн для тактирующей плис

Здравствуйте. Решил на досуге поэкспериментировать с железками, для чего прикупил не дорогую платку с АЦП. Впрочем, при этом, частота дискретизации у него достигает порядка 100 МSem. Но вот такты для платы необходимо брать извне. На данный момент единственным источником тактов у меня является небольшая платка на базе spartan 6. Понимаю, что тактирование с помощью ПЛИС это далеко не самый лучший вариант, но пока ничего другого нет. Поковырялся на буржуинских форумах, и увидел совет, мол уж если сильно приспичило, то тактируйт с помощью клоков идущих с DDR (сам АЦП передаёт данные по SDR). Вроде всё ясно, но... как в таком случае задать констрейн. Есть ли в UCF на этот случай что то. Я понимаю как задать ограничения, если я выдаю клок и по нему же выдаю данные. Или если я принимаю тактовый сигнал, и относительно него же принимаю данные. Но как быть если я выдаю клок, а данные принимаю?

Изменено пользователем Грендайзер

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вангую, что в цепь тактирования предлагают поставить DDR триггер. Это придаст вашему клоку некую детерминированность в задержке, джиттер все-равно не улучшит. Особых констрейнтов для этого не требуется. Достаточно реализовать схему:

post-26933-1495225065_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну без вангования так и есть :).

 

Надо поставить ODDR - выходной ДДР он есть на каждой ноге спартана. Дата0 поставить ему в 1, Дата 1 поставить в 0 и будет клок.

Данные входящие можно щелкать по клоку во входной регистр IOB. Конструкция спартана такова что время распространения клока до IOB выравнено, и пути IOB тоже, там разница очень мала. Так что все констраины можно писать относительно порождающего клока.

 

 

Кстати это все если вы хотите выдавать частоту равную частоте клока. А если у Вас частота меньше, то никто не мешает вам генерить ее просто через IOB выходной регистр на счетчике. И опять же все констраины относительно порождающего клока.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извините, что не отвечал, отвлёкся. Савсибо за подсказки. Правда есть несколько вопросов:

1)

Так что все констраины можно писать относительно порождающего клока.

Т.е. относительно того, который приходит на вход ODDR ?

2) dm.pogrebnoy привёл картинку, где на ODDR идут такты прямой и сдвинутый на DCM? А можно, сделать так: приямой - clk, а сдвинутый ~clk (или not clk для vhdl)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2) dm.pogrebnoy привёл картинку, где на ODDR идут такты прямой и сдвинутый на DCM? А можно, сделать так: приямой - clk, а сдвинутый ~clk (или not clk для vhdl)?

Можно, только фигня получится. Пока хватает BUFG, лучше так не делать.

 

ug382

Clocking Structure Guidelines

...

The following options can be used for clocking IDDR2 and ODDR2 primitives.

• When performance is not critical, use a single DCM output to drive both clock (C0)

and the inverted clock (C1) using local inversion. Works with or without IODELAY2.

• For the highest performance, use two DCM outputs with separate BUFGs with 180°

phase difference. Works with or without IODELAY2. See Figure 1-18

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ух ты... Ну что ж, мне вроде всё ясно! dm.pogrebnoy, Golikov A., ещё раз большое спасибо за помощь! :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...