基于FPGA的直接数字频率合成器设计Word下载.docx

上传人:b****6 文档编号:20518871 上传时间:2023-01-23 格式:DOCX 页数:29 大小:776.51KB
下载 相关 举报
基于FPGA的直接数字频率合成器设计Word下载.docx_第1页
第1页 / 共29页
基于FPGA的直接数字频率合成器设计Word下载.docx_第2页
第2页 / 共29页
基于FPGA的直接数字频率合成器设计Word下载.docx_第3页
第3页 / 共29页
基于FPGA的直接数字频率合成器设计Word下载.docx_第4页
第4页 / 共29页
基于FPGA的直接数字频率合成器设计Word下载.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

基于FPGA的直接数字频率合成器设计Word下载.docx

《基于FPGA的直接数字频率合成器设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于FPGA的直接数字频率合成器设计Word下载.docx(29页珍藏版)》请在冰豆网上搜索。

基于FPGA的直接数字频率合成器设计Word下载.docx

只不过在DDS技术中,这个过程被颠倒过来了。

DDS不是对模拟信号进行抽样,而是一个假定抽样过程已经发生且抽样值已经量化完成,如何通过某种方法把已经量化的数值重建原始信号的问题。

DDS电路一般由参考时钟、相位累加器、波形存通滤波器(LPF)组成。

其结构如图2.1所示。

图2.1DDS基本结构框图

其中,fc为参考时钟频率,K为频率控制字,N为相位累加器位数,A为波形存储器地址位数,D为波形存储器的数据位字长和D/A转换器位数。

由于受到字长的限制,相位累加器累加到一定值后,就会产生一次累加溢出,这样波形存储器的地址就会循环一次,输出波形循环一周。

相位累加器的溢出频率即为合成信号的频率。

可见,频率控制字K越大,相位累加器产生溢出的速度越快,输出频率也就越高。

故改变频率字(即相位增量),就可以改变相位累加器的溢出时间,在参考频率不变的条件下就可以改变输出信号的频率。

图2.2DDS各部分输出波形

2.2FPGA简介

数字集成电路从产生到现在,经过了早期的电子管、晶体管、小中规模集成电路,到大规模、超大规模集成电路(VLSIC)以及许多既有特定功能的专用集成电路的发展过程。

但是,随着为电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。

系统设计师们更愿意自己设计专用集成电路(ApplicationSpecialIntegratedCircuit,ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FieldProgrammableLogicDevice,FPLD),其中应用最广泛的当属CPLD和FPGA。

CPLD是复杂可编程逻辑器件(ComplexProgrammableLogicDevice)的简称,FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称。

两者的功能基本相同,只是实现原理略有不同,但有时可以忽略这两者的区别。

不同厂家对可编程逻辑器件的叫法也不尽相同。

Altera公司把自己的可编程逻辑器件产品中的MAX系列(乘积项技术,EEPROM技术)、FLEX系列(查找表技术,SRAM工艺)都叫做CPLD;

而把也是SRAM工艺、基于查找表技术、要外挂配置用的FLEX系列的EPROM叫做FPGA。

FPGA一般由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。

每个单元简介如下:

(1)可编程输入/输出单元(I/O单元)。

目前大多数FPGA的I/O单元被设计为可编程模式,即通过软件的灵活配置,可适应不同的电气标准与I/O物理特性;

可以调整匹配阻抗特性,上下拉电阻;

可以调整输出驱动电流的大小等;

(2)基本可编程逻辑单元。

FPGA的基本可编程逻辑单元是由查找表(LUT)和寄存器(Register)组成的,查找表完成纯组合逻辑功能。

FPGA内部寄存器可配置为带同步/异步复位和置位、时钟使能的触发器,也可以配置成为锁存器。

FPGA一般依赖寄存器完成同步时序逻辑设计。

一般来说,比较经典的基本可编程单元的配置是一个寄存器加一个查找表,但不同厂商的寄存器和查找表的内部结构有一定的差异,而且寄存器和查找表的组合模式也不同。

(3)嵌入式块RAM。

目前大多数FPGA都有内嵌的块RAM。

