文档详情

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

发布:2024-12-02约4.69千字共6页下载文档
文本预览下载声明

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

【摘要】本文介绍了基于FPGA和MCU技术的直接数字合成信号发生器的

设计,详细分析了其主要模块的系统结构、软硬件设计和具体实现电路。

【关键词】信号发生器;DDS;FPGA

1.引言

随着数字集成电路和微电子技术的发展,直接数字合成技术(DirectDigital

Synthesis)简称DDS将先进的数字处理技术与方法引入信号合成领域,优越的

性能和突出的特点使其成为现代频率合成技术中的佼佼者。DDS器件采用了高

速数字电路和高速D/A转换技术,具备了频率转换时间短、相对带宽宽、频率

分辨率高、输出相位连续和相位可快速程控切换等优点,可以实现对信号的全数

字式调制。本文给出了基于FPGA和MCU技术的直接数字合成信号发生器的设

计,实现了满足预定指标的多频率波形输出。

2.DDS基本原理

DDS建立在采样定理基础上,首先对需要产生的波形进行采样,将采样值

数字化后存人存储器作为查找表。然后通过查表读取数据,再经D/A转换器转

换为模拟量,将保存的波形重新合成出来。DDS基本原理框图如图1所示。

图1DDS基本原理框图

基本功能包括:接收频率控制字进行相位累加;使用带反馈的移位寄存器产

生随机序列;把随机序列加到相位地址码或幅度值:对相位累加值进行相幅转换;

把读出的幅度值进行D/A转换并调节其幅度;对波形进行滤波后放大输出波形。

3.DDS信号的产生

下面就FPGA实现DDS正弦波信号为例,对其键技术进行分析。

3.1采样点的实现

对一个幅度为1的正弦波的一个周期进行1024点采样,用Matlab计算得到

每一点对应的幅度值,然后量化成8位二进制数据存放在ROM中。用MATLAB

语言编写的正弦函数数据采集程序如下:

CLEARTIC;

T=2*PI/1024;

t=[0:T:2*pi];

y=255*sinz(t);

round(y);

3.2数据ROM制作

有了上面的采样点接下去就可以结合QUARTUS中ROM的制作来设计一个

存储1024个采样点的存储器,下面是实现的部分Verilog程序。

modulerom(

address,

clock,

q);

altsyncramaltsyncram_component(

.clock0(clock),

.address_a(address),

.q_a(sub_wire0)

//synopsystranslate_off

.aclr0(),

.aclr1(),

.address_b(),

.addressstall_a(),

.addressstall_b(),

.byteena_a(),

.byteena_b(),

.clock1(),

.clocken0(),

.clocken1(),

.data_a(),

.data_b(),

.q_b(),

.rden_b(),

.wren_a(),

.wren_b()

//synopsystranslate_on

);

defparam

3.3PLL锁相环倍频的实现

在本次设计中选择Cyclone芯片它带有一个PLL可以将系统时钟频率被倍

频到120M。

在FPGA中使用其LPM库,可以实现波形的任意分频和移相。根据要求设

计锁相环倍频到120MHZ,其最高频率不能太高,这是由外部运算放大器

THS4001所能转换的速率以及FPGA在综合的时候所能承受的最高频率所约束。

在QU

显示全部
相似文档