資料介紹
描述
直接數(shù)字合成器 (DDS) 是軟件定義無線電和數(shù)字通信系統(tǒng)中的關(guān)鍵工具,因?yàn)樗鼈兲峁┝艘环N在數(shù)字域中生成復(fù)雜信號(hào)的方法,該信號(hào)也是可變的。雖然 DDS 背后的理論相當(dāng)簡(jiǎn)單,但第一次在 FPGA 中實(shí)現(xiàn)它可能有點(diǎn)挑戰(zhàn)性,這就是為什么我想創(chuàng)建這個(gè)項(xiàng)目作為一個(gè)非常簡(jiǎn)單的示例,說明如何采用 Xilinx DDS 編譯器 IP 并獲得它在 Ultra96 板的可編程邏輯中運(yùn)行。
也稱為數(shù)控振蕩器 (NCO),DDS 包含一個(gè)正弦曲線數(shù)據(jù)值的查找表,該表采用給定的相位值并輸出正弦曲線的適當(dāng)數(shù)據(jù)/幅度值。該輸入值決定了輸出波形的頻率,該值越小,DDS 通過正弦查找表的速度越慢,輸出波形的頻率越低。相反,輸入值越高,DDS 通過查找表的速度越快,輸出波形的頻率越高。這個(gè)輸入值通常被稱為調(diào)諧字,但在賽靈思 DDS 編譯器 IP 中,它被稱為相位增量。

如上圖所示,該相位增量值 (Δθ) 越大,代表復(fù)雜波形的單位圓周圍的 DDS 步長(zhǎng)越快。當(dāng) M 加倍時(shí),產(chǎn)生的復(fù)雜波形的頻率也加倍,因?yàn)樗@單位圓的速度是原來的兩倍。與該單位圓的相位值相關(guān)的數(shù)據(jù)點(diǎn)存儲(chǔ)在 DDS 的查找表中。
在這一點(diǎn)上,我們可以看到 DDS 的主要優(yōu)勢(shì)之一:我們可以通過改變告訴 DDS 多快通過查找表的輸入值(又名 - 多快繞單位圓移動(dòng))。
輸入相位增量值不斷添加到自身 (A1 和 D1) 以生成所需輸出波形的每個(gè)瞬時(shí)值,從而從查找表 (T1) 中獲取該瞬時(shí)相位值的適當(dāng)數(shù)據(jù)值/幅度。

為了演示 DDS 及其輸出波形頻率變化的容易程度,我決定一個(gè)簡(jiǎn)單的啁啾波形是合適的。啁啾是正弦曲線以一個(gè)頻率開始,然后在一段時(shí)間內(nèi)線性增加或減少(這有時(shí)也稱為掃描)。

我決定在 26 微秒內(nèi)以 1MHz 的步長(zhǎng)從 1MHz 到 25MHz 做一個(gè)簡(jiǎn)單的啁啾(我的結(jié)構(gòu)時(shí)鐘是 100MHz,即每個(gè)時(shí)鐘周期 10 納秒,我隨機(jī)選擇讓 DDS 編譯器輸出每個(gè)頻率 1 微秒以便在邏輯分析儀窗口中輕松查看)。

通過遞歸地將 1MHz 的相位增量值添加到自身,然后將其作為輸入饋送到 DDS 編譯器,這實(shí)現(xiàn)了我的啁啾從 1MHz 到 FPGA 結(jié)構(gòu)時(shí)鐘的一半(在 ILA 中采樣時(shí)保持奈奎斯特規(guī)則)以 1MHz 步長(zhǎng)。我選擇只提高到 25MHz,這樣整個(gè)啁啾聲就可以立即顯示在我的屏幕上以進(jìn)行截圖,但是我的結(jié)構(gòu)時(shí)鐘設(shè)置為 100MHz,所以我可以提高到 50MHz。
我使用來自 PG141 的以下等式計(jì)算了 B 列中每個(gè)輸出波形頻率的 C 列中的相位增量值:

