作者 主题:如何为set_clock_gate_latency计算fanout_latency? (Read 265 times)

0位成员和1位访客正在查看此主题。

离线 承诺

  • 经常贡献者
  • **
  • 帖子:423
  • 国家: 我们
How to calculate fanout_latency forset_clock_gate_latency ?
« on: 2020年11月18日,上午06:36:02»
任何人都可以建议如何计算 -fanout_latency使用 the following examples ?


例子A




例子B




范例C


 

离线 承诺

  • 经常贡献者
  • **
  • 帖子:423
  • 国家: 我们
Re: How to calculate fanout_latency forset_clock_gate_latency ?
« 在以下方面回复#1: 2020年11月18日,上午10:28:36»
问题解决了。请参阅以下内容:

dc_shell> manset_clock_gate_latency


2.  Synopsys Commands                                        Command Reference
                           set_clock_gate_latency

姓名
       set_clock_gate_latency
             指定用于时钟门控的时钟网络等待时间值
             根据时钟域,时钟门控级和
              fanout.

句法
       statusset_clock_gate_latency
               [-clock clock_list]
               [-overwrite]
               -stage cg_stage
               -fanout_latency cg_fanout_list
               [-transitive_fanout]

   Data Types
       clock_list         list
       cg_stage           integer
       cg_fanout_list     string

争论
       -clock clock_list
              Specifies  that 延迟必须针对
              specified clocks. 如果-clock选项是  not  specified,  the
              latency  is  applied 关于所有时钟域
             时钟门控单元属于。

       -overwrite
             指定先前在clock-gat-上设置的时钟延迟值
             单元格应该被覆盖。

       -stage cg_stage
             指定时钟延迟数据到达的时钟门控阶段
             从扇出范围应用。  Registers are  considered  as
              stage 0.

       -fanout_latency cg_fanout_list
              Specifies  the  list  of  clock-gating  cells  fanout  and clock
             延迟值; {1-5 0.9,6-20 0.5,21-inf 0.3}。  A
              fanout 1至5的延迟为0.9;扇出21或更大
             延迟为0.3。 如果相同的延迟值是  wanted  for
             整个扇出范围,可以将其指定为{1-inf 0.9}。

       -transitive_fanout
              Specifies  that  transitive  fanout  should  be  used instead of
             注释时钟门延迟时直接扇出。直接的  fanout
              is the default.

