新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > DCM簡介及其使用方法

        DCM簡介及其使用方法

        作者: 時間:2012-03-21 來源:網(wǎng)絡 收藏

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

        內(nèi)部構(gòu)成一覽
        1. DLL 延遲鎖定環(huán)
        說是延遲鎖定環(huán),但是我覺得叫做延遲補償環(huán)更加貼切。因為DLL的主要功能是消除輸入時鐘和輸出時鐘之間的延遲,使得輸入輸出在外部看來是透明連接。
        實現(xiàn)這種功能的原理是:DLL通過輸出時鐘CLK0或者CLK2X觀察實際的線路延遲,然后在內(nèi)部進行補償。
        一句話,DLL的核心功能是無延遲。
        DLL的輸出是CLK0, CLK90, CLK180, CLK270, CLK2X, CLK2X180, 和 CLKDV。

        2. DFS 數(shù)字頻率綜合
        DFS的主要功能是利用CLKIN合成新的頻率。
        合成的參數(shù)是:M(multiplier)和 D(divisor)。通過MD的組合實現(xiàn)各種倍頻和分頻。
        如果不使用DLL,則DFS的合成頻率和CLKIN就不具有相位關系,因為沒有延遲補償,相位就不再同步。

        3. PS 相位偏移
        注意這個相位偏移不是DLL中輸出CLK90/180/270用的。這個PS可以令的所有9個輸出信號都進行相位的偏移。偏移的單位是CLKIN的一個分數(shù)。
        也可以在運行中進行動態(tài)偏移調(diào)整,調(diào)整的單位是時鐘的1/256。
        這個功能我們平時不常用。

        4. 狀態(tài)邏輯
        這個部分由 LOCKED 信號和 STATUS[2:0] 構(gòu)成。LOCKED信號指示輸出是否和CLKIN同步(同相)。STATUS則指示DLL和PS的狀態(tài)。

        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////

        _BASE
        DCM_BASE是基本數(shù)字時鐘管理模塊的縮寫,是相位和頻率可配置的數(shù)字鎖相環(huán)電路,常用于FPGA系統(tǒng)中復雜的時鐘管理。如果需要頻率和相位動態(tài)重配置,則可以選用DCM_ADV原語;如果需要相位動態(tài)偏移,可使用DCM_PS原語。DCM系列原語的RTL結(jié)構(gòu)如圖3-8所示。
        模塊接口信號的說明如表3-8所列。

        DCM_BASE組件可以通過Xilinx的IP Wizard向?qū)Мa(chǎn)生,也可以直接通過下面的例化代碼直接使用。其Verilog的例化代碼模板為:

        // DCM_BASE: 基本數(shù)字時鐘管理電路(Base Digital Clock Manager Circuit)
        // 適用芯片:Virtex-4/5
        // Xilinx HDL庫向?qū)О姹荆琁SE 9.1
        DCM_BASE #(
        .CLKDV_DIVIDE(2.0),
        // CLKDV分頻比可以設置為: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
        // 7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
        .CLKFX_DIVIDE(1), // Can be any integer from 1 to 32
        // CLKFX信號的分頻比,可為1到32之間的任意整數(shù)
        .CLKFX_MULTIPLY(4),
        // CLKFX信號的倍頻比,可為2到32之間的任意整數(shù)
        .CLKIN_DIVIDE_BY_2(FALSE),
        // 輸入信號2分頻的使能信號,可設置為TRUE/FALSE
        .CLKIN_PERIOD(10.0),
        // 指定輸入時鐘的周期,單位為ns,數(shù)值范圍為1.25~1000.00。
        .CLKOUT_PHASE_SHIFT(NONE),
        // 指定移相模式,可設置為NONE或FIXED
        .CLK_FEEDBACK(1X),
        // 指定反饋時鐘的頻率,可設置為NONE、1X或2X。相應的頻率關系都是針對CLK0而言的。
        .DCM_PERFORMANCE_MODE(MAX_SPEED),
        // DCM模塊性能模式,可設置為 MAX_SPEED 或 MAX_RANGE
        .DESKEW_ADJUST(SYSTEM_SYNCHRONOUS),
        // 抖動調(diào)整,可設置為源同步、系統(tǒng)同步或0~15之間的任意整數(shù)
        .DFS_FREQUENCY_MODE(LOW),
        // 數(shù)字頻率合成模式,可設置為LOW或HIGH 兩種頻率模式
        .DLL_FREQUENCY_MODE(LOW),
        // DLL的頻率模式,可設置為LOW、HIGH或HIGH_SER
        .DUTY_CYCLE_CORRECTION(TRUE),
        // 設置是否采用雙周期校正,可設為TRUE或FALSE
        .FACTORY_JF(16'hf0f0),
        // 16比特的JF因子參數(shù)
        .PHASE_SHIFT(0),
        // 固定相移的數(shù)值,可設置為 -255 ~ 1023之間的任意整數(shù)
        .STARTUP_WAIT(FALSE)
        // 等DCM鎖相后再延遲配置DONE管腳,可設置為TRUE/FALSE
        ) DCM_BASE_inst (
        .CLK0(CLK0), // 0度移相的DCM時鐘輸出
        .CLK180(CLK180), // 180度移相的DCM時鐘輸出
        .CLK270(CLK270), // 270度移相的DCM時鐘輸出
        .CLK2X(CLK2X), // DCM模塊的2倍頻輸出
        .CLK2X180(CLK2X180), // 經(jīng)過180度相移的DCM模塊2倍頻輸出
        .CLK90(CLK90), // 90度移相的DCM時鐘輸出
        .CLKDV(CLKDV), // DCM模塊的分頻輸出,分頻比為CLKDV_DIVIDE
        .CLKFX(CLKFX), // DCM合成時鐘輸出,分頻比為(M/D)



        評論


        相關推薦

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

        關閉
        主站蜘蛛池模板: 安乡县| 泗阳县| 郓城县| 翁牛特旗| 西城区| 项城市| 舒城县| 华坪县| 连平县| 阿拉善左旗| 普洱| 彰化市| 大渡口区| 育儿| 仙游县| 礼泉县| 合作市| 同江市| 海安县| 济阳县| 筠连县| 义马市| 马山县| 郎溪县| 中超| 济宁市| 克山县| 屯门区| 上虞市| 平顺县| 梁平县| 石林| 马关县| 乐亭县| 公安县| 西安市| 神木县| 张掖市| 雷山县| 黔江区| 平昌县|