周鈞 陳林輝
【摘 要】本設計是將現場可編程邏輯器件FPGA 與DDS 技術相結合,以Xilinx的FPGA Basys3開發板為平臺,Vivado集成開發軟件為環境,利用Verilog HDL語言設計出的組合波形發生器。將各波形的幅值轉化為相位并將其數字化后的數據存儲在ROM內,按照設定頻率,以相應頻率控制字Fre_control為步進,對相位進行累加,將累加相位值作為地址,通過該地址讀取存放在存儲器內的波形數據,經數模轉換等外圍電路得到所需波形。
【關鍵詞】FPGA 組合波形發生器 Vivado
隨著可編程邏輯元器件的越發普及,FPGA在教學、生產等方面的用途日益增加。全球最老牌的PLD公司之一的賽靈思公司在2012年發布了Vivado集成開發環境加之近年Basys3開發設計板的問世,使得Verilog硬件描述語言越發受到開發者的青睞,也使得數字信號處理等變得越發高速和高效。本作品可以產生正弦波,方波,三角波等基本波形及其組合波形,通過添加波形數據,可實現任意波形。且本作品波形質量好,精度高,指標可媲美市場上出售的發生器。
1 總體的結構
圖1所示為作品的總體結構圖,具體表現為:將FPGA綜合而成的數字量輸出給外圍電路,通過DA轉換和低通濾波,使得數字信號變為平滑的模擬信號,后經由前級差分放大電路和幅度調節電路,產生標準的輸出信號。
2 系統的構成
在Vivado上利用Verilog語言變成實現下面的數字電路(圖2)。其中系統時鐘f為100MHz,通過鎖相環PLL倍頻后提供給系統的時鐘fs為200MHz,相位累加器N為28位,這樣步進值step就是 ,為了使一個周期的采樣點數不少于8個,我們人為設定頻率控制字Fre_control為25位。設K為頻率控制字的值,則輸出頻率fo= 。圖中的wave是三位變量,那么就有=8種波形,如需添加波形,wave的位數也需要相應增加。
我們的ROM查找表的深度為4096個點,寬度為12位,滿足采樣精度和DA轉換精度,圖3所示為我們其中一種波形(正弦波)的仿真波形。
3 組合波形及其他波形的實現
組合波形的實現主要是由基本波形疊加而來,兩兩疊加波形就是將三種基本波形幅值除以二后進行數字累加,三種波形的疊加則除以三,這樣得到的組合波形和原來的三種基本波形是同頻同幅的。
另外要想實現其他波形,我們只需將波形對應的4096個點添加進ROM,在Vavido中添加選擇該波形的程序,然后綜合、實現、生成bit文件再下載就可以實現了。
4 步進值的設計
步進值的設計是本作品的核心和亮點。我們巧妙利用Basys 3開發板上的5個按鍵:將其中之一作為復位按鍵,兩個作為加和減的控制鍵,另外兩個一個能夠使步進值以十倍的速率遞增,另一個以十倍的速率遞減。最小步進值是0.75,然后就是7.5,75,這樣可以使頻率的調節更加方便和快捷。
5 結語
該組合波形發生器基于Xilinx的Basys 3開發板,性能穩定。具有波形可調,幅值可調,頻率可調,步進值可調以及添加任意波形的功能。另外,我們還增加了掃頻的功能。該作品是一款功能多樣化,結構簡單,設計方便,精度準確,價格低廉的作品。
參考文獻:
[1]陳學英.李穎.FPGA應用實驗教程.北京:國防工業出版社,2013.
[2]何賓.Xilinx FPGA權威設計指南.北京:電子工業出版社,2015.
[3]夏宇聞.Verilog數字系統設計教程.北京:北京航空航天大學出版社,2013.