基于FPGA的函数信号发生器的设计与实现

更新时间:2023-04-23 01:57:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

本科学生毕业论文

论文题目:

学 院:

年 级:

专 业:

姓 名:

学 号:

指导教师: 基于FPGA的函数信号发生器的设计与实现 物理科学与技术学院 2008级 应用物理学

2012 年 4 月 28 日

摘要

波形发生器己成为现代测试领域应用最为广泛的通用仪器之一,代表了信号源的发展方向。直接数字频率合成(DDS)是二十世纪七十年代初提出的一种全数字的频率合成技术,其查表合成波形的方法可以满足产生任意波形的要求。由于现场可编程门阵列(FPGA)具有高集成度、高速度、可实现大容量存储器功能的特性,能有效地实现DDS技术,极大的提高函数发生器的性能,降低生产成本。

本文首先介绍了函数波形发生器的研究背景和FPGA的理论。然后详尽地叙述了用FPGA完成信号发生器模块的设计过程,接着分析了整个设计中应处理的问题,根据设计原理就功能上进行了划分,将整个仪器功能划分为控制模块、FPGA器件来实现。最后就这几个部分分别进行了详细阐述。

关键词

EDA;函数信号发生器;FPGA;

Abstract

The waveform generator has become the modern testing,the most widely used one of the General Instrument,on behalf of the development direction of the signal source. Direct digital frequency synthesis (DDS) is proposed in the early 1970s,an all-digital frequency synthesizer technology,and its look-up table of the synthetic waveform to meet any waveform requirements.Field programmable gate array (FPGA) with a high integration,high speed,can achieve the functional characteristics of large-capacity memory can effectively achieve the DDS technology,which greatly improves the performance of the function generator, reduce production costs.

This paper first introduces the background and FPGA theory of the function waveform generator. Then a detailed account of the complete signal generator module with FPGA design process, and then analyze the issues to be addressed throughout the design, functions based on design principles of pision of the instrument function is pided into a control module, FPGA devices to achieve . Finally, on several parts were described in detail.

Key words

EDA;Function Generator;FPGA

目录

摘要 ............................................................................................................................................ I Abstract ................................................................................................................................... II

第一章 绪论 ............................................................................................................................. 1

1.1研究背景及意义 ......................................................................................................... 1

1.2 国内外动态 ................................................................................................................ 1

1.3函数波形发生器的几种实现方式 ............................................................................. 2

1.3.1程序控制输出 .................................................................................................. 2

1.3.2 DMA输出 .......................................................................................................... 3

1.3.3直接数字频率合成 .......................................................................................... 3

第二章 直接数字频率合成器的原理和性能 ......................................................................... 4

2.1频率合成器技术简介 ................................................................................................. 4

2.2 DDS原理 ..................................................................................................................... 5

第三章 FPGA技术介绍 .......................................................................................................... 6

3.1 FPGA简介 ................................................................................................................... 6

3.1.1 背景 ................................................................................................................. 6

3.1.2 CPLD与FPGA的关系 ...................................................................................... 6

3.2 FPGA的工作原理 ................................................................................................ 7

第四章 程序设计 ..................................................................................................................... 8

4.1函数信号发生器的设计 ............................................................................................. 8

4.1.1 芯片介绍 ......................................................................................................... 8

4.1.2 整体构想 ......................................................................................................... 9

4.2 各单元模块设计 ........................................................................................................ 9

4.2.1分频模块 .......................................................................................................... 9

4.2.2 方波模块 ....................................................................................................... 11

4.2.3三角波模块 .................................................................................................... 14

4.2.4正弦波模块 .................................................................................................... 15

4.2.5波形选择模块(顶层模块) ........................................................................ 18

4.3整体设计 ................................................................................................................... 19

4.4硬件的安装与调试 ................................................................................................... 19

4.4.1 引脚分配 ....................................................................................................... 19

4.4.2程序下载 ........................................................................................................ 20

4.4.3系统调试 ........................................................................................................ 21

第五章 总结与展望 ............................................................................................................... 22

5.1论文设计总结 ........................................................................................................... 22

5.2 FPGA技术展望 ......................................................................................................... 22

参考文献 ................................................................................................................................. 24

致谢 ......................................................................................................................................... 25

第一章 绪论

1.1研究背景及意义

