把握DCM、PLL,、PMCD 和MMCM 知識(shí)是穩(wěn)健可靠的時(shí)鐘設(shè)計(jì)策略的基礎(chǔ)。
賽靈思在其FPGA 中提供了豐富的時(shí)鐘資源,大多數(shù)設(shè)計(jì)人員在他們的FPGA 設(shè)計(jì)中或多或少都會(huì)用到,。不過對(duì)FPGA設(shè)計(jì)新手來說, 什么時(shí)候用DCM,、PLL,、PMCD 和MMCM 四大類型中的哪一種,讓他們頗為困惑,。賽靈思現(xiàn)有的FPGA 中沒有一款同時(shí)包含這四種資源(見表1),。

這四大類中的每一種都針對(duì)特定的應(yīng)用,。例如,數(shù)字時(shí)鐘管理器(DCM)適用于實(shí)現(xiàn)延遲鎖相環(huán)(DLL),、數(shù)字頻率綜合器,、數(shù)字移相器或數(shù)字頻譜擴(kuò)展器。DCM 還是鏡像,、發(fā)送或再緩沖時(shí)鐘信號(hào)的理想選擇,。另一種時(shí)鐘資源相位匹配時(shí)鐘分頻器(PMCD) 可用于實(shí)現(xiàn)相位匹配分配時(shí)鐘或相位匹配延遲時(shí)鐘。
鎖相環(huán)(PLL)和混合模式時(shí)鐘管理器(MMCM)處理的工作有許多是相同的,,比如頻率綜合,、內(nèi)外部時(shí)鐘抖動(dòng)濾波、時(shí)鐘去歪斜等,。這兩種資源也可用于鏡像,、發(fā)送或再緩沖時(shí)鐘信號(hào)。
在深思設(shè)計(jì)實(shí)現(xiàn)細(xì)節(jié)時(shí),,把這些通常用法記在心里,,有助于理清時(shí)鐘選擇的思路。對(duì)于長(zhǎng)期產(chǎn)品發(fā)展規(guī)劃而言,,在制定合適的時(shí)鐘策略時(shí),,應(yīng)考慮各個(gè)器件系列之間的兼容性。下面讓我們深入了解一下這些時(shí)鐘資源,。
您可以使用DCM 將時(shí)鐘源的輸入時(shí)鐘信號(hào)相乘,,生成高頻率時(shí)鐘信號(hào)。與此類似,,可以將來自高頻率時(shí)鐘源的輸入時(shí)鐘信號(hào)相除,,生成低頻率時(shí)鐘信號(hào)。
數(shù)字時(shí)鐘管理器
顧名思義,,數(shù)字時(shí)鐘管理器(DCM)是一種用于管理時(shí)鐘架構(gòu)并有助于時(shí)鐘信號(hào)成形和操控的模塊,。DCM 內(nèi)含一個(gè)延遲鎖相環(huán)(DLL),可根據(jù)輸入時(shí)鐘信號(hào),,去除DCM 輸出時(shí)鐘信號(hào)的歪斜,,從而避免時(shí)鐘分配延遲。
DLL 內(nèi)含一個(gè)延遲元件和控制邏輯鏈路,。延遲元件的輸出是輸入時(shí)鐘延遲所得,。延遲時(shí)間取決于延遲元件在延遲鏈路中的位置。這種延遲體現(xiàn)為針對(duì)原始時(shí)鐘的相位改變或相移,,這就是所謂的 “數(shù)字相移”,。圖1 所示的即為Virtex-4 器件中的典型DCM 模塊。根據(jù)Virtex-4 FPGA 用戶指南(UG070,,2.6版本)的介紹,,Virtex-4 中有三種不同的DCM 原語(yǔ),。

