基于FPGA的DDFS與DDWS兩種實(shí)現(xiàn)方式
2 數(shù)字實(shí)現(xiàn)
2.1 DDFS的數(shù)字實(shí)現(xiàn)
由于D/A之前都是數(shù)字部分,為了分析其原理數(shù)字控制的實(shí)現(xiàn)過程,參考如圖2所示結(jié)構(gòu)。
相位累加器是由一個(gè)加法器和一個(gè)寄存器構(gòu)成,假設(shè)累加器位數(shù)N=6,那么000000代表0弧度,000001代表弧度,相應(yīng)的000010代表(2π/64)*2弧度,111111代表(2π/64)*63弧度。若頻率控制字FCW=000011,并且累加器中的初始相位為O,則經(jīng)過N=21個(gè)時(shí)鐘周期后形成的二進(jìn)制序列為000000,000011,…,111111,對(duì)應(yīng)的相位分別為O,(2π/64)*3,…,(2π/64)*63。當(dāng)?shù)?2個(gè)時(shí)鐘周期到來時(shí),加法器溢出,所有位數(shù)重置為0,另一個(gè)循環(huán)周期開始。查找表可以用FPGA中BlockRAM做成,前面的二進(jìn)制序列作為地址,相位對(duì)應(yīng)的幅度值作為地址對(duì)應(yīng)的值存儲(chǔ)起來,這樣在時(shí)鐘頻率的控制下通過二進(jìn)制序列可從BlockRAM中讀取相應(yīng)的幅值,經(jīng)過D/A后就為所需要的模擬波形。圖3為FPGA綜合后的RTL級(jí)電路圖。
2.2 DDWS的數(shù)字買現(xiàn)
DDWS的數(shù)字實(shí)現(xiàn)較為簡(jiǎn)單,把通過Matlab抽樣量化后的數(shù)據(jù)直接保存為.BAT數(shù)據(jù)格式,然后在FPGA中用IP核的BlockRAM生成一個(gè)ROM,把數(shù)據(jù)存儲(chǔ)進(jìn)去,這樣就可以根據(jù)時(shí)鐘要求輸出需要的數(shù)據(jù)了。
圖4為FPGA仿真后的RTL級(jí)電路圖。
評(píng)論