TCL命令如下:
set fid [open "vivado_included_ip_[version -short].csv" w]
puts $fid "Name;Version"
set ip_catalog [get_ipdefs *]
foreach ip $ip_catalog{ set ipname [get_property DISPLAY_NAME [get_ipdefs $ip]]set iplib [get_property LIBRARY [get_ipdefs $ip]]set ipvers [get_property VERSION [get_ipdefs $ip]]set iplic [get_property REQUIRES_LICENSE [get_ipdefs $ip]]if { $iplic==0 && $iplib=="ip" } {puts $fid "$ipname;$ipvers"}
}
close $fid
运行vivado TCL显示
wrong # args: should be "foreach varList list ?varList list ...? command"
问题在于 { 前面需要有空格分开。