打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
关于modelsim与matlab联合仿真效果

一,如何将matlab里面进行算法时所用的数据源放到modelsim里面进行调用。

1,将数据用matlab程序转化为二进制并存储到一个data.dat文件里面,这一步中,二进制的位数与verilog程序里面的输入端口的位数相同;data.dat文件名任意定,后缀名不变就行。

下面几句

fp = fopen('data.dat','w');

for i1 = 1:100
     bin_I = int8_to_bin(Routdata(i1));

     fprintf(fpi,'%d',bin_I);
     fprintf(fpi,' ');

end

fclose(fp);

就是将100个数据源中的数据Routdata转化为二进制并存储起来,其中的 int8_to_bin是自己定义的8位的整型数据转化为二进制的函数。

2,在verilog里面打开数据文件data.dat并读取里面的数据。

reg [7:0] mem [99:0];//声明一个数组寄存器,位宽为8位,数组长度为100;

initial

$readmemb("data.dat",mem);//将数据读到数组寄存器中;

reg [6:0] cnt;

always@(posedge clk or negedge rst)

if(!rst)

  cnt <= 7'b0;

else

  begin

    cnt <= cnt + 1'b1;

    inI <= mem[cnt];

  end

这样,inI就作为所设计模块的输入,可以进行modelsim仿真了。

二,如何将modelsim里面的仿真结果输出到matlab进行分析。

1,将modelsim仿真结果写入.txt文件,

integer fid;
initial
fid = $fopen("dataout.txt","w");

reg [6:0] cnt;

always@(posedge clk or negedge rst)

if(!rst)

  cnt <= 7'b0;

else

 if(cnt==7'd100)

    $fclose(fid);

 else

  begin

    cnt <= cnt + 1'b1;

     $fwrite(fid,"%b",out);

  end

  

其中,out为所设计模块处理后的输出,以二进制的形式存储到txt文件中。

2.在matlab中读取数据,进行分析。

fid = fopen('dataout.txt','r');
st = fseek(fid,0,'eof');
n = ftell(fid);
st = fseek(fid,0,'bof');

data_bin = fread(fid,n,'uchar');
fclose(fid);

for i1 = 1:n
    if(data_bin(i1) == 49)||(data_bin(i1) == 48)
        break;
    end
end

这么多语句,先计算长度文件的长度,再将数据读出,主要是因为数据文件中,开头那一部分可能都是x值,要先去掉这些无效的值。

data_start = i1
data_bin1 = data_bin(i1:n);
len_data = length(data_bin1);
i2 = 0;
for i1 = 1:8:(len_data-7)
    i2 = i2 + 1;
    data_int(i2) = bin2int_8(data_bin1(i1+(0:7)));

end
plot(abs(data_int));

这样就可以画出图形进行分析了,其中的bin2int_8是自己定义的将8位二进制转化为10进制有符号数的函数。

综上,可以实现仿真的全过程,1,在matlab中生成数据源。2,在matlab中进行算法仿真,看效果。3,用verilog设计实现算法模块。4,将1中生成的数据转化后,在modelsim里面作为输入,进行modelsim仿真。5将modelsim仿真结果输出,再用matlab进行分析,与2中的结果进行比较。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
matlab与ModelSim联合仿真
用FPGA产生正弦信号
matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭
CCS与Matlab数据交换详解
MATLAB二进制读写实例
Matlab二进制操作
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服