电子技术综合设计-基于FPGA的任意波形发生器设计.doc

电子技术综合设计-基于FPGA的任意波形发生器设计.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子技术综合设计 题目: 基于FPGA的任意波形发生器数字频率计设计 姓名: 班级:信息05-2 班 学号 日期:2008-7-13 摘要:本文主要探索了应用FPGA灵活可重复编程和方便在系统重构的特性,以Verilog HDL为设计语言,将硬件功能以软件设计来描述,提高了产品的集成度,缩短开发周期。所设计的波形发生器可产生正弦波(sina_wave)、锯齿波(swat_wave)、矩形波(squr_wave)、三角波(trig_wave)四种信号,能够实现信号的转换并且频率可调;设计的频率计以1Hz为基准信号,测量的范围是1Hz—9999Hz,测量的结果以四位十进制的形式输出。并且给出了实现D/A转换和动态显示的硬件外围电路,而FPGA作为控制中心。最后还针对设计中可以提高、改进的地方进行了探讨,如:频率计的结果可用字符LCD显示,频率计的测量范围可通过选择不同的基准频率(比如10Hz、100Hz、1KHz)来扩展,利用频率计电路来显示波形发生器的输出波形的频率及形状标识,这样就实现了实验室中函数发生器的雏形:能实现任意波形的输出并且能够测量外来信号的频率,这也是本文的设计思路。 关键字:任意波形发生器 频率计 FPGA Verilog HDL QuartusII 基于FPGA的任意波形发生器数字频率计设计 设计的思路主要是以实验室中常用的函数发生器为雏形,及既能输出任意波形,并且频率可调,还可以测量外部信号的频率。实现这两种功能设计的方式有很多种,这里采用FPGA设计来实现,验证设计的芯片采用Cyclone系列,具体芯片可根据实验室的配置来确定。语言采用Verilog HDL,软件以QuartusII为主 。其中任意波形发生器的实现采用模块设计,这样很好的利用了QuartusII 软件中的LPM_ROM模块,能够达到最优设计;频率计的功能完全采用HDL语言描述,最后的顶层文件采用模块设计来完成。最终的顶层文件如下图所示: 一、任意波形发生器的实现 要实现的功能:可产生正弦波(sina_wave)、锯齿波(swat_wave)、矩形波(squr_wave)、三角波(trig_wave)四种信号,能够实现信号的转换(select)并且频率可调。主要由三部分组成:地址指针控制模块,四种波形数据存储模块,D/A转换模块。前面2个模块在FPGA中实现,D/A转换通过外围电路实现。该部分的实现框图如下: 数据ROM中存储正弦波、锯齿波、矩形波、三角波4种信号各一个周期的波形数据(一个周期选择128个数据采样值),地址指针读取ROM中不同区域的数据,即可产生不同的波形。通过控制读取时间间隔的不同,可实现频率的调整。 1、波形数据存储ROM模块的设计 首先应建立ROM初始化数据文件Wave_gen.mif。由于每一种波形一个周期取128个数据,故共有512个数据。在QuartusII LPM_ROM中配置如下: 四种波形在ROM中的存储地址分别为:正弦波(sina_wave):0—127;锯齿波(swat_wave):128—255; 矩形波(squr_wave):256—383; 三角波(trig_wave):384—511;每个波形各占16Byte区域。通过对各个波形128点采样(用C语言计算),得到各个波形一周期的数据,填写到对应的ROM存储区域后,即完成了ROM数据初始化文件。Wave_gen.mif文件内容如下: 正弦波(sina_wave)波形数据: 锯齿波(swat_wave)波形数据 矩形波(squr_wave)波形数据: 三角波(trig_wave)波形数据: 建立好了Wave_gen.mif文件以后,在原理图输入界面下插入LPM_ROM模块,然后利用MegaWizard Plug-In Manager,对其进行编辑,主要是完成初始化工作。主要界面如下: 通过以上两步操作,及完成了波形数据存储模块的设计。 2、指针控制模块的设计 该模块的功能采用Verilog HDL来描述,程序Wave_gen.v请见附件[1]。程序实现的主要功能是:根据不同的波形选择(select[1:0]),来改变送入ROM中的地址指针address。四种波形一个周期的数据各占不同的16B,每次波形改变使address指向各段数据首地址。编译正确后将其创建为Wave_gen.bsf模块(见顶层文件中所示),然后

您可能关注的文档

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档