VHDL - Vivado - Vivado 模拟器检索旧文件而不是新生成的文件
VHDL - Vivado - Vivado Simulator retrieve old file instead of the newly generated one
我正在vivado 2020.2中构建一个vhdl项目
我的工作目录位于 O.S 的本地桌面。它具有以下结构:
script\
datasets\
gentestdata.py
testdata\
test_data.txt
src\
<<source files here>>
tst\
<<testbenches here>>
vivado\
<<project directory here>>
我有以下不纯的函数来从脚本生成的文件中加载数据 test_data.txt :
impure function gen_datain(dataset_path: in string) return datain_type is
file text_header: text is in dataset_path;
variable text_line: line;
variable line_i: bit_vector(0 to neuron_rom_width-1);
variable dataset_content: datain_type;
begin
for i in dataset_content'range loop
if i = 101 then
readline(text_header, text_line);
read(text_line, line_i);
else
readline(text_header, text_line);
read(text_line, line_i);
end if;
dataset_content(i) := makesfixed(line_i);
end loop;
file_close(text_header);
return dataset_content;
end function;
文件 test_data.txt 由 Python 脚本 gentestdata.py 自动生成。每次我 运行 这个脚本 test_data.txt 的内容都会改变,在 vivado 环境中加载的数据也会改变,但不知何故,即使旧版本的 test_data.txt 已被替换较新的,模拟器仍然加载旧数据。我该如何解决此问题。我试图关闭 vivado 并重新启动 O.S.
我的问题是,您知道这种行为的原因吗?如何纠正?
谢谢大家
向 GUI 项目添加文件时,Vivado 允许用户 'Copy file to project';对副本说不。涉及一个复选框或单选按钮。 Vivado 将尝试将自己的本地副本埋在其层次结构的某处。 Vivado 可以自由删除和 re-add 它自己的文件夹,如果您的文件是其中的一部分,它可能会变得混乱。
您可能需要重新开始一个新的 Gui 项目,以使该项目处于不修改您的文件的状态。
最终的解决方案是在没有 GUI 的情况下以 non-project 模式使用 Vivado。这在基于 Linux 的脚本驱动环境中比在 Windows 中效果更好。 non-project Vivado 不会弄乱您的文件。
参见:
https://docs.xilinx.com/r/en-US/ug892-vivado-design-flows-overview
有关 trade-offs 项目和 non-project 构建工作流程的更多信息。
我正在vivado 2020.2中构建一个vhdl项目
我的工作目录位于 O.S 的本地桌面。它具有以下结构:
script\
datasets\
gentestdata.py
testdata\
test_data.txt
src\
<<source files here>>
tst\
<<testbenches here>>
vivado\
<<project directory here>>
我有以下不纯的函数来从脚本生成的文件中加载数据 test_data.txt :
impure function gen_datain(dataset_path: in string) return datain_type is
file text_header: text is in dataset_path;
variable text_line: line;
variable line_i: bit_vector(0 to neuron_rom_width-1);
variable dataset_content: datain_type;
begin
for i in dataset_content'range loop
if i = 101 then
readline(text_header, text_line);
read(text_line, line_i);
else
readline(text_header, text_line);
read(text_line, line_i);
end if;
dataset_content(i) := makesfixed(line_i);
end loop;
file_close(text_header);
return dataset_content;
end function;
文件 test_data.txt 由 Python 脚本 gentestdata.py 自动生成。每次我 运行 这个脚本 test_data.txt 的内容都会改变,在 vivado 环境中加载的数据也会改变,但不知何故,即使旧版本的 test_data.txt 已被替换较新的,模拟器仍然加载旧数据。我该如何解决此问题。我试图关闭 vivado 并重新启动 O.S.
我的问题是,您知道这种行为的原因吗?如何纠正?
谢谢大家
向 GUI 项目添加文件时,Vivado 允许用户 'Copy file to project';对副本说不。涉及一个复选框或单选按钮。 Vivado 将尝试将自己的本地副本埋在其层次结构的某处。 Vivado 可以自由删除和 re-add 它自己的文件夹,如果您的文件是其中的一部分,它可能会变得混乱。
您可能需要重新开始一个新的 Gui 项目,以使该项目处于不修改您的文件的状态。
最终的解决方案是在没有 GUI 的情况下以 non-project 模式使用 Vivado。这在基于 Linux 的脚本驱动环境中比在 Windows 中效果更好。 non-project Vivado 不会弄乱您的文件。
参见:
https://docs.xilinx.com/r/en-US/ug892-vivado-design-flows-overview
有关 trade-offs 项目和 non-project 构建工作流程的更多信息。