fpga的函数信号发生器(附件)【字数:8048】

摘 要函数信号发生器在测量、控制、通信、等方面是必不可少的工具之一。随着科学的发展,人们在测量精度上要求越来越高了,对于数据的精密性也越来越重视,函数信号发生器很好的满足了这些需求,成为实验、测量等不可或缺的一种工具。使函数信号发生器的噪声低、频率变换快和分辨率高,已引起人们极大的兴趣。本次设计主要针对的是如何通过FPGA器件来实现DDS系统,系统的硬件结构以FPGA为核心,以BASY 3开发板为基础。主要通过对时钟信号的相位累加和分频,对输出信号的波形进行调用、存储,再经过D/A转换,输出函数信号,设计出可产生频率及幅度可调的正弦波。本次研究详细的说明了函数信号发生器各个模块的搭建和测试的。
目 录
第一章 绪论 1
1.1 背景及意义 1
第二章 系统总体组成框架 2
2.1系统总体设计框图 2
2.1.1系统组成模块 2
2.1.2 系统总电路图 2
2.2系统各模块功能 2
2.2.1 DDS模块功能 3
2.2.2分频模块功能 3
2.2.3相位累加器模块功能 3
2.2.4 ROM模块功能 3
2.2.5 ROM测试程序编写 3
2.2.6 DA模块功能 3
第三章 硬件部分 6
3.1 FPGA及原理 6
3.1.1FPGA芯片介绍 6
3.1.2 FPGA设计流程 7
3.1.3 FPGA的作用 7
3.1.4 FPGA设计模块 8
3.2 AD9280芯片 8
3.2.1工作原理 9
3.2.2工作模式 9
第四章 软件部分 11
4.1 DDS模块 11
4.1.1 DDS模块介绍 11
4.1.2 DDS基本原理 11
4.2 主程序流程图 13
4.2 ROM查找表 13
4.3 时钟模块 14
4.4 地址变换模块 15
4.5寄存器 16
第五章 系统构建 19
 *好棒文|www.hbsrm.com +Q: #351916072# 
5.1 程序设计 19
5.2 生成PLL IP 19
5.3 verilog 程序 19
5.4编写 UCF 文件 19
5.5 硬件连接 21
结束语 23
致 谢 24
参考文献 25
附录 26
附录A verilog 程序 26
附录B UCF程序 28
附录C时钟程序 29
第一章 绪论
1.1 背景及意义
函数信号发生器是一种基本的电子测量仪器,它可以满足各种电子测量工作的要求,同时成本较低,容易操作使用。然而,随着现代科技的快速发展,电子测量工作也越来越多,对于数据的精度要求也越来越多,同时对于显示波形的种类也越来越多,已经不能满足于仅仅显示正弦波形,要从单一波形到任意波形发展,而且要求输出的波形越准确越好,越清晰越好,同时在频率的稳定性、速度、波形相位的连续性都有很高的要求。所以,为了适应现在市场的高标准要求,制作高性能的函数信号发生器仍然是我们当前的目标之一。传统的函数信号发生器结构简单。然而,其输出波形过于单一。传统的信号发生器采用的是具有选择频率的回路,但是在稳定性和准确度方面都比较差,这种精确度早已经不能满足测量的需求,将慢慢的别社会所淘汰,所以新型的函数信号发生器诞生了,它是基于FPGA的函数信号发生器,它的优点是具有很高的精度和稳定性。随着不断地改良,基于FPGA的函数信号发生器已经有了很高的发展,已经能够满足专业测量的需求。
第二章 系统总体组成框架
2.1系统总体设计框图
2.1.1系统组成模块
本次设计利用的直接数字频率合成是采用FPGA开发板作为核心控制芯片的。得到的波形比较稳定,而且波形较为平滑。设计控制也很方便,通过随意改变频率、幅度控制字就能得到不同频率、幅度的波形,外围D/A,其滤波电路的硬件部分简单易构造。
2.1.2 系统总电路图
系统的电路原理图如图22所示。
/
图22 系统原理图
2.2系统各模块功能
2.2.1 DDS模块功能
采用基于FPGA的芯片。高性能的技术实现依赖于超高速、高指标的可编程逻辑器件。可编程逻辑器件的运行速率高、性能规模大,有EDA软件支持,可以很容易的利用到DDS技术和可编程逻辑器件上。并且可编程逻辑器件可根据需要实现比较高标准的频率、相位、幅度等方面的调节,具有良好的灵活性和实用性。
2.2.2分频模块功能
在数字系统设计中,分频器是基本电路,有奇偶分频、半整数分频等。本论文使用的是偶分频,这是电路设计中最常用的分频。通过由待分频的时钟触发计数器计数,从0开始计数到N,输出的时钟信号将会翻转,而且会给计数器复位信号,以示下一个时钟从0开始计数,如此循环。
为了能够对波形的频率进行精确的掌控,本论文将50MHz分频为每次1Hz的时钟。键盘上按下1S,幅度或者频率发生改变。
2.2.3相位累加器模块功能
相位累加器的输入采用的是频率字,当输入时钟的上升沿到来是,输入的频率字就与累加器中原有的值相加,把累加器的输出当作相位累加器的输入;当累加结果溢出时(即其结果大于正弦ROM查找表的最大值),就减去模值再加1送出去。
相位累加器外部端口设计包含:频率字输入端、时钟输入端及相位累加输出端。
2.2.4 ROM模块功能
从ISE提供的IP核中例化一个ROM,通过读时序来读取ROM中的数据。实验中会通过 ISE 集成的在线逻辑分析仪 chipscope,我们可以观察 ROM 的读时序和从 ROM 中读取的数据。
2.2.5 ROM测试程序编写
新建一个 rom_test 的工程,向rom_test工程添加一个ROM的verilog测试程序rom_test.v, ROM程序的设计较为简单,只要改变ROM的地址,就会输出数据。
2.2.6 DA模块功能

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/dzkxyjs/397.html

好棒文