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

Потребление клокового дерева

Кто-нибудь знает, насколько будут отличаться по потреблению два случая:

а) Большой кусок логики или БлокРАМ отключен от клока

б) Тот же кусок логики или БлокРАМ тактируется по полной, но все сигналы в нём статичны (то есть он в ресете)

 

Вивадскому ПоварЭстиматору доверия нет, а в железе экспериментировать некогда пока.

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


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

у меня не ответ, скорее коментарий, на основе АЗИКов (но цифр не помню, тактовые деревья в бэкенде появляются, нету репорта под рукой) - если большой кусок логики, то значит большой кусок тактового дерева, а жрет оно неплохо.

в библиотечных ячейках (lib описании), например, памяти есть потребление на переключение тактового сигнала, даже когда СS не активен. 

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


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

10 hours ago, Dr.Alex said:

а) Большой кусок логики или БлокРАМ отключен от клока

б) Тот же кусок логики или БлокРАМ тактируется по полной, но все сигналы в нём статичны (то есть он в ресете)

Само дерево клока потребляет очень много, в разы больше чем эквивалентное число элементов и проводов в обычной логике. Поэтому - вариант а) намного предпочтительнее. А если бы речь шла об эсике, то можно еще и питание снять с памяти - так будет еще лучше.

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


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

12 часов назад, Dr.Alex сказал:

БлокРАМ тактируется по полной, но все сигналы в нём статичны (то есть он в ресете)

Не то есть. У блочной памяти сброса нет.

И какое отношение вопрос имеет  к разделу форума "Языки проектирования"?

 

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


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

так как работаете с ПЛИС, то там клок-гейтинг вообще бесплатно - зачем от него отказываться?

но для большого циклона 5 (А9 или как там, самый большой в линейке) с двумя опциями квартуса о клокгейтинге не было заметного изменения потребления (четыре варианта).

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

 

 

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


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

5 hours ago, andrew_b said:

Не то есть. У блочной памяти сброса нет.

И какое отношение вопрос имеет  к разделу форума "Языки проектирования"?

У неё есть энейбл.

А с разделом я промахнулся случайно.

 

 

10 minutes ago, yes said:

так как работаете с ПЛИС, то там клок-гейтинг вообще бесплатно - зачем от него отказываться?

Его неудобно кодить, в этом смысле он не такой уж бесплатный.

Но всё равно придётся проверять, когда руки дойдут. Просто хотел к этому времени уже иметь какое-то мнение, чего ждать.

 

 

10 minutes ago, yes said:

и возникло подозрение

Вот я и думаю что буфера придётся исключительно руками в код вставлять.

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


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

Just now, Dr.Alex said:

Его неудобно кодить, в этом смысле он не такой уж бесплатный.

опция синтеза - как у "больших"

вроде как отловить общий сигнал на CE для группы триггеров и заменить его клок-гейтером на дереве CLK для этой группы, не сложно для синтез-тула... но что там в железе?

для ПЛИС возникает вопрос к квантованию :) этой группы - то есть для дробления на маленькие группы в дерево должны быть заложено много гейтеров, с точки зрения кремния, наверно, без разницы, но с точки зрения конфигурации, то есть соединения GATE гейтеров с фабрик - хз. может и нет такого - я не видел явно в описании, только у stratix 10 что-то такое есть, но опять же правда это или нет - хз.

честные гейтеры в ПЛИС (соответствующий библиотечный элемент), как я понимаю, отрезают большую часть дерева (квадрант (?)) - то есть их немного и ценный ресурс

  

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


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

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

25 minutes ago, yes said:

вроде как отловить общий сигнал на CE для группы триггеров и заменить его клок-гейтером на дереве CLK для этой группы,

Обычно clock-gate для плис  работает в другую сторону -  гейт на клоке заменяется на  CE в триггерах.  

25 minutes ago, yes said:

... но что там в железе?

Что получается  в железе можно увидеть в нетлисте после синтеза/P&R. 


По поводу дерева клока в FPGA в последних оно похоже на ASIC по структуре - строится динамически из малых веток и даже с выравнивание skew по возможности (во всяком случае у Xilinx). 
Но для оптимизации по клоку есть нюанс - если вы не контролируете расположение логики на кристалле то  выигрыша от обрезки неиспользуемого части дерева клока может быть мало если логика будет "размазана" по всему кристаллу. Все же  размер "веток" не столь мал.  Для оптимизации надо собирать логику относящуюся к клоку в компактную группу. 

 

Удачи! Rob.

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


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

17 minutes ago, yes said:

вроде как отловить общий сигнал на CE для группы триггеров и заменить его клок-гейтером на дереве CLK для этой группы, не сложно для синтез-тула...

Как-то фантастично, хотя это только моё мнение "навскидку".

