verilog 仿真时读取txt文件
2024-08-25 07:22:42
reg [:]data;
initial begin
# clk =;
forever # clk = ~clk;
end
initial begin
# rst=;
# rst=;
end
reg [:]data_sin[:]; ////改动点数据矩阵长度设置
integer i;
initial
begin
i=;
begin
$readmemb("D:/Chapter_8/E8_1_QAMModem/QAM.txt",data_sin,,); ///改动点数据矩阵长度 注意是“/” 而不是“\”
end
forever
begin
@(posedge clk)
begin
i <= i+;
din <= data_sin[i];
end
end
end
endmodule
matlab 写txt文本的代码
fid = fopen('data.txt','w');
for oo=1:1:i
if mod(oo,10) == 0
fprintf(fid,'%f,%f,\n',sI1(oo),sQ1(oo));
else
fprintf(fid,'%f,%f,',sI1(oo),sQ1(oo));
end
end
fclose(fid);
verilog 对应的写文件,写入IQ数据
integer file_out;
initial
begin
file_out = $fopen("mI.txt");
if (!file_out) begin
$finish;
end
end wire signed [:] dout_s = fifo_fft_data[:]; always @ (posedge clk)
begin
if(fifo_fft_valid)
$fdisplay(file_out, "%d", dout_s);
end integer file_out_Q;
initial
begin
file_out_Q = $fopen("mQ.txt");
if (!file_out_Q) begin
$finish;
end
end wire signed [:] dout_s_Q = fifo_fft_data[:]; always @ (posedge clk)
begin
if(fifo_fft_valid)
$fdisplay(file_out_Q, "%d", dout_s_Q);
end
对应以上文件的matlab 读取数据:
%读取FPGA仿真出的数据
clc;
clear;close all; fid=fopen('mI.txt','r');
[di,N]=fscanf(fid,'%lg',inf);
fclose(fid);
fid=fopen('mQ.txt','r');
[dq,N]=fscanf(fid,'%lg',inf);
fclose(fid);
exp1=di+dq*1i;
% exp2 = exp1(25000:30000);
% exp2 = exp1(1024:8192);
exp2 = exp1;
plot(di);
figure;
plot(dq);
figure;
plot(20*log10(abs(fft((exp2).* window(@gausswin,length(exp2),4)))));
最新文章
- 实用SQL语句大全
- JAVA String,StringBuffer与StringBuilder的区别??
- HTML5学习生涯1--touchmove中遇到的问题
- HTTP协议概述
- BZOJ 1071组队
- Android-给另一个Activity传递HashMap
- Debug your C# project more efficiently
- poj2926 曼哈顿最远距离
- 【NFS项目实战二】NFS共享数据的时时同步推送备份
- Apache+mod_encoding解决URL中文编码问题
- vue-cli脚手架npm相关文件解读(3)webpack.dev.conf.js
- MySQL 中如何存储 emoji ?
- React学习笔记(一)- 环境搭建
- UVa 297 四分树
- signapk
- 把oracle数据库恢复到某个时间点或者某个scn
- Tensorflow中张量数据类型的转换
- 【Golang 接口自动化07】struct转map的三种方式
- Python 安装环境
- 将expression转化为数据类型int时发生算术溢出错误