如何将modelsim仿真数据存成文件

目的

如何将modelsim仿真的数据存储成文件供matlab分析,在实际工程应用中很多时候我们需要分析仿真过程中新产生的数据,在用肉眼不能直接观察时就需要将数据存成文件使用第三方软件进行更直观的分析。下面分别使用matlab和modelsim联合仿真,将modelsim的仿真数据存成文件使用matlab对数据进行分析。

verilog代码

`timescale 1ns/1ps

module testbench();

localparam					LEN	=	8192			;

reg		[15:0]				adc_dat[8191:0]			;
reg							clk						;
reg							rst						;
reg		[12:0]				cnt						;
reg		[15:0]				sim_dat					;
reg		[15:0]				wr_cnt					;

initial	begin
	$readmemh("./adc_dat.bin", adc_dat, 0, LEN-1);
end

initial	begin
	clk		= 0;
	rst		= 1;
	cnt		= 0;
	sim_dat	= 0;
	#1000;
	rst		= 0;
end

always	#2.00	clk	=	~clk						;

always@(posedge clk)
begin
	if(rst)	begin
		cnt <= 0;
	end
	else	begin
		cnt		<= cnt + 1;
		sim_dat	<= adc_dat[cnt];
	end
end

integer	fp;
initial	begin
	fp =$fopen("adc_export_dat.bin", "w");
end
always@(posedge clk)
begin
	if(rst)	begin
		wr_cnt <=0;
	end
	else	begin
		if(wr_cnt < 8192)	begin
			wr_cnt <=wr_cnt + 1;
		end
		
		if(wr_cnt < 8192)	begin
			$fwrite(fp, "%d\n", $signed(adc_dat[wr_cnt]));
		end
	end
end
endmodule

从代码中可以看出我们是将文件读进来的数据直接存成文件(文件的读取过程见上一篇文章如何将matlab生成数据导入modelsim进行仿真

matlab分析数据代码

clc;
clear all;
close all;

adc_dat = load('adc_export_dat.bin');
len = length(adc_dat);

subplot(211);
plot(adc_dat);
subplot(212);
fft_data = abs(fft(adc_dat, len));
fft_data = 20*log10(fft_data);
fft_data = fft_data - max(fft_data);
plot(fft_data);

matlab分析数据结果

matlab分析存储文件结果

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值