2014-11-22 50 views
2

我试图读取包含整数的文本文件。我在项目文件夹中有这个txt文件。我正在尝试使用此代码,但由于$fgetc,它正在变为char。现在我想要做的是如何从文本中获取整数?将文件读入Verilog

这里是代码:

integer file; 
reg [31:0] char; 

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

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

+0

[相关问题](http://stackoverflow.com/q/16630319/97073) – Morgan 2014-11-22 14:57:00

+0

@Morgan 它给出的“语法错误附近的‘签名’的错误。如果我删除签名提示错误“逻辑是一个未知的类型” 那么我在哪里可以做错误? – 2014-11-22 16:18:52

+0

他们签名是从2001年开始的verilog的一部分,逻辑是一个SystemVerilog类型,如果你可以编辑问题并添加模拟器, ,听起来像你的verilog-95。 – Morgan 2014-11-22 16:39:55

回答

5

此解决方案是posted previously using SystemVerilog,编辑verion在这里为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 
+0

谢谢!@Morgan 而且我正在使用Verilog!:) – 2014-11-22 18:59:18