1.一种改进型DDS信号发生器产生DDS信号的方法,所述的改进型DDS信号发生器包括晶振、FPGA、SRAM和D/A转换器,FPGA接收晶振输入的时钟信号和外部输入的频率字,FPGA进行处理后输入至SRAM,SRAM的输出与D/A转换器信号连接;
所述的FPGA由锁相环、相位累加器和除法器组成;锁相环接收晶振输入的时钟信号,锁相环输出的信号作为相位累加器的时钟,相位累加器接收外部输入的频率字,相位累加器的输出作为除法器的输入,除法器输出信号作为FPGA的输出;
其特征在于该方法包括以下步骤:
步骤A1:将输入到FPGA频率为ƒx 的时钟输入,经锁相环,输出产生频率为ƒclk的CLK_DIV 信号,其中ƒclk频率为ƒx频率的十分之一;
步骤A2:FPGA将外部输入的频率字存入FPGA内建的REG_FW步长寄存器中,将输入的相位初始值存入FPGA内建的REG_PHASE相位寄存器中;
步骤A3:在FPGA中内建相位累加寄存器REG_ACC,设定相位累加器寄存器REG_ACC的初始值为REG_PHASE相位寄存器所保存的数值;
步骤A4:相位累加器寄存器REG_ACC在CLK_DIV信号的上升沿时,以REG_FW步长寄存器中的数值为步长自增,并将相位累加器寄存器REG_ACC对累加器模值取模,即数值M_MAX取模,并将所得的数值存入相位累加器寄存器REG_ACC;
步骤A5:取出相位累加器寄存器REG_ACC中的数值,将相位累加器寄存器REG_ACC的数值乘以36000,再整除累加器模值M_MAX后赋值给正弦ROM存储表地址寄存器ROM_ADDR;
所述的正弦ROM存储表存储在SRAM中;
步骤A6:将正弦ROM存储表内地址为ROM_ADDR中存储的数据输出到D/A转换器的输入端,D/A转换器的输出即为DDS信号。
2.根据权利要求1所述的方法,其特征在于:步骤4中相位累加器寄存器REG_ACC的取模运算实现方法具体是:步骤B1:判断相位累加器寄存器REG_ACC中的数值是否大于累加器模值M_MAX,如果是则执行步骤B2,否则执行步骤B3;
步骤B2:将相位累加器寄存器REG_ACC中的数值减去累加器模值M_MAX后赋值给相位累加器寄存器REG_ACC;
步骤B3:相位累加器寄存器REG_ACC中的数值保持不变。
3.根据权利要求1所述的方法,其特征在于:ƒx时钟输入频率为36MHz。
4.根据权利要求1所述的方法,其特征在于:累加器模值M_MAX为36000000,是36000的整数倍。
5.根据权利要求1所述的方法,其特征在于:步骤A5中正弦ROM存储表地址寄存器ROM_ADDR数值的整除运算使用14级流水线除法器实现。