本發(fā)明涉及鎖相環(huán)應(yīng)用領(lǐng)域,尤其涉及一種DLL延遲鎖相環(huán)自適應(yīng)監(jiān)控方法及系統(tǒng)。
背景技術(shù):
在數(shù)據(jù)通信系統(tǒng)的單機(jī)之間,經(jīng)常需要傳遞時(shí)鐘,并對時(shí)鐘進(jìn)行倍頻或分頻處理;由于傳輸時(shí)鐘的抖動指標(biāo)不夠理想,傳統(tǒng)的做法是用硬件PLL電路實(shí)現(xiàn)時(shí)鐘環(huán)路跟蹤,但使用硬件PLL需要在數(shù)據(jù)處理板上增加較多外圍器件,如鎖相環(huán)器件、壓控振蕩器、功分器、環(huán)路濾波器以及外圍電阻電容等;新增元器件數(shù)量較多,帶來功耗、面積的相應(yīng)增加,不利于單機(jī)小型化,且增加了硬件成本;此外,新增元器件中的壓控振蕩器VCO在一定范圍內(nèi)頻點(diǎn)固定,每個輸入數(shù)據(jù)頻率就對應(yīng)一個VCO,若需求有變化,則必須相應(yīng)地更換對應(yīng)頻點(diǎn)的VCO,不利于產(chǎn)品硬件平臺的通用化發(fā)展。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的針對上述現(xiàn)有技術(shù)存在的問題,提供一種DLL延遲鎖相環(huán)自適應(yīng)監(jiān)控方法及系統(tǒng),在FPGA內(nèi)部數(shù)字延遲鎖相環(huán)DLL時(shí)鐘跟蹤環(huán)在外部輸入信號變化或質(zhì)量較差時(shí)誤鎖情況下,消除了DLL輸入時(shí)鐘抖動或間斷對DLL正常鎖定的影響,提升了DLL數(shù)字鎖相環(huán)的適應(yīng)性。
為解決上述技術(shù)問題,本發(fā)明通過以下技術(shù)方案來實(shí)現(xiàn):一種DLL延遲鎖相環(huán)自適應(yīng)監(jiān)控方法,用于消除DLL輸入時(shí)鐘抖動或間斷對DLL正常鎖定的影響,包括以下步驟:
(1)對DLL的輸出時(shí)鐘進(jìn)行分頻,分頻后的時(shí)鐘頻率為f3;
(2)對分頻后的信號進(jìn)行采樣;
(3)對步驟(2)中采樣后的信號進(jìn)行間隔采樣,并通過間隔采樣的信號判斷輸入時(shí)鐘的抖動是否在正常范圍內(nèi),如果是,DLL延遲鎖相環(huán)正常工作,否則,對DLL鎖相環(huán)進(jìn)行自動復(fù)位,防止誤鎖,實(shí)現(xiàn)輸出時(shí)鐘對輸入時(shí)鐘的倍頻、同步和跟蹤。
所述的步驟(1)中采用2N倍分頻,其中,N為4,5或6中的任意一個。
所述的步驟(2)中,采樣倍數(shù)為f1/f3,即分頻后,一個時(shí)鐘周期內(nèi)有f1/f3個采樣點(diǎn),其中,f1表示DLL延遲鎖相環(huán)的輸入時(shí)鐘頻率。
所述的步驟(3)中采用取固定點(diǎn)數(shù)比較的算法進(jìn)行間隔采樣,使算法能夠容忍輸出時(shí)鐘的正常偏差范圍,提高了時(shí)鐘跟蹤環(huán)路鎖定的可靠性。
所述的步驟(3)中間隔采樣若干個判斷數(shù)據(jù),每個所述的判斷數(shù)據(jù)用0或1表示,0表示低電平,1表示高電平,如果若干個所述的判斷數(shù)據(jù)中有至少1位發(fā)生錯誤,則對DLL鎖相環(huán)進(jìn)行自動復(fù)位,防止誤鎖,否則,DLL延遲鎖相環(huán)正常工作。
一種DLL延遲鎖相環(huán)自適應(yīng)監(jiān)控系統(tǒng),包括分頻模塊、高倍采樣模塊、間隔采樣模塊及復(fù)位模塊,所述的分頻模塊用于將DLL的輸出時(shí)鐘進(jìn)行分頻,所述的高倍采樣模塊用于對分頻模塊輸出的信號進(jìn)行高倍采樣,所述的間隔采樣模塊用于對高倍采樣模塊輸出的信號進(jìn)行間隔采樣,所述的復(fù)位模塊用于判斷DLL的輸入時(shí)鐘的抖動是否在正常范圍內(nèi),并在DLL的輸入時(shí)鐘的抖動超出正常范圍時(shí),對DLL鎖相環(huán)進(jìn)行復(fù)位,防止誤鎖,實(shí)現(xiàn)輸出時(shí)鐘對輸入時(shí)鐘的倍頻、同步和跟蹤。
所述的間隔采樣模塊根據(jù)取固定點(diǎn)數(shù)比較的算法對高倍采樣模塊輸出的信號進(jìn)行間隔采樣。
與現(xiàn)有技術(shù)相比,本發(fā)明主要應(yīng)用于FPGA內(nèi)部數(shù)字延遲鎖相環(huán)DLL的時(shí)鐘跟蹤環(huán)在外部輸入信號變化或質(zhì)量較差時(shí)誤鎖情況下,消除DLL輸入時(shí)鐘抖動或間斷對DLL正常鎖定的影響,提升了DLL數(shù)字鎖相環(huán)的適應(yīng)性。本發(fā)明同樣適用于其他數(shù)據(jù)傳輸系統(tǒng)的時(shí)鐘跟蹤環(huán)技術(shù)。經(jīng)仿真和試驗(yàn),本發(fā)明在輸入傳輸時(shí)鐘存在較大抖動的情況下,依然能夠?qū)崿F(xiàn)時(shí)鐘跟蹤環(huán)路的正常鎖定跟蹤,滿足系統(tǒng)性能,提高了DLL環(huán)的可靠性,減小了傳輸時(shí)鐘抖動對時(shí)鐘跟蹤環(huán)路的影響。
附圖說明
圖1是本發(fā)明方法的流程圖;
圖2是本發(fā)明系統(tǒng)應(yīng)用時(shí)的連接框圖;
圖3是本發(fā)明時(shí)鐘抖動示意圖;
圖4是本申請實(shí)施例一個周期內(nèi)時(shí)鐘抖動的直方圖;
圖5是本申請實(shí)施例的采樣圖;
圖6是Xilinx公司FPGA內(nèi)部使用的DLL IP核實(shí)現(xiàn)時(shí)鐘跟蹤環(huán)的系統(tǒng)框圖。
具體實(shí)施方式
下面對本發(fā)明的實(shí)施例作詳細(xì)說明,本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。
如圖1所示,一種DLL延遲鎖相環(huán)自適應(yīng)監(jiān)控方法,用于消除DLL輸入時(shí)鐘抖動或間斷對DLL正常鎖定的影響,包括以下步驟:
(1)對DLL的輸出時(shí)鐘進(jìn)行分頻,分頻后的時(shí)鐘頻率為f3;
(2)對分頻后的信號進(jìn)行采樣;
(3)對步驟(2)中采樣后的信號進(jìn)行間隔采樣,并通過間隔采樣的信號判斷輸入時(shí)鐘的抖動是否在正常范圍內(nèi),如果是,DLL延遲鎖相環(huán)正常工作,否則,對DLL鎖相環(huán)進(jìn)行自動復(fù)位,防止誤鎖,實(shí)現(xiàn)輸出時(shí)鐘對輸入時(shí)鐘的倍頻、同步和跟蹤。
步驟(1)中采用2N倍分頻,其中,N為4,5或6中的任意一個。
步驟(2)中,采樣倍數(shù)為f1/f3,即分頻后,一個時(shí)鐘周期內(nèi)有f1/f3個采樣點(diǎn),其中,f1表示DLL延遲鎖相環(huán)的輸入時(shí)鐘頻率。
步驟(3)中采用取固定點(diǎn)數(shù)比較的算法進(jìn)行間隔采樣,使算法能夠容忍輸出時(shí)鐘的正常偏差范圍,提高了時(shí)鐘跟蹤環(huán)路鎖定的可靠性。
步驟(3)中間隔采樣若干個判斷數(shù)據(jù),每個判斷數(shù)據(jù)用0或1表示,0表示低電平,1表示高電平,如果若干個判斷數(shù)據(jù)中有至少1位發(fā)生錯誤,則對DLL鎖相環(huán)進(jìn)行自動復(fù)位,防止誤鎖,否則,DLL延遲鎖相環(huán)正常工作。
如圖2所示,一種DLL延遲鎖相環(huán)自適應(yīng)監(jiān)控系統(tǒng),包括分頻模塊、高倍采樣模塊、間隔采樣模塊及復(fù)位模塊,分頻模塊用于將DLL的輸出時(shí)鐘進(jìn)行分頻,高倍采樣模塊用于對分頻模塊輸出的信號進(jìn)行高倍采樣,間隔采樣模塊用于對高倍采樣模塊輸出的信號進(jìn)行間隔采樣,復(fù)位模塊用于判斷DLL的輸入時(shí)鐘的抖動是否在正常范圍內(nèi),并在DLL的輸入時(shí)鐘的抖動超出正常范圍時(shí),對DLL鎖相環(huán)進(jìn)行復(fù)位,防止誤鎖,實(shí)現(xiàn)輸出時(shí)鐘對輸入時(shí)鐘的倍頻、同步和跟蹤。
間隔采樣模塊根據(jù)取固定點(diǎn)數(shù)比較的算法對高倍采樣模塊輸出的信號進(jìn)行間隔采樣,間隔采樣一方面保證了計(jì)算速度,另一方面使算法能夠容忍輸出時(shí)鐘的正常偏差范圍,提高了時(shí)鐘跟蹤環(huán)路鎖定的可靠性。
本發(fā)明的方法可通過內(nèi)部軟件實(shí)現(xiàn),不需要外部指令控制,利用異步串口通信原理,判斷采樣的時(shí)鐘信號是否滿足倍頻的倍數(shù),并通過選取合適的采樣倍數(shù),保證了程序計(jì)算速度,使輸出時(shí)鐘在正常偏差范圍內(nèi)控制DLL鎖相環(huán)正常工作,實(shí)現(xiàn)輸出時(shí)鐘對輸入時(shí)鐘的倍頻、同步和跟蹤。
本發(fā)明主要應(yīng)用于FPGA內(nèi)部數(shù)字延遲鎖相環(huán)DLL的時(shí)鐘跟蹤環(huán)在外部輸入信號變化或質(zhì)量較差時(shí)誤鎖情況下,消除DLL輸入時(shí)鐘抖動或間斷對DLL正常鎖定的影響,提升了DLL數(shù)字鎖相環(huán)的適應(yīng)性。本發(fā)明同樣適用于其他數(shù)據(jù)傳輸系統(tǒng)的時(shí)鐘跟蹤環(huán)技術(shù)。經(jīng)仿真和試驗(yàn),本發(fā)明在輸入傳輸時(shí)鐘存在較大抖動的情況下,依然能夠?qū)崿F(xiàn)時(shí)鐘跟蹤環(huán)路的正常鎖定跟蹤,滿足系統(tǒng)性能,提高了DLL環(huán)的可靠性,減小了傳輸時(shí)鐘抖動對時(shí)鐘跟蹤環(huán)路的影響。
圖6為Xilinx公司FPGA內(nèi)部使用的DLL IP核實(shí)現(xiàn)時(shí)鐘跟蹤環(huán)的系統(tǒng)框圖,提供了一種基于延遲鎖相環(huán)的DLL電路。
根據(jù)Xilinx公司產(chǎn)品手冊,DLL對輸入時(shí)鐘的要求為:其輸入時(shí)鐘信號的周期變化小于1ns,輸入時(shí)鐘的周期間抖動(cycle to cycle jitter)小于±300ps,在滿足輸入時(shí)鐘要求的條件下,正常鎖定并工作。此抖動指標(biāo)要求較高,若其輸入時(shí)鐘的抖動超出允許范圍,則可能造成DLL失鎖。時(shí)鐘的抖動就是它的實(shí)際邊沿偏離其理想邊沿的變化量。如圖3所示,黑色實(shí)線為時(shí)鐘信號的理想邊沿,虛線表示時(shí)鐘發(fā)生了抖動。在每個時(shí)鐘邊沿,實(shí)際時(shí)鐘沿和理想位置都存在變化量,最大變化量和最小變化量之間的差值為峰峰值抖動。
根據(jù)上述定義和實(shí)測結(jié)果,周期與周期間抖動是一個統(tǒng)計(jì)值,并且是一個隨機(jī)過程,它服從高斯分布,其最大值為小概率出現(xiàn),距離直方圖中心位置的統(tǒng)計(jì)距離稱為標(biāo)準(zhǔn)偏差σ(sigma),由于DLL是一個全數(shù)字的高可靠設(shè)計(jì),Xilinx規(guī)定±7σ的抖動偏差,或最大抖動為14σ。
±7σ的偏差保證了99.9999999997%的抖動值都小于規(guī)定的最差抖動值;±6σ的偏差保證了99.9999998%的抖動值都小于規(guī)定的最差抖動值;±5σ的偏差保證了99.99994%的抖動值都小于規(guī)定的最差抖動值;±4σ的偏差保證了99.994%的抖動值都小于規(guī)定的最差抖動值;±3σ的偏差保證了99.73%的抖動值都小于規(guī)定的最差抖動值;±2σ的偏差保證了95.45%的抖動值都小于規(guī)定的最差抖動值;±1σ的偏差保證了68.28%的抖動值都小于規(guī)定的最差抖動值,如圖4所示。
周期間抖動值的概率分布,解釋了單機(jī)的時(shí)鐘抖動信號為1.0ns時(shí),其超出DLL要求范圍的抖動值為約±2σ處,即單機(jī)DLL鎖相環(huán)每100次開機(jī),會有4.55次的概率失鎖,95.45次的概率鎖定。
為了避免傳輸時(shí)鐘抖動過大,影響單機(jī)時(shí)鐘正常鎖定的問題,由于DLL是FPGA內(nèi)置功能模塊,考慮采用軟件的方式利用本發(fā)明的方法增強(qiáng)DLL的適應(yīng)性,有利于降低功耗、小型化和成本控制;且DLL鎖相環(huán)的輸入時(shí)鐘頻率范圍一般較寬,如Xilinx公司Virtex系列為25MHz~90MHz,在此范圍內(nèi)的輸入時(shí)鐘,無需更換器件即可實(shí)現(xiàn)頻率倍頻、分頻功能;元器件數(shù)量的減少也可以提高單機(jī)的可靠性;最后,由于DLL倍頻、分頻電路是在FPGA內(nèi)部通過軟件實(shí)現(xiàn)的,具有一定的靈活性,在需求更改的情況下,無需更改硬件電路,通過軟件的更改即可適應(yīng)需求的變化。
這里以DLL輸入時(shí)鐘45MHz,DLL輸出時(shí)鐘完成4/3倍頻(即60MHz)為例,介紹本發(fā)明的方法。
首先,根據(jù)輸入和輸出時(shí)鐘倍數(shù)關(guān)系確定用于監(jiān)控的輸出分頻倍數(shù),根據(jù)經(jīng)驗(yàn),一般為了程序簡單,采取2N分頻(N取4、5或6),這里N取5,即輸出60MHz時(shí)鐘進(jìn)行32分頻,分頻后的時(shí)鐘頻率為1.875MHz。而以輸入時(shí)鐘作為分頻后時(shí)鐘的采樣時(shí)鐘,采樣倍數(shù)為45MHz/1.875MHz=24,即分頻后一個時(shí)鐘周期內(nèi)有24個采樣點(diǎn),如圖5所示。
其次,以第一次找到分頻后輸出時(shí)鐘下降沿為計(jì)數(shù)開始,對計(jì)數(shù)器進(jìn)行清零并計(jì)數(shù),計(jì)數(shù)范圍設(shè)大于后端判斷所需的200即可,這里選為100萬點(diǎn)(對應(yīng)45MHz時(shí)鐘即22ms判斷一次)。計(jì)數(shù)完成后重新進(jìn)行下一次查找分頻后輸出時(shí)鐘下降沿和計(jì)數(shù)器清零計(jì)算。
最后,以輸入時(shí)鐘的3個采樣點(diǎn)為間隔對分頻后的輸出時(shí)鐘進(jìn)行采樣,連續(xù)采樣30個待判斷數(shù)據(jù),其中判斷數(shù)據(jù)的個數(shù)決定了時(shí)鐘容忍誤差的大小。如這里采樣的30個待判斷數(shù)據(jù)應(yīng)為“000111000111000111000111000111”,若30個待判斷數(shù)據(jù)有1bit或以上的比特錯誤,則認(rèn)為DLL工作異常,對DLL鎖相環(huán)進(jìn)行自動復(fù)位,重新鎖定,此時(shí)產(chǎn)生時(shí)鐘判決容忍累積誤差為1/24/5=0.83%。若縮短待判數(shù)據(jù)長度將增大容忍累積誤差范圍,增加數(shù)據(jù)長度將減小容忍累積誤差范圍,具體長度可根據(jù)輸入時(shí)鐘的質(zhì)量確定,推薦時(shí)鐘容忍誤差設(shè)為1%左右比較適合。
Xilinx FPGA自帶的DLL鎖相環(huán)鎖定范圍為1ns,對輸入時(shí)鐘的周期與周期之間的抖動要求小于300ps,若超過要求的值,可根據(jù)以上的方法,對DLL鎖相環(huán)進(jìn)行自動判斷和復(fù)位,以保證DLL穩(wěn)定可靠的工作。
顯然,本領(lǐng)域的技術(shù)人員可以對發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。