vh(vhd是什么意思)
最后更新 :2023-03-28 11:40:34
TCL练习6:通过递归方法搜索文件夹并返回指定后缀文件
写这个TCL脚本的主要目的是搜索目标文件夹及其子文件夹下的所有文件,然后记录在指定的文件中。可以指定目标文件夹名称、信息记录位置和文件后缀等3种参数。
该脚本将用于Vivado的non-project编译过程,被综合和布线脚本调用。
define.tcl中定义了目标文件夹名称、信息记录位置、文件后缀类型、器件part等信息。findAllFiles.tcl脚本根据define.tcl中的参数搜索目标文件夹,当文件后缀类型参数(ext)为.hdl时,会搜索.v、.vh、.vhd、.sv等文件的路径和名称,并记录在./Tcl/code.rd中;当文件后缀类型参数为.xdc时,会搜索.xdc文件,并记录在./Tcl/cons.rd中。设计代码放置在srcs文件夹中,约束文件放置在constraints文件夹中。如果没有分类放置也可以正确识别。
set part "xcvu3p-ffvc1517-2-e"
set srcsPath "../srcs"
set consPath "../Constraints"
set codeRec "./code.rd"
set consRec "./cons.rd"
set codeExt ".hdl"
set consExt ".xdc"
set top "Top"
set synthDir "$top.synth"
set synthLog "synth.log"
set synthDcp "_synth.dcp"
以下是findAllFiles.tcl的内容。
source ./define.tcl
set status [catch {set codeF [open $codeRec w+]} msg]
if {$status} { puts $msg }
proc findFiles { dir result ext } {
if {![file exists $dir] || ![file isdirectory $dir]} {
return -code error "File not exists or not a directory."
}
# 使用以下方式获得文件名称将不包含路径,在通过if {[file isfile $f]}判断时是无法索引到该文件的,所以无法进入该条件
# set files [glob -nocomplain -directory $dir/ -tails *]
set files [glob -nocomplain -directory $dir/ *]
foreach f $files {
if {[file isfile $f]} {
# 根据ext参数匹配不同后缀的文件,记录.v .vh .vhd .sv文件
if {[string match $ext $::codeExt]} {
set fExt [file extension $f]
if {[expr {$fExt==".v"}] || [expr {$fExt==".vh"}] || [expr {$fExt==".vhd"}] || [expr {$fExt==".sv"}]} {
# glob 返回的文件是带有路径的,除非使用-tails
puts $f
puts $result $f
}
} elseif {[string match $ext $::consExt]} {
# 记录xdc文件
set fExt [file extension $f]
if {[expr {$fExt==".xdc"}]} {
# glob 返回的文件是带有路径的,除非使用-tails
puts $f
puts $result $f
}
}
} elseif {[file isdirectory $f]} {
# 递归
findFiles $f $result $ext
}
}
}
# 在tcl脚本中完成文件的写操作后一定要close文件,否则文件中不会写入任何内容。
findFiles $srcsPath $codeF $codeExt
close $codeF
set status [catch {set consF [open $consRec w+]} msg]
if {$status} { puts $msg }
findFiles $consPath $consF $consExt
close $consF
以上代码经过测试可以找出并分类存储指定的文件类型,可搜索所有子文件夹。所有tcl文件放置于Tcl文件夹中,srcs和constraints放置在与Tcl同级的目录中。
————————————————
版权声明:本文为CSDN博主「小苍蝇别闹」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
https://blog.csdn.net/yinyeyy/article/details/115666182
- END -
卑弥呼(卑弥呼在日本的地位)
三国杀移动版宝珠?150史诗宝珠兑换神曹操100史诗宝珠兑换灵雎100史诗宝珠兑换鲍三娘99史...
用亮眼的黄色卫衣,展现你的青春率性_紧身_牛仔裤_
原标题:用亮眼的黄色卫衣,展现你的青春率性黄色是非常明亮的颜色,本身就有很好的效果。 将...