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