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

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

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

Xilinx DDS IP核的使用和參數(shù)配置

Hack電子 ? 來(lái)源:Hack電子 ? 2024-10-25 16:54 ? 次閱讀

前言

RAM實(shí)現(xiàn)一個(gè)DDS,從原理上來(lái)說(shuō)很簡(jiǎn)單,在實(shí)際使用的時(shí)候,可能沒(méi)有直接使用官方提供的IP核來(lái)的方便。這個(gè)博客就記錄一下,最近使用到的這個(gè)DDS IP。

1 基于相位截?cái)嗟腄DS

DDS IP核的內(nèi)部的基本結(jié)構(gòu)如下圖所示,主要是一個(gè)基于相位截?cái)嗟腄DS。在數(shù)字信號(hào)處理中,經(jīng)常會(huì)使用到DDS,其內(nèi)部主要有一個(gè)相位累加器,一個(gè)ROM存儲(chǔ)這正弦波的查找表。相位累加器在時(shí)鐘的作用下對(duì)相位進(jìn)行累加,每次的累加值是通過(guò)phase increment 來(lái)指定的。累加得到的結(jié)果,通過(guò)量化器,取其高位,低位舍去,再將這個(gè)量化后的相位值,輸出到查找表,從查找表中得到最終的波形。

8b3f686e-9041-11ef-a511-92fbcf53809c.png

DDS的最終輸出的信號(hào)的頻率和系統(tǒng)時(shí)鐘,相位寬度和相位自增量之間滿足如下關(guān)系:

其中ΔΘ 是相位自增量,BΘ(n)是相位的位寬,也就對(duì)應(yīng)這查找表的深度為2^BΘ(n)

8b5786b0-9041-11ef-a511-92fbcf53809c.png

手冊(cè)中也給出了一個(gè)例子,來(lái)舉例說(shuō)明DDS的輸出頻率和這幾個(gè)系統(tǒng)參數(shù)之間的關(guān)系,其中系統(tǒng)時(shí)鐘120MHz,相位寬度為10bit,相位增量為12,輸出的頻率通過(guò)上面的式子就可以計(jì)算出來(lái)。

8b7a67de-9041-11ef-a511-92fbcf53809c.png

在實(shí)際的工程中,一般希望DDS能夠生成不停頻率的信號(hào),例如在DDC或者DUC中,希望產(chǎn)生一個(gè)高頻的載波頻率,通常使用DDS來(lái)產(chǎn)生一個(gè)高頻的正弦信號(hào)。因此在實(shí)際使用的時(shí)候更加關(guān)注DDS的相位增量。因?yàn)橥ㄟ^(guò)控制相位增量就能過(guò)后產(chǎn)生不同的頻率。相位增量的計(jì)算公式如下。

8b979a02-9041-11ef-a511-92fbcf53809c.png

下面以一個(gè)具體的例子來(lái)說(shuō)明DDS是如何工作的。

2 DDS IP的使用和參數(shù)配置

在配置這一TAB,需要設(shè)置系統(tǒng)的時(shí)鐘,這個(gè)時(shí)鐘也就是上面公式當(dāng)中的參考時(shí)鐘,然后可以選通道數(shù)和模式,這里就保持默認(rèn)就可以了。

再之后就是期望最終生成的信號(hào)的一些參數(shù)的設(shè)置??蛇x選擇系統(tǒng)參數(shù)模式,或者選擇硬件參數(shù)模式,一般都選擇系統(tǒng)參數(shù)模式,直接方便。

在系統(tǒng)參數(shù)中,動(dòng)態(tài)范圍最終對(duì)應(yīng)這輸出信號(hào)的幅度,其計(jì)算公式如下:20lg(Amp),其中AMP就是信號(hào)的幅度。比如下圖中,動(dòng)態(tài)范圍為72,那么他就可以表示幅度為4096的一個(gè)正弦信號(hào)。[20lg(4096)] = 72dB;

