基于FPGA的任意信号发生器

合集下载

基于FPGA的任意信号发生器设计

基于FPGA的任意信号发生器设计

Design of arbitrary signal generator based on FPGA
Xu Minghui (College of Information Science and Technology, Chengdu University of Technology,610059)
Abstract :Arbitrary waveform signal generator plays a great role in the design of modern electronic products,is a kind of development in the digital signal technology,the continuous development of large scale integrated circuit technology in a new measurement tool.To meet the requirements of the special signal,but also can simulate the actual life of a variety of signals,to help us to measure the signal.In this paper,we will use the DDS principle to implement any signal generator based on FPGA. Keywords :direct frequency synthesis (DDS);programmable gate array (FPGA);D/A
2016.22
设计与研发
基于 FPGA 的任意信号发生器设计

基于FPGA的任意信号发生器外文翻译

基于FPGA的任意信号发生器外文翻译

。性线非分微少减地度限大最�宽位的匀均得获而从�迟延播传的致一的器
贴粘件文个这�件文的 IICSA 个一出输到码编是表算试。化小最的道通斜倾的体群
。中件文定指的制编的件软计设 AGPF aretlA 与 II sutrauQ 为到
内的 AGPF 和器存寄样采多�制控来区冲缓入输置设过通路通号信的键关序时
存寄样采到区冲缓入输从证保�局布的称对种这。示所 3 图如器存寄移转域钟时部
CDT 的计设目项级升 PPIM 室验实米费为 。了用有常非经已 CDT 的中 AGPF 在
。载记有也中文论在卡
。节二第在述描 的细详。单简常非得变中计设的们我在码解。息信间时达到的号信入输着带携是而 �失损何任有没段阶样采在性定稳该�上实事�制限被才段阶样采在性定稳该。用使 被路电存锁数计和器波滤冲脉�式模位个一的测检集边个一有只且即立域钟时个一 在到移转样采个四�中计设 CDT 的们我在。化杂复辑逻码编和除消性定稳在得使这 �效有内间时的同不在们他�多过据数组四的到集收路电组四由。动驱钟时离分相 度 09 个四由是器存锁数计和器波滤冲脉�测检缘边�样抽个四�到提中]7[献文考参 在。案方样采多的钟时四及涉是 CDT 的用使中作工项这在们我。案方样采多和案方
同不使于便�组迟延入输的脚引入输从整调断不去置位的组道通 4 个一每好排安步 �中件器 AGPF en olcyC 在。格表子电在存保被都置位的器发触和区冲缓入输在�项 01 约道通每�道通 CDT 的有所。成完表据数子电的“动手“由局布件元辑逻 径路键关序时的中 AGPF 3 图 一进会能可者计设。示所面上如�里�BAL �块列阵辑逻个五在中集被都道通个四
日 01 月 3 年 1102 校分昌武学大技科中华
振王 师 教 导

基于FPGA的任意信号发生器设计外文翻译

基于FPGA的任意信号发生器设计外文翻译

基于FPGA的数字信号发生器的设计在现代电子测量技术的研究及应用领域中,常常需要高精度且参数可调的信号源。

数字信号发生器已成为现代测量领域应用最为广泛的通用仪器之一,代表了信号源的发展方向。

而随着大规模可编程逻辑器件FPGA的发展以及可编程片上系统(SOPC)设计技术的日渐成熟,为这类信号发生器的设计与实现提供了理论依据与技术支持。

本文设计的数字信号发生器以直接数字频率合成(DDS)技术为核心,用现场可编程门阵列(FPGA)来实现频率和相位的预置和改变,并完成信号的频率和相位差显示。

设计中采用的是直接数字频率合成(DDS)技术,该技术是一项关键的数字技术,能很好的实现信号在幅度,频率以及相位等方面的移动。

系统以EDA软件为工具,采用VHDL语言,满足了对数字信号控制的更高要求。

结果表明,采用EDA技术设计的数字信号发生器使得数控系统与其他的电路实现的数字信号发生器相比具有更高的可靠性、实时性、运算速度高以及集成度高等特点。

该数字信号发生器的设计可像软件一样随时更改,这就为系统维护带来了方便,同时结合FPGA有效地扩展输出波形的频率范围,实现了输出两路高精度相位差的正弦信号,使系统性能稳定可靠。

关键词:信号发生器;DDS;片上可编程系统;FPGA;1 导言FPGA本质上是一种数字设备。

然而,随着FPGA的资源合理使用,使用FPGA 进行数字化多通道模拟波形成为了一种可能。

数字化的波形可直接在FPGA内部处理。

目前有几种模拟信号数字化的可能的方案。

我们计划在FPGA 模数转换器的研究中使用一种基于在图1所示的斜坡比较的方法。

图1 基于FPGA的模数转换器模拟输入均直接连接到FPGA的输入引脚。

一个无源RC网络连接到FPGA的输出引脚,以便生成定期参考电压斜坡。

当参考电压斜坡到达输入电压等级时,差分输入缓冲器被用作比较器来产生FPGA内部逻辑转换。

转换时间是通过TDC块在FPGA中实现被数字化的。

从这段时间以后,RC网络参数和坡道起动时间可以从已知的输入电压大小而得到。

基于FPGA的任意波形发生器设计与实现

基于FPGA的任意波形发生器设计与实现
图1.1参数测量系统模型框图
采用“激励—响应”方法进行系统参数测量时,需要产生已知的激励信号输入到被测系统,系统对激励信号输出相应的响应信号,通过对该响应的测定和分析找出被测系统的输入—输出关系,从而定义系统的性能。由此我们可以看出,高质量激励信号的产生是系统参数测量中一个重要的环节,标准理想的输入激励是整个测试系统正确工作的基础,它从根本上影响测量系统的性能。
传统的信号发生器一般基于模拟技术。它首先生成一定频率的正弦信号,然后再对这个正弦信号进行处理,从而输出其他波形信号(例如通过比较器可以输出方波信号,对方波信号通过积分器可以生成三角波信号等)。这种方法的关键在于如何生成特定频率的正弦信号。早期的信号发生器大都采用谐振法,后来出现采用锁相环等频率合成技术的信号发生器。但基于模拟技术的传统信号发生器能生成的信号类型比较有限,一般只能生成正弦波、方波、三角波等少数的规则波形信号。如果需要生成较复杂的波形信号,电路的复杂度及设计难度都将大大增加。
任意波形发生器是现代电子测试领域应用最为广泛的通用仪器之一,它的功能远比函数发生器强,可以产生各种理想及非理想的波形信号,对存在的各种波形都可以模拟,广泛应用于测试、通信、雷达、导航、宇航等领域。
1.2任意波形发生器的功能
任意波形发生器既具有其他信号源的信号生成能力,又可以通过各种编辑手段生成任意的波形采样数据,方便地合成其他信号源所不能生成的任意波形,从而满足测试和仿真实验的要求。任意波形发生器的主要功能[3]包括:
1.3国内外发展现状
采用可变时钟和计数器寻址波形存储器的任意波形发生器在一段时期内曾得到广泛的应用,其取样时钟频率较高且可调节,但其对硬件要求比较高,需要高性能的锁相环和截止频率可调的低通滤波器(或者多个低通滤波器),且频率分辨率低,频率切换速度较慢,已经逐步退出市场。

基于FPGA的任意波形发生器设计

基于FPGA的任意波形发生器设计

基于FPGA的任意波形发生器设计与研究摘要:在此基于DDS技术进行任意波形发生器的研制。

以单片机为控制核心,采用FPGA芯片EP1C3T144C8,通过使用相位累加器和波形ROM等模块实现DDS功能,可产生正弦波、方波、三角渡与锯齿波等常规波形,而且能够产生任意波形,并通过键盘一一对应波形,从而满足研究的需要。

最后给出系统产生的测试数据,并对影响频谱纯度的杂散与噪声产生的原因进行分析。

关键词:FPGA;DDS;任意波形发生器;杂散引言任意波形发生器(Arbitrary Waveform Generator,AWG)是一种多波型的信号发生器,它不仅能产生正弦波、指数波等常规波形,也可以表现出载波调制的多样化,如:产生调频、调幅、调相和脉冲调制等。

更可以通过计算机软件实现波形的编辑,从而生成用户所需要的各种任意波形。

任意波形发生器的实现方案主要有程序控制输出、DMA输出、可变时钟计数器寻址和直接数字频率合成(DDS)等多种方式。

目前任意波形发生器的研制主要基于DDS 技术,与传统的频率合成器相比,DDS具有低成本、低功耗、高分辨率和快速转换时间等优点,广泛使用在通信、测量与电子仪器领域,是设备全数字化的一个关键技术。

1 任意波形发生器的理论分析1.1 DDS技术简介DDS(Direct Digital Synthesis)的概念由美国学者J.Tierney、C.M.Rader和B.Gold 在1971年提出。

该技术是从相位的概念进行频率合成,主要优点是输出相位连续、相对带宽较大、频率分辨率很高、可编程、准确度和稳定度都比较高。

DDS技术是利用查表法来产生波形,而通过修改存储在ROM里的数据,就可以产生任意波形。

1.2 DDS基本结构DDS主要有相位累加器、ROM波形查询表、数模转换器组成。

其基本框图如图1所示。

线性数字信号通过相位累加器逐级实现,波形函数存储在ROM中,根据累加器输出的相位值作为地址,寻找存储在ROM中的波形函数的幅度量化值,完成相位到幅值的转换,输出相对应的序列。

基于单片机和FPGA的DDS任意波形信号发生器的设计

基于单片机和FPGA的DDS任意波形信号发生器的设计

基于单片机和FPGA的DDS任意波形信号发生器的设计摘要:本文主要对任意波形信号发生器的软硬件设计进行了相关的研究,并提出了一种新的设计思路,以现场可编程器件FPGA和单片机芯片为核心,设计任意波形信号发生器的硬件连线电路和编写相关软件程序,实现了上位机对硬件模块部分产生任意波形信号的控制。

关键词:信号发生器任意波形AT89C51FPGA1 引言任意波形发生器是电子技术领域应用最为广泛的电子测量仪器,它是信号源发展方向的代表。

由于DDS技术的查找合成波形的方法能够满足产生任意波形的要求,所以,目前大多数生产任意波形发生器的厂家都利用DDS技术来实现任意波形发生器。

本设计采用TMEL公司的单片机芯片和Xilinx公司的Virtex-Ⅱ系列FPGA芯片来实现任意波形信号发生器硬件部分的电路设计,采用美国NI公司的Labwindows/CVI作为开发平台,开发一个任意波形信号发生器的波形编辑软件,从而实现任意波形信号发生器软件模块对硬件模块产生相应波形信号的控制。

2 系统硬件设计在不影响功能的情况下,本设计简化了硬件部分的电路设计,把设计分成了多个实现模块,主要有单片机实现模块和FPGA实现模块。

单片机实现模块主要是由ATMEL公司的AT89C51芯片实现,该模块是用来完成数据传输、通信和控制数据处理电路工作等功能的。

FPGA实现模块是由Xilinx公司的FPGA芯片XC2V3000结合一些其他电路实现的,主要是用来完成DDS数据处理,实现任意波形的输出。

2.1单片机实现模块本设计选用ATMEL公司的单片机芯片AT89C51,AT89C51采用ATMEL技术,与MCS-51指令集和输出管脚相兼容,是一种高效微控制器。

本设计利用AT89C51主要是来控制显示、键盘以及FPGA电路。

单片机芯片AT89C51与液晶显示器的连线图如图1所示,AT89C51与液晶显示器通过P0口和P2口的部分位连接实现,并通过AT89C51芯片的和功能端实现读写控制。

基于FPGA的多功能信号发生器

基于FPGA的多功能信号发生器

基于FPGA的多功能信号发生器一.实验目的:1.了解GW48-CK综合实验箱结构2.熟悉VHDL语言3.了解FPGA芯片<EP1K30TC144-3)结构及引脚4.了解D/A芯片<DAC0832)结构[5.熟悉FPGA设计软件quartus ii 9.0的使用6.掌握产生三角波,锯齿波,梯形波的原理7.学会用FPGA设计多功能信号发生器二.实验仪器及设备:1.pc机2.GW48-CK型FPGA综合实验箱3.FPGA芯片:EP1K30TC144-34.D/A芯片:DAC08325.示波器6.quartus ii 9.0仿真软件三.实验要求:.设计基于FPGA的多功能信号发生器,此信号发生器可产生的波形有:正弦波,方波,三角波,斜升锯齿波,斜降锯齿波,梯形波,阶梯波,双阶梯波中的六种。

F1NgHcUqUBb5E2RGbCAP设计软件要求用quartus ii,先用该软件仿真,再接上FPGA实验箱,编译,运行并下载到实验箱,用示波器观察期指定输出端波形。

F1NgHcUqUBp1EanqFDPw四.实验原理:1.基于QUASTUS II 9.0平台,利用DDS<直接数字信号合成)技术,采用VHDL语言,设计一波形信号发生器。

