我想读取一个包含整数的文本文件,该文本文件存储在项目文件夹中。我试图使用以下代码,但由于$fgetc
它获取的是字符,无法成功读取整数。现在我的问题是如何从文本中读取整数?
以下是代码:
integer file;
reg [31:0] char;
begin
file=$fopen ("Links.txt","rb");
char=$fgetc(file);
$display("char=%d", char);
end
PS:这是我第一次阅读任何文件。
我想读取一个包含整数的文本文件,该文本文件存储在项目文件夹中。我试图使用以下代码,但由于$fgetc
它获取的是字符,无法成功读取整数。现在我的问题是如何从文本中读取整数?
以下是代码:
integer file;
reg [31:0] char;
begin
file=$fopen ("Links.txt","rb");
char=$fgetc(file);
$display("char=%d", char);
end
PS:这是我第一次阅读任何文件。
这个解决方案之前是用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