劉如金
(工業(yè)和信息化部電子第五研究所,廣東 廣州,510610)
近年來(lái),隨著超大規(guī)模集成電路的發(fā)展,F(xiàn)PGA/CPLD等可編程邏輯器件的資源也有了極大的發(fā)展,F(xiàn)PGA在開(kāi)發(fā)階段具有安全、方便、可隨時(shí)修改設(shè)計(jì)等不可替代的優(yōu)點(diǎn),在電子系統(tǒng)中采用FPGA可以極大地提升硬件系統(tǒng)設(shè)計(jì)的靈活性、可靠性,以及提高硬件開(kāi)發(fā)的速度和降低系統(tǒng)的成本。ewFPGA的固有優(yōu)點(diǎn)使其得到越來(lái)越廣泛的應(yīng)用。
對(duì)于FPGA設(shè)計(jì),同步設(shè)計(jì)將優(yōu)于異步設(shè)計(jì)。對(duì)于靜態(tài)同步設(shè)計(jì),當(dāng)滿足以下兩個(gè)條件時(shí),我們說(shuō)這個(gè)系統(tǒng)是同步的:1)每個(gè)邊緣敏感部件的時(shí)鐘輸入是一次時(shí)鐘輸入的某個(gè)函數(shù),并且仍是像一次時(shí)鐘那樣的時(shí)鐘信號(hào);2)所有的存儲(chǔ)元件(包括計(jì)數(shù)器)都是邊緣敏感的,在系統(tǒng)中沒(méi)有電平敏感存儲(chǔ)元件。FPGA的同步設(shè)計(jì)可以理解為所有的狀態(tài)改變都由一個(gè)主時(shí)鐘觸發(fā),而對(duì)具體的電路形式表現(xiàn)為所有的觸發(fā)器的時(shí)鐘端都接在同一個(gè)主時(shí)鐘上。
相比異步設(shè)計(jì)來(lái)說(shuō),同步設(shè)計(jì)有許多的優(yōu)點(diǎn),同步是通信系統(tǒng)中一個(gè)重要的問(wèn)題。在數(shù)字通信中,除了獲取相干載波的載波同步外,位同步的提取是更為重要的一個(gè)環(huán)節(jié)。因?yàn)橹挥写_定了每一個(gè)碼元的起始時(shí)刻,才能對(duì)數(shù)字信息作出正確的判決。利用全數(shù)字鎖相環(huán)可直接從接收到的單極性不歸零碼中提取位同步信號(hào)。
數(shù)字鎖相環(huán)位同步提取電路原理框圖如圖1所示。
圖1 位同步提取電路框圖
本地時(shí)鐘產(chǎn)生兩路相位相差p的脈沖,其頻率為fo。輸入信碼的正、負(fù)跳變經(jīng)過(guò)過(guò)零檢測(cè)電路后變成了窄脈沖序列,它含有信碼中的位同步信息,該位同步窄脈沖序列與分頻器輸出脈沖進(jìn)行鑒相,分頻比為m,若分頻后的脈沖相位超前于窄脈沖序列,則在“1”端有輸出,并通過(guò)控制器將加到分頻器的脈沖序列扣除一個(gè)脈沖,使分頻后的脈沖相位退后;若分頻后的脈沖相位滯后窄脈沖序列,則在“2”端有輸出,并通過(guò)控制器將加到分頻器的脈沖序列附加一個(gè)脈沖,使分頻后的脈沖相位提前。直到鑒相器的“1”、“2”端無(wú)輸出,此時(shí)環(huán)路鎖定。輸出端就得到了該輸入信碼的位同步信號(hào)。
基于FPGA的鎖相環(huán)位同步提取電路的實(shí)現(xiàn)如圖2所示,由雙相高頻時(shí)鐘源、過(guò)零檢測(cè)電路、鑒相器、控制器和分頻器組成。
圖2 鎖相環(huán)位同步提取電路
2.2.1 雙相高頻時(shí)鐘源
該電路由D觸發(fā)器組成的二分頻器、兩個(gè)與門(mén)和兩個(gè)非門(mén)組成(電路最右端)。它將FPGA的高頻時(shí)鐘信號(hào)clk_xm變換成兩路相位相反的時(shí)鐘信號(hào),由e、f輸出,然后送給控制電路的常開(kāi)門(mén)G3和常閉門(mén)G4。其中f路信號(hào)還作為控制器中的D1和D2觸發(fā)器的時(shí)鐘信號(hào)。在實(shí)際系統(tǒng)中,F(xiàn)PGA的高頻時(shí)鐘頻率為32.768 M Hz,e、f兩路信號(hào)頻率為32.768/2=16.384 M Hz。
2.2.2 過(guò)零檢測(cè)電路
該電路見(jiàn)圖2中jianxiang部分,它由D觸發(fā)器和異或門(mén)組成。過(guò)零檢測(cè)的輸出脈沖codeout的寬度應(yīng)略大于f路信號(hào)一個(gè)周期,但為了減少鎖相環(huán)的穩(wěn)態(tài)誤差,該輸出脈沖不宜過(guò)寬。在實(shí)際系統(tǒng)中,過(guò)零檢測(cè)電路的時(shí)鐘信號(hào)clkin由FPGA的高頻時(shí)鐘四分頻得來(lái),這樣輸出的脈沖寬度約是f路信號(hào)的兩個(gè)周期。
2.2.3 鑒相器
該電路由兩個(gè)與門(mén)組成,分別是超前門(mén)G1和滯后門(mén)G2(電路中間的兩個(gè)與門(mén))。過(guò)零檢測(cè)電路的輸出信號(hào)b與位定時(shí)信號(hào)clkout一起進(jìn)入鑒相器,若clkout超前b,則滯后門(mén)G2被封鎖,輸出為0,超前門(mén)G1的輸出端有窄脈沖輸出;若clkout滯后b,則超前門(mén)G1被封鎖,輸出為0,滯后門(mén)G2的輸出端有窄脈沖輸出。
2.2.4 分頻器
該電路對(duì)應(yīng)于圖2中div64部分。輸出的信號(hào)頻率是256 kHz,e、f兩路信號(hào)的頻率均為16.384 M Hz,故該電路完成16384 /256=64的分頻功能。當(dāng)控制電路無(wú)超前或滯后控制脈沖輸出時(shí),D1的q端為0,D2的q端也為0,常開(kāi)門(mén)G3處于打開(kāi)狀態(tài),常閉門(mén)G4處于關(guān)閉狀態(tài),e路信號(hào)通過(guò)常開(kāi)門(mén)G3、異或門(mén)G5到達(dá)64分頻器的輸入端,經(jīng)分頻后產(chǎn)生穩(wěn)定的位定時(shí)信號(hào)。
2.2.5 控制器
分頻器輸出的位定時(shí)信號(hào)clkout與過(guò)零檢測(cè)脈沖b進(jìn)行相位比較。當(dāng)位定時(shí)信號(hào)clkout超前于b時(shí),超前門(mén)G1有正脈沖輸出。在觸發(fā)脈沖f的上升沿,G1觸發(fā)器的q端由低變高,經(jīng)過(guò)非門(mén)后,使常開(kāi)門(mén)G3關(guān)閉一個(gè)時(shí)鐘周期,將e路脈沖扣除一個(gè),使clkout相位向滯后方向變化一個(gè)時(shí)鐘周期。當(dāng)位定時(shí)信號(hào)clkout滯后于b時(shí),滯后門(mén)G2有正脈沖輸出。在觸發(fā)脈沖f的上升沿,D2觸發(fā)器的q端由低變高,使常閉門(mén)G4打開(kāi)一個(gè)時(shí)鐘周期,在分頻器輸入端添加一個(gè)脈沖,直到電路鎖定。
以上是全數(shù)字鎖相環(huán)的電路工作原理,全部電路已在芯片上實(shí)現(xiàn)。芯片的工作頻率選為32.768 M Hz,也作為位同步提取電路的本地高頻時(shí)鐘。另外,該時(shí)鐘信號(hào)四分頻后還作為過(guò)零檢測(cè)電路的時(shí)鐘。輸入的單極性不歸零碼的碼元速率為256 kbps。從輸入信碼中提取的位同步信號(hào)如圖3所示,從波形上看,該全數(shù)字鎖相環(huán)位同步提取電路能很好地從輸出的信碼中提取位同步信號(hào)。
圖3 輸入的信碼與提取的位同步信號(hào)
在FPGA設(shè)計(jì)中,同步設(shè)計(jì)要優(yōu)于異步設(shè)計(jì),本文提出了一種數(shù)字鎖相環(huán)的位同步提取電路的方案,并已成功地用FPGA器件進(jìn)行了實(shí)現(xiàn)。此時(shí)鐘提取電路可以快速、準(zhǔn)確地對(duì)串行輸入信碼進(jìn)行位同步時(shí)鐘的提取,即使輸入碼流中的毛刺現(xiàn)象,本設(shè)計(jì)也有很好的時(shí)鐘調(diào)整恢復(fù)功能,能極大地減小誤碼率。
[1]樊昌信.數(shù)字專用集成電路設(shè)計(jì)[M].北京:人民郵 電出版社,1999.
[2]徐志軍,徐光輝.CPLD/FPGA 的開(kāi)發(fā)與應(yīng)用[M].北京:電子工業(yè)出版社,2002.