如何在systemVerilog中读取文件?

时间:2016-09-01 11:58:09

标签: system-verilog

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

R,ACFE13D5,00000000

W,FE1234AC,00000000

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

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

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

   bit [31:0] addr; 
   bit [31:0] data;

1 个答案:

答案 0 :(得分:4)

使用$ 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