一般來說,DLL 與PLL 類似,。但與PLL 不同的是DLL 不含壓控振蕩器(VCO),。PLL 會(huì)一直存儲(chǔ)相位和頻率信息,而DLL 只存儲(chǔ)相位信息,。因此,,DLL 略比PLL 穩(wěn)定。DLL 和PLL 這兩種類型都可以使用模擬和數(shù)字技術(shù)設(shè)計(jì),,或者混合兩種技術(shù)設(shè)計(jì),。但賽靈思器件中的DCM 采用全數(shù)字化設(shè)計(jì)。
由于DCM 可以在時(shí)鐘路徑上引入延遲,,比如您就可使用DCM 可以精確地為DRAM 生成行和列訪問選通信號(hào)的時(shí)序,。與此類似,數(shù)據(jù)總線上的各個(gè)數(shù)據(jù)位可以在不同的時(shí)間到達(dá),。為了正確對(duì)數(shù)據(jù)位采樣,,接收端的時(shí)鐘信號(hào)必須適當(dāng)?shù)嘏c所有數(shù)據(jù)位的到達(dá)保持同步。如果接收器使用發(fā)射時(shí)鐘,,可能會(huì)要求延遲從發(fā)送端到接收端的時(shí)鐘信號(hào),。
有時(shí)設(shè)計(jì)可能需要一個(gè)更高的時(shí)鐘頻率來運(yùn)行FPGA 上的邏輯。但是,,只有低頻率輸出的時(shí)鐘源可以用,。此時(shí)可以使用DCM 將時(shí)鐘源的輸入時(shí)鐘信號(hào)相乘,生成高頻率時(shí)鐘信號(hào),。與此類似,,可以將來自高頻率時(shí)鐘源的輸入時(shí)鐘信號(hào)相除,生成低頻率時(shí)鐘信號(hào),。這種技術(shù)稱為“數(shù)字頻率綜合”,。
設(shè)計(jì)人員使用擴(kuò)頻時(shí)鐘并通過調(diào)制時(shí)鐘信號(hào)來降低時(shí)鐘信號(hào)的峰值電磁輻射。未經(jīng)調(diào)制的時(shí)鐘信號(hào)的峰值會(huì)產(chǎn)生高電磁輻射,。但經(jīng)調(diào)制后,,電磁輻射被擴(kuò)展到一系列時(shí)鐘頻率上,從而降低了所有頻點(diǎn)的輻射,。一般來說,,如果需要滿足一定的最大電磁輻射要求和在FPGA 上執(zhí)行高速處理的時(shí)候(比如說通信系統(tǒng)中接收器使用的解串器),就需要使用擴(kuò)頻時(shí)鐘,。因此,,F(xiàn)PGA 中的DCM 將乘以輸入擴(kuò)頻時(shí)鐘信號(hào),在內(nèi)部生成高頻時(shí)鐘信號(hào),。DCM 的輸出必須準(zhǔn)確地跟隨擴(kuò)頻時(shí)鐘,,以保持相位和頻率對(duì)齊并更新去歪斜和相移。DCM 相位和頻率對(duì)齊的惡化會(huì)降低接收器的歪斜裕量,。
建立時(shí)鐘的鏡像需要將時(shí)鐘信號(hào)送出FPGA 器件,,然后又將它接收回來??梢允褂眠@種方法為多種器件的板級(jí)時(shí)鐘信號(hào)去歪斜,。DCM 能夠把時(shí)鐘信號(hào)從FPGA 發(fā)送到另一個(gè)器件。這是因?yàn)镕PGA 的輸入時(shí)鐘信號(hào)不能直接路由到輸出引腳,,沒有這樣的路由路徑可用,。如果僅需要發(fā)送時(shí)鐘信號(hào),那么使用DCM 將時(shí)鐘信號(hào)發(fā)送到輸出引腳,,可以確保信號(hào)的保真度,。另外也可選擇在時(shí)鐘信號(hào)發(fā)送之前,將DCM 輸出連接到ODDR 觸發(fā)器,。當(dāng)然也可以選擇不使用DCM,,僅使用ODDR 來發(fā)送時(shí)鐘信號(hào)。往往時(shí)鐘驅(qū)動(dòng)器需要將時(shí)鐘信號(hào)驅(qū)動(dòng)到設(shè)計(jì)的多個(gè)組件,。這會(huì)增大時(shí)鐘驅(qū)動(dòng)器的負(fù)荷,,導(dǎo)致出現(xiàn)時(shí)鐘歪斜及其它問題。在這種情況下,,需要采用時(shí)鐘緩沖來平衡負(fù)載,。
時(shí)鐘可以連接到FPGA 上的一系列邏輯塊上。為確保時(shí)鐘信號(hào)在遠(yuǎn)離時(shí)鐘源的寄存器上有合適的上升和下降時(shí)間(從而將輸入輸出時(shí)延控制在允許的范圍內(nèi)),,需要在時(shí)鐘驅(qū)動(dòng)器和負(fù)載之間插入時(shí)鐘緩沖器,。DCM 可用作時(shí)鐘輸入引腳和邏輯塊之間的時(shí)鐘緩沖器。
最后,,還可以使用DCM 將輸入時(shí)鐘信號(hào)轉(zhuǎn)換為差分I/O 標(biāo)準(zhǔn)信號(hào),。例如,DCM 可以將輸入的LVTTL 時(shí)鐘信號(hào)轉(zhuǎn)換為L(zhǎng)VDS 時(shí)鐘信號(hào)發(fā)送出去,。
相位匹配時(shí)鐘分頻器
設(shè)計(jì)人員可使用相位匹配時(shí)鐘分頻器(PMCD)來生成相位匹配的分頻輸入時(shí)鐘信號(hào),。這與分頻時(shí)鐘的DCM 頻率綜合相似。PMCD 還能生成設(shè)計(jì)中相位匹配但有延遲的時(shí)鐘信號(hào),。在后一種情況下,,PCMD 能夠在輸入時(shí)鐘信號(hào)和其它PMCD 輸入時(shí)鐘信號(hào)之間保持邊緣對(duì)齊、相位關(guān)系和歪斜,。與DCM 不同的是,,在分頻器的值可配置的情況下,賽靈思器件中現(xiàn)有的PMCD 生成的時(shí)鐘信號(hào)僅按2、4 和8 分頻,。這意味著PMCD 生成的時(shí)鐘信號(hào)的頻率是輸入時(shí)鐘信號(hào)的1/2,、1/4 和1/8。在如Virtex-4FPGA 這樣的賽靈思器件中,,PMCD 緊鄰DCM 并與其位于同一列上,。每一列有兩個(gè)PMCD-DCM 對(duì)。因此DCM 的輸出可以驅(qū)動(dòng)PMCD 的輸入,。
由于DCM 還負(fù)責(zé)處理去歪斜,,因此只要不需要去歪斜時(shí)鐘,設(shè)計(jì)人員就可以使用不帶DCM 的PMCD,。通過專用引腳,,還可以把一列中的兩個(gè)PMCD連接起來。圖2 是Virtex-4 器件中的PMCD 原語(yǔ),。詳細(xì)內(nèi)容請(qǐng)參閱Virtex-4FPGA 用戶指南(UG070,,2.6 版本)。

