《综合电子系统设计》课程设计报告
(实验一:基于FPGA的DDS信号发生器)
姓名:徐久学号:041401012班级:0414103班
一、实验要求
f1目的:掌握FPGA设计流程和HDL;掌握DDS原理及其FPGA的实现方法。2实验设备:PC机、QuartusII软件、DE2开发板。3实验内容及说明:要求DDS输出的正弦波频率可变,频率变化范围5Hz100kHz,频率步进值小于1Hz。
二、设计原理
相位控制字
频率控制字
M
N位
累加器相位寄存器加法器正弦查找表DACLPF
f0
fc
时钟源
DDS系统的核心是相位累加器,它由一个累加器和一个N位相位寄存器组成。每来一个时钟脉冲,相位寄存器以步长M增加。相位寄存器的输出与相位控制字相加,其结果作为正弦查找表的地址。正弦查找表由ROM构成,内部存有一个完整周期正弦波的数字幅度信息,每个查找表的地址对应正弦波中0360°范围内的一个相位点。查找表把输入的地址信息映射成正弦波的数字幅度信号,加到DAC的输入端,DAC输出的模拟信号经过低通滤波器LPF,可得到一个频谱纯净的正弦波。
三、方案论证及详细设计1系统设计
接口模块
同步模块
运算模块
Si
幅度查询模块
DAC转换模块
图1:系统框图
整个系统由五个模块构成:(1)接口模块,如图2所示。
f图2:接口模块接口模块提供了方便的操作接口:reset复位clk系统时钟(50MHz)clk_e
时钟使能address地址总线(控制数据总线向对应的寄存器输入数据)见表1address2位00011011
表1:地址总线表dataBus数据总线(8位)
寄存器div_reg(时钟分频数)M_regphase_regddse
_reg
说明:在接口模块中,内嵌了一个分频器,来控制输出的fclk。通过判断div_reg中的值,分频值从21000000,通过控制fclk进而提高Δfout,使Δfout1Hz。
(2)同步模块,见图3
是图3:同步模块主要使fclk,M,phase能同时输入给运算模块,避免出现竞争。(3)运算模块,见图4
f图4:运算模块
主要由一个相位加法器和10位加法器构成,最终输出相位值。(4)si
幅度查询模块,见图5
图5:si
幅度查询模块在devC环境下,用C语言生成具有正弦函数关系的数据SIN_ROMexe,再在DOS下执行:“SIN_ROMSIN_ROMmif”。再在文件中加入了头部说明。最后在Quartus中调用了LPM库,生成了si
幅度查询模块。
2系统的顶层逻辑图及DDS的频率精度与频率控制字之间的关系
图6:系统顶层逻辑图在DDS原理中,将一个正弦函数用其相位表示,即2pi。同时将其离散化,分成2N个,M为频率控制字,即为每个fclk时钟,将初始相位与其相加,得到下一个相位r