0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

求一種基于DDS IP核的任意波形發(fā)生器設(shè)計(jì)方案

冬至子 ? 來源:FPGA LAB ? 作者:李銳博恩 ? 2023-06-21 11:18 ? 次閱讀

IP核配置

定制輸出數(shù)據(jù)位寬

這里的輸出數(shù)據(jù)指的是輸出的波形數(shù)據(jù),其位寬相關(guān)參數(shù)介紹如下:

圖片

可見,輸出數(shù)據(jù)寬度和SFDR以及Noise Shaping有關(guān),你可先不必知道Noise Shaping和SFDR是什么?只需要暫時(shí)知道在IP核定制時(shí)需要選擇即可,如果Noise Shaping選擇了None and Dithering,則輸出數(shù)據(jù)寬度為:

圖片

如果為Taylor:

圖片

而Spurious Free Dynamic Range (SFDR)翻譯為無雜散動(dòng)態(tài)范圍,和輸出數(shù)據(jù)寬度以內(nèi)部總線寬度以及各種實(shí)現(xiàn)策略有關(guān);假設(shè)我需求的數(shù)據(jù)寬度為10位,Noise Shaping選為None,則SFDR為60,輸入IP定制頁面:

圖片

查看輸出是否為10bit:

圖片

定制相位位寬(或頻率分辨率)

根據(jù)數(shù)據(jù)手冊(cè)對(duì)頻率分辨率的描述:

頻率分辨率:以赫茲為單位指定,指定最小頻率分辨率,用于確定相位累加器使用的相位寬度及其相關(guān)的相位增量(PINC)和相位偏移(POFF)值。較小的值可提供較高的頻率分辨率,并且需要較大的累加器。較大的值會(huì)減少硬件資源。根據(jù)噪聲整形的選擇,可以增加相位寬度,并且頻率分辨率高于指定的分辨率。

對(duì)于光柵化模式(rasterized mode),頻率分辨率由系統(tǒng)時(shí)鐘、通道數(shù)和所選模數(shù)固定。從這段描述,我們得出信息,頻率分辨率可以用來控制相位位寬。如果操作模式選擇標(biāo)準(zhǔn)模式,如下IP 核定制頁面:

圖片

頻率分辨率可以這樣計(jì)算:

圖片

我們先給定需求的相位寬度,又已知系統(tǒng)頻率值,根據(jù)公式就可以算出頻率分辨率;將頻率分辨率代入IP核定制頁面,即可自動(dòng)得到相位寬度。 其實(shí)從上式也可以直接推出相位寬度:

圖片

本例我們的系統(tǒng)頻率為100MHz,如果想要相位寬度為16位,則頻率 分辨率為:

圖片

在IP核定制頁面,如下圖,我們輸入頻率分辨率的值:

圖片

查看相位寬度為16位:

圖片

上面選擇的是標(biāo)準(zhǔn)模式,如果選擇另一種模式呢?Rasterized Mode of Operation:光柵化操作模式;我們可以根據(jù)下面公式得到頻率分辨率, 但和相位寬度沒有直接關(guān)系 ,為了知識(shí)完整性,簡(jiǎn)介如下:

圖片

在IP核定制頁面提現(xiàn)如下:

圖片

輸出頻率

本示例選擇的是單通道,也即通道數(shù)為1,因此輸出頻率也只能選擇一個(gè):

圖片

輸出頻率值也不是隨便選擇的,而是有其范圍的,例如我輸入105MHz,則通過不了:

圖片

提示超出范圍,范圍為(0,100).

輸出正余弦選擇以及數(shù)據(jù)格式

可以在IP核定制頁面選擇輸出正弦還是余弦還或者是都輸出:

圖片

本示例選擇輸出正余弦,由于輸出采用的是axi總線,因此輸出數(shù)據(jù)位于M_AXIS_DATA_TDATA中,那么正余弦輸出結(jié)果是如何組合成M_AXIS_DATA_TDATA的呢?

圖片

數(shù)據(jù)手冊(cè)給出解釋:

輸出DATA通道TDATA結(jié)構(gòu)將正弦和余弦輸出字段符號(hào)擴(kuò)展到下一個(gè)字節(jié)邊界,然后以最低有效部分的余弦進(jìn)行連接,以創(chuàng)建m_axis_data_tdata。如果僅選擇正弦或余弦之一,則將其符號(hào)擴(kuò)展并放入m_axis_data_tdata的最低有效部分。

下圖顯示了這三種配置的TDATA的內(nèi)部結(jié)構(gòu)。正交輸出,僅余弦和僅正弦。例如,在圖中顯示了11位輸出,符號(hào)擴(kuò)展到16位。<<<表示符號(hào)擴(kuò)展名:

圖片

因此我們可以這么認(rèn)為,由于存在擴(kuò)展符號(hào)位的關(guān)系,我們可以提取低一半的數(shù)據(jù)為COS,高一半的數(shù)據(jù)未SIN。

其他設(shè)置

