Design Compiler:物理约束
Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm=1001.2014.3001.5482
在使用拓扑模式进行物理综合时,可以提供物理约束,例如:晶圆面积(die area)、核心区域(core area)及其形状、端口位置(port location)、宏单元位置(macro location)、避开区(keepout margin)、布局阻挡区(placement blockage)、预布线(preroute)、边界(bound)等。
这些物理约束可以以多种形式提供,本文就将对此进行简要介绍。
IC Compiler
首先在IC Compiler中进行设计规划(design planning),随后使用write_def或write_floorplan命令保存布图规划。
如果使用write_def命令,则需要注意有些物理约束可能无法保存在DEF文件中,例如create_voltage_area命令、create_rp_group命令、create_bound命令的-dimension选项、create_placement_blockage命令的-no_register、-no_rp_group、-no_pin、-buffer_only和-no_hard_macro选项、set_ignored_layers命令、set_preferred_routing_direction命令。如果需要恢复这些物理约束,需要额外进行设置。在Design Compiler中可以使用extract_physical_constraints命令提取物理约束并将其应用在当前设计中。
如果使用write_floorplan命令,则需要注意有些物理约束可能无法保存在Tcl文件中,比如set_keepout_margin命令。如果需要恢复这些物理约束,需要额外进行设置。在Design Compiler中可以使用read_floorplan命令在当前设计中设置物理约束,也可以使用source命令,但使用该命令时会报告一些并不适用于Design Compiler的错误和警告,read_floorplan命令会过滤这些无用的错误和警告。
Design Compiler Graphical支持使用floorplan exploration功能,即调用IC Compiler进行布图规划,并将结果直接返回给Design Compiler。
IC Compiler II
首先在IC Compiler II中进行设计规划,随后使用write_def或write_floorplan命令保存布图规划。
如果使用write_def命令,则需要注意有些物理约束可能无法保存在DEF文件中,例如create_voltage_area命令、create_rp_group命令、create_bound命令的-dimension选项、create_placement_blockage命令的-type选项、set_ignored_layers命令、set_preferred_routing_direction命令。如果需要恢复这些物理约束,需要额外进行设置。在Design Compiler中可以使用extract_physical_constraints命令提取物理约束并将其应用在当前设计中。
如果使用write_floorplan命令,IC Compiler II会在指定目录下生成DEF文件和Tcl文件,DEF文件通常包含数量较多的对象,直接用Tcl文件来恢复这些对象会非常耗时;Tcl文件则包含了不能在DEF文件中描述的物理约束以及一条read_def命令用于加载前述DEF文件。在Design Compiler中可以使用read_floorplan命令在当前设计中设置物理约束,也可以使用source命令,但使用该命令时会报告一些并不适用于Design Compiler的错误和警告,read_floorplan命令会过滤这些无用的错误和警告。
Design Compiler Graphical支持使用floorplan exploration功能,即调用IC Compiler II进行布图规划,并将结果直接返回给Design Compiler。
用户自定义物理约束
在第一轮综合时,可以使用默认物理约束或自定义物理约束,下面是支持的物理约束命令。
- set_aspect_ratio
- set_utilization
- create_die_area
- create_site_row
- set_port_side
- create_terminal
- set_cell_location
- create_placement_blockage
- create_voltage_area
- create_bounds
- create_route_guide
- create_net_shape
- create_user_shape
- set_pin_physical_constraints
- create_pin_guide
- create_via_master
- create_via
- create_track
- set_keepout_margin
- compute_polygons
Jupiter XT(过时)
Jupiter XT曾经是专门的布图规划工具,设计规划完成后可以使用derive_physical_constraints命令将布图规划保存在Tcl文件中。
保存设计
保存为二进制格式
使用write_file -format ddc命令或write_milkyway命令可将设计保存为二进制格式,被保存的设计中不仅包含了网表、逻辑约束,还包括物理约束和标准单元的粗布局(coarse placement)信息。
需要注意的是,默认情况下,这些物理约束和标准单元的粗布局信息只能被Design Compiler再次读取,用于增量综合(如果使用write_milkyway命令保存,设计甚至无法重新被再次读取)。设计传递给IC Compiler时,只有其中的网表、逻辑约束会被读取。
但是如果使用了Design Compiler Graphical的Synopsys Physical Guidance(SPG)技术,标准单元的粗布局信息可以被传递给IC Compiler,且根据物理约束生成的签名也会被读取,以确保布图规划的一致性。通过SPG技术综合后保存的二进制设计会包含一个名为dct_spg_flow_done的只读属性,可以查询该属性确定该设计是否通过SPG技术创建。
保存为ASCII格式
使用write_file -format verilog命令可将设计保存为ASCII格式,被保存的设计只包含了网表,不包含逻辑约束、物理约束和标准单元的粗布局信息。
可以在Design Compiler中使用write_def或write_floorplan命令保存物理约束,如果使用了Design Compiler Graphical的Synopsys Physical Guidance(SPG)技术,DEF文件中还会包含标准单元的粗布局信息。
保存为供IC Compiler II使用的ASCII格式
使用write_file -format verilog命令可将设计保存为ASCII格式,被保存的设计只包含了网表,不包含逻辑约束、物理约束和标准单元的粗布局信息。
可以在Design Compiler中使用write_def或write_floorplan -format icc2命令保存物理约束,如果使用了Design Compiler Graphical的Synopsys Physical Guidance(SPG)技术,DEF文件中还会包含标准单元的粗布局信息。
最方便的是使用write_icc2_files命令,该命令会调用许多命令(包括write_file命令、write_saif命令、write_floorplan -format icc2命令、save_upf命令、write_timing_context命令)生成所有IC Compiler II需要使用的文件,包括网表、SAIF文件、DEF文件和Tcl文件、UPF文件、SCANDEF文件、SDC文件等。