直接数字频率合成DDS的FPGA实现.docx

上传人:b****6 文档编号:10194892 上传时间:2023-02-09 格式:DOCX 页数:19 大小:100.15KB
下载 相关 举报
直接数字频率合成DDS的FPGA实现.docx_第1页
第1页 / 共19页
直接数字频率合成DDS的FPGA实现.docx_第2页
第2页 / 共19页
直接数字频率合成DDS的FPGA实现.docx_第3页
第3页 / 共19页
直接数字频率合成DDS的FPGA实现.docx_第4页
第4页 / 共19页
直接数字频率合成DDS的FPGA实现.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

直接数字频率合成DDS的FPGA实现.docx

《直接数字频率合成DDS的FPGA实现.docx》由会员分享,可在线阅读,更多相关《直接数字频率合成DDS的FPGA实现.docx(19页珍藏版)》请在冰豆网上搜索。

直接数字频率合成DDS的FPGA实现.docx

直接数字频率合成DDS的FPGA实现

直接数字频率合成(DDS)的FPGA实现

引言

------------------------------装----------------订-----------------线----------------------------------

直接数字频率合成(DDS)技术是60年代末出现的第三代频率合成技术,以Nyquist时域采样定理为基础,在时域中进行频率合成。

DDS具有相对带宽很宽,频率转换时刻极短(可小于20ns),频率分辨率能够做到很高(典型值为)等长处;另外,全数字化结构便于集成,输出相位持续,频率、相位、幅度都能够实现程控,通过改换波形数据能够轻易实现任意波形功能。

总的来讲,新一代的直接数字频率合成器采用全数字的方式实现频率合成,与传统的频率合成技术相较,具有以下特点:

(1)频率转换快。

(2)频率分辨率高、频点数多。

(3)相位持续。

(4)相位噪声小。

(5)控制容易、稳固靠得住。

在高靠得住应用领域,若是设计适当,将不会存在类似于MCU的复位不靠得住和PC可能跑飞等问题。

CPLD/FPGA的高靠得住性还表此刻,几乎可将整个系统下载于同一芯片中,实现所谓片上系统,从而大大缩小了体积,易于管理和屏蔽。

所以,采用FPGA来实现DDS有明显的益处。

1设计任务

设计一基于FPGA的直接数字频率合成实验系统。

设计目标为,能够实现稳固的正弦波输出,输出频率范围:

100Hz~10KHz,且频率可调(步进100Hz),幅度可调(步进)。

2设计思路及原理

DDS的工作原理是以数控振荡器的方式产生频率、相位可控制的正弦波。

电路一般包括基准时钟、频率累加器、相位累加器、幅度/相位转换电路、D/A转换器和低通滤波器(LPF)。

频率累加器对输入信号进行累加运算,产生频率控制数据X(frequencydata或相位步进量)。

相位累加器由N位全加器和N位累加寄放器级联而成,对代表频率的2进制码进行累加运算,是典型的反馈电路,产生累加结果Y。

幅度/相位转换电路实质上是一个波形寄放器,以供查表利用。

读出的数据送入D/A转换器和低通滤波器。

第1章 DDS工作原理

1.1DDS工作原理框图

图1-1所示是一个DDS电路的大体工作原理框图。

------------------------------装----------------订-----------------线----------------------------------

图1-1DDS电路的大体工作原理框图

1.2具体工作进程

每来一个时钟脉冲Fclk,N位加法器将频率控制数据X与累加寄放器输出的累加相位数据相加,把相加后的结果Y送至累加寄放器的输入端。

累加寄放器一方面将在上一时钟周期作用后所产生的新的相位数据反馈到加法器的输入端,以使加法器在下一时钟的作用下继续与频率控制数据X相加;另一方面将那个值作为取样地址值送入幅度/相位转换电路(即图1-1中的波形存储器),幅度/相位转换电路按照那个地址输出相应的波形数据。

最后经D/A转换器和低通滤波器将波形数据转换成所需要的模拟波形。

相位累加器在基准时钟的作用下,进行线性相位累加,当相位累加器加满量时就会产生一次溢出,如此就完成了一个周期,那个周期也就是DDS信号的一频率周期。

DDS输出信号的频率由下式给定:

Fout=(X/Y)×Fclk。

假定基准时钟为70MHz,累加器为16位,则Y=

=65536,Fclk=70MHz。

再假定X=4096,则Fout=(4096/65536)×70=。

可见,通过设定相位累加器位数、频率控制字X和基准时钟的值,就可以够产生任一频率的输出。

