基于FPGA全新鎖相倍頻系統(tǒng)的設(shè)計(jì)
隨著數(shù)字時(shí)代的到來,越來越多的領(lǐng)域采用集成電路來設(shè)計(jì)電路,F(xiàn)PGA/CPLD等EDA設(shè)計(jì)更為廣大硬件工程師所接受。其模塊化設(shè)計(jì)為設(shè)計(jì)人員帶來了很多方便,節(jié)約了系統(tǒng)的開發(fā)時(shí)間,使設(shè)計(jì)人員只需要調(diào)用這些模塊或者IP核,然后組合起來就可以實(shí)現(xiàn)一個(gè)簡單的功能。全數(shù)字鎖相環(huán)(DPLL)就是其中一個(gè)典型的例子。然而DPLL在應(yīng)用時(shí)存在很多缺陷,例如鎖相時(shí)間長、捕捉帶窄等。為了避免這些缺點(diǎn),本文設(shè)計(jì)了一種全新的相位跟蹤倍頻系統(tǒng),有效地改善了DPLL的這些指標(biāo),并在項(xiàng)目中得到了良好的應(yīng)用。
1 全數(shù)字鎖相環(huán)的概念
所謂全數(shù)字鎖相環(huán)路,就是環(huán)路部件全部數(shù)字化,采用數(shù)字鑒相器(DPD)、數(shù)字環(huán)路濾波器(DLF)、數(shù)控振蕩器(DCO)構(gòu)成鎖相環(huán)路。典型全數(shù)字鎖相環(huán)的結(jié)構(gòu)如圖1所示。它采用的鑒相器是導(dǎo)前-滯后型數(shù)字鑒相器。鑒相器在每一個(gè)周期內(nèi)得到輸入時(shí)鐘的相位比本地估算時(shí)鐘相位超前或滯后的信息,這樣鑒相器的相位誤差輸出只有超前或滯后兩種狀態(tài)。將誤差相位的超前或滯后信息送到序列濾波器后,產(chǎn)生對DCO的“加”或“減”脈沖控制指令去改變DCO的時(shí)鐘周期,使本地估算時(shí)鐘的相位與輸入時(shí)鐘相位靠攏。
環(huán)路濾波器采用了K計(jì)數(shù)器。其功能就是對相位誤差序列計(jì)數(shù)即濾波,并輸出相應(yīng)的進(jìn)位脈沖或借位脈沖來調(diào)整I/D數(shù)控振蕩器輸出信號的相位,從而實(shí)現(xiàn)相位控制和鎖定。然而相位鎖定時(shí)間與相位抖動(dòng)之間是一對矛盾體,K值取得大,對抑止噪聲有利,因?yàn)镵值大,計(jì)數(shù)器對少量的噪聲干擾不可能計(jì)滿,所以不會有進(jìn)位或借位脈沖輸出。但這樣捕捉帶會變小,而且加大了環(huán)路進(jìn)入鎖定狀態(tài)的時(shí)間。反之,K值取得小,可以加速環(huán)路的入鎖,但K計(jì)數(shù)器會頻繁地產(chǎn)生進(jìn)位或借位脈沖,從而導(dǎo)致相位抖動(dòng),增大了同步誤差,相應(yīng)地對噪聲的抑制能力也隨之降低。因此對于一般的DPLL,選擇適當(dāng)?shù)腒值很重要。
對于倍頻電路,目前大部分都是基于鎖相環(huán)技術(shù)開發(fā)的,因此不可避免地也會將鎖相環(huán)中設(shè)計(jì)存在的矛盾帶入倍頻設(shè)計(jì)中。即使系統(tǒng)倍頻的范圍很寬,但由于PLL的自身缺陷所帶來的頻譜純度差、抖動(dòng)明顯、噪聲大等缺點(diǎn)是不可避免的。
2 新方案的提出
近幾年來,越來越多的科研機(jī)構(gòu)致力于開發(fā)新型的鎖相倍頻系統(tǒng),無論在數(shù)字還是模擬領(lǐng)域,都有了嶄新的突破。在模擬方面,F(xiàn)ordahl開發(fā)了一種如圖2所示的新倍頻模擬方法。該方法在高頻和低頻段工作良好,同時(shí)有效地改善了在鎖相環(huán)設(shè)計(jì)中所帶來的缺陷。在數(shù)字方面,一種全新構(gòu)架的無類比全數(shù)字鎖相倍頻電路已經(jīng)由某科研機(jī)構(gòu)研制開發(fā)成功,并已經(jīng)投入使用,其結(jié)構(gòu)如圖3所示。該設(shè)計(jì)完全基于FPGA/CPLD設(shè)計(jì)開發(fā)而成,鎖相時(shí)間短(只需要一個(gè)系統(tǒng)時(shí)鐘周期tpd的延時(shí)),同時(shí)具有無類比電路、無抖動(dòng)、無內(nèi)部振蕩器、功耗低等優(yōu)點(diǎn)。
本文結(jié)合上述兩種方法,根據(jù)FPGA流水線的操作思想,設(shè)計(jì)了一種全新的相位鎖定倍頻系統(tǒng)。在具備上述兩個(gè)倍頻電路優(yōu)點(diǎn)的同時(shí),增強(qiáng)了倍頻的精度,擴(kuò)大了倍頻范圍,在系統(tǒng)資源允許的范圍內(nèi),合理地利用芯片面積與速度的關(guān)系,以較少的邏輯單元,設(shè)計(jì)出高速倍頻系統(tǒng)。
3 原理及算法
這種全新相位鎖定倍頻系統(tǒng)由四大模塊組成:同步預(yù)處理模塊、計(jì)數(shù)器模塊、算法模塊、選擇輸出模塊。其結(jié)構(gòu)如圖4所示。
3.1 原理
首先,對輸入?yún)⒖紩r(shí)鐘(CLK_IN)進(jìn)行同步處理,對輸入信號進(jìn)行復(fù)制,使得輸入信號與全局時(shí)鐘(SYSCLK)達(dá)到同步(即使復(fù)制后的信號與輸入?yún)⒖紩r(shí)鐘存在誤差,誤差也小于一個(gè)SYSCLK周期),然后以SYSCLK為基準(zhǔn)對CLK_IN進(jìn)行計(jì)數(shù)。如果信號CLK_IN抖動(dòng)很小或者周期恒定,則以n(n>1)個(gè)周期為單位進(jìn)行計(jì)數(shù);如果抖動(dòng)很大(一般與外部環(huán)境及物理因素有關(guān)),則以一個(gè)周期為單位進(jìn)行計(jì)數(shù),并將計(jì)數(shù)值作為輸入傳送給算法模塊。算法模塊經(jīng)過一系列算法流程后,得到一個(gè)使能信號(/EN)。最后利用建立時(shí)間(Tsu)和保持時(shí)間(Th)的特性,以使能信號/EN低有效對SYSCLK選擇輸出,得到所需要的倍頻信號。
從PLL倍頻的原理出發(fā),輸入?yún)⒖紩r(shí)鐘倍頻后的頻率不可能大于系統(tǒng)時(shí)鐘頻率,因此對輸入時(shí)鐘的倍頻問題歸根結(jié)底就是對系統(tǒng)時(shí)鐘的分頻問題。系統(tǒng)時(shí)鐘分頻后,一方面作為信號輸出,一方面作為反饋信號。頻率除以N(倍值)后,得到本地估算信號,經(jīng)過DPLL環(huán)路,使之與參考時(shí)鐘同相,這樣就得到了與輸入?yún)⒖紩r(shí)鐘的同相N倍頻輸出信號。從這里可以看出,基于DPLL的倍頻電路是系統(tǒng)相位鎖定與時(shí)鐘倍頻同時(shí)進(jìn)行的。因此倍頻過程中,必然受到DPLL自身因素的制約。而本文設(shè)計(jì)的倍頻系統(tǒng),系統(tǒng)同步過程和倍頻過程是兩個(gè)獨(dú)立的過程,相互之間不存在依附關(guān)系,因此可以將兩個(gè)過程分別做優(yōu)化處理。
(1)鎖相問題??梢园阉D(zhuǎn)化為“同步”問題來考慮。同步過程中最重要的概念就是“參照系”,對于鎖相環(huán)而言,本地估算信號是以輸入?yún)⒖紩r(shí)鐘為參照進(jìn)行運(yùn)算得來的;而若以系統(tǒng)時(shí)鐘作為參照,本地復(fù)制信號必然與系統(tǒng)時(shí)鐘同步,且與輸入?yún)⒖紩r(shí)鐘同相。這樣做的優(yōu)點(diǎn)是相位鎖定快,提高了芯片系統(tǒng)速度(頻率)。
(2)倍頻問題。既然本地復(fù)制時(shí)鐘是與系統(tǒng)時(shí)鐘同步的,而一切與系統(tǒng)時(shí)鐘同步的信號必然與復(fù)制信號同步,那么對本地復(fù)制信號的倍頻問題,就可以簡化為對系統(tǒng)時(shí)鐘的分頻問題。例如,假設(shè)輸入?yún)⒖夹盘柕念l率為64kHz,系統(tǒng)時(shí)鐘的頻率為64MHz,現(xiàn)要求設(shè)計(jì)一個(gè)電路,其輸出信號與輸入?yún)⒖夹盘柾?,且頻率為9.6MHz時(shí)鐘。通過運(yùn)算可得到輸出信號是輸入?yún)⒖夹盘柕? 500倍,是系統(tǒng)時(shí)鐘頻率的20/3分頻。因此只要設(shè)計(jì)出20/3分頻電路,就可得到輸出信號是輸入?yún)⒖紩r(shí)鐘1 500倍的倍頻信號。其算法思想如圖5所示。
3.2 算法
以SYSCLK作為累加器的系統(tǒng)時(shí)鐘,累加器的位寬根據(jù)分頻的精度而確定,累加操作在系統(tǒng)時(shí)鐘的上升沿有效,累加器的初始值為0。因?yàn)槭?0/3分頻,所以累加器在時(shí)鐘的上升沿時(shí)增加0.15,同時(shí)判斷0.15和1的大小,由于0.151,所以/EN=1。在時(shí)鐘的第二個(gè)上升沿到來時(shí),在累加0.15等于0.3后,同時(shí)判斷0.3和1的大小,由于0.31,所以/EN=1。依此類推,在時(shí)鐘的第七個(gè)上升沿到來時(shí)累加器的值應(yīng)該是1.05,由于1.05>1,所以/EN=0。再將1.05減去1的差0.05作為累加器的初始值進(jìn)行下次運(yùn)算,依次進(jìn)行下去就可以得到/EN信號。
在FPGA的設(shè)計(jì)中,一般經(jīng)常用到的是時(shí)鐘的上升沿,根據(jù)FPGA的建立時(shí)間Tsu和保持時(shí)間Th,雖然在建立時(shí)間不能采到SYSCLK的上升沿,但在保持時(shí)間卻可以采到第八個(gè)上升沿。這樣就可以得到頻率為9.6MHz的輸出信號。
4 性能分析
4.1 相位鎖定時(shí)間
因?yàn)楸驹O(shè)計(jì)以系統(tǒng)時(shí)鐘為參照,所以本地復(fù)制信號與輸入?yún)⒖夹盘柕南辔徽`差最大為一個(gè)SYSCLK周期,本設(shè)計(jì)使用的是Altera公司的Cyclone系列EP1C3T144-8芯片,系統(tǒng)時(shí)鐘頻率最高能達(dá)到105.65MHz,因此最大誤差為9.465ns。如果再經(jīng)過優(yōu)化,可以達(dá)到在7ns以內(nèi)。
4.2 倍頻范圍及其精度
本設(shè)計(jì)采用任意數(shù)分頻算法,倍頻后輸出信號的頻率范圍可以從0Hz到系統(tǒng)時(shí)鐘的最高頻率。因此,對于精度,可以做到小數(shù)點(diǎn)后任意值,但是刻意地追求精度,是以浪費(fèi)芯片面積為前提的,所示選擇精度值還要根據(jù)芯片的邏輯單元多少來決定。
5 仿真結(jié)果
仿真的部分波形圖如圖6所示,放大效果圖如圖7所示。
本文提出的全新鎖相倍頻系統(tǒng)方案已經(jīng)在項(xiàng)目中得到應(yīng)用,并在實(shí)踐中得到檢驗(yàn),性能完全達(dá)到預(yù)期要求,效果良好。
評論