我的函数 $readmemh 有问题

问题描述 投票:0回答:2

我的功能有问题

$readmemh

仅当我写入文件的完整路径时它才起作用,但是当我写入文件名时它不起作用。 如何解决这个问题而不写完整路径,以便我可以在多个设备之间传输代码而不需要每次都更改代码?

//第一次尝试:

 initial
 begin
     $readmemh("dataMemory_init.mem", dataMemory); // Read data from hex file and initialize mem
 end

//第二次尝试

 initial
 begin
     $readmemh("dataMemory_init.txt", dataMemory); // Read data from hex file and initialize mem
 end
verilog system-verilog
2个回答
0
投票

使用符号链接。
在模拟运行的目录中创建一个simlink,指向该文件。
如果这是基于脚本的构建流程,则使用脚本根据脚本已知的上下文创建链接。


0
投票

如果不指定文件的完整路径,模拟器会认为该文件已存在于当前工作目录(运行模拟器命令的目录)中。

如果您将模拟作为脚本的一部分运行(这是常见做法),您可以将文件

dataMemory_init.mem
复制到运行模拟的目录中,或者链接到该文件。这将在运行模拟命令之前完成。

另请参阅这个问题:在文件的全局路径上调用 $readmemh()

© www.soinside.com 2019 - 2024. All rights reserved.