国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何使用Vivado DDS ip核產(chǎn)生正余弦波

這篇具有很好參考價值的文章主要介紹了如何使用Vivado DDS ip核產(chǎn)生正余弦波。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

實驗要求:使用50M的系統(tǒng)時鐘分別產(chǎn)生一路12位的10KHZ的正弦波和余弦波
第一步:打開DDS ip核

vivado仿真正弦波,dds,fpga開發(fā),ip

Configuration Options: 選擇有Sin和Cos模式

System Clk:選擇50MHz

Mode Of Operation:這里可以有兩種選擇Standard模式和Rasterized模式
在Standard模式下:填寫Phase width(相位位寬): 默認(rèn)16位不變,填寫Output width為實驗要求的12位;

利用公式vivado仿真正弦波,dds,fpga開發(fā),ip計算:10K=50M*ΔΦ(頻率控制字又名相位增量)/2^16(Phase width)即10K=50M*ΔΦ/2^16? 計算得到ΔΦ。

vivado仿真正弦波,dds,fpga開發(fā),ip

Phase Increament Programmability 這里選擇fix(固定值)。

vivado仿真正弦波,dds,fpga開發(fā),ip

填入四舍五入后的ΔΦ的值(轉(zhuǎn)化為二進制)。

后續(xù)通過仿真查看波形。

存在的問題:因為是四舍五入后的ΔΦ,所以產(chǎn)生的波形只是大致10K但是不準(zhǔn)確,采取第二種模式。vivado仿真正弦波,dds,fpga開發(fā),ip

選擇Rasterized模式,這里發(fā)現(xiàn)Phase Width已經(jīng)固定了,需要我們填入Modulus? 的值

利用公式:

vivado仿真正弦波,dds,fpga開發(fā),ip

這里發(fā)現(xiàn)這個公式利用M的值代替了前面2^16(Phase width)的值,所以這里我們只需要自己定義ΔΦ/M的值就可以輸出fout。 這里定義了10K=50M*ΔΦ/M。令M=10000,那么ΔΦ=2。vivado仿真正弦波,dds,fpga開發(fā),ip

在這里填入10。

沒有提到的地方都用默認(rèn)。

測試代碼:
module dds(
input sys_clk,
input sys_rst_n,
output ?[11:0]sin_data,
output ?[11:0]cos_data
? ? );
wire [31:0]data;
wire ?[15:0]phase_data;
wire ?phase_valid;
wire ?data_valid; ? ??
assign cos_data={~data[11],data[10:0]};
assign sin_data={~data[27],data[26:16]}; ? ?
dds_compiler_0 your_instance_name (
? .aclk(sys_clk), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// input wire aclk
? .m_axis_data_tvalid(data_valid), ? ?// output wire m_axis_data_tvalid
? .m_axis_data_tdata(data), ? ? ?// output wire [31 : 0] m_axis_data_tdata
? .m_axis_phase_tvalid(phase_valid), ?// output wire m_axis_phase_tvalid
? .m_axis_phase_tdata(phase_data), ? ?// output wire [15 : 0] m_axis_phase_tdata
? .event_pinc_invalid( ) ? ?// output wire event_pinc_invalid
);
endmodule

Note:最高位要取反才能得到連續(xù)的正余弦波。


