位置:51电子网 » 技术资料 » EDA/PLD

DDS的FPGA实现设计

发布时间:2008/10/13 0:00:00 访问次数:817

  根据图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)



  根据图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)



相关IC型号

热门点击

 

推荐技术资料

声道前级设计特点
    与通常的Hi-Fi前级不同,EP9307-CRZ这台分... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!