PT通过size vt修时序脚本

常用到mmmc的情况下通过synopsys的prime time的multisceanrio 模式提高fix 效率

以下内容仅供学习参考

bash 复制代码
##start job:dsubjob + pt_shell -multi_scenario -f setup_size_vt.tcl
set date [exec date +%m%d%H%M]
set work_path setup_fixvt_${date}
sh rm -rf ./$work/*
set_host_options -num_processes 4 -max_cores 32;##num_processes bigger than scenario
start_hosts
###loading session
create_scenario -name fun_0p6_wcz -image location_of_session_1
create_scenario -name fun_0p7_wc -image location_of_session_2
current_session -all
current_scenario -all
##user var setting
set fixsetup 1
remote_execute {
	if {1} {
		set_false_path -from [all_inputs]	
		set_false_path -to [all_inputs]
	}
	set_false_path -through $pin;
	set_false_path -from moduleA/pin1;
	set_false_path -to  moduleB/pin2;
} 
##tools_setting
remote_execute {
	set eco_alternative_area_ratio_threshold 1
	set_app_var timing_save_pin_arrival_and_slack true
	set_app_var read_parasitics_load_location true
	set_app_var eco_enable_more_scenarios_than_hosts true
	set_app_var eco_power_exclude_unconstrained_cells true;#unconstraint path is treated as dont touch
	set eco_strict_pin_name_equivalence true
}
###dont use
remote_excute {
	define_user_attribute pt_dont_use -quiet -type boolean -class lib_cell
	set vars(edi,dont_use) "mesh_* *D36* *SVT"
	foreach item $vars(edi,dont_use) {
		set_user_attribute -class lib_cell [get_lib_cells -quiet */$item] pt_dont_use true	
	}
	set_dont_use [get_lib_cells -quiet */*ULVT] true
}

##dont touch setting
remote_execute {
	set_dont_touch [get_cells -filter "ref_name =~ DCCK*" -hierarchical] true
	set_dont_touch [get_cells -filter "ref_name =~ CK*" -hierarchical] true
	set_dont_touch [get_cells -filter "ref_name =~ ISO*" -hierarchical] true
	set_dont_touch [get_cells -filter "ref_name =~ LVU*" -hierarchical] true
	set_dont_touch [get_cells -filter "ref_name =~ PT*" -hierarchical] true
	set_dont_touch [get_cells -filter "ref_name =~ AP*" -hierarchical] true
	set_dont_touch [get_cells -filter "ref_name =~ SYNC*" -hierarchical] true #同步
	set ck_cell [get_attribute [get_cells -filter "is_clock_network_cell == true" -hierarchical] full_name]
	foreach cell $ck_cell {
		set_dont_touch [get_cells $cell]
	}
}

###setting for size vt
remote_execute {
	my_set_lib_cell_vt_pattern_and_base_ref_name -pattern {SVT LVT ULVT}; vt pattern
	set_app_vareco_alternative_area_ratio_threshold 1 ;##fix timing only by size vt
}

##main proc for size vt
if {$fix_setup} {
	set pins {1 2 3} #define violation endpoint
	fix_eco_timing -type setup -verbose -cell_type combinational -methods size_cell -setup_margin 0.00 -verbose -to $pins -pba_mode ex;#fix_timing only size combinational cell
	fix_eco_timing -type setup -verbose -cell_type sequential -methods size_cell -setup_margin 0.00 -verbose -to $pins -pba_mode ex;#fix_timing only size sequential cell
#fix_eco_timing -type setup -verbose -cell_type combinational -methods size_cell -setup_margin 0.00 -verbose
#fix_eco_timing -type setup -verbose -cell_type sequential -methods size_cell -setup_margin 0.00 -verbose
	remote_execute {
		set date [exec date +%m%d]
		write_changes -format icctcl -output pt_${date}.icc.tcl
		write_changes -format ptsh -output pt_${date}.pt.tcl
		write_changes -format text -output pt_${date}.text.tcl
	}
}
相关推荐
Eloudy2 天前
从源码编译安装 KLayout
人工智能·ic·ic agent
m0_547486668 天前
《CMOS模拟集成电路》全套PPT课件2026
ic·集成电路·模拟集成电路·cmos集成电路
啄缘之间17 天前
5.1 uvm‑component 的层级结构管理? new (name,parent) 参数
开发语言·笔记·学习·ic·uvm·sv
lzx186488437022 个月前
【AH8966】可替代 KP3211 非隔离 AC110220V转12V 0.5A 降压转换芯片
人工智能·单片机·嵌入式硬件·集成测试·硬件工程·ic
lzx186488437024 个月前
锂电池11V升23V 1.2A恒流升压DC-DC转换芯片_AH1102
嵌入式硬件·集成测试·硬件工程·ic
lzx186488437024 个月前
AH1008:一款宽输入10-55V,输出5V/5A的高效同步整流降压DC-DC转换器
嵌入式硬件·集成测试·硬件工程·ic
bu_shuo5 个月前
集成电路(IC)的常见封装形式
ic·集成电路·dip·封装·sop
Eloudy5 个月前
Ubuntu 搭建 Chisel 开发环境备忘
ic·fpga
Eloudy7 个月前
Rubin“零线缆”液冷模组技术介绍
人工智能·ic·arch
FPGA小迷弟8 个月前
京微齐力FPGA联合modelsim仿真操作
fpga开发·ic·verilog·fpga·仿真