
replace_external rep

rep set_verbose_level 3
# rep set_plot_enable true
rep set_density $::env(PL_TARGET_DENSITY)

read_lef $::env(MERGED_LEF)
read_def $::env(CURRENT_DEF)

if { $::env(PL_TIME_DRIVEN) } {
	rep set_timing_driven true
	rep import_lib $::env(PL_LIB)
	rep import_sdc ./scripts/base.sdc
	rep import_verilog $::env(yosys_result_file_tag).v
}


rep set_seed_init_enable true
rep init_replace
rep place_cell_nesterov_place
# rep print_instances

write_def $::env(SAVE_DEF)

set hpwl [rep get_hpwl]
exec echo $hpwl >> $::env(replaceio_report_file_tag)_hpwl.rpt

if { $::env(PL_TIME_DRIVEN) } {
	set wns [rep get_wns]
	set tns [rep get_tns]
	puts "TNS after placement $tns"
	puts "WNS after placement $wns"
	exec echo $wns >> $::env(replaceio_report_file_tag)_wns.rpt
	exec echo $tns >> $::env(replaceio_report_file_tag)_tns.rpt
}