波形发生器即通常所说的信号发生器是一种常用的信号源,广泛应用于通信 雷达测控,电子对抗以及现代化仪器仪表等领域,是一种为电子测量工作提供符合严格技术要求的电信号设备,和示波器、电压表、频率计等仪器一样是最普通、最基本也是应用最广泛的电子仪器之一,几乎所有电参量的测量都要用到波形发生器。随着现代电子技术的飞速发展,现代电子测量工作对波形发生器的性能提出了更高的要求,不仅要求能产生正弦波、方波等标准波形,还能根据需要产生任意波形,且操作方便,输出波形质量好,输出频率范围宽,输出频率稳定度、准确度及分辨率高,频率转换速度快且频率转换时输出波形相位连续等。可见,为适应现代电子技术的不断发展和市场需求,研究制作高性能的任意波形发生器 (ArbitrarywaveformGenerator,简称AWG)十分有必要,而且意义重大。一般传统的信号发生器都采用谐振法,即用具有频率选择性的回路来产生正弦振荡,获得所需频率。这种信号发生器虽然具有输出信号频率范围宽,结构简单等优点,但输出波形单一,不能产生任意波形,且频率稳定度和准确度较差,频率准确度一般在0.5%以下,对于作为精密测量用的信号发生器,其频率稳定度一般要求达到0.1%。

因此传统的信号发生器己经越来越不能满足现代电子测量的需要,正逐步退出历史舞台。而基于频率合成技术制成的信号发生器,由于可以获得很高的频率稳定度和精确度,因此发展非常迅速,尤其是最近随着现代电子技术的不断发展,其应用更是有了质的飞跃。

1.2 国内外动态

直接数字频率合成技术(DDS)的理论早在20世纪70年代就被提出,它的基本原理就是利用采样定理,通过查表发产生波形。由于硬件技术的限制,DDS技术当时没能得到广泛应用。但是随着大规模集成电路的飞速发展,DDS技术的优越性已逐步显现出来。今天DDS技术凭借其优越的性能已成为现代频率合成技术中的佼佼者,广泛用于接受机本振、信号发生器、仪器、通信系统、雷达系统等,尤其适合跳频无线电通信系统。不少学者认为,DDS是产生信号和频率的一种理想方法,发展前景十分广阔。

而EDA技术更是现代电子设计技术的核心。20世纪90年代以来,微电子工艺有了惊人的发展。为了满足千差万别的系统用户提出的设计要求,最好的办法是由用户自己设计芯片。这个阶段发展起来的EDA工具,目的是在设计前期将原来设计师从事的许多高层次设计工作改由工具来完成。设计师通过一些简单标准化的设计过程,利用微电子厂家提供的设计库来完成数万门ASIC和集成系统的设计与验证。这样就对电子技术的工具提出了更高的要求,提供了广阔的发展空间,促进了EDA技术的形成。

到了二十一世纪,随着集成电路技术的高速发展, 2003年Agilent能够产生高达50OMHz的频率,采样的频率可达 1.25GHz。由此可以看出,函数波形发生器发展的很快。

随着通信设备的迅速更新换代并不断向智能化、多功能化发展,新的厂商不断出现,为保持竞争实力,必须采用FPGA设计的ASIC电路。现在FPGA在通信中的应用越来越多,例如:专用自动小交换机、多功能电话机、数字终端设备、区域网汇接站、数字信号处理、通信工具及 自动化测试等,均广泛采用了FPGA及用PGA开发的ASIC电路。我国近几年迅速发展起来的光通信系统中也较多地采用了FPGA器件。倒如邮电部激光研究所开发的140Mb/s光缆通信系统中,光电端机设备采用了FPGA器件,设备已被用于京一汉一广(全长3074km)光缆工程中。该所制作的565Mb/s光端机、 光中继机也都采用了FPGA器件,已被用于上海一南京 (全 长383km)韵五次群光缆工程[1]。

虽然FPGA有很多优点和广阔的发展空间,但是它也存在一些问题,例如FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。

1.3函数波形发生器的几种实现方式

函数波形发生器的实现方式主要有程序控制输出、DMA输出和直接数字频率合成等多种方式。

1.3.1程序控制输出

计算机根据波形的函数表达式,计算出一系列波形数据瞬时值,并定时地逐个传送给D/A转换器,合成出所需要的波形。这种方式具有电路简单、实现方便等特点。但数据输出定时不准确,会影响信号的频率和相位;波形数据输出依靠指令的执行来完成,

当需要同时输出多个信号时,相邻信号通道的输出存在时间差;受计算机运行速度的限制,输出信号的频率较低。

1.3.2 DMA输出

DMA输出方式不依赖于程序的执行,由DMA控制器申请总线控制权,通过地址总线给出存储器的地址信号,同时选通存储器和D/A转换器,在两者之间建立直接的数据通道,使存储器相应单元中的波形数据传送给D/A转换器转换后输出信号。DMA方式输出信号,可以大大提高信号的数据输出速率。但也存在一些问题,如波形输出期间,微处理器因为失去了总线控制权,无法进行其他操作;在一个DMA操作中,只能在一个D/A转换器和存储器之间传送数据,无法实现多通道的信号输出[2]。

