專利名稱:一種改進(jìn)型dds信號發(fā)生器及其信號發(fā)生方法
技術(shù)領(lǐng)域:
本發(fā)明屬于儀器儀表領(lǐng)域,涉及一種改進(jìn)型DDS信號發(fā)生器及其信號發(fā)生方法。
背景技術(shù):
DDS信號發(fā)生器,即直接數(shù)字式頻率合成器,與傳統(tǒng)的頻率合成器相比,DDS信號發(fā)生器具有低成本、高分辨率和快速轉(zhuǎn)換時(shí)間等優(yōu)點(diǎn),廣泛使用在典型與電子儀器領(lǐng)域。當(dāng)前的DDS信號發(fā)生器相位累加器輸出數(shù)據(jù)直接送入存儲器地址輸入,導(dǎo)致所需要的波形存儲器容量大,且頻率步進(jìn)值大,不容易調(diào)節(jié)。
發(fā)明內(nèi)容
本發(fā)明的目的在于,針對傳統(tǒng)的DDS信號發(fā)生器,提出一種改進(jìn)型DDS信號發(fā)生器及其信號發(fā)生方法,旨在減小頻率步進(jìn)值,節(jié)省存儲空間。一種改進(jìn)型DDS信號發(fā)生器,包括晶振、FPGA、SRAM和D/A轉(zhuǎn)換器。FPGA接收晶振輸入的時(shí)鐘信號和外部輸入的頻率字,F(xiàn)PGA進(jìn)行處理后輸入至SRAM,SRAM的輸出與D/A轉(zhuǎn)換器信號連接。所述的FPGA由鎖相環(huán)、相位累加器和除法器組成;鎖相環(huán)接收晶振輸入的時(shí)鐘信號,鎖相環(huán)輸出的信號作為相位累加器的時(shí)鐘,相位累加器接收外部輸入的頻率字,相位累加器的輸出作為除法器的輸入,除法器輸出信號作為FPGA的輸出。利用上述的DDS信號發(fā)生器產(chǎn)生DDS信號的方法包括以下步驟
步驟Al 將輸入到FPGA頻率為/x的時(shí)鐘輸入,經(jīng)鎖相環(huán),輸出產(chǎn)生頻率為/。lk&CLK_ DIV信號,其中/。lk頻率為/x頻率的十分之一。步驟A2 =FPGA將外部輸入的頻率字存入FPGA內(nèi)建的REG_FW步長寄存器中,將輸入的相位初始值存入FPGA內(nèi)建的REG_PHASE相位寄存器中。步驟A3 在FPGA中內(nèi)建相位累加寄存器REG_ACC,設(shè)定相位累加器寄存器REG_ ACC的初始值為REG_PHASE相位寄存器所保存的數(shù)值。步驟A4 相位累加器寄存器REG_ACC在CLK_DIV信號的上升沿時(shí),以REG_FW步長寄存器中的數(shù)值為步長自增,并將相位累加器寄存器REG_ACC對累加器模值取模,即數(shù)值 M_MAX取模,并將所得的數(shù)值存入相位累加器寄存器REG_ACC。步驟A5 取出相位累加器寄存器REG_ACC中的數(shù)值,將相位累加器寄存器REG_ ACC的數(shù)值乘以36000,再整除累加器模值M_MAX后賦值給正弦ROM存儲表地址寄存器R0M_ ADDR ;所述的正弦ROM存儲表存儲在SRAM中。步驟A6 將正弦ROM存儲表內(nèi)地址為R0M_ADDR中存儲的數(shù)據(jù)輸出到D/A轉(zhuǎn)換器的輸入端,D/A轉(zhuǎn)換器的輸出即為DDS信號。所述的相位累加器寄存器REG_ACC的取模運(yùn)算實(shí)現(xiàn)方法具體是
步驟Bl 判斷相位累加器寄存器REG_ACC中的數(shù)值是否大于累加器模值11_嫩乂,如果是則執(zhí)行步驟B2,否則執(zhí)行步驟B3。
步驟B2 將相位累加器寄存器REG_ACC中的數(shù)值減去累加器模值M_MAX后賦值給相位累加器寄存器REG_ACC。步驟B3 相位累加器寄存器REG_ACC中的數(shù)值保持不變。進(jìn)一步說,/x時(shí)鐘輸入頻率為36MHz。進(jìn)一步說,累加器模值M_MAX為36000000,是36000的整數(shù)倍。進(jìn)一步說,正弦ROM存儲表地址寄存器R0M_ADDR數(shù)值的整除運(yùn)算使用14級流水線除法器實(shí)現(xiàn)。與現(xiàn)有的技術(shù)相比,本發(fā)明的有益效果是減小了波形存儲器的容量,降低了頻率步進(jìn)值。
圖1是本發(fā)明的硬件框圖; 圖2是本發(fā)明的方法實(shí)現(xiàn)框圖。
具體實(shí)施例方式以下結(jié)合附圖對本發(fā)明作進(jìn)一步說明。如圖1所示,改進(jìn)型DDS信號發(fā)生器包括晶振、FPGA、SRAM、D/A轉(zhuǎn)換器;FPGA接收晶振輸入的時(shí)鐘信號和外部輸入的數(shù)據(jù),F(xiàn)PGA將輸入處理之后輸出給SRAM地址輸入端, SRAM數(shù)據(jù)輸出端輸出數(shù)據(jù)給D/A轉(zhuǎn)換器,D/A轉(zhuǎn)換器輸出的信號就是所需要的信號;其中 FPGA包括鎖相環(huán)、相位累加器和除法器,鎖相環(huán)接收FPGA接收的晶振輸入的時(shí)鐘信號,鎖相環(huán)輸出的信號作為相位累加器的時(shí)鐘,相位累加器的輸出作為除法器的輸入,除法器輸出信號直接送出FPGA。如圖2所示,上述信號發(fā)生器產(chǎn)生DDS信號的具體步驟
步驟Al 將輸入到FPGA頻率為36MHz的時(shí)鐘輸入,經(jīng)鎖相環(huán),輸出產(chǎn)生頻率為360KHz 的CLK_DIV信號。步驟A2 =FPGA將外部輸入的頻率字存入FPGA內(nèi)建的REG_FW步長寄存器中,將輸入的相位初始值存入FPGA內(nèi)建的REG_PHASE相位寄存器中,其中REG_FW步長寄存器是用于調(diào)節(jié)輸出信號頻率。步驟A3 在FPGA中內(nèi)建相位累加寄存器REG_ACC,設(shè)定相位累加器寄存器REG_ ACC的初始值為REG_PHASE相位寄存器所保存的數(shù)值,其中REG_PHASE相位寄存器是用來調(diào)整輸出信號相位。步驟A4 相位累加器寄存器REG_ACC在CLK_DIV信號的上升沿時(shí),以REG_FW步長寄存器中的數(shù)值為步長自增,并將相位累加器寄存器REG_ACC對累加器模值即數(shù)值 36000000取模,并將所得的數(shù)值存入相位累加器寄存器REG_ACC。步驟A5 取出相位累加器寄存器REG_ACC中的數(shù)值,SRAM地址寄存器R0M_ADDR的數(shù)值等于相位累加器寄存器REG_ACC的數(shù)值乘以36000,再整除累加器模值36000000,其中除法采用了 14級流水線除法器實(shí)現(xiàn)。步驟A6 將SRAM內(nèi)地址為R0M_ADDR中存儲的數(shù)據(jù)輸出到D/A的輸入端,D/A的輸
出端就得到了所需要的信號。
相位累加器寄存器REG_ACC的取模運(yùn)算是這樣實(shí)現(xiàn)的
步驟Bl 判斷相位累加器寄存器REG_ACC中的數(shù)值是否大于累加器模值11_嫩乂,如果是則執(zhí)行步驟B2,否則執(zhí)行步驟B3。步驟B2 相位累加器寄存器REG_ACC中的數(shù)值等于相位累加器寄存器REG_ACC中的數(shù)值減去累加器模值M_MAX。步驟B3 相位累加器寄存器REG_ACC中的數(shù)值不變。
權(quán)利要求
1.一種改進(jìn)型DDS信號發(fā)生器,包括晶振、FPGA、SRAM和D/A轉(zhuǎn)換器,其特征在于FPGA 接收晶振輸入的時(shí)鐘信號和外部輸入的頻率字,F(xiàn)PGA進(jìn)行處理后輸入至SRAM,SRAM的輸出與D/A轉(zhuǎn)換器信號連接;所述的FPGA由鎖相環(huán)、相位累加器和除法器組成;鎖相環(huán)接收晶振輸入的時(shí)鐘信號, 鎖相環(huán)輸出的信號作為相位累加器的時(shí)鐘,相位累加器接收外部輸入的頻率字,相位累加器的輸出作為除法器的輸入,除法器輸出信號作為FPGA的輸出。
2.利用權(quán)利要求1所述的DDS信號發(fā)生器產(chǎn)生DDS信號的方法,其特征在于該方法包括以下步驟步驟Al 將輸入到FPGA頻率為人的時(shí)鐘輸入,經(jīng)鎖相環(huán),輸出產(chǎn)生頻率為/。lk&CLK_ DIV信號,其中/。lk頻率為/x頻率的十分之一;步驟A2 =FPGA將外部輸入的頻率字存入FPGA內(nèi)建的REG_FW步長寄存器中,將輸入的相位初始值存入FPGA內(nèi)建的REG_PHASE相位寄存器中;步驟A3 在FPGA中內(nèi)建相位累加寄存器REG_ACC,設(shè)定相位累加器寄存器REG_ACC的初始值為REG_PHASE相位寄存器所保存的數(shù)值;步驟M 相位累加器寄存器REG_ACC在CLK_DIV信號的上升沿時(shí),以REG_FW步長寄存器中的數(shù)值為步長自增,并將相位累加器寄存器REG_ACC對累加器模值取模,即數(shù)值M_MAX 取模,并將所得的數(shù)值存入相位累加器寄存器REG_ACC ;步驟A5 取出相位累加器寄存器REG_ACC中的數(shù)值,將相位累加器寄存器REG_ACC的數(shù)值乘以36000,再整除累加器模值M_MAX后賦值給正弦ROM存儲表地址寄存器R0M_ADDR ; 所述的正弦ROM存儲表存儲在SRAM中;步驟A6 將正弦ROM存儲表內(nèi)地址為R0M_ADDR中存儲的數(shù)據(jù)輸出到D/A轉(zhuǎn)換器的輸入端,D/A轉(zhuǎn)換器的輸出即為DDS信號。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于步驟4中相位累加器寄存器REG_ACC的取模運(yùn)算實(shí)現(xiàn)方法具體是步驟Bl 判斷相位累加器寄存器REG_ACC中的數(shù)值是否大于累加器模值11_嫩乂,如果是則執(zhí)行步驟B2,否則執(zhí)行步驟B3 ;步驟B2 將相位累加器寄存器REG_ACC中的數(shù)值減去累加器模值M_MAX后賦值給相位累加器寄存器REG_ACC ;步驟B3 相位累加器寄存器REG_ACC中的數(shù)值保持不變。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于/x時(shí)鐘輸入頻率為36MHz。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于累加器模值M_MAX為36000000,是36000 的整數(shù)倍。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于步驟B5中正弦ROM存儲表地址寄存器 R0M_ADDR數(shù)值的整除運(yùn)算使用14級流水線除法器實(shí)現(xiàn)。
全文摘要
本發(fā)明公布了一種改進(jìn)型DDS信號發(fā)生器及其信號發(fā)生方法。目前DDS信號發(fā)生器要產(chǎn)生低頻頻率信號和實(shí)現(xiàn)低頻率步進(jìn),需要使用很大的存儲空間。本發(fā)明中DDS信號發(fā)生器包括晶振、FPGA、SRAM和D/A轉(zhuǎn)換器。FPGA接收晶振輸入的時(shí)鐘信號和外部輸入的頻率字,F(xiàn)PGA進(jìn)行處理后輸入至SRAM,SRAM的輸出與D/A轉(zhuǎn)換器信號連接。FPGA由鎖相環(huán)、相位累加器和除法器組成;鎖相環(huán)接收晶振輸入的時(shí)鐘信號,鎖相環(huán)輸出的信號作為相位累加器的時(shí)鐘,相位累加器接收外部輸入的頻率字,相位累加器的輸出作為除法器的輸入,除法器輸出信號作為FPGA的輸出。本發(fā)明減小了波形存儲器的容量,降低了頻率步進(jìn)值。
文檔編號H03L7/18GK102497205SQ20111038420
公開日2012年6月13日 申請日期2011年11月28日 優(yōu)先權(quán)日2011年11月28日
發(fā)明者何志偉, 鄒宏, 高明煜, 黃健, 黃繼業(yè) 申請人:杭州電子科技大學(xué)