新聞中心

        EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的直接數(shù)字頻率合成技術(shù)設(shè)計(jì)

        基于FPGA的直接數(shù)字頻率合成技術(shù)設(shè)計(jì)

        作者: 時(shí)間:2009-08-28 來(lái)源:網(wǎng)絡(luò) 收藏

        2?。模模釉冢疲校牵林械膶?shí)現(xiàn)

        考慮到本系統(tǒng)的規(guī)模以及以后的擴(kuò)展需要,該系統(tǒng)中的DDS電路采用VHDL硬件描述語(yǔ)言來(lái)實(shí)現(xiàn),因?yàn)椋郑龋模陶Z(yǔ)言設(shè)計(jì)的電路模塊可以方便地移植到不同的FPGA芯片中。由于硬件原因,本系統(tǒng)的最高頻率為100kHz,因此,采用常規(guī)設(shè)計(jì)即可滿足要求,但若要應(yīng)用于高速系統(tǒng),還要采用一些提高系統(tǒng)運(yùn)行速度的措施,如采用流水線技術(shù),即在設(shè)計(jì)中把延時(shí)較大的組合邏輯塊切割成兩塊大致相等的組合邏輯塊,并在這兩個(gè)邏輯塊中插入觸發(fā)器,也可通過(guò)多個(gè)觸發(fā)器時(shí)鐘來(lái)提高系統(tǒng)速度,還可以采用ALTREA 公司的FPGA器件所特有的進(jìn)位鏈來(lái)設(shè)計(jì)高速電路。

        圖2所示為一個(gè)具有頻率、相位與幅度調(diào)制的DDS系統(tǒng)的FPGA組成框圖。它的頻率調(diào)制可以在調(diào)諧寄存器與相位累加器之間插入一加法器來(lái)實(shí)現(xiàn),頻率調(diào)制與相位調(diào)制有相同的分辨率,因此,頻率可以覆蓋整個(gè)調(diào)諧頻段。相位調(diào)制器可通過(guò)在相位累加器后插入一個(gè)加法器來(lái)實(shí)現(xiàn)。幅度調(diào)制則是在正弦查找表后插入一個(gè)乘法器來(lái)實(shí)現(xiàn)。該系統(tǒng)具有高精度、高穩(wěn)定性等特點(diǎn)。

        2.1 ROM查找表的設(shè)計(jì)

        ROM查找表在整個(gè)設(shè)計(jì)中是一個(gè)比較重要的部分。為了保證波形的平滑,設(shè)計(jì)時(shí)可將一個(gè)周期分為1024個(gè)點(diǎn)。但是,點(diǎn)數(shù)太多時(shí),用文本方式輸入可能有很多困難。因此,應(yīng)當(dāng)用C語(yǔ)言描述正弦方程式,最后再將其轉(zhuǎn)化為所需的mif文件。以下是其C語(yǔ)言的源程序:

        main()

        {int i;float s;

        for(i=0;i<1024;i++)

        { s = sin(atan(1)*8*i/1024);

        ......

        2.2 DDS主模塊設(shè)計(jì)

        DDS主模塊部分可根據(jù)上述原理,采用VHDL來(lái)描述,以下是部分源程序:

        BEGIN

        PROCESS (clk)

        BEGIN

        IF(clk'event AND clk='1') THEN

        \\時(shí)鐘上升沿觸發(fā)

        freqw<=freqin;

        acc<=acc+freqw; \\開(kāi)始累加

        END IF;

        END PROCESS;

        romaddr<=acc(adder width-1 downto adder width-10); \\累加結(jié)果的高11位作為

        查找表的地址位

        i_(kāi)rom:lpm_rom \\調(diào)用ROM查找表

        ......



        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 易门县| 中山市| 招远市| 新郑市| 和静县| 梁河县| 旅游| 扎鲁特旗| 衡南县| 丰都县| 隆安县| 深圳市| 沈丘县| 台安县| 新平| 黄梅县| 松江区| 观塘区| 沈丘县| 汉沽区| 奉节县| 平邑县| 宜兰县| 长兴县| 平塘县| 光泽县| 曲松县| 教育| 宁化县| 沅江市| 萨嘎县| 武川县| 丰城市| 新津县| 六枝特区| 西盟| 息烽县| 江永县| 莆田市| 深州市| 敦煌市|