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

Правильные констрейны

Есть сигнал тактирования с i/o вывода плис (Xilinx V6) 200МГц. Весь проект должен работать на данном сигнале деленном на 2, или на 4, или на 8, или на 16. Делаю так: делю исходный сигнал на 2, 4, 8, 16 на регистрах полученные сигналы подаю на простой мультиплексор с помощью которого выбираю нужную мне частоту. Далее через bufg на всю схему. В UCF задаю период входного сигнала и все (пологаю этого не достаточно). Помогите описать правильно констрейны, что бы задержка между входной частотой в 200 МГц и его деленными сигналами была минимальной и не гуляла. Заранее спасибо за ответ.

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


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

Есть сигнал тактирования с i/o вывода плис (Xilinx V6) 200МГц. Весь проект должен работать на данном сигнале деленном на 2, или на 4, или на 8, или на 16. Делаю так: делю исходный сигнал на 2, 4, 8, 16 на регистрах полученные сигналы подаю на простой мультиплексор с помощью которого выбираю нужную мне частоту. Далее через bufg на всю схему. В UCF задаю период входного сигнала и все (пологаю этого не достаточно). Помогите описать правильно констрейны, что бы задержка между входной частотой в 200 МГц и его деленными сигналами была минимальной и не гуляла. Заранее спасибо за ответ.

 

Лучше сделайте clock-enable, который бы следовал 1 раз на 2, 4, 8 или 16 тактов и работайте от входного клока. Так будет сильно проще. Если хочется все же иметь разные клоки и мультиплексировать их, то используйте специальный клоковый мультиплексор bufgmux.

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


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

Лучше сделайте clock-enable, который бы следовал 1 раз на 2, 4, 8 или 16 тактов и работайте от входного клока. Так будет сильно проще. Если хочется все же иметь разные клоки и мультиплексировать их, то используйте специальный клоковый мультиплексор bufgmux.

Клок енабл конечно логично, но тащить его чере весь проект как-то мутарно. Тем более что проект уже практически сделан в схематике. А вот bufgmux заманчиво, но смущает такой момент: мне нужно мультиплексор 4 в 1. Что каскадировать 3 штуки bufgmux? Проблем не прибавиться с разводкой? А как насчет констрейнов есть советы?

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


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

Задача конечно бредовая, но гражданам, в 2013 году от рождества христова рисующим в схематике (особенно для V6), закон не писан, аднака.. :-о

 

Так что если уж очень хочется, то для деления клока используйте DCM, коэффициенты у него можно менять ДИНАМИЧЕСКИ.

Тогда и перерисовывать ничего не нужно.

Констрейнить в любом случае придётся на максимальную частоту.

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


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

clock-enable и один единственный констрейн ПЕРИОД
Не совсем единственный. Мультицикл тут нужен на 2.

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


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

Не совсем единственный. Мультицикл тут нужен на 2.

На V6 на 200МГц и без мультицикла всё пролезет скорее всего. Ну это при условии что

написано всё нормально.

 

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


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

Задача конечно бредовая, но гражданам, в 2013 году от рождества христова рисующим в схематике (особенно для V6), закон не писан, аднака.. :-о

 

Так что если уж очень хочется, то для деления клока используйте DCM, коэффициенты у него можно менять ДИНАМИЧЕСКИ.

Тогда и перерисовывать ничего не нужно.

Констрейнить в любом случае придётся на максимальную частоту.

 

Насчет бредовой идеи рисования в схематике Вы, конечно перегнули. Схема верхнего уровня соединяющая блоки в нужной последовательности. Наглядно, просто для понимания (vhdl до простоты чтения схемы как до луны пешком). Сам вожусь с плисинами и схематиком-vhdl не первый год, так что могу судить. Но это все лирика. Тепер по теме.

 

Деление на DCM не пройдет по нескольким причинам: Входная частота не только 200 МГц, но может и снижаться до 2 МГц. И потом она формируется не кварцевым генератором, а на dds в этой же плисине с внешним аналоговым фильтром и собственном замкнута в петлю. Собственно говоря, восстанавливается тактовая частота следования символов. Поэтому стабильность отсутствует как таковая и может сильно снижаться. В таких условиях DCM работать отказывается.

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


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

"Верхний уровень в схематике - это круто и очень наглядно" - распространённое заблуждение, уже слышал. Но спорить смысла нет. Примерно как отговаривать кого-то носить штаны с отвисшей до колен задницей. (Есть такая мода у некоторых.)

 

А бредовой я назвал идею менять тактовую одной и той же цепи в столь широких пределах.

Для чего? Для экономии энергии? :-))))

 

 

Попробую по теме.

 

Э-э-э-э-э, видится мне, что вы вообще нарушаете элементарные принципы построения систем.

Хорошо, вы восстанавливаете тактовую каких-то символов. Но это же не значит, что именно она должна быть глобальным клоком для кучи логики!

Если вы на процессоре делаете приёмник (демодулятор) сигнала на несущей, к примеру, 400 МГц и скоростью символов, скажем, 6МГц, то разве у вас ДСПшник тактируется этими 400 или 6 МГц? А если у вас микроконтроллер принимает чего-то по UARTу с битрейтом 115200, разве он от них тактируется?

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


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

Клок енабл конечно логично, но тащить его чере весь проект как-то мутарно. Тем более что проект уже практически сделан в схематике. А вот bufgmux заманчиво, но смущает такой момент: мне нужно мультиплексор 4 в 1. Что каскадировать 3 штуки bufgmux? Проблем не прибавиться с разводкой? А как насчет констрейнов есть советы?

 

