if {[catch {

# define run engine funtion
source [file join {/media/d480/Lattice/radiant/2023.2} scripts tcl flow run_engine.tcl]
# define global variables
global para
set para(gui_mode) 1
set para(prj_dir) "/media/d480/GitHubProjects/TssTechnique/TssProjects/TssSemaDuinoQualif/td201_221014/lpddr4_axi/lpddr4_axi_201"
# synthesize IPs
# synthesize VMs
# propgate constraints
file delete -force -- lpddr4_axi_201_impl_1_cpe.ldc
run_engine_newmsg cpe -f "lpddr4_axi_201_impl_1.cprj" "mem.cprj" -a "LFCPNX"  -o lpddr4_axi_201_impl_1_cpe.ldc
# synthesize top design
file delete -force -- lpddr4_axi_201_impl_1.vm lpddr4_axi_201_impl_1.ldc
run_engine_newmsg synthesis -f "lpddr4_axi_201_impl_1_lattice.synproj"
run_postsyn [list -a LFCPNX -p LFCPNX-100 -t BBG484 -sp 9_High-Performance_1.0V -oc Commercial -top -w -o lpddr4_axi_201_impl_1_syn.udb lpddr4_axi_201_impl_1.vm] [list /media/d480/GitHubProjects/TssTechnique/TssProjects/TssSemaDuinoQualif/td201_221014/lpddr4_axi/lpddr4_axi_201/impl_1/lpddr4_axi_201_impl_1.ldc]

} out]} {
   runtime_log $out
   exit 1
}
