Verilog的数据读入
Verilog数据读入
数据读入方式有寄存器阵列形式的一次装入,也有类似C语言的文件读写操作
存储器装入数据
$readmemh("file_name.mem",mem);
//16进制数据读入
$readmemb("file_name.mem",mem);
//2进制数据读入
Vivado环境下,执行前将数据文件file_name.mem添加到工程中即可(Add Source)
这种装入方式是将2进制类型文件,逐行的填入mem中。
不能识别十进制数,如“-5”
文件读写
读写过程与C语言操作类似
fp_r1 = $fopen("source.dat","r"); //打开名为source.dat的文件,读
fp_r2 = $fopen("data.dat","r"); //打开名为data.dat的文件,读
for(i=0;i<N;i=i+1)
flag1 = $fscanf(fp_r1,"%d",source[i]);//逐行读出
for(i=0;i<N;i=i+1)
flag2 = $fscanf(fp_r2,"%d",Sout[i]);
若打开失败$fopen()返回值为0
同样,Vivado下要把两个数据文件加入到工程当中。
此方式可以读入十进制有符号数,转为二进制保存在寄存器阵列中