📄 sim_vecfile_gen.m
字号:
%---------这个文件用于产生仿真向量文件 filsim.vec----------%
% f1=150; %
% f2=330; %
% fs=1000; %
% fir_coef=0.5; %
% i=3.1415926; %
% dets=1/fs; %
% fp=fir_coef*fs/2; %
%----------------------------------------------------------------------%
clear;
fid = fopen('..\Quartus\filter.vec','w');
fid_xin=fopen('..\matlab\filter.vec','w');
if (fid==-1 | fid_xin==-1)
disp('Couldn''t open file filsim.vec for writing');
end
sim_end_time=54400;
g_clk_interval=10;
data_in_interval=340;
ad_end_interval=170;
f1=150;
f2=330;
fs=1000;
fir_coef=0.5;
pi=3.1415926;
dets=1/fs;
fp=fir_coef*fs/2; % 滤波器的通带为: 0---0.25*fs %
if f1<fp & f2>fp
disp('%--------The coef is RIGHT!---------%');
end;
gausnoise=0.1*randn(1,161);
for i=0:160;
data_in(i+1)=sin(2*pi*f1*i*dets)+sin(2*pi*f2*i*dets)+gausnoise(i+1);
data_in(i+1)=fix(data_in(i+1)*1024);
xin(i+1)=data_in(i+1);
if (data_in(i+1) < 0)
a=dec2bin(abs(data_in(i+1)),12);
for k=1:12
if a(k)==dec2bin(1)
a(k)=dec2bin(0);
else
a(k)=dec2bin(1);
end;
end;
data_in(i+1)=bin2dec(a)+1;
end;
fprintf(fid_xin,'%d \n',xin(i+1));
end;
fprintf(fid,'START 0;\n');
fprintf(fid,'STOP %d;\n',sim_end_time );
fprintf(fid,'RADIX DEC;\n');
fprintf(fid,'INTERVAL %d;\n', g_clk_interval);
fprintf(fid,'inputs g_clk ;\n');
fprintf(fid,'pattern \n');
fprintf(fid,'0 1;\n');
fprintf(fid,'inputs xin[12..1];\n');
fprintf(fid,'pattern \n');
fprintf(fid,'0> 0 \n');
for i=1:160
fprintf(fid,'%d> %d \n',i*data_in_interval,data_in(i));
end
fprintf(fid,'%d> %d; \n',161*data_in_interval,data_in(161)); %add ;%
fprintf(fid,'inputs clr;\n');
fprintf(fid,'pattern \n');
fprintf(fid,'0>1;\n');
fprintf(fid,'INTERVAL %d;\n', ad_end_interval);
fprintf(fid,'inputs ad_end;\n');
fprintf(fid,'pattern \n');
fprintf(fid,'>0 1;\n');
fprintf(fid,'OUTPUTS z[18..1];\n');
fclose(fid);
fclose(fid_xin);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -