如何处理文本文件作为Verilog模块中的输入?

时间:2019-01-29 08:22:12

标签: verilog system-verilog

显示此警告的病毒码:

  行($ readmemb(“ I:\ my_data_x.txt”,mem);)上的

encoder.v不能为   开放供阅读。请确保该文件在   当前工作目录。

类似$readmemb("I:\my_data_y.txt", mem1);

module encoder(reset,clock,out);
input  reset,clock;
output [7:0]out;
reg [7:0] x,y;
wire [7:0] m,n;
reg [7:0] mem [0:15];
reg [7:0] mem1 [0:15];
integer i=0,j=0;

initial          
    $readmemb("I:\my_data_x.txt", mem);
initial
    $readmemb("I:\my_data_y.txt", mem1);

always@(posedge clock)
    begin
        if(reset)
            begin
                x=0;
                y=0;
            end
        else 
            begin
                x=mem[i];
                i=i+1;
                y=mem1[j];
                j=j+1;
            end
    end

enc en1(m,n,out);
assign m[7:0]=x[7:0];
assign n[7:0]=y[7:0];

endmodule

1 个答案:

答案 0 :(得分:0)

请注意,某些GUI控制的模拟器会在与启动GUI或源代码所在的目录完全不同的目录中启动模拟。

Vivado就是这样的模拟器。我最近注意到路径在版本2017和2018之间发生了变化。切换到2018.2时,模拟会比2017开始更深一个目录。我必须在所有路径中添加“ ../”。

这是我在2018.2中必须使用的路径:       .FILE(“ ../../../../../ testbench / yarp_instr.mem”)

Xilinx目录位于testbench目录旁边:

project +--
        |
        +--- xilinx_project_dir
        |
        +--- testbench

因此,首先找到我们的模拟运行位置,然后从中找到文件所在的路径。