EDA课程设计——函数信号发生器.doc_第1页
EDA课程设计——函数信号发生器.doc_第2页
EDA课程设计——函数信号发生器.doc_第3页
EDA课程设计——函数信号发生器.doc_第4页
EDA课程设计——函数信号发生器.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EDA课程设计函数信号发生器实验报告学院(系) 专业、班级 学生姓名 学 号 小组其他队员: 指导教师 (1)实验要求(2)总体设计思路(3)程序仿真(4)实验结果(5)心得体会一 实验要求(1) 利用VHDL语言设计一个多功能信号发生器,可以产生正弦波,三角波,锯齿波和方波的数字信号。(2) 焊接一个D/A转换器,对输出的数字信号转换成模拟信号并在示波器上产生波形。(3) 在电路板上可以对波形进行选择输出。(4) 在电路板上可以对波形的频率与幅度进行调节。二总体设计思路信号发生器主要由分频,波形数据的产生,四选一多路选择,调幅和D/A转换五个部分组成。总体框架图如下:(1) 分频分频器是数字电路中最常用的电路之一,在FPGA的设计中也是使用效率非常高的基本设计。实现的分频电路一般有两种方法:一是使用FPGA芯片内部提供的锁相环电路,如ALTERA提供的PLL(Phase Locked Loop),Xilinx提供的DLL(Delay Locked Loop);二是使用硬件描述语言,如VHDL、Verilog HDL等。本次我们使用VHDL进行分频器设计,将奇数分频,和偶数分频结合起来,可以实现50%占空比任意正整数的分频。分频器原理图:在我们本次试验中的实现即为当按下按键时,频率自动减半。如当输入为100MHZ,输出为50MHZ。(2) 信号的产生。根据查找资料,我们最终确定了在QUARTUS中波形数据产生的方法,即利用地址信号发生器和LPM_ROM模块。ROM的地址信号发生器,有七位计数器担任。LPM_ROM底层是FPGA中的M4K等模块。然后在VHDL顶层程序设计中将两部分调用从而实现信号的发生。ROM中存放不同的初始化MIF文件(存放不同波形的数据)从而产生不同的波形。信号产生模块:7位计数器波形数据存储ROM数据产生信号产生RTL图:此环节最重要的还有MIF文件的建立,经过查找资料,下载了MIFMAKER 2010软件,从而较为简单的产生了MIF文件。MIF文件制作图:(3) 四选一多路选择。多路选择器模块是实验模块之中最简单的模块,因为在上一学期的EDA学习中曾经做过四路选择器模块。此模块的基本四路是通过一个两位的输入信号s来决定输出的信号数据,例:s=00时,输出a;s=01输出b ;s=10时,输出c; s=11时,输出d。 多路选择器原理图: (4) 调幅。调幅的思路基本上是运用乘法器来完成数据的翻倍从而达到幅度的变化。因此此模块的完成最主要的任务是乘法器的实现。本实验我们开始采用的乘法器是两个矢量类型的数据作为输入,一个是波形数据,另一个则为幅度的变化倍数(变化范围为1,2,3倍)。如下图:但后来在硬件上实现时倍数高时容易波形顶部容易产生失真,因此我们对此进行了改进,即将输入的两个八位矢量类型数据通过conv_integer函数产生整数数据,对整数数据进行小幅度乘除(如c=a*b/16),然后将整数数据通过conv_std_logic(c,8)函数转换成八位整数数据输出。从而完成调幅的完美实现。改进后如下图:(5) D/A转换。D/A转换是把数字信号转换为信息基本相同的模拟信号而设计的处理过程,大多数DA转换器由电阻阵列和放大器构成。根据公式u0=Rf(ui1/R1+ui2/R2+ui3/R3+)计算出R43=2*R44=4*R45=8*R46=16*R47=32*R48=64*R49=128*R50R50=2*R42因此可以选取R40= R41= R42= 1k R43= 256k R44= 128k R45=64R46= 32k R47= 16k R48= 8k R49= 4k R50=2k三程序仿真正弦波仿真:三角波仿真:锯齿波仿真:方波仿真:分频器仿真:多路选择仿真:乘法器仿真:总电路仿真:四实验结果正弦波输出:调频后:调幅后:三角波输出:锯齿波输出:方波输出:实物图:五心得体会本设计基于VHDL语言进行设计,利用FPGA芯片为主要芯片,在编程过程中分体现了进程的并行性,利用了五个基本的模块实现了上述的功能。其实本实验的关键还是EDA软件QUARTUS II 的使用,在一开始的接触中,完全不知道本软件的使用方法,在经过一天的视频学习后,对此软件的使用有了较为初步的认识。然后就是vhdl语言的编写,由于本人的编程语言以前学的不是很好,因此只能一边参照课本一边进行语言的编写。让我印象最深刻的就是分频器和乘法器的编写,分频器是我第一次编写的比较复杂的模块,实现的不理想,因此借用了网上查阅的资料。乘法器的编写最初的思路有些偏差,在和组员的讨论中编写了更为理想的程序,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论