systemverilog $fscanf

在systemverilog中读取如下文件

file.txt

内容

addr  12345678
data  aa55aa55
attri  cececece

并把这些键值对存储在一个hash数组h_array[string]中.

在读入后,再遍历一次数组,通过打印检测是否读取成功。

 

相关代码如下:

 

program file_read;
integer file;
string  variable;
reg [31:0] value;
reg [31:0] h_array [string] ;
initial
begin:file_block
        file=$fopen("file.txt","r");
        if (file == 0)

                disable file_block;

        while(!$feof(file))
        begin
                $fscanf(file,"%s %h/n",variable,value);
                h_array[variable] = value;
        end

        $fclose(file);


        //check read result.
        foreach (h_array[i])
        begin
                $display("hash index %0s value %0h",i, h_array[i]);
        end
end
endprogram

 

用vcs编译后,运行,输出如下结果

hash index addr value 12345678
hash index attri value cececece
hash index data value aa55aa55

猜你喜欢

转载自blog.csdn.net/Holden_Liu/article/details/100122290