System verilog 如何在systemVerilog中读取文件?

System verilog 如何在systemVerilog中读取文件?,system-verilog,System Verilog,我有一个包含多行的文件,其结构如下 r、 ACFE13D500000000 w、 FE1234AC,00000000 中间值是hexa-address,最后一个值应该是长度为32位(也是hexa)的数据 读取此类文件并将值输入以下事务原型的简单方法是什么: direction_enum rw; // where- typedef enum { READ = 0, WRITE = 1 } direction_enum;

我有一个包含多行的文件,其结构如下

r、 ACFE13D500000000

w、 FE1234AC,00000000

中间值是hexa-address,最后一个值应该是长度为32位(也是hexa)的数据

读取此类文件并将值输入以下事务原型的简单方法是什么:

  direction_enum   rw;  // where-      typedef enum { READ = 0, WRITE = 1 }                          direction_enum;

   bit [31:0] addr; 
   bit [31:0] data;
使用$fscanf

int fd; // file descriptor
byte mode;
int status;
fd = $fopen("filename","r");
status = $fscanf("%c,%h,%h",mode,addr,data); 
if(status != 3) error;// you did not read in 3 values
case(mode)
"r": rw=READ;
"w": rw=WRITE;
default: error;
endcase

@dave_59-我是否应该添加一些for语句来运行文件中的所有行?@dave_59-因此命令状态=$fscanf(“%c,%h,%h”,mode,addr,data);只扫描第一行,对吗?