時鐘數(shù)據(jù)恢復(fù)電路是高速收發(fā)器的核心模塊,而高速收發(fā)器是通信系統(tǒng)中的關(guān)鍵部分。隨著光纖在通信中的應(yīng)用,信道可以承載的通信速率已經(jīng)可以達到GHz,從而使得接收端的接收速率成為限制通信速率的主要瓶頸。因此高速時鐘數(shù)據(jù)恢復(fù)電路的研究是目前通信領(lǐng)域的研究熱點。目前時鐘數(shù)據(jù)恢復(fù)電路主要是模擬IC和數(shù)字IC,其頻率已經(jīng)可以達到幾十GHz。而由于FPGA器件的可編程性、低成本、短的設(shè)計周期以及越來越大的容量和速度,在數(shù)字領(lǐng)域的應(yīng)用逐漸有替代數(shù)字IC的趨勢,已經(jīng)廣泛作為數(shù)字系統(tǒng)的控制核心。但利用中低端FPGA還沒有可以達到100MHz以上的時鐘數(shù)據(jù)恢復(fù)電路。由于上面的原因,許多利用FPGA實現(xiàn)的高速通信系統(tǒng)中必須使用額外的專用時鐘數(shù)據(jù)恢復(fù)IC,這樣不僅增加了成本,而且裸露在外的高速PCB布線使還會帶來串擾、信號完整性等非常嚴重的問題。如果可以在中低端FPGA上實現(xiàn)高速時鐘數(shù)據(jù)恢復(fù)電路,則可降低成本且提高整個電路系統(tǒng)的性能。 目前利用FPGA實現(xiàn)時鐘恢復(fù)電路的方法,基本都是首先利用FPGA內(nèi)部的鎖相環(huán)產(chǎn)生N*f的高頻時鐘,然后再根據(jù)輸入信號控制對高速時鐘的分頻,從而產(chǎn)生與輸入信號同步的時鐘信號,其中N決定了恢復(fù)時鐘信號的相位精度,通常N等于8。因此如果輸入信號的頻率為100MHz,則系統(tǒng)的工作頻率就必須達到800MHz,對于中低端FPGA,如此高的工作頻率顯然無法承受。雖然高端FPGA可以達到GHz的工作頻率,但其高昂的價格不適合用于普通用戶。而其它基于中低端FPGA實現(xiàn)高速時鐘恢復(fù)電路的方法,要么需要外部VCO模塊,要么只能恢復(fù)數(shù)據(jù)而無法得到同步的時鐘信號。針對這種情況,本文提出了一種利用Altera FPGA中的鎖相環(huán)及Logiclock等技術(shù),實現(xiàn)高速時鐘恢復(fù)電路的方法。電路是在Altera的EP2C5T144C6芯片上實現(xiàn)的,用于數(shù)字光端機的接收端從100路2.048MHz壓縮視頻碼流合成的串行碼流中正確提取100路視頻碼流,其工作頻率為204.8MHz,通過硬件驗證電路可以正確工作。 1 時鐘恢復(fù)電路原理及環(huán)路結(jié)構(gòu) 時鐘恢復(fù)電路的目的是從輸入的數(shù)據(jù)流中,提取出與其同步的時鐘信號。時鐘信號不可能憑空產(chǎn)生,因此該電路本身必須有一個時鐘信號產(chǎn)生機制,除此之外還必須有一個判斷控制機制一能夠判斷并且調(diào)整該時鐘信號與輸入數(shù)據(jù)之間的相位關(guān)系,使其同步。 傳統(tǒng)的基于FPGA的時鐘恢復(fù)電路的結(jié)構(gòu)如圖1所示。如前所述,這種結(jié)構(gòu)的電路用中低端FPGA,工作頻率不可能達到100MHz以上。本文采用的方法是利用鎖相環(huán)產(chǎn)生不同相位的時鐘信號,然后再根據(jù)控制信號控制輸出時鐘在這些時鐘之間進行切換,從而使時鐘與輸入數(shù)據(jù)同步。具體結(jié)構(gòu)如圖2所示。下面詳細介紹各個模塊的工作原理及電路實現(xiàn)。 2 模塊電路設(shè)計 電路由三個模塊構(gòu)成,鑒相器模塊和計數(shù)器模塊通過判斷時鐘信號和輸入信號的相位關(guān)系,產(chǎn)生相位調(diào)整的控制信號,時鐘調(diào)整模塊根據(jù)送來的控制信號對輸出時鐘進行相位調(diào)整。 2.1 超前滯后鑒相器 鑒相器使用可以識別輸入信號連0和連1的超前滯后鑒相器,具體電路如圖3所示。利用四個D觸發(fā)器對輸入信號Din采樣產(chǎn)生s1、s2、s3三個信號,如果s2=s3≠s1,則表示時鐘超前,up-down為高電平;如果s1=s2≠s3,則表示時鐘滯后,up-down為低電平;當輸入信號連0或連1時s1=s2=s3,valid為低電平,此時up-down無效。這兩個信號都必須用時鐘信號進行同步產(chǎn)生,否則電路可能由于s1、s2、s3的延遲差而進入一種死鎖狀態(tài)。這種鑒相器只有超前或滯后兩種狀態(tài),如果直接將其輸出用作控制時鐘相位的調(diào)整,則時鐘切換會過于頻繁,而且輸入信號中的毛刺會引起誤操作。所以將其輸出信號送給up-down計數(shù)模塊,進行一段時間的積累后,再產(chǎn)生用于控制時鐘相位的信號。 2.2 up-down計數(shù)器模塊 計數(shù)器模塊的功能是在鑒相器送來的信號控制下進行計數(shù),產(chǎn)生相位調(diào)整的控制信號。計數(shù)器的初始值為M,當輸入信號valid為高電平時,判斷up-down信號。如果該信號為1,則計數(shù)器加計數(shù),否則減計數(shù)。當計數(shù)器的值為2M時,early產(chǎn)生高電平脈沖;當為0時,later產(chǎn)生高電平脈沖。 2.3 時鐘產(chǎn)生調(diào)整模塊 2.3.1 電路結(jié)構(gòu) 時鐘產(chǎn)生調(diào)整模塊的主要功能是產(chǎn)生和輸入信號頻率相同的時鐘信號,并根據(jù)相位判斷模塊發(fā)送過來的控制信號,不斷地調(diào)整輸出時鐘相位,使得輸出時鐘的上升沿維持在輸入信號中間位置,其結(jié)構(gòu)如圖4所示。不同相位的同頻時鐘是利用EP2C5T144C6 中的鎖相環(huán)產(chǎn)生的,由于課題項目的需要,1個片子內(nèi)部必須含有2個時鐘恢復(fù)電路,受到全局時鐘數(shù)目的限制,采用6個時鐘信號進行切換。在該模塊電路設(shè)計設(shè)置6個狀態(tài),每一狀態(tài)對應(yīng)某一相位的時鐘信號。當檢測到early信號為高電平時,狀態(tài)就跳變到比當前時鐘信號相位提前1個相位的狀態(tài)上(若相位超前則再繼續(xù)超前),而當later信號為高電平時跳變到比當前時鐘信號滯后1個相位的狀態(tài)上去(相位滯后則繼續(xù)滯后),然后再根據(jù)當前的狀態(tài)選擇相應(yīng)的時鐘信號,作為當前工作時鐘即輸出時鐘信號Rclk。 2.3.2 時鐘切換 采用時鐘切換實現(xiàn)該相位調(diào)整,首要問題就是必須消除時鐘切換時產(chǎn)生的毛刺,因此所有子電路都采用恢復(fù)出來的時鐘信號作為其工作時鐘,這樣所有的時鐘切換情況都可用圖5表示。假定此時的工作時鐘為clk_l,只要能夠保證時鐘切換避開上面的陰影區(qū)域,而是處在上圖中的紅色區(qū)域,則無論是時鐘向前還是向后切換,都不會出現(xiàn)毛刺。以工作頻率為200MHz計算,每段紅色區(qū)域大約為1.6ns,而Altera中的LE單元延遲大約為0.23ns,所以采用buffer彌補延遲完全可以使時鐘切換發(fā)生在合適的位置。 2.3.3 時鐘相位偏移的補償 該電路結(jié)構(gòu)的另一關(guān)鍵是必須保證不同相位時鐘信號經(jīng)過時鐘判斷調(diào)整模塊后,它們之間的相位關(guān)系不會因延遲的不同而失效而必須仍然成立,否則就會導(dǎo)致相位調(diào)整過大或過小,電路會因此變得不穩(wěn)定。電路延遲由門延遲和連線延遲組成。對于連線延遲在AlteraCyclone II中只要兩個LE之間的連線類型相同,延遲也就相同,而每個LAB中有16個LE也有16個LOCAL LINE布線資源,因此同一個LAB 中LE之間的互連線延遲都是相同的。對于門延遲,在Cyclone II中每個LE有A、B、C、D四個輸入端,各端口延遲不同。首先通過在某些路徑上插入buffer,使得所有時鐘信號經(jīng)過的LE的數(shù)目相同。然后再在3個時鐘信號中各插入一個buffer,再根據(jù)最終的布線情況,調(diào)整這3個buffer的端口連接,就可以使得各時鐘信號經(jīng)過的門延遲基本相同。除了上述兩種方法,在應(yīng)用中使用了Quartus II的Logiclock功能,按照設(shè)計的需要將同一功能模塊的邏輯放在相同的LAB中,這樣可以使連線延遲對電路的影響降到最小。同時利用該功能也可以直接將調(diào)整好的時鐘恢復(fù)電路應(yīng)用于整個通信系統(tǒng)中,使得其他電路的布局布線不會對該電路產(chǎn)生影響。 2.4 數(shù)據(jù)恢復(fù) 由于時鐘數(shù)據(jù)恢復(fù)電路的目的就是得到能夠正確采樣輸入數(shù)據(jù)的時鐘信號。為了保證恢復(fù)出的時鐘和輸入數(shù)據(jù)的相位關(guān)系在整個芯片內(nèi)都能夠成立,在系統(tǒng)應(yīng)用中輸入信號也走全局時鐘網(wǎng)絡(luò)。經(jīng)過這樣處理后,只要在需要恢復(fù)數(shù)據(jù)的地方加一個D觸發(fā)器即可得到正確的數(shù)據(jù)信號。 3 環(huán)路仿真結(jié)果及討論 采用EP2C5T144C6器件的環(huán)路的仿真結(jié)果如圖6所示,其中工作頻率為204.8MHz。由于整個電路用的是經(jīng)過全局時鐘控制模塊后的時鐘和輸入數(shù)據(jù),所以在圖6中給出的是這兩個信號時序關(guān)系:ORDA"clkctrl和R_clk"clkctrl。由圖(a)及局部放大圖(b)可以看出,電路穩(wěn)定時鐘信號在輸入數(shù)據(jù)的中間位置左右擺動,可以正確采樣輸入數(shù)據(jù)。 本文提出的電路結(jié)構(gòu)不需要高頻時鐘信號,因此只要相位調(diào)整過程中時鐘信號的脈沖寬度大于器件要求的最小值,且滿足整個電路滿足建立保持時間就可以正常工作。因此最小的時鐘周期T=max(3*Tmin,Tper),其中Tmin是所用器件時鐘信號脈沖寬度的最小值,Tper是滿足建立保持時間的最小時鐘周期。例如EP2C35F672C6芯片工作時鐘高電平脈沖最小值為1ns,采用該芯片電路的工作頻率可以達到300MHz,這個工作頻率已經(jīng)通過了Altera DE2板的硬件驗證。如果采用更快的器件如Cyclone III EP3C10T144C7,時鐘脈沖寬度最小值0.625ns,經(jīng)過仿真驗證其工作頻率可以達到400MHz。在時鐘調(diào)整模塊后加一個簡單的二分頻電路,就可以實現(xiàn)12個時鐘相位的調(diào)整精度,根據(jù)不同器件的性能很容易進行擴展,達到所需要的設(shè)計要求。 4 結(jié)論 本文利用時鐘切換的方法,在低端AlteraEP2C5T144C6上實現(xiàn)了204.8MHZ的時鐘數(shù)據(jù)恢復(fù)電路,并通過了硬件驗證。通過理論分析給出了決定該電路工作頻率的主要因素,同時對該電路稍加改動就可以實現(xiàn)更高精度的時鐘數(shù)據(jù)恢復(fù)電路,具有很好的擴展性,為利用中低端FPGA實現(xiàn)高速通信系統(tǒng)提供了一種可參考的解決方案。 |