Jea*_*ean 6 verilog environment-variables system-verilog
如何在Verilog中读取环境变量?(在VCS模拟器上运行)
我想要完成
File=$fopen("$PATH/FileName","r");
Run Code Online (Sandbox Code Playgroud)
$ PATH是一个环境变量.
jcl*_*lin 12
您只需使用SystemVerilog DPI获取环境即可.因为它getenv是每个POSIX平台的标准C库,所以您不需要getenv()再次为函数定义实现自己的等效函数.
SV中的示例代码.
import "DPI-C" function string getenv(input string env_name);
module top;
initial begin
$write("env = %s\n", {getenv("HOME"), "/FileName"});
end
endmodule
Run Code Online (Sandbox Code Playgroud)
运行
ncverilog -sv dpi.v
Run Code Online (Sandbox Code Playgroud)
要么
vcs -sverilog dpi.v
Run Code Online (Sandbox Code Playgroud)
它会显示出来
env = /home/user/FileName
Run Code Online (Sandbox Code Playgroud)
在原始问题中还有一个问题,PATH是一个可执行搜索路径的环境,并与":"字符连接.我认为这应该是一个例子,而不是真正的"PATH"环境.否则,您的fopen文件名可能是"/bin:/usr/bin:/usr/local/bin/FileName",这是错误的.
| 归档时间: |
|
| 查看次数: |
15441 次 |
| 最近记录: |