ccopt

news/2025/9/29 11:55:59/文章来源:https://www.cnblogs.com/yjxmike/p/19118484

#################################################################################
##### common setting
set design_name             [dbGet top.name]
set pre_stage               pre_cts_opt
set post_stage              ccopt
set process                 180 
set VER_NAME [exec /bin/date +%m%d_%H%M]
if {[info exists env(NETLIST_VER)]} { set NETLIST_VER $env(NETLIST_VER) }##################################################################################
### RESET MODE
#setDesignMode     -reset
#setPlaceMode      -reset
#setOptMode        -reset
#setUsefulSkewMode -reset
#setCTSMode        -reset
#setTrialRouteMode -reset
#setNanoRouteMode  -reset
#setExtractRCMode  -reset
#setAnalysisMode   -reset
#setDelayCalMode   -reset
#setSIMode         -reset
#setIlmMode        -reset
#
##################################################################################
### GLOBAL MODE SET
set_global timing_report_launch_clock_path true
set_global timing_clock_phase_propagation both
set_global timing_use_incremental_si_transition true
#
#set_table_style -no_frame_fix_width
#set_global timing_report_enable_auto_column_width true
set_global report_timing_format {instance cell arc delay arrival incr_delay slew load fanout user_derate adjustment}
#
#
### define cpu and process
#setMultiCpuUsage -localCpu 8
#
##################################################################################
### Design mode (extreme , high)
#setDesignMode -process 150
#setDesignMode -flowEffort standard
#setDesignMode -highSpeedCore true
#
##################################################################################
##setTrialRouteMode -minRouteLayer 2
##setTrialRouteMode -maxRouteLayer 6
##setRouteMode -earlyGlobalMaxRouteLayer 6
##setRouteMode -earlyGlobalMinRouteLayer 2
#
##################################################################################
### placement setting
#setPlaceMode -coreEngineEffort high
#setPlaceMode -congEffort high
#setPlaceMode -maxDensity 0.80
#
##################################################################################
### opt mode
setOptMode -allEndPoints true
setOptMode -reclaimArea true
setOptMode -reclaimAreaIncremental true
setOptMode -fixFanoutLoad true
#setOptMode -clkGateAware force
setOptMode -maxDensity 0.8
setOptMode -maxLength 600
setOptMode -effort high
#
setOptMode -usefulSkew false
setOptMode -usefulSkewCTS false
setOptMode -usefulSkewPostCTS false
setNanoRouteMode -quiet routeWithViaInPin false
setNanoRouteMode -quiet drouteViaOnGridOnly false
setNanoRouteMode -quiet envAlignNonPreferredTrack true#################################################################################
## nanoroute setting. (drc/ant)
setNanoRouteMode -routeBottomRoutingLayer 2
setNanoRouteMode -routeTopRoutingLayer 4 
setNanoRouteMode -routeWithTimingDriven true
setNanoRouteMode -routeWithSiDriven true
setNanoRouteMode -routeWithSiPostRouteFix true
setNanoRouteMode -routeSiEffort high#################################################################################
## CTS mode
setCTSMode -routeClkNet true
set_ccopt_property -check_route_follows_guide  true
#setCTSMode -routeGuide true
##setCTSMode -routeTopPreferredLayer 4 
#setCTSMode -routeBottomPreferredLayer 2
#setCTSMode -routePreferredExtraSpace 0
#setCTSMode -routeLeafTopPreferredLayer 4
#setCTSMode -routeLeafBottomPreferredLayer 2
#setCTSMode -routeLeafPreferredExtraSpace 1#################################################################################
##### STA mode
setAnalysisMode -cppr both -analysisType onChipVariation
setDelayCalMode -engine aae -SIAware false#################################################################################
##### Dont use setting
#set cell_list ""
#foreach cell $cell_list {
#  setDontUse  $cell true
#}
#setDontUse *BWP35LVT false
#setDontUse *CD3NMLVT false#################################################################################
##### update constraints
set_interactive_constraint_modes [all_constraint_modes -active]reset_ideal_network [get_property [all_clocks] sources]
reset_ideal_latency [get_property [all_clocks] sources]set_max_transition 0.8 [current_design]
set_max_transition 0.4 -clock_path [all_clocks]
set_max_capacitance 0.3 [current_design ]
set_max_transition 0.4 [all_clocks]
#set_clock_uncertainty 0.4 -setup [all_clocks]
#set_clock_uncertainty 0.4 -hold [all_clocks]set_interactive_constraint_modes ""
setOptMode -maxLength 600#set_propagated_clock [all_clocks]
##reset_ideal_network [get_object_name [add_to_collection -unique "" [get_property [get_clocks -filter "defined(sources)"] sources]]]
#set_propagated_clock [get_ports rst]
##set_ccopt_property target_max_capacitance 0.3 [current_design]
##set_ccopt_property max_fanout 32 [current_design ]
##
##set_ccopt_property target_max_trans 0.8 [current_design]
##set_ccopt_property target_max_trans 0.4 [all_clocks]
##set_clock_uncertainty 0.4 -setup [all_clocks]
##set_clock_uncertainty 0.4 -hold [all_clocks]
##set_interactive_constraint_modes ""
##setOptMode -maxLength 600#################################################################################
##### custom path group
reset_path_group
resetPathGroupOptions
createBasicPathGroups -expanded
#set allreg [all_registers]
#group_path -name reg2reg -from [all_registers] -to [all_registers]
#group_path -name reg2icg -from [all_registers] -to [get_cells -hier -filter "is_integrated_clock_gating_cell==true"]
#group_path -name reg2asy -from [all_registers] -to [all_registers -async_pins]
#group_path -name reg2out -from [all_registers] -to [all_outputs]
#group_path -name in2reg  -from [all_inputs]    -to [all_registers]
#group_path -name in2out  -from [all_inputs]    -to [all_outputs]
#group_path -name reg2mem -from [all_registers] -to u_digi_top/u_platform/u_ahb_top_0/usram8kb/usram8kb/usram2048x32
#group_path -name mem2reg -from u_digi_top/u_platform/u_ahb_top_0/usram8kb/usram8kb/usram2048x32 -to [all_registers]
#group_path -name reg2ana -from [all_registers] -to u_ana_top
#group_path -name ana2reg -from u_ana_top -to [all_registers]
#group_path -name reg2lcd -from [all_registers] -to u_ana_lcdsw
#group_path -name lcd2reg -from u_ana_lcdsw -to [all_registers]
#
#setPathGroupOptions reg2reg -effortLevel high -late -slackAdjustment 0.0
#setPathGroupOptions reg2icg -effortLevel high -late -slackAdjustment 0.0
#setPathGroupOptions reg2asy -effortLevel high -late -slackAdjustment 0.0
#setPathGroupOptions reg2out -effortLevel low  -late -slackAdjustment 0.0
#setPathGroupOptions in2reg  -effortLevel low  -late -slackAdjustment 0.0
#setPathGroupOptions in2out  -effortLevel low  -late -slackAdjustment 0.0
#setPathGroupOptions default -effortLevel high -late -slackAdjustment 0.0
#
#setPathGroupOptions reg2mem -effortLevel high -late -slackAdjustment 0.0
#setPathGroupOptions mem2reg -effortLevel high -late -slackAdjustment 0.0
#
#setPathGroupOptions reg2ana -effortLevel low  -late -slackAdjustment 0.0
#setPathGroupOptions ana2reg -effortLevel low  -late -slackAdjustment 0.0
#setPathGroupOptions reg2lcd -effortLevel low  -late -slackAdjustment 0.0
#setPathGroupOptions lcd2reg -effortLevel low  -late -slackAdjustment 0.0
#
#reportPathGroupOptions
#
# 
#setFillerMode -core {JLSCL6CNMV2_DECAP_16 JLSCL6CNMV2_DECAP_8 JLSCL6CNMV2_DECAP_6 JLSCL6CNMV2_DECAP_4 JLSCL6CNMV2_DECAP_3 JLSCL6CNMV2_FILL_32 JLSCL6CNMV2_FILL_16 JLSCL6CNMV2_FILL_8 JLSCL6CNMV2_FILL_4 JLSCL6CNMV2_FILL_3 JLSCL6CNMV2_FILL_2 JLSCL6CNMV2_FILL_1} -corePrefix FILLER#################################################################################
# create_ccopt_clock_tree_spec -file  DBS/CTS/ccopt_${VER_NAME}.spec -keep_all_sdc_clocks
#create_clock [get_ports rst]  -name rst_clk  -period 1000
#create_ccopt_clock_tree_spec
set_ccopt_mode -cts_inverter_cells "CLKINVX8 CLKINVX3 CLKINVX4 CLKINVX12"
set_ccopt_mode -cts_target_slew 0.7
set_ccopt_mode -cts_target_nonleaf_slew 0.7
set_ccopt_mode -cts_target_skew 0.3
set_ccopt_mode -cts_inverter_cells true
set_ccopt_property max_fanout 32#setFillerMode -corePrefix FILLER -core "FDCAPHD4 FDCAPHD8 F_FILLHD1 F_FILLHD2 F_FILLHD4 F_FILLHD8 F_FILLHD16"
#set_dont_use "INV1CK BUF"
set_dont_use "CLKINVX1 CLKINVX2  CLKINVX16 CLKINVX20 CLKBUFX1 CLKBUFX2 CLKBUFX3 CLKBUFX12 CLKBUFX16 CLKBUFX20 " truedelete_ccopt_clock_trees *
#delete_ccopt_skew_groups *
create_ccopt_clock_tree_spec -file ccopt_spec.spec
source ./ccopt_spec.spec
##source ./scr/inseration.tcl
#source /home/cdsuser1/Project/zx5017/APR/tmp/scr/inseration.tcl#################################################################################
##add_ndr
add_ndr -name 2w2s -width {METAL2:METAL4 0.56} -spacing {METAL2:METAL4 0.56}create_route_type -name top_rule \-preferred_routing_layer_effort high \-top_preferred_layer 4 \-bottom_preferred_layer 2 \-shield_net GND \-shield_side both_side \-non_default_rule 2w2s
create_route_type -name trunk_rule \-preferred_routing_layer_effort high \-top_preferred_layer 4 \-bottom_preferred_layer 2 \-shield_net GND \-shield_side both_side \-non_default_rule 2w2s
create_route_type -name leaf_rule \-top_preferred_layer 4 \-bottom_preferred_layer 2 \-shield_net GND \-shield_side both_side \-non_default_rule 2w2s
set_ccopt_property route_type -net_type top top_rule                                  
set_ccopt_property route_type -net_type trunk trunk_rule
set_ccopt_property route_type -net_type leaf leaf_ruleadd_ndr -name 1w1s -width {METAL2:METAL4 0.28} -spacing {METAL2:METAL4 0.28}create_route_type -name top_rule_1 \-preferred_routing_layer_effort high \-top_preferred_layer 4 \-bottom_preferred_layer 2 \-shield_net GND \-shield_side both_side \-non_default_rule 1w1s
create_route_type -name trunk_rule_1 \-preferred_routing_layer_effort high \-top_preferred_layer 4 \-bottom_preferred_layer 2 \-shield_net GND \-shield_side both_side \-non_default_rule 1w1s
create_route_type -name leaf_rule_1 \-top_preferred_layer 4 \-bottom_preferred_layer 2 \-shield_net GND \-shield_side both_side \-non_default_rule 1w1s
set_ccopt_property route_type -net_type top top_rule_1                                  
set_ccopt_property route_type -net_type trunk trunk_rule_1
set_ccopt_property route_type -net_type leaf leaf_rule_1ccopt_design -outDir ./report/ccopt -prefix ccopttimeDesign -postCTS 
timeDesign -postCTS -hold 
#optDesign -postCTS -incr
#optDesign -postCTS -hold #remove_assigns ; deleteEmptyModule
saveDesign -tcon ../DB/${design_name}_${NETLIST_VER}_${post_stage}_${VER_NAME}.enc
##defOut -scanChain -netlist -floorplan -placement -routing DBS/${post_stage}_${VER_NAME}.def.gz
#timeDesign -postCTS -expandedViews       -outDir ./report/${post_stage} -prefix ${post_stage}_${VER_NAME} -numPaths 1000
#timeDesign -postCTS -hold -expandedViews -outDir ./report/${post_stage} -prefix ${post_stage}_${VER_NAME} -numPaths 2000#set del_cell_list [list DELHD0 DELHD1 DELHD2 DELHD3 DELHD4] 
#setOptMode -ignorePathGroupsForHold {in2reg reg2out}
#optDesign -postCTS -hold -outDir ../rpt/${post_stage} -prefix hold
#saveDesign -tcon -verilog ../DB/${design_name}_${post_stage}_hold_${VER_NAME}.enc#####################################################################################
#set del_cell_list [list JLSCL6CNMV2_BUF_1 JLSCL6CNMV2_BUF_2 JLSCL6CNMV2_DLYGATE4S50_1 JLSCL6CNMV2_DLYGATE4S18_1 JLSCL6CNMV2_DLYGATE4S12_1] 
#setOptMode -holdFixingCells $del_cell_list
#setOptMode -verbose true
#optDesign -postCTS -hold -outDir reports/${post_stage} -prefix ${post_stage}_hold
#
#remove_assigns ; deleteEmptyModule
#saveDesign -tcon -verilog DBS/${post_stage}_hold_${VER_NAME}.enc
#
#timeDesign -expandedViews -postCTS -pathreports -drvReports -numPaths 5000 -outDir reports/${post_stage} -prefix ${post_stage}_hold
#timeDesign -expandedViews -postCTS -hold -pathreports -numPaths 5000 -outDir reports/${post_stage} -prefix ${post_stage}_hold
#
#######################################################################################
#optDesign -postCTS -incr -outDir reports/postCTS_incr -prefix postCTS_incr_${VER_NAME}
#
#remove_assigns ; deleteEmptyModule
#saveDesign -tcon -verilog DBS/postCTS_incr_${VER_NAME}.en"%!*
#
#timeDesign -expandedViews -postCTS -pathreports -drvReports -numPaths 500 -outDir reports/${post_stage} -prefix postCTS_incr_${VER_NAME}
#timeDesign -expandedViews -postCTS -hold -pathreports -numPaths 500 -outDir reports/${post_stage} -prefix postCTS_incr_${VER_NAME}#################################################################################
##### Save result#if {[checkUnique] > 0} { deleteEmptyModule }
#saveDesign -tcon -libs -verilog DBS/${post_stage}_${VER_NAME}.enc
#defOut -scanChain -netlist -floorplan -placement -routing DBS/${post_stage}_${VER_NAME}.def.gz

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

