编写并运行完程序后,使用QUARTUS软件FILES栏中的CREAT SYMBOL FILES FOR CURRENT FILE 命令生成功能模块(如图5。3所示),以便于在BLOCK原理图中调用。
图5。3相位累加器模块
5。4波形储存器的实现
设计需要调用QUARTUS库里的ROM器件,但是存在如何往ROM中写入需要数据的问题,也就是说需要给ROM导入一个MIF文件才行。生成MIF文件有以下两种方式:一是通过QUARTUS新建MIF文件,接着将要写入的数值逐个写入到MIF表,表中存放完ROM的数值后点击保存,然后创建ROM时直接调用即可[12]。采取这种方法的话,在数据量比较小的时候是方便的,然而这次的设计需要采用256*8的ROM,并且每个单元都要存放数据,产生的数据量较大,所以要采取第二种方法,就是用高级语言编写程序生成MIF文件。在这次的设计中我采取用VISUAL C++语言编程的方法,下面是具体的产生MIF文件的VC++程序,以正弦波形幅值为例,代码如下:
#include<iostream。h>来:自[优.尔]论,文-网www.youerw.com +QQ752018766-
#include<math。h>
#include<fstream。h>
void main(void)
{
ofstream os;
os。open("sin。txt");
double d=0,a=2*3。1415926/256;
int i;
for(i=0;i<256;i++)
{
os<<int(127*sin(d)+128)<<endl;
d=d+a;
}
os。close();
}
一般用VC++语言编程得到的正弦波形幅值数据存储在ROM中时,为了储存方便,会将它的X轴和Y轴数值扩大,得到的结果为整数。然后选取256个进行复制,然后在QUARTUSⅡ中新建一个MIF文件,设置字数为2的8次方即256,字符宽为8,然后将从Visual C++中复制的数据粘贴进来