已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于 FPGA 的信号发生器设计论文 - 1 - 目目 录录 摘 要.2 1 前 言.3 2 设计方案.5 2.1 总体设计思路 .5 2.2 方案论证 .6 2.2.1 方案一 .6 2.2.2 方案二 .6 2.2.3 方案三 .6 2.3 方案确定 .7 3 软件设计.8 3.1 波形产生模块 .8 3.1.1 正弦波 .8 3.1.2 矩形波.10 3.1.3 三角波.10 3.1.4 基波.11 3.1.5 谐波的产生 .11 3.1.6 波形模块图.11 3.2 频率控制模块 .11 3.3 选择波形模块 .11 3.4 分频器模块 .13 3.4.1 设计思路.13 3.4.2 VHDL 实现 .13 3.4.3 分频值计算.14 4 硬件电路设计.15 4.1 硬件设计注意事项 .15 4.2 滤波电路.15 4.3 幅度控制电路 .16 4.4 FPGA 器件引脚分配.16 4.5 硬件电路实现 .17 5 调 试.18 5.1 设计及仿真调试使用设备.18 5.2 调试方法 .18 5.2.1 硬件调试.18 5.2.2 软件调试.18 5.2.3 综合调试.18 5.3 调试结果 .19 5.3.1 软件仿真结果及分析.19 5.3.2 综合调试结果.21 6 结 论.24 致谢辞.25 参考文献.26 附 录.27 基于 FPGA 的信号发生器设计论文 - 2 - 基于基于 FPGAFPGA 的信号发生器的信号发生器 摘摘 要要 本次设计课题为应用 VHDL 语言及 MAX+PLUS II 软件提供的原理图输入设计功能,结合 电子线路的设计加以完成一个可应用于数字系统开发或实验时做输入脉冲信号或基准脉冲 信号用的信号发生器,它具结构紧凑,性能稳定,设计结构灵活,方便进行多功能组合的 特点,经济实用,成本低廉。具有产生三种基本波形脉冲信号(正弦波、矩形波和三角波) , 以及三次(及三次以下)谐波与基波的线性组合脉冲波形输出,且单脉冲输出脉宽及连续 脉冲输出频率可调,范围从 100HZ 到 1kHZ,步进为 100HZ;幅度可调,从 0 到 5 伏,步进为 0.1V。 关键词:信号发生器, FPGA,EDA,VHDL 语言。 基于 FPGA 的信号发生器设计论文 - 3 - 基于 FPGA 的信号发生器设计论文 - 4 - 1 前 言 随着我国的经济日益增长,社会对电子产品的需求量也就越来越大,目前, 我国的电子产品市场正在迅速的壮大,市场前景广阔。FPGA(Field Programmable Gate Array,现场可编程门阵列)在现代数字电路设计中发挥着越 来越重要的作用。FPGA/CPLD(Complex Programmable Logic Device)所具有的 静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通 过编程来修改,这样就极大地提高了电子系统设计的灵活性和通用性,缩短了 产品的上市时间并降低可电子系统的开发成本,且可以毫不夸张地讲, FPGA/CPLD 能完成任何数字器件的功能,从简单的 74 电路到高性能的 CPU。它 的影响毫不亚于 20 世纪 70 年代单片机的发明和使用。 现在随着电子技术的发展,产品的技术含量越来越高,使得芯片的复杂程 度越来越高,人们对数万门乃至数百万门设计的需求也越来越多,特别是专用 集成电路(ASIC)设计技术的日趋进步和完善,推动了数字系统设计的迅速发 展。仅靠原理图输入方式已不能满足要求,采用硬件描述语言 VHDL 的设计方式 应运而生,解决了传统用电路原理图设计大系统工程时的诸多不便,成为电子 电路设计人员的最得力助手。设计工作从行为、功能级开始,并向着设计的高 层次发展。这样就出现了第三代 EDA 系统,其特点是高层次设计的自动化。 第三代 EDA 系统中除了引入硬件描述语言,还引入了行为综合工具和逻辑 综合工具,采用较高的抽象层次进行设计,并按层次式方法进行管理,可大大 提高处理复杂设计的能力,缩短设计周期,综合优化工具的采用使芯片的品质 如面积、速度和功耗等获得了优化,因而第三代 EDA 系统迅速得到了推广应用。 目前,最通用的硬件描述语言有 VHDL 和 VerilogHDL 两种,现在大多设计 者都使用 93 年版标准的 VHDL,并且通过了 IEEE 认定,成为世界范围内通用的 数字系统设计标准。VHDL 是一种新兴的程序设计语言,使用 VHDL 进行设计其 性能总是比常规使用 CPU 或者 MCU 的程序设计语言在性能上要高好几个数量级。 这就是说,在传统上使用软件语言的地方,VHDL 语言作为一种新的实现方式会 应用得越来越广泛。本课题设计是采用美国 Altera 公司的 FLEX10K10 器件, 使用的是 Altera 公司的 EDA 软件平台 Maxplus II 可编程逻辑器件开发软件。 基于 FPGA 的信号发生器设计论文 - 5 - 基于 EDA 工具的 FPGA/CPLD 的开发流程 CPLD/FPGA 器件的设计一般可分为 设计输入、设计实现和编程三个设计步骤: 1.设计输入方式主要由文本输入和图形输入两种,可根据需要选择,也可 混合输入。EDA 工具会自动检查语法; 2.设计实现阶段 EDA 工具对设计文件进行编译,进行逻辑综合、优化,并 针对器件进行映射、布局、布线,产生相应的适配文件; 3.编程阶段 EDA 软件将适配文件配置到相应的 CPLDFPGA 器件中,使其能 够实现预期的功能。 信号发生器是数字设备运行工作中必不可少的一部分,没有良好的脉冲信 号源,最终就会导致系统不能够正常工作,更不必谈什么实现其它功能了。不 论是处于开发还是故障检修阶段,输出标准且性能优秀的信号发生器总是能够 带来工作效率的大幅提升,使新产品有一个标准的信号源、损坏的系统得到正 确校验,不会被一些故障所蒙蔽。在传统的信号发生器中,大都使用分立元件, 而且体积庞大携带不便,且大部分只能输出一种脉冲信号波形。在设计领域, 不管采用什么技术生产,生产的产品用在哪里,其产品设计的宗旨都是离不开 以下几点:实用性高、成本低、可升级、功能完善可扩展等!使用专用的数字 电路设计的信号发生器,设备成本高、使用复杂。基于以上考虑,在中小型数 字电路的设计和测试中,迫切需要设计一种小型易用成本低廉的信号发生器。 此课题的设计以小型经济,集成度高,性能稳定,使用方便为指导,在功能上 力求完善实用,同时兼顾商业价值与应用价值的体现。 基于 FPGA 的信号发生器设计论文 - 6 - 2 2 设计方案设计方案 2.1 总体设计思路 1 设计步骤 此设计将按模块式实现,据任务书要求,设计总共分四大步份完成:(1) 产生波形(三种波形:方波、三角波和矩形波)信号;(2)波形组合;(3) 频率控制;(4)幅度控制。 2 设计思想 利用 VHDL 编程,依据基本数字电路模块原理进行整合。系统各部分所需工 作时钟信号由输入系统时钟信号经分频得到,系统时钟输入端应满足输入脉冲 信号的要求。组合波形信号经显示模块输出。具备幅度和频率可调功能,幅度 可通过电位器调整,频率控制模块则是一个简易的计数器,控制步径为 100HZ 的可调频率,最终送至脉冲发生模块输出脉冲信号,达到设计课题所要求的输 出波形频率可调及幅度可调功能。幅度可调功能由于比较简单,可以在 FPGA 外 部利用硬件电路实现。总体设计框图如下图 1 所示: 1KHZ 图 1 总体设计框图 控制电路 正弦波、 方波、 三角波 信号产 生模块 波形组 合选择 模块 幅度控 制/电位 器频率控制 模块/计数 器模块 滤波 电路 FPGA 输出电路 100HZ1KHZ 基于 FPGA 的信号发生器设计论文 - 7 - 2.2 方案论证 2.2.1 方案一 采用 DDS(直接数字频率合成器)来设计,设计总体框图如图 2 所示。在 设计界里众所周知,DDS 器件采用高速数字电路和高速 D/A 转换技术,具有频 率转换时间短、频率分辨率高、频率稳定度高、输出信号频率和相位可快速程 控切换等优点,所以,我们可以利用 DDS 具有很好的相位控制和幅度控制功能, 另外其数据采样功能也是极具精确和完善的,它可以产生较为精确的任何有规 则波形信号,可以实现对信号进行全数字式调制。用 FPGA 和 DDS 实现信号调制, 既克服了传统的方法实现带来的缺点,若采用它来编程设计,必定会事半功倍, 且使设计趋于理想状态。但鉴于 DDS 的占用 RAM 空间较大,我们设计是采用 FPGA10K10 器件,总共只有一万门的逻辑门数量,而整个 DDS 设计下来,大概 最少会占用 3-4 万门的数量,所以在性价比方面不合理,这样也使得我们的设 计会有些不切实际。 频率控制字 信号输出 时钟 图 2 DDS 与 FPGA 总体设计图 2.2.2 方案二 采用震荡器频率合成方案。具体方案如下:首先通过频率合成技术产生所 需要频率的方波,通过积分电路就可以得到同频率的三角波,再经过滤波器就 可以得到正弦波。其优点是工作频率可望做得很高,也可以达到很高的频率分 辨率;缺点是使用的滤波器要求通带可变,实现很难,高低频率比不可能做得 很高。 相位累加 器 ROM D/A 变换 低通 滤波 基于 FPGA 的信号发生器设计论文 - 8 - 2.2.3 方案三 采用 VHDL 语言来编程,然后下载文件到 FPGA 来实现。VHDL 语言是电子设 计领域的主流硬件描述语言,具有很强的电路描述和建模能力,能从多个层次对 数字系统进行建模和描述,从而大大降低了硬件设计任务,提高了设计效率和 可靠性,要比模拟电路快得多。该方案是利用 FPGA 具有的静态可重复编程和动 态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,极大 地提高了电子系统设计的灵活性和通用性,而且大大缩短了系统的开发周期。 2.3 方案确定 由上述三个方案对比,采用第三种方案: 通过 FPGA 软件扫描方式将波形数据读出传输给 DAC0832 产生波形输出。这 种方法在软、硬件电路设计上都简单,且与我们的设计思路紧密结合。 由于幅度控制部分在设计需要用到数字电子,这样有要经过 D/A 转换器再 输出,必将占用大量资源,造成不必要的开销。鉴于有设计经验的同学和老师 的建议,采用一个电位器代替,虽然精确度不够,但是也弥补了性价比方面的 不足。 波形组合如果采用分开式模块实现,也必将导致占用大量的资源,而且模 块设计复杂度提高,只要采用重复调用一个模块的设计方法,既可以降低资源 的占用率,也使得设计更加灵活且有针对性。此信号发生器的特点及功能集成 度高,因采取整体模块式设计,在此也考虑到实际应用中,万一 FPGA 的逻辑门 数量不够,特准备了一套备用方案。 备用方案:将波形数据存放在 6116RAM 中,6116 的存储容量大,且可重复 使用,虽用单片机在速度方面远不及 FPGA,但是这样是在出现上述状况后的最 佳补偿方式。 综合以上涉及方面的分析,因此本次课题采用此方案进行设计。 基于 FPGA 的信号发生器设计论文 - 9 - 基于 FPGA 的信号发生器设计论文 - 10 - 3 软件设计软件设计 3.1 波形产生模块 本设计用 VHDL 语言根据傅立叶函数采集点进行扫描,分别产生正弦波、 三角波和矩形波。以下介绍各种常用周期信号的傅立叶函数展开式。 3.1.1 正弦波 1 设计思想 正弦波发生分为两个步骤,即正弦波幅值采样存储和正弦波波形的还原输 出。幅值采样是将一个周期正弦波进行 64 等分,如图 3 所示,将 64 个采样点 进行量化处理,量化值=255*sin360/64(V) ,将 64 点量化值存入存储器。正弦 波形的产生是通过循环反复将存储器中的 64 点采样值通过 DAC0832 进行还原 输出,得到幅值正比于 64 点采样值的正弦波。 f(t) A t 0.5T -A T 图图 12-18(c) 矩矩形形波波三三 2 VHDL 实现 1正弦信号波形数据文件建立 正弦波波形数据由 64 个点构成,此数据经 DAC0832,可在示波器上观察到 正弦波形。源程序如下程序 1 所示: 程序程序 11 WIDTH=8; -表示数据输出位宽是 8 DEPTH=64; -表示共有 64 个 8 位数据点 ADDRESS_RADIX=HEX; -表示地址信号用十六进制数表示 DATA_RADIX=DEC; -表示输出数据是十进制数 CONTENT BEGIN 00:255;01:254;02:252;03:249;04:245;05:239;06:233;07:225; 08:217;09:207;0A:197;0B:186;0C:174;0D:162;0E:150;0F:137; 图 3 正弦波采样图图 4 方波采样图 T 0 t f(t) 基于 FPGA 的信号发生器设计论文 - 11 - 10:124;11:112;12: 99;13: 87;14: 75;15: 64;16: 53;17: 43; 18: 34;19: 26;1A: 19;1B: 13;1C: 8;1D: 4;1E: 1;1F: 0; 20: 0;21: 1;22: 4;23: 8;24: 13;25: 19;26: 26;27: 34; 28: 43;29: 53;2A: 64;2B: 75;2C: 87;2D: 99;2E:112;2F:124; 30:137;31:150;32:162;33:174;34:186;35:197;36:207;37:217; 38:225;39:233;3A:239;3B:245;3C:249;3D:252;3E:254;3F:255; END; 2定制 ROM 源程序如下所示: SINDATA.VHDSINDATA.VHD: LIBRARY ieee; USE ieee.std_logic_1164.all; entity sindata is port(address:in std_logic_vector(5 downto 0); inclock:in std_logic; q:out std_logic_vector(7 downto 0); end sindata; architecture syn of sindata is signal sub_wire0 :std_logic_vector(7 downto 0); component 1pm_rom generic(1pm_width :natural; 1pm_widthid :natural; 1pm_address_control:string; 1pm_outdata:string; 1pm_file:string); port(address:in std_logic_vector(5 downto 0); inclock:in std_logic; q:out std_logic_v ector(7 downto 0); end component; begin q8,lpm_widthad=6, lpm_address_comtrol=registered,lpm_outdata=unregistered, lpm_file=D:/SIN_G/DATA/sin_data.mif) port map(address=address,inclock=inclock,q=sub_wire0); end syn; 正弦波信号发生器顶层设计源程序:正弦波信号发生器顶层设计源程序: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigend.all; entity signt is port(clk:in std_logic; dout:out std_logic_vector(7 downto 0); 基于 FPGA 的信号发生器设计论文 - 12 - end architecture dacc of singt is component sindata port(address:in std_logic_vector(5 downto 0); inclock:in std_logic; q:out std_logic_vector(7 downto 0); end conponent; signal q1:std_logic_vector(5 downto 0); begin process(clk) begin if clkevent and clk=1then q1q1,q=dout;in clock=clk); end; 3.1.2 矩形波 1 设计思路 矩形波的实现较之正弦波发生简单,由于矩形波是两个电平值间的交替变 换,因此波形采样值的预存只要有两个不同的数值就行了,为了使矩形波发生 的频率灵活可调,采用 60 个采样值扫描输出来实现,每半个矩形波周期采用三 十个采样值,循环反复将存储器中的 60 点采样值通过 DAC0832 进行还原输出, 得到幅值正比于点采样值的矩形波。采样图如图 4 所示。 2 VHDL 实现 源程序见附录。 3.1.3 三角波 1 设计思路 由于三角波是线性的,比较简单就可以产生,如果最低电压设为 15V,最 高是 255V,那么根据它的公式 255/15=17,每个点的电压只要依次加 17 就可以 得到,一个波形所以采用简单的加减算法就可实现,如图 5 所示三角波的采样 图: f(t) A t T -A 图图 12-19 三三角角波波 基于 FPGA 的信号发生器设计论文 - 13 - 图 5 三角波采样图 2 VHDL 实现 具体源程序见附录。 3.1.4 基波 通过 VHDL 编程产生的正弦波、方波、三角波三种周期性波形即为基波。 3.1.5 谐波的产生 采用与基波产生的同样原理,编程产生三种波形的谐波,所不同的是一个 波形的周期采样的点数不同,如果基波采样点为 63 个,谐波采样点数则为 21 个,其每点的电压值为 255*(sin360/60+sin360/20) (V) ,在对其进行循环扫 描即可实现基波与谐波的线性叠加。 3.1.6 波形模块图 最终波形的设计模块图如图 6 所示,L1 是三角波,L2 是方波,L3 是正弦 波,L4 是谐波。 3.2 频率控制模块 本课题要求频率控制是在 100HZ-1KHZ,步进为 100HZ。在本题设计中只需 借助 FPGA 便可完成。根据用户需要的频率,通过编程把频率控制数值传送给各 个模块,从而实现频率的控制。如下图 7 所示: 3.3 选择波形模块 这一部分主要是通过一个按键对波形进行循环选择,按下确认按钮后进 行波形的调用。设计流程图如下图 8 所示 基于 FPGA 的信号发生器设计论文 - 14 - 图 6 波形模块图 图 7 频率控制模块流程图 开始 返回 频率控制 按下否 读入按键数值 调用频率控制 模块 Y N 键按下否? 基于 FPGA 的信号发生器设计论文 - 15 - 确认键按下否? 图 8 选择波形电路设计流程图 3.4 分频器模块 3.4.1 设计思路 分频器模块将输入的高频脉冲降频得到各模块所需的低频脉冲,分频器模 块利用计数器的原理进行设计,通过对预设的分频值进行比较计数,实现输入 高频时钟脉冲的分频输出功能。本次课题的设计方案中使用了十组分频器,其 设计原理完全相同,将对应的频率用 8421BCD 码对其进行编程赋值,如 100HZ 则对应的二进制数是“0000” ,200HZ 则是“0001”1KHZ 则是“1010” 。现选 取其中的 500 分频分频器进行简单说明。具体程序见附录。 3.4.2 VHDL 实现 PROCESS(CLK_IN) 开始 返回 波形选择控 制按下否 进行波形的调用 调用波形选择 程序 Y N Y N 基于 FPGA 的信号发生器设计论文 - 16 - BEGIN IF(CLK_INEVENT AND CLK_IN=0) THEN IF Step249 THEN分频值 Step=Step+1; ELSE Step=0;循环累加 CLK_OUT6, lpm_address_comtrol=registered,lpm_outdata=unregistered, lpm_file=D:/SIN_G/DATA/sin_data.mif) 基于 FPGA 的信号发生器设计论文 - 30 - port map(address=address,inclock=inclock,q=sub_wire0); end syn; 正弦波顶层设计源程序正弦波顶层设计源程序SINGT.VHDSINGT.VHD: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigend.all; entity signt is port(clk:in std_logic; dout:out std_logic_vector(7 downto 0); end architecture dacc of singt is component sindata port(address:in std_logic_vector(5 downto 0); inclock:in std_logic; q:out std_logic_vector(7 downto 0); end conponent; signal q1:std_logic_vector(5 downto 0); begin process(clk) begin if clkevent and clk=1then q1q1,q=dout;in clock=clk); end; AddersAdders 程序:程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDRESS IS PORT(CLK:IN STD_LOGIC; ADDOUT:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); END; ARCHITECTURE ONE OF ADDRESS IS BEGIN PROCESS(CLK) VARIABLE ADDA:STD_LOGIC_VECTOR(5 DOWNTO 0); VARIABLE CON:INTEGER RANGE 0 TO 60; BEGIN IF CLKEVENT AND CLK=1THEN IF ADDA=111100 THEN ADDA:=000000; ELSE ADDA:=ADDA+1; 基于 FPGA 的信号发生器设计论文 - 31 - END IF; END IF; ADDOUTYWCLK,PLCLK=PLCLK,DAIN=DATEIN,LOCK=DATELOCK,SQUIN=SQU,TRIIN=T RII,SININ=SIN,ADDIN=ADD); U2:SELECTE PORT MAP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考物理复习主题单元4第8课时熟悉而陌生的力课件
- 冀少版八年级生物上册第三单元第二节蒸腾作用课件
- 等高线地形图教案
- 《蚂蚁搬豆》体育游戏
- 人教版一年级数学上册【教案全册】
- 旅游景区酒店建设承揽
- 西师版五年级语文上册教案
- 人教版三年级语文上册教案
- 乐器制品标识制度
- 老年护理中心财务流程
- 上海民政局夫妻离婚协议书(2024版)
- 《医院验收总结》课件
- 工程图学(天津大学)智慧树知到期末考试答案章节答案2024年天津大学
- 2024年山东省高考生物试题答案
- 2024年廉洁知识测试卷附答案
- 当代社会政策分析 课件 第十一章 残疾人社会政策
- 洽谈会活动方案策划书
- 幼儿园大班健康教案《养成好习惯》
- 古典概型与几何概型(文科)-2024高考数学复习含解析
- 房地产经营与管理-形考作业三-国开(HB)-参考资料
- 普法学法知识竞赛题库(完整版)
评论
0/150
提交评论