文档详情

基于ALTERA实现的DDS信号发生器设计.PDF

发布:2017-06-22约2.72千字共4页下载文档
文本预览下载声明
【明德扬】至简设计法 FPGA 培训班:就业班 周末班 网络班 详情可加qq854618250 基于ALTERA 实现的DDS 信号发生器设计 一、功能描述 本工程实现DDS 直接数字式频率合成器,利用正弦波相位线性 增加的特点,产生正弦波和余弦波。本工程主要由 3 部分组成: 相位累加器,相位幅度转换,数模转换器DAC (FPGA 外部实 现)。其中,相位累加器的高10 比特用于ROM 的索引地址。 二、波形调制说明 模块将一个正弦波采样 1024 个点,然后保存到内部一个8 比特、 1024深度的ROM 当中,通过改变时序和相位控制字,即可生成 不同频率的波形。 生成波形的公式是: FO=TCLK*FCW/655360 上面公式中,TCLK 是指本模块的工作时间,FCW 是相位控制字, FO 即是生成的信号频率。 相位控制字FCW 可以改变每次步进数M。如果FCW=128,则模块 内部累加器每次加 128,则经过 M=16’hffff/128=512 个时钟, 就可以循环一个周期,也就是 512 个时钟完成一个正弦波输出。 假如FCW 为256,则代表1024/4=128个时钟周期就输出一个正 弦波。 三、应用举例 设定是FCW=128,CLK=50M 的时钟频率,由公式计算得出 F0=10KHZ。实际测量出一个波形时间s,最终波形 新手学习FPGA 指导及资料下载:/article_cat?id=40 【明德扬】至简设计法 FPGA 培训班:就业班 周末班 网络班 详情可加qq854618250 的频率为10KHZ。 如果是FCW=128,CLK=5M 的时钟频率,由公 式计算得出F0=1KHZ。输出实际测量一个波形时间为 s,最终波形的频率为1KHZ。 如果是FCW=128,CLK=100M 的时钟频率,由公式计算得出 F0=0.2MHZ。输出实际测量一个波形时间为5167188ps,最终波 形的频率为0.2MHZ。 以此类推,通过对频率控制字的改变来 控制波形频率。 四、平台效果图 五、实现过程 首先根据所需要的功能,工程顶层的输入输出信号列表。 信号名 I/O 位宽 说明 clk I 1 系统工作时钟50M rst_n I 1 系统复位信号,低电平有效 da_clk O 1 输出D/A 工作时钟 cos O 8 输出cos 波形信号 sin O 8 输出sin 波形信号 我们可以把工程划分成三个模块,分别是Sin 相位转波形模块 和Cos 相位转波形模块和相位累加器模块。 1. 相位累加器模块 本模块根据设置好的相位控制字FCW 来进行相位累加,以此控 制波形的相位,sum = sum + fcw;对相位不断累加,然后将累 加的sum 数据实时传到另外两个模块中去 以此本模块实现了相 位累加,并将数据传输给其它模块的功能。 本模块信号列表如下: 信号名 I/O 位宽 说明 clk I 1 相位累加时钟 新手学习FPGA 指导及资料下载:/article_cat?id=40 【明德扬】至简设计法 FPGA 培训班:就业班 周末班 网络班 详情可加qq854618250 rst_n I 1 系统复位信号,低电平有效 fcw I 16 相位控制字 sum O 16 相位累加数据 2.Sin 相位转波形模块 本模块实际上是一个RAM,事先将相位和相应相位上的幅值关 系写入,然后通过从相位累加模块传来的相位累加数据sum 进 行查表,得到对应的幅值,以此当一个sin 波的相位全部转换 一遍后即可得到一个完整的sin 波形。 信号列表如下: 信号名 I/O 位宽
显示全部
相似文档