本文档首要解说完结一个1024点的16位正弦波数据的生成,并将该数据制造成quartus II运用的mif文件,运用此文件,咱们便能够运用FPGA,根据直接数字组成(DDS)原理生成规范的正弦波,即完结信号发生器的功用。小梅哥的DDS试验现已做完,现在还没有进行文档的编写。朋友今日约请我为他制造一个1024点的16位的正弦波mif文件,完结之后,发现进程中涉及到MATLAB软件、Excel软件、Quartus II软件的运用,每个进程简略,可是过程较多,因而在这儿以文档的办法记录下来,共享给需求的朋友。
首要,翻开MATLAB软件,小梅哥这儿运用的版别为MATLAB 2012b。新建一个Script文件,操作为File —>New—>Script。在该文件中输入以下内容:
F1=1; %信号的频率
Fs=1024;%采样频率
P1=0;%信号初始相位
N=1023;%采样点数为N+1
t=[0:1/Fs:N/Fs];%采样时间
ADC=32767;%直流重量
A=32767;%信号起伏
s=A*sin(2*pi*F1*t + pi*P1/180) + ADC;%生成信号
plot(s);%制作图形
即可生成咱们所需求的数据,其间最终一行为制作图形,是为了验证咱们所生成的数据是否满足要求,不是必定需求。输入完结今后,点击“save and run”按钮,如下图所示。
将文件保存在你自己的途径下面,命一个有意义的姓名,这儿我暂时保存在桌面,命名为sin16_1024。保存后会弹出如下所示的对话框,挑选Add to Path即可。
随后,会弹出如下所示的界面,该界面便是以咱们出产的数据为值,t为时间轴制作出来的波形,从波形可知为规范的正弦波,你也能够经过扩大缩小来具体检查几个极点的值,以确认数据是否在自己预期的范围内。这儿,咱们直接关掉该界面即可。
这个时分,咱们在MATLAB主界面中,右侧的workspace栏中,选中name为s的一项,双击,便可翻开该数组的值,如下所示:
将该表格中的一切数据选中(可选中第一个数据,然后将进度条拉到最终一个数据的方位,按下键盘上的shift键,鼠标点击最终一个数据,便可全选了),单击右键,仿制即可。然后翻开execl软件,选中A1单元格,ctrl+V(张贴),即可。
在表格中,咱们会发现,这些数据是带有2位小数位的,如下图所示:
而咱们的mif文件不支持小数,因而需求将这些数据进行四舍五入。四舍五入的办法十分简略咱们只需求选中行1(在数字1处点击鼠标左键即可选中),单击鼠标右键,挑选设置单元格格局,如下图所示:
在弹出的界面中选中“数字”选项卡,挑选“数值”,在“小数位数”处输入0,点击确认,即可。具体如下图所示:
设置完结之后咱们再看,发现表格中的数据现已悉数被四舍五入了,此刻的数据,便是咱们能够运用的数据了。如下所示:
此刻,咱们现已完结了mif文件所需数据的生成作业,咱们能够将这个表格文件保存,也能够直接开着,不必封闭就行,由于这个文件仅仅一个中转。下一步,便是将这些数据生成咱们所需求用到的mif文件了。
翻开quartus II软件,挑选file—>New,在翻开的选项卡中,挑选Memory Initialization File,点击OK。在弹出的mif文件巨细设置选项卡中,设置Number of Words为1024,Word Size为16,点击OK即可,具体如下所示:
此刻,就会树立好一个空白的mif文件,其间一切内容均为0,如下图所示:
咱们将excel表格中的数据选中(可选中第一个数据,然后将进度条拉到最终一个数据的方位,按下键盘上的shift键,鼠标点击最终一个数据,便可全选了),单击右键,仿制即可。然后回到quartus II的mif修改界面,在mif文件的恣意一个数据方位点击鼠标左键,然后按下键盘上的组合键ctrl + A(也便是全选),然后单击鼠标右键,挑选paste即可。如下图
此刻,咱们发现,一切数据便顺次存入了相应的地址中,如下图所示:
咱们点击quartus II软件界面上的file—>save,挑选你需求存储的途径,这儿小梅哥暂时存储在桌面上,将文件名命名为sin16_1024,即完结了咱们一切的作业。由于小梅哥这儿没有创立工程,所以保存完结后quartus II软件会弹出以下界面,问你是否需新建工程,这儿小梅哥仅仅做演示用,不需求新建工程,因而这儿挑选NO。
最终,附上朋友选用该mif文件生成的正弦波的仿真波形图:
使用此文件,就能够开端你的DDS规划啦。