混合模式時(shí)鐘管理器
另一種類型的時(shí)鐘資源——混合模式時(shí)鐘管理器(MMCM),,用于在與給定輸入時(shí)鐘有設(shè)定的相位和頻率關(guān)系的情況下,,生成不同的時(shí)鐘信號(hào)。不過與DCM 不同是,,MMCM 使用PLL 來完成這一工作,。Virtex-6 FPGA 中的時(shí)鐘管理模塊(CMT) 有兩個(gè)MMCM, 而Virtex-7 中的CMT 有一個(gè)MMCM 和一個(gè)PLL,。Virtex-6 器件中的MMCM 沒有擴(kuò)頻功能,,因此輸入時(shí)鐘信號(hào)上的擴(kuò)頻不會(huì)被濾波,將直接被傳送給MMCM輸出時(shí)鐘,。但Virtex-7 FPGA 的MMCM卻有擴(kuò)頻功能,。
Virtex-6 FPGA 中的MMCM 要求插入一個(gè)校準(zhǔn)電路,以便在用戶復(fù)位或用戶斷電后確保MMCM 正確運(yùn)行,。賽靈思ISE 設(shè)計(jì)套件11.5 版本及更高版本能夠在設(shè)計(jì)的MAP 階段自動(dòng)插入必要的校準(zhǔn)電路,。若使用賽靈思ISE 的更早版本,則需要使用賽靈思技術(shù)支持部提供的設(shè)計(jì)文件手動(dòng)插入校準(zhǔn)電路,。最后需要注意的是,,在本移植該設(shè)計(jì),以便用ISE11.5 版本或更高版本實(shí)現(xiàn)時(shí),,必須手動(dòng)移除校準(zhǔn)電路,,或通過適當(dāng)設(shè)置每個(gè)MMCM 上的綜合屬性,禁用自動(dòng)插入功能,。詳細(xì)介紹請(qǐng)參閱賽靈思答復(fù)記錄AR#33849,。
對(duì)7 系列器件中的MMCM 就不存在這樣的問題,,因?yàn)檫@些FPGA 只得到ISE 13.1 版本和更高版本以及新型Vivado 設(shè)計(jì)套件的支持。Virtex-6 系列中提供的MMCM 間專用走線可便于用戶將全局時(shí)鐘資源用于設(shè)計(jì)的其余部分,。
圖3 顯示了Virtex-6 FPGA 中的MMCM 原語(yǔ),。各個(gè)端口的詳細(xì)介紹請(qǐng)參閱Virtex-6 FPGA 時(shí)鐘資源用戶指南(UG362,2.1 版本),。圖4 顯示了賽靈思7 系列FPGA 中的MMCM 原語(yǔ),,有關(guān)詳細(xì)介紹請(qǐng)參閱7 系列FPGA 時(shí)鐘資源用戶指南(UG472,,1.5 版本),。


