DSFDG
辨率,设计中fc为FPGA的工作频率,取fc=35MHz。发挥部分要求,频率可实现1Hz的步进,即频率最小分辨率可达1Hz。现取输出频率的最小分辨率为1Hz,易知2n =fc=35000000,可算得n=25.2,我们取n=28位,这样累加器的最小分辨率可达35MHz/228=0.347,连接时将低2位置1(分辨率变为3×0.347=1.041),这样在频率步进时可达到发挥部分步进1Hz的要求。
频率控制字位数:由以上内容知△f=fmin=0.347,输出频率为30KHz的波形时频率控制字FSW由下式得出:FSW=fo/fΔ=86455.33>215=32768,实际设计时取频率控制字的位数为16位。
相位控制字位数:两相正弦波相位之差是靠键盘预置和步进的方法来实现的,移相最大精度与波形表地址精度有关,本系统波形数据存储器ROM中存储了28个数据,则最大移相精度为Δφ360o/256=1.4度,与题目步进1度的要求有0.4度的误差,此误差可以通过增加波形数据数来消除,但这会增加硬件开销。
ROM波形数据表:在一个周期内ωt的取值范围为0~2π,对应y=f(x)形式,即0< x≤2π,则y=sinx(0x<2π≤)。ROM地址范围的大小取决于所要求的数据表精度,地址范围越大数据表越精确,但需要的存储空间越大。在Excel表格中可以用下拉单元格的方式迅速生成地址,本设计中生成256个数据的数据表,地址范围0~255,即波形表中每种波形每周期取256点。首先在A1和B1两格中输入0和2,然后选中此两格,用下拉菜单的方法向后拖动,直到拖到最后一格刚好生成256个数据为止。然后在A2格输出公式“=sin((A1/256)*2* 3.1415926 ) ”,再利用下拉单元格的方式,得到各个地址单元所对应得正弦函数值。以上得到的正弦函数表往往不能被D/A转换器直接利用,需要将其值映射到D/A转换器所能接受的数据空间内。设计中所用D/A转换器为8位,其数据空间是0~255,可以在C1格输入公式“=127.5*(1+B1)”来映射数据,映射后的数据为小数,还须对其取整,即在A3格中输入公式“=INT(C1)”。最后,为使数据表能直接用于Quartus II程序中还须添加文本。添加语法文本可输入“=A1” “=&D1”,再用下拉单元格方法,得到完整的数据表。已生成的带有语法文本的函数表,经复制后可以直接粘贴到用户程序中。
四、FPGA内部逻辑设计
FPGA部分主要负责信号波形的合成,主要由累加器部分、加法器部分和波形数据存储器部分,此部分各原理图见附录部分。
五、硬件电路设计
1.D/A转换模块
本系统数模转换器采用DAC0832,数模转换模块如下图4所示。输出的模拟量 与输入的数字量(DN-1*2N-1+……+D0*20)成正比,这就实现了从数字量到模拟量的转换。输入可有28(=256)个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,只能是256个可能值中的一个。本系统要求输出量是电压,而DAC0832输出的是电流量,所以还必须经过一个外接的运算放大器转换成电压,这里选用OP07集成运放,此运放具有极低的输入失调电压、极低的失调电压温漂能长期稳定工作等特点。