基于FPGA和DDS技術(shù)的任意波形發(fā)生器設(shè)計
2.1 DDS模塊的基本結(jié)構(gòu)設(shè)計
整個DDS系統(tǒng)的設(shè)計采用層次結(jié)構(gòu),采用VHDL與原理圖輸入相結(jié)合的方法,DDS基本結(jié)構(gòu)如圖2所示。
下面就各個部分的設(shè)計分別介紹:該設(shè)計中采用的頻率字為32位,即N=32,RAM為256×8位,故ROM的地址線寬M=8,輸出數(shù)據(jù)線寬L=8。由于RAM地址線為8位(28=256),而相位累加器的輸出為32位,為了保證它們之間的對應(yīng),將相位累加器的高8位與RAM的地址線相連。這樣存在多個相位地址對應(yīng)同一個RAM地址的情況,如果把相位累加器輸出的所有位數(shù)全部用來查詢RAM,那么RAM的容量會非常的大,如此巨大的RAM表容量在實際工作中難以實現(xiàn)。因此,常使用相位地址高位來尋址,舍去低位的相位截斷方法。當(dāng)然,這種方法會引入一定的噪聲,但
對于節(jié)省的資源來說,這種方法還是值得的。
2.2 DDS模塊的總體設(shè)計
該設(shè)計主要由接口部件、頻率及控制部件、相位累加器、波形數(shù)據(jù)產(chǎn)生部件和輸出選擇器組成,如圖3所示。
接口部件主要完成接收單片機發(fā)送過來的頻率參數(shù)及控制參數(shù)其中A0為數(shù)據(jù)通道和地址通道選擇位,EN為數(shù)據(jù)寫入使能。頻率及控制部件主要完成頻率控制字及輸出控制參數(shù)的存儲,由5個帶寫使能的8位同步寄存器組成。相位累加器為DDS主要部件實現(xiàn)相位的累加。波形數(shù)據(jù)產(chǎn)生部件的功能是將相位數(shù)據(jù)轉(zhuǎn)化為所需的波形數(shù)據(jù),其中正弦波和三角波數(shù)據(jù)由查ROM表獲得,鋸齒波數(shù)據(jù)直接由相位累加器輸出得到,方波數(shù)據(jù)是相位累加器輸出數(shù)據(jù)與設(shè)定數(shù)據(jù)比較獲得。輸出選擇器的SEL端接到控制參數(shù)寄存器,它的4個數(shù)值分別選擇4種不同的波形輸出。
3 DDS仿真實驗結(jié)果
設(shè)置輸出100 kHz正弦波,由式,得,通過計算K=21 477 072=147B6DOH,按照此數(shù)據(jù)設(shè)置好頻率控制寄存器的參數(shù),其仿真波形如圖4、圖5所示。
評論