简易DDS信号发生器记录
簡(jiǎn)易DDS信號(hào)發(fā)生器
學(xué)習(xí)資料:野火 升騰Pro《FPGA Verilog開(kāi)發(fā)實(shí)戰(zhàn)指南——基于Xilinx Artix7》2021.11.16
1. 理論知識(shí)
DDS 是直接數(shù)字式頻率合成器(Direct Digital Synthesizer),也就是信號(hào)發(fā)生器,具有低成本、低功耗、高分辨率和快速轉(zhuǎn)換時(shí)間等優(yōu)點(diǎn)。
DDS 的基本結(jié)構(gòu)主要由相位累加器、相位調(diào)制器、波形數(shù)據(jù)表 ROM、D/A 轉(zhuǎn)換器等四大結(jié)構(gòu)組成,其中較多設(shè)計(jì)還會(huì)在數(shù)模轉(zhuǎn)換器之后增加一個(gè)低通濾波器。
基本結(jié)構(gòu)示意圖:
頻率字輸入F_WORD一般為整數(shù),控制輸出信號(hào)的頻率,數(shù)值越大頻率越高,后面用K表示,其位寬為N。相位字輸入P_WORD(后文用P表示),為整數(shù),數(shù)值大小控制輸出信號(hào)的相位偏移,主要用于相位的信號(hào)調(diào)制。系統(tǒng)時(shí)鐘頻率fclk,輸出信號(hào)頻率fout,兩者的關(guān)系:**fout= K * fclk / (2 ^ N ).**對(duì)于P的計(jì)算,P= 相位偏移量 / (2π / 2 ^ M),M為ROM地址的位寬。
2. 工程設(shè)計(jì)
實(shí)驗(yàn)?zāi)繕?biāo):使用 FPGA 開(kāi)發(fā)板和外部掛載的高速 AD/DA 板卡,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)簡(jiǎn)易 DDS 信號(hào)發(fā)生器,可通過(guò)按鍵控制實(shí)現(xiàn)正弦波、方波、三角波和鋸齒波的波形輸出,頻率相位可調(diào)。
波形文件的產(chǎn)生利用Matlab生成.coe格式文件,代碼如下圖:
-
整體框架
D/A模塊由外部掛載AD/DA板卡處理,其余相位累加器、相位調(diào)制器、波形數(shù)據(jù)表 ROM 由FPGA 負(fù)責(zé)。
整體模塊框圖,四個(gè)按鍵進(jìn)行波形選擇輸出,
-
按鍵控制模塊
四個(gè)輸入,需要按鍵消抖,直接套用以前的模塊即可。 -
dds模塊
內(nèi)部實(shí)例化了波形數(shù)據(jù)表ROM,用于存儲(chǔ)波形信號(hào)。
其中 fre_add 表示相位累加器輸出值,位寬為 32 位,系統(tǒng)上電后,fre_add 信號(hào)一直執(zhí)行自加操作,每個(gè)時(shí)鐘周期自加參數(shù) FREQ_CTRL,參數(shù)FREQ_CTRL 就是在之前理論知識(shí)部分提到的頻率字輸入 K。
寄存器變量 rom_addr_reg 表示相位調(diào)制器輸出值,將相位累加器輸出值的高 12 位與相位偏移量 PHASE_CTRL 相加,參數(shù) PHASE_CTRL 就是我們之前提到過(guò)的相位字輸入P。
ROM 讀地址 rom_addr 是輸入波形數(shù)據(jù)表的 ROM 讀地址,是在 rom_addr_reg 的基礎(chǔ)上計(jì)算得到。我們之前將 4 種信號(hào)波形數(shù)據(jù)按照正弦波、方波、三角波、鋸齒波的順序?qū)懭?ROM。若需要讀取正弦波波形數(shù)據(jù),rom_addr_reg 可直接賦值給 rom_addr;但是要進(jìn)行方波波形數(shù)據(jù)的讀取,rom_addr_reg 需要再加上正弦波存儲(chǔ)單元個(gè)數(shù)才能賦值給
rom_addr。 -
頂層模塊
直接實(shí)例化按鍵和dds模塊即可,輸出的dac_clk是DAC模塊的時(shí)鐘,該信號(hào)由系統(tǒng)時(shí)鐘 sys_clk 取反得到。取反的原因是波形數(shù)據(jù)表 ROM 的讀時(shí)鐘為系統(tǒng)時(shí)鐘 sys_clk,在系統(tǒng)時(shí)鐘上升沿時(shí)對(duì) ROM 進(jìn)行數(shù)據(jù)讀取,而 DA 模塊也使用時(shí)鐘上升沿進(jìn)行數(shù)據(jù)處理,將系統(tǒng)時(shí)鐘 sys_clk 取反得到dac_clk,那么dac_clk 的上升沿剛好采集到波形數(shù)dac_data 的穩(wěn)定數(shù)據(jù)。
代碼詳見(jiàn)資料
總結(jié)
以上是生活随笔為你收集整理的简易DDS信号发生器记录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 虚拟化六大安全问题
- 下一篇: 市场调研报告-全球与中国仅相位空间光调制