$fscanf 对文本文件中数据格式的限制
时间:10-02
整理:3721RD
点击:
in = $fopen("mem_init.txt","r");
fio_status = $fscanf(in, "%h %s %h", addr, _char, data);
1, 如果mem_init.txt 中的内容是 (0<<25)+(1b6e<<10)+c0 , 会报错
2, 如果mem_init.txt 中的内容是6DB8C0, 一切ok
fio_status = $fscanf(in, "%h %s %h", addr, _char, data);
1, 如果mem_init.txt 中的内容是 (0<<25)+(1b6e<<10)+c0 , 会报错
2, 如果mem_init.txt 中的内容是6DB8C0, 一切ok
你的想法是fscanf会帮你计算,但是实际上你只是告诉它这是个文件,把它读进来!你又没跟它说要计算!那它就告诉你:我读进来的是 “(0<<25)+(1b6e<<10)+c0”字符串!
标题
请问如果要计算,该怎么用呢
reg [63:0] cal_ans ;
reg [7:0] reg1, reg2,reg3;
---------------------------------------------------------------------
initial begin
in = $fopen("mem_init.txt","r");
fio_status = $fscanf(in, "%h %h %h", reg1, reg2, reg3);
cal_ans = (reg1<<25) + (reg2<<10) + reg3 ;
end
--------------------------------------------------------
在編輯檔案 mem_init.txt 時需注意一下以空白隔開資料
reg1 reg2 reg3
不確定是否回答到您的提問
