0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于ROM的任意波形发生器(DDS)

FPGA学习交流 ? 2018-06-18 19:24 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

设计背景:

DDS(Direct Digital Synthesizer)直接数字式频率合成器,是一种新型频率合成技术,具有低成本、低功耗、高分辨率、相对带宽大和频率转换时间短等优点。较容易实现频率、相位以及幅度的数控调制,广泛应用在电信与电子仪器和通信领域。波形发生器是一种数据信号发生器,在调试硬件时,常常需要加入一些信号,以观察电路工作是否正常。加入的信号有:正弦波、三角波、方波和任意波形等。

设计原理:

相位(phase)是对于一个波,特定的时刻在它循环周期中的位置:一种它是否在波峰、波谷或它们之间的某点的标度。相位描述信号波形变化的度量,通常以度 (角度)作为单位,也称作相角。 当信号波形以周期的方式变化,波形循环一周即为360°。那么相位可调也可以简单的理解为:改变初始相位。

频率,是单位时间内完成周期性变化的次数,是描述周期运动频繁程度的量,常用符号fν表示,单位为秒分之一,符号为s-1。频率可调也就是改变单位时间内完成周期性变化的次数。

本设计采用DDS技术设计相位频率可调的波形发生器,已经知道了相位和频率可调分别代表什么,那么接下来就要知道怎样依靠DDS技术实现波形发生器,并且相位和频率可以调控。DDS的基本结构如下图所示:

image.png

根据上图可以看出:DDS主要由相位累加器、波形数据表(ROM)、D/A转换器构成,本设计暂时不涉及D/A转换部分。相位累加器位宽为N,波形数据表的大小为2^P,累加器的高P位则用于寻址波形数据表,即ROM,从ROM中输出的数据则是产生的波形。如果累加器在系统时钟(CLOCK)的作用下,以步进为M累加直至溢出,则M为频率控制字(即图中的FWORD),相位控制字(PWORD)则作为累加器的输入初始值。这里的累加器,也可以理解为ROM的地址发生器。

上段所述我们可具体理解为:改变地址的初值(PWORD)就可以改变初始的相位,由于我们设计中,ROM的数据为256,所以PWORD的值在0~255之间,PWORD= 256*(初始相位/360度)。

我们设计的系统时钟(CLOCK)为50MHz,周期为20ns,而正弦波被分成了256个点,波形发生器的频率就是195.31KHz。若想要输出别的频率,则可通过改变输出的点的个数,即改变有效地址的数量。我们用位宽为N位的累加器,假设FWORD为1,要产生一个完整波形的周期则为20ns*2^N,则产生波形的频率=系统时钟/2^N,即Fout = Fclk/2^N,如果FWORD为B,每次步进的间隔提高了B倍,所以计满一个波形周期的时间就缩小了B倍,即频率就提高了B倍。则波形频率的公式为:Fout = B*(Fclk/2^N)。之后我们取累加器的高8位,去寻址波形数据,对应点的还是个数一样的。本设计中我们将N取为32,当B=1,Fout约为0.012Hz,0.012就相当于最小精度,所以我们就实现了频率为0.012倍数的调制,但因为0.012值很小了,所以可以说基本实现了所有频率的调制。

设计架构图:

根据上述的原理图分析,本设计的架构如下图:

image.png

架构图中的端口功能描述如下表:

image.png

dds_addr模块是实现相位累加器的模块,这里用参数来调制FWORD和PWORD的值,累加之后,将地址高八位(addr_out)输出到rom模块,从而产生波形数据。

设计代码:

在具体写代码之前,我们需要先制作载有波形数据的mif文件,这时需要一个小软件(Mif_Maker2010),软件的链接如下:

链接:http://pan.baidu.com/s/1gfzcOzL密码:ietw

具体操作步骤如下

打开Mif_Maker2010,在查看中点击全局参数,如下图:

image.png

将全局参数设置如下图:数据长度为256,数据位宽为8,数据格式为无符号10进制,采样频率为1000。

image.png

点击设定波形,选择想要生成的波形,这里我们以正弦波为例,如需要其他波形,都可进行修改:

image.png

之后点击保存,则可生成mif文件,这里我们命名为sin.mif。打开sin.mif后,如下图所示:

image.png

dds_addr模块代码:

这里我们以初始相位为180度,频率为5KHz为例:

0moduledds_addr (clk,rst_n,addr_out);