仿真代碼:
`timescale 1ns/1ns
module tb_dds(
? ? );
reg sys_clk;
reg sys_rst_n;

initial begin
sys_clk<=1'b0;
sys_rst_n<=1'b0;
#20
sys_rst_n<=1'b1;
end
always #10 sys_clk=~sys_clk;
wire [11:0]sin_data;
wire [11:0]cos_data;
?dds u_dds(
.sys_clk ? ? ? (sys_clk) ,
.sys_rst_n ? ? (sys_rst_n ),
.sin_data ? ? ?(sin_data),
.cos_data ? ? ?(cos_data)
? ? );
endmodule

vivado仿真正弦波,dds,fpga開發(fā),ip

使用第二種模式能夠得到周期更精確的正余弦波。

歡迎評論指正,交流學(xué)習(xí)!文章來源地址http://www.zghlxwxcb.cn/news/detail-847220.html

到了這里,關(guān)于如何使用Vivado DDS ip核產(chǎn)生正余弦波的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 基于vivado DDS ip核的DDS信號發(fā)生器(可調(diào)頻調(diào)相)

    基于vivado DDS ip核的DDS信號發(fā)生器(可調(diào)頻調(diào)相)

    基于Vivado DDS ip核的DDS信號發(fā)生器: 在Vivado軟件中調(diào)出DDS ip核進行設(shè)置,很多參數(shù)可以參考xilinx官方手冊,比較重要的是System Clock系統(tǒng)時鐘和Phase Widh相位寬度的設(shè)置,這是最終得到波形的頻率和相位所需要的基礎(chǔ)參數(shù),在這里我分別設(shè)置為50Mhz和16bit。 在implementation頁面設(shè)置頻

    2024年02月12日
    瀏覽(18)
  • 【FPGA】 十二、Vivado DDS IP核實現(xiàn)掃頻信號

    【FPGA】 十二、Vivado DDS IP核實現(xiàn)掃頻信號

    文章目錄 前言 一、DDS IP核概述 二、DDS IP核配置 三、調(diào)用DDS IP核 總結(jié) ? ? 在我前面的工程中,都是一些比較通用的設(shè)計工程,沒有用到哪一家的IP核,所以代碼具有很好的移植性;今天我就來講一下基于Xilinx廠家的芯片做一期DDS的設(shè)計與驗證,這里我所采用的EDA工具是Viva

    2024年02月03日
    瀏覽(33)
  • 如何解決Vivado仿真時提示:另一個程序正在使用此文件 behavxsimsimulate.log

    如何解決Vivado仿真時提示:另一個程序正在使用此文件 behavxsimsimulate.log

    Vivado仿真錯誤提示: 使用非Vivado自帶的Text Editor(文本編輯器,如Vscode、Sublime等),在開始新的仿真時,前一次仿真沒有關(guān)掉,導(dǎo)致log文件被一直占用。 方法一 關(guān)掉代碼編輯器再進行仿真即可恢復(fù)正常 方法二 1、打開任務(wù)管理器(快捷鍵Ctrl + Shift + Esc) 2、點擊性能 3、打開

    2024年02月12日
    瀏覽(186)
  • 如何使用Synplify綜合vivado帶IP核的工程

    如何使用Synplify綜合vivado帶IP核的工程

    下面的說法來自網(wǎng)上: 綜合時間更好,綜合出來所使用的邏輯更少 綜合的時序更好 在IC設(shè)計中,使用Synplify綜合+Vivado組合比較多。synplify 用于生成網(wǎng)表,然后將網(wǎng)表倒入FPGA中,進行布局布線等操作。 Libero集成開發(fā)環(huán)境中Synplify應(yīng)用與提高-Microsemi(Actel) FPGA開發(fā)工具——周

    2024年02月11日
    瀏覽(129)
  • xilinx FPGA 除法器ip核(divider)的學(xué)習(xí)和仿真(Vivado)

    xilinx FPGA 除法器ip核(divider)的學(xué)習(xí)和仿真(Vivado)

    在設(shè)計中,經(jīng)常出現(xiàn)除法運算, 實現(xiàn)方法 : 1、移位操作 2、取模取余 3、調(diào)用除法器IP核 4、查找表 簡單學(xué)習(xí)除法器IP。 網(wǎng)上很多IP翻譯文檔,不詳細(xì)介紹,記錄幾個重要的點: 1、三種算法模式(不同模式所消耗的資源類型不同) 2、分清除數(shù)和被除數(shù);余數(shù)模式的選擇 3、延

    2024年04月28日
    瀏覽(291)
  • 基于FPGA的DDS原理信號發(fā)生器設(shè)計 quartusII 9.1平臺 Verilog HDL語言編程 可產(chǎn)生正弦波

    基于FPGA的DDS原理信號發(fā)生器設(shè)計 quartusII 9.1平臺 Verilog HDL語言編程 可產(chǎn)生正弦波

    基于FPGA的DDS原理信號發(fā)生器設(shè)計 quartusII 9.1平臺 Verilog HDL語言編程 ?可產(chǎn)生正弦波、方波、鋸齒波以及三角波 ? 頻率幅度可調(diào)節(jié) ? 代碼+原理圖 在現(xiàn)代電子技術(shù)領(lǐng)域,針對各種應(yīng)用的信號發(fā)生器是一種非常核心的設(shè)備,而基于現(xiàn)場可編程邏輯門陣列(FPGA)的直接數(shù)字合成(

    2024年04月27日
    瀏覽(30)
  • vivado中如何生成、例化和仿真DCP文件

    1、在vivado-Tool-setting-project-setting-synthesis路徑下,設(shè)置 -mode out_of_context(綜合時不產(chǎn)生IO buffer) 2、將引腳約束注釋掉,防止例化使用DCP文件時報錯 3、將工程綜合,打開綜合設(shè)計。 4、在console輸入命令,生成DCP文件: write_checkpoint -key C:/Users/YDQ/Desktop/key_files.txt -encrypt top.dcp 其

    2024年02月05日
    瀏覽(27)
  • 如何獲取vivado IP列表

    TCL命令如下:? ? 運行vivado TCL顯示 ?問題在于 { 前面需要有空格分開。

    2024年02月13日
    瀏覽(68)
  • Vivado中如何修改IP源文件

    Vivado中如何修改IP源文件

    前一篇文章是通過改變JESD204B IP的設(shè)置,在Shared Logic里勾選in example design,來避免共用輸入時鐘的問題。那么還有沒有別的辦法呢?有沒有更直接點的實現(xiàn)方式呢? 答案是肯定的:可以 直接修改IP,將IBUFDS從IP里移出去 ,放到外面就可以共用了。修改IP是一個比較復(fù)雜的辦法,

    2024年02月11日
    瀏覽(27)
  • 基于AD9767高速DAC的DDS信號發(fā)生器(Verilog&Vivado)

    基于AD9767高速DAC的DDS信號發(fā)生器(Verilog&Vivado)

    基于AD9767高速DAC的DDS信號發(fā)生器 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 1.做一個雙通道的信號發(fā)生器; 2.簡單調(diào)整每個通道的頻率輸出; 3.能夠調(diào)整每個通道的輸出相位; 4.能夠輸出正弦波,三角波,方波。 代碼如下(示例): 代碼如下(示例): 【附件:】

    2024年02月06日
    瀏覽(56)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包