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

Помогите правильно задать constraint

create_generated_clock -name i_clk_12_5MHz \
    -source [get_ports clk] \
    -divide_by 4 \
    [get_pins clk_12_5_reg/q]

1-й

Подозревая типичную ошибку синхронно дизайна, таки спрошу - а зачем делить именно клоки понадобилось?

 

Если коротко, то делить так клоки принципиально нельзя. Ни в ASIC, ни в FPGA. Эта система сильно подвержена нарушению холдов при переходе из одного клокового домена в другой.

Можно. в FPGA немного труднее тулзе. Ничё подобного.

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


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

Даже не знаю, возможно за последнее время Квартус вместе с ИСЕ серьезно добавили в интеллекте, или проект в котором возможна такая манипуляция клоками крайне далек от предела возможностей выбранного кристала. На сколько помню, при заполнении кристалла под 90% и на максимум по частоте одновременно у меня провернуть такой финт уже не получилось - проект просто перестал компилироваться на заданную частоту и сильно "распух" в размере. Теперь я уже понимаю, что тулза начинала фиксить холды в корнерах, но много лет назад ответа на тот вопрос я так и не нашел - пришлось переделать пару блоков и вставить синхронизаторы.

 

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


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

Даже не знаю, возможно за последнее время Квартус вместе с ИСЕ серьезно добавили в интеллекте, или проект в котором возможна такая манипуляция клоками крайне далек от предела возможностей выбранного кристала. .... - пришлось переделать пару блоков и вставить синхронизаторы.

Неоптимально и неправильно - это разные вещи.

Да - можно делать делёные клоки, но архитектура FPGA это плохо поддерживает (ибо клоковое дерево намертво и изначально встроено без учёта таких фокусов). В ASIC - никаких проблем (никакие "холды", подобно тем что Вы нашли там не возникают).

Да - FPGA тузы нормально понимают такое описание и делают правильно STA и всё остальное, но как Вы заметили уже выжать максимум в этом случае не выходит (тулза тратит дополнительные ресурсы на то чтобы выполнить заданное требование STA в своей архитектуре, которая на делёные клоки не заточена )

 

И главное. Ума не приложу нафига в дизайне на FPGA делить клоки?

 

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


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

Самой логичной причиной деления клоков может быть часть дизайна, которая не успевает работать на основном клоке :) Я так думаю. Ну и перевод сколь-нибудь значительной части дизайна на более низкий клок очень положительно сказывается на потреблении. Теперь-то я уже знаю, что клоковое дерево может потреблять до 15-20% мощности и эту цифру практически нельзя уменьшить.

 

З.Ы. Ну и в моем случае - неоптимально, это и есть неправильно. Потому как это значит, что дизайн мог бы потреблять меньше, или работать быстрее. Потому для меня и организаций, с которыми я сотрудничал, неоптимально и неправильно - синонимы. Хотя, строго говоря, неоптимально и неправильно действительно разные вещи.

 

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


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

Самой логичной причиной деления клоков может быть часть дизайна, которая не успевает работать на основном клоке :) Я так думаю.

Для этого в тригерах FPGA придумано FF.CE

Ну или это CE неявно выходит из описания функции переключения тригера....

Исходя из этого только ~20% тригеров меняют состояния на текущем клоковом эдже. Т.е. 80% дизайна работает реально медленнее системного клока....

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


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

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

 

у меня одного не отображается картинка-аттачмент, которая была в цитируемом сообщении?

 

Схема формирования кратных сигналов тактовой частоты делается с помощью ячеек clock gating, управляемых от счетчика, работающего на основной частоте. Все построено так, что clock gating с нужной скважностью пропускает на выход 1 период основной тактовой. Т.о. если для основной частоты clk скважность 50%, то для clk_div_2 скважность будет 25%, а для clk_div_4 скважность будет 12.5%.

 

Если часть изначальной схемы для FPGA, тактируемой производной частотой, работает по отрицательному фронту, то используется аналогичная метода: для этой части схемы все списки чувствительности меняются на posedge, и c помощью счетчика на основной частоте, управляющего ячейками clock gating, формируется свой тактовый сигнал, сдвинутый по фазе.

 

Ограничивается это хозяйство с помощью create_generated_clock, как вы верно отметили.

 

Та схема, которая приведена в вашем в исходном сообщении, - боль для sta

 

Вообще обычно clock and reset manager для разных целевых технологий переделывается полностью.

 

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


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

Там не было картинки, насколько я помню

 

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

 

у меня одного не отображается картинка-аттачмент, которая была в цитируемом сообщении?

 

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


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

видимо сам себе в голове нарисовал...

 

отправил ссылку на тему коллегам, а она без воображаемой картинки :maniac:

Там не было картинки, насколько я помню

 

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


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

1. в asic где количество триггеров от 40% . Клоковое дерево может потреблять и 40-50% динамического потребления. Особенно 65нм и ниже.

2. Не надо делать деленные клоки для снижения потребления - лучше делайте везде по максимум gated clock

3. Если клок надо снизить по частоте - делите триггером. В asiс все нормально ляжет. Клоковое дерево можно построит и through (через) триггер (или несколько триггеров)

4. Клоки лучше по максимум define все - то есть первый master - порожденные gated

 

Тогда все триггера сидящие на всех клоках будут

а. считаться синхронными (то есть в одном clock domain)

b. будут обсчитываться в STA

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


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

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

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

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

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

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

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

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

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

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