1

2inputclk,rst_n;//系统时钟复位

3output[7:0]addr_out;//输出的地址,对应到ROM内的数据

4

5parameterN =32;

6parameterPWORD =128;//相位控制字 (x/360)*256

7parameterFWORD =429497;//频率控制字F_out=B*(F_clk/2**32)fword=B

8//5KHZ

9reg[N-1:0]addr;//32位累加器

10

11always@(posedgeclk ornegedgerst_n)

12begin

13if(!rst_n)

14begin

15addr <=0;

16end

17else

18begin

19/*每隔fword的大小,输出一位地址,若频率控制字FWORD等于2,那么地址计数器输出的就依次是024.....*/

20addr <=addr +FWORD;

21end

22end

23/*将累加器器的地址的高八位赋值给输出的地址(ROM的地址*/

24assignaddr_out =addr[N-1:N-8]+ PWORD;

25

26endmodule

rom模块为调用的IP核,该rom IP核中存储了sin.mif的数据。

dds顶层模块代码:

0moduledds (clk,rst_n,q);

1

2inputclk,rst_n;//系统时钟复位

3output[7:0]q;//输出波形数据

4

5wire[7:0]addr_out;//8位地址,对应到ROM内的数据

6

7/*****相位累加器模块*****/

8dds_addr dds_addr_inst(

9.clk(clk),

10.rst_n(rst_n),

11.addr_out(addr_out)

12);

13

14/*****波形数据模块*****/

15rom rom_inst (

16.address (addr_out ),

17.clock (clk ),

18.q (q )

19);

20

21endmodule

dds_tb顶层模块的测试模块:

