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
	}
}
相关推荐
Carol06301 个月前
20240829版图的层次
ic
Lambor_Ma1 个月前
【数字时序】时钟树延迟偏差——CPPR adjustment
ic·芯片设计·soc
Lambor_Ma2 个月前
【ARM】Cortex-A72技术手册(1)
arm开发·架构·硬件架构·ic·soc
Lambor_Ma2 个月前
【ARM】v8架构programmer guide(3)_ARMv8的寄存器
arm开发·架构·硬件架构·ic·fpga·soc·芯片
芯王国3 个月前
ISP IC/FPGA设计-第一部分-SC130GS摄像头分析-IIC通信(1)
fpga开发·ic·接口隔离原则·iic·cmos传感器
relis4 个月前
USB (2)
ic·usb
移知4 个月前
FPGA领域入门佳作,简明深入,夯实基础《FPGA原理和结构》(可下载)
fpga开发·ic·fpga书籍·fpga入门
孤独的单刀5 个月前
基于FPGA的数字信号处理(10)--定点数的舍入模式(1)四舍五入round
fpga开发·ic·xilinx·altera·四舍五入·定点数·浮点数
孤独的单刀5 个月前
基于FPGA的数字信号处理(5)--Signed的本质和作用
fpga开发·ic·verilog·xilinx·altera·signed·unsigned