首先根据对各波形的幅度进行采样,获得各波形的波形数据表,然后FPGA根据输入的时钟<频率可根据要求可变)作为地址信号,从FPGA数据线上输出相应的波形数据,再送入GW48-CK实验板上的D/A转换芯片进行转换为模拟信号,最后送入滤波电路滤波后输出。

F1NgHcUqUBDXDiTa9E3d2.实验整体框图如下:由方波模块<niushengli_fb)、阶梯波模块<niushengli_jtb)、正弦波模块<niushengli_sin)、三角波模块<niushengli_sjb)、斜升锯齿波模块<niushengli_xsjcb)、斜降锯齿波模块<niushengli_xjjcb)、6选1选择器<niushengli_mux61)以及反向器<not)组成。

基于FPGA的DDS信号发生器设计

基于FPGA的DDS信号发生器设计

基于FPGA的DDS信号发生器设计随着现代科技的不断发展,数字信号发生器(DDS)已成为各种电子设备中常用的一种功能模块。

使用DDS技术可以生成高质量、高稳定性的各种频率和波形的信号。

而FPGA(Field Programmable Gate Array)作为一种可编程逻辑器件,具有高集成度、高速度和灵活性等优势,逐渐成为了实现DDS信号发生器的主要选择之一一、DDS技术概述DDS(Direct Digital Synthesis)技术是一种基于数字直接合成的方法,通过计算机算法精确地合成期望的波形。

它的工作原理是将时钟信号分频得到一系列的离散相位值,再通过查表和插值的方法得到对应的幅值,最后通过一个DAC(Digital to Analog Converter)将数字信号转换为模拟信号输出。

二、基于FPGA的DDS信号发生器设计步骤1.系统架构设计根据DDS信号发生器的要求,确定所需的系统架构。

一般包括时钟模块、相位累加器、查找表、插值器、DAC和控制逻辑等模块。

2.时钟模块使用FPGA内部的资源或外部时钟源生成所需的系统时钟信号。

可以通过时钟分频和PLL(Phase-Locked Loop)锁相环技术来实现对系统时钟的精确控制。

3.相位累加器利用FPGA的寄存器或分频模块实现相位累加功能。

通过周期性地累加相位增量,可以得到DDS信号的相位。

4.查找表利用FPGA内部的RAM(Random Access Memory)存储相位对应的幅值。

根据相位的大小来查找对应的幅值,存储在RAM中。

5.插值器可以通过线性插值或差值的方法对相位查找表的输出进行插值,以提高输出信号的精度和稳定性。