嵌入式块RAM可以配置为单端口RAM、双端口RAM、伪双端口RAM、CAM、FIFO等存储结构。

(4)丰富的布线资源。

布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。

布线资源的划分:

A全局性的专用布线资源:

以完成器件内部的全局时钟和全局复位/置位的布线;

B长线资源:

用以完成器件Bank间的一些高速信号和一些第二全局时钟信号的布线;

C短线资源:

用来完成基本逻辑单元间的逻辑互连与布线;

D其他:

在逻辑单元内部还有着各种布线资源和专用时钟、复位等控制信号线。

(5)底层嵌入功能单元。

由厂商及芯片型号决定。

(6)内嵌专用硬核。

与“底层嵌入单元”有区别,这里指的硬核主要是那些通用性相对较弱的芯片,不是所有FPGA芯片都包含硬核。

FPGA的基本特点主要有:

(1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。

(2)FPGA可做其它全定制或半定制ASIC电路的中试样片。

(3)FPGA内部有丰富的触发器和I/O引脚。

(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。

(5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

2.3VHDL简介

VHDL的全称是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。

1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。

(1)VHDL语言功能强大,设计方式多样。

VHDL语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。

同时,它还具有多层次的电路设计描述功能。

此外,VHDL语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。

VHDL语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;

既支持模块化设计方法,也支持层次化设计方法。

(2)VHDL语言具有强大的硬件描述能力。

VHDL语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;

描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。

同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。

VHDL语言的强大描述能力还体现在它具有丰富的数据类型。

VHDL语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。

(3)VHDL语言具有很强的移植能力。

VHDL语言很强的移植能力主要体现在:

对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。

(4)VHDL语言的设计描述与器件无关。

采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。

这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。

当硬件电路的设计描述完成以后,VHDL语言允许采用多种不同的器件结构来实现。

(5)VHDL语言程序易于共享和复用。

VHDL语言采用基于库(library)的设计方法。

在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步地进行设计,而是一些模块的累加。

这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。

由于VHDL语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬件电路设计的工作量,缩短开发周期。

2.4QuartusⅡ简介

QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。

具有运行速度快,界面统一,功能集中,易学易用等特点。

3.系统硬件电路设计

3.1数字信号发生器的系统组成

该数字信号发生器系统主要由输入部分、FPGA部分、D/A转换部分、频率、幅值调节和波形转换部分组成。

如图3.1所示。

图3.1数字信号发生器系统组成

3.2设计原理及要求

在本设计中,利用FPGA,采用EDA(ElectronicDesignAutomation)中自顶向下(top-to-down)的设计方法,选用基于相位累加器的直接数字合成/DDS技术来完成数字信号发生器各功能模块的设计。

DDS这种结构主要由相位累加器、相位调制器、波形ROM查找表、D/A构成。

其中相位累加器、相位调制器、波形ROM查找表是DDS结构中的数字部分,由于具有数控频率合成的功能,又合称为NCO。

它的工作原理是:

将要产生的波形数据存入波形存储器,然后在参考时钟的作用下,对输入的频率数据进行累加,并且将累加器的输出一部分作为读取波形存储器的地址,将读出的波形数据经D/A转换为相应的模拟电压信号。

本研究的重点就是用VHDL来实现DDS的功能,能够达到高精度的输出,同时标准波形数据生成存放在ROM中,可以简化运算过程,提高运算速度,加快反应时间。

本设计主要通过VHDL语言实现频率控制、波形控制、波形数据的提取、波形的产生工作。

其中,波形数据运用VHDL语言编写。

控制部分主要采用产生高低电平的拨码开关控制。

程序下载到FPGA上实现,经过D/A输出波形。

并通过Altera公司QuartusII9.0软件进行波形的仿真,从而完成整个设计。

本设计的任务是设计一个基于FPGA的数字信号发生器,根据任务书要求必须达到以下要求:

1.利用EDA开发系统、QuartusII9.0软件实现数字信号发生器的设计;

2.根据整体电路的工作原理,完成各个子模块的设计及实现;

3.对数字信号发生器完成VHDL语言描述;

4.该数字信号发生器能够产生正弦波、方波、三角波、锯齿波信号;

5.产生的波形信号频率和幅度可通过按键进行调节;

6.用按键调节实现各种波形的转换。

3.3输入部分

输入部分包含以下功能按键:

时钟、复位、波形、调幅、调频。

1.时钟:

标准的50MHZ时钟输入。

2.复位:

低电平复位。

3.波形:

为波形输出选择开关,可以选择单波形的输出。

4.调幅:

可以递增和递减正弦波、三角波、方波的幅度。

5.调频:

可以递增和递减正弦波、三角波、方波的频率。

3.3.1频率、幅值和波形转换部分

由于采用DDS,在ROM中存有波形一个周期的n个等间隔归一化采样数据,改变相位累加器步进,从而改变对ROM中数据的读取速度,即可合成不同频率波形,存储器中存入过量的采样值,使得采样点数较少时,依然能够得到较好波形输出,从而得到较高频率输出。

否则,采样点数太少会使产生波形严重失真。

输出波形频率计算:

          

      (式3.1)

式中

是晶振频率

K分频系数

 N相位累加器位数

 S相位累加器步长

若取

代入式(3.1)得到。

因此,只要控制S的值就可准确实现频率步进为10Hz的等步进调频。

如采用32MHz的晶振,也能得到10Hz精确的等步进调节,但牺牲了波形质量。

通过实验测试和比较,可用下式计算频率:

 

   (式3.2)

因为65306不是一个2N的数,这样波形会漏掉少量采样点。

即使这样,得到波形依然平滑,可满足设计要求。

若要使频率调节步进减小到1Hz,对晶振有特殊要求,它的振荡频率必须是2的N次幂。

由式(3.1)举例说明累加器位数不同产生差异:

 (式3.3)

 (式3.4)

式(3.4)产生的波形优于式(3.3),最高频率也高出几倍。

由于DAC0832的电流建立时间是1μs,因此输出波形的最高频率受下式限制:

(式3.5)

因此,要得到更高频率的波形需使用更高速的D/A转换器。

频率和幅值调节和波形转换电路如图3.2所示。

八个按键一端接1KΩ排阻(上拉电阻)后接VCC,一端接FPGA控制信号引脚输入端,按键有八个,分别为复位键SW1,控制波形转换键SW2,控制幅度步进键SW3,控制幅度步减键SW4,控制频率步进键SW5,控制频率步减键SW6,控制幅值步进键SW7,控制幅值步进键SW8。

3.4FPGA部分

本设计使用的FPGA芯片其典型逻辑门数(包括逻辑门和RAM)为50000门,最大可用系统门数为116000门,逻辑单元(Logicelements)为2880个,逻辑阵列模块(Logicarrayblocks)为360个,嵌入式阵列模块(Embeddedarrayblocks)为10个,RAM总容量为20480字节,用户可用的I/O引脚最多为310个。

芯片的工作电压为+5V。

其内部结构如图3.5所示。

图3.5FPGA芯片结构图

通常情况下在硬件调试的过程中一般使用下载电缆进行下载,而当调试完成以后要用配置芯片对FPGA进行配置。

配置芯片在每次系统上电以后自动将配置文件加载到FPGA中形成电路。

3.5D/A转换部分

D/A转换器电路的设计:

从波形RAM中读出的幅度量化数据还只是一个数字信号,要得到最后的输出信号必须经过数模转换器。

因此在波形RAM之后要设计一个D/A转换电路。

数模(D/A)转换电路的作用是把已经合成的波形幅值的数字量转换成模拟量,其速度和特性直接影响整个系统的性能。

D/A转换器件的首要特性要求是高速,其次是转换位数,本设计中选用8位的D/A芯片DAC0832。

波形幅度量化序列经D/A转换后成为阶梯波。

频率合成器对D/A转换器的分辨率有一定的要求,D/A转换器的分辨率越高,合成的波形台阶数就越多输出的波形的精度也就越高。

D/A的输出用电压形式表示一般应为:

(式3.6)

式中D为D/A的输入数据值,N为D/AC的位数,即通常所指的D/AC的分辨率,

为输入D/A的参考电压。

D/A转换电路的设计首先是要选择一款合适的D/A转换芯片。

D/A转换芯片种类繁多。

选择D/A转换芯片要根据很多因素来确定,最主要的就是要考虑字长和转换速度。

本设计采用DAC0832作为D/A转换器件,其具有数字量的输入锁存功能,DAC0832芯片的输出通过放大器OP07,即可用示波器观察。

100KΩ的电位器在+5V和0V电压间为DAC0832提供参考电压。

D/A转换电路的原理图如图3.6所示:

图3.6D/A转换电路的原理图

3.5.1DAC0832转换器简介

DAC0832是双列直插式8位D/A转换器。

能完成数字量输入到模拟量(电流)输出的转换。

其主要参数如下:

分辨率为8位,转换时间为1μs,满量程误差为±

1LSB,参考电压为(+10~-10)V,供电电源为(+5~+15)V,逻辑电平输入与TTL兼容。

从图3.7中可见,在DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的允许锁存信号为ILE,第二级锁存器称为DAC寄存器,它的锁存信号也称为通道控制信号XFER。

图3.7DAC0832引脚图

DAC0832各引脚编号及其作用:

11号CS引脚:

片选信号输入线,低电平有效;

22号WR1引脚:

为输入寄存器的写选通信号;

33号AGND引脚:

模拟地,模拟信号和基准电源的参考地;

44-7,13-16号D0-D7引脚:

数据输入线,TLL电平;

58号Vref引脚:

基准电压输入(-10V~+10V);

69号RFB引脚:

反馈信号输入线,芯片内部有反馈电阻;

710号DGND引脚:

数字地;

811号IOUT1引脚:

电流输出线,当输入全为1时,IOUT1最大;

912号IOUT2引脚:

电流输出线,其值与IOUT1为一常数;

1017号XFRE引脚:

数据传送控制信号输入线,低电平有效;

1118号WR2引脚:

为DAC寄存器写选通输入线;

1219号ILE引脚:

数据锁存允许控制信号输入线,高电平有效;

1320号Vcc引脚:

电源输入线(+5V~+15V)Vref。

4.系统软件设计

4.1软件系统流程图

本设计主要是由FPGA为核心控制一些简单外围电路输出可控的方波、三角波、锯齿波、正弦波。

输入部分为8个按键值,分别用于控制波型的选择、波型的调节;

输出部分由一个8位的DA组成,由FPGA将数据波型数据送给DA转换输出模拟波型信号。

具体流程如图4.1所示:

图4.1系统流程图

通过按键可以选择输出波型,如方波、三角波、正弦波。

波型频率幅度的改变可以通过按对应的频率加按键和频率减键,幅度加键幅度减键。

由于频率和幅度改变在QuartusⅡ软件平台下不能明显仿真步进变化,所以本设计没有介绍步进仿真。

4.2主要函数语句分析

在程序设计中,主要使用的函数语句有两种:

If-else语句和case-when语句。

这两种语句也是VHDL程序设计中常用的语句。

二者都属于流程控制语句。

流程控制语句通过条件控制开关决定是否执行一条或几条语句或重复执行一条或几条语句或跳过一条或几条语句。

IF语句是一种条件语句,它根据语句中所设置的一种或多种条件,有选择地执行指定的顺序语句。

4.3数字信号发生器的软件设计

本次设计的软件部分主要运用Altera公司的QuartusⅡ9.0软件平台,其开发流程基本分成2个步骤:

1.设计输入QuartusⅡ软件的设计文件可以来自QuartusⅡ5.1设计输入工具或各种工业标准的EDA设计输入工具QuartusⅡ强大的集成功能允许信息在各种应用程序间自由交流,设计者可在一个工程内直接从某个设计文件转换到其他任何设计文件,而不必理会设计文件是图形格式、文本格式,还是波形格式。

QuartusⅡ具有如下的多种设计输入方法:

原理图输入与符号编辑、硬件描述语言、波形设计输入、平面图编辑以及层次设计输入。

如此众多的设计方法帮助设计者轻松地完成设计输入。

2.项目处理QuartusⅡ处理一个设计时,软件编译器读取设计文件信息,产生用于器件编程、仿真、定时分析的输出文件。

消息处理器可以自动定位编译过程中发现的错误,编译器还可以优化设计文件。

项目处理包括以下基本步骤:

(1)消息处理器自动定位错误;

(2)逻辑综合与试配;

(3)定时驱动编译;

(4)设计规则检查;

(5)多器件划分。

本次设计的数字信号发生器在QuartusⅡ5.1下的RTL图如图4.2所示。

图4.2系统RTL图

4.4软件各模块

4.4.1波形发生器

设计的波形发生器就是为了得到正弦波、三角波、方波这三种波形,并可通过按钮选择输出波形。

波形发生器可以由正弦波产生模块、三角波产生模块、方波产生模块和输出波形选择模块(ch3a1)。

下图为波形发生器内部的顶层设计的规划图

图4.3波形发生器内部的顶层设计的规划图

如图可以看到,控制输入有三大块,一个是个按钮的数据选择命令的输入,一个是时时钟输入,它的频率将决定输出波形的频率,还有一个是复位键。

在芯片里面要处理的就有波形产生器产生相应的数据后输出8位的数据到数据选择模块中,通过按钮发出选择数据的指令,3选1的数据选择器选择相应的数据进行输出,把这些数据输入D/A模块中,通过D/A模块对数据转换,在它的输出端就可得到相应的波形。

4.4.2主控制模块

主控制模块完成了频率调节、幅度调节和波形选择三个控制功能。

图是用QuartusⅡ9.0生成的主程序结构框图,其中CLK为标准频率50M输入,RST为系统复位键,VADD,VDEC为调节输出幅度的二个按键,使用方法是当按下VADD时幅度会每隔一秒递增一次,直到最大幅度,当按下VDEC时幅度会每隔一秒递减一次,直到最小幅度,PADD,PDEC为调节输出频率的二个按键,使用方法是当按下PVADD时频率会每隔一秒递增一次,直到最大频率,当按下PDEC时频率会每隔一秒递减一次,直到最小频率。

SEL为波形选择键,当按下SEL键时系统每隔一秒在方波、三角波、正弦波,锯齿波四种波形循环切换。

CNT为FPGA产生的8位数字波形数据信号。

4.4.3波形数据产生模块

(1)方波数据产生模块

方波产生方法是由主控制模块提供方波频率和幅度,按照主控制模块的频率产生“0”和主控提供的幅度值。

将这些数据直按送入DAC就能得到所需方波信号。

产生框图如图4.5所示:

CLK为主控模块提供的频率信号,RST为复位键,DIN为主控模块提供幅度信号,DOUT为产生的波型数据信号。

方波信号仿真:

按仿真按钮可以直接进行仿真,提示信息提示你仿真成功后。

可以看到如下仿真波形,如图4.6方波信号仿真。

在这个仿真波形图中,可以看到当clrn为高电平的时候,出现一个clk时钟脉冲的上升沿计数,从0跳到255,等下一个脉冲来临时有从255跳到0,依次重复,如图所示,波形将以方波的规律变化。

(2)三角波数据产生模块

三角波产生方法是由主控制模块提供波型频率和幅度,按照主控制模块的频率产生由0自加到主控模块提供的幅度值然后再自减到0。

这些数据直按送入DAC就能得到所需三角波信号。

产生框图如图4.7所示:

CLK为主控模块提供的频率信号,DOUT为产生的波型数据信号。

按仿真按钮可以直接进行仿真,提示信息提示你仿真成功之后,可以看到如下的仿真波形,仿真如图4.8所示。

图4.8三角波信号仿真

在这个仿真图中,可以看到当clrn为高电平的时候,出现一个clk时钟脉冲的上升沿开始计数,从0增到1,然后每来一个脉冲就增一次,直到增到255,等下一个脉冲到临时将有从255减到254,然后每来一个脉冲就减一次,直到减到0,依次重复,如图所示,波形将出现三角波的规律变化。

(3)正弦波数据产生模块

正弦波产生

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1