同步時序電路設計中zui關鍵的是時鐘設計,隨著電路規模與速度的提高,對時鐘的周期、占空比、延時和抖動等方面的要求也越來越高。為了順應這需求,Spartan-6系統器件在原有的DCM模塊基礎引入了模擬PLL模塊構成了功能強大、控制靈活的時鐘管理模塊(CMT)。每個CMT模塊包含兩個DCM模塊和一個PLL模塊。
一、器件組成與特性
1.DCM模塊主要有以下功能模塊組成:
a.DLL模塊,主要由延時線和控制邏輯組成。
b.數字頻率合成器,為系統產生豐富的頻率合成信號輸出到CLKFX和CLKFX180。可以提供2~32的倍乘與1~32的分頻系數。
c.數字移相器,可提供粗調的0,90,180,270度移相和具有動態調節能力的相位細調。
d.數字頻譜合成器,產生擴頻時鐘減少電磁干擾(EMI)。
Spartan-6DCM模塊提供給用戶的設計原語有DCM_SP和DCM_CLKGEN,DCM_SP在Spartan-3EFPGA器件中也有,而DCM_CLKGEN是Spartan-6新增的,可以用產生動態的頻率合成信號和擴頻時鐘。
2.PLL模塊,有一400MHz~1000MHz壓控振蕩器(VCO),可提供8種移相(0°,45°,90°,135°,180°,225°,270°,315°)和6個可獨立編程倍乘與分頻系數的輸出信號。提供給用戶的設計原語有PLL_BASE和PLL_ADV,PLL_BASE是單獨使用PLL模塊zui常調用的原語,允許使用PLL的zui常用特性,PLL_ADV包括PLL_BASE所有的特性之外,還提供時鐘切換及與DCM的連接。可用于以下工作模式:
a.時鐘網絡去歪斜
b.頻率合成
c.抖動濾波
d.零延時的緩沖
f.PLL與PLL、DCM的級聯
二、使用指南
1.注意時鐘的輸入與輸出范圍,所有應用不能超過范圍.。如器件DCM的DLL模塊的時鐘輸入范圍如下(以下摘自Spartan-6DATASHEET):
速度等級為-1L的為器件5MHz~175MHz。
速度等級為2的為器件5MHz~250MHz。
速度等級為3和4的為器件5MHz~280MHz。
DCM的DLL模塊的時鐘輸出范圍如下:
CLKOUT_FREQ_CLK0與CLKOUT_FREQ_CLK180為5MHz~250MHz(等級2)或5MHz~280MHz(等級3或4);
CLKOUT_FREQ_CLK90與CLKOUT_FREQ_CLK270為5MHz~200MHz;
CLKOUT_FREQ_2X與CLKOUT_FREQ_2X180為0.3125MHz~166MHz(等級2)或0.3125MHz~186MHz(等級3或4);
DCM的DFS模塊的時鐘輸入范圍如下:
速度等級為2的為器件0.5MHz~333MHz。
速度等級為3和4的為器件0.5MHz~375MHz。
DCM的DFS模塊的時鐘輸出范圍如下:
CLKOUT_FREQ_FX與CLKOUT_FREQ_FX180為5MHz~333MHz(等級2)或5MHz~375MHz(等級3或4);
PLL模塊的zui小的輸入時鐘頻率為19MHz,zui大輸入時鐘頻率為375MHz(從全局時鐘輸入,速度等級2),400MHz(從全局時鐘輸入,速度等級3),450MHz(從I/O時鐘輸入,速度等級2),525MHz(從I/O時鐘輸入,速度等級3)。
PLL模塊的zui小的輸出時鐘頻率為3.125MHz,zui大輸入時鐘頻率為從BUFGMUX輸出為375MHz(速度等級2)或400MHz(速度等級3或4),從BUFPLL輸出為950MHz(速度等級2)或1050MHz(速度等級3)或1080MHz(速度等級4)。
無論什么時候都不能使VCO超出范圍,Spartan-6器件VCO的頻率范圍為400MHz~1000MHz(等級2),400MHz~1050MHz(等級3),400MHz~1080MHz(等級4),
2.PLL或DCM的選擇使用問題
PLL和DCM有類似的功能,又有各自的特性,在應用中什么時候選擇使用PLL模塊較好,什么時候選擇使用DCM模塊較好呢?一般認為PLL模塊有六組輸出時鐘,在多時鐘的應用中使用PLL比較合適,另外PLL對抖動濾波效果比較好,如要實現抖動濾波也推薦使用PLL模塊。Spartan-6PLL模塊還提供時鐘切換功能,在需要動態切換時鐘源的應用中尤為合適。DCM在相位調整上功能比較全,既有粗調的0,90,180,270度移相,又有動態調節的相位細調能力,在實現時鐘相位調整的時候推薦使用DCM模塊。其它情況如頻率合成、調整時鐘占空比,消除時鐘延時使用PLL模塊或DCM模塊都可以。
3.DCM除對輸入時鐘的頻率有要求外,對輸入時鐘的抖動也有要求,如果超出限制的話會導致DCM失鎖,失鎖后需要用戶將DCM復位。抖動主要分兩類:
a.Cycle-to-cyclejitter
b.Periodjitter
Cycle-to-cyclejitter一般為±150ps(FCLKFX>150MHz)或±3000ps(FCLKFX<150MHz),
Periodjitter一般為±1ns.具體參見Spartan-6DATASHEET。
如果輸入時鐘的抖動過大,建議先經過PLL模塊進行抖動濾波。
4.PLL與DCM的級聯選擇
a.PLL輸出驅動DCM模塊,優點是在輸入DCM模塊前可減少輸入時鐘的抖動,同時又可以使用戶能構訪問所有DCM模塊的輸出信號,一個PLL可以驅動多個DCM模塊,并不要求PLL與DCM都是在同一CMT模塊內。
b.DCM模塊輸出驅動PLL模塊,這種情況可以減少輸入時鐘和DCM時鐘輸出的總體抖動。如果DCM輸出直接連到PLL輸入,要求PLL與DCM都是在同一CMT模塊內,這種情況可減少的本地噪聲與布線資源。如果PLL與DCM不在同一CMT模塊內,DCM輸出必須經過BUFG緩沖后連到PLL。由于PLL輸入信號的限制,zui多只有兩個DCM輸出信號可以連到一個PLL模塊.
c.PLL與PLL的級聯,級聯PLL可以產生更大范圍的時鐘,兩個PLL的級聯也要通過BUFG緩沖,此時器件通路的抖動zui小。