bufgmux боюсь все же не подойдет - мне казалось у него 4 входа, а если 2... Не факт,что их удасться каскадировать. Правильно сделать все же с клок-енаблами. Если менять готовую схему совсем не хочется, то сделать обычный мультиплексор, но после него обязательно поставить триггер, работающий от вашей основной частоты. Тогда вы по крайней мере избавитесь от глитчей, которые возникнут на логике. После чего описываете этот сигнал как обычный клок.

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


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

"Верхний уровень в схематике - это круто и очень наглядно" - распространённое заблуждение, уже слышал. Но спорить смысла нет. Примерно как отговаривать кого-то носить штаны с отвисшей до колен задницей. (Есть такая мода у некоторых.)

 

А бредовой я назвал идею менять тактовую одной и той же цепи в столь широких пределах.

Для чего? Для экономии энергии? :-))))

 

 

Попробую по теме.

 

Э-э-э-э-э, видится мне, что вы вообще нарушаете элементарные принципы построения систем.

Хорошо, вы восстанавливаете тактовую каких-то символов. Но это же не значит, что именно она должна быть глобальным клоком для кучи логики!

Если вы на процессоре делаете приёмник (демодулятор) сигнала на несущей, к примеру, 400 МГц и скоростью символов, скажем, 6МГц, то разве у вас ДСПшник тактируется этими 400 или 6 МГц? А если у вас микроконтроллер принимает чего-то по UARTу с битрейтом 115200, разве он от них тактируется?

Про схематик тему закрыли. :-)

 

Дем делается полностью на плис в реальном времени (никаких ДСП). Символьная скорость от кГц до 50 МГц. Оттого такой разброс. Именно она (символьная, а точнее удвоенная) должна быть глобальным клоком для кучи логики. Отсюда и проблемы.

Проект вообще-то полность рабочий (причем для сигналов намного больше чем кам64...), но из-за данного узла периодически возникают проблемы с изменением проекта (заказчик постоянно хочет чего-то нового) вот его-то и хотелось усовершенствовать. Несущую частоту говорить не буду, но она стандартна для многой аппаратуры данного класса. Итак сказал немного лишнего - должны понять :-)

 

 

bufgmux боюсь все же не подойдет - мне казалось у него 4 входа, а если 2... Не факт,что их удасться каскадировать. Правильно сделать все же с клок-енаблами. Если менять готовую схему совсем не хочется, то сделать обычный мультиплексор, но после него обязательно поставить триггер, работающий от вашей основной частоты. Тогда вы по крайней мере избавитесь от глитчей, которые возникнут на логике. После чего описываете этот сигнал как обычный клок.

 

А вот с триггером по выходу нужно попробовать. Спасибо. Покрайней мере это очень просто.

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


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

Именно она (символьная, а точнее удвоенная) должна быть глобальным клоком для кучи логики.

 

Так я и утверждаю, что это неправильно. Не важно, что система на фпга, а не на дсп, но ВОССТАНОВЛЕННЫМ КЛОКОМ символов ЛОГИКА НЕ ТАКТИРУЕТСЯ.

 

Отсюда и проблемы.

 

Так это и понятно. Не надо так делать.. :-))))))

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


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

Так я и утверждаю, что это неправильно. Не важно, что система на фпга, а не на дсп, но ВОССТАНОВЛЕННЫМ КЛОКОМ символов ЛОГИКА НЕ ТАКТИРУЕТСЯ.

 

Так это и понятно. Не надо так делать.. :-))))))

 

Я так понял простого решения здесь вообще не существует. Не одно - так другое. Хотя что значит "ВОССТАНОВЛЕННЫМ КЛОКОМ символов ЛОГИКА НЕ ТАКТИРУЕТСЯ" я непонял. В какой-то момент я обязан восстановить символьную частоту и ею тактировать выходящие из плисины данные. Значит что-то она тактировать всеровно будет.

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


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

Хотя что значит "ВОССТАНОВЛЕННЫМ КЛОКОМ символов ЛОГИКА НЕ ТАКТИРУЕТСЯ" я непонял. В какой-то момент я обязан восстановить символьную частоту и ею тактировать выходящие из плисины данные. Значит что-то она тактировать всеровно будет.

 

Пример. Есть СИНХРОННЫЙ интерфейс SPI. Вам приходят данные и их клок (потому он и синхронный, что вам клок в явном виде приходит). Этот клок используется ТОЛЬКО для того, чтобы зафиксировать приходящие данные. После этого СРАЗУ ЖЕ эти данные переходят в ДРУГОЙ клоковый домен (периферийный клок процессора), где с ними происходят какие-то БОЛЕЕ сложные вещи, например складывание в ФИФО. После этого они переходят В ЕЩЁ БОЛЕЕ ДРУГОЙ :-)) клок-домен (тактовая частота ядра процессора), где с ними происходят уже совсем сложные вещи.

 

То есть, даже когда клок не приходится восстанавливать (он уже есть), используется он по минимуму (залатчить входные пины с данными).

А в вашем случае клока нет. То, что вы восстановили, следует рассматривать не как клок, а так же, как и все другие сигналы.

Ваша программа (не важно, на проце или ФПГА) по совсем другому клоку анализирует состояние этого "восстановленного клока" и одновременно данных, и делает выводы.

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


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

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

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

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

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

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

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

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

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

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