【Golden UPF Flow】- Golden UPF Flow

时间:2024-11-18 06:58:15

Golden UPF 模式仅支持自底向上(bottom to up)的层次化流程,在这种流程中,您在使用较高层次的块之前,先对每个较低层次的块进行综合。在自顶向下的层次化流程中使用的 characterize 命令,在Golden UPF 模式中是不支持的(这也就意味着不存在写完一个Top flatten的UPF,在通过工具分别得出下级block的UPF文件这种操作)。

在层次化的Golden UPF 流程中,需要单独为每个块提供Golden UPF 文件并综合该模块,产生门级网表(netlist)、Supplemental UPF 文件,以及可能的Name mapping file。然后,可以在更高层次上使用该模块,连同其Golden UPF 和生成的数据文件,如图 6 所示。

注意:

在层次化的Golden UPF 流程中,必须在所有层次级别上使用相同的对象重命名规则。

Figure 6 Hierarchical Golden UPF Flow

这种层次化方法允许在设计的不同层次上保持一致的power intent,同时确保每个块的电源策略都是根据其在层次结构中的位置和上下文正确应用的。通过这种方式,设计者可以构建复杂的多电压设计,同时保持对power intent的精确控制。

Tool to Tool数据交付

在设计数据从一个工具流向另一个工具的过程中,在Golden UPF 流程中,可以选择以下方式:

- 将单元的 PG 连接信息存储在 Verilog 网表中,或者存储在Supplemental UPF 文件中。(业界一般使用该方法,第二种交付方式最好是中后端由同一人完成)

- 将设计数据(网表、UPF 文件和名称映射文件)存储为 ASCII、.ddc、Milkyway 数据库或 IC Compiler II 格式。

当以 Milkyway 数据库格式或 .ddc 二进制格式保存设计时,工具将 Verilog 网表和所有 UPF 信息打包到二进制数据库中。存储的数据文件不是作为单独的文件直接可访问的。您可以通过将设计数据重新读取到 Design Compiler、IC Compiler 或 IC Compiler II 工具中,然后从工具中写出各个 ASCII 文件来恢复单独的文件。当您将二进制数据库读取到工具中时,没有必要单独读取Golden UPF 文件。两种不同的交付方式如图7所示:

Figure 7 Tool-to-Tool Design Data Flow With Golden UPF

Golden UPF Flow Script 示例

RTL and Golden UPF Flow
在 Design Compiler 工具中,当工具读取原始 RTL 设计时,要使用Golden UPF 流程,需要先启用Golden UPF 模式并使用启用了“严格检查”选项的Golden UPF 文件。综合门级网表后,需要保存Supplemental UPF 并输出带有 PG(电源和地)连接数据的 Verilog 网表。即以下步骤:

1.启用Golden UPF 模式:在 Design Compiler 中,需要设置 enable_golden_upf 变量为 true 来启用Golden UPF 模式。

2.加载Golden UPF 文件:使用 load_upf 命令加载Golden UPF 文件,并启用严格检查选项来确保 UPF 文件中的对象名称与设计中的对象名称完全匹配。

3.综合设计:执行逻辑综合生成门级网表。

4.保存Supplemental UPF 文件:在综合完成后,使用 save_upf 命令和 -supplemental 选项来保存Supplemental UPF 文件,该文件包含了综合过程中所做的电源意图变更。

5.输出 Verilog 网表:使用 write_file 或 write_verilog 命令输出 Verilog 网表,并确保包含 PG 连接数据,这通常通过 -pg 选项实现。

示例如下:

set enable_golden_upf true

load_upf top_gold.upf

# –strict_check true by default

# read in RTL

# prepare for compile

# compile_ultra

# save new supplemental UPF file and Verilog netlist with PG data

save_upf –supplemental top_supp_dc_out.upf

write_file –format verilog –pg –output top_with_pg.v

`write_verilog` 命令会在需要时自动输出一个名称映射文件。

如果要在Supplemental UPF 文件中写出 PG 连接数据而不是 Verilog 网表,可以使用以下类似的命令:

save_upf –supplemental -include_supply_exceptions top_supp_dc_pg.upf

write_file –format verilog –output

Verilog Netlist and Golden UPF Flow

当工具读取门级网表以使用Golden UPF 流程时,需要执行以下步骤:

1.启用Golden UPF 模式:在 Design Compiler 工具中设置 enable_golden_upf 变量为 true。

2.加载Golden UPF 文件:使用 load_upf 命令加载Golden UPF 文件,并禁用“严格检查”选项,因为将同时加载Supplememntal UPF 文件,该文件包含了自Golden UPF 文件以来的设计更改。

3.加载Supplemental UPF 文件:在加载Golden UPF 文件之后,加载包含电源意图变更的Supplemental UPF 文件。

4.综合或物理实现后保存supplemental UPF:完成综合或物理实现后,使用 save_upf 命令保存更新后的supplemental UPF 文件。

5.输出带有 PG 连接数据的 Verilog 网表:使用 write_file 或 write_verilog 命令输出 Verilog 网表,并包含 PG 连接数据。

DC脚本示例如下:

set enable_golden_upf true

read_verilog full_mapped.v #automatically reads name mapping file, if any

load_upf top_gold.upf –supplemental top_supp.upf –strict_check false

# perform incremental compile

# save new supplemental UPF file and Verilog netlist with PG data

save_upf –supplemental top_supp_dc_out.upf

write_file –format verilog -pg -output dc_top_with_pg.v

如果需要的话,工具会自动读进Name mapping file。

ICC脚本示例如下:

set enable_golden_upf true

read_verilog dc_top_with_pg.v

load_upf top_gold.upf –supplemental top_supp.upf –strict_check false

# perform physical implementation

# place_opt, clock_opt, route_opt

# save new supplemental UPF file and Verilog netlist with PG data

save_upf –supplemental top_supp_icc_out.upf

write_verilog -pg -output icc_top_with_pg.v

ICC2脚本示例如下:

set_app_option -name .enable_golden_upf \

-value true -as_user_default

read_verilog dc_top_with_pg.v

load_upf top_gold.upf –supplemental top_supp.upf \

–strict_check false commit_upf

# perform physical implementation

# place_opt, clock_opt, route_opt

# save new supplemental UPF file and Verilog netlist with PG data

save_upf top_supp_icc_out.upf

write_verilog -include {pg_netlist} icc2_top_with_pg.v

Name Mapping File(名字映射文件)

启用了Golden UPF 模式的 Design Compiler 或 IC Compiler 工具,输出 Verilog 网表时,如果需要,工具会自动输出一个名称映射文件。下次在Golden UPF 模式下使用工具读取 Verilog 网表文件时,工具会自动找到并使用该名称映射文件。 如果 Verilog 网表文件中的 pragma 语句不正确或缺失,您可以通过设置 upf_name_map 变量来明确指定名称映射文件的位置。输入一个或多个由设计名称和相应的映射文件名称组成的对,如下例所示:

DC脚本示例:

set upf_name_map_file {TOP MID }

read_verilog

read_verilog

link

load_upf –strict_check false

load_upf –scope U1 –strict_check false

ICC2脚本示例:

read_verilog

read_verilog

link_block

load_upf –strict_check false

load_upf –scope U1 –strict_check false