FindFile.tcl の手順を書きました。すべてのサブディレクトリで .v、.sv、および .vhd を検索し、リスト ($tb_file) に追加します。とにかく、それらの一部のみを追加します。おそらく、すべてのファイルを追加する必要があります。
結果: Test_Plan.sv Test_Plan_Copy.sv sim_driver_2.sv 期待される結果: Test_Plan.sv Test_Plan_Copy.sv sim_driver_1.sv sim_driver_2.sv
私
$tb_file
が見つけたもの:2番目の foreach ステートメントに進む前に、リスト内の1つの要素が失われます。
私の FindFile.tcl
proc FindFiles { MY_TB_DIR tb_file } {
set pwd [pwd];
# set tb_file $tb_file
set tb_file $tb_file
# puts "after proc call testbench files are $tb_file"
set MY_TB_DIR $MY_TB_DIR
puts "after proc call tb_dir $MY_TB_DIR"
set dir_file [glob -nocomplain -dir $MY_TB_DIR *];
# puts $dir_file
# set dir_file [glob -nocomplain *]
foreach item $dir_file {
set file [file tail $item];
puts $file;
switch -glob -- $file {
*.v {lappend tb_file $file
puts "Append $tb_file"
}
*.sv {lappend tb_file $file
puts "Append $tb_file"
}
*.vhd {lappend tb_file $file
# puts "Test bench file is $tb_file"
}
default {}
};
set tb_file $tb_file;
};
foreach item2 $dir_file {
# recurse - go into the sub directory
if { [file isdirectory $item2] } {
set sub_dir [file join $MY_TB_DIR $item2] ;
puts "\n\n before proc call $tb_file";
puts " \n\n sub_dir $sub_dir";
FindFiles $sub_dir $tb_file;
# FindFiles $sub_dir
}
};
# puts "Testbench are $tb_file"
cd $pwd
}
アドバイスをお願いします。本当に感謝しています。ありがとう。