使用 Modelsim .do 文件,如何使用 vcom 编译文件列表

With Modelsim .do file, how to compile a list of files using vcom

在 Modelsim .do 文件中, 我试过了:

vcom file1.vhd file2.vhd

效果很好。

但是当我尝试时:

set comp_files "file1.vhd file2.vhd"
vcom $comp_files

它没有用,我得到一个错误:

Error: (vcom-7) Failed to open design unit file "file1.vhd file2.vhd" in read mode.

有人知道如何让 comp_files 工作吗?

因此:set comp_files "file1.vhd file2.vhd" 创建一个列表。

尝试 llength $comp_files 它会 return "2" = 两个元素。

因此您可以为列表中的每个文件调用 vcom

foreach comp_file $comp_files { vcom $comp_file }

您必须使用 {*} (Tcl 8.5) 将列表 comp_files 扩展为单个参数:

set comp_files "file1.vhd file2.vhd"
vcom {*}$comp_files

或者,您可以使用旧版 eval(也应该适用于 < 8.5 的 Tcl 版本):

set comp_files "file1.vhd file2.vhd"
eval vcom $comp_files