精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

求一種基于DDS IP核的任意波形發生器設計方案

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

IP核配置

定制輸出數據位寬

這里的輸出數據指的是輸出的波形數據,其位寬相關參數介紹如下:

圖片

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

圖片

如果為Taylor:

圖片

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

圖片

查看輸出是否為10bit:

圖片

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

根據數據手冊對頻率分辨率的描述:

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

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

圖片

頻率分辨率可以這樣計算:

圖片

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

圖片

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

圖片

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

圖片

查看相位寬度為16位:

圖片

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

圖片

在IP核定制頁面提現如下:

圖片

輸出頻率

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

圖片

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

圖片

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

輸出正余弦選擇以及數據格式

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

圖片

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

圖片

數據手冊給出解釋:

輸出DATA通道TDATA結構將正弦和余弦輸出字段符號擴展到下一個字節邊界,然后以最低有效部分的余弦進行連接,以創建m_axis_data_tdata。如果僅選擇正弦或余弦之一,則將其符號擴展并放入m_axis_data_tdata的最低有效部分。

下圖顯示了這三種配置的TDATA的內部結構。正交輸出,僅余弦和僅正弦。例如,在圖中顯示了11位輸出,符號擴展到16位。<<<表示符號擴展名:

圖片

因此我們可以這么認為,由于存在擴展符號位的關系,我們可以提取低一半的數據為COS,高一半的數據未SIN。

其他設置

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

圖片

圖片

圖片

圖片

點擊OK,等待IP核定制完成。

電路設計

本示例設計十分簡單,就是單純例化下IP核:

圖片

復制例化模板:

圖片

給出設計文件:

`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

行為仿真

仿真程序也僅僅例化設計文件,設計下系統頻率即可:

`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

執行行為仿真:

圖片

注意,仿真時間可以在此確定:

圖片

仿真波形:

圖片

正余弦拆開:

圖片

選擇高16位作為sin。下面選擇有符號數顯示:

圖片

同時選擇模擬顯示:

圖片

之后你會發現正余弦顯示波形相對于整體太平坦,以致于看起來像是直線,這是因為顯示范圍太大了導致的:

圖片

改下顯示的坐標幅度范圍:

圖片

圖片

顯示正常了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • DDS
    DDS
    +關注

    關注

    21

    文章

    631

    瀏覽量

    152542
  • SFDR
    +關注

    關注

    0

    文章

    38

    瀏覽量

    12904
  • 累加器
    +關注

    關注

    0

    文章

    50

    瀏覽量

    9440
  • 任意波形發生器

    關注

    0

    文章

    136

    瀏覽量

    15739
  • 系統時鐘
    +關注

    關注

    1

    文章

    30

    瀏覽量

    9295
收藏 人收藏

    評論

    相關推薦

    基于ROM的任意波形發生器DDS

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

    基于DDS任意波形/ 函數發生器之間的差別

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

    一種基于DDS的幅值可調信號發生器的設計

    、工程設計等系統信號源的首選。在擴頻和跳頻系統、數字廣播、高清晰度電視、線性調頻以及儀器儀表以及電子測量等領域。DDS已經逐步成為高性能信號源發生器的核心技術Ill。本文提出了一種基于AT89S52
    發表于 03-08 13:37

    基于FPGA的IPDDS信號發生器如何用IP

    我畢業設計要做個基于FPGA的IPDDS信號發生器,但是我不會用DDS
    發表于 03-10 11:46

    介紹一種不錯的基于DDS器件AD9851的信號發生器設計方案

    大佬分享款基于DDS器件AD9851的信號發生器設計方案
    發表于 04-12 06:35

    高速任意波形發生器的設計

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

    一種DDS任意波形發生器的ROM優化方法

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

    基于FPGA的DDS信號發生器設計方案解析

    將虛擬儀器技術同FPGA技術結合,設計了個頻率可控的DDS任意波形信號發生器。在闡述直接數字頻率合成技術的工作原理、電路構成的基礎上,分別
    發表于 12-04 11:40 ?33次下載
    基于FPGA的<b class='flag-5'>DDS</b>信號<b class='flag-5'>發生器</b><b class='flag-5'>設計方案</b>解析

    基于Verilog實現的DDS任意波形發生器

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

    高速任意波形發生器的原理及硬件設計方案

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

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

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

    任意波形發生器與示波器怎么連接

    在電子測試領域中,任意波形發生器和示波器是兩非常重要的測試設備。任意波形
    的頭像 發表于 05-15 15:38 ?905次閱讀

    任意波形發生器如何輸出電壓

    任意波形發生器(Arbitrary Waveform Generator,簡稱AWG)是一種電子測試設備,它能夠產生各種形狀、頻率和振幅的電壓信號,以滿足電子電路、自動控制以及教學實驗
    的頭像 發表于 05-15 15:38 ?710次閱讀

    什么是任意波形發生器任意波形發生器是干什么用的?

    任意波形發生器一種高度靈活的電子測試設備,它能夠生成幾乎任何類型的電信號波形
    的頭像 發表于 05-28 16:19 ?760次閱讀

    什么是任意波形發生器

    在電子測量、通信、科研以及音樂創作等多個領域中,波形發生器作為一種能夠產生特定波形信號的電子設備,發揮著不可或缺的作用。而任意
    的頭像 發表于 05-30 15:53 ?895次閱讀