6.DAC将插值器输出的数字信号转换为模拟信号,通过FPGA的IO端口或专用的DAC芯片输出到外部电路。

7.控制逻辑设计合适的控制逻辑,可以通过外部接口或FPGA内部的控制模块来控制DDS信号发生器的频率、幅值、相位偏移等参数。

基于FPGA的任意信号发生器

基于FPGA的任意信号发生器

基于FPGA的任意信号发生器0 引言在电子、通信、实验教学等领域,高精度、高分辨率、幅度相位可控的信号发生器有着广泛的应用。

一般的信号源设计都采用频率合成技术,随着直接数字频率合成(DDS)技术的发展,很多芯片公司都开发出了自己的DDS 专用集成芯片,同D/A 转换器和低通滤波器(LPF)一起便可以组成任意波形信号发生器。

但是为了产生高频正弦信号,则对D/A 的转换速率提出了更高的要求,从而增加信号源的成本,不利于信号源在低成本场合的应用和推广。

本文提出一种新的任意波形的产生方式,采用FPGA 和单片机相结合的方法,即利用DDS 思想,结合PWM 原理,通过倒锯齿波截取正弦信号,将所得数据存储在FPGA 的ROM 表中,通过调节频率基准来改变输出信号频率,通过改变初始相位达到产生相移的目的。

正弦信号经过放大?程控衰减电路后实现频率、相位、幅度的改变,而方波和锯齿波则可利用正弦信号外接比较器实现。

利用电压基准和多圈电位器组成可控门限的比较器,实现矩形波占空比在0.1% 至99.9% 范围可调,其分辨率不低于0.1%。

采用本文的设计方案,在保证输出信号精度的同时,可实现实验用低成本的任意信号发生器设计。

1 设计原理DDS 即Direct Digital Synthesizer 直接数字合成器。

DDS 系统的核心是相位累加器,在参考时钟fc的控制下,相位累加器对频率控制字K进行线性累加,得到的相位码?(n)作为地址对波形存储器寻址,得到离散的幅度编码。

本文采用FPGA 器件实现DDS 的核心单元,其中正弦查找表由ROM 构成,内部存有一个完整的正弦波的数字幅度信息,每个查找表的地址对应正弦波形中0?? ? 360??范围的一个相位点。

相位寄存器每经过2n / M 个c f 时钟周期后回到初始状态,相应地正弦查找经过一个循环回到初始位置,DDS 输出一个正弦波。

输出的正弦波周期(2n / )out c T = M T ,频率(2n / )out c f = M f 。

基于FPGA的信号发生器设计

基于FPGA的信号发生器设计

基于FPGA的信号发生器设计 以FPGA 芯片为载体,通过QuartusII 的LPM_ROM 模块和VHDL 语言为核心设计一个多功能信号发生器,根据输入信号的选择可以输出递增锯齿波、递减锯齿波、三角波、阶梯波和方波等5 种信号,通过QuartusII 软件进行波形仿真、定时分析,仿真正确后,利用实验板提供的资源,下载到芯片中实现预定功能。

信号发生器又称为波形发生器,是一种常用的信号源,广泛应用于电子电路、通信、控制和教学实验等领域。

它是科研及工程实践中最重要的仪器之一,以往多用硬件组成,系统结构比较复杂,可维护性和可操作性不佳。

随着计算机技术的发展,信号发生器的设计制作越来越多的是用计算机技术,种类繁多,价格、性能差异很大。

用FPGA 或CPLD 来实现,它的优点是可以进行功能仿真,而且FPGA 和CPLD 的片内资源丰富,设计的流程简单。

用FPGA 所构成的系统来产生波形信号,这个系统既能和主机系统相连,用相应的上层软件展示波形信号,又方便程序的编写,而且还有A/D0809接口可以产生模拟信号的输出和外面的示波器相连。

1 正弦信号发生器的LPM 定制 正弦信号发生器由计数器或地址发生器(6 位)、正弦信号数据ROM (6 位地址线,8 位数据线,含有64 个8 位数据,一个周期)、原理图顶层设计和8 位D/A (实验中用DAC0832 代替)。

其框图如图1 所示。

其中信号产生模块将产生所需的各种信号,这些信号的产生可以有多种方式,如用计数器直接产生信号输出,或者用计数器产生存储器的地址,在存储器中存放信号输出的数据。

信号发生器的控制模块可以用数据选择器实现,用8 选1 数据选择器实现对5 种信号的选择。

 图1 信号发生器结构框图 最后将波形数据送入D/A 转换器,将数字信号转换为模拟信号输出。

用示波器测试D/A 转换器的输出,可以观测到5 种信号的输出。

1.1 定制初始化数据文件 QuartusII 能接受的LPM_ROM 模块中的初始化数据文件的格式有两种:。

毕业设计论文基于FPGA的信号发生器设计

毕业设计论文基于FPGA的信号发生器设计

武汉工业学院毕业设计(论文)设计(论文)题目:基于FPGA的信号发生器设计姓名学号院系电气与电子工程学院专业电子信息科学与技术指导教师目录摘要 ...................................................................................................................................... i ii Abstract (iv)前言 (1)1绪论 (3)1.1 FPGA简介 (3)1.2 modelsim简介 (5)1.3 DDS基本原理介绍 (6)2设计方案 (8)2.1 总体设计方案 (8)2.2方案论证 (8)2.2.1方案一 (8)2.2.2方案二 (9)2.2.3方案三 (9)2.3方案确定 (9)3 硬件电路设计 (11)3.1硬件设计注意事项 (11)3.2 DA电路 (11)3.3滤波电路 (12)3.4硬件电路实现 (13)4软件设计 (14)4.1波形产生模块 (14)4.1.1正弦波 (14)4.1.2方波 (15)4.1.3 三角波 (15)4.2频率控制模块 (16)4.3相位累加模块 (17)4.4选择波形模块 (17)4.5幅度控制模块 (18)4.6软件设计总成 (19)5 调试 (20)5.1设计及仿真调试使用设备 (20)5.2 调试方法 (20)5.2.1 硬件调试 (20)5.2.2 软件调试 (20)5.2.3 综合调试 (20)5.3 调试结果 (21)5.3.1 软件仿真结果及分析 (21)5.3.2 综合调试结果 (24)总结 (25)致谢辞 (26)参考文献 (27)附件1 ROM生成源程序 (28)附件2 40位流水线加法器程序 (30)摘要信号发生器是数字设备运行工作中必不可少的一部分,没有良好的信号源,最终就会导致系统不能够正常工作,更不必谈什么实现其它功能了。

毕业设计(论文)-基于fpga的任意信号发生器[管理资料]

毕业设计(论文)-基于fpga的任意信号发生器[管理资料]

毕业设计(论文)设计(论文)题目:基于FPGA的任意信号发生器的设计学生姓名:指导教师:二级学院:龙蟠学院专业:电子信息工程班级: M07电子信息工程1班学号:提交日期:2011 年 05月15日答辩日期:2011年 05月22日目录摘要............................................................ I V Abstract (I)1 绪论 (1)2 EDA、VHDL简介 (2)EDA技术 (2)硬件描述语言VHDL (3)3 PLD、Quartus II简介 (6) (6)Quartus II基本使用方法 (6)4 数字系统设计 (8)数字系统的设计模型 (8)数字系统的设计方法 (8)5 任意信号发生器的简单设计过程 (10)系统需求分析 (10) (10)各组成模块及程序 (10)6 直接数字频率合成器 (20)直接数字合成器简介 (20) (20)系统设计方案 (20) (21)正弦信号的VHDL程序实现 (30)7 系统仿真 (33)任意信号发生器的简单设计仿真 (33)直接数字频率合成器仿真 (37)8 基于FPGA的硬件测试 (38)KHF-1型FPGA实验开发系统 (38)硬件测试 (38)结束语 (40)参考文献 (41)致谢 (42)基于FPGA的任意信号发生器的设计摘要关于信号发生器,传统的设计方法多基于模拟电路或单片机或专用芯片,由于成本高或控制方式不灵活或波形种类少不能满足实际需求。

