Грендайзер 0 19 мая, 2017 Опубликовано 19 мая, 2017 (изменено) · Жалоба Здравствуйте. Решил на досуге поэкспериментировать с железками, для чего прикупил не дорогую платку с АЦП. Впрочем, при этом, частота дискретизации у него достигает порядка 100 МSem. Но вот такты для платы необходимо брать извне. На данный момент единственным источником тактов у меня является небольшая платка на базе spartan 6. Понимаю, что тактирование с помощью ПЛИС это далеко не самый лучший вариант, но пока ничего другого нет. Поковырялся на буржуинских форумах, и увидел совет, мол уж если сильно приспичило, то тактируйт с помощью клоков идущих с DDR (сам АЦП передаёт данные по SDR). Вроде всё ясно, но... как в таком случае задать констрейн. Есть ли в UCF на этот случай что то. Я понимаю как задать ограничения, если я выдаю клок и по нему же выдаю данные. Или если я принимаю тактовый сигнал, и относительно него же принимаю данные. Но как быть если я выдаю клок, а данные принимаю? Изменено 19 мая, 2017 пользователем Грендайзер Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimidrol 0 19 мая, 2017 Опубликовано 19 мая, 2017 · Жалоба Вангую, что в цепь тактирования предлагают поставить DDR триггер. Это придаст вашему клоку некую детерминированность в задержке, джиттер все-равно не улучшит. Особых констрейнтов для этого не требуется. Достаточно реализовать схему: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 20 мая, 2017 Опубликовано 20 мая, 2017 · Жалоба Ну без вангования так и есть :). Надо поставить ODDR - выходной ДДР он есть на каждой ноге спартана. Дата0 поставить ему в 1, Дата 1 поставить в 0 и будет клок. Данные входящие можно щелкать по клоку во входной регистр IOB. Конструкция спартана такова что время распространения клока до IOB выравнено, и пути IOB тоже, там разница очень мала. Так что все констраины можно писать относительно порождающего клока. Кстати это все если вы хотите выдавать частоту равную частоте клока. А если у Вас частота меньше, то никто не мешает вам генерить ее просто через IOB выходной регистр на счетчике. И опять же все констраины относительно порождающего клока. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Грендайзер 0 21 мая, 2017 Опубликовано 21 мая, 2017 · Жалоба Извините, что не отвечал, отвлёкся. Савсибо за подсказки. Правда есть несколько вопросов: 1) Так что все констраины можно писать относительно порождающего клока. Т.е. относительно того, который приходит на вход ODDR ? 2) dm.pogrebnoy привёл картинку, где на ODDR идут такты прямой и сдвинутый на DCM? А можно, сделать так: приямой - clk, а сдвинутый ~clk (или not clk для vhdl)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimidrol 0 21 мая, 2017 Опубликовано 21 мая, 2017 · Жалоба 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Грендайзер 0 22 мая, 2017 Опубликовано 22 мая, 2017 · Жалоба Ух ты... Ну что ж, мне вроде всё ясно! dm.pogrebnoy, Golikov A., ещё раз большое спасибо за помощь! :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться