(3)加法器电路
改变频率控制字K[3]、K[2]、K[1]、K[0],则会使得显示波形的频率发生改变,由输出频率公式f0=fCK/2N得,相位控制字K越大,则输出频率即波形频率会越大,这里我们需要四个开关分别作为输入,在改进的办法里,我们可以用一个四位二进制加法器作为输入,这样开关数可以由四个减少为一个,另外由此进行推广,可以设计出更高的输出频率,只需要改变加法器的个数即可,如
,
所以可以用两个十进制加法器设计出一个可以得到一百种输出频率的输出波形。
- 8 -
(4)相位寄存器电路
S[11..0]是输入的频率控制字经过累加器后的输出,相位寄存
器的输出与相位控制字相加则形成了相位控制,并且相位寄存器的输出也得作为累加器的另一个输入,才能形成频率控制。 (5)相位控制字
利用一个加法器的计数保持功能可以实现仅由一个开关控制
- 9 -
四位相位控制字,控制开关置为0时,相位控制字保持,相位不变;当控制开关置1时,加法器开始计数,从0000~1111,相位也从0一直变化到
,平均每计数一次变化
,计数满一个周期以后
又开始重复以上步骤,计数频率为1Hz,由48MHz分频得到。 (6)ROM的制作
利用VC程序生成可执行文件,并用其生成mif格式的文件。 Sin.mif制作程序如下: #include”stdafx.h” #include”math.h”
Int main(int argc , char*argv[]) { int i ; double s ;
for(i=0 ;i<4096;i++)
{ s=sin(atan(1)*8*i/4096);
printf(“%d:%x;\\n”,i,(int)((s+1)*1023/2))
}
return 0; }
后用Dos命令生成mif文件
DEPTH=4096; WIDTH=10;
ADDRESS_RADIX=HEX; DATA_RADIX=HEX; CONTENT BEGIN 0:1ff; 1:200; 2:201; 3:201; 4:202; 5:203; 6:204; 7:204; 8:205; 9:206; a:207;
- 10 -
b:208; c:208; d:209; e:20a; f:20b; 10:20c; 11:20c; 12:20d; 13:20e; 14:20f; 15:20f; 16:210; 17:211; 18:212; 19:213; 1a:213; 1b:214; 1c:215; 1d:216; 1e:217; 1f:217; 20:218; ……
进而有ROM如下:
(7)附加之测频显示
测频显示原理图
- 11 -

