新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > DCM簡(jiǎn)介及其使用方法

DCM簡(jiǎn)介及其使用方法

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

本文引用地址:http://butianyuan.cn/article/149373.htm

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

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

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

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

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

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

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

// DCM_BASE: 基本數(shù)字時(shí)鐘管理電路(Base Digital Clock Manager Circuit)
// 適用芯片:Virtex-4/5
// Xilinx HDL庫(kù)向?qū)О姹荆琁SE 9.1
DCM_BASE #(
.CLKDV_DIVIDE(2.0),
// CLKDV分頻比可以設(shè)置為: 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信號(hào)的分頻比,可為1到32之間的任意整數(shù)
.CLKFX_MULTIPLY(4),
// CLKFX信號(hào)的倍頻比,可為2到32之間的任意整數(shù)
.CLKIN_DIVIDE_BY_2(FALSE),
// 輸入信號(hào)2分頻的使能信號(hào),可設(shè)置為T(mén)RUE/FALSE
.CLKIN_PERIOD(10.0),
// 指定輸入時(shí)鐘的周期,單位為ns,數(shù)值范圍為1.25~1000.00。
.CLKOUT_PHASE_SHIFT(NONE),
// 指定移相模式,可設(shè)置為NONE或FIXED
.CLK_FEEDBACK(1X),
// 指定反饋時(shí)鐘的頻率,可設(shè)置為NONE、1X或2X。相應(yīng)的頻率關(guān)系都是針對(duì)CLK0而言的。
.DCM_PERFORMANCE_MODE(MAX_SPEED),
// DCM模塊性能模式,可設(shè)置為 MAX_SPEED 或 MAX_RANGE
.DESKEW_ADJUST(SYSTEM_SYNCHRONOUS),
// 抖動(dòng)調(diào)整,可設(shè)置為源同步、系統(tǒng)同步或0~15之間的任意整數(shù)
.DFS_FREQUENCY_MODE(LOW),
// 數(shù)字頻率合成模式,可設(shè)置為L(zhǎng)OW或HIGH 兩種頻率模式
.DLL_FREQUENCY_MODE(LOW),
// DLL的頻率模式,可設(shè)置為L(zhǎng)OW、HIGH或HIGH_SER
.DUTY_CYCLE_CORRECTION(TRUE),
// 設(shè)置是否采用雙周期校正,可設(shè)為T(mén)RUE或FALSE
.FACTORY_JF(16'hf0f0),
// 16比特的JF因子參數(shù)
.PHASE_SHIFT(0),
// 固定相移的數(shù)值,可設(shè)置為 -255 ~ 1023之間的任意整數(shù)
.STARTUP_WAIT(FALSE)
// 等DCM鎖相后再延遲配置DONE管腳,可設(shè)置為T(mén)RUE/FALSE
) DCM_BASE_inst (
.CLK0(CLK0), // 0度移相的DCM時(shí)鐘輸出
.CLK180(CLK180), // 180度移相的DCM時(shí)鐘輸出
.CLK270(CLK270), // 270度移相的DCM時(shí)鐘輸出
.CLK2X(CLK2X), // DCM模塊的2倍頻輸出
.CLK2X180(CLK2X180), // 經(jīng)過(guò)180度相移的DCM模塊2倍頻輸出
.CLK90(CLK90), // 90度移相的DCM時(shí)鐘輸出
.CLKDV(CLKDV), // DCM模塊的分頻輸出,分頻比為CLKDV_DIVIDE
.CLKFX(CLKFX), // DCM合成時(shí)鐘輸出,分頻比為(M/D)



關(guān)鍵詞: 使用方法 及其 簡(jiǎn)介 DCM

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