新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 如何使用DCM,DCM使用說明

        如何使用DCM,DCM使用說明

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

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

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

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

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

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

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

        DCM_BASE組件可以通過Xilinx的IP Wizard向導產生,也可以直接通過下面的例化代碼直接。其Verilog的例化代碼模板為:

        // DCM_BASE: 基本數字時鐘管理電路(Base Digital Clock Manager Circuit)
        // 適用芯片:Virtex-4/5
        // Xilinx HDL庫向導版本,ISE 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之間的任意整數
        .CLKFX_MULTIPLY(4),
        // CLKFX信號的倍頻比,可為2到32之間的任意整數
        .CLKIN_DIVIDE_BY_2(FALSE),
        // 輸入信號2分頻的使能信號,可設置為TRUE/FALSE
        .CLKIN_PERIOD(10.0),
        // 指定輸入時鐘的周期,單位為ns,數值范圍為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),
        // 抖動調整,可設置為源同步、系統同步或0~15之間的任意整數
        .DFS_FREQUENCY_MODE(LOW),
        // 數字頻率合成模式,可設置為LOW或HIGH 兩種頻率模式
        .DLL_FREQUENCY_MODE(LOW),
        // DLL的頻率模式,可設置為LOW、HIGH或HIGH_SER
        .DUTY_CYCLE_CORRECTION(TRUE),
        // 設置是否采用雙周期校正,可設為TRUE或FALSE
        .FACTORY_JF(16'hf0f0),
        // 16比特的JF因子參數
        .PHASE_SHIFT(0),
        // 固定相移的數值,可設置為 -255 ~ 1023之間的任意整數
        .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), // 經過180度相移的DCM模塊2倍頻輸出
        .CLK90(CLK90), // 90度移相的DCM時鐘輸出
        .CLKDV(CLKDV), // DCM模塊的分頻輸出,分頻比為CLKDV_DIVIDE
        .CLKFX(CLKFX), // DCM合成時鐘輸出,分頻比為(M/D)



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 兴海县| 屏东县| 芜湖县| 宜川县| 股票| 阳信县| 永年县| 中阳县| 米易县| 安平县| 原平市| 偃师市| 那坡县| 安福县| 安图县| 介休市| 宣武区| 保亭| 冀州市| 剑川县| 沐川县| 兴化市| 外汇| 神农架林区| 金山区| 汉中市| 闽清县| 武邑县| 仁寿县| 右玉县| 电白县| 阳原县| 通城县| 米林县| 台中市| 黑山县| 海伦市| 大余县| 南康市| 青岛市| 南安市|