多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 说明 在使用vivado进行功能仿真时,经常使用如**$readmemh**的方式读取文件中的数据到寄存器,为了方便项目工程路径发生改变后依旧能直接进行仿真,会考虑使用相对路径的方式来实现数据文件的加载,但是直接在testbeach文件中写相对于testbeach文件的相对路径,仿真时找不到文件路径。 ## 原因 这是因为vivado在进行仿真时,我们写的仿真文件基本都放在了项目工程的**fft_sim.srcs** 下,而仿真时所有文件都会拷贝到项目工程的**fft_sim.sim** 下或者棋子目录下,因此使用相对路径时需要根据实际情况。如果数据文件和我们仿真的testbech文件在同一目录下,我们使用相对路径的方法如下: ```verilog `timescale 1ns / 1ps module tb; parameter DATA_WIDTH = 16; integer i ; //read fft input data to reg reg [DATA_WIDTH - 1 : 0] mem_re[0:4] ; initial begin $readmemh("../../../../fft_sim.srcs/sim_1/new/src.txt",mem_re); for(i=0;i<5 ;i = i +1 ) $display("%h",mem_re[i]); end endmodule ``` ![](https://img.kancloud.cn/bd/61/bd61e0adf520856f180256bd1c981400_1384x809.png)