реклама на сайте
подробности

 
 
> Помогите правильно задать constraint, ...для generated клока
Nix_86
сообщение May 23 2015, 10:12
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 85
Регистрация: 7-04-11
Пользователь №: 64 200



Приветствую!
Вопрос знатокам. Помогите правильно задать SDC констрейн. В проекте есть 3 клоковых домена - 50 МГц, 25 МГц и 12.5 МГц. Частоты 25 МГц и 12.5 МГц получены путём деления исходной частоты 50 МГц со входа clk с помощью триггеров (см. картинку). С констрейном для частоты 25 МГц проблем нет, обычный generated клок. А для задания клока 12.5 МГц вижу 2 варианта:

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


либо

Код
create_generated_clock -name i_clk_12_5MHz \
    -source [get_pins clk_25_reg/q] \
    -divide_by 2 \
    [get_pins clk_12_5_reg/q]


Какой вариант правильнее?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
v_mirgorodsky
сообщение Jul 19 2015, 08:48
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



Сделал ма-а-а-ленький эксперимент в качестве тренировки. Взял свой кастомный DFF на UMC 28HLP, извлек из него паразиты почти без редукции, также обработал несколько "боевых" топологий своих инверторов. Прикинул клоковое дерево, в каждый клоковый домен поставил по одному DFF и соединил их в виде сдвигового регистра. Соединил все в спайсе. Тут уж извините, делать полный эксперимент в лейауте было лениво, да и результаты бы это не изменило. Как критерий успешности выбранной топологии использовалась локальная MC-симуляция со свипом в 1000 ранов.

Если на 0.6V у моих триггеров в TT Tco составляет в районе 150ps, то при 0.8V Tco уменьшается до 60ps, а при 1.0V - до 30ps. Итого - разница в TT всего по одному параметру в моем диапазоне рабочих напряжений составила 120ps, а это надо как-то компенсировать.

Как результат, систему можно сравнительно просто настроить на конкретное рабочее напряжение и локальные вариации в пределах одного корнера. Линия SS-TT-FF тербует почти 50% увеличения количества инверторов в "клоковом дереве" и пары последовательных буферов с выхода одного триггера до входа другого для фикса холдов. Расширение зоны работоспособности до SF и FS потребовало очень много усилий и до конца я его не довел. В глобальных корнерах работало, в тотальных - нет, в монте-карло ошибались 3 эксперимента в SF и 7 экспериментов в FS из 1000. Потом уменьшил рабочее напряжение с 0.8 вольт до 0.6 вольт и повторил эксперимент без изменения топологии. Как результат получил больше 1000 фейлов из 5000 ранов.

Выводы.

1. Если делить клоки простыми триггерами, то нужно позаботиться о разнице фаз между активными фронтами клоков больше, чем Tco самого медленного триггера в системе во всем PVT диапазоне. Как самый простой вариант - поиграться с инверсиями клоков триггеров делителей. Если активные эджи клоков фиксированы на границахи все переходы известны, то решение найти, думаю, можно.
2. Если выполнить (1) не получается, то домены следует считать асинхронными и делать переходы между ними на синхронизаторах.
3. Если выполнять (1) и (2) не хочется, то лучше всего использовать триггера с клок-енейблами и отказаться от деления клоков в принципе.
4. Если все (1-3) выполнить не получилось, то следует быть готовым к абсолютно безобразному количеству инверторов в проекте и неэффективному использованию площади кремния.

Безусловно, я не IC Compiler sm.gif У него эта задача возможно получилась бы несколько лучше - все же он больше параметров учитывает и задачи оптимимизации топологии решает не перебором wink.gif Однако даже IC Compiler не в силах обойти физику процессов в кремнии.


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Nix_86   Помогите правильно задать constraint   May 23 2015, 10:12
- - Dr.Alex   Не знаю как там у вас в асиках, а в плисине нужно ...   May 23 2015, 21:42
|- - Nix_86   Цитата(Dr.Alex @ May 24 2015, 00:42) в пл...   May 24 2015, 02:16
- - krux   а там дальше в проекте переходы между этими 50 - 2...   May 24 2015, 12:39
|- - Nix_86   Цитата(krux @ May 24 2015, 15:39) а там д...   May 24 2015, 16:04
- - sleep   Я бы задал так: Код# main source clock # define cl...   May 25 2015, 18:38
- - v_mirgorodsky   Давно не заходил, а потому отвечу немного позже. ...   Jul 18 2015, 06:55
- - Shivers   Откуда переходы между доменами? С такими констрейн...   Jul 18 2015, 11:41
|- - Fat Robot   Схема формирования кратных сигналов тактовой часто...   Jul 18 2015, 19:28
|- - Doka   приветствую. у меня одного не отображается картин...   Sep 30 2015, 15:12
|- - Fat Robot   Там не было картинки, насколько я помню Цитата(Do...   Sep 30 2015, 16:32
|- - Doka   видимо сам себе в голове нарисовал... отправил сс...   Oct 1 2015, 08:08
- - Shivers   Вариант из первого поста автоматически увеличивает...   Jul 19 2015, 20:14
|- - Fat Robot   Проблемы, как мне кажется, могут возникуть на каки...   Jul 20 2015, 08:24
|- - Shivers   Цитата(Fat Robot @ Jul 20 2015, 11:24) У ...   Jul 20 2015, 12:01
|- - Fat Robot   Я ж описал, как делается тактирование по обоим фро...   Jul 20 2015, 12:41
|- - Shivers   Цитата(Fat Robot @ Jul 20 2015, 15:41) Я ...   Jul 21 2015, 14:37
- - Torpeda   Цитата(Nix_86 @ May 23 2015, 13:12) Кодcr...   Jul 27 2015, 13:04
- - v_mirgorodsky   Даже не знаю, возможно за последнее время Квартус ...   Jul 28 2015, 01:40
|- - Torpeda   Цитата(v_mirgorodsky @ Jul 28 2015, 04:40...   Jul 28 2015, 06:18
- - v_mirgorodsky   Самой логичной причиной деления клоков может быть ...   Jul 28 2015, 07:54
|- - Torpeda   Цитата(v_mirgorodsky @ Jul 28 2015, 10:54...   Jul 28 2015, 08:11
- - Михаил А   1. в asic где количество триггеров от 40% . Клоков...   Oct 9 2015, 11:38


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 10:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01406 секунд с 7
ELECTRONIX ©2004-2016