基于FPGA和Quartus_II设计的智能函数发生器_毕业设计论文.doc

上传人:来看看 文档编号:3920181 上传时间:2019-10-10 格式:DOC 页数:26 大小:1.63MB
返回 下载 相关 举报
基于FPGA和Quartus_II设计的智能函数发生器_毕业设计论文.doc_第1页
第1页 / 共26页
基于FPGA和Quartus_II设计的智能函数发生器_毕业设计论文.doc_第2页
第2页 / 共26页
基于FPGA和Quartus_II设计的智能函数发生器_毕业设计论文.doc_第3页
第3页 / 共26页
基于FPGA和Quartus_II设计的智能函数发生器_毕业设计论文.doc_第4页
第4页 / 共26页
基于FPGA和Quartus_II设计的智能函数发生器_毕业设计论文.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《基于FPGA和Quartus_II设计的智能函数发生器_毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于FPGA和Quartus_II设计的智能函数发生器_毕业设计论文.doc(26页珍藏版)》请在三一文库上搜索。

1、 课程设计 基于 FPGA 和 Quartus II 设计的智能函数发生器 题 目 基于基于 FPGA 和和 Quartus II 设计的智能函数发生设计的智能函数发生 器器 所在院 (系) 物理与电信工程学院 基于 FPGA 和 Quartus II 设计的智能函数发生器 基于基于 FPGAFPGA 和和 QuartusQuartus IIII 设计的智能函数发生器设计的智能函数发生器 摘要 信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。它能够 产生多种波形,如三角波、锯齿波、矩形波(含方波) 、正弦波等,在电路实验和设备检测中具有 十分广泛的用途。例如在通信、广播、电

2、视系统中,都需要射频(高频)发射,这里的射频波就是 载波,把音频(低频) 、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。在工业、 农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功 率或大或小、频率或高或低的信号发生器。本设计采用 FPGA 来设计制作多功能信号发生器。该信 号发生器可以产生锯齿波、三角波、方波等波形。 关键词 信号发生器;VHDL;FPGA;三角波;方波;锯齿波。 目录目录 基于 FPGA 和 Quartus II 设计的智能函数发生器 1.引言 1 2.FPGA 简介1 2.1 VHDL 和 VERILOG简介3 2.2 设计

3、工具简介3 3.系统设计 3 3.1 VHDL 程序语言基本设计3 3.2波形发生器设计4 3.3 程序设计原理框图4 4 系统的软件设计与仿真 6 4.1 系统仿真时序图6 4.2 RTL 仿真硬件图7 5 总结体会与展望 8 参考文献 9 附录 A 设计原理图 10 附录 B 系统仿真图11 附录 C 源程序清单13 基于 FPGA 和 Quartus II 设计的智能函数发生器 第 1 页 1.1.引言引言 20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路 设计方法。电子设计自动化(EDA)工具给电子设计带来了巨大的变革,特别是可编程逻辑器 件和硬件描述语

4、言的出现和发展,解决了用传统的方法设计较大系统工程时的诸多不便,成 为电子电路设计人员最得力的助手。随着计算机和EDA技术的发展,基于FPGA的电子设计则是 目前发展较为迅速的一个领域,而且广泛应用于计算机、通信等各个领域。因此,本文主要 利用VHDL,设计制作一个多功能波形发生器。采用传统的模拟振荡电路构成的波形发生器产 生的信号频率精度低,不仅成本高,外围电路复杂,易受外界干扰,而且调试困难,不便于 调控,实现的性能指标也不理想。对此采用具有良好性能的专用集成芯片就能达到本题的目 的要求。但采用该方法所需的外围电路模块多且较为复杂,不利于控制和问题的检查。而纯 单片机的方法虽便于控制但又难

5、以达到题目的要求。 现如今是信息时代,人们对使用计算机获取信息、处理信息的依赖性也越来越高。因此, 利用FPGA采用DDS的方式来设计的波形发生器前景十分可观。 随着电子技术的飞速发展,VHDL作为标准化的硬件描述语言获得了广泛的应用。无论是采 用传统的模拟振荡电路还是专用的集成芯片所作的波形发生器已不能满足需要。因此,对波 形发生器的设计势在必行。本文主要利用VHDL语言,设计制作一个多功能波形发生器,能实 现多种波形的输出及组合,并进行仿真。 2.2.FPGAFPGA 简介简介 FPGA(FieldProgrammable Gate Array)即现场可编程门阵列,它是在 PAL、GAL、

6、CPLD 等 可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路 而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 与传统们阵列和掩模可编程门阵列(MPGA)相比,FPGA 具有很多的优点,传统门阵列可以用来设 计任何电路,但是只能在工厂中一次性编程,而且还需要针对该电路的特定的掩模。FPGA 是标准 通用器件。使用其代替 MPGA,可以将设计时间由几个月缩短至几小时,并且使设计更加简单,从 而减少了错误修改和设计指标变更的花费。 FPGA 器件在结构上,由逻辑功能块排列为阵列,它的结构可以分为三个部分:可编程快 CLB(Co

7、nfigurable Logic Blocks) 、可编程 I/O 模块 IOB(Input Block)和可编程内部连线 PI(Programmable Interconnect) 。CLB 在器件中排列为阵列,周围有环形内部连线,IOB 分布在 四周的管脚上。 基于 FPGA 和 Quartus II 设计的智能函数发生器 第 2 页 FPGA 也存在缺点,FPGA 中,每个可编程的点都有电阻和电容。电阻和电容的使用减慢了信号 的传输速度,所以 FPGA 的速度比传统门阵列要低,而且,FPGA 中互联延迟是不可预测的。 FPGA 的基本特点主要有: 一、采用 FPGA 设计 ASIC 电路

