将文件读入Verilog

3

我想读取一个包含整数的文本文件,该文本文件存储在项目文件夹中。我试图使用以下代码,但由于$fgetc它获取的是字符,无法成功读取整数。现在我的问题是如何从文本中读取整数?

以下是代码:

integer file;
reg [31:0] char;

begin 
  file=$fopen ("Links.txt","rb");
  char=$fgetc(file);
  $display("char=%d", char);
end

PS:这是我第一次阅读任何文件。


相关问题 - Morgan
@Morgan 它会报“signed附近的语法错误”。如果我删除sign,它会报错“Logic是未知类型”。 那么我可能犯了什么错误? - Awais Hussain
他们签署的是2001年Verilog的一部分,逻辑是SystemVerilog类型。如果您可以编辑问题并添加您使用的模拟器等信息,那可能会有所帮助,听起来您受限于Verilog-95。 - Morgan
1个回答

6

这个解决方案之前是用SystemVerilog发布的,现在编辑了一个适用于Verilog兼容语法的版本。

integer               data_file    ; // file handler
integer               scan_file    ; // file handler
reg [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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接