




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计 基于 FPGA 和 Quartus II 设计的智能函数发生器 题 目 基于基于 FPGA 和和 Quartus II 设计的智能函数发生设计的智能函数发生 器器 所在院 系 物理与电信工程学院 基于 FPGA 和 Quartus II 设计的智能函数发生器 基于基于 FPGAFPGA 和和 QuartusQuartus IIII 设计的智能函数发生器设计的智能函数发生器 摘要 信号发生器又称信号源或振荡器 在生产实践和科技领域中有着广泛的应用 它能够 产生多种波形 如三角波 锯齿波 矩形波 含方波 正弦波等 在电路实验和设备检测中具有 十分广泛的用途 例如在通信 广播 电视系统中 都需要射频 高频 发射 这里的射频波就是 载波 把音频 低频 视频信号或脉冲信号运载出去 就需要能够产生高频的振荡器 在工业 农业 生物医学等领域内 如高频感应加热 熔炼 淬火 超声诊断 核磁共振成像等 都需要功 率或大或小 频率或高或低的信号发生器 本设计采用 FPGA 来设计制作多功能信号发生器 该信 号发生器可以产生锯齿波 三角波 方波等波形 关键词 信号发生器 VHDL FPGA 三角波 方波 锯齿波 目录目录 基于 FPGA 和 Quartus II 设计的智能函数发生器 1 引言 1 2 FPGA 简介 1 2 1 VHDL 和 VERILOG简介 3 2 2 设计工具简介 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 工具给电子设计带来了巨大的变革 特别是可编程逻辑器 件和硬件描述语言的出现和发展 解决了用传统的方法设计较大系统工程时的诸多不便 成 为电子电路设计人员最得力的助手 随着计算机和EDA技术的发展 基于FPGA的电子设计则是 目前发展较为迅速的一个领域 而且广泛应用于计算机 通信等各个领域 因此 本文主要 利用VHDL 设计制作一个多功能波形发生器 采用传统的模拟振荡电路构成的波形发生器产 生的信号频率精度低 不仅成本高 外围电路复杂 易受外界干扰 而且调试困难 不便于 调控 实现的性能指标也不理想 对此采用具有良好性能的专用集成芯片就能达到本题的目 的要求 但采用该方法所需的外围电路模块多且较为复杂 不利于控制和问题的检查 而纯 单片机的方法虽便于控制但又难以达到题目的要求 现如今是信息时代 人们对使用计算机获取信息 处理信息的依赖性也越来越高 因此 利用FPGA采用DDS的方式来设计的波形发生器前景十分可观 随着电子技术的飞速发展 VHDL作为标准化的硬件描述语言获得了广泛的应用 无论是采 用传统的模拟振荡电路还是专用的集成芯片所作的波形发生器已不能满足需要 因此 对波 形发生器的设计势在必行 本文主要利用VHDL语言 设计制作一个多功能波形发生器 能实 现多种波形的输出及组合 并进行仿真 2 2 FPGAFPGA 简介简介 FPGA Field Programmable Gate Array 即现场可编程门阵列 它是在 PAL GAL CPLD 等 可编程器件的基础上进一步发展的产物 它是作为专用集成电路 ASIC 领域中的一种半定制电路 而出现的 既解决了定制电路的不足 又克服了原有可编程器件门电路数有限的缺点 与传统们阵列和掩模可编程门阵列 MPGA 相比 FPGA 具有很多的优点 传统门阵列可以用来设 计任何电路 但是只能在工厂中一次性编程 而且还需要针对该电路的特定的掩模 FPGA 是标准 通用器件 使用其代替 MPGA 可以将设计时间由几个月缩短至几小时 并且使设计更加简单 从 而减少了错误修改和设计指标变更的花费 FPGA 器件在结构上 由逻辑功能块排列为阵列 它的结构可以分为三个部分 可编程快 CLB Configurable Logic Blocks 可编程 I O 模块 IOB Input Block 和可编程内部连线 PI Programmable Interconnect CLB 在器件中排列为阵列 周围有环形内部连线 IOB 分布在 四周的管脚上 基于 FPGA 和 Quartus II 设计的智能函数发生器 第 2 页 FPGA 也存在缺点 FPGA 中 每个可编程的点都有电阻和电容 电阻和电容的使用减慢了信号 的传输速度 所以 FPGA 的速度比传统门阵列要低 而且 FPGA 中互联延迟是不可预测的 FPGA 的基本特点主要有 一 采用 FPGA 设计 ASIC 电路 用户不需要投片生产 就能得到合用的芯片 二 FPGA 可做其它全定制或半定制 ASIC 电路的中试样片 三 FPGA 内部有丰富的触发器和 I O 引脚 四 FPGA 是 ASIC 电路中设计周期最短 开发费用最低 风险最小的器件之一 五 FPGA 采用高速 CHMOS 工艺 功耗低 可以与 CMOS TTL 电平兼容 使用 FPGA 时 可以根据不同的配置模式 采用不同的编程方式 加电时 FPGA 芯片将 EPROM 中 数据读入片内编程 RAM 中 配置完成后 FPGA 进入工作状态 掉电后 FPGA 恢复成白片 内部逻 辑关系消失 因此 FPGA 能够反复使用 FPGA 的编程无须专用的 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 logic 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 为输出信号引脚 第三部分是程序的结构体 具体描述电路的内部结构和逻辑功能 结构体有三种描述方式 分 别是行为 BEHAVIOR 描述方式 数据流 DATAFLOW 描述方式和结构描述方式 其中数据流描述 方式又被称为寄存器 RTL 描述方式 结构体以表示 ARCHITECHTURE 开头 以 END 结尾 结构体 的名称可以任取 architecture behav of fulladder is BEGIN s a xor b xor Ci Co a and b or a and Ci or b and Ci END fulladder 上面程序段中结构体的描述方式属于程序流描述方式 以上三段程序是一个完整的 VHDL 程序段 实现的功能是一位全加器 3 23 2 波形设计波形设计 采用 DDS 技术可以很方便地产生各种高质量的波形 DDS 技术是从相位概念出发之结合成所需 要波形的一种频率合成技术 以正弦波为例 首先要按照一定的采样点数将正弦波形一个周期的数 据信息存于 ROM 表中 表中包含着一个周期正弦波的数字幅度信息 每个地址对应正弦波中 0 到 基于 FPGA 和 Quartus II 设计的智能函数发生器 第 5 页 360 度范围内的一个相位点的幅度值 查找表时即是把输入的地址相位信息映射成正弦波幅度的数 字量信号 通过设置的输出端口输出 在实物设计中 可以使用 D A 接口来实现波形信号的输出 为简化设计过程 本设计并未采用 DDS 技术 而是采用描点输出的方式 实现波形发生器的设 计 程序中设置一个波形的起始点 经过比较 计算得出波形的其他数值 将这些点依次连续输出 从而实现波形的仿真 以递增锯齿波为例 首先定义初始点为 tmp 00000000 在时钟上升 沿到来时 执行 tmpclk reset reset q0 y0 u1 jian port map clk clk reset reset q1 y1 u2 sanjiao port map clk clk reset reset 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 downto 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 m0 0 elsif clk event and clk 1 then if m0 7 then m0 0 定义 8 分频 实际时增大数字 减小分频系数 因为 FPGA 系统的时钟为 50MH 的 if tmp0 11111111 then tmp0 00000000 产生锯齿波 else tmp0 tmp0 1 递增 end if else m0 m0 1 end if end if q0 tmp0 end process end zeng arc 递减锯齿波的产生 library ieee use ieee std logic 1164 all use ieee std logic unsigned all entity jian is port clk reset in std logic q1 out std logic vector 7 downto 0 end entity architecture jian arc of jian is signal m1 integer range 7 to 0 signal tmp1 std logic vector 7 downto 0 begin 基于 FPGA 和 Quartus II 设计的智能函数发生器 第 16 页 process clk reset 敏感信号 begin if reset 0 then m1 7 elsif clk event and clk 1 then if m1 0 then m1 7 定义 8 分频 实际时增大数字 减小分频系数 因为 FPGA 系统的时钟为 50MH 的 if tmp1 00000000 then tmp1 11111111 产生锯齿波 else tmp1 tmp1 1 递减 end if else m1 m1 1 end if end if q1 tmp1 end process end jian arc 三角波 library ieee use ieee std logic 1164 all use ieee std logic unsigned all entity sanjiao is port clk reset in std logic q2 out std logic vector 7 downto 0 end entity architecture sanjiao arc of sanjiao is signal m2 integer range 0 to 7 signal tmp2 std logic vector 7 downto 0 begin process clk reset 敏感信号 variable a std logic 0 begin if reset 0 then m2 0 elsif clk event and clk 1 then if m2 7 then m2 0 定义 8 分频 实际时增大数字 减小分频系数 因为 FPGA 系统的时钟为 基于 FPGA 和 Quartus II 设计的智能函数发生器 第 17 页 50MH 的 if a 0 then if tmp2 11111110 then tmp2 11111111 向上的锯齿波 a 1 else tmp2 tmp2 1 end if else if tmp2 00000001 then 向下锯齿波 tmp2 00000000 a 0 else tmp2 tmp2 1 end if end if else m2 m2 1 分频自加 end if 分频 if 结束 end if 复位信号 if 结束 q2 tmp2 end process end sanjiao arc 方波 library ieee use ieee std logic 1164 all use ieee std logic unsigned all entity fangbo is port clk clr in std logic q3 out std logic vector 7 downto 0 end entity architecture fangbo arc of fangbo is signal t bit begin process clk clr 敏感信号 variable cnt integer range 0 to 63 begin if clr 0 then t 0 elsif clk event and clk 1 then if cnt 63 then cnt cnt 1 定义 64 分频 实际时增大数字 减小分频系数 因为 FPGA 系统的时钟 基于 FPGA 和 Quartus II 设计的智能函数发生器 第 18 页 为 50MH 的 else cnt 0 t not t end if end if end process process clk t begin if clk event and clk 1 then if t 1 then q3 11111111 else q3qqqqnull end case end process end xuan 4 arc 基于 FPGA 和 Quartus II 设计的智能函数发生器 第 19 页 名称 基于 Verilog 编程的智能函数发生器设计程序 module Sin f clk p choose data 端口设定 input 5 0 p 频率控制字 input 1 0 choose 波形选择 input f clk 内置晶振 output 7 0 data wire 7 0 data 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 利用计数器实现任意分频 begin 基于 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 的设定 input 5 0 address case address 各波形初值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国抗菌产品行业市场全景分析及前景机遇研判报告
- 2025年中国睫毛延伸行业市场全景分析及前景机遇研判报告
- 2025年中国家用椭圆机行业市场全景分析及前景机遇研判报告
- 中国中药饮片行业发展趋势预测及投资规划研究报告
- 2023-2028年中国红木木材行业市场深度分析及未来发展趋势预测报告
- 2025年中国家用电烤箱市场供需现状及投资战略研究报告
- 2025年 西藏行测考试笔试试题附答案
- 锦纶行业深度研究分析报告(2024-2030版)
- 中国装修施工服务行业市场深度研究及投资战略规划报告
- 2025年 成都东部新区芦葭卫生院人员招聘考试笔试试题附答案
- 物业小饭桌管理制度
- 2025年湖南省普通高中学业水平考试合格性考试模拟试题(长郡版高一生物)(原卷版)
- 2025春国家开放大学《思想道德与法治》终考大作业答案
- 2025年广东省广州市白云区中考语文二模试卷
- 【英语(新高考Ⅰ卷)】2025年普通高等学校招生全国统一考试
- 2025年天津市河西区中考二模数学试题(含部分答案)
- 医院培训课件:《药品不良反应报告和监测工作简介》
- 医师职业素养课件
- 电网工程设备材料信息参考价2025年第一季度
- 2024年安徽省初中学业水平考试生物试题含答案
- Python试题库(附参考答案)
评论
0/150
提交评论