DDS的频率分辨率概念为:

Fout=Fclk/Y

(2)

由于基准时钟一般固定,因此相位累加器的位数就决定了频率分辨率。

如上面的例子,

相位累加器为16位,那么频率分辨率就可以够以为是16位。

位数越多,分频率越高。

第2章系统电路的设计及原理

2.1系统框图

按照要求,通过仔细分析,充分考虑各类因素,制定了整体的设计方案;以FPGA为核心,处置8位拨码开关送来的频率控制字将存在EAB的波形数据相应输出给DAC0832完成数模转换,再由另一块DAC0832的内部的电阻分压网络结合外部8位拨码开关的输入值实现幅度控制,继而通太低通滤波器进行滤波,从而取得正弦波。

系统总框图如图2-1所示。

 

频率数据输出

频率控制幅度控制

 

输出

图2-1系统整体框图

2.2各模块具体实现原理分析和说明

2.频率控制模块

这一模块是由FPGA实现的,FPGA完成相位累加器的功能,而频率控制字X是由外部拨码开关给出的。

------------------------------装----------------订-----------------线----------------------------------

相位累加器(见图2-2-1)是实现DDS的核心,它由一个N位字长的二进制加法器和一个固按时钟脉冲取样的N位相位寄放器组成。

相位寄放器的输出与加法器的一个输入端在

fc

频率控制字X输出序列

 

图2-2-1相位累加器结构

 

内部相连,加法器的另一个输入端是外部输入的频率控制字X。

如此,在每一个时钟抵达时,相位寄放器采样上个时钟周期内相位寄放器的值与频率控制字X之和,并作为相位累加器在这一时钟周期的输出。

频率控制字X决定了相应的相位增量,相位累加器则不断地对该相位增量进行线性累加,当相位累加器积满两时就会产生一次溢出,从而完成一个周期性的动作,那个动作周期即是DDS合成信号的一个频率周期。

于是,输出信号波形的频率表示式为

由该式可知,输出信号频率主要取决于频率控制字X,当X增大时,

能够不断的增高,由抽样定理,最高输出频率不得大于

/2,而按如实验所得,实际工作频率小于

/3时较为适合。

由于受到FPGA芯片资源限制,所能达到的频率不是很高,范围也不是很广。

按照设计目标,决定取

=51200Hz,选取有源晶振,通过80分频,取得基准频率为51200Hz。

N为9位。

如此,频率分辨率为

能够达到的最高最佳频率为51200/3≈17KHz。

ROM查找表设计

FPGA的结构是由基于半定制门陈列的设计思想而取得的。

从本质上讲,FPGA是一种比半定制还方便的ASIC设计技术。

FPGA的结构主要分为三部份:

可编程逻辑块、可编程IˆO模块、可编程内部连线。

查找表型FPGA的可编程逻辑单元是由功能为查找表的SRAM组成逻辑函数发生器,实现与其它功能块的可编程连接。

在此,选用FLEX10K系列FPGA作为目标芯片,它的集成度达到了10万门,而且在FPGA中第一次集成了嵌入式存储器块的芯片。

它是查找表型FPGA,由输入-输出控制模块(IOC)、嵌入式阵列块(EAB)、逻辑阵列块(LAB)和快速通道(FASTTRACK)组成。

其中EAB是一种输入输出端带有寄放器的超级灵活的RAM,它既能够用来作为存储器利用,也能够用来实现逻辑功能。

数模转换及幅度控制模块

(1)数模转换。

利用转换速度为1us带宽为1MHz的DAC0832,如此最高频率就不是很高。

DAC0832为电流输出型D/A转换器,需要外接运算放大器进行电流电压变换才能取得模拟电压输出。

输出方式为单极性输出方式的时候,输出级接一低电压温漂运放op07作为电压电流转换器,在运算放大器的输出端就可以够取得单极性模拟电压

若参考电压为+5V,则当数字量从00H~FFH转变时,对应的模拟电压

输出范围是0V~-5V。

(2)幅度控制。

利用DAC0832实现。

利用DAC0832内部的电阻分压网络,将经前一个

DAC0832产生的波形作为基准电压源输入,其输出波形幅度将为V=(N/256)*Vin,其中N由外部8位拨码开关控制,从而实现步进峰-峰值的幅度调整,其接法如图2-2-4所示。

 

数据作为基准

电压输入

输出

图2-2-4幅度控制实现

滤波输出电路模块

D/A输出后,通过滤波电路,使信号光滑。

