




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
陕西理工学院课程设计报告课题 基于FPGA智能函数发生器 院系 电信工程系 班级 电子071班 姓名 前言波形发生器在生产实践和科技领域中有着广泛的应用。例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的振荡器。现在波形发生器的实现方法通常有以下几种:(1)用分立元件组成的波形发生器:通常是单一波形发生器且频率不高,其工作不很稳定,不易调试。(2)可以由晶体管、运放IC等通用器件制作,更多的则是用专门的波形发生器IC产生。早期的波形发生器IC,如L8038、BA205、R2207/2209等,它们的功能较少,精度不高,频率上限只有300kHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者互相影响。(3)利用单片集成芯片的波形发生器:能产生多种波形,达到较高的频率,且易于调试。鉴于此,美国马克西姆公司开发了新一代波形发生器,它克服了(2)中芯片的缺点,可以达到更高的技术指标,是上述芯片望尘莫及的。此波形发生器频率高、精度好,因此它被称为高频精密波形发生器IC。在锁相环、压控振荡器、频率合成器、脉宽调制器等电路的设计上都是优选的器件。目 录1、方案选择12、本设计的基本思路13 系统总体方案设计.14、函数发生器的硬件设计 .25、函数发生器的软件设计4(1)、正弦波的设计4(2)、方波的设计5(3)、阶梯波形的设计6(4)、锯齿波的设计7(5)、三角波的设计7(6)、分频器8(7)、选择器96、顶层设计117、MAX+PLUSII仿真结果118、总结149、参考文献15FPGA智能函数发生器的设计【摘要】函数发生器是一种多波形的信号源。可以产生正弦波、方波、三角波、锯齿波,甚至任意波形。有的函数发生器还具有调制功能,可以进行调幅、调频、调相、脉宽调制和VCO控制。函数发生器有很宽的频率范围,使用范围很广,它是一种不可缺少的通用信号源。可以用于生产测试、仪器维修和实验室,还广泛的使用在其他科技领域,如医学、教育、化学、通讯、地球物理学、工业控制、军事、和宇航等。【关键字】 FPGA;模块;仿真波形;原理图;智能函数发生器 1、方案选择在科学研究、工程教育及生产实践中,常常需要用到信号发生器。而信号发生器的主要功能是为各种场合产生所需的信号波形。长期使用的信号发生器,大部分是由一些电子元器件组成的模拟电路构成的,这类仪器作为信号源,频率可达上百MHz,但是其体积大,损耗也大。EDA技术是现代电子信息工程领域的一门新技术它是在先进的计算机工作平台上开发出来的一整套电子系统设计的软硬件工具,它提供了先进的电子系统设计方法。随着EDA技术的不断发展,当大规模可编程逻辑器件FPGA 和CPLD出现,并有了相应EDA设计工具之后,其含义就不仅局限在当初的电路版图的设计自动化概念上,而当今的EDA技术更多的是指芯片内的电子系统设计自动化。硬件描述语言的发展至今已有几十年的历史,并已成功地应用到系统的仿真、验证和设计综合等方面。FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。2、本设计的基本思路: Reset是复位键,但reset等于0时,信号发生器不产生任何函数,只有当reset等于1时,才会产生相应的波形;当adress=”000”产生方波;当adress=”001”产生阶梯波;当adress=”010”产生锯齿波;当adress=”011”产生三角波;当adress=”100”产生正弦波;3 系统总体方案设计该方案采用FPGA作为中心控制逻辑,由于其具有高速和逻辑单元数多的特点,因此可以由FPGA、DAC和I/V运放直接构成信号源发生器的最小系统。在该方案中通过FPGA控制DAC并直接向DAC发送数据,这样就提高了所需波形的频率并绕过了通用存储器读取速度慢的特点,再加上外部的开关按钮就能够简单控制波形切换与频率选择。当然,为了增加人机界面的交互性与系统功能,可以在原有的基础上添加一个标准键盘和LED或LCD,这样就能够通过编程实现波形的任意性、幅度变化的灵活性时 钟 系 统 控 制 器复 位波形选择频率选择方波阶梯波锯齿波递增锯齿波递减三角波正弦波TLC7528 I/V转换运放输出分频器 FPGA 系统方案图4、函数发生器的硬件设计 波形发生器制作过程中用到的硬件有: 5V的电源、以ALTERA公司生产的芯片,和以这个目标芯片为核心的核心板,核心板上有稳压管及其供电系统、50MHZ的晶振、SDRAM:8Mbyte、Flash:2Mbyte,此外所有IO配置管脚通过插针引出,下载设计到目标芯片时用到的并口下载数据线;还用到选择波形的按钮。由于这些波形产生都是在FPAG芯片中产生,产生的都是数字信号,比如三角波,它从00000000,CLK来一个上升延信号系统会自动给它加1,变成了00000001,再把这个8位二进制的信号输出来,这样周而复始地工作。而FPGA只是数字信号处理器,在模拟信号转换它是显得很无助的。所以在它的输出端接上一个数模转换器,把数字信号转换成模拟信号输出。所以它由两部分组成:数据产生,数据的转换。1、FPGA芯片(数据产生)在本次设计方案中,FPGA芯片采用ALTERA公司生产的EPF10K10LC84-4型芯片。ALTERA 公司作为全球最大的可编程逻辑器件供应商,可提供MAX7000S(E)、MAX7000A(AE)、MAX7000B、FLEX6000A、FLEX 10KA、FLEX 10KE 等系列产品。这些产品可用于组合逻辑、时序、算法、双端口RAM、FIFO的设计。在加上ALTERA 公司的MAX+pulsII 集成开发软件,集设计输入、处理、校验和器件编程于一体,集成度高,使用方便,大大缩短产品的开发周期。MAX EPF10K10LC84-4 是一种复杂可编程逻辑器件,是84pinPLCC 封装,另外还有其它类型的管脚和封装,选择性强,该IC 具有以下主要性能:(1)、嵌入式可编程逻辑器件,提供了集成系统于单个可编程逻辑器件中的性能;(2)、高密度:提供10000250000 个可用门,614440960 位内部RAM;(3)、低功耗:多数器件在静态模式下电流小于0.5mA,在2.5V、3.3V 或5.0v 下工作;(4)、高速度:时钟锁定和时钟自举选项分别用于减少时钟延时/过冲和时钟倍频;器件内建立树形分布的低失真时钟;具有快速建立时间和时钟到输出延时的外部寄存器;(5)、灵活的互连方式:快速、互连延时可预测的快速通道(Fast Track)连续式布线结构;实现快速加法、计数、比较等算术逻辑功能的专用进位链;实现高速、多输入(扇入)逻辑功能的专用级联链;实现内部三态的三态模拟;多达六个全局的时钟信号和四个全局清除信号;(6)、支持多电压I/O 接口;(7)、强大的引脚功能:每个引脚都有一个独立的三态输出使能控制及漏极开路配置选项及可编程输出压摆率控制;FLEX10KA、10LE、10KS 器件都支持热插拔;(8)、多种配置方式:内置JTAG 边界扫描测试电路,可通过外部EPROM、智能控制或JTAG 接口实现在电路重构(ICR);( 9 )、多种封装形式:引脚范围为84600,封装形式有TQFP、PQFP、BGA 和PLCC 等,同一封装的FLEX 10K 系列器件的引脚相兼容。EPF10K10LC84-4管脚图5、函数发生器的软件设计(1)、正弦波的设计FPGA输出的数字信号需要经DA转换器转换成各种波形输出。而由DA转换器可知,TLC7528的分辨率是8位,这样,将模拟信号的正弦波在一个周期内平均分成255份,由于已经确定每周期的取样点数为100,即每隔2/100的间隔取值一次,所取的值为该点对应的正弦值,通过计算可以获得100个取样点的值;也可以通过查表的方法取得100个取样点的值。正弦波产生模块sinbo:library ieee;-正弦波use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity Zhengxianbo isport (clk,reset :in std_logic;-clock时钟信号,clrn复位信号qt: out std_logic_vector(7 downto 0); -8位数据输出end Zhengxianbo;architecture behave of Zhengxianbo issignal q: std_logic_vector(8 downto 0);beginprocess(clk,reset) variable tmp : integer range 63 downto 0;begin if reset=0 then qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqNULL;end case;end if;qt=q(8 downto 1); end process;end behave;(2)、方波的设计由于方波的占空比是50,且只有两个状态,所以方波的取样比较简单。它的值经过128个时钟脉冲秒跳变一次,形成输出方波,也就是从00经过128个时钟脉冲后变为FF,从而实现了0101 的值变化。方波产生模块fangbo:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity fangbo isport(reset:in std_logic; clk: in std_logic; cnt:buffer std_logic_vector(7 downto 0);end entity;architecture one of fangbo isbeginprocess(clk)variable count:integer range 0 to 500;begin if reset=0 then count:=0; elsif rising_edge(clk) then if count=500 then cnt=00000000; count:=0; elsif count=255 then cnt=450 then cnt=400 then cnt=350 then cnt=300 then cnt=250 then cnt=200 then cnt=150 then cnt=100 then cnt=50 then cnt=00011000; else cnt=00000000; end if;end if;end process;end one;(4)锯齿波的设计采用0255循环加法计数器实现。通过赋值给输出值。clk是时钟信号,当复位信号有效时,输出为0,输出最小值设为“0”,最大值设为“255”,从“0”开始,当时钟检测到有上升沿的时候,输出就会呈现递增的趋势,加“1”。锯齿波产生模块juchi:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity juchibo isport(reset:in std_logic; clk: in std_logic; cnt:buffer std_logic_vector(7 downto 0);end entity;architecture one of juchibo isbeginprocess(clk)begin if reset=0 then cnt=00000000; elsif rising_edge(clk) then if cnt=11111111then cnt=00000000; else cnt=cnt+1; end if; end if;end process;end one;(5)、三角波的设计采用02550循环加减法计数器实现三角波产生模sanjiaobo:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity sanjiaobo isport(reset:in std_logic; clk: in std_logic; cnt:buffer std_logic_vector(7 downto 0);end entity;architecture one of sanjiaobo isbeginprocess(clk)variable up:integer range 0 to 1;begin if reset=0 then cnt=00000000; elsif rising_edge(clk) then if up=1 then if cnt=11111111 then up:=0; cnt=11111110; else cnt=cnt+1; end if; else if cnt=00000000then up:=1; cnt=00000001; else cnt=cnt-1; end if; end if;end if;end process;end one;(6)、分频器数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比。用计数值可并行预置的加法计数器设计完成,方法是将计数溢出位与预置数加载输入信号相接即可。本次设计采用八位的数控分频器。LIBRARY IEEE;-分频器USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY PULSE ISPORT ( CLK: in std_logic;D:in std_logic_vector(7 downto 0);FOUT:out std_logic);END ENTITY PULSE;ARCHITECTURE behave OF PULSE IS SIGNAL FULL:STD_LOGIC;BEGIN P_REG:PROCESS(CLK) VARIABLE CNT8:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF CLKEVENT AND CLK=1 THEN IF CNT8=11111111 THEN CNT8:=D; FULL=1; ELSE CNT8:=CNT8+1; FULL=0; END IF; END IF; END PROCESS P_REG; P_DIV:PROCESS(FULL) VARIABLE CNT2:STD_LOGIC; BEGIN IF FULLEVENT AND FULL=1 THEN CNT2:=NOT CNT2; IF CNT2=1 THEN FOUT=1; ELSE FOUTqqqqqNULL;END CASE;END PROCESS; END ARCHITECTURE behave;6、顶层设计 函数发生器顶层设计7、MAX+PLUSII仿真结果(1)、当选择开关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《桥涵养护管理办法》
- 专款服务票据管理办法
- 苗木类资产管理办法
- rohs测试管理办法
- 仓储作业订单管理办法
- 自保件品质管理办法
- 调度业务运输管理办法
- 综采队日常管理办法
- 证券开户与管理办法
- 街道专属网格管理办法
- 人教部编版七年级语文上册《秋天的怀念》示范课教学课件
- 地质灾害防治工程勘察规范DB50143-2003
- 光伏并网系统中的网络安全分析
- 特种设备安全管理制度完整版完整版
- TBIA 28-2024 骨科疾病诊疗数据集 -骨科院内静脉血栓栓塞症
- 2024年中央企业全面质量管理知识竞赛考试真题库(含答案)
- 泰州zx附属初中2023-2024七年级上学期第一次月考数学试卷及答案
- 【课件】点线传情-造型元素之点线面高中美术人美版(2019)选择性必修1+绘画
- 应征公民政治考核表(含各种附表)
- 现代职业人就业指导篇 教案 现代职业人(就业指导篇)授课计划
- 风机气动噪声控制耦合仿生研究
评论
0/150
提交评论