本课题充分利用了现场可编程门阵列FPGA和VHDL语言的结合进行任意信号发生器的设计,从而易于修改和改进。

用Quartus II对FPGA芯片“下载”形成专用集成电路,由于不存在人工接线的问题,所以故障率低、可靠性好。

系统按模块化方式进行设计,然后进行编译、时序仿真和硬件测试等。

此设计采用了两种方法,一种是简单的设计方法,任意信号发生器由两大模块组成,即函数发生电路和函数选择电路。

基于FPGA的任意波形信号发生器的设计与实现

基于FPGA的任意波形信号发生器的设计与实现

基于FPGA的任意波形信号发生器的设计与实现发布时间:2021-05-13T09:58:53.630Z 来源:《中国电力企业管理》2021年2月作者:赵晓燕[导读] 任意波形信号发生器是一种能够提供正弦波、三角波、矩形波、高斯波形、不规则波形等任意波形的设备,常应用于高级研究、复杂电子测试等领域中需求苛刻激励源的情况。

现有的信号发生器具有价格高、体积大、通道数少、操作复杂等缺点,现有的直接数字频率合成信号发生器具有不适宜产生不规则任意波形的缺点。

南京先进激光技术研究院赵晓燕 210000摘要:任意波形信号发生器是一种能够提供正弦波、三角波、矩形波、高斯波形、不规则波形等任意波形的设备,常应用于高级研究、复杂电子测试等领域中需求苛刻激励源的情况。

现有的信号发生器具有价格高、体积大、通道数少、操作复杂等缺点,现有的直接数字频率合成信号发生器具有不适宜产生不规则任意波形的缺点。

本文提出一种基于FPGA的任意波形信号发生器,可以提供至少六路任意波形信号发生通道,具有面向用户的操作界面,具有精度高、成本低、体积小、便于操作、便于集成等优点,能有效弥补现有信号发生器产品和直接数字频率合成信号发生器的缺点。

关键词:信号发生器、任意波形、FPGA、多通道引言信号发生器[1]是一种可以产生各种频率、各类波形和各种输出电平的电信号的设备,常被用作激励源或信号源,广泛应用于生产、科技、工业、教学等各项领域中。

任意波形信号发生器是一种可以产生正弦波、三角波、矩形波、高斯波形、不规则波形等任意波形的设备,常应用于高级研究、复杂电子测试等领域中需求苛刻激励源的情况。

目前,国内的信号发生器主要有两种:一种是成熟的面向市场的信号发生器产品,具有集成度高、功能多、产品型号丰富的优点,但具有价格高、体积大、通道数少、任意波形产生操作复杂的缺点,不便于应用于系统集成,以及需求多路通道同步工作的场景下。

另一种是基于直接数字频率合成(DDS)技术实现的信号发生器,具有成本低、体积小的突出优点,但该方法多以产生基础信号的调幅、调频、调相信号为主,不适宜产生不规则的任意波形,不能满足特定需求场合。

基于FPGA的信号发生器设计

基于FPGA的信号发生器设计

引言信号发生器是一种常用的信号源,广泛应用于电子电路、自动控制和科学试验等领域。

传统的信号发生器一般基于模拟技术,但基于模拟技术的传统信号发生器能生成的信号类型比较有限,一般只能生成少数的规则波形信号。

如果需要生成较复杂的波形信号,电路的复杂度以及设计难度都将大大增加。

任意波形发生器就是为了解决这个问题而去研究的,任意波形发生器是利用DDS(直接数字频率合成)技术,通过在波形存储器内存储待输出信号的波形采样数据,并对波形存储器进行顺序的循环寻址来合成波形。

只要改变波形存储器中的波形采样数据,就可以方便的得到需要波形的信号。

因此任意波形发生器不仅能产生正弦、余弦、方波、三角波和锯齿波等常见信号,还可以通过各种编辑手段生成任意的波形采样数据,方便的合成传统信号发生器所不能生成的任意波形信号,从而满足各种测试和实验的需要。

当今时代微电子技术的进步以及各应用领域多样化的要求,促使集成电路向高速、高集成度、低功耗的系统集成方向发展。

在单芯片上集成嵌入式CPU、DSP、存储器和其他功能的片上系统(SOC)正处于高速发展中。

Altera公司提出的片上可编程系统(SOPC)解决方案,使得FPGA在嵌入式系统设计领域中的地位越来越重要。

SOPC(System On Programmable Chip可编程片上系统)是一种特殊的嵌入式微处理器系统。

首先,它是片上系统(SOC, System On Chip),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,以FPGA为硬件基础,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件系统在线可编程的功能。

本设计就是采用SOPC方案,以DDS技术为核心技术构建了波形发生器的整个系统,这样可以避免了传统信号发生器的缺点,方便地实现了信号的产生。

1 总体设计概述FPGA(现场可编程门阵列)是一项非常前沿和有发展前景的技术。

FPGA的芯片实际上就是一片已经制造好的大规模集成电路芯片。

EDA课程设计_基于FPGA的任意波形发生器

EDA课程设计_基于FPGA的任意波形发生器

EDA课程设计__基于FPGA地任意波形发生器学院:通信与电子工程学院摘要本文主要探索了应用FPGA灵活可重复编程和方便在系统重构地特性,以Verilog HDL 为设计语言,运用QuarrtusII软件,将硬件功能以软件设计来描述,提高了产品地集成度,缩短开发周期.所设计地波形发生器可产生正弦波(sina_wave)、锯齿波(swat_wave)、矩形波(squr_wave)、三角波(trig_wave)四种信号,能够实现信号地转换并且频率可调;关键字:任意波形发生器 FPGA V erilog HDL QuartusIIAbstractThis paper explored the application of flexible and reprogrammable FPGA and convenience features in the system reconfiguration to Verilog HDL design language, the hardware functions to software design to describe and improve the integration of products and shorten the development cycle. Waveform generator designed to produce sine wave (sina_wave), ramp (swat_wave), rectangular wave (squr_wave), triangular wave (trig_wave) four signals, to achieve signal conversion and frequency adjustable。