滤波器在通带内的平坦程度对咱们而言,比其衰减更为重要,而且,巴特沃斯滤波器的元件值也较合乎实际情形,不像绝大多数其他类型滤波器对元件值要求那么苛刻。

在截止频率周围,频率响应钝化可能使这些滤波器在要求锐截止的地方不合要求。

二阶巴特沃斯有源低通滤波器设计(图2-2-5):

------------------------------装----------------订-----------------线----------------------------------

正弦波的输出频率小于10KHz,为保证10KHz频带内输出幅度平坦,又要尽可能抑制谐波和高频噪声,综合考虑取

R1=1KΩ,R2=1KΩ,C1=100pF,C=100pF

图2-2-5有源低通滤波器设计

FPGA程序下载电路模块

FLEX10K器件能够通过在线配置的手腕来调整电路结构、延时信息等,这给设计人员调试电路带来了极大的方便。

而并口下载电缆ByteBlaster正是将PC机中的配置信息传到PCB板FLEX器件中必不可少的器件。

(1)配置模式的选择。

ByteBlaster有两种配置模式:

被动串行模式(PS)--常常利用来配置重构FLEX10K、FLEX8000和FLEX6000系列器件;边界扫描模式(JTAG)--具有边界扫描电路的配置重构或在线编程。

------------------------------装----------------订-----------------线----------------------------------

对CPLD的器件配置分为两类:

主动配置方式和被动配置方式。

主动配置由CPLD器件引导配置操作进程,它控制着外部存储器和初始化进程。

而被动配置由运算机或控制器控制配置进程。

在本设计中由于须由上位机来控制配置进程,故采用了被动串行模式(PS)。

(2)被动串行配置模式(PS)。

在被动串行配置(PS)方式中,由上位机产生一个由低到高的跳变,通过ByteBlaster并口下载电缆送到nCONFIG引脚,然后将配置数据送到DATA0引脚,该数据锁存至CONF-DONE变成高电平,它是先将每字节的最低位LSB送到FLEX10K器件。

CONF-DONE变成高电平后,DCLK必需用多余的10个周期来初始化该器件,器件的初始化是由下载电缆执行的。

在PS方式中没有握手信号,所以,配置时钟的工作频率要低于10MHz。

①ByteBlaster25针插头

ByteBlaster与PC机并口相连的是一个25针的插头,其连接线名称与插头各引脚名称如表2-2所示。

表2-2ByteBlaster的25针连接线名称

引脚

引脚名称

引脚

引脚名称

2

DCLK

13

nSTATUS

3

nCONFIG

15

GND

8

DATA0

18~25

GND

11

CONF-DONE

②ByteBlaster10针插头

ByteBlaster的10针插头是与PCB板上的10针插座相连的,表2-3列出了ByteBlaster插头在PS模式下的各引脚的名称。

其中NC表示管脚是悬空的,下载电缆的电源Vcc和信号

地GND由PCB板提供,PCB板所提供的电源Vcc为5V。

表2-3ByteBlaster插头引脚名称

引脚

信号名

描述

1

DCLK

时钟

2

GND

信号地

3

CONF-DONE

配置控制

------------------------------装----------------订-----------------线----------------------------------

4

Vcc

电源

5

nCONFIG

配置控制

6

——

NC

7

nSTATUS

配置状态

8

——

NC

9

DATA0

配置的数据

10

GND

信号地

③ByteBlaster的数据变换电路

在ByteBlaster下载电缆中,其数据互换实际上就只有一个74LS244和N个电阻。

2.3设计所用关键元器件的介绍

2.FLEX10K系列FPGA

(1)概述。

------------------------------装----------------订-----------------线----------------------------------

FLEX10K采用可重构的CMOSSRAM工艺,把持续的快速通道互连与独特的嵌入式阵列结构相结合,同时也结合了众多可编程器件的长处来完成普通门阵列的宏功能。

其集成度已达到25万门。

与标准门阵列相较,嵌入式门阵列通过在硅片中嵌入逻辑块的方式来减少死区,提高速度。

但是,典型的嵌入式宏功能模块一般是不能改变的,这就限制了设计人员的选择。

相反,FLEX10K器件是可编程的,在调试时它允许设计人员全面控制嵌入式宏功能模块和一般的逻辑,能够方便地反复修改设计。

(2)FLEX10K器件系列的特点。

①FLEX10K是工业界第一种嵌入式的PLD器件系列,具有实现宏功能的嵌入式阵列和实现普通功能的逻辑阵列,可提供可编程单芯片系统(SOPC)集成。

②高密度:

1万~25万个可用门。

