1

我有一个行为模拟,它在模拟后将所有需要的信息存储在 .txt 文件中。我需要使用不同的参数运行这个模拟大约 8000 次以上,这些参数是在 MATLAB 中生成的。我想运行具有不同参数的 TCL 脚本。到目前为止我所拥有的:

在 MATLAB 中,我使用以下参数以批处理模式调用 Vivado:

system('C:/Xilinx/Vivado/2015.4/bin/vivado -mode batch -nojournal -nolog -notrace -source E:/Projects/Vivado/Test_Files/VivTCLstim.txt -tclargs 256 32 15 25790');

TCL 脚本如下所示:

open_project E:/Projects/Vivado/THD/THD_VHDL.xpr
set_property top tb_THD [get_filesets sim_1]
set_property top_lib xil_defaultlib [get_filesets sim_1]
set_property generic N=[lindex $argv 0] [get_filesets sim_1]
set_property generic DWIDTH=[lindex $argv 1] [get_filesets sim_1]
set_property generic ITER =[lindex $argv 2] [get_filesets sim_1]
launch_simulation
run [lindex $argv 3] ns
close_sim

但是,Vivado 似乎没有更改这些值。它始终运行 1000 ns 的仿真(默认设置)并使用默认设置在 .vhd 文件中的通用参数。我还尝试通过 GUI 设置通用参数,如下所示http://www.xilinx.com/support/answers/64118.html(这是我从中获得 TCL 命令的地方),但仿真参数没有改变。可能是什么原因?我的脚本和在批处理模式下进行模拟的方法是否正确?

4

1 回答 1

0

您无需通过 Vivado 运行仿真。Vivado 为仿真中的每个步骤提供命令行工具:

  • VHDL 源文件编译 => xvhcomp
  • 细化 => xelab 和
  • 模拟运行 => xsim

第一步可以跳过,因为xelab也可以触发编译步骤。您只需要提供一个包含所有需要的 VHDL 源文件的 *.prj 文件。

vhdl mylib my/source/file1.vhdl
vhdl mylib my/source/file2.vhdl
vhdl test  my/source/testbench.vhdl

您可以为模拟提供顶级泛型,当然,您可以在批处理模式下为 xsim 提供您自己的 Tcl 文件。我围绕这些工具编写了一个 Python 包装器来控制模拟运行中的所有步骤,它运行良好:)。

于 2016-04-20T12:49:38.910 回答