多功能信号发生器的设计_毕业设计全套.doc

多功能信号发生器的设计_毕业设计全套.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多功能信号发生器的设计 目 录 0引言 2 1设计意义 3 2设计说明 4 2.1设计任务 4 2.1.1设计要求 4 2.1.2 设计目的: 4 3设计过程 5 3.1系统顶层框图 5 3.1.1信号发生器结构图 5 3.1.2信号发生器的内部构成 5 3.1.3系统流程图 6 3.2设计步骤 6 3.3系统设计 7 4代码及仿真结果 8 4.1各个模块的实现 8 4.2顶层模块 16 5小结及体会 19 6参考文献 20 0 引言 信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波在电路实验和设备检测中具有十分广泛的用途。例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的。 FPGA来设计制作多功能信号发生器。该信号发生器可以产生正弦波、方波、三角波、锯齿波正弦波、方波、三角波、锯齿正弦波、方波、三角波、锯齿波设计任务要求:基于《VHDL语言》,通过给定的仪器(试验箱设计一个多功能信号发生器,能产生周期性正弦波、方波、三角波、锯齿波以及用户自己编辑的特定波形;输出信号的频率范围为100Hz~200KHz,且输出频率可以调节;具有显示输出波形、频率的功能。掌握使用EDA工具设计的设计思路和设计方法体会使用EDA综合过程中电路设计方法和设计思路的不同。2) 熟悉在Quartus II环境中,用文本输入方式与原理图输入方式完成电路的设计,同时掌握使用这两种方式相结合的EDA设计思路。 3) 通过这一部分的学习,对VHDL语言的设计方法进行进一步的学习,对其相关语言设计规范进行更深层次的掌握,能够更加熟练的做一些编程设计。 3 设计过程 3.1系统顶层框图 3.1.1信号发生器结构图 由于FPGA/CPLD只能直接输出数字信号,而多功能信号发生器输出的各种波形均为模拟信号,因此设计信号发生器时,需将FPGA/CPLD输出的信号通过D/A转换电路将数字信号转换成模拟信号。多功能信号发生器可由信号产生电路,波形选择电路和D/A转换电路构成,如下图所示: 3.1.2信号发生器的内部构成 图1 原理框图 在原理框图中,正(余)弦查找表由ROM构成,内部存有一个完整周期正(余)弦波的数字幅度信息,每个查找表的地址对应正(余)弦波幅度信号,同时输出到数模转换器(DAC)输入端,DAC输出的模拟信号经过低通滤波器(LPF),可以得到一个频谱纯净的正(余)弦波。 3.2设计步骤 用VHDL语言结合原理图设计实现一个函数信号发生器,输出正弦波、方波和三角波三种波形。将频率控制、分频、三角波、正弦波、方波发生各个模块分别用VHDL语言编程为一个子程序,并把每一个模块转换成图形文件,然后在原理图编辑框调用这些图形模块,连接电路如图所示。通过按键1到按键控制频率调节f〔...0〕,用按键6、按键7、按键8控制dlt、sin、sqr波形选通,最后把八位输出接DAC0832通过D/A转换,从示波器上就能看到波形输出。按下不同的按键输出不同的波形及频率。 系统设计 模块 (2)数据存储模块 数据存储模块主要存的是正弦波三角波、锯齿波采样点 变换成的形式进行采样,然后变换成8位二进制码,存储在波形存储器里。 (3)数据选择器模块 在波形开关的控制下,选择相应的波形输出。可以用3个按键来控制波形选择 4 代码及仿真结果 4.1各个模块的实现 4.1.1数控分频器的实现 其VHDL代码如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity fenpin is port(d_mode:in std_logic_vector(3 downto 0); clk:in std_logic; d_out:out std_logic); end fenpin; architecture behav of fenpin is signal full:std_logic; begin p_reg: process(clk) variable cnt8:std_logic_vector(3 downto 0); begin if

文档评论(0)

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

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

1亿VIP精品文档

相关文档