在用Modelsim仿真时,testbench设计时常会用到系统任务$readmemb和$readmemh,可以从txt文件读取二进制或者是十六进制数据,作为仿真激励。原始数据的生成可以借助Matlab实现,通过Matlab可以生成需要的波形,Matlab中的fopen和fprintf函数可以生成txt格式文件,并将波形数据以整型(%d)实数(%f)十六进制(%x)格式存入txt文件,但是需要注意的是%b不能输出数据,在此是backspace的意思而不是binary的意思。
1.生成的波形
2.Matlab程序
N=512;
a(1:1:N)=0;
for b=1:128
a(b)=round(127*sin(2*pi*(b-1)/127))+127;
end
stem(1:512,3*a);
axis([0 130 0 1024]);
fid=fopen('C:\Users\Administrator\Desktop\sin_data.txt','W');%把数据写入sin_data.txt文件中,如果没有就创建该文件
fprintf(fid,'%b,',3*a);
fclose(fid);
3.TXT文件内生成的数据