基于FPGA的高速時(shí)鐘數據恢復電路的實(shí)現
2.1 超前滯后鑒相器
鑒相器使用可以識別輸入信號連0和連1的超前滯后鑒相器,具體電路如圖3所示。利用四個(gè)D觸發(fā)器對輸入信號Din采樣產(chǎn)生s1、s2、s3三個(gè)信號,如果s2=s3≠s1,則表示時(shí)鐘超前,up-down為高電平;如果s1=s2≠s3,則表示時(shí)鐘滯后,up-down為低電平;當輸入信號連0或連1時(shí)s1=s2=s3,valid為低電平,此時(shí)up-down無(wú)效。這兩個(gè)信號都必須用時(shí)鐘信號進(jìn)行同步產(chǎn)生,否則電路可能由于s1、s2、s3的延遲差而進(jìn)入一種死鎖狀態(tài)。這種鑒相器只有超前或滯后兩種狀態(tài),如果直接將其輸出用作控制時(shí)鐘相位的調整,則時(shí)鐘切換會(huì )過(guò)于頻繁,而且輸入信號中的毛刺會(huì )引起誤操作。所以將其輸出信號送給up-down計數模塊,進(jìn)行一段時(shí)間的積累后,再產(chǎn)生用于控制時(shí)鐘相位的信號。本文引用地址:http://dyxdggzs.com/article/191906.htm
2.2 up-down計數器模塊
計數器模塊的功能是在鑒相器送來(lái)的信號控制下進(jìn)行計數,產(chǎn)生相位調整的控制信號。計數器的初始值為M,當輸入信號valid為高電平時(shí),判斷up-down信號。如果該信號為1,則計數器加計數,否則減計數。當計數器的值為2M時(shí),early產(chǎn)生高電平脈沖;當為0時(shí),later產(chǎn)生高電平脈沖。
2.3 時(shí)鐘產(chǎn)生調整模塊
2.3.1 電路結構
時(shí)鐘產(chǎn)生調整模塊的主要功能是產(chǎn)生和輸入信號頻率相同的時(shí)鐘信號,并根據相位判斷模塊發(fā)送過(guò)來(lái)的控制信號,不斷地調整輸出時(shí)鐘相位,使得輸出時(shí)鐘的上升沿維持在輸入信號中間位置,其結構如圖4所示。不同相位的同頻時(shí)鐘是利用EP2C5T144C6 中的鎖相環(huán)產(chǎn)生的,由于課題項目的需要,1個(gè)片子內部必須含有2個(gè)時(shí)鐘恢復電路,受到全局時(shí)鐘數目的限制,采用6個(gè)時(shí)鐘信號進(jìn)行切換。在該模塊電路設計設置6個(gè)狀態(tài),每一狀態(tài)對應某一相位的時(shí)鐘信號。當檢測到early信號為高電平時(shí),狀態(tài)就跳變到比當前時(shí)鐘信號相位提前1個(gè)相位的狀態(tài)上(若相位超前則再繼續超前),而當later信號為高電平時(shí)跳變到比當前時(shí)鐘信號滯后1個(gè)相位的狀態(tài)上去(相位滯后則繼續滯后),然后再根據當前的狀態(tài)選擇相應的時(shí)鐘信號,作為當前工作時(shí)鐘即輸出時(shí)鐘信號Rclk。
2.3.2 時(shí)鐘切換
采用時(shí)鐘切換實(shí)現該相位調整,首要問(wèn)題就是必須消除時(shí)鐘切換時(shí)產(chǎn)生的毛刺,因此所有子電路都采用恢復出來(lái)的時(shí)鐘信號作為其工作時(shí)鐘,這樣所有的時(shí)鐘切換情況都可用圖5表示。假定此時(shí)的工作時(shí)鐘為clk_l,只要能夠保證時(shí)鐘切換避開(kāi)上面的陰影區域,而是處在上圖中的紅色區域,則無(wú)論是時(shí)鐘向前還是向后切換,都不會(huì )出現毛刺。以工作頻率為200MHz計算,每段紅色區域大約為1.6ns,而Altera中的LE單元延遲大約為0.23ns,所以采用buffer彌補延遲完全可以使時(shí)鐘切換發(fā)生在合適的位置。
2.3.3 時(shí)鐘相位偏移的補償
該電路結構的另一關(guān)鍵是必須保證不同相位時(shí)鐘信號經(jīng)過(guò)時(shí)鐘判斷調整模塊后,它們之間的相位關(guān)系不會(huì )因延遲的不同而失效而必須仍然成立,否則就會(huì )導致相位調整過(guò)大或過(guò)小,電路會(huì )因此變得不穩定。電路延遲由門(mén)延遲和連線(xiàn)延遲組成。對于連線(xiàn)延遲在A(yíng)lteraCyclone II中只要兩個(gè)LE之間的連線(xiàn)類(lèi)型相同,延遲也就相同,而每個(gè)LAB中有16個(gè)LE也有16個(gè)LOCAL LINE布線(xiàn)資源,因此同一個(gè)LAB 中LE之間的互連線(xiàn)延遲都是相同的。對于門(mén)延遲,在Cyclone II中每個(gè)LE有A、B、C、D四個(gè)輸入端,各端口延遲不同。首先通過(guò)在某些路徑上插入buffer,使得所有時(shí)鐘信號經(jīng)過(guò)的LE的數目相同。然后再在3個(gè)時(shí)鐘信號中各插入一個(gè)buffer,再根據最終的布線(xiàn)情況,調整這3個(gè)buffer的端口連接,就可以使得各時(shí)鐘信號經(jīng)過(guò)的門(mén)延遲基本相同。除了上述兩種方法,在應用中使用了Quartus II的logiclock功能,按照設計的需要將同一功能模塊的邏輯放在相同的LAB中,這樣可以使連線(xiàn)延遲對電路的影響降到最小。同時(shí)利用該功能也可以直接將調整好的時(shí)鐘恢復電路應用于整個(gè)通信系統中,使得其他電路的布局布線(xiàn)不會(huì )對該電路產(chǎn)生影響。
評論