您现在的位置: 主页 > 电子技术 > EDA > DDS的FPGA实现设计 -
本文所属标签:
为本文创立个标签吧:

DDS的FPGA实现设计 -

来源: 网络用户发布,如有版权联系网管删除 2018-08-08 

[导读]根据图1,并假定相位控制字为0,这时DDS的核心部分相位累加器的FPGA的设计可分为如下几个模块:相位累加器SUM99、相位寄存器REG1、正弦查找表ROM和输出数据寄存器REG2,其内部组成框图如图 2所示。图中,输入信号有时

根据图1,并假定相位控制字为0,这时DDS的核心部分相位累加器的FPGA的设计可分为如下几个模块:相位累加器SUM99、相位寄存器REG1、正弦查找表ROM和输出数据寄存器REG2,其内部组成框图如图 2所示。图中,输入信号有时钟输入CLK,使能端EN,复位端RESET,频率控制字K,输出信号为Q。

图2 DDS内部组成框图

整个DDS模块采用一个时钟,以用来同步各个模块的运算速度。其中相位累加器SUM99是一个带有累加功能的10位加法器,它以设定的10位频率控制字Κ作为步长来进行加法运算,当其和满时,计数器清零,并进行重新运算。相位寄存器REG1就是一个一般的10位寄存器,它对输入端输入的数据进行寄存,当下一个时钟到来时,输出寄存的数据。正弦查找表ROM是DDS最关键的部分,也是最复杂的部分,设计时首先需对正弦函数进行采样,接着将采样的结果放到ROM模块的对应存储单元中,每一位地址对应一个数值,输出为9位。为了保证输出数据的稳定性,我们将ROM的输出数据先寄存在REG2中,待下一个时钟到来时,再将其输出。整个系统各模块是在同步时钟信号CLK的控制下协调工作的。

下面介绍一下正弦查找表ROM模块的具体设计。

首先利用MATLAB或C语言编程对正弦函数进行采样;然后对采样数据进行二进制转换,其结果作为查找表地址的数值。

用MATLAB语言编写的正弦函数数据采集程序如下:

用C语言编写的正弦函数数据采样程序如下:

两个程序运行之后所得结果是一致的。
MATLAB语言编写的正弦函数数据采集程序运行结果如下:

总共是1024个数据。

欢迎转载,信息来源维库电子市场网(www.dzsc.com)



来源:ks990次

本文引用地址: http://www.21ic.com/app/eda/201806/769445.htm



              查看评论 回复



嵌入式交流网主页 > 电子技术 > EDA > DDS的FPGA实现设计 -
 

"DDS的FPGA实现设计 -"的相关文章

网站地图

围观()