|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
本帖最后由 clocker0 于 2025-6-6 15:24 编辑
各位大佬好,小弟目前在研究背面供电的课题。
之前的正面供电时,信号线和电源线都在M1-M13层,相互拥塞。
现在目前业界在做背面供电的研究,就是添加几层背面金属层,然后将电源线放入背面金属层,正面金属层就只用于信号线(CLK和signal),这样就实现了 clk/signal 绕线资源更多,且避免signal和电源线之间可能的干扰。
目前的想法是把M0当作底层,M1-M2层当作背面金属层,M3-M13层当作正面金属层。在PNR时,只在M1-M2生成电源条带,然后在M3-M13层进行routing,但是当我设置routing的bottom层是M3时,innovus会提示报错,显示M1,M2已经存在信号线(时钟树综合时在M1和M2布了时钟线),因此routing的bottom层必须设置为M1。
小弟想问下各位大佬,有没有什么办法在时钟树综合的时候就从M3层开始布线,谢谢各位大佬!
下面是小弟的脚本:
source pdn_invs.tcl
setPlaceMode -place_detail_use_check_drc false
setPlaceMode -place_global_place_io_pins true
place_opt_design -out_dir $rptDir -prefix place
####SWAP
#randSwapCells
# 添加CTS专用配置 - 指定缓冲器和反相器单元用于CTS
set_ccopt_property buffer_cells {
BUF_X1_6T_2F_45CPP_24M0P_30M1P_24M2P_2MPO_ET_M0
BUF_X2_6T_2F_45CPP_24M0P_30M1P_24M2P_2MPO_ET_M0
BUF_X4_6T_2F_45CPP_24M0P_30M1P_24M2P_2MPO_ET_M0
BUF_X8_6T_2F_45CPP_24M0P_30M1P_24M2P_2MPO_ET_M0
}
set_ccopt_property inverter_cells {
INV_X1_6T_2F_45CPP_24M0P_30M1P_24M2P_2MPO_ET_M0
INV_X2_6T_2F_45CPP_24M0P_30M1P_24M2P_2MPO_ET_M0
INV_X4_6T_2F_45CPP_24M0P_30M1P_24M2P_2MPO_ET_M0
INV_X8_6T_2F_45CPP_24M0P_30M1P_24M2P_2MPO_ET_M0
}
set_ccopt_property use_inverters true
# 报告时钟情况以便调试
report_clocks
set_ccopt_property post_conditioning_enable_routing_eco 1
set_ccopt_property -cts_def_lock_clock_sinks_after_routing true
setOptMode -unfixClkInstForOpt false
# 创建时钟树规范并运行CTS
create_ccopt_clock_tree_spec -filename ccopt.spec
source ./ccopt.spec
ccopt_design
set_interactive_constraint_modes [all_constraint_modes -active]
set_propagated_clock [all_clocks]
set_clock_propagation propagated
# ------------------------------------------------------------------------------
# Routing
# ------------------------------------------------------------------------------
#setNanoRouteMode -routeTopRoutingLayer 14
setNanoRouteMode -routeUseAutoVia false
#setNanoRouteMode -routeBottomRoutingLayer 1
##Recommended by lib owners
# Prevent router modifying M1 pins shapes
#setNanoRouteMode -routeWithViaInPin "1:1"
#setNanoRouteMode -routeWithViaOnlyForStandardCellPin "1:1"
#setNanoRouteMode -routeWithViaOnlyForStandardCellPin false
## allows route of tie off nets to internal cell pin shapes rather than routing to special net structure.
setNanoRouteMode -routeAllowPowerGroundPin true
## limit VIAs to ongrid only for VIA1 (S1)
setNanoRouteMode -drouteOnGridOnly "via 1:1"
setNanoRouteMode -dbCheckRule true
setNanoRouteMode -drouteAutoStop true
setNanoRouteMode -drouteExpKeepVia {*RW*, *MAR*}
setNanoRouteMode -drouteExpAdvancedMarFix false
setNanoRouteMode -routeExpAdvancedTechnology true
setAnalysisMode -cppr both
setAnalysisMode -analysisType onChipVariation
setExtractRCMode -effortLevel medium
routeDesign
extractRC
saveDesign ${design}_route.enc
## report
summaryReport -noHtml -outfile $rptDir/route_design.rpt
report_timing > $rptDir/route_timing.rpt
report_power > $rptDir/route_power.rpt
verify_drc -exclude_pg_net -limit 1000000 > $rptDir/drc.rpt
rcOut -spef ${design}.spef
saveNetlist ${design}.v
|
|