新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的DDS設計及實現

基于FPGA的DDS設計及實現

作者: 時間:2010-09-20 來源:網絡 收藏

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

本文引用地址:http://2s4d.com/article/191571.htm


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

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




關鍵詞: FPGA DDS

評論


相關推薦

技術專區(qū)

關閉