新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于Verilog HDL的DDS設計與仿真

        基于Verilog HDL的DDS設計與仿真

        作者: 時間:2009-07-08 來源:網絡 收藏

        可見,理論上通過設定相位累加器位數N、頻率控制字X和基準時鐘fc的值,就可以得到任一頻率的輸出。

        本文引用地址:http://www.104case.com/article/192002.htm

        頻率分辨率為:fres=fc/2N,由參考時鐘和累加器的位數決定,當參考時鐘的頻率越高,相位累加器的位數越高,所得到的頻率分辨率就越高。

        1.3 方案的選擇

        在利用FPGA制作時,相位累加器是決定性能的一個關鍵部分。一方面可以利用進位鏈來實現快速、高效的電路結構,同時長的進位鏈會減少其他邏輯的布線資源,限制整個系統速度的提高;另一方面可以利用流水線技術提高工作頻率,但系統頻率轉換速度會相對降低。在選擇累加器實現方案時需要綜合考慮。

        正弦波查詢表ROM也是制作的重點。在FPGA中ROM表的尺寸隨著地址位數或數據位數的增加呈指數遞增,如何在滿足性能的前提下節省資源開銷。一方面通過相位累加器的輸出截斷方式,例如從32位的相位累加器結果中提取高16位作為ROM的查詢地址,由此而產生的誤差會對頻譜純度有影響,但是對波形的精度的影響是可以忽略的;另一方面可以根據信號周期對稱性來壓縮ROM的尺寸,這時系統硬件設計復雜度會有所增加。因此,需要選取合適的參數和ROM壓縮技術,在滿足系統性能的前提下使得系統盡量優化。

        2 實現DDS模塊

        2.1 相位累加器

        上述為相位累加器的 功能實現,其中數據寬度為32位。同時利用QuartusⅡ進行波形見圖3。對應的模塊符號見圖4。

        2.2 ROM正弦查詢表

        根據DDS的原理,將正弦波形的量化數據存儲于波形查詢表ROM中,即可完成正弦波發生的功能。Altera公司提供了LPM ROM(ROM兆函數),這里只需借助Matlab生成.mif文件,并加載到LPM ROM中即可得到所需的正弦查詢表ROM。

        在Matlab中,運行下面的語句可以得到儲存正弦波數字幅度值的.mif文件。例如產生214×12 b的正弦波0~27π幅度值,語句如下:

        由此而生成的rom.mif文件內容是正弦波0~2π數字幅度值,但是格式不符合.mif。文件的格式,需要對其進行修改。.mif文件的格式如下:

        這樣通過例化LPM ROM得到了正弦波查詢表ROM的模塊,地址寬度為14位,輸出數據為12位。模塊符號見圖5。

        2.3 DDS頂層模塊的實現

        上述代碼為DDS模塊的 頂層文件。對應的模塊圖見圖6。



        關鍵詞: Verilog HDL DDS 仿真

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 潮安县| 潢川县| 革吉县| 昌平区| 闽清县| 新巴尔虎左旗| 乌兰察布市| 揭西县| 玉环县| 盐亭县| 鹿泉市| 兴化市| 清丰县| 罗甸县| 容城县| 达拉特旗| 蒙山县| 汤阴县| 江达县| 广汉市| 景德镇市| 噶尔县| 丹棱县| 黄山市| 阿拉善右旗| 灌南县| 保定市| 阿克陶县| 鄂托克旗| 兰坪| 阜城县| 兴宁市| 保德县| 六枝特区| 嘉定区| 华蓥市| 隆林| 平湖市| 鲁山县| 烟台市| 宣恩县|