有了上面的定制參數(shù),輸出波形是沒有問題了,至于其他的定制參數(shù),本文選擇默認(rèn):

圖片

圖片

圖片

圖片

點(diǎn)擊OK,等待IP核定制完成。

電路設(shè)計(jì)

本示例設(shè)計(jì)十分簡(jiǎn)單,就是單純例化下IP核:

圖片

復(fù)制例化模板:

圖片

給出設(shè)計(jì)文件:

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: Reborn Lee
// Module Name: waveform_gen
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////


`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: Reborn Lee
// Module Name: waveform_gen
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////




module waveform_gen(
	input i_clk,
	output o_data_valid,
	output [31 : 0] o_data,
	output o_phase_valid,
	output [15 : 0] o_phase


    );


dds_compiler_0 inst_dds (
  .aclk(i_clk),                                // input wire aclk
  .m_axis_data_tvalid(o_data_valid),    // output wire m_axis_data_tvalid
  .m_axis_data_tdata(o_data),      // output wire [31 : 0] m_axis_data_tdata
  .m_axis_phase_tvalid(o_phase_valid),  // output wire m_axis_phase_tvalid
  .m_axis_phase_tdata(o_phase)    // output wire [15 : 0] m_axis_phase_tdata
);


endmodule

行為仿真

仿真程序也僅僅例化設(shè)計(jì)文件,設(shè)計(jì)下系統(tǒng)頻率即可:

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: Reborn Lee
// Create Date: 2020/06/03 17:25:26
// Module Name: waveform_gen_tb
//////////////////////////////////////////////////////////////////////////////////




module waveform_gen_tb(


    );


	reg clk;


	wire o_data_valid;
	wire [15 : 0] o_data;
	wire o_phase_valid;
	wire [31 : 0] o_phase;




	initial begin
		clk = 0;
		forever begin
			# 5 clk = ~clk;
		end
	end




	waveform_gen inst_waveform_gen
		(
			.i_clk         (clk),
			.o_data_valid  (o_data_valid),
			.o_data        (o_data),
			.o_phase_valid (o_phase_valid),
			.o_phase       (o_phase)
		);




endmodule

執(zhí)行行為仿真:

圖片

注意,仿真時(shí)間可以在此確定:

圖片

仿真波形:

圖片

正余弦拆開:

圖片

選擇高16位作為sin。下面選擇有符號(hào)數(shù)顯示:

圖片

同時(shí)選擇模擬顯示:

圖片

之后你會(huì)發(fā)現(xiàn)正余弦顯示波形相對(duì)于整體太平坦,以致于看起來像是直線,這是因?yàn)轱@示范圍太大了導(dǎo)致的:

圖片

改下顯示的坐標(biāo)幅度范圍:

圖片

圖片

顯示正常了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • DDS
    DDS
    +關(guān)注

    關(guān)注

    21

    文章

    625

    瀏覽量

    152290
  • SFDR
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    12878
  • 累加器
    +關(guān)注

    關(guān)注

    0

    文章

    50

    瀏覽量

    9414
  • 任意波形發(fā)生器

    關(guān)注

    0

    文章

    126

    瀏覽量

    15695
  • 系統(tǒng)時(shí)鐘
    +關(guān)注

    關(guān)注

    1

    文章

    30

    瀏覽量

    9247
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于ROM的任意波形發(fā)生器DDS

    、相位以及幅度的數(shù)控調(diào)制,廣泛應(yīng)用在電信與電子儀器和通信領(lǐng)域。波形發(fā)生器一種數(shù)據(jù)信號(hào)發(fā)生器,在調(diào)試硬件時(shí),常常需要加入些信號(hào),以觀察電路
    的頭像 發(fā)表于 06-18 19:24 ?1.7w次閱讀
    基于ROM的<b class='flag-5'>任意</b><b class='flag-5'>波形</b><b class='flag-5'>發(fā)生器</b>(<b class='flag-5'>DDS</b>)

    基于DDS任意波形/ 函數(shù)發(fā)生器之間的差別

    任意波形/ 函數(shù)發(fā)生器(AFG)通過讀取內(nèi)存的內(nèi)容,來同時(shí)創(chuàng)建函數(shù)波形任意波形。大多數(shù)現(xiàn)代AF
    發(fā)表于 03-29 16:31 ?2501次閱讀
    基于<b class='flag-5'>DDS</b>的<b class='flag-5'>任意</b><b class='flag-5'>波形</b>/ 函數(shù)<b class='flag-5'>發(fā)生器</b>之間的差別

    一種基于DDS的幅值可調(diào)信號(hào)發(fā)生器的設(shè)計(jì)

    、工程設(shè)計(jì)等系統(tǒng)信號(hào)源的首選。在擴(kuò)頻和跳頻系統(tǒng)、數(shù)字廣播、高清晰度電視、線性調(diào)頻以及儀器儀表以及電子測(cè)量等領(lǐng)域。DDS已經(jīng)逐步成為高性能信號(hào)源發(fā)生器的核心技術(shù)Ill。本文提出了一種基于AT89S52
    發(fā)表于 03-08 13:37

    基于FPGA的IPDDS信號(hào)發(fā)生器如何用IP

    我畢業(yè)設(shè)計(jì)要做個(gè)基于FPGA的IPDDS信號(hào)發(fā)生器,但是我不會(huì)用DDS
    發(fā)表于 03-10 11:46

    介紹一種不錯(cuò)的基于DDS器件AD9851的信號(hào)發(fā)生器設(shè)計(jì)方案

    大佬分享款基于DDS器件AD9851的信號(hào)發(fā)生器設(shè)計(jì)方案
    發(fā)表于 04-12 06:35

    高速任意波形發(fā)生器的設(shè)計(jì)

     基于數(shù)字頻率合成技術(shù)給出一種高速任意波形發(fā)生器設(shè)計(jì)方案,詳細(xì)介紹各個(gè)模塊的硬件電路設(shè)計(jì)以及MCU部分的軟件設(shè)計(jì)。該
    發(fā)表于 07-21 15:13 ?56次下載

    一種DDS任意波形發(fā)生器的ROM優(yōu)化方法

    提出了一種改進(jìn)的基于直接頻率合成技術(shù)(DDS)的任意波形發(fā)生器在現(xiàn)場(chǎng)可編程門陣列(FPGA)上的實(shí)現(xiàn)方法。首先將三角波、正弦波、方波和升/降
    發(fā)表于 09-23 17:54 ?61次下載

    基于FPGA的DDS信號(hào)發(fā)生器設(shè)計(jì)方案解析

    將虛擬儀器技術(shù)同F(xiàn)PGA技術(shù)結(jié)合,設(shè)計(jì)了個(gè)頻率可控的DDS任意波形信號(hào)發(fā)生器。在闡述直接數(shù)字頻率合成技術(shù)的工作原理、電路構(gòu)成的基礎(chǔ)上,分別
    發(fā)表于 12-04 11:40 ?33次下載
    基于FPGA的<b class='flag-5'>DDS</b>信號(hào)<b class='flag-5'>發(fā)生器</b><b class='flag-5'>設(shè)計(jì)方案</b>解析

    基于Verilog實(shí)現(xiàn)的DDS任意波形發(fā)生器

    DDS是從相位的概念直接合成所需波形一種頻率合成技術(shù)。不僅可以產(chǎn)生不同頻率的正弦波,而且可以控制波形的初始相位。本文為大家介紹基于Verilog實(shí)現(xiàn)的
    發(fā)表于 01-08 11:58 ?6709次閱讀
    基于Verilog實(shí)現(xiàn)的<b class='flag-5'>DDS</b><b class='flag-5'>任意</b><b class='flag-5'>波形</b><b class='flag-5'>發(fā)生器</b>

    高速任意波形發(fā)生器的原理及硬件設(shè)計(jì)方案

    波形發(fā)生器的應(yīng)用在生活中隨處可見,其中使用較多的波形發(fā)生器任意波形
    發(fā)表于 11-26 09:17 ?7601次閱讀
    高速<b class='flag-5'>任意</b><b class='flag-5'>波形</b><b class='flag-5'>發(fā)生器</b>的原理及硬件<b class='flag-5'>設(shè)計(jì)方案</b>

    淺談任意波形發(fā)生器及通道合并功能

    淺談任意波形發(fā)生器及通道合并功能? 任意波形發(fā)生器(AWG)是
    的頭像 發(fā)表于 01-19 15:54 ?449次閱讀

    任意波形發(fā)生器與示波器怎么連接

    在電子測(cè)試領(lǐng)域中,任意波形發(fā)生器和示波器是兩非常重要的測(cè)試設(shè)備。任意波形
    的頭像 發(fā)表于 05-15 15:38 ?552次閱讀

    任意波形發(fā)生器如何輸出電壓

    任意波形發(fā)生器(Arbitrary Waveform Generator,簡(jiǎn)稱AWG)是一種電子測(cè)試設(shè)備,它能夠產(chǎn)生各種形狀、頻率和振幅的電壓信號(hào),以滿足電子電路、自動(dòng)控制以及教學(xué)實(shí)驗(yàn)
    的頭像 發(fā)表于 05-15 15:38 ?538次閱讀

    什么是任意波形發(fā)生器?任意波形發(fā)生器是干什么用的?

    任意波形發(fā)生器一種高度靈活的電子測(cè)試設(shè)備,它能夠生成幾乎任何類型的電信號(hào)波形
    的頭像 發(fā)表于 05-28 16:19 ?528次閱讀

    什么是任意波形發(fā)生器

    在電子測(cè)量、通信、科研以及音樂創(chuàng)作等多個(gè)領(lǐng)域中,波形發(fā)生器作為一種能夠產(chǎn)生特定波形信號(hào)的電子設(shè)備,發(fā)揮著不可或缺的作用。而任意
    的頭像 發(fā)表于 05-30 15:53 ?603次閱讀