基于FPGA的信号发生器设计论文.docx
- 文档编号:6627409
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:38
- 大小:607.40KB
基于FPGA的信号发生器设计论文.docx
《基于FPGA的信号发生器设计论文.docx》由会员分享,可在线阅读,更多相关《基于FPGA的信号发生器设计论文.docx(38页珍藏版)》请在冰豆网上搜索。
基于FPGA的信号发生器设计论文
摘要
信号发生器是数字设备运行工作中必不可少的一部分,没有良好的信号源,最终就会导致系统不能够正常工作,更不必谈什么实现其它功能了。
本次论文主要研究了基于FPGA的函数信号发生器的设计思路与软硬件实现。
首先介绍了本次设计任务的总体设计方案,以及该方案中涉及的知识点,所使用的软件及硬件基本知识。
在此基础上进行了硬件电路的设计,主要采用DDS(直接数字频率合成)方案,采用了Altera公司的低成本cycloneII系列FPGA的EP2C5QC8作为核心芯片,构建了外围的0832DA转换电路,以及1MHZ低通滤波电路。
再次介绍系统软件的设计过程,给出了FPGA自底向上的设计思路,以及各个底层模块的设计原理与思路分析,最后介绍了相关软件的应用知识。
最后一段介绍了论文的相关结论,进行仿真调试的过程。
实现了设计任务的频率从100HZ到1MHZ可调,幅度从0.1V到5V可调的功能。
系统的设计方案和设计过程具有参考和学习价值。
关键词:
信号发生器FPGAModelsimVerilog语言
Abstract
Thesignalgeneratorisanessentialpartoftheworkofdigitalequipmentoperation,withoutagoodsource,andultimatelywillcausethesystemtoworkproperly,nottotalkabouttheachievementofotherfeatures.
ThisthesisstudiedthesoftwareandhardwaredesignoftheFPGA-basedSignalGenerator.Firstintroducedtheoveralldesignofthedesigntask,andknowledgeinvolvedintheprogram,usebasicsoftwareandhardwareknowledge.Onthisbasis,thehardwarecircuitdesign,usingDDS(DirectDigitalFrequencySynthesizer)program,usingAltera'slow-costcycloneIIFPGAseriesEP2C5QC8corechiptobuildaperipheral0832DAconversioncircuit,and1MHZlowpassfiltercircuit.Re-introducethesystemsoftwaredesignprocess,givenFPGAdesignideasfromthebottomup,aswellasthedesignprinciplesandideasofthebottommodule,andfinallyintroducedasoftwareapplicationknowledge.Thelastparagraphoftheconclusionsofthepaper,simulationdebuggingprocess.Designtaskfrequencyisadjustablefrom100HZto1MHZfunctionoftheadjustablerangefrom0.1Vto5V.Systemdesignanddesignprocesshasareferenceandlearningvalue.
Keywords:
Signalgenerator,FPGA,Modlesim,VerilogHDL
前言
随着我国的经济日益增长,社会对电子产品的需求量也就越来越大,目前我国的电子产品市场正在迅速的壮大,市场前景广阔。
FPGA(FieldProgrammableGateArray,现场可编程门阵列)在现代数字电路设计中发挥着越来越重要的作用。
FPGA/CPLD(ComplexProgrammableLogicDevice)所具有的静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,这样就极提高了电子系统设计的灵活性和通用性,缩短了产品的上市时间并降低可电子系统的开发成本,且可以毫不夸地讲,FPGA/CPLD能完成任何数字器件的功能,从简单的74电路到高性能的CPU。
它的影响毫不亚于20世纪70年代单片机的发明和使用。
现在随着电子技术的发展,产品的技术含量越来越高,使得芯片的复杂程度越来越高,人们对数万门乃至数百万门设计的需求也越来越多,特别是专用集成电路(ASIC)设计技术的日趋进步和完善,推动了数字系统设计的迅速发展。
仅靠原理图输入方式已不能满足要求,采用硬件描述语言VHDL的设计方式应运而生,解决了传统用电路原理图设计大系统工程时的诸多不便,成为电子电路设计人员的最得力助手。
设计工作从行为、功能级开始,并向着设计的高层次发展。
这样就出现了第三代EDA系统,其特点是高层次设计的自动化。
第三代EDA系统中除了引入硬件描述语言,还引入了行为综合工具和逻辑综合工具,采用较高的抽象层次进行设计,并按层次式方法进行管理,可大大提高处理复杂设计的能力,缩短设计周期,综合优化工具的采用使芯片的品质如面积、速度和功耗等获得了优化,因而第三代EDA系统迅速得到了推广应用。
目前,最通用的硬件描述语言有VHDL和VerilogHDL两种,现在大多设计者都使用93年版标准的VHDL,并且通过了IEEE认定,成为世界围通用的数字系统设计标准。
VerilogHDL是一种新兴的程序设计语言,使用VerilogHDL进行设计其性能总是比常规使用CPU或者MCU的程序设计语言在性能上要高好几个数量级。
这就是说,在传统上使用软件语言的地方,VerilogHDL语言作为一种新的实现方式会应用得越来越广泛。
本课题设计是采用美国Altera公司的cycloneII器件,使用的是Altera公司的EDA软件平台quartusII可编程逻辑器件开发软件。
基于EDA工具的FPGA/CPLD的开发流程CPLD/FPGA器件的设计一般可分为设计输入、设计实现和编程三个设计步骤:
1.设计输入方式主要由文本输入和图形输入两种,可根据需要选择,也可混合输入。
EDA工具会自动检查语法;
2.设计实现阶段EDA工具对设计文件进行编译,进行逻辑综合、优化,并针对器件进行映射、布局、布线,产生相应的适配文件;
3.编程阶段EDA软件将适配文件配置到相应的CPLD/FPGA器件中,使其能够实现预期的功能。
信号发生器是数字设备运行工作中必不可少的一部分,没有良好的信号源,最终就会导致系统不能够正常工作,更不必谈什么实现其它功能了。
不论是处于开发还是故障检修阶段,输出标准且性能优秀的信号发生器总是能够带来工作效率的大幅提升,使新产品有一个标准的信号源、损坏的系统得到正确校验,不会被一些故障所蒙蔽。
在传统的信号发生器中,大都使用分立元件,而且体积庞大携带不便,且大部分只能输出一种脉冲信号波形。
在设计领域,不管采用什么技术生产,生产的产品用在哪里,其产品设计的宗旨都是离不开以下几点:
实用性高、成本低、可升级、功能完善可扩展等!
使用专用的数字电路设计的信号发生器,设备成本高、使用复杂。
基于以上考虑,在中小型数字电路的设计和测试中,迫切需要设计一种小型易用成本低廉的信号发生器。
此课题的设计以小型经济,集成度高,性能稳定,使用方便为指导,在功能上力求完善实用,同时兼顾商业价值与应用价值的体现。
1概述
1.1FPGA简介
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
(1)背景
目前以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。
这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。
在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
系统设计师可以根据需要通过可编辑的连接把FPGA部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。
一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。
FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。
但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。
厂商也可能会提供便宜的但是编辑能力差的FPGA。
因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。
另外一种方法是用CPLD(复杂可编程逻辑器件备)。
(2).CPLD与FPGA的关系
早在1980年代中期,FPGA已经在PLD设备中扎根。
CPLD和FPGA包括了一些相对大数量的可编辑逻辑单元。
CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。
CPLD和FPGA的主要区别是他们的系统结构。
CPLD是一个有点限制性的结构。
这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。
这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。
而FPGA却是有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。
CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的置模块(比如加法器和乘法器)和置的记忆体。
因此一个有关的重要区别是很多新的FPGA支持完全的或者部分的系统重新配置。
允许他们的设计随着系统升级或者动态重新配置而改变。
一些FPGA可以让设备的一部分重新编辑而其他部分继续正常运行。
(3).FPGA工作原理
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和部连线(Interconnect)三个部分。
现场可编程门阵列(FPGA)是可编程器件。
与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
FPGA的逻辑是通过向部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程.
目前主流的FPGA仍是基于查找表技术的,已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM、时钟管理和DSP)的硬核(ASIC型)模块。
如图1-1所示(注:
图1-1只是一个示意图,实际上每一个系列的FPGA都有其相应的部结构),FPGA芯片主要由7部分完成,分别为:
可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、嵌的底层功能单元和嵌专用硬件模块。
图1.1FPGA芯片的部结构
(4).FPGA芯片的部结构
1)可编程输入输出单元(IOB)
可编程输入/输出单元简称I/O单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求,其示意结构如图1-2所示。
FPGA的I/O按组分类,每组都能够独立地支持不同的I/O标准。
通过软件的灵活配置,可适配不同的电气标准与I/O物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。
目前,I/O口的频率也越来越高,一些高端的FPGA通过DDR寄存器技术可以支持高达2Gbps的数据速率。
图1.2典型的IOB部结构示意图
外部输入信号可以通过IOB模块的存储单元输入到FPGA的部,也可以直接输入FPGA部。
当外部输入信号经过IOB模块的存储单元输入到FPGA部时,其保持时间(HoldTime)的要求可以降低,通常默认为0。
为了便于管理和适应多种电器标准,FPGA的IOB被划分为若干个组(bank),每个bank的接口标准由其接口电压VCCO决定,一个bank只能有一种VCCO,但不同bank的VCCO可以不同。
只有相同电气标准的端口才能连接在一起,VCCO电压相同是接口标准的基本条件。
2)可配置逻辑块(CLB)
CLB是FPGA的基本逻辑单元。
CLB的实际数量和特性会依器件的不同而不同,但是每个CLB都包含一个可配置开关矩阵,此矩阵由4或6个输入、一些选型电路(多路复用器等)和触发器组成。
开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或RAM。
在Xilinx公司的FPGA器件中,CLB由多个(一般为4个或2个)相同的Slice和附加逻辑构成,如图1-3所示。
每个CLB模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。
图1.3典型的CLB结构示意图
(5).基本特点
·采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。
·FPGA可做其它全定制或半定制ASIC电路的中试样片。
·FPGA部有丰富的触发器和I/O引脚。
·FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
·FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
FPGA是由存放在片RAM中的程序来设置其工作状态的,因此,工作时需要对片的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
1.2modelsim简介
Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单核支持VHDL和Verilog混合仿真的仿真器。
它采用直接优化的编译技术、Tcl/Tk技术、和单一核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。
(1)主要特点:
·RTL和门级优化,本地编译结构,编译仿真速度快,跨平台跨版本仿真;
·单核VHDL和Verilog混合仿真;
·源代码模版和助手,项目管理;
·集成了性能分析、波形比较、代码覆盖、数据流ChaseX、SignalSpy、虚拟对象VirtualObject、Memory窗口、Assertion窗口、源码窗口显示信号值、信号条件断点等众多调试功能;
·C和Tcl/Tk接口,C调试;
·对SystemC的直接支持,和HDL任意混合;
·支持SystemVerilog的设计功能;
·对系统级描述语言的最全面支持,SystemVerilog,SystemC,PSL;
·ASICSignoff。
ModelSim分几种不同的版本:
SE、PE、LE和OEM,其中SE是最高级的版本,而集成在Actel、Atmel、Altera、Xilinx以及Lattice等FPGA厂商设计工具中的均是其OEM版本。
SE版和OEM版在功能和性能方面有较大差别,比如对于大家都关心的仿真速度问题,以Xilinx公司提供的OEM版本ModelSimXE为例,对于代码少于40000行的设计,ModelSimSE比ModelSimXE要快10倍;对于代码超过40000行的设计,ModelSimSE要比ModelSimXE快近40倍。
ModelSimSE支持PC、UNIX和LINUX混合平台;提供全面完善以及高性能的验证功能;全面支持业界广泛的标准;MentorGraphics公司提供业界最好的技术支持与服务。
1.3DDS基本原理介绍
DDS是一种全数字的频率合成方法,其基本结构主要由相位累加器、波形,ROM、D/A转换器和低通滤波器四个部分构成,相位累加器,波形ROM,DA转换器,低通滤波器。
具体结构参见上文图2。
相位累加器由一个N位的加法器和一个N位的寄存器构成,通过把上一个时钟的累加结果反馈回加法器的输入端而实现累加功能。
从而使输出结果每一个时钟周期递增K。
这里N为相位累加器的字长,K称为频率控制字。
图1.4相位累加器示意图
其中相位累加器字长为N,DDS控制时钟频率为£,频率控制字为K。
DDS直接从“相位”的概念出发进行频率合成。
相位累加器由加法器与累加寄存器级联构成。
每来一个时钟脉冲£,加法器将频率控制字K与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。
累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。
这样,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。
DDS的核心就是相位累加器,利用它来产生信号递增的相位信息,整个DDS系统在统一的参考时钟下工作,每个时钟周期相位累加器作加法运算一次。
加法运算的步进越大,相应合成的相位值变化越快,输出信号的频率也就越高。
对于幅值归一化的正弦波信号的瞬时幅值完全由瞬时相位来决定,因为
,所以相位变化越快,信号的频率越高。
ROM表完成将累加器相位信息转换为幅值信息的功能。
再由D/A完成数字抽样信号到迮续时域信号的转换,D/A输出的台阶信号
再经低通滤波器平滑可以得到精确的连续正弦信号波形。
相位累加器利用Nbit二进制加法器的模溢出特性来模拟理想正弦波的2∏相位周期。
相位累加器输出和ROM输出可分别理解为理想正弦波相位信号和时域波形的时钟抽样。
用相位累加器输出的数据作为波形存储器的相位取样地址,这样就可以把存储在波形存储器的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。
波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。
低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。
假设,相位累加器字长为N,DDS控制时钟频率为fc,时钟周期为Tc=1/fc,频率控制字为K。
系统工作时,累加器的单个时钟周期的增量值为
,相应角频率为
。
,所以DDS的输出频率为fdds=
,DDS输出频率步进间隔为
。
因DDS输出信号是对正弦波的抽样合成的,所以应满足Niqust定理要求,即foDs≤fd2,也就是要求K<2N’1,根据频谱性能要求,一般取fdds≤0.4fc。
当DDS相位累加器采用32位字长,时钟频率为30MHz时,它的输出频率间隔可达
=30*
/
≈10mHz。
可见,DDS基于累加器相位控制方式给它带来微步进的优势。
DDS频率合成器具有以下优点:
(1)频率分辨率高,输出频点多,可达2N个频点(假设DDS相位累加器的字长是N);
(2)频率切换速度快,可达US量级;(3)频率切换时相位连续;(4)可以输出宽带正交信号;(5)输出相位噪声低,对参考频率源的相位噪声有改善作用;(6)可以产生任意波形;(7)全数字化实现,偏于集成,体积小,重量轻。
但DDS也有比较明显的缺点:
(1)输出信号的杂散比较大;
(2)输出信号的带宽受到限制。
DDS输出杂散比较大,这是由于信号合成过程中的相位截断误差、D/A转换器的截断误差和D/A转换器的非线性造成的。
当然随着技术的发展,这些问题正在逐步得到解决。
如通过增长波形ROM的长度也减小相位截断误差;通过增加波形ROM的字长和D/A转换器的精度以减小D/A量化误差等。
在比较新的DDS芯片中普遍都采用了12bit的D/A转换器。
当然一味靠增加波形ROM的深度和字长的方法来减小杂散对性能的提高总是有限的。
已有研究在对DDS输出的频谱做了大量的分析后,总结出了误差的领域分布规律建立了误差模型,在分析DDS频谱特性的基础上又提出了一些降低杂散功率的方法;可以通过采样的方法降低带误差功率,可以通过随机抖动法提高无杂散动态围,在D/A转换器的低位上加扰打破DDS输出的周期性,从而把周期性的杂散分量打散使之均匀化。
2设计方案
2.1总体设计思路
(1)设计步骤
此设计将按模块式实现,据任务书要求,设计总共分四大步份完成:
1.产生波形(三种波形:
方波、三角波和矩形波)信号;2.波形选择;3.频率控制;4.幅度控制。
2设计思想
利用VerilogHDL编程,依据基本数字电路模块原理进行整合。
系统各部分所需工作时钟信号由输入系统时钟信号经分频得到,系统时钟输入端应满足输入脉冲信号的要求。
具备幅度和频率可调功能,幅度通过两个按键可以增减调节,频率控制模块则是一个简易的计数器,控制步径为100HZ的可调频率,达到设计课题所要求的输出波形频率可调及幅度可调功能。
幅度可调功能由于比较简单,可以在FPGA外部利用硬件电路实现。
总体设计框图如下图1所示:
图2.1系统总体框图
2.2方案论证
2.2.1方案一
采用DDS(直接数字频率合成器)来设计,设计总体框图如图2所示。
在设计界里众所周知,DDS器件采用高速数字电路和高速D/A 转换技术,具有频率转换时间短、频率分辨率高、频率稳定度高、输出信号频率和相位可快速程控切换等优点,所以,我们可以利用DDS具有很好的相位控制和幅度控制功能,另外其数据采样功能也是极具精确和完善的,它可以产生较为精确的任何有规则波形信号,可以实现对信号进行全数字式调制。
用FPGA和DDS实现信号调制,既克服了传统的方法实现带来的缺点,若采用它来编程设计,必定会事半功倍,且使设计趋于理想状态。
但鉴于DDS的占用ROM空间较大,我们设计时就必须考虑到所用期间的ROM空间是否够用,结合我选用的CycloneII系列的EP2C5Q208C8N器件所提供的26个M4KRAM存储模块,可以高达1.1Mbits的存储单元。
应该可以满足本次设计的需要。
时钟
图2.2D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 信号发生器 设计 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)