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

 
 
 
Reply to this topicStart new topic
> [полу]авто-ClockGating в ASIC, последние тенденции
Doka
сообщение Apr 19 2018, 08:45
Сообщение #1


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 162
Регистрация: 4-10-04
Пользователь №: 778



1. раньше ClockGating вставляли ручками, получалось коряво, но худо-бедно работало, напр:

Код
`ifdef FPGA
  BUFGCE (.I(clk_in), .O(clk_out), .CE(enable));
   // or use:
   // assign clk_out = clk_in;
`else
   CLNGTX1 (.ci(clk_in), .co(clk_out), .e(enable), .te(test_en));
`endif


- таким образом вставляются обычно технологозависимые штуки, некий workaround для того, чтобы синтезировать под разные технологии (ПЛИС/СБИС) но неудобно - смешивается технологозависимая и технологонезависимая части РТЛ, не очень с точки зрения методологии.

2. потом появилась автоматическая вставка ClockGating, когда тул синтеза сам анализирует конструкции наподобие таких:

Код
reg [31:0] a;
always @(posedge clk)
if (rst)
  a <= 0;
else if (enable)
  a <= b;


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

3. Мой случай:
есть память, реализованная на россыпи триггеров (достаточно маленькая, чтобы делать ее как HardMacro)
алгоритм работы таков: в память производится запись (один раз за всё время работы), после чего эта память используется на чтение 5тактов в алгоритме, цикл которого 100 тактов, есть желание всё остальное время эти триггеры выключать, однако автоматически это сделать проблематично: из-за того что синтезатор не понимает как быть с сигналом записи памяти - он приходит в абсолютно произвольный момент (по его анализу), т.е. авто-ClockGating по понятной причине не срабатывает, а вручную (как в пп.1) ставить ячейки клог-гейта не хочется, поэтому вопрос:


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

PS: Если говорить про конкретный синтез, то интересует как это делается средствами RC/Женуса


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
Shivers
сообщение Apr 20 2018, 12:28
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Различают архитектурный клок-гейтинг (тот что ручками вставляется дизайнером ртл), и как элемент техники лоу пауер. Новых тенденций тут нет уже лет 15 как, используют и тот и другой подход, смотря что хочется получить на выходе.
Пример кода с триггером - это обычный флоп с разрешением записи, а вот реализация его может разниться: можно флоп с разрешением поставить, а можно флоп без разрешения, но с клок-гейтом - так схема будет меньше потреблять, но увеличится дерево клока.
Если хочется клок-гейты где то генерить, а где то нет, то используют иерархический синтез с разными настройками синтезатора в разных иерархиях.

Советую почитать учебники по лоу пауер, там много полезного есть и для просто разработчиков rtl (не вникая в физ дизайн).
Go to the top of the page
 
+Quote Post
Losik
сообщение Apr 20 2018, 12:48
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 453
Регистрация: 22-04-07
Пользователь №: 27 235



Раньше в RC делалось так. В мануалах можно уточнить.






Go to the top of the page
 
+Quote Post
Doka
сообщение May 3 2018, 09:48
Сообщение #4


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 162
Регистрация: 4-10-04
Пользователь №: 778



Цитата(Shivers @ Apr 20 2018, 15:28) *
Если хочется клок-гейты где то генерить, а где то нет, то используют иерархический синтез с разными настройками синтезатора в разных иерархиях.

да, есть такое в Генусе, спасибо.

Цитата(Shivers @ Apr 20 2018, 15:28) *
Советую почитать учебники по лоу пауер, там много полезного есть и для просто разработчиков rtl (не вникая в физ дизайн).

а есть что-то помимо LPMM от Синопсис?

Цитата(Losik @ Apr 20 2018, 15:48) *
Раньше в RC делалось так. В мануалах можно уточнить.


Спасибо!
Заметил, что в нетлист попадают технолого-зависимые примитивы ICG уже на этапе генерик-синтеза, что как-то странно - они там единственные из технологозависимых примитивов


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
Losik
сообщение May 3 2018, 11:09
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 453
Регистрация: 22-04-07
Пользователь №: 27 235




offtop: Решили перейти из синопсис флоу на кэденс или для себя балуетесь?
Go to the top of the page
 
+Quote Post
Doka
сообщение May 3 2018, 12:22
Сообщение #6


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 162
Регистрация: 4-10-04
Пользователь №: 778



/* offtop: на новом месте кейденс всем больше по душе */


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd September 2018 - 23:48
Рейтинг@Mail.ru


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