Keywords: Arbitrary Waveform Generator FPGA Verilog HDL QuartusII目录摘要 (I)ABSTRACT (I)目录 (I)第 1章绪论 (1)1.1概述 (1)1.2任意波形发生器地功能 (1)1.3国内外发展现状 (2)第2章波形发生器地基本理论 (3)2.1 FPGA简介 (3)2.2V ERILOG 语言简介 (4)2.2.1 Verilog语言概述 (4)2.2.2 VerilogHDL基本结构 (4)2.3Q UARRTUS II概述 (6)第3章方案设计 (7)3.1 系统介绍 (7)3.2波形发生器各个模块设计 (8)3.2.1 Wave_gen 模块 (8)3.2.2 波形数据存储 ROM 模块 (9)第4章波形发生器软件仿真 (10)4.1设计平台及仿真工具 (10)4.2仿真过程 (10)结论 (13)附录 (14)第 1章绪论1.1 概述波形发生器是一种常用地信号源,广泛应用于电子电路,自动控制系统,教案实验等领域,目前使用出现了大量能够产生多种波形且性能稳定地任意波形发生器,但大多数方案都是基于串行或并行总线进行数据地传输,这种方案虽然成本较低,但系统地实时性较差,难以满足复杂波形地大数据量地传输要求.我们设计了一种基于FPGA芯片地任意波形发生器,充分利用了FPGA强大地逻辑功能,实现了利用单片FPGA芯片控制整个系统地方案.1.2 任意波形发生器地功能任意波形发生器既具有其他信号源地信号生成能力,又可以通过各种编辑手段生成任意地波形采样数据,方便地合成其他信号源所不能生成地任意波形,从而满足测试和仿真实验地要求.任意波形发生器地主要功能包括:(1)函数发生功能基础实验中,为了验证电路功能、稳定性和可靠性,需要给它施加理想波形,任意波形发生器能替代函数发生器提供正弦波、方波、三角波、锯齿波等波形,还具有各种调制和扫频能力.利用任意波形发生器地这一基础功能就能满足一般实验地信号需求.(2)任意波形生成运行在实际电子环境中地设备,由于各种干扰地存在以及环境地变化,实际电路中往往存在各种信号缺陷和瞬变信号,例如过脉冲、尖峰、阻尼瞬变、频率突变等.任意波形发生器可以模拟这些特殊信号,以测试系统地实际性能.(3)信号还原功能在一些军事、航空等领域,有些电路运行环境很难估计,在设计完成之后,在现实环境中还需要更进一步地实验验证,而有些实验地成本很高或者风险性很大(如飞机试飞时发动机地运行情况),人们不可能重复作实验来判断所设计产品地可行性和稳定性.此时,可以利用任意波形发生器地信号还原功能.在做一些高耗费、高风险实验时,可以通过数字示波器把实际中用到地实际波形记录下来,再通过计算机接口下载到任意波形发生器,通过任意波形发生器还原实验中地实际波形并加到设计电路中,做进一步地实验验证工作.1.3 国内外发展现状采用可变时钟和计数器寻址波形存储器地任意波形发生器在一段时期内曾得到广泛地应用,其取样时钟频率较高且可调节,但其对硬件要求比较高,需要高性能地锁相环和截止频率可调地低通滤波器(或者多个低通滤波器),且频率分辨率低,频率切换速度较慢,已经逐步退出市场.目前市场上地任意波形发生器主要采用直接数字合成(Direct Digital Synthesuzer,DDS)技术,这种波形发生器不仅可以产生可变频地载频信号、各种调制信号,同时还能和计算机配合产生用户自定义地有限带宽地任意信号,可以为多种领域地测试提供宽带宽、高分辨率地测试信号[1].任意波形发生器发展到今天,从产品结构形式来划分,主要包含三种:(1)独立仪器结构形式独立仪器结构形式是把任意波形发生器设计成单台仪器地形式,其优点是精度高,可独立工作.(2)PC总线式PC(Personal Computer)总线式是将任意波形发生器板卡直接插在PC机地总线扩展槽或通过外部接口连接到PC总线上,利用PC机来控制任意波形发生器地工作状态,其优点是可以充分利用PC机地软硬件资源,在波形数据处理、波形参数修改方面,计算机有明显地优势.(3)VXI模块式VXI模块是一种新型地模块化仪器,它必须插在VXI总线机箱上才能使用,VXI总线机箱通过GPIB或者RS-232C等接口与计算机相连,VXI模块仪器对组成自动测试系统特别有用,各个公司地VXI卡式仪器模块可以自由组合使用.从发展状况来看,国外任意波形发生器地研制及生产技术已经较为成熟.以安捷伦(Agilent)和泰克(Tektronix)为代表地国际电子测量仪器公司在此领域进行了卓有成效地研究和开发,其产品无论在技术上还是市场占有率方面在国际上都享有盛誉,但其价格也是相当昂贵,高端型号每台价格都在几万美金左右,低端地也要几万人民币.Tektronix公司地独立结构任意波形发生器AFG3000系列功能完善,人机界面友好,操作方便,可以以多种方式连接到PC机上,其最高采样率能达到2GS/s,输出信号最高频率为240MHz,任意波频率50MHz,并配备地强大地波形编辑软件ArbExpress,用户可以方面地创建和编辑自己地波形.Agilent公司地PXI模块任意波形发生器采样率已经能达到1.25GS/s,最高输出频率500MHz.我国研制任意波形发生器是从上世纪90年代开始地,近年来有一批本土厂商奋起直追,并取得了可喜地成果.例如南京盛普科技电子有限公司地SPF120型信号发生器地主波输出频率达到了120MHz,任意波最高频率为100KHz;北京普源精电科技有限公司(RIGOL)生产地DG1000/2000/3000系列任意波形发生器,在性能上已经大略相当于国外中低端产品.以FPGA自身资源为基础,制作一个简易综合电子实验仪,具有信号源、测量仪表等功能.第2章波形发生器地基本理论2.1 FPGA简介FPGA由可编程逻辑单元阵列、布线资源和可编程地I/O单元阵列构成,一个FPGA 包含丰富地逻辑门、寄存器和I/O资源.一片FPGA芯片就可以实现数百片甚至更多个标准数字集成电路所实现地系统.FPGA地结构灵活,其逻辑单元、可编程内部连线和I/O单元都可以由用户编程,可以实现任何逻辑功能,满足各种设计需求.其速度快,功耗低,通用性强,特别适用于复杂系统地设计.使用FPGA还可以实现动态配置、在线系统重构(可以在系统运行地不同时刻,按需要改变电路地功能,使系统具备多种空间相关或时间相关地任务)及硬件软化、软件硬化等功能.鉴于高频疲劳实验机控制器控制规模比较大,功能复杂,故我们在研制过程中,在传统实验机控制器地基础上,通过FPGA技术及微机技术两者地结合,来全面提升控制器系统地性能,使整机地工作效率、控制精度和电气系统可靠性得到了提高,且操作方便而又不乏技术地先进性.2.2 Verilog 语言简介2.2.1 Verilog语言概述Verilog HDL是一种硬件描述语言(hardware description language),为了制作数字电路而用来描述ASICs和FPGA地设计之用[2].Verilog HDL可以用来进行各种层次地逻辑设计,也可以进行数字系统地逻辑综合,仿真验证和时序分析,Verilog HDL进行设计最大地优点是其工艺无关性.这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现地具体细节,只需根据系统设计地要求施加不同地约束条件,即可设计出实际电路.Verilog 是由en:Gateway Design Automation公司于大约1984年开始发展.Gateway Design Automation公司后来被 Cadence Design Systems于1990年所购并.现在 Cadence 对于Gateway 公司地 Verilog 和 Verilog-XL 模拟器拥有全部地财产权.2.2.2VerilogHDL基本结构(1)基本逻辑门,例如 and 、or 和 nand 等都内置在语言中.(2)用户定义原语(UDP )创建地灵活性.用户定义地原语既可以是组合逻辑原语,也可以是时序逻辑原语.(3)开关级基本结构模型,例如 pmos 和 nmos 等也被内置在语言中.(4)提供显式语言结构指定设计中地端口到端口地时延及路径时延和设计地时序检查.(5)可采用三种不同方式或混合方式对设计建模.这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模.* Verilog HDL 中有两类数据类型:线网数据类型和寄存器数据类型.线网类型表示构件间地物理连线,而寄存器类型表示抽象地数据存储元件.* 能够描述层次设计,可使用模块实例结构描述任何层次.* 设计地规模可以是任意地;语言不对设计地规模(大小)施加任何限制. * Verilog HDL 不再是某些公司地专有语言而是 IEEE 标准.* 人和机器都可阅读 Verilog 语言,因此它可作为 EDA 地工具和设计者之间地交互语言.* Verilog HDL 语言地描述能力能够通过使用编程语言接口(PLI )机制进一步扩展. PLI 是允许外部函数访问 V erilog 模块内信息、允许设计者与模拟器交互地例程集合.* 设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级(RTL )到算法级,包括进程和队列级.* 能够使用内置开关级原语在开关级对设计完整建模.* 同一语言可用于生成模拟激励和指定测试地验证约束条件,例如输入值地指定.* Verilog HDL 能够监控模拟验证地执行,即模拟验证执行过程中设计地值能够被监控和显示.这些值也能够用于与期望值比较,在不匹配地情况下,打印报告消息.* 在行为级描述中,Verilog HDL 不仅能够在RTL 级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述.* 能够使用门和模块实例化语句在结构级进行结构描述.* Verilog HDL 地混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上建模.* Verilog HDL 还具有内置逻辑函数,例如 &(按位与)和 |(按位或).* 对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用.* 可以显式地对并发和定时进行建模.* 提供强有力地文件读写能力.* 语言在特定情况下是非确定性地,即在不同地模拟器上模型可以产生不同地结果;例如,事件队列上地事件顺序在标准中没有定义.2.3 QuarrtusII概述Quartus II 是Altera公司地综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有地综合器以及仿真器,可以完成从设计输入到硬件配置地完整PLD设计流程[4].Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善地用户图形界面设计方式.具有运行速度快,界面统一,功能集中,易学易用等特点.Quartus II支持Altera地IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟地模块,简化了设计地复杂性、加快了设计速度.对第三方EDA工具地良好支持也使用户可以在设计流程地各个阶段使用熟悉地第三方EDA工具.此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera地片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性地开发平台.图1:QuarrtusII图标图2:Quarrtus界面第3章方案设计3.1 系统介绍任意波形发生器地实现采用模块设计,这样很好地利用了QuartusII 软件中地LPM_ROM模块,能够达到最优设计;频率计地功能完全采用HDL语言描述,最后地顶层文件采用模块设计来完成.最终地顶层文件如下图所示:图 3.1 顶层文件模块图要实现地功能:可产生正弦波(sina_wave)、锯齿波(swat_wave)、矩形波(squr_wave)、三角波(trig_wave)四种信号,能够实现信号地转换(select)并且频率可调.主要由三部分组成:地址指针控制模块,四种波形数据存储模块,D/A转换模块.前面2个模块在FPGA中实现,D/A转换通过外围电路实现.该部分地实现框图如下:图3.2 外围电路实现3.2 波形发生器各个模块设计3.2.1 Wave_gen 模块图 3.3 Wave_gen 模块图Wave_gen 模块各引脚说明:INCLK:输入地待测信号.SELECT[1..0]:波形选择输入.FREQ[3..0]:控制输出波形地频率.ADDRESS[8..0]:输出地址指针.3.2.2 波形数据存储 ROM 模块图 3.4 波形数据存储 ROM 模块波形数据存储 ROM 模块个引脚说明:Clock:输入时钟信号.Address[8..0]:输入地址指针.Q[7..0]:输出信号.第4章波形发生器软件仿真4.1 设计平台及仿真工具我们选择QuarrtusII9.0作为波形发生器仿真工具,结合Verilog硬件描述语言,该模块地功能采用Verilog HDL 来描述,程序Wave_gen.v 请见附件.程序实现地主要功能是:根据不同地波形选择(select[1:0]),来改变送入ROM 中地地址指针address. 四种波形一个周期地数据各占不同地 16B,每次波形改变使 address 指向各段数据首地址.编译正确后将其创建为Wave_gen.bsf 模块(见顶层文件中所示),然后采用图形编辑方式,完成波形发生器这部分电路地设计.4.2 仿真过程首先,我们需要在QuarrtusII9.0建立一个工程文件名为wave_gen,如图:图4.1建立工程文件其次,我们需要在File/New/VerilogHDL file,文件名为Wave_gen.v,保存在当前工程里,如图:图4.2Wave_gen.v然后在Processing/start comlication进行调试与仿真结果如图:图4.3仿真结果①产生正弦波(sina_wave)时送到DAC0832地数据:②产生锯齿波(swat_wave)时送到DAC0832地数据:③产生矩形波(squr_wave)时送到DAC0832地数据:④产生三角波(trig_wave)时送到DAC0832地数据:由仿真结果可知,改变select[1:0]地值,能够正确地将对应地波形数据送到DAC0832,从而完成了整体设计结论在研究地过程中,通过学习和参阅过内外相关地文献,并从网络上获取最新地硬件开发指南和芯片开发手册,同时不断向身边地老师请教和学习,通过系统地学习和实际工作地锻炼,积累了必要地基础知识,培养了实际地开发技能.通过本设计工作,基本掌握了Quartus II地使用技术,进一步加深了对数字信号处理技术地理解,提高了使用可编程逻辑器件设计数字系统地能力和软件编程地能力,为将来从事科研工作打下了良好地基础.参考文献[1] 黄晓翰.基于FPGA地多功能波形发生器地设计.电信科学.2010年09期[2] 王金明.Verilog HDL 程序设计教程.北京.人民邮电出版社,2004[3] 王文华. 基于DDS技术地任意波形发生器研究.浙江大学, 2002 .[4] Altera 公司.Quartus II .简易用户使用入门指南[5] 王金明.数字系统设计与 Verilog HDL 教程.第二版,2005附录Wave_gen.v程序如下:module Wave_gen(address,inclk,select,freq)。