在下面是頻率分辨率,對(duì)應(yīng)這最小的頻率變化,是由系統(tǒng)時(shí)鐘和相位深度計(jì)算得到的,比如系統(tǒng)時(shí)鐘40MHz,相位寬度為32bit,那么計(jì)算的頻率分辨率就是[40*106/(232)] = 0.01。

8bb16ea0-9041-11ef-a511-92fbcf53809c.png

在實(shí)現(xiàn)這一TAB,可以設(shè)置相位增量是固定的還是可以更改的,相位增量能夠控制輸出的正余弦信號(hào)的頻率,這里選擇可更改的,便于在之后的使用中生成不同頻率的信號(hào)。需要注意的時(shí)候,生成的信號(hào)需要滿足奈奎斯特抽樣定理,也就是抽樣時(shí)鐘必須是被采樣信號(hào)頻率的兩倍。以這個(gè)例子來(lái)說(shuō),系統(tǒng)時(shí)鐘為40M,那么,最多可以生成頻率為20MHz的正余弦信號(hào)。

除了相位自增量外,初始的相位也是可以通過(guò)參數(shù)來(lái)修改的,在這里就默認(rèn)不修改了。

在輸出信號(hào)的時(shí)候,可以同時(shí)輸出正余弦信號(hào),這在正交調(diào)制解調(diào)的過(guò)程中十分有用。

除此之外,還可以輸出當(dāng)前的相位。

8bcbdd9e-9041-11ef-a511-92fbcf53809c.png

在具體實(shí)現(xiàn)這一TAB中,保持默認(rèn)就可以,是用來(lái)配置接口。根據(jù)手冊(cè)上描述的,可以選擇這些信號(hào)來(lái)生成不同類型的接口。這些接口都是AXI-Stream 類型的接口,只需要滿足AXIS的規(guī)則就好了。

8bfdbdb4-9041-11ef-a511-92fbcf53809c.png

8c29a19a-9041-11ef-a511-92fbcf53809c.png

在輸出頻率這一TAB,可以輸入期望的輸出頻率,若有多個(gè)通道,可以選擇給多個(gè)通道設(shè)定初始的頻率輸出值。這個(gè)期望頻率在前面選擇了相位增量式可編程的時(shí)候就沒(méi)什么用了。因?yàn)樽罱K輸出的信號(hào)的頻率是通過(guò)相位增量來(lái)控制的。

8c573524-9041-11ef-a511-92fbcf53809c.png

到這里這個(gè)IP基本就配置完了。可以看一下總結(jié),和最終輸出信號(hào)的接口信息。需要特別注意的就是輸出的正余弦信號(hào)在輸出總線上所占據(jù)的bit‘位。DDS IP通過(guò)一個(gè)AXIS接口同時(shí)輸出正弦信號(hào)和余弦信號(hào)。就比如在這個(gè)例子中,m_axis_data[11:0]傳輸?shù)木褪怯嘞倚盘?hào),其中m_axis_data[11]是余弦信號(hào)的符號(hào)位。

m_axis_data[27:16]傳輸?shù)氖钦倚盘?hào),其中m_axis_data[27]是正弦信號(hào)的符號(hào)位。

8c851bce-9041-11ef-a511-92fbcf53809c.png

3 DDS IP測(cè)試

寫個(gè)Testbench測(cè)試一下:

