vacikL 0 31 мая, 2016 Опубликовано 31 мая, 2016 · Жалоба Приветствую. Сигналы с АЦП (в режиме DDR) идут на два банка. Для выравнивания сигналов использовал IDelay. До этого работал с V7 и K7, ставил два DelayCntrl, через окно "Clokc planning" прописывал местоположения DelayCntrl. И все нормуль. Сейчас аналогичная задача, только с UltraScale. Проблемы: 1. В том что окна "Clokc planning" для данного типа микросхем нет. 2. Насколько понял из описания, на один банк DelayCntrl - восемь штук, как их использовать. Может кто-то делал подобное или есть где-то вменяемое описание что делать. Подскажите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 31 мая, 2016 Опубликовано 31 мая, 2016 · Жалоба Приветствую! Приветствую. Сейчас аналогичная задача, только с UltraScale. Проблемы: 1. В том что окна "Clokc planning" для данного типа микросхем нет. 2. Насколько понял из описания, на один банк DelayCntrl - восемь штук, как их использовать. Может кто-то делал подобное или есть где-то вменяемое описание что делать. Подскажите. Вобще-то делать с IDELAYCTRL ничего не нужно - ставите один в проекте а при PR он автоматом размножается и копии ставятся туда где надо. Если в проекте несколько групп где используются idelay и при этом они тактируются разными клоками (вернее требуют IDELAYCTRL которые тактируется разной референсной частотой - так как для UltraScale есть требование общего клока для IDELAY и IDELAYCTRL) может также понадобится назначить через атрибуты (* IODELAY_GROUP = "IDELAYCTRL_GR0") DELAYCTRL i_idelayctrl_gr0 ( ... ); (* IODELAY_GROUP = "IDELAYCTRL_GR0") IDELAY i_idelay_1 ( ... ); в исходниках название соответствующих групп для IDELAY и IDELAYCTRL . Ну или непосредственно в xdc файлах например #банда из IDELAY которые подключенные к соответствующему клоку set_property IODELAY_GROUP GR_ADC_IODELAY [get_cells -filter { PRIMITIVE_TYPE =~ IO.iodelay.IDELAY* } -of [get_nets -segments топ/топ_топ/топает_малышка/phy_clk]] # и добавить главаря ко все этой банде :) set_property IODELAY_GROUP GR_ADC_IODELAY [get_cells -filter { NAME =~ i_idelayctrl_gr0}] Успехов! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vacikL 0 1 июня, 2016 Опубликовано 1 июня, 2016 · Жалоба Спасибо. Буду пробовать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vacikL 0 1 июня, 2016 Опубликовано 1 июня, 2016 (изменено) · Жалоба В настоящий момент проблема решилась. Сделал один DelayCntrl и vivado сама размножила остальные. У меня вопрос по второй части ответа, как set_property IODELAY_GROUP GR_ADC_IODELAY [get_cells -filter { PRIMITIVE_TYPE =~ IO.iodelay.IDELAY* } -of [get_nets -segments топ/топ_топ/топает_малышка/phy_clk]] правильно и просто находить относительные пути элементов. И вообще, где можно почитать про то как работать с xdc Может ткнете в документацию, а то сам пока не нашел. И еще не понял фразы так как для UltraScale есть требование общего клока для IDELAY и IDELAYCTRL Какой клок для IDELAY? Спасибо. Изменено 1 июня, 2016 пользователем Vacik Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться