从最基本细节开始:quartus:FPGA利用rom查表法产生DDS

一、DDS原理及结构

DDS(Direct Digital Synthesis)是一种把一系列数字信号通过D/A转换器转换成模拟信号的数字合成技术。它有查表法和计算法两种基本合成方法。由于ROM查询法结构简单,只需要在ROM中存放不同相位对应的幅度序列,然后通过相位累加器的输出对其寻址,经过数/模转换和低通滤波(LPF)输出便可以得到所需要的模拟信号。
ROM查表法。DDS技术实质上是实现了一个数字分频器的功能。对于一个周期的正弦波连续信号,可以沿其相位轴方向,以等量的相位间隔对其进行相位/幅度采样,得到一个周期性的正弦信号的离散相位的幅度序列,对模拟幅度进行量化后的幅值采用二进制数据编码,这样就把一个周期的正弦波连续信号转换成一系列离散的二进制数字量,然后存入存储器RAM中,每个存储器单元的地址即是相位取样地址,存储单元的内容是已经量化了的正弦波幅值。一个这样的只读存储器构成了一个与2π周期相位取样对应的正弦波函数表。DDS的基本原理主要由标准参考频率源、相位累加器、波形存储器和数/模转换器构成。
在时钟脉冲的控制下,频率控制字K由累加器得到相应的相码。相码寻址波形存储器进行相码—幅码变换输出不同的幅度编码,经过数/模变换器得到相应的阶梯波,最后经过低通滤波器对阶梯波进行平滑,即得到由频率控制字K决定的连续变化的输出波形。相位累加器是实现DDS的核心,它由一个N位字长的二进制加法器和一个由固定时钟脉冲取样的N位相位寄存器组成,在每个时钟脉冲到达时,相位寄存器采用上个时钟周期内相位寄存器的值与频率控制字K之和,并作为相位累加器在这一时钟周期的输出。fpga系统框图如图:在这里插入图片描述

二、ROM表的生成

利用matalab产生.mif。.mif文件格式
WIDTH=8;//mif数据的深度,8代表每个数据都是8bit;
DEPTH=512;//数据的宽度,512代表总共有512的数据;
ADDRESS_RADIX=HEX;//地址的格式 HEX即代表以16进制来寻址 (uns–十进制,bin–二进制,hex–十六进制)
DATA_RADIX=HEX;//数据存储的格式,同上
CONTENT BEGIN//
0 : 80;
1 : 86;
2 : 8C;
3 : 92;
4 : 98;
END;//在content begin和end之间就是存储的数据
采用matlab生成.mif

MATALB程序:

clc;
clear all;
close all;

width = 8;   %位宽
depth = 2 ^9; %深度(采样点个数)
x = linspace(0, 2 * pi, depth);
y = sin(x);
y = round(y * (2 ^ (width - 1) - 1) + 2 ^ (width - 1) - 1);%量化
plot(y<
在实际的FPGA编程过程中,可以使用Quartus软件来进行编程。以下是一个利用Quartus对实际FPGA编程的简单例子。 假设我们要设计一个简单的数字时钟,并在FPGA上实现。首先,我们需要使用Verilog或VHDL等硬件描述语言来编写时钟的逻辑设计。在Quartus中,我们可以创建一个新的工程,并将我们的设计文件添加到工程中。 接下来,我们需要指定FPGA的型号和引脚约束。Quartus提供了FPGA型号库,可以选择我们使用的FPGA型号,并将其添加到我们的工程中。然后,我们可以使用引脚编辑器来选择FPGA的引脚,并为每个引脚指定相应的功能。 完成配置后,我们可以进行逻辑综合和布线。Quartus会根据我们的设计文件生成逻辑电路,并尝试将其映射到FPGA的可用逻辑资源上。然后,在布线阶段,Quartus会分配适当的信号路径来连接逻辑资源。在这个例子中,我们需要将时钟信号连接到FPGA的引脚上。 完成布线后,我们接下来需要进行时序分析和时序优化。时序分析可以帮助我们确保所有信号都在正确的时间到达目标;时序优化可以帮助我们优化信号路径,提高时序性能。Quartus提供了一系列的工具和选项,可以帮助我们完成这些任务。 最后,我们需要将生成的bit文件下载到FPGA上进行验证。Quartus提供了下载工具,可以将bit文件下载到FPGA芯片上。然后,我们可以观察FPGA上的时钟是否按照我们的设计进行工作。 通过以上步骤,我们可以利用Quartus对实际FPGA进行编程,并且实现我们的设计。这只是一个简单的例子,实际的FPGA编程需要更复杂的设计和调试,但Quartus提供了一个强大的工具集,可以帮助我们完成这些任务。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值