新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的DDS設計及實現(xiàn)

基于FPGA的DDS設計及實現(xiàn)

作者: 時間:2010-09-20 來源:網(wǎng)絡 收藏

ADC轉(zhuǎn)換芯片處理后的8位數(shù)字信號,為了使合成的頻率較大,末尾補4個O作為參數(shù)化模塊lpm_add_sub的12位輸入datai。由于ADC信號輸出的是8位二進制偏移碼,與計算機處理的二進制補碼形式不同,需將二進制偏移碼轉(zhuǎn)換成二進制補碼,在這里與另一路輸入信號常數(shù)2 048做減法,就能達到求補的目的,并輸出12位有符號數(shù)。
12位的輸出接入lpm_mult模塊,lpm_mult的另一路輸入為12位任意數(shù)輸入。乘法器的輸出直接影響累加器累加相位的速度。當乘以一個比較大的數(shù),則頻率變化加快。
同理,為了使合成頻率較大,乘法器的24位輸出在末尾補O成為32位數(shù)datab送到累加模塊altaccumulate中。為了節(jié)省ROM容量,最后取altaccumulate輸出的高10位作為ROM查找表的地址信號。累加控制模塊的時序仿真如圖3所示。

本文引用地址:http://butianyuan.cn/article/191571.htm


2.2 ROM查找表的設計
針對不同的可編程器件,ROM查找表的設計采用的方法也不相同。主要是基于lpm_rom和VHDL選擇語句這兩種方法。使用lpm_rom的波形存儲表只需要產(chǎn)生數(shù)據(jù)文件*.mif,然后直接在定制lpm_rom時,添加數(shù)據(jù)文件即可。不過這種方法在支持內(nèi)部嵌入式陣列塊(EAB)時才可以使用;使用VHDL選擇語句比較直觀,但當輸入數(shù)據(jù)量大的時候,這種方法是比較繁瑣的。此次設計采用第一種方法。
mif文件是在編譯和仿真過程中作為存儲器(ROM或RAM)初始化輸入的文件,即memory initialization file。創(chuàng)建mif文件的方式有很多種,在這次設計中,在Matlab中采用C語言來生成mif文件。mif文件編寫格式如下:

通常相位累加器的位數(shù)N很大,實際設計中受到體積和成本的限制。為了節(jié)省ROM的容量采用相位截斷的方法,一般只取累加器輸出的高幾位作為ROM的尋址地址。設計中取累加結(jié)果的高10(M=10)位來進行查表,也就是說正余弦ROM有210=1 024個尋址地址,數(shù)據(jù)寬度為12。如圖4所示,設計了2個lpm_rom模塊,分別是sin波形存儲器和cos波形存儲器。




關(guān)鍵詞: FPGA DDS

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