數字控制振蕩器(NCO)的FPGA實(shí)現
相位累加器可完成相位累加,即每來(lái)1個(gè)時(shí)鐘就累加1次φ=φ+△φ,且采用流水線(xiàn)方式工作。本設計采用QUARTUS II中IP核自帶的一種32位累加器來(lái)實(shí)現相位的累加。
邏輯轉換完成后,可采用小表結構功能塊把相位累加器產(chǎn)生的最高2位信號轉換為地址控制信號和象限轉換控制信號。其中地址控制信號是根據最高兩位信號來(lái)控制地址從0開(kāi)始遞增方式產(chǎn)生還是從2L開(kāi)始以遞減方式產(chǎn)生。
正弦表是每來(lái)一個(gè)時(shí)鐘輸出一個(gè)大于零的正弦值數據,這些數據可作為象限變換器的輸入,由象限變換器完成數據的象限變換。其轉換原則是:象限控制信號根據正弦信號的對稱(chēng)性把查表得到的數據轉換為正負數據,并對于正弦信號的1、2象限數據進(jìn)行加零操作,而對3、4象限的數據進(jìn)行求補運算。余弦數據也同樣,在1、4象限對數據進(jìn)行加零操作,2、3象限數據進(jìn)行求補運算。
4 仿真結果
利用上述小表結構實(shí)現的NCO可以輸出多種頻率信號并減少資源消耗,影響系統輸出頻率的因素主要是工作頻率和器件性能。
圖1所示是整個(gè)NCO在QUARTUS II中的仿真波形圖。本文引用地址:http://dyxdggzs.com/article/191276.htm
在圖1所示的波形圖中,CLK是時(shí)鐘輸入頻率(為65.6 MHz),CLR為系統復位信號,相位累加器的位數L為32位,輸出信號幅度位數為12位(包括符號位),相位寬度為12位,這樣,由式(5)便可得到頻率控制字FCW為269591793,圖1中的COS_OUT與SIN_OUT是系統輸出信號,頻率為4.08 MHz。
由式(11)、(12)、(13)可得,此系統的信噪比和SFDR分別為74 dB和84 dB。
圖2所示是將波形文件中的正弦余弦數據讀入MATLAB中所顯示出來(lái)的波形。
5 結束語(yǔ)
本文通過(guò)分析數控振蕩器的實(shí)現原理和性能,給出了通過(guò)FPGA來(lái)實(shí)現NCO的具體方法,同時(shí)通過(guò)QUARTUSⅡ中的仿真驗證了本設計的正確性。結果證明,用該方法設計的NCO可以輸出多種頻率的信號,同時(shí)也可以減少資源消耗。
fpga相關(guān)文章:fpga是什么
低通濾波器相關(guān)文章:低通濾波器原理
評論