把握DCM,、PLL、PMCD 和MMCM 知識(shí)是穩(wěn)健可靠的時(shí)鐘設(shè)計(jì)策略的基礎(chǔ),。
賽靈思在其FPGA 中提供了豐富的時(shí)鐘資源,,大多數(shù)設(shè)計(jì)人員在他們的FPGA 設(shè)計(jì)中或多或少都會(huì)用到。不過對(duì)FPGA設(shè)計(jì)新手來(lái)說(shuō),, 什么時(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),。與此類似,可以將來(lái)自高頻率時(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ǔ),。
一般來(lái)說(shuō),,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í)鐘頻率來(lái)運(yùn)行FPGA 上的邏輯,。但是,只有低頻率輸出的時(shí)鐘源可以用,。此時(shí)可以使用DCM 將時(shí)鐘源的輸入時(shí)鐘信號(hào)相乘,,生成高頻率時(shí)鐘信號(hào)。與此類似,,可以將來(lái)自高頻率時(shí)鐘源的輸入時(shí)鐘信號(hào)相除,,生成低頻率時(shí)鐘信號(hào)。這種技術(shù)稱為“數(shù)字頻率綜合”,。
設(shè)計(jì)人員使用擴(kuò)頻時(shí)鐘并通過調(diào)制時(shí)鐘信號(hào)來(lái)降低時(shí)鐘信號(hào)的峰值電磁輻射,。未經(jīng)調(diào)制的時(shí)鐘信號(hào)的峰值會(huì)產(chǎn)生高電磁輻射,。但經(jīng)調(diào)制后,電磁輻射被擴(kuò)展到一系列時(shí)鐘頻率上,,從而降低了所有頻點(diǎn)的輻射。一般來(lái)說(shuō),,如果需要滿足一定的最大電磁輻射要求和在FPGA 上執(zhí)行高速處理的時(shí)候(比如說(shuō)通信系統(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 器件,,然后又將它接收回來(lái),。可以使用這種方法為多種器件的板級(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 來(lái)發(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í)鐘緩沖來(lái)平衡負(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)來(lái)生成相位匹配的分頻輸入時(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連接起來(lái),。圖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 來(lái)完成這一工作,。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ī)劃未來(lái)設(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ì)兼容性了如指掌,。