然后我將 C 列中的相位增量值轉(zhuǎn)換為十六進(jìn)制以去掉小數(shù)位,因?yàn)槲沂窃?Verilog 中編寫這段代碼的。我創(chuàng)建了 E 列和 F 列來表明相位增量的差異確實(shí)導(dǎo)致了與 1MHz 相同的十六進(jìn)制值。
從我在之前的一個(gè)項(xiàng)目中為 Ultra96 生成的 Vivado 項(xiàng)目開始,需要將三件事添加到此 DDS 啁啾的頂層包裝器中:
1 - Xilinx DDS 編譯器。2 - 與 DDS 的 AXI Stream slave 和 master 接口的邏輯。3 - 一個(gè)集成邏輯分析儀 (ILA) IP,用于查看 DDS 的輸出波形。
在 Vivado 的 Flow Navigator 列下,打開 IP 存儲(chǔ)庫并搜索“DDS”。當(dāng) DDS 編譯器 IP 出現(xiàn)在 IP 存儲(chǔ)庫的列表中時(shí),雙擊它后,將彈出一個(gè)對(duì)話框。單擊“自定義 IP”按鈕,將出現(xiàn) DDS 編譯器的配置窗口。

在如上所示的第一個(gè)選項(xiàng)卡中,出于我們的目的,所有默認(rèn)設(shè)置都可以保留。
在第二個(gè)選項(xiàng)卡下,為相位增量和偏移可編程性選擇流式傳輸。我發(fā)現(xiàn)這使得從 AXI Stream 接口變得最簡(jiǎn)單。

此外,對(duì)于 DDS 編譯器的 AXI Stream 接口,在詳細(xì)實(shí)現(xiàn)選項(xiàng)卡下,選中“輸出 TREADY”框。我發(fā)現(xiàn)在處理 AXI Stream 時(shí),TREADY 信號(hào)幾乎總是一個(gè)必要的信號(hào)。

在添加 ILA 時(shí),我總共添加了 4 個(gè)探針,用于監(jiān)控 DDS 從接口上的輸入相位增量值以及 DDS 在其主接口上的輸出數(shù)據(jù)和相位值。我將 Ultra96 上的 UltraScale 芯片設(shè)置的深度盡可能大,以方便我的設(shè)計(jì),即 65536。我建議始終嘗試設(shè)置 ILA 以捕獲盡可能多的數(shù)據(jù)。

例化 ILA 和 DDS IP 模塊后,我編寫了自己的簡(jiǎn)單狀態(tài)機(jī)來創(chuàng)建 AXI Stream 接口,將相位增量值輸入到 DDS,然后等待 1 微秒,然后將 1MHz 步長(zhǎng)添加到相位增量值并輸入到DDS。該狀態(tài)機(jī)還保持計(jì)數(shù),因此在達(dá)到 25MHz 的相位增量值后,它會(huì)在下一次迭代中回到 1MHz。
我發(fā)現(xiàn)這個(gè)簡(jiǎn)單的 AXI Stream 接口狀態(tài)機(jī)在許多不同的應(yīng)用程序中都非常方便。主要的邏輯步驟是:1 - 設(shè)置初始值。2 - 將目標(biāo) IP 的從接口上的 Tvalid 信號(hào)設(shè)置為高電平。3 - 設(shè)置要在目標(biāo) IP 的從接口上輸入的數(shù)據(jù)值(相位增量值到 DDS 編譯器)。4 - 檢查來自目標(biāo) IP 的從接口的 Tready 信號(hào),以驗(yàn)證它是否已準(zhǔn)備好接收下一個(gè)數(shù)據(jù)值。

