Verilog文件名使用FOR循环变量 [英] Verilog filename using for loop variable

查看:36
本文介绍了Verilog文件名使用FOR循环变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题类似于以下问题。 Creating a new file, filename contains loop variable, python

根据NUM_PU的值,我希望将输出文件名定义为

serial_pu0.out
serial_pu1.out
... etc
以下代码不起作用,因为模拟器将引号("")中的字符视为字符串。有什么建议吗?

integer file [0:NUM_PU-1];
generate
    for(i=0;i<NUM_PU;i=i+1) begin : serial_data_gen
        initial begin
            file[i] = $fopen ("serial_pu[i].out", "w");
        end
        always@(posedge i_Clk) begin
            if(serial_wr[i]) begin
                $fwrite (file[i], "%c", serial_data_2d[i]);
                $write("%c",serial_data_2d[i]);
            end
        end
    end
endgenerate

推荐答案

您可以在Verilog(IEEE STD1364)中使用$sformat动态构造文件名字符串:

module tb;

parameter NUM_PU=2;

integer file [0:NUM_PU-1];
genvar i;
reg [999:0] filename;

generate
    for(i=0;i<NUM_PU;i=i+1) begin : serial_data_gen
        initial begin
            $sformat(filename, "serial_pu%0d.out", i);
            file[i] = $fopen(filename, "w");
        end
    end
endgenerate

endmodule

这篇关于Verilog文件名使用FOR循环变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