Verilog中的$ fopen函数是否支持用户参数?

时间:2015-03-20 07:23:19

标签: verilog

如何在verilog中使$fopen函数参数化其文件名。

你可以这样看。

handle=$fopen("filenam1");
handle=$fopen("filenam2");
handle=$fopen("filenam3");
...
handle=$fopen("filenam250");
...

我想在RTL内部更改为$ fopen函数参数的参数化像这样。

handle=$fopen("filenam%d",i);

更新:我刚刚尝试实现上面的代码。但是我在这里遇到了编译错误。 string filename; 我该怎么办?

1 个答案:

答案 0 :(得分:2)

烨:

module something();

string filename;

initial begin
    for (int ii=0; ii<20; ii++) begin
        int hFILE;
        $sformat(filename, "file%0d.dat", ii);
        hFILE = $fopen(filename);
        $fclose(hFILE);
    end
end

endmodule

在Verilog 1995中:

module something2();

reg [10*8:1] filename;
integer ii;
integer hFILE; // file handle

initial begin
   for (ii=0; ii<5; ii=ii+1) begin
       $sformat(filename, "file%0d.dat", ii);
       hFILE = $fopen(filename);
       $fclose(hFILE);
   end
 end

 endmodule