110 lines
3.4 KiB
Tcl

# 本脚本用于搭建设计
# 1. 导入lib
# 2. 导入设计
## ******************** 设置全局环境 ******************** ##
set RTL_PATH /home/project/ASIC/FFT_IFFT_IP/user/src
set PRJ_PATH /home/project/ASIC/FFT_IFFT_IP/prj
set ROOT_PATH /home/project/ASIC/FFT_IFFT_IP
set VERSION v0.3
set F_TEMP -40
## current design / top name
set CURR_DESIGN "top"
set RPT_DIR RPT$VERSION
set OUT_DIR OUT$VERSION
set RPT_OUT [format "%s%s" $PRJ_PATH/ $RPT_DIR]
set RES_OUT [format "%s%s" $PRJ_PATH/ $OUT_DIR]
sh rm -rf $RPT_OUT $RES_OUT
sh mkdir -p $RPT_OUT $RES_OUT
## ******************** 指定设计库文件 ******************** ##
# 设置library寻找的路径 优先导入std和io
set search_path { \
/home/project/ASIC/library/smic180/std/SCC018UG_HD_RVT_V0p3a/syn/1.8v/liberty_ff \
/home/project/ASIC/library/smic180/std/SCC018UG_HD_RVT_V0p3a/syn/1.8v/liberty_tt \
/home/project/ASIC/library/smic180/std/SCC018UG_HD_RVT_V0p3a/syn/1.8v/liberty_ss \
/home/project/ASIC/library/smic180/io/SP018D18RP_V0p7/syn/1p8v \
}
# 依次导入mem library path
foreach mem_path [glob $RTL_PATH/utils/{RAM}/*] {
lappend search_path $mem_path/db
}
# 设置STD library
# SMIC180 G-MS工艺 SCC018UG_UHD_RVT ------- 1.8V
set lib_fast scc018ug_hd_rvt_ff_v1p98_${F_TEMP}c_basic
set lib_type scc018ug_hd_rvt_tt_v1p8_25c_basic
set lib_slow scc018ug_hd_rvt_ss_v1p62_125c_basic
# 设置IO library
# SMIC180 G-MS工艺 SP018D18RP ---- 1.8V core + 1.8V IO + 2.5VT + L
set io_fast SP018D18RP_V0p6_max
set io_type SP018D18RP_V0p6_typ
set io_slow SP018D18RP_V0p6_min
set target_library [list ${lib_fast}.db]
set link_library [list "*" ${lib_fast}.db ${io_fast}.db]
# 设置MEM library
set mem_fast _ff_1.98_${F_TEMP}
set mem_type _tt_1.8_25
set mem_slow _ss_1.62_-40
# 导入MEM library
foreach mem_lib [glob $RTL_PATH/utils/{RAM}/*/db/*$mem_fast.db] {
lappend link_library [file tail $mem_lib]
}
## ******************** 指定设计源文件 ******************** ##
# proc findFiles { path result args } {
# if {![file exists $path] || ![file isdirectory $path]} {
# return -code err "File not exits or not a directory"
# }
# # puts $args
# set paramList [lindex $args 0 end]
# # puts $paramList
# # set files [glob -nocomplain -directory $path/ -tails *]
# set files [glob -nocomplain -directory $path/ *]
# foreach i_file $files {
# if {[file isfile $i_file]} {
# set fileExtName [file extension $i_file]
# foreach i_args $args {
# # puts $fileExtName
# # puts $i_args
# if {$fileExtName == $i_args} {
# # puts $i_file
# set result [linsert [lindex $result end] end $i_file]
# }
# }
# } elseif {[file isdirectory $i_file]} {
# # recursion
# foreach element [findFiles $i_file $result $paramList] {
# set result [linsert [lindex $result end] end $element]
# }
# # puts "once"
# # set result [concat $result [findFiles $i_file $result $paramList]]
# }
# }
# foreach elem $result {
# puts $elem
# }
# return $result
# }
# set res {}
# set res [findFiles $RTL_PATH $res ".v"]
# # foreach elem $res {
# # puts $elem
# # }
# exit
# source user/script/setup.tcl