Matlab与Quartus接口设计
设计中需要大量的计算,特别是ROM查找表初始化数据的产生,可以借助matlab强大的计算能力。最后的仿真数据也可以用matlab画图直观的观察。
1 相位幅度变换
由于Cyclone系列的FPGA具有丰富的memory资源,本方案中选用4K的RAM
Block构成查找表。在实际的设计中.当我们产生方波的时候则可以直接采用数学计算,没必要构建查找表,从而节约了资源。而产生正弦或余弦信号时,考虑到正弦信号1/4波形对称的性质.只需要存储π/2的正弦采样点,利用数学计算便可以产生2π弧度的正弦波形。这样大大的缩小了ROM.节约了资源。ROM的初始化数据文件为.mif
文件。生成该文件可以借助matlab数学工具,先在matlab里生成正弦信号的采样点数据表格,还需要自己添加程序,下面举例说明。
先编写一段m文件程序,这里以产生216X12正弦波π/2幅度值为例。即在π/2的幅度范围内采样65536个点.每个点的值用12位二进制数表示。在matlab里编写的m文件,
保存的文件名为sin_data.mif。
x=0:1:65535;
y=round(2047*sin(pi*x/131072)) +2048;
%pi*x/131072的范围为0~/2
%改变131072即可改变正弦信号的长度。2048则决定了数据宽度。
fid=fopen('sin_data.mif','W' );
fprinf(fid,'%d:%d;\n' ,x,y);
fclose(fid);
plot(x&