实验一Sin(x)函数的计算
一、实验要求
1、系统可以根据输入的角度(或弧度)x,显示相应的sin(x)数值,保证角度精度≤0.1度。
2、编辑测试激励文件,进行相关测试,注意测试的完备性。
3、根据DE2板资源,设计下载测试方案,并且完成硬件下载测试。
二、实验方案
本实验要求用FPGA实现角度(0度~360度)的Sin函数的计算,角度的分辨率小于等于0.1度。考虑到实现的简便性,本实验采用查表法实现Sin函数的计算。首先我们用Matlab计算出Sin函数值,然后生成.mif文件。用Matlab生成的.mif文件在Quartus中配置FPGA的Rom。跟具输入的角度值得到其Sin函数值存储的Rom地址,然后根据地址取出Rom中存储的Sin函数值,最后显示在数码管上,从而实现Sin函数的计算。
三、实验过程及代码
1.Matlab中.mif文件的生成
由于输入的角度值为0度~360度,所以计算出的Sin函数值至少有3600个,但由于Sin函数值的对称性,所以实际上存储在FPGA的Rom中的值只需要900个。因此在Matlab中我们设置depth=1024,在这里我们对Sin函数值做了扩大10000倍后四舍五入取整的处理,以便于在Rom中存储,所以在这里我们设置width=14。Matlab中的程序如下:
clear all;
close all;
clc;
t=[0:0.1:90]; %角度
x=pi*t/180; %弧度数
sin_val=sin(x); %sin函数值
fid=fopen('sine.mif','wt'); %以wt格式打开文件sine.mif
fprintf(fid,'width=14;\r\n'); %设置width=14