如何在verilog中逐行读取文本文件?

moo*_*ara 3 file-io verilog

我有一个SREC文件,这是一个简单的文本文件,我想在verilog中逐行读取它.我怎样才能做到这一点?

Mor*_*gan 18

以下内容通过文件读取,每个时钟周期1行:预期数据格式为每行一个十进制数.

integer               data_file    ; // file handler
integer               scan_file    ; // file handler
logic   signed [21:0] captured_data;
`define NULL 0    

initial begin
  data_file = $fopen("data_file.dat", "r");
  if (data_file == `NULL) begin
    $display("data_file handle was NULL");
    $finish;
  end
end

always @(posedge clk) begin
  scan_file = $fscanf(data_file, "%d\n", captured_data); 
  if (!$feof(data_file)) begin
    //use captured_data as you would any other wire or reg value;
  end
end
Run Code Online (Sandbox Code Playgroud)