文件返回不见怎么办(文件返回不见怎么办呢)写这个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文件夹中。如果没有分类放置也可以正确识别。setpart"xcvu3p-ffvc1517-2-e"setsrcsPath"../srcs"setconsPath"../Constraints"setcodeRec"./code.rd"setconsRec"./cons.rd"setcodeExt".hdl"setconsExt".xdc"settop"Top"setsynthDir"$top.synth"setsynthLog"synth.log"setsynthdcp"_synth.dcp"以下是findAllFiles.tcl的内容。source./define.tclsetstatus[catch{setcodeF[open$codeRecw+]}msg]if{$status}{puts$msg}procfindFiles{dirresultext}{if{![fileexists$dir]||![fileisdirectory$dir]}{return-codeerror"Filenotexistsornotadirectory."}#使用以下方式获得文件名称将不包含路径,在通过if{[fileisfile$f]}判断时是无法索引到该文件的,所以无法进入该条件#setfiles[glob-nocomplain-directory$dir/-tails*]setfiles[glob-nocomplain-directory$dir/*]foreachf$files{if{[fileisfile$f]}{#根据ext参数匹配不同后缀的文件,记录.v.vh.vhd.sv文件if{[stringmatch$ext$::codeExt]}{setfExt[fileextension$f]if{[expr{$fExt==".v"}]||[expr{$fExt==".vh"}]||[expr{$fExt==".vhd"}]||[expr{$fExt==".sv"}]}{#glob返回的文件是带有路径的,除非使用-tailsputs$fputs$result$f}}elseif{[stringmatch$ext$::consExt]}{#记录xdc文件setfExt[fileextension$f]if{[expr{$fExt==".xdc"}]}{#glob返回的文件是带有路径的,除非使用-tailsputs$fputs$result$f}}}elseif{[fileisdirectory$f]}{#递归findFiles$f$result$ext}}}#在tcl脚本中完成文件的写操作后一定要close文件,否则文件中不会写入任何内容。findFiles$srcsPath$codeF$codeExtclose$codeFsetstatus[catch{setconsF[open$consRecw+]}msg]if{$status}{puts$msg}findFiles$consPath$consF$consExtclose$consF以上代码经过测试可以找出并分类存储指定的文件类型,可搜索所有子文件夹。所有tcl文件放置于Tcl文件夹中,srcs和constraints放置在与Tcl同级的目录中。————————————————版权声明:本文为CSDN博主「小苍蝇别闹」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/yinyeyy/article/details/115666182