更改设计的引用:使用change_link命令,将instance更改到不同的reference上
使用-all_instance则可以将父模块所有实例化相同的instance替换到新的reference上
change_link还可以替换功能等效,但引脚名称不同的单元
report_reference和get_reference的使用
列出设计对象:
相对路径:
绝对路径
属性的使用
保存属性和定义属性
传播属性:
移除属性:
对象搜索顺序:designs, cells, nets, references, and library cells.
将设计从一种工艺转换为另一种工艺
要将设计从一种工艺转换为另一种工艺,请使用translate命令。如果您在布局模式下使用Design Compiler,请使用compile_ultra -incremental命令。设计会逐个单元地从原始逻辑库转换到新的逻辑库,同时保留原始设计的门结构。转换器使用每个现有单元(组件)的功能描述,在新的逻辑库(目标库)中确定匹配的组件。如果某个组件不存在完全匹配的替代组件,则会使用目标库中的组件对其进行重新映射。
你可以通过优先选择或禁用特定的库单元(使用 `set_prefer` 和 `set_dont_use` 命令),以及指定寄存器类型(使用 `set_register_type` 命令)来影响替换单元的选择。目标库在 `target_library` 变量中指定。在设计链接后,顶层设计的 `local_link_library` 属性会设置为 `target_library` 的值。
translate命令不会对具有dont_touch属性的单元或设计进行操作。翻译过程结束后,Design Compiler会报告未成功翻译的单元。
在Design Compiler连线负载模式下转换设计
以下步骤适用于大多数设计,但对于一些复杂设计,可能需要人工干预。
为了确定输入信号的延迟和转换时间特性,Design Compiler 需要有关外部驱动强度以及每个输入端口负载的信息。驱动强度是输出驱动电阻的倒数,而输入端口的转换延迟是驱动电阻与输入端口电容负载的乘积。在驱动较弱的情况下,Design Compiler 使用驱动强度信息对网络进行适当缓冲。
对于负载较重的驱动端口,例如时钟线,将驱动强度设置保持为0,这样设计编译器就不会对网络进行缓冲。每个半导体供应商在芯片内部分布这些信号的方式都有所不同。
默认情况下,Design Compiler 假定输入和输出端口的电容负载为零。要在设计的输入和输出端口上设置电容负载值,请使用 set_load 命令。此信息有助于 Design Compiler 选择输出焊盘的合适单元驱动强度,并有助于对输入焊盘的转换延迟进行建模。
下图展示了一个带有跨层级网络cross_net的示例设计。层级的顶层(设计TOP)具有50x50的线负载模型。下一层级(设计MID)具有40x40的线负载模型。叶子级设计A和B分别具有20x20和30x30的线负载模型。
布局模式下的Design Compiler可以通过估算时钟树功耗来进行功耗关联。此外,您可以使用带有-ct_references选项的set_power_prediction命令来指定时钟树参考,以改善关联性。set_power_prediction命令能使该工具将综合后功耗数值与时钟树综合后的功耗数值进行关联。
要在地形模式下执行功率相关性分析,请在设置好设计环境并应用综合约束后,运行类似以下的脚本:
read_verilog
set_power_prediction true compile_ultra -gate_clock -scan
report_power
write_file -format ddc -output synthesized.ddc
有时,处于地形模式的Design Compiler和IC Compiler会有不同的环境设置。这些差异可能会导致相关性问题。为帮助解决这些相关性问题,请在Linux shell中使用consistency_checker命令来比较各自的环境。
在比较这两个环境之前,你需要确定每个工具的环境。为此,请使用如示例7-4和示例7-5所示的write_environment命令。使用-output选项指定输出报告的名称。在Design Compiler工具中,要在compile_ultra之前运行write_environment命令;在IC Compiler工具中,要在place_opt之前运行write_environment命令。
Example 7-4 Using write_environment in Design Compiler
dc_shell-topo> write_environment -consistency -output DCT.env
Example 7-5 Using write_environment in IC Compiler
icc_shell> write_environment -consistency -output ICC.env