我的所有文件都在鏈接的 Github 存儲(chǔ)庫中,以及這里狀態(tài)機(jī)的完整代碼。
生成新的比特流后,打開 Ultra96 的電源并連接到其 JTAG 端口(您可以使用飛線完成此操作,但 Ultra96 的 JTAG 到 USB 接口將使您的生活變得更輕松)。
從 Vivado 的 Flow Navigator 中,選擇Open Hardware Manager ,然后選擇Open Target和Autodetect選項(xiàng)。一旦硬件管理器與 Ultra96 建立連接,選擇Program Device選項(xiàng)并指定剛剛使用 DDS 邏輯創(chuàng)建的新比特流。
成功閃光后,ILA 窗口將出現(xiàn),如果您單擊即時(shí)捕捉按鈕(帶有 >> 字符的藍(lán)色按鈕),您將看到 DDS 不斷循環(huán)的啁啾聲。

ILA 頂部的圖是 DDS 編譯器輸出的實(shí)際正弦波形,下圖是其瞬時(shí)相位值。向下的第三個(gè)圖是輸入到 DDS 編譯器的相位增量值。
底部的十六進(jìn)制值只是狀態(tài)機(jī)狀態(tài),用于演示每個(gè)狀態(tài)如何與 DDS 編譯器的控制相關(guān)。

我希望這個(gè)簡(jiǎn)單的 DDS 編譯器示例對(duì)您有所幫助。如果您想進(jìn)一步閱讀,我附上了 Xilinx 的 DDS 編譯器 (PG141) 產(chǎn)品指南,其中深入解釋了其操作理論。
- Ultra96硬件用戶指南
- Ultra96 CSI-2視頻輸出到Raspberry Pi攝像頭輸入
- Ultra96上的實(shí)時(shí)攝像頭饋送網(wǎng)頁
- 使用PYNQ的Ultra96面部識(shí)別鎖栓
- 用于Ultra96的夾層板96AnalogXperience
- Ultra96 FPGA上的Live NYC Subway Monitor應(yīng)用程序
- 與Ultra96聯(lián)網(wǎng)端口轉(zhuǎn)發(fā)
- Ultra96 V2上基于標(biāo)記的增強(qiáng)現(xiàn)實(shí)
- 使用Ultra96 PYNQ測(cè)定織物GSM
- Ultra96皮膚癌AI構(gòu)建
- 設(shè)計(jì)的帶嵌入式收發(fā)器的Gen1×1硬核IP的 PCI Express IP編譯器
- 2018.2 Ultra96:從 Matchbox 桌面關(guān)斷 PetaLinux BSP,無法關(guān)斷電路板
- 一起玩Ultra96之GPIO操作
- Xilinx Logicore IP直接數(shù)字合成器DDS的用戶手冊(cè)免費(fèi)下載 20次下載
- 直接數(shù)字綜合器(DDS)編譯器開發(fā)指南
- 什么樣的代碼會(huì)被編譯器優(yōu)化 92次閱讀
- Xilinx DDS IP核的使用和參數(shù)配置 1257次閱讀
- TVM編譯器的整體架構(gòu)和基本方法 2506次閱讀
- 領(lǐng)域編譯器發(fā)展的前世今生 1748次閱讀
- 交叉編譯器安裝教程 3559次閱讀
- 編譯器優(yōu)化對(duì)函數(shù)的影響 2863次閱讀
- 虛擬機(jī):編譯器對(duì)C函數(shù)的名字修飾 2576次閱讀
- 如何選擇PIC單片機(jī)的C編譯器 5429次閱讀
- 詳解Xilinx公司Zynq? UltraScale+?MPSoC產(chǎn)品 3357次閱讀
- 深入編程語言和編譯器是怎樣工作的 4374次閱讀
- 編譯器原理到底是怎樣的帶你簡(jiǎn)單的了解編譯器原理 1.1w次閱讀
- 基于Arm技術(shù)的16nm MPSoC開發(fā)套件Ultra96 6201次閱讀
- verilog編譯指令_verilog編譯器指示語句(數(shù)字IC) 1.5w次閱讀
- 編譯器是如何工作的_編譯器的工作過程詳解 1.6w次閱讀
- 編譯器跟編輯器有什么區(qū)別 3w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
電子發(fā)燒友App






創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論