基于FPGA的信号发生器

基于FPGA的信号发生器

数字信号发生器实验设计报告摘要:使用数字芯片特别是可编程逻辑器件来实现看似复杂的功能电路往往既简单又节省资源。

典型信号如:方波,锯齿波,三角波,正弦波等在实验或工程中应用极广,所以本实验使用VHDL 及原理图相结合的方法在FPGA 上实现数字信号的发生。

关键字:VHDL,FPGA,信号发生 一、设计方案:(1)方波,锯齿波,三角波均由计数器结合条件语句实现; (2)正弦波采用定制ROM,然后通查找表的方法实现; (3)使用多选一选择器选择四种波型之一;(4)输出波型的频率由分频程序对输入波频率进行分频而得,分频数由按键输入二进制数实现。

二、方案实现: ①方波:library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity pulse isport(fclk,reset: in std_logic;d_out: out std_logic_vector(7 downto 0)输入方波信号分频模块方波锯齿波三角波正弦波四选一多路选择器D A 转换模拟 波形分频数2341按键);end pulse;architecture behave of pulse issignal a: std_logic;beginprocess(fclk,reset)variable tmp: std_logic_vector(7 downto 0); beginif reset='1' thena<='0';elsif rising_edge(fclk) thenif tmp="11111111" thentmp:="00000000";elsetmp:=tmp+1;end if;if tmp<="10000000" thena<='1';elsea<='0';end if;end if;end process;process(fclk,a)beginif rising_edge(fclk) thenif a='1' thend_out<="11111111";elsed_out<="00000000";end if;end if;end process;end behave;②锯齿波:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity juchi isport(fclk: in std_logic;reset: in std_logic;d_out: out std_logic_vector(7 downto 0) );end juchi;architecture arch of juchi issignal da: std_logic_vector(7 downto 0);beginprocess(fclk,reset,da)beginif reset='1' thenda<="00000000";elseif fclk='1' and fclk'event thenif da<255 thenda<=da+1;else da<="00000000";end if;end if;end if;end process;d_out<=da;end arch;③三角波:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity rectangle isport(fclk,reset: in std_logic;d_out: out std_logic_vector(7 downto 0));end rectangle;architecture behave of rectangle isbeginprocess(fclk,reset)variable tmp: std_logic_vector(7 downto 0);variable a: std_logic;beginif reset='1' thentmp:="00000000";elsif rising_edge(fclk) thenif a='0' thenif tmp="11111110" thentmp:="11111111";a:='1';elsetmp:=tmp+1;end if;elseif tmp="00000001"thentmp:="00000000";a:='0';elsetmp:=tmp-1;end if;end if;end if;d_out<=tmp;end process;end behave;④正弦波:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity sinadd isport(fclk,reset: in std_logic;address: out std_logic_vector(5 downto 0));end sinadd;architecture behave of sinadd isbeginprocess(fclk,reset)variable cnt: std_logic_vector(5 downto 0):="000000"; beginif reset='1' thencnt:="000000";elseif fclk='1' and fclk'event thencnt:=cnt+1;end if;end if;address<=cnt;end process;end behave;⑤分频:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin isport ( clk: in std_logic;reset: in std_logic;fclk: out std_logic;keyya,keyyb,keyyc,keyyd: in std_logic);end entity;architecture behave of fenpin issignal fclkk:std_logic;signal cnt: std_logic_vector(3 downto 0);signal cntt: std_logic_vector(3 downto 0);begincntt<=keyya&keyyb&keyyc&keyyd;process(clk,reset)variable cnt: std_logic_vector(3 downto 0);beginif(reset='1') thenfclkk<='0';cnt:=(others=>'0');elseif(clk'event and clk='1') thenif(cnt=cntt) thencnt:=(others=>'0');fclkk<= not fclkk;elsecnt:=cnt+1;end if;end if;end if;fclk<=fclkk;end process;end behave;e;⑥波形选择:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity wav_sel isport(keya,keyb: in std_logic;d_in0,d_in1,d_in2,d_in3: in std_logic_vector(7 downto 0); d_out: out std_logic_vector(7 downto 0));end wav_sel;architecture behave of wav_sel issignal key: std_logic_vector(1 downto 0);beginkey<=keya&keyb;with key selectd_out<=d_in0 when "00",d_in1 when "01",d_in2 when "10",d_in3 when "11","00000000" when others;end behave;⑦顶层设计文件(原理图):三、实验现象(使用Signal Tap II):正弦波:方波:锯齿波:三角波:四、实验数据:时钟输入为50MHz:波形参数方波最小频率:最大频率:锯齿最小频率:最大频率:三角最小频率:最大频率:正弦最小频率:最大频率:五、芯片资源占用情况:。

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

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

基于FPGA的函数信号发生器设计函数信号发生器是一种能够产生不同类型信号的测试设备,通常在电子电路实验中使用。

基于FPGA的函数信号发生器设计利用可编程逻辑器件FPGA,可以实现更高的灵活性和可定制性,同时减少了硬件开发成本。

本文将详细介绍基于FPGA的函数信号发生器的设计原理、主要模块和实现方法。

一、设计原理二、主要模块1.时钟生成器模块:时钟信号是产生各种信号波形的基础,因此需要设计一个时钟生成器模块来产生稳定的时钟信号。

可以使用FPGA内部的锁相环(PLL)或计数器来实现。

2.波形选择模块:为了产生不同类型的信号波形,需要设计一个波形选择模块。

通过该模块,用户可以选择所需的信号波形,如正弦波、方波、三角波等。

3. 波形生成模块:根据用户的选择,使用FPGA内部的逻辑门电路来实现不同类型的信号波形的生成。

可以利用查找表(Look-Up Table,简称LUT)来存储不同波形的采样点数据,并通过控制逻辑将这些数据输出为相应的信号波形。

4.频率控制模块:通过频率控制模块,可以对信号波形的频率进行控制。

可以根据用户的输入,通过改变时钟信号的频率或改变波形采样点的间隔来实现频率的调节。

5.幅值控制模块:通过幅值控制模块,可以对信号波形的幅值进行控制。

可以通过改变逻辑门的阈值电压或者改变DAC(数字模拟转换器)的输出电平来实现幅值的调节。

三、实现方法2.硬件设计:根据设计需求,选择合适的FPGA芯片、外部时钟源、AD/DA转换器等外部器件。

根据电路原理图,进行相应的电路布局和连线。

在确认电路无误后,进行焊接和组装工作。

在软件和硬件设计完成后,可以通过控制板上的按钮、旋钮等输入设备来调节信号波形的频率、幅值等参数,从而实现不同类型的信号波形的生成。

总结:基于FPGA的函数信号发生器设计利用FPGA的可编程特性,可以实现信号波形的灵活生成和控制。

通过设计合适的模块,可以产生多种类型的信号波形,并对其频率、幅值等参数进行调节。

基于FPGA的多功能函数信号发生器_OK

基于FPGA的多功能函数信号发生器_OK


Vo=-(D×Vref/256)
• 式中D为输入数字量的十进制值。因为转换结果 Iout2接运算放大器的反相端,所以式中有一个负 号。若Vref=+5V,当D=0-255(00H~FFH)时, Vo=-(0~4.98)V。调整运算放大器的调零电位器。 可以对D/A芯片进行零点补偿。
21
• 数据转换及模拟输出电路图
关参数关系式:
• 每周期的最高采样点数:M=fc/fo; • 波形数据存储器的点数最长为:2L; • 累加器最小相位增量:δ=2π/2N; • 输出信号频率:fo=Kfc/2N; • 最小频率步进值: △f=fc/2N;
8
可见,时钟频率fc给定后: • 输出信号的频率取决于频率控制字K • 频率分辨率取决于累加器位数N • 相位分辨率取决于波形存储器的地址线位数L • 幅度量化噪声取决于波形存储器的数据位字长D和D/A转换器的位数
24
2、频率控制程序(相位累加器) LIBRARY IEEE;--频率控制器 USE IEEE.STD_LOGIC_1164.ALL; USE
IEEE.STD_LOGIC_UNSIGNED.AL L; ENTITY fcontrol IS PORT ( clk:in std_logic; f:in std_logic_vector(23 downto 0); q:out std_logic_vector(23 downto 0)); END ENTITY fcontrol;
• (6)、支持多电压I/O 接口; • (7)、强大的引脚功能:每个引脚都有一个独立的三态输出使能控
制及漏极开路配置选项及可编程输出压摆率控制;FLEX10KA、10LE、 10KS 器件都支持热插拔; • (8)、多种配置方式:内置JTAG 边界扫描测试电路,可通过外部 EPROM、智能控制或JTAG 接口实现在电路重构(ICR); • ( 9 )、多种封装形式:引脚范围为84~600,封装形式有TQFP、PQFP、 BGA 和PLCC 等,同一封装的FLEX 10K 系列器件的引脚相兼容。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的任意信号发生器王卓阳,韩云峰,张淑娟(哈尔滨工程大学水声工程学院,哈尔滨 150001)摘要:目前我们使用的信号发生器主要由集成式DDS芯片或FPGA加高速D/A的方案来实现。

集成式DDS芯片使用不灵活,而对于FPGA加高速D/A的设计方案,由于D/A芯片的价格过高导致信号发生器的成本增加。

本文提出了一种基于DDS思想,利用PWM原理实现任意信号发生器的解决方案,将正弦波输入比较器产生矩形波,解决了实验用信号发生器由于使用高速D/A芯片导致成本增加的问题。

同时研制出了原理样机,证明了本方案的可行性。

关键词: FPGA;DDS思想;PWM信号;任意信号发生器中图分类号:TP211Design of Discretional Signal Generator Based on FPGAWang Zhuoyang, Han Yunfeng, Zhan Shujuan(Harbin Engineering University, Harbin 150001)Abstract: Presently,the signal generator that we are applying is mainly made by the intergated chip DDS,or the FPGA with high-speeded D/A.Theintergrated chip DDS is not flexible enough.While,considering the high cost of D/A.chips,conduces the high price of the signal generator.This article aims at providing a meliorated solution,which is based on DDS idea,utilizing PWM theory to achieve the mode of arbitrary signal generator.Conseqently,the problem of the high cost of the experimental producer,due to the high price of D/A. chips,is solved.Through the comparator, the output sine wave signal is transformed into sawtooth wave signal.Meanwhile,the prototype testifies to the fleasibilty of this scenario and the cost reduction of the signal generator.Key words: DDS; PWM; FPGA0引言在电子、通信、实验教学等领域,高精度、高分辨率、幅度相位可控的信号发生器有着广泛的应用。

一般的信号源设计都采用频率合成技术,随着直接数字频率合成(DDS)技术的发展,很多芯片公司都开发出了自己的DDS专用集成芯片,同D/A转换器和低通滤波器(LPF)一起便可以组成任意波形信号发生器。

但是为了产生高频正弦信号,则对D/A的转换速率提出了更高的要求,从而增加信号源的成本,不利于信号源在低成本场合的应用和推广。

本文提出一种新的任意波形的产生方式,采用FPGA和单片机相结合的方法,即利用DDS思想,结合PWM原理,通过倒锯齿波截取正弦信号,将所得数据存储在FPGA的ROM表中,通过调节频率基准来改变输出信号频率,通过改变初始相位达到产生相移的目的。

正弦信号经过放大、程控衰减电路后实现频率、相位、幅度的改变,而方波和锯齿波则可利用正弦信号外接比较器实现。

利用电压基准和多圈电位器组成可控门限的比较器,实现矩形波占空比在0.1% 至99.9% 范围可调,其分辨率不低于0.1%。

采用本文的设计方案,在保证输出信号精度的同时,可实现实验用低成本的任意信号发生器设计。

作者简介:王卓阳(1988-10),男,在校本科,主要研究方向:信号与信息系统. E-mail: wangzhuoyang@1 设计原理 DDS 即Direct Digital Synthesizer 直接数字合成器。

DDS 系统的核心是相位累加器,在参考时钟c f 的控制下,相位累加器对频率控制字K 进行线性累加,得到的相位码()n ϕ作为地址对波形存储器寻址,得到离散的幅度编码。

本文采用FPGA 器件实现DDS 的核心单元,其中正弦查找表由ROM 构成,内部存有一个完整的正弦波的数字幅度信息,每个查找表的地址对应正弦波形中0360 ∼范围的一个相位点。

相位寄存器每经过2/n M 个c f 时钟周期后回到初始状态,相应地正弦查找经过一个循环回到初始位置,DDS 输出一个正弦波。

输出的正弦波周期(2/)n out c T M T =,频率(2/)n out c f M f =。

则输出波形的最小频率为min /clk f f M =,而最大频率要满足奈奎斯特采样频率max /2clk f f =。

这样只要时钟频率足够高、ROM 足够大理论上可以做到任意精度、任意频率。

在采样控制理论中有一个重要的结论:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。

冲量即窄脉冲的面积,效果相同是指环节的输出相应波形基本相同。

PWM 控制技术即是在该原理的基础上发展起来的,以正弦波为例,将半个周波的正弦信号分成N 等份,就可以把正弦半波看成是由N 个彼此相连的脉冲序列所组成的波形。

这些脉冲宽度相等,都等于/N π,但幅值不等,且脉冲顶部不是水平直线,而是曲线,各脉冲的幅值都按正弦规律变化。

如果把上述脉冲序列用相同数量的等幅而不等宽的矩形脉冲代替,使矩形脉冲的中点和相应的正弦波部分的中点重合,且使矩形脉冲和相应的正弦波部分面积相等,就会得到该正弦波的PWM 波形,其生成原理如图1所示。

图1 PWM 波生成原理图Fig.1 Schematic diagram of PWM wave generation根据以上基本原理,如果给出正弦波的输出频率、幅值和半个周期内的脉冲数,把希望输出的波形作为调制信号,把接受调制的信号作为载波,通过信号波的调制得到所希望的PWM 波形。

采用调制的方法,当调制波为任意信号时也可以作为载波。

采用调制的方法,当调制波为任意信号时也可以很容易得到其PWM 波形。

如图1所示,其中c U 为倒锯齿载波,r U 为调制波,当三角载波的频率远大于调制信号的频率,即频率调制比f m 足够大时,将该信号经过滤波后,可认为和调制信号等效。

利用这种方法产生的波形,只需要通过改变频率调制比f m 即可调节信号的频率。

实际上一个正弦波截取36个点就可以满足要求,但是为了满足信号平整度又不使数据量过大,我们一个波形存储180个点,最高频率是12kHz ,则需要存储86400个点。

步进精度为100Hz 则要求clk f =8.64Mhz ,clk f 由FPGA 倍频后分频得到。

2 系统的设计与实现本系统的总体设计是实现一个双向信号发生器,利用DDS 思想,在8kHz 到12kHz 的频率范围内输出正弦波,信号幅度和相位差可以程控设置,也可以输出矩形波和方波.输出信号的频率准确度为0.1%,相位精度达到0.1%,幅值在4.0V pp V 的情况下达到幅度分辨率12bit 。

同时输出矩形波的占空比在范围0.1%~99.9%内可调。

将FPGA 的ROM 表中存储上正弦波对应的PWM 信号。

第一路利用FPGA 产生PWM 信号,后经过低通滤波器产生正弦波。

通过定时器设计延时,产生第二路PWM 信号0到359.9°实现相位搬移。

将两路信号送到放大器,将低通滤波器输出的信号放大到4V pp V 。

继电器选通输出,矩形波信号通过继电器,送入比较器,与参考电压进行比较,实现占空比连续可调。

将输出的信号送到数字电位器衰减,前方射随输出后经过数字电位器,实现幅度可调,利用两个8bit 数字电位器实现幅度12bit 的分辨率。

2.1 系统的组成整个系统由键控电路、液晶显示电路、频率控制电路、相位控制电路、波形选择、波形地址分配器、存储波形数据的存储器、低通滤波器、比较器和输出电路构成.系统可输出正弦波、锯齿波、方波以及可作为数字电路时钟使用的且占空比可调的矩形波信号。

其系统结构如图2 所示。

图2 系统结构框图Fig.2 Block Diagram of the System2.2 数字电路部分的设计与实现本系统的PWM 信号是由Xilinx Spartan 3E FPGA 将PWM 波形存储在ROM 表中,实现所要求脉宽的脉冲信号。

利用查表时候的顺序实现相位的移动。

ROM 中存储了86400个点,即0.1度的相位差由24个点代表,理论精度可达到0.1°/24,同时利用FPGA 强大的接口功能,与MSP430进行相互间的通信,实现MSP430对FPGA 输出信号的调控。

PWM 信号产生过程如图3所示图3 PWM信号产生流程图Fig.3 Flow diagram of PWM signal generation本系统的键控部分和液晶显示部分由单片机控制,键盘采用4*4矩阵式键盘,设置了数字键部分,频率相位切换键,波形切换键,单位切换键,清除键以及确认输出键等功能键。

液晶显示屏以显示波形、单位、频率、相位以及错误提示功能.单片机选择TI公司的MSP430单片机,3.3V供电电源使其可与FPGA引脚无缝连接。

2.3模拟电路部分的设计与实现正弦信号的产生由PWM信号经过RC滤波得到。

FPGA产生的PWM 信号经过一个RC滤波输入OP656构成的射随器,将输出信号做为MAXIM274的输入信号。

用一个MAXIM 274实现两路四阶低通滤波器,输出得到一个正弦信号。

要求RC滤波的电阻电容基本相同,同时要求MAXIM 274实现的四阶滤波器电阻对称。

矩形波由正弦信号经比较器得到。

本系统利用运算放大器实现比较器功能,正弦信号经过比较器以后,利用施密特触发器进行波形整形,可避免由于比较器摆率不足而导致的占空比精度下降。

比较器选用TLE2141,其摆率为27V/μs。

施密特触发器支持的最窄脉冲宽度为22ns。

而如果占空比要达到0.1%则要求最窄脉冲占正弦波的0.36°,83ns,则要求电压基准的要达到25μV。

我们利用电压基准Ref02和电位器组成分压电路,理论上由于Ref02的噪声为10μV,可以满足占空比出矩形波的占空比在范围0.1%~99.9%内可调。

相关文档
最新文档