相位累加器核心部分是N位加法器和N位寄存器,其结构如图4。3所示:
图4。3相位累加器的结构示意图
根据到来的时钟脉冲,加法器对前一次寄存器内的累加相位和频率控制字K做加法运算,得到的数据返回到寄存器的数据输入端口。寄存器能够把前一周期得出的相位值返回至累加器的输入端口,这样以后,加法器在后一个周期下再次和K做加法运算[10]。最终,相位累加器不断根据时钟信号累加相位数据,当相位累加器累加超出时则产生一次溢出,然后清0,完成一个周期性的动作,可以据此得到周期计算表达式为: 。
以正弦波信号为例,虽然它的幅度不是线性的,但是它的相位却是线性增加的。根据设计中K的位数,把360度平均分成等份,每转动的角度,就能够得到频率为的相位递增量。因此只需要选择合适的K的值,使得,那么则可产生所需的频率,其过程描述如图4。4所示。
图4。4 根据频率控制字K产生所需频率示意图
4。2。3波形储存器
波形存储器结构描述如下图4。5所示:
图4。5 波形储存器示意图
根据累加器得到的介个作为波形ROM的寻址地址,完成波形从相位到对应幅值的转换,也就是在确定的时钟脉冲处得到输出相应波形的幅码[11]。通过N位码址对应波形ROM中的值就是把0°到360°的正弦信号离散成个样值的序列,假设波形ROM共有D个数据位,那么个样值的幅值就会以D位二进制数的形式存储于ROM内,输出所需信号的波形。
4。2。4 D/A转换器 论文网
D/A转换器(数模转换器)是一个将数字信号(一般用二进制表示)转化成模拟信号(电流、电压或电荷)的电子仪器。与模拟信号不同,数字数据易于传输,操作和存储,但是所需要的设备会相对复杂一些。
D/A转换器工作流程图如下图4。6所示:
4。6 D/A转换器转换流程
D/A转换器是通过内插重建滤波器而不是根据脉冲信号,可以获得连续变化的均匀采样间隔,并不断更新模拟电压的值。它通常被用来将合成后的波的数字量值转化为模拟量值。随着数字的时钟信号,这些数字数据被写入然后顺序锁存,同时D/A转换器输出电压从上次值至由当前锁存数表示的值不断发生快速变化。这样使得输出电压是在时间上保持,直到下一个输入数被锁存,从而产生一个分段常数或阶梯形输出。这等同于一个零阶保持操作,并且对再生信号的频率响应产生效果。正弦幅度量化序列S(n)通过D/A转换输出为包络呈正弦分布,周期为 的阶梯波S(t)。
事实上,DAC的输出分段恒定值序列(被称为样本数据,零阶保持)或矩形脉冲导致高于奈奎斯特频率的谐波倍数。通常,这些被用低通滤波器作为在需要它的应用程序的重建滤波器去除。
5 各个模块的具体功能实现
5。1基本步骤
设计大部分内容都是使用QUARTUS软件完成的,通过VHDL语言编写程序,完成对各模块功能的实现,并得到封装模块,完成模块间的连接,接着进行仿真,然而由于QUARTUS仿真只能看到量化后的数字输出,不能看到大家想要看到的不同波形图形,因此对于QUARTUS仿真结果保存后用MATLAB软件打开作图,这样就可以得到最终波形以及改变频率控制字和初始相位对输出波形、频率造成的影响。
5。2 频率预置与调节电路的实现
这次设计时,不使用开关,而打算通过四根频率控制线起到开关的左右,通过软件置0或1来实现分频控制。下图是通过VHDL语言编写的完成模块功能的程序(程序中各输入输出字母标识符如图5。1所示)。