`timescale1ns/1ps
moduletb_test_dds();

regclk;
reg[31:0]frequency;
regfreq_vld;
wirem_axis_data_tvalid;
wire[31:0]m_axis_data_tdata;
wiredds_vld;
wire[11:0]dds_cos;
wire[11:0]dds_sin;

assigndds_vld=m_axis_data_tvalid;
assigndds_cos=m_axis_data_tdata[11:0];
assigndds_sin=m_axis_data_tdata[27:16];

//parameterSYS_CLK=40000000;//systemclock40M
//parameterCLK_6M=6000000;//frequency6M
//parameterCLK_400K=400000;//frequency400K
//parameterCLK_2M=2000000;//frquency2M
//parameterPHASE_WIDTH=32;//相位寬度為32bit

//clock
initialbegin
clk=0;
forever#(12.5)clk=~clk;//40Msystemclokc
end

initialbegin
frequency='d0;
freq_vld=1'b0;
repeat(3000)@(posedgeclk);

//產(chǎn)生一個(gè)頻率為400KHz的復(fù)指數(shù)
frequency=32'd42949672;//CLK_400K*(2^PHASE_WIDTH)/SYS_CLK
freq_vld=1'b1;
@(posedgeclk)
freq_vld=1'b0;

repeat(3000)@(posedgeclk);

//產(chǎn)生一個(gè)頻率為4MHz的復(fù)指數(shù)
frequency=32'd214748364;//CLK_4M*(2^PHASE_WIDTH)/SYS_CLK
freq_vld=1'b1;
@(posedgeclk)
freq_vld=1'b0;

repeat(3000)@(posedgeclk);

//產(chǎn)生一個(gè)頻率為6M的復(fù)指數(shù)
frequency=32'd644245094;//CLK_6M*(2^PHASE_WIDTH)/SYS_CLK
freq_vld=1'b1;
@(posedgeclk)
freq_vld=1'b0;


end


dds_compiler_0inst_dds(
.aclk(clk),//inputwireaclk
.s_axis_config_tvalid(freq_vld),//inputwires_axis_config_tvalid
.s_axis_config_tdata(frequency),//inputwire[31:0]s_axis_config_tdata
.m_axis_data_tvalid(m_axis_data_tvalid),//outputwirem_axis_data_tvalid
.m_axis_data_tdata(m_axis_data_tdata)//outputwire[31:0]m_axis_data_tdata
);
endmodule

可以看到生成了不同頻率的正余弦信號(hào)。一開時(shí)的時(shí)候。沒(méi)有給出相位增量,所以固定輸出2M的信號(hào),之后給出了相位增量后,輸出了400K 信號(hào)。

8cac5e32-9041-11ef-a511-92fbcf53809c.png

8cce230a-9041-11ef-a511-92fbcf53809c.png

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

    關(guān)注

    71

    文章

    2154

    瀏覽量

    120829
  • DDS
    DDS
    +關(guān)注

    關(guān)注

    21

    文章

    629

    瀏覽量

    152470
  • IP核
    +關(guān)注

    關(guān)注

    4

    文章

    326

    瀏覽量

    49370

原文標(biāo)題:Xilinx DDS IP使用

文章出處:【微信號(hào):Hack電子,微信公眾號(hào):Hack電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    我用的是xilinx ISE 12.4 ,想問(wèn)一個(gè)關(guān)于dds IP 的問(wèn)題

    我想調(diào)用dds IP,調(diào)用出來(lái)后,在填寫信息的第一頁(yè)有一個(gè)系統(tǒng)時(shí)鐘的填寫欄,在倒數(shù)第三頁(yè)有一個(gè)輸出頻率的填寫欄(最大2M),我想問(wèn)這兩個(gè)填寫內(nèi)容有什么關(guān)系嗎?求高手解答(最好把12.4這個(gè)版本的
    發(fā)表于 02-18 09:20

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

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

    xilinx dds IP輸出能不能改為無(wú)符號(hào)數(shù)

    xilinx dds IP輸出能不能改為無(wú)符號(hào)數(shù),因?yàn)橐话鉊A轉(zhuǎn)化器只能轉(zhuǎn)化正數(shù)
    發(fā)表于 09-29 18:30

    ip使用問(wèn)題

    我調(diào)用了一個(gè)ip 在下載到芯片中 有一個(gè)time-limited的問(wèn)題 在完成ip破解之后 還是無(wú)法解決 但是我在Google上的找到一個(gè)解決方法就是把
    發(fā)表于 05-17 10:28

    xilinx FPGA的FFT IP的調(diào)用

    有沒(méi)有大神可以提供xilinx FPGA的FFT IP的調(diào)用的verilog 的參考程序,最近在學(xué)習(xí)FFT的IP的使用,但是仿真結(jié)果有問(wèn)
    發(fā)表于 12-25 17:05

    Xilinx系列FPGA芯片IP詳解

    `Xilinx系列FPGA芯片IP詳解(完整高清書簽版)`
    發(fā)表于 06-06 13:15

    如何使用DDS IP生成任意波形?

    一個(gè)DDS應(yīng)用,我想使用Xilinx DDS IP內(nèi)核生成任意波形,但我看到的是DDS只能生成正弦或余弦波形數(shù)據(jù)。你知道如何用其他數(shù)據(jù)替換正
    發(fā)表于 02-12 08:07

    各位大佬,xilinx ip的各個(gè)參數(shù)的含義從哪里看啊

    各位大佬,xilinx ip的各個(gè)參數(shù)的含義從哪里看啊
    發(fā)表于 05-30 10:37

    基于FPGA的DDS IP設(shè)計(jì)方案

    以Altera公司的Quartus Ⅱ 7.2作為開發(fā)工具,研究了基于FPGA的DDS IP設(shè)計(jì),并給出基于Signal Tap II嵌入式邏輯分析儀的仿真測(cè)試結(jié)果。將設(shè)計(jì)的DDS
    發(fā)表于 04-05 16:04 ?85次下載
    基于FPGA的<b class='flag-5'>DDS</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>設(shè)計(jì)方案

    Xilinx Vivado的使用詳細(xì)介紹(3):使用IP

    IPIP Core) Vivado中有很多IP核可以直接使用,例如數(shù)學(xué)運(yùn)算(乘法器、除法器、浮點(diǎn)運(yùn)算器等)、信號(hào)處理(FFT、DFT、DDS
    發(fā)表于 02-08 13:08 ?2121次閱讀
    <b class='flag-5'>Xilinx</b> Vivado的使用詳細(xì)介紹(3):使用<b class='flag-5'>IP</b><b class='flag-5'>核</b>

    淺析Vivado的IPDDS使用方式及注意事項(xiàng)

    vivado提供了DDS IP核可以輸出正余弦波形,配置方法如下
    的頭像 發(fā)表于 04-27 15:52 ?9900次閱讀
    淺析Vivado的<b class='flag-5'>IP</b><b class='flag-5'>核</b><b class='flag-5'>DDS</b>使用方式及注意事項(xiàng)

    關(guān)于XilinxDDS IP的運(yùn)用與講解

    本次項(xiàng)目我們主要是為了講解DDS,所以我們使用了混頻這個(gè)小項(xiàng)目來(lái)講解。DDS自己手寫是比較簡(jiǎn)單且靈活,但是Xilinx給我們提供了相應(yīng)的IP
    的頭像 發(fā)表于 04-27 16:00 ?6626次閱讀
    關(guān)于<b class='flag-5'>Xilinx</b>中<b class='flag-5'>DDS</b> <b class='flag-5'>IP</b>的運(yùn)用與講解

    關(guān)于Ultra96的Xilinx DDS編譯器IP教程

    電子發(fā)燒友網(wǎng)站提供《關(guān)于Ultra96的Xilinx DDS編譯器IP教程.zip》資料免費(fèi)下載
    發(fā)表于 12-13 10:17 ?1次下載
    關(guān)于Ultra96的<b class='flag-5'>Xilinx</b> <b class='flag-5'>DDS</b>編譯器<b class='flag-5'>IP</b>教程

    Xilinx Vivado DDS IP使用方法

    DDS(Direct Digital Frequency Synthesizer) 直接數(shù)字頻率合成器,本文主要介紹如何調(diào)用XilinxDDS IP
    的頭像 發(fā)表于 07-24 11:23 ?4540次閱讀
    <b class='flag-5'>Xilinx</b> Vivado <b class='flag-5'>DDS</b> <b class='flag-5'>IP</b>使用方法

    如何申請(qǐng)xilinx IP的license

    在使用FPGA的時(shí)候,有些IP是需要申請(qǐng)后才能使用的,本文介紹如何申請(qǐng)xilinx IP的license。
    的頭像 發(fā)表于 10-25 16:48 ?136次閱讀
    如何申請(qǐng)<b class='flag-5'>xilinx</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>的license