- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《综合电子系统设计》课程设计报告
(实验一:基于FPGA的DDS信号发生器)
姓名:徐久赟
学号:041401012
班级:0414103班
实验要求
1) 目的:掌握FPGA设计流程和HDL;掌握DDS原理及其FPGA的实现方法。
(2) 实验设备:PC机、Quartus II软件、DE2开发板。
(3) 实验内容及说明:要求DDS输出的正弦波频率可变,频率变化范围5Hz-100kHz,频率步进值小于1Hz。
设计原理
DDS系统的核心是相位累加器,它由一个累加器和一个N位相位寄存器组成。每来一个时钟脉冲,相位寄存器以步长M增加。相位寄存器的输出与相位控制字相加,其结果作为正弦查找表的地址。正弦查找表由ROM构成,内部存有一个完整周期正弦波的数字幅度信息,每个查找表的地址对应正弦波中0~360°范围内的一个相位点。查找表把输入的地址信息映射成正弦波的数字幅度信号,加到DAC的输入端,DAC输出的模拟信号经过低通滤波器(LPF),可得到一个频谱纯净的正弦波。
方案论证及详细设计
1.系统设计
图1:系统框图
整个系统由五个模块构成:
(1)接口模块,如图2所示。
图2:接口模块
接口模块提供了方便的操作接口:
reset:复位
clk:系统时钟(50MHz)
clk_en:时钟使能
address:地址总线(控制数据总线向对应的寄存器输入数据)见表1
address(2位)
寄存器
00
div_reg(时钟分频数)
01
M_reg
10
phase_reg
11
ddsen_reg
表1:地址总线表
dataBus:数据总线(8位)
说明:
在接口模块中,内嵌了一个分频器,来控制输出的fclk。通过判断div_reg中的值,分频值从2——1000000,通过控制fclk进而提高Δfout,使Δfout1Hz。
同步模块,见图3
是图3:同步模块
主要使fclk,M,phase能同时输入给运算模块,避免出现竞争。
运算模块,见图4
图4:运算模块
主要由一个相位加法器和10位加法器构成,最终输出相位值。
sin幅度查询模块,见图5
图5:sin幅度查询模块
在devC++环境下,用C语言生成具有正弦函数关系的数据SIN_ROM.exe,再在DOS下执行:“SIN_ROMSIN_ROM.mif”。再在文件中加入了头部说明。最后在Quartus中调用了LPM库,生成了sin幅度查询模块。
2.系统的顶层逻辑图及DDS的频率精度与频率控制字之间的关系
图6:系统顶层逻辑图
在DDS原理中,将一个正弦函数用其相位表示,即2pi。同时将其离散化,分成2^N个,M为频率控制字,即为每个fclk时钟,将初始相位与其相加,得到下一个相位,进而得到对应幅度值。由fout=M/2^N × fclk得,M值越大时,此时fout值越大。但是同时,由于M值越大,每次相位累加时,相位值改变的越大,导致幅度值改变的越大。最终生成的正弦函数失真现象越加严重,即频率精度越差。
所以,频率精度与频率控制字成反比关系。
系统调试及仿真波形
图7:FPGA资源利用
图8:接口模块仿真图
图9:同步模块仿真图
图10:相位累加器仿真图
图11: 10位加法器
系统实现功能
输出了一个频率和相位可以调控的正弦波。频率变化范围:1Hz--5MHz,步进值1Hz.
设计调试过程中的问题及解决办法
由于整个系统由模块化组成,每个模块在设计的过程中都通过波形仿真验证其功能的正确性,使得最终的顶层设计时,没有出现太大的问题。但在整个设计过程中出现了一些软件操作和系统设计的问题。
系统编译后无法生成SOF文件。
解决:经查阅资料后了解到,Quartus在没有破解的情况下,不生成SOF文件,最终按照教程破解了软件,成功生成SOF文件。
2.DE2开发板上的扩展IO口按键过少,不足以满足整个系统所需。
解决:通过增加接口模块,同时增加address控制数据的输入。
DE2中的DAC芯片为10bit,这样就使得输入的幅度值为10bit,进而使得N只能是10位,导致步进值和输出频率无法同时满足设计需要。
解决:由于DE2的限制,N只能选择10位,所以在接口模块,设计了分频计,这样就可以通过改变fclk减小步进值,使其符合要求。
收获、体会及改进设想
通过这次的课程设计,重新学习了对Quartus软件的使用,熟练度得到了极大的提高。
复习了VHDL语言,对VHDL有了更多的认识,对其使用更加的得心应手。
从整体系统的设计到底层各个模块的设计与完善,这种层次化,模块化设计,使得整个系统设计显得更加的科学,极大的降低了系统的出错率。同时对系统各个模块的把握,可以更好的调试与改善整个系统。
这样的设计方式,也使得整个系统扩展性得到一定的提高。
电子系统的设计应当是层
文档评论(0)