1.3.3直接数字频率合成

DDS(direet digital synthesizer)是在一组存储器单元中按照信号波形数据点的输出次序存储了将要输出波形的数据,在控制电路的协调控制下,以一定的速率,周而复始地将波形数据依次发送给D/A转换器转换成相应的模拟信号。由于用硬件电路取代了计算机的控制,信号输出稳定度高。如需更新输出信号,不必改动任何线路和元器件,只需改写存储器中的波形数据即可。更主要的是,可以将微处理器从信号输出的负担中解脱出来。

[3]

第二章 直接数字频率合成器的原理和性能

2.1频率合成器技术简介

频率合成器是利用一个或多个标准信号,通过各种技术途径产生大量离散频率信号的设备。直接数字式频率合成(DDS)技术是继直接频率合成和间接频率合成之后,随着数字集成电路和微电子技术的发展而迅速发展起来第三代频率合成技术。它以数字信号处理理论为基础,从信号的幅度相位关系出发进行频率合成,具有极高的频率分辨率、极短的频率转换时间、很宽的相对带宽、频率转换时信号相位连续、任意波形的输出能力及数字调制功能等诸多优点,正广泛地应用于仪器仪表、遥控遥测通信、雷达、电子对抗、导航以及广播电视等各个领域。尤其是在短波跳频通信中,信号在较宽的频带上不断变化,并且要求在很小的频率间隔内快速地切换频率和相位,因此采用DDS技术的本振信号源是较为理想的选择。这种方法简单可靠、控制方便,且具有很高的频率分辨率和转换速度,非常适合快速跳频通信的要求。

信号源的一个重要指标就是能输出频率准确可调的所需信号。一般传统的信号发生器采用谐振法,即用具有频率选择性的正反馈回路来产生正弦振荡,获得所需频率信号,但难以产生大量的具有同一稳定度和准确度的不同频率。利用频率合成技术制成的信号发生器,通常被称为频率合成器。频率合成器既要产生所需要的频率,又要获得纯净的信号。频率合成器有以下几个主要指标:

(1)输出频率范围(fmin-fmax):指的是输出的最小频率和最大频率之间的变化范围。

(2)频率稳定度:指的是输出频率在一定时间间隔内和标准频率偏差的数值,分为长期、短期和瞬时稳定度三种。

(3)频率分辨率:指的是输出频率的最小间隔。

(4)频率转换时间:指的是输出由一种频率转换成另一频率的时间。

(5)频谱纯度:频谱纯度以杂散分量和相位噪声来衡量,杂散分量为谐波分量和非谐波分量两种,主要由频率合成过程中的非线性失真产生,相位噪声是衡量输出信号相位抖动大小的参数。

(6)调制性能:指的是频率合成器是否具有调幅(AM)、调频(FM)、调相(PM)

等功能。 [6]

2.2 DDS原理

DDS同 DSP(数字信号处理)一样,是一项关键的数字化技术。与传统的频率合成器相比,DDS具有低成本、低功耗、高分辨率和快速转换时间等优点,广泛使用在电信与电子仪器领域,是实现设备全数字化的一个关键技术。

DDS芯片的主要结构包括:相位累加器、波形ROM、D/A转换器以及低通滤波器四个部分。

但DDS也有比较明显的缺点:(l)输出信号的杂散比较大;(2)输出信号的带宽受到限制。DDS输出杂散比较大,这是由于信号合成过程中的相位截断误差、D/A转换器的截断误差和D/A转换器的非线性造成的。当然随着技术的发展,这些问题正在逐步得到解决。如通过增长波形ROM的长度也减小相位截断误差;通过增加波形ROM的字长和D/A转换器的精度以减小D/A量化误差等。在比较新的DDS芯片中普遍都采用了 12bit的D/A转换器。当然一味靠增加波形ROM的深度和字长的方法来减小杂散对性能的提高总是有限的。已有研究在对DDS输出的频谱做了大量的分析后,总结出了误差的领域分布规律建立了误差模型,在分析DDS频谱特性的基础上又提出了一些降低杂散功率的方法,如:可以通过采样的方法降低带内误差功率。

第三章 FPGA技术介绍

3.1 FPGA简介

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

3.1.1 背景

目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。

FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件)[7]。

3.1.2 CPLD与FPGA的关系

早在1980年代中期,FPGA已经在PLD设备中扎根。CPLD和FPGA包括了一些相对大数量的可编辑逻辑单元。CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。

CPLD和FPGA的主要区别是他们的系统结构。CPLD是一个有点限制性的结构。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比

率的优点。而FPGA却是有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。

CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的内置模块(比如加法器和乘法器)和内置的记忆体。因此一个有关的重要区别是很多新的FPGA支持完全的或者部分的系统内重新配置。允许他们的设计随着系统升级或者动态重新配置而改变。一些FPGA可以让设备的一部分重新编辑而其他部分继续正常运行。 [10]

3.2 FPGA的工作原理

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件。与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程[7][10]。

第四章 程序设计

4.1函数信号发生器的设计

4.1.1 芯片介绍

根据论文的内容和程序的具体设计以及结合现有环境,本次选用的芯片型号为

EPM240T100C5N作为信号发生器的芯片。与上一代MAX器件相比,MAX II的成本降低了很多,而且功耗仅为原来的十分之一,但是保持了该系列芯片的很多特点,如:瞬态启动、单芯片、非易失性和易用性等。新的系列器件容量翻了两倍,性能是上一代芯片的两倍多,使应用该芯片的产品的设计者能够采用此芯片来替代昂贵和不够灵活的老式芯片及其他品牌芯片。MAX II器件的主要性能特性如下:

(1)成本优化的架构。新型MAXⅡCPLD 架构包括基于TUT 的LAB,非易失性Flash 存储器快和JTAG 控制电路。多轨道连线设计采用最有效的直接将逻辑输入连接到输出的连线方式,从而获得了最高性能和最低的功耗。

(2)低功耗

(3)高性能。MAXⅡ器件支持高达300HZ 的内部时钟,可为用户提供更高的系统级性能。

(4)用户Flash 存储器MAXⅡ内的用户Flash 存储器是一个容量为8KB,永和可访问且可编程的一个非易失性的存储器,从而可减少系统芯片数量和成本。

(5)实时在系统可编程能力(ISP)。MAXⅡ器件支持实时ISP,准许用户编程正在工作的器件。这个功能可使得用户可以快速地进行现场产品升级,而无须将设备断电之后再重新进行初始化配置。

(6)灵活的多电压内核。MAXⅡ架构支持多电压,准许器件在1.8V、2.5V 或3.3V电源电压环境下工作。该特性使设计者可以减少电源电压的种类数量,简化板级设计。

(7)JTAG 翻译器。MAXⅡ具有一种被称为JTAG 翻译器的功能,这种功能准许通过MAXⅡ器件执行定制的JTAG 指令,配置单板上不兼容JTAG 协议的器件,从而简化了单板管理。

(8)I/O 功能。MAXⅡ的I/O 能力加强了其易用性和系统集成能力。 [8]

4.1.2 整体构想

本设计是通过Quartus II软件编程从而实现信号发生器的设计。具体使用的开发板如下图所示

:

图4.1.2 EPM240开发板实物图

本设计将采用拨码开关的低三位来控制系统在各个波形之间的转换。并利用开发板上自带的D/A转换芯片DAC0832来进行D/A转换,从而达到多功能函数信号发生器的设计目的。

4.2 各单元模块设计

4.2.1分频模块

分频模块是将FPGA芯片内部的时钟脉冲进行分频,从而满足示波器的频率。具体设计程序如下:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity fenpin is

port(clk:in std_logic;

q:out std_logic);

end entity;

architecture one of fenpin is

signal cnt:std_logic_vector(2 downto 0);

signal clk_temp:std_logic;

constant m:integer:=99;

begin

process(clk)

begin

if clk'event and clk='1' then

if cnt=m then

clk_temp<=not clk_temp;

cnt<="000";

else

cnt<=cnt+1;

end if;

end if;

end process;

q<=clk_temp;

end one;

图4.2.1(1)分频模块示意图

图4.2.1(2)分频模块仿真

4.2.2 方波模块

由于方波的占空比是50%,且只有两个状态,故方波取样比较简单。它的值经过128个时钟脉冲秒跳变一次,形成输出方波,也就是从00经过128个时钟脉冲后变为FF,从而实现了0…1…0…1 的值变化。具体设计程序如下:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

entity fangbo is

port(reset:in std_logic;

clk: in std_logic;

cnt: buffer std_logic_vector(7 downto 0));

end entity;

architecture one of fangbo is

begin

process(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<="11111111";

count:=count+1;

else count:=count+1;

end if;

end if;

end process;

end one;

4.2.2(1)方波模块示意图

图4.2.2(2)方波模块仿真

图4.2.2(3)输出方波波形

4.2.3三角波模块

具体设计程序如下:

Library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

entity sanjiaobo is

port(reset:in std_logic;

clk: in std_logic;

cnt: buffer std_logic_vector(7 downto 0));

end entity;

architecture one of sanjiaobo is

begin

process(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="00000000"then

up:=1;

cnt<="00000001";

else cnt<=cnt-1;

本文来源:https://www.bwwdw.com/article/rivq.html

Top