0`timescale1ns/1ps

1

2moduledds_tb;

3

4regclk,rst_n;

5wire[7:0]q;

6

7initialbegin

8clk =1;

9rst_n =0;

10#200.1

11rst_n =1;

12

13#50_000_000$stop;

14end

15

16dds dds_dut(

17.clk(clk),

18.rst_n(rst_n),

19.q(q)

20);

21

22always#10clk =~clk;

23

24endmodule

仿真图:

image.png

根据上图可知,我们的设计正确。并且可以实现相位和频率可调

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • DDS
    DDS
    +关注

    关注

    22

    文章

    673

    浏览量

    154617
  • 波形发生器
    +关注

    关注

    3

    文章

    307

    浏览量

    32007
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    轻科普——任意波形发生器(AWG)架构及指标解析

    引言任意波形发生器(ArbitraryWaveformGenerator,简称AWG)是由信号发生器发展而来的信号源设备。1988年,是德科技(KeysightTechnologies
    的头像 发表于 06-03 09:32 ?957次阅读
    轻科普——<b class='flag-5'>任意</b><b class='flag-5'>波形</b><b class='flag-5'>发生器</b>(AWG)架构及指标解析

    Spectrum仪器推出通过以太网控制生成宽带信号的任意波形发生器

    Spectrum仪器推出10 GS/s采样率、16位分辨率新型任意波形发生器 中国北京,2025年5月14日讯——Spectrum仪器今日宣布旗下DN2.63xNETBOX系列推出四款全新型号的
    的头像 发表于 05-14 14:29 ?270次阅读
    Spectrum仪器推出通过以太网控制生成宽带信号的<b class='flag-5'>任意</b><b class='flag-5'>波形</b><b class='flag-5'>发生器</b>

    基于 FPGA 的任意波形发生器+低通滤波系统设计

    滤波后的波形。 2.2 项目系统框图 任意波形发生器: 图4 任意波形
    发表于 05-07 15:34

    AD9102低功耗、14位、180MSPS、数模转换波形发生器技术手册

    AD9102 TxDAC?和波形发生器是高性能DAC,集成片上模式存储,用于复杂波形生成,具有直接数字频率合成器(DDS)。 该
    的头像 发表于 05-02 17:59 ?522次阅读
    AD9102低功耗、14位、180MSPS、数模转换<b class='flag-5'>器</b>和<b class='flag-5'>波形</b><b class='flag-5'>发生器</b>技术手册

    是德33220A 函数任意波形发生器

    是德33220A 函数任意波形发生器 仪器特性 *33220A 函数发生器包括 USB、GPIB 和 LAN 接口 *用于信号设置视觉验证的图形模式 *选件 001 提供支持同步信道的
    的头像 发表于 02-07 15:55 ?446次阅读

    是德任意波形发生器在船舶电子测试中的应用

    统的正常运行,精确可靠的测试验证至关重要。是德科技作为全球领先的电子测量仪器厂商,其任意波形发生器凭借其强大的信号生成能力、精确的波形控制和丰富的软件功能,成为船舶电子测试领域的理想选
    的头像 发表于 12-05 10:09 ?458次阅读
    是德<b class='flag-5'>任意</b><b class='flag-5'>波形</b><b class='flag-5'>发生器</b>在船舶电子测试中的应用

    FlexDDS-NG直接数字信号合成器(DDS)/波形发生器

    盛铂科技FlexDDS-NG是一种单台机箱最多可达12个通道相位连续直接数字信号合成器 (DDS)。其输出频率可达400MHz,该产品专为量子光学研究而设计, 是直接满足实验物理学家需求的下一代波形发生器
    的头像 发表于 11-28 15:00 ?596次阅读

    是德任意波形发生器在电力电子测试中的应用

    电力电子技术作为现代电力系统和新能源技术的核心,其可靠性和稳定性至关重要。而精确、高效的测试是保障电力电子设备性能的关键环节。是德科技(Keysight)的任意波形发生器凭借其卓越的性能和丰富的功能
    的头像 发表于 11-26 16:43 ?494次阅读
    是德<b class='flag-5'>任意</b><b class='flag-5'>波形</b><b class='flag-5'>发生器</b>在电力电子测试中的应用

    最新发布!高性能任意波形发生器与快速切换DDS信号发生器

    快讯1.PCIe 旗舰系列任意波形发生器卡TS-M5i.63xx系列正式发布,可生成 10 GS/s 采样率和 2.5 GHz 带宽的波形! 科学家和工程师能够通过TS-M5i.63x
    的头像 发表于 11-01 11:18 ?661次阅读
    最新发布!高性能<b class='flag-5'>任意</b><b class='flag-5'>波形</b><b class='flag-5'>发生器</b>与快速切换<b class='flag-5'>DDS</b>信号<b class='flag-5'>发生器</b>!

    Spectrum仪器发布PCIe系列任意波形发生器

    Spectrum仪器近日宣布推出全新的PCIe旗舰系列任意波形发生器卡(AWG),为用户提供了一种强大的台式任意波形
    的头像 发表于 10-28 18:07 ?783次阅读

    Spectrum仪器推出PCIe系列任意波形发生器

    中国北京,2024年10月23日讯—— Spectrum仪器今日宣布推出全新PCIe旗舰系列任意波形发生器卡(AWG)。科学家和工程师能够通过该系列产品在电脑上直接生成具有高纯度和低失真的高频
    的头像 发表于 10-28 11:35 ?597次阅读
    Spectrum仪器推出PCIe系列<b class='flag-5'>任意</b><b class='flag-5'>波形</b><b class='flag-5'>发生器</b>卡

    任意波形发生器的基本架构

    任意波形发生器(Arbitrary Waveform Generator,AWG)是从信号发生器演进过来的一款信号源,其架构的设计旨在提供高精度、高稳定性和灵活可编程的
    的头像 发表于 10-18 16:29 ?978次阅读

    是德任意波形发生器应用领域

    在现代电子设计与测试领域,任意波形发生器(AWG)作为一种强大的信号源,扮演着不可或缺的角色。它能够生成各种复杂的模拟波形,满足从基础研究到复杂系统开发的广泛应用需求。是德科技作为全球
    的头像 发表于 10-18 16:25 ?674次阅读
    是德<b class='flag-5'>任意</b><b class='flag-5'>波形</b><b class='flag-5'>发生器</b>应用领域

    1653系列函数任意波形发生器

    1653系列函数任意波形发生器 XLT 简述 1653系列经济型函数任意波形发生器,通过多通道、
    的头像 发表于 10-15 17:13 ?723次阅读

    泰克AWG70001A任意波形发生器提供业界最好的信号刺激解决方案

    AWG70001A系列任意波形发生器代表的采用率、信号保真度和波形内存,非常适合复杂组件、系统和试验的设计、测试和操作。
    的头像 发表于 09-23 11:19 ?604次阅读
    泰克AWG70001A<b class='flag-5'>任意</b><b class='flag-5'>波形</b><b class='flag-5'>发生器</b>提供业界最好的信号刺激解决方案