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

DelayCntrl UltraScale

Приветствую.

 

 

Сигналы с АЦП (в режиме DDR) идут на два банка. Для выравнивания сигналов использовал IDelay.

До этого работал с V7 и K7, ставил два DelayCntrl, через окно "Clokc planning" прописывал местоположения DelayCntrl. И все нормуль.

 

 

Сейчас аналогичная задача, только с UltraScale.

Проблемы:

1. В том что окна "Clokc planning" для данного типа микросхем нет.

2. Насколько понял из описания, на один банк DelayCntrl - восемь штук, как их использовать.

 

Может кто-то делал подобное или есть где-то вменяемое описание что делать.

Подскажите.

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


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

Приветствую!

 

Приветствую.

 

Сейчас аналогичная задача, только с 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.

 

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


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

В настоящий момент проблема решилась.

Сделал один 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?

 

Спасибо.

Изменено пользователем Vacik

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


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

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

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

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

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

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

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

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

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

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