place(placement)

数字后端PR流程4:Placement

欢迎大家评论转发关注,不定时更新!

上一节我们介绍了芯片在PR阶段的Floorplan一般情况下怎么去规划,并且在规划中怎么去检查timing以及系统的IR drop。并且通过上节我们将满足要求的floorplan通过软件产生了标准格式的DEF文件,以供本节我们使用。

在这一节将介绍有了DEF文件后,我们怎么去对我们的std-cell等去摆放。主要内容包括:

  • 进行一些涉及Placement的设置以及timing的优化
  • 进行一些涉及DFT的设置以及Power的优化
  • 执行std cell的Placement
  • 分析Congestion,timing以及Power
  • 执行一些增量的placement以及相关优化

1、placement前的设置以及检查

这里我们首先打开一个Floorplan确定的设计,正如前面所讲,可以通过icc-gui界面打开,也可以通过shell命令打开-->open_mw_lib orca_lib.mw open_mw_cel ORCA_floorplanned。为了简单起见,这里的设计只有Core区域,不包含数字IO-PAD。

  • 在执行palcement前我们需要进行一些常见的软件设置以及软件进行timing分析和优化的控制,具体如下:

1)、
timing_enable_multiple_clocks_per_reg 此变量设置成ture可以让软件分析到达寄存器时钟引脚多个时钟的时序。

2)、
case_analysis_with_logic_constants 此变量告知工具在timing分析中是否考虑constant,这个变量默认false,默认下可能导致timing分析错误,故一般要设置成ture。

3)、
physopt_delete_unloaded_cells用于禁止工具去优化一下unload的cells

4)、
physopt_power_critical_range 指定一个值用于工具在leakage power优化过程中,当一个cell的slack小于该指定值那么工具就不再对其优化。如果该值过小,软件会花费较多时间在leakage power优化过程中。

5)、
physopt_area_critical_range同上用于面积优化过程中指定的一个margin的值。

6)、
set_fix_multiple_port_nets 该命令在DC综合的时候也会用到,主要用于禁止assign语句的出现(原因)

7)、set_timing_derate 用于OCV设置

8)、后面的一些约束都是一些时序分析时的分组等。

接着我们将floorplan中已经摆放进入的macro设置成fixed,就是说在后面的placement过程中这些位置都不能移动。

set_dont_touch_placement [all_macro_cells]

  • 在我们实际routing过程中,关于时钟的走线一般要特殊设置,因为实际设计中时钟的质量对系统要求较高,故涉及时钟的routing 的宽度一般比普通走线要宽,具体设置如下。将时钟的走线走在Metal3-Metal6,并且双倍的线宽(Non default routing)。

define_routing_rule 2X_SPACING -spacings {METAL2 0.6 \

METAL3 0.6 METAL4 0.8 METAL5 1.2 METAL6 1.4}

set_clock_tree_options -clock_tree [all_clocks] \

-routing_rule 2X_SPACING -layer_list "METAL3 METAL6"

  • 在当前这个设计中,是存在DFT的,固我们在placement过程中,需要读入DFT提高的scandef文件,主要的目的就是告诉工具尽量将同一scan chain上的cell 靠近摆放。

read_def design_data/ORCA_TOP.scandef

读入后我们也可以通过report_scan_chain 来查看当前设计总共包含的scan chain的个数。

  • 因为在place过程中,在考虑timing的同时也需要考虑功耗的优化,我们对当前设计可以提供一个SAIF文件,用于在placement过程的功耗优化,如果我们没有SAIF文件,那么我们需要通过命令指定反转率,具体如下:

2、placement 以及优化

上述设置完成后,我们就可以执行placement命令,具体如下,其中option -area_recovery 允许工具在非关键timing路径上area recovery ;-optimize_dft 允许工具在placement过程中基于timing重新调整scan的顺序 ;-power 允许工具在placement过程中执行lekagepower优化等。

place_opt –area_recovery -optimize_dft -power

执行完placement后我们可以观察Global Route Congestion,

report_congestion –grc_based –by_layer –routing_stage global


也可以通过report_design -physical 产生一个实际Placement后的物理报告,在这个报告里面我们能够看到std cell的利用率,具体如下图示。

同时我们也可以report_qor,查看当前placement后,各时钟域内的timing信息,通过报告我们可以看到在 Timing Path Group 'SYS_2x_CLK' 存在hold违例,但是在placement阶段我们不需要特别care hold的违例。

通过report_power可以查看当前placement后,当前设计的功耗情况。主要包括动态功耗和静态功耗部分。

内容底部广告位(手机)
标签:

管理员
草根站长管理员

专注网站优化+网络营销,只做有思想的高价值网站,只提供有担当的营销服务!

上一篇:blackpink(blackpink成员介绍)
下一篇:返回列表

相关推荐