鎖相環(huán)
設(shè)計(jì)人員使用鎖相環(huán)(PLL)主要用于頻率綜合。使用一個(gè)PLL 可以從一個(gè)輸入時(shí)鐘信號(hào)生成多個(gè)時(shí)鐘信號(hào),。結(jié)合DCM 使用,,還可以用作抖動(dòng)濾波器。Spartan-6,、Virtex-5 和7 系列FPGA 中都提供有PLL,。Spartan-6 和Virtex-5 中
均有專門的“DCM 到PLL”和“PLL 到DCM”走線。Spartan-6 和Virtex-5 中的PLL 輸出是非擴(kuò)頻的,。對(duì)這兩種器件而言,,如果設(shè)計(jì)使用多個(gè)不同時(shí)鐘,都可以用PLL 替代DCM,。PLL 時(shí)鐘輸出具有寬范的配置范圍,,而DCM 的輸出是預(yù)定的,不可配置,。PLL 和DCM 的選擇還是取決于設(shè)計(jì)的要求,。不過如果相移是必需的, 就應(yīng)該明確地選擇DCM,。
同時(shí),,7 系列器件中的PLL 所實(shí)現(xiàn)的功能沒有MMCM 所實(shí)現(xiàn)的多。因此雖然MMCM 是建立在PLL 架構(gòu)之上,,但7 系列器件中也有獨(dú)立的PLL,。圖5顯示了Virtex-5 FPGA 中的PLL 原語(yǔ)。各個(gè)端口的詳細(xì)介紹請(qǐng)參閱Virtex-5 用戶指南(UG190,,5.4 版本),。

設(shè)計(jì)移植
掌握四種主要的時(shí)鐘資源之間的差異及其在不同器件系列中的可用性非常重要。同時(shí),,在不同的系列中,,相似的資源(比如DCM)可能在功能上并不完全相同。例如,,Spartan-6 FPGA 中的DCM 支持?jǐn)U頻時(shí)鐘,, 但Virtex-5 和Virtex-5 器件中的DCM 就不支持,。
在規(guī)劃未來設(shè)計(jì)向更高端系列移植時(shí),除了確保功能,,為給定設(shè)計(jì)選擇正確的時(shí)鐘資源也很重要,。如表1 所示,Virtex-6 和7 系列中的MMCM 能夠與之前系列中的DCM 向后兼容,。但需要判斷在多大程度上支持向后兼容性,,因?yàn)樗羞@些時(shí)鐘資源都具有多功能性,提供與時(shí)鐘相關(guān)的多種不同功能,。在制定產(chǎn)品長(zhǎng)期發(fā)展規(guī)劃時(shí),,必須對(duì)兼容性了如指掌。