Я бы ожидал скорее обратного - вот реально есть опция синтеза, которая избавляется от гейтеров в пользу енейблов :-)))

https://forums.xilinx.com/t5/Design-and-Debug-Techniques-Blog/Gated-Clock-Conversion-in-Vivado-Synthesis/ba-p/982650

Типа, это нужно для прототипирования асиков - код менять нельзя принципиально, а гейтеры (которые наверняка есть в асике), в фпга для простоты нужно выкинуть.

 

 

  

25 minutes ago, yes said:

честные гейтеры в ПЛИС (соответствующий библиотечный элемент), как я понимаю, отрезают большую часть дерева (квадрант (?)) - то есть их немного и ценный ресурс

Само собой, но всё же в артиксе-200 BUFHCE 120 шт - хватит, отрезать-то хочется бОльшую часть прожекта, а мелкие кусочки резать какой смысл....

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


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

1 hour ago, RobFPGA said:

По поводу дерева клока в FPGA в последних оно похоже на ASIC по структуре - строится динамически из малых веток и даже с выравнивание skew по возможности (во всяком случае у Xilinx). 

Вот вообще нет от слова совсем. В ПЛИСах все клоковые деревья построены по типу H-дерева. Да у них есть возможность обрезать ненужные ветки, но на этом сходство заканчивается. И skew в ПЛИСах одинаковая всегда и везде, потому что одинаковое количество точек разветвления к каждому FF. Для памятей/DSP может как-то хитрее, но думаю тоже самое будет.

В АЗИКах же синтез clock-tree это скил на уровне синтеза или place&root. Тут может быть и полезная skew и выборка значений фанаута и инверсные промежутки дерева (когда по falling_edge). Та даже понятие hold violation, которое для FPGA  вообще неизвестно, встречается сплошь и рядом... А это эще тот гемор.

Относительно отключения частоты на элементы, для ПЛИС не так просто. Если мне не изменяет память, то в FPGA стоит ровно один клок буфер (который, кажется, CBUF у Xilinx) на банк. Он даёт лучшую времянку в пределах ПЛИС. Соответственно если получится запихнуть нужную логику в отдельный банк - тогда проблем не будет. Есть ещё возможность пропустить клок через HBUF (тоже для Xilinx), их больше - порядка 12 на банку, но и времянка страдает у них значительнее.

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


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

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

1 hour ago, Nick_K said:

Вот вообще нет от слова совсем. В ПЛИСах все клоковые деревья построены по типу H-дерева. Да у них есть возможность обрезать ненужные ветки, но на этом сходство заканчивается. И skew в ПЛИСах одинаковая всегда и везде, потому что одинаковое количество точек разветвления к каждому FF. Для памятей/DSP может как-то хитрее, но думаю тоже самое будет.

Xilinx  с этим утверждением несколько не согласен page 6.

Ну  или UltraScale Architecture Clocking Resources User Guide UG572  Chapter 2: Clocking Resources:

Quote

The purpose of the clock routing resources is to route a clock from the global clock buffers to a central point from where it is connected to the loads via the distribution resources. This central point of the clock network is called a clock root in the UltraScale architecture. The root can be in any CR in a device from where it is routed to the loads via the clock distribution resources. This architecture optimized clock skew. Routing and distribution resources can either connect to adjacent CRs or disconnect (isolated) at the border of the CR as needed. This concept extends to SSI devices as well. 

Можете в этом убедится  посмотрев роутинг клока  тяжелого по клокам проекта.

 

Удачи Rob.

P.S.  Популярно с картинками

 

 

 

 

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


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

1 hour ago, Nick_K said:

 

Стесняюс спросить, вы давно доки на современные фпга смотрели? :-)

Буферов именно для гейтинга много.

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


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

3 hours ago, RobFPGA said:

Xilinx  с этим утверждением несколько не согласен page 6.

Ну  или UltraScale Architecture Clocking Resources User Guide UG572  Chapter 2: Clocking Resources:

 

Если взять Артикс и поделить некий клок частотой выше 400МГц триггером или пропустить через BUFGCE - запаришся потом объяснять вивадо  констрейнами упоминая falsepath multucicle  и перенося все данные на новый (хоть и синхронный) клок через регистры...

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


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

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

8 minutes ago, _4afc_ said:

Если взять Артикс и поделить некий клок частотой выше 400МГц триггером или пропустить через BUFGCE - запаришся потом объяснять вивадо  констрейнами упоминая falsepath multucicle  и перенося все данные на новый (хоть и синхронный) клок через регистры...

Эээ ... как бы не вижу связи одного с другим :scratch_one-s_head: При чем тут  структура клоков  и "неаккуратность" разработчика?  

 

Удачи! Rob.

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


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

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

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

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

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

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

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

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

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

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