8、,用户不需要投片生产,就能得到合用的芯片。 二、FPGA 可做其它全定制或半定制 ASIC 电路的中试样片。 三、FPGA 内部有丰富的触发器和 IO 引脚。 四、FPGA 是 ASIC 电路中设计周期最短、开发费用最低、风险最小的器件之一。 五、FPGA 采用高速 CHMOS 工艺,功耗低,可以与 CMOS、TTL 电平兼容。 使用 FPGA 时,可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA 芯片将 EPROM 中 数据读入片内编程 RAM 中,配置完成后,FPGA 进入工作状态。掉电后,FPGA 恢复成白片,内部逻 辑关系消失,因此,FPGA 能够反复使用。FPGA 的编程

9、无须专用的 FPGA 编程器,只须用通用的 EPROM、PROM 编程器即可。当需要修改 FPGA 功能时,只需换一片 EPROM 即可。这样,同一片 FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA 的使用非常灵活。FPGA 有多种配 置模式:并行主模式为一片 FPGA 加一片 EPROM 的方式;主从模式可以支持一片 PROM 编程多片 FPGA;串行模式可以采用串行 PROM 编程 FPGA;外设模式可以将 FPGA 作为微处理器的外设,由微 处理器对其编程。 2.12.1 VHDL use ieee.std_logic_1164.all; use ieee.std_lo

10、gic_arith.all; use ieee.std_logic_unsigned.all; 第二部分是程序的实体,定义电路单元的输入/输出引脚名称。程序的实体名称可以任意取, 但必须与 VHDL 程序的文件名称相同。实体的标示符是 ENTITY,实体以 ENTITY 开头,以 END 结束。 ENTITY fulladder IS PORT(a,b,Ci:in std_logic; Co,s: out std_logic_vector(7 downto 0); END fulladder; 其中,定义了 a,b, Ci 为输入信号引脚,定义 Co,s 为输出信号引脚。 第三部分是程序的结构

11、体,具体描述电路的内部结构和逻辑功能。结构体有三种描述方式,分 别是行为(BEHAVIOR)描述方式、数据流(DATAFLOW)描述方式和结构描述方式。其中数据流描述 方式又被称为寄存器(RTL)描述方式。结构体以表示 ARCHITECHTURE 开头,以 END 结尾。结构体 的名称可以任取。 architecture behav of fulladder is BEGIN sclk,reset=reset,q0=y0); u1: jian port map(clk=clk,reset=reset,q1=y1); u2: sanjiao port map(clk=clk,reset=rese

12、t,q2=y2); u3: fangbo port map(clk=clk,clr=reset,q3=y3); u4: xuan_4 port map(sel=sel,d0=y0,d1=y1,d2=y2,d3=y3,q=q); end boxin_arc; -* -*递增锯齿波的设计程序* -* library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity zeng is port ( clk,reset: in std_logic; q0: out std_logic_vector(7 d

13、ownto 0) ); end entity; architecture zeng_arc of zeng is signal m0:integer range 0 to 7; signal tmp0:std_logic_vector(7 downto 0); begin process(clk,reset)-敏感信号 基于 FPGA 和 Quartus II 设计的智能函数发生器 第 15 页 begin if reset=0 then m0qqqqnull; end case; end process; end xuan_4_arc; 基于 FPGA 和 Quartus II 设计的智能函

14、数发生器 第 19 页 /* 名称:基于 Verilog 编程的智能函数发生器设计程序 */ module Sin(f_clk,p,choose,data);/端口设定 input 5:0 p; /频率控制字 input1:0 choose; /波形选择 input f_clk; /内置晶振 output 7:0 data; wire 7:0data; reg 5:0 addr,address; reg 5:0 i; reg f_out; initial begin i=0; addr=0; f_out=0; end always (posedge f_clk) /利用计数器实现任意分频 be

15、gin 基于 FPGA 和 Quartus II 设计的智能函数发生器 第 20 页 if(i=p) /设定频率控制字 p begin i=0; f_out=f_out; end else i=i+1; end function 7:0 romout; /ROM 的设定 input5:0 address; case(address) /各波形初值的预装入 0 : romout = 10; /正弦波初值 1 : romout = 17; 2 : romout = 15; 3 : romout = 17; 4 : romout = 10; 5 : romout = 3; 6 : romout =

16、5; 7 : romout = 3; 8 : romout = 3; /方波初值 9 : romout = 3; 10: romout = 3; 11: romout = 3; 12: romout = 1; 基于 FPGA 和 Quartus II 设计的智能函数发生器 第 21 页 13: romout = 1; 14: romout = 1; 15: romout = 1; 16 : romout = 0; /正三角波初值 17 : romout = 5; 18 : romout = 10; 19 : romout = 15; 20 : romout = 20; 21 : romout

17、= 25; 22 : romout = 30; 23 : romout = 35; 24 : romout = 35; /反三角波初值 25 : romout = 30; 26 : romout = 25; 27 : romout = 20; 28 : romout = 15; 29 : romout = 10; 30 : romout = 5; 31 : romout = 0; default : romout = 10hxx; endcase endfunction always(posedge f_out) begin 基于 FPGA 和 Quartus II 设计的智能函数发生器 第 22 页 if(addr=8) /波形数据切换 addr=0; else addr=addr+1; case(choose) /波形选择开关设定 0: address=addr; 1: address=addr+8; 2: address=addr+16; 3: address=addr+24; endcase end assign data = romout(address);/将 ROM 中对应数据传递输出端口 data 输出 endmodule

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1