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

STA clock gating

Добрый день. Помогите разобраться c STA.

Имеется модуль на verilog, прикрепляю структурную схему.

В модуль "руками" вставлена библиотечная ячейка clock gate. Логический синтез провожу в DC.

Задаю следующие SDC:

set period 0.8
create_clock -name pll_clk -period $period [get_ports pll_clk]
create_generated_clock -name clk_div10  -source [get_ports pll_clk] -edges {10 20 30} [get_ports div10/clk_out]

 

В report_timing наблюдаю:

  Startpoint: register_en_clk_reg[3]
              (rising edge-triggered flip-flop clocked by pll_clk)
  Endpoint: counter_clk10_reg[0]
            (rising edge-triggered flip-flop clocked by clk_div10')
  Path Group: clk_div10
  Path Type: max

  Point                                                   Incr       Path
  --------------------------------------------------------------------------
  clock pll_clk (rise edge)                               7.20       7.20
  clock network delay (ideal)                             0.00       7.20
  register_en_clk_reg[3]/C (FDCEX1)                       0.00       7.20 r
  register_en_clk_reg[3]/QB (FDCEX1)                      0.64       7.84 f
  U23/O (INVGX2)                                          0.07       7.91 r
  U27/O (XOR2X2)                                          0.23       8.14 f
  counter_clk10_reg[0]/D (FDCX1)                          0.00       8.14 f
  data arrival time                                                  8.14

  clock clk_div10' (rise edge)                            7.60       7.60
  clock network delay (ideal)                             0.00       7.60
  counter_clk10_reg[0]/C (FDCX1)                          0.00       7.60 r
  library setup time                                     -0.27       7.33
  data required time                                                 7.33
  --------------------------------------------------------------------------
  data required time                                                 7.33
  data arrival time                                                 -8.14
  --------------------------------------------------------------------------
  slack (VIOLATED)                                                  -0.81

 

Мой вопрос заключается в следующем: почему я не вижу в report_timing задержку на clock gate ячейке?

Ведь clk_div10 = clk_gate(clk_div10_int)

Это связано с тем что нет clock tree и не установлен set_propagated_clock?

В случае установки set_propagated_clock [all_clocks] появляется задержка clock network delay (propagated)  = 0.86, но чем конкретно она сформирована не указывается.

Безымянный2.png

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


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

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

Если поставили set_propagated_clock=true , то в некотррых тулах надо репорт со спец. ключами делать, чтобы дерево увидеть. Под рукой не мануала, но выглядит это както навроде report_timing -path_type full_clock. Т.е. по умолчанию клоковое дерево скрыто. Используете этот ключ и увидите путь через клок-гейт

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


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

До этапа CTS используют set_clock_gate_latency команду для эмуляции задержки на clock_gating ячейки.

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


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

Для уточнения: ячейка называется clock_enable, clock_gating технология автоматической вставки латчей в clock порт регистра.

Если же у вас именно clock_gating, то зачем его вставлять руками?

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


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

On 4/24/2020 at 5:27 AM, lexx said:

Для уточнения: ячейка называется clock_enable, clock_gating технология автоматической вставки латчей в clock порт регистра.

Если же у вас именно clock_gating, то зачем его вставлять руками?

Отключение блоков с последующим сбросом в зависимости от режима работы. Схема небольшая, но частота высокая, поэтому все в ручном режиме.

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


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

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

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

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

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

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

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

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

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

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