高达40960位内部RAM(每一个EAB有2048位),所有这些都可在不减少逻辑能力的情形下利用。

③系统级特点:

支持多电压接口;在FLEX10KA器件中允许输入的引脚电压为,在FLEX10KB器件中允许输入的引脚电压为和;低功耗(维持状态小于);遵守PCI总线规定;内带JTAG边界扫描测试电路;边界扫描测试电路;器件采用先进的工艺制造并可在、、电源电压下工作。

所有器件都100%通过功能测试。

④灵活的内部连接:

快速、可预测连线延时的快速通道(FastTrack)持续式布线结构;

------------------------------装----------------订-----------------线----------------------------------

实现快速加法器、计数器和比较器的专用进位链;实现高速、多输入逻辑函数的专用级联链;实现内部三态总线的三态模拟;多达六个全局时钟信号和四个全局清除信号。

⑤壮大的I/O引脚功能:

每一个引脚都有一个独立的三态输出使能控制及漏极开路配置选项(Open-drainoption);可编程输出电压的摆率控制,可有减少开关噪声。

FLEX10KA、FLEX10KE、FLEX10KS器件支持热拔插。

⑥多种封装方式:

用户可任意选择84~600引脚的各类封装。

封装形式有PLCC、TQFP、PQFP、RQFP、PGA、BGA等,同一种封装中的各类FLEX10K系列器件的引脚相兼容。

DAC0832芯片介绍

(1)芯片简介。

DAC0832由两级数据缓冲器和D/A转换器组成,第一级数据缓冲器称为输入寄放器,第二级称为DAC寄放器。

(2)DAC0832的工作方式。

DAC0832有两级锁存器,因此有3种工作方式:

双缓冲工作方式、单缓冲工作方式和直通工作方式。

双缓冲工作方式,就是把DAC0832的输入寄放器和DAC寄放器都接成受控方式。

CPU对DAC芯片的写操作分两步进行:

第一步把数据写进输入寄放器,第二步把输入寄放器的内容写入DAC寄放器。

(3)DAC0832的输出方式。

DAC0832为电流输出型D/A转换器,需要外接运算放大器进行电流电压变换才能取得模拟电压输出。

输出方式有两种:

单极性输出和双极性输出。

单极性电压输出方式输出的电压极性是单一的,而双极性输出方式输出的电压极性是可变的,即有正有负。

单极性输出时,在运算放大器的输出端就可以够取得单极性模拟电压

若参考电压为+5V,则当数字量从00H~FFH转变时,对应的模拟电压

输出范围是0V~-5V。

双极性电压输出方式需要两级运算放大器级联输出电压,输出电压

及第一级运算放大器输出

的关系是:

