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

Можно ли констрейнтом сдвинуть два сигнала?

Допустим имеется:
1) тактовый вход clk_ext на который поступает 100МГц
2) регистр test_sequence, который проинициализирован некоторым значением
3) и два выхода hs1 и hs2, которые выдают значение из test_sequence[0]

Допустим также, что на каждый щелчок clk_ext регистр test_sequence сдвигается на один бит налево с переносом старшего бита в младший (циклический сдвиг).

Как задать в *.sdc констрейны, чтобы сигнал с выхода hs1 был смещен на заданное небольшое значение относительно сигнала hs2?

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


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

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

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

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


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

12 minutes ago, Lmx2315 said:

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

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

И тем не менее, это возможно?

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


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

5 минут назад, flammmable сказал:

И тем не менее, это возможно?

В каких-то пределах это возможно.

Нужно будет описать параметры тактовых частоты в констрейнах , если их будет недостаточно то добавить что-то вроде set_max_delay , между клоками. 

з.ы.

Надуюсь более опытные товарищи поучаствуют и поправят меня.

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


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

1 hour ago, Lmx2315 said:

В каких-то пределах это возможно.

Нужно будет описать параметры тактовых частоты в констрейнах , если их будет недостаточно то добавить что-то вроде set_max_delay , между клоками. 

з.ы.

Надуюсь более опытные товарищи поучаствуют и поправят меня.

Вот он, эталонный ответ по существу! )))))

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


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

А можно уточнить, сколько в "попугаях" это Ваше:

2 hours ago, flammmable said:

заданное небольшое значение

Если частота, допустим, 100МГц (полный цикл 10 ns), то можно двигать в диапазоне 0-5 ns. Если нужно больше - тогда уже берите отношение по негэджу.

Если же частоты в единицах киллогерц - тогда так не получится скорее всего. Так как линии задержки имеют ограничения по количеству буфферов, создающих дилей.

Ну и та же тема с единицами пикосекунд - обычно у буфферов задержка порядка десятков пикофекунд + линии связи.

З.Ы. Если в указанных диапазонах устраивает, тогда не нужно никаких дополнительных клоков и т.п. Достаточно задать set_net_delay (set_max_delay/set_min_delay) для внутренних и set_input_delay/set_output_delay для внешних сигналов.

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


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

5 minutes ago, Nick_K said:

А можно уточнить, сколько в "попугаях" это Ваше:

Если частота, допустим, 100МГц (полный цикл 10 ns), то можно двигать в диапазоне 0-5 ns. Если нужно больше - тогда уже берите отношение по негэджу.

Если же частоты в единицах киллогерц - тогда так не получится скорее всего. Так как линии задержки имеют ограничения по количеству буфферов, создающих дилей.

Ну и та же тема с единицами пикосекунд - обычно у буфферов задержка порядка десятков пикофекунд + линии связи.

З.Ы. Если в указанных диапазонах устраивает, тогда не нужно никаких дополнительных клоков и т.п. Достаточно задать set_net_delay для внутренних и set_input_delay/set_output_delay для внешних сигналов.

Хотелось бы подвигать фронты на 0,5-1,0нс. Не разберусь, как это синтаксически записать в *.sdc .

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


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

2 minutes ago, flammmable said:

Хотелось бы подвигать фронты на 0,5-1,0нс. Не разберусь, как это синтаксически записать в *.sdc .

set_max_delay delay_value [-from from_list] [-to to_list] // физическая суть - поменять сетап приёмника

set_min_delay delay_value [-from from_list] [-to to_list] // физическая суть - поменять холд приёмника

Увы задержки Вашего сигнала hs1, придётся вытащить руками после имплементации и настроить вручную hs2.

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


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

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

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

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

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

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

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

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

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

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