zoukankan      html  css  js  c++  java
  • Innovus 对multibit 的支持

    如果在综合阶段没有做multibit merge, 或综合阶段由于缺失物理信息multibit cell merge 不合理,那就需要PR 工具做multibit merge 或split. 

    Innovus 支持multibit 的merge 及split, 在setOptMode 中由如下两个option 控制:

    • -multiBitFlopOpt { false| true| mergeOnly| splitOnly } 

    • -multiBitFlopOptIgnoreSDC {true| false}

    此外还可以用如下两个attribute 控制某些特定的寄存器是否要做merge 或split: 

    • dontMergeMultibit(settable): bool

    • dontSplitMultibit(settable): bool

    顺便提一句,在Innovus 中要找一个object 的属性,可以用命令dbSchema 来check, 例如:要找instance 相关的关键词是multi 的属性,用命令:

    dbSchema inst *multi*

    返回值如:

    Innovus 不同阶段对mulitbit 的支持


    P&R分好多步,每一步可支持mutibit 操作都不同,具体如下: 

    preCTS:

    • Merging improves bits per flop metric.

    • Splitting improves bottleneck timing.

    postCTS:

    • No merging is supported currently due to the impact it may have on the clock tree.

    • In Innovus 17.1 version, splitting of flops to improve bottleneck timing is supported.

    postRoute:

    • No merging or splitting is supported.

    在Innovus 中如何report multibit 优化结果


    在Innovus log 中可以看到如下的关于multibit 的优化信息:

     然而没有最终的summary. 可以用下面的proc 来report, 下载原始脚本请查看参考文献网址。

    使用方法及输出:

    做了multibit 优化之后,会改变寄存器的名字,可能会对形式验证造成影响,可以在Innovus 中用命令dumpMultiBitFlopMappingFile 来dump multibit mapping file 给后续流程用,该命令可以dump 如下file: 

    • multi_bit_input_pin_mapping: includes multi-bit input     pin mapping information 

    • multi_bit_mapping: Includes multi-bit     optimization mapping information 

    • mbit.json: Includes multi-bit flop     mapping attribute information

  • 相关阅读:
    JMeter使用正则表达式提取相应信息
    Python的configparser生成配置文件,以及相关操作
    Python函数主要的作用
    Python函数传参位置关系总结
    Python中的作用域
    Python高阶函数解析
    Python中set集合的增加,update和add的区别
    Oracle 11g服务详细介绍及哪些服务是必须开启的?
    javacc jjtree 写法 以及 jj写法 基本语法 以及应用
    Python 3.3 try catch所有的错误Error,不包括Exception。关键在于 sys.exc_info()
  • 原文地址:https://www.cnblogs.com/lelin/p/11409868.html
Copyright © 2011-2022 走看看