=—(2

+

这时,当数字量从00H~FFH转变时,对应的模拟电压

输出范围是—5V~+5V,显然,其分辨率较单极性输出降低一倍。

按照设计目标需要,本设计采用单极性电压输出方式。

第3章FPGA部份VHDL仿真及说明

FPGA部份电路是整个电路设计系统中最主要的部份,所以其可否正常工作对整个系统的工作起关键作用。

FPGA部份仿真主如果观察波形数据的值的输出是不是正确和值输出的频率是不是和预置的频率控制字相对应,在MAX+plusII的仿真文件.scf里对FPGA部份的电路进行了验证。

由于外部有源晶振的频率为,故将.scf的option里的Gridsize设置为,即周期差不多是。

运行仿真,取得的结果跟理论的结果几乎一样,因此,能够肯定整个FPGA部份电路能够正常运行。

------------------------------装----------------订-----------------线----------------------------------

从波形仿真结果中很难直观地看出DDS输出正弦波的情形。

为了便于调试设计电路,咱们能够利用运算机高级语言将MAX+plusII波形仿真结果转换为波形曲线,这就需要借助于MAX+plusII的表格文件(.tbl文件)。

MAX+plusII的设计软件中的.tbl文件是纯文本文件,它包括了.scf文件或.wdf文件中的所有信息。

.tbl文件的生成很简单,在MAX+plusII波形仿真结束后,打开.scf文件,然后从“File”菜单当选择“CreateTableFile”选项,就可产生.tbl文件。

.tbl文件的大体结构可分为四大部份,其中第三部份和第四部份是最关键的,可从中获取仿真波形数据,并利用运算机高级语言处置这些数据,将其转换为直观的波形曲线。

需要注意的是,每做一次MAX+plusII波形仿真,都要从头生成一次.tbl文件,以更新.tbl文件内的数据。

可是由于波形数据太大,而且,对用高级语言来实现那个部份不太熟练,因此,无法取得预想的DDS电路的仿真波形曲线。

第4章工程设计

EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,是90年代初,从CAD(运算机辅助设计)、CAM(运算机辅助制造)、CAT(运算机辅助测试)和CAE(运算机辅助工程)的概念进展而来的。

本设计主要利用了两个EDA工具,MAX+plusII和Protel99SE,以下就别离对这两个工具在本设计中的应用进行简单的说明。

4.1MAX+plusII的利用和VHDL程序的编写

FPGA部份电路的VHDL程序主如果依托MAX+plusII来处置。

------------------------------装----------------订-----------------线----------------------------------

VHDL主要用于描述数字系统的结构、行为、功能和接口。

除含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的运算机高级语言。

VHDL的程序结构特点是将一项工程设计,或称设计实体(能够是一个元件、一个电路模体的内部功能和算法完成部份。

在对一个设计实体概念了外部界面后,一旦其内部开发完成后,其它的设计就可以够直接挪用那个实体。

这种将设计实体部份分成内外部份的概念是VHDL系统设计的大体点。

应用VHDL进行工程设计的长处是多方面的,具体如下:

(1)与其它的硬件描述语言相较,VHDL具有更强的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言。

壮大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。

就目前流行的EDA工具和VHDL综合器而言,将基于抽象的行为描述风格的VHDL程序综合成为具体的FPGA和CPLD等目标器件的网表文件已不成问题,只是在综合与优化效率上略有不同。

(2)VHDL丰硕的仿真语句和库函数,使得在任何大系统的设计初期(即尚未完成),就可以查验设计系统的功能可行性,随时可对设计进行仿真模拟。

即在远离门级的高层次上进行模拟,使设计者对整个工程设计的结构和功能的可行性作出决策。

(3)VHDL语句的行为描述能力和程序结构决定了它具有支持大规模设计的分解和已有设计的再利用功能。

符合市场需求的大规模系统高效、高速的完成必需由多人乃最多个开发组一路并行工作才能实现。

VHDL中设计实体的概念、程序包的概念、设计库的概念为设计的分解和并行工作提供了有力的支持。

(4)对于用VHDL完成的一个肯定的设计,能够利用EDA工具进行逻辑综合和优化,并自动地把VHDL描述设计转变成门级网表(按照不同的实现芯片)。

这种方式冲破了门级设计的瓶颈,极大地减少了电路设计的时刻和可能发生的错误,降低了开发本钱。

应用EDA工具的逻辑优化功能,能够自动地把一个综合后的设计变成一个更小、更高速的电路系统。

反过来,设计者还能够容易地从综合和优化后的电路取得设计信息,反归去更新修改VHDL设计描述,使之更为完善。

(5)VHDL对设计的描述具有相对独立性,设计者能够不懂硬件的结构,也没必要管最终设计实现的目标器件是什么,而进行独立的设计。

正因为VHDL的硬件描述与具体的工艺技术和硬件结构无关,VHDL设计程序的硬件实现目标器件有广漠的选择范围,其中包括各系列的CPLD、FPGA及各类门阵列器件。

(6)由于VHDL具有类属描述语句和子程序挪用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变类属参量或函数,就可以轻易地改变设计的规模和结构。

------------------------------装----------------订-----------------线----------------------------------

MAX+plusII界面友好,利用便捷,被誉为业界最易用易学的EDA软件。

MAX+plusII支持原理图、AHDL、VHDL和Verilog语言文本文件、和波形与EDIF等格式的文件作为设计输出,并支持这些文件的任意混合设计。

MAX+plusII具有门级仿真器,能够进行功能仿真和时序仿真,能够产生精准的仿真结果。

在适配以后,MAX+plusII生成供时序仿真用的EDIF、VHDL和Verilog三种不同格式的网表文件。

MAX+plusII支持主流的第三方EDA工具,如Synopsys、Cadence、Synplicity、Mentor、Viewlogic、Exemplar和ModelTechnology等。

MAX+plusII支持除APEX20K系列之外的所有AlteraFPGA/CPLD大规模逻辑器件。

本设计利用Altera公司的EDA软件MAX+plusII的进程可能如下所述。

本设计分二个模块,即和。

其中是用VHDL

编写的,则是原理图,是本例以原理图方式表示的顶层设计文件。

图中将是用作为元件进行挪用。

是一个80分频器;顶层文件则将、MAX+plusII自带的LPM_ADD_SUB、LPM_DFF和LPM_ROM模块组装起来组成一

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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