描述
       The set_clock_gate_latency命令允许您指定时钟网络
       时钟门控单元的等待时间值,取决于  clock  domain,
       clock-gating  stage, and fanout. 这些延迟值标注在
       时钟门控单元的时钟引脚  when  running  the  compile_ultra
       命令,或者在运行apply_clock_gate_latency命令时。

       The     clock-gate     latency    settings    specified    using    the
       set_clock_gate_latency命令作为属性存储在源中
       port  of 每个指定的时钟。 定义所有命令后调用此命令
       设计的时钟。 这些存储的延迟值会在
       clock 时钟门控单元的引脚通过以下程序之一
       cesses:

       o使用apply_clock_gate_latency命令,该命令将延迟应用于
         任何现有的时钟门控单元

        o 在compile_ultra命令期间,该命令对所有现有延迟应用延迟
         时钟门控单元或在编译期间插入或修改的单元

       注意:时钟门控网络的阶段已编号  from  0  for
       the  register 级数,并向时钟源增加。为了
        在四级时钟门控树中,  Stage  0  drives  register
       clocks  directly,  and 第三阶段是时钟门控单元,其输入
       直接连接到时钟源。

       使用set_clock_gate_latency命令指定门控的延迟
       通过指定阶段0的命令进行注册。 根据定义阶段0
       没有扇出,因此请使用以下语法:

         prompt>set_clock_gate_latency -stage 0 -fanout_latency \
                 { 1-inf value }

       如果为阶段0提供了时钟延迟设置,  the  values  are
       annotated  on  the 每个时钟门控的输出引脚(使能的时钟引脚)
       直接驱动门控寄存器的单元。  If no clock latency  is
       set  for 阶段0,但已在时钟对象上设置了时钟延迟
       通过使用set_clock_latency命令,则使用此值  for  clock
       latency. 对于非门控寄存器,延迟由计时器传播
       从时钟对象延迟。

       您可以将-clock和-overwrite选项与-stage 0选项一起使用。

       使用-transitive_fanout选项可根据以下内容计算延迟值
       时钟门的传递扇出  cell  instead  of  the  direct
       fanout. 时钟门控单元的传递扇出定义为
       所有驱动的叶寄存器的总数。寄存器  driven  by  a
       第1阶段时钟门控单元ICG_1被视为可传递单元的一部分
       第2阶段时钟门控单元ICG_2的扇出  ICG_1.  By
       definition:

       第二阶段传递扇出>=第1阶段的传递扇出

       注意:传递扇出仅计算寄存器,与直接扇出不同
       它同时计数寄存器和驱动时钟门控单元。

       首次使用-transitive_fanout选项时,将扇出
       mode 设置,并且由PWR-916信息消息指示。
       您不能混合扇出  modes  of  the set_clock_gate_latency  command,
       where  some  instances 使用-transitive_fanout选项,其他使用
       not.  If  you  want  to  switch   between   fanout   modes,   use   the
       reset_clock_gate_latency命令。

       如果您在cg_fanout_list中指定了扇出范围,则不涉及
       从1到inf的所有值,扇出范围的延迟信息丢失
       mation 该工具会以最小的延迟值填充
       adjacent ranges.

       在时钟树中,最靠近顶部的单元的等待时间值最低
       of  the  tree (时钟源)。传递扇出值最高
       源处的单元数减少,并朝寄存器减少。因此,规格-
       ified 时钟延迟值必须相对于扇出范围减小
       否则,将生成PWR-742警告消息。

       如果未为特定时间指定时钟延迟设置  clock-gating
       stage 并且在此阶段存在一个时钟门控单元,则延迟为
       从驱动时钟门控传播  cell  or  from  clock  object
       latency, 并发出警告消息。 这些动作被执行
       在注释过程中:

       apply_clock_gate_latency或compile_ultra命令。

       如果指定了时钟延迟值,则不会相对于时钟降低
       gating 阶段,将生成PWR-744警告消息。这张支票是
       如果使用-transitive_fanout选项,则禁用。  In addition, if  an
       inconsistent  clock  latency  annotation  is 运行时检测到
       apply_clock_gate_latency或compile_ultra命令,该工具会尝试
       fix  it  by 假设时钟延迟中的最小值
       在门控时钟门控单元上设置  or  registers.   This  ensures  that
       clock  latencies 在前进的道路上单调增加价值
       从时钟源到门控寄存器。   The  following  actions
       可以通过该工具执行以实现以下目的:

        o  If  clock-gating 单元A直接驱动一个或多个寄存器,
         并且已为计时提供了一些时钟延迟设置  of
         these  gated  registers  (by  using 的-stage选项的值为0
         set_clock_gate_latency命令或通过指定的延迟传播
         (对于时钟对象),并且在单元格A上注释的延迟高于
         为门控寄存器提供的延迟,然后是  clock-
         门控单元A被为门控reg-提供的等待时间覆盖
         isters. 如果完成此修复程序,PWR-746警告消息  is  gener-
         ated.

        o  If 时钟门控单元A正在驱动另一个时钟门控单元B,并且
         A上设置的时钟延迟时间高于B上设置的时钟延迟时间,  tool
         resolves 通过使用设置的值覆盖A上的时钟延迟来实现
         on B. 如果完成此修复程序,则生成PWR-746警告消息。

       To 删除使用set_clock_gate_latency指定的设置,使用
       reset_clock_gate_latency命令。

       如果启用了变量power_cg_physically_aware_cg,则
       tation of latency values fromset_clock_gate_latency is disabled.

   多角多模支持
       This  command  is  scenario 依赖并影响当前情况
       only.

       在  execution  of
       the compile_ultra或apply_clock_gate_latency命令已针对所有对象完成
       时钟延迟值可用的方案。

例子
       以下示例为以下示例指定时钟延迟值:  the  com-
       plete 第1、2和3级时钟门控单元的扇出范围  This
       延迟数据适用于时钟引脚所属的时钟门控单元
       to clock clk1.

         prompt>set_clock_gate_latency -clock [get_clocks clk1] -stage 1 \
                 -fanout_latency {1-30 2.1,31-100 1.7,101-inf 1.1}

         prompt>set_clock_gate_latency -clock [get_clocks clk1] -stage 2 \
                 -fanout_latency {1-5 0.9,6-20 0.5,21-inf 0.3}

         prompt>set_clock_gate_latency -clock [get_clocks clk1] -stage 3 \
                 -fanout_latency {1-10 0.28,11-inf 0.11}

       In   the   following   example,   fanout   ranges   specified   in  the
       -fanout_latency cg_fanout_list不覆盖1中的所有值  to  inf.
       In  this  case,  the  tool  assumes 时钟延迟值为1.7
       适用于扇出范围11-30,时钟延迟为  1.1  for  fanouts
       higher than 80.

         prompt>set_clock_gate_latency -stage 1 \
                 -fanout_latency {1-10 2.1,31-80 1.7,101-300 1.1}

       以下示例显示如何指定和注释其他时钟
       使用传递扇出的延迟值。

         prompt>set_clock_gate_latency -clock [get_clocks clk1] -stage 1 \
                 -fanout_latency {1-30 2.1,31-100 1.7,101-inf 1.1} \
                 -transitive_fanout

         prompt>set_clock_gate_latency -clock [get_clocks clk1] -stage 2 \
                 -fanout_latency {1-5 0.9,6-20 0.5,21-inf 0.3} \
                 -transitive_fanout

       以下示例显示如何指定和注释其他时钟
       不同的多角多模方案的延迟值。

         prompt>current_scenario sc1
         prompt>set_clock_gate_latency -stage 1 \
                 -fanout_latency {1-inf 0.11}

         prompt>current_scenario sc2
         prompt>set_clock_gate_latency -stage 1 \
                 -fanout_latency {1-inf 0.15}

         prompt>compile_ultra -gate_clock

也可以看看
       apply_clock_gate_latency(2)
       power_cg_physically_aware_cg(3)
       remove_clock_latency(2)
       report_clock_gating(2)
       reset_clock_gate_latency(2)
       set_clock_latency(2)
 


分享我

掘客  Facebook  SlashDot  可口的  Technorati  推特  谷歌  雅虎
中频