方言普通话识别大模型,支撑中英+202种方言识别

方言普通话识别大模型,支撑中英+202种方言识别pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

春季高考网站建设做设计用哪个素材网站

问题场景: 使用若依Vue前端分离版-基于SpringBoot的权限管理系统进行实战。 问题描述与解决 拉取若依项目后,根据官方开发文档(项目readme文档)进行依赖下载安装后,启动失败。 出现以下几个问题: 运行n…

神华两学一做网站重庆做网站seo优化选哪家好

1 /*2 题目大意:3 就是一幢大厦中有0~99的楼层, 然后有1~5个电梯!每个电梯有一定的上升或下降速度和楼层的停止的位置!4 问从第0层楼到第k层最少经过多长时间到达!5 6 思路&#x…

北京专业的网站ui设计公司怎么制作图片加文字

ElementUI 布局——行与列的灵活运用 一 . 使用 Layout 组件1.1 注册路由1.2 使用 Layout 组件 二 . 行属性2.1 栅格的间隔2.2 自定义元素标签 三 . 列属性3.1 列的偏移3.2 列的移动 在现代网页设计中&#xff0c;布局是构建用户界面的基石。Element UI 框架通过其强大的 <e…

图怪兽logo设计官网seo技术培训东莞

ArcGIS Pro SDK (十四)地图探索 6 图形与工具 文章目录 ArcGIS Pro SDK (十四)地图探索 6 图形与工具1 图形叠加1.1 图形叠加1.2 图形叠加与 CIMPicture图形1.3 添加带有文本的叠加图形2 工具2.1 更改草图工具的符号2.2 创建用于地图中单击的点的返回坐标的工具2.3 创建用于…

init.tcl

setMessageLimit 1000 set DESIGN IF_ASIC_TOPset init_lef_file " \/home/xxx.tlef \/home/xxx.lef \/home/xxx.lef \/home/xxx.lef \/home/xxx.lef \/home/xxx.lef \/home/xxx.lef \" #/home/xxx.lef…

ffmpeg一些使用记录,防止忘记

合并音频和视频,并将音频循环延至视频结束 ffmpeg -stream_loop -1 -i start.mp3 -i start.mp4 -c:v copy -c:a aac -b:a 128k -shortest -movflags +faststart startNeed.mp4视频延长时间 ffmpeg -stream_loop 249 -…

BLE从机(20)BLE区分主机(IOS/安卓/WIN)

前言: 实现功能:作为从机区分主机系统。 实现逻辑: 从机添加client权限后,识别主机系统UUID并读取。 目前可以实现区分IOS/WIN/安卓/MAC系统。UUID handle 系统 备注Device_Information_Service_UUID:0x180A服务U…

Windows 驱动开发基础

Windows 驱动开发基础 什么是Windows 驱动 概念 Windows驱动程序(Device Driver)是一种特殊的系统软件,它运行在操作系统的内核模式下,充当硬件设备与操作系统之间的翻译官和协调者。从技术角度来看,驱动程序是一…

佛山市品牌网站建设公司临沂做网站需要多少钱

神器推荐NLP近几年非常火&#xff0c;且发展特别快。像BERT、GPT-3、图神经网络、知识图谱等技术应运而生。我们正处在信息爆炸的时代、面对每天铺天盖地的网络资源和论文、很多时候我们面临的问题并不是缺资源&#xff0c;而是找准资源并高效学习。但很多时候你会发现&#xf…

基于MATLAB实现基于距离的离群点检测算法

一、核心方法与MATLAB实现 1. k近邻(k-NN)距离法 原理:计算每个点到其k个最近邻的平均距离,距离显著大于其他点的视为离群点。 代码实现: function outliers = kNN_OutlierDetection(data, k, threshold)% 输入:…

国产DevOps工具链的突围之路:Gitee如何重塑企业研发效能

国产DevOps工具链的突围之路:Gitee如何重塑企业研发效能 在数字化转型的浪潮席卷全球之际,企业研发效能已成为决定市场竞争力的关键因素。DevOps作为连接开发与运维的桥梁,正在经历从概念到实践、从国外到本土的深刻…

阿里云抵御CC攻击利器边缘安全加速ESA

CC攻击对于网站来说,是一件很头疼的事情, 但是现在不同了,最近阿里云搞活动,每周都领取ESA基础版,领取链接:http://s.tb.cn/e6.0Fu67m 基础版支持10万QPS CC攻击防护。 测速效果也不错

生产者-消费者问题

生产者-消费者问题 系统中有一组生产者进程和一组消费者进程,生产者进程每次生一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用 生产者和消费者共享一个初始为空,大小为n的缓冲区 缓冲区没有满的时…

Manim实现闪电特效

本文将详细介绍如何使用Manim框架来实现一个逼真的闪电特效。 1. 实现原理 闪电特效通过LightningAnimation类实现,该类继承自Manim的基础Animation类, 主要基于以下几个核心原理: 1.1. 折线生成与随机偏移 闪电的基…

WordPress会员密码查看seo站内优化站外优化

WPF开源的UI框架有很多,如HandyControl、MahApps.Metro、Xceed Extended WPF Toolkit™、Modern UI for WPF (MUI)、Layui-WPF、MaterialDesignInXamlToolkit、等等,今天小编带大家认识一款比较常用的kaiyuanUI---WPF UI,这款ui框架美观现代化,用起来也超级方便, 界面展示…

网站优化排名易下拉系统实训网站建设的总结

这篇文章给出现在最方便的MODIS数据下载方法。 传统的方式通过访问NASA的数据中心&#xff1a;https://ladsweb.modaps.eosdis.nasa.gov/ 具体方法可以参考我前面的一篇文章&#xff1a;https://blog.csdn.net/qq_39085138/article/details/116302600 但是可以发现如果想要处理…

QAction的使用

QAction 配合 QMenu 使用 可以通过 AddAction 加入 QMenuauto action = new QAction("Test");action->setCheckable(true);auto menu = new QMenu(this);menu->addAction(action);setContextMenuPolic…

Gitee:中国开发者生态的数字化转型加速器

Gitee:中国开发者生态的数字化转型加速器 在数字化转型浪潮席卷全球的当下,中国开发者正迎来前所未有的机遇与挑战。作为本土领先的代码托管平台,Gitee凭借其独特的本土化优势、全流程工具链和坚实的安全架构,正在…

flow.tcl

setenv NETLIST_VER VHDL0113_1353 ##setenv NETLIST_VER VHDL1224_1501source ../scr/init.tcl##global clearGlobalNets globalNetConnect VCC1V8 -type pgpin -pin VDD -all -override -verbose -netlistOverride …