新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 一種快速位同步時鐘提取方案及實現(xiàn)

一種快速位同步時鐘提取方案及實現(xiàn)

作者: 時間:2008-01-04 來源:網(wǎng)絡 收藏
摘 要:本文比較了兩種常用位同步提取電路的優(yōu)缺點,在此基礎上提出了一種基于CPLD/FPGA、用于數(shù)字通信系統(tǒng)的新型快速位同步。此借助Altera的設計工具設計了位同步提取電路,并利用FPGA予以實現(xiàn),同時給出了該電路的仿真試驗波形圖。

  關鍵詞:CPLD/FPGA;位同步;VHDL;通信系統(tǒng)

  引言

  在數(shù)字通信系統(tǒng)中,同步技術是非常重要的,而位同步是最基本的同步。信號不僅用于監(jiān)測輸入碼元信號,確保收發(fā)同步,而且在獲取禎同步、群同步及對接收的數(shù)字碼元進行各種處理的過程中,也為系統(tǒng)提供了一個基準的同步時鐘。

  隨著可編程器件容量的增加,設計師傾向于把位同步電路設計在CPLD/FPGA芯片內部。因此,本文采用Quartus II軟件設計了一種新型的位同步提取電路,對電路進行了仿真試驗,并使用Altera的Cyclone II系列FPGA芯片EP2C5予以實現(xiàn)。

  在CPLD/FPGA上實現(xiàn)位同步,最簡單直接的辦法就是利用FPGA的片上鎖相環(huán)。但這種鎖相環(huán)要求的輸入時鐘范圍是10MHz~100MHz,它對于低速數(shù)據(jù)顯得無能為力。而且,對于中低檔FPGA來說,鎖相環(huán)是稀缺資源,很多時候被用作系統(tǒng)時鐘鎖相。CPLD片上則沒有鎖相環(huán),大部分應用都需要設計師自己設計位同步電路。

  兩種位同步提取電路性能分析

  目前在CPLD/FPGA上常用的位同步可分為兩類:一是采用鎖相環(huán)的閉環(huán)相位調整電路,二是采用開環(huán)結構的位同步電路。下面用兩個典型的設計電路來討論這兩種方案的優(yōu)缺點。

  基于超前滯后型鎖相環(huán)的位同步提取電路

  這種電路一般采用添/扣門結構,如圖1所示,每輸入一個碼元后,根據(jù)鑒相器輸出是超前還是滯后,通過反饋回路控制的添/扣門來調整相位,使之逼近輸入碼元的相位。為了提高精度,這種方案只能采用更短的調整脈沖,一旦失步,就需要通過反饋回路重新調整。每一個超前和滯后脈沖僅能調整一步,如果接收碼元出現(xiàn)連“0”或是連“1”的情況,鎖定時間會很長,使其同步建立時間和調整精度變得相互制約。盡管有此缺點,但由于這種結構具有失鎖后的自我調節(jié)性,因此,碼元消失或是碼元相位出現(xiàn)抖動時,同步脈沖不會出現(xiàn)較大變化,仍然可以輸出穩(wěn)定的同步脈沖。

圖1 數(shù)字鎖相環(huán)法位同步提取原理框圖

  采用開環(huán)結構的快速位同步電路

  由于這種結構沒有采用閉環(huán)的相位調節(jié)電路,所以要求在每一個輸入碼元跳變沿實現(xiàn)與輸出的同步脈沖跳變沿相位對齊。所以,通常采用這種結構的位同步電路能夠快速實現(xiàn)同步。其典型實例如圖2所示。

圖2 開環(huán)位同步提取電路框圖

  跳變沿提取電路的作用是,當產(chǎn)生一個邊沿脈沖時,它直接反映了輸入信號的真實相位。以它為基準,就可以有效地提取出與輸入信號同步的時鐘。時鐘同步的原理就是利用這個邊沿脈沖清零計數(shù)器,輸出反映輸入碼元相位的一個高精度時鐘源周期的短脈沖。圖中狀態(tài)寄存器保證了在接收碼元出現(xiàn)連“0”或是連“1”時仍然會有固定的反映碼元時鐘的短脈沖輸出??梢?,這種設計與數(shù)字鎖相環(huán)法相比,優(yōu)點主要是可以快速提取位同步脈沖,并進行實時輸出。另外,這種電路結構要更節(jié)省硬件資源。

  該電路也有兩大缺點,首先,輸出S并不是占空比為50%的時鐘脈沖,而是間隔不固定的短脈沖。此缺點可以通過增加一個時鐘整形電路來解決。第二個缺點是,由于跳變沿提取電路的輸出X3(clr)具有對計數(shù)器清零的作用,如果跳變沿出現(xiàn)抖動的話,這種跳變沿會和計數(shù)器原先的輸出產(chǎn)生沖突,造成輸出時鐘信號占空比大幅度變化,嚴重時會出現(xiàn)毛刺。這對后續(xù)電路功能的實現(xiàn)無疑會產(chǎn)生致命的影響,很可能導致設計失敗。

  新型快速位同步提取方案

  綜合以上兩種設計的優(yōu)缺點,本文提出了一種新型的設計方案,其原理框圖如圖3所示。該方案實現(xiàn)位同步的基本原理是利用輸入碼元的跳變沿脈沖作為計數(shù)器的清零輸入信號,這里高精度時鐘的頻率為F,碼元速率為f,取F=2Nf=2N/T(T為輸入的不歸零碼元的寬度)。原理圖中的計數(shù)器為N進制自動增加計數(shù)器。當輸入清零信號后,計數(shù)器輸出翻轉。當輸入碼元出現(xiàn)連“0”或是連“1”時,一個碼元的長度為2NT。由于計數(shù)器為N進制,計數(shù)器的計數(shù)值回到0時,計數(shù)器的輸出仍然翻轉,占空比為:NT/2NT=50%。這樣就保證了一個輸入碼元的寬度對應了占空比為50%的時鐘信號,即實現(xiàn)了輸入碼元與計數(shù)器輸出CLKOUT時鐘的同步。

  圖3中數(shù)字濾波器的作用是將輸入碼元中的窄脈沖干擾濾除掉,這部分電路較簡單,在此不作介紹。跳變沿提取電路的作用仍然是提取碼元的跳變沿,這部分作用和實現(xiàn)原理與圖2介紹的方法相同。其中,跳變沿提取電路如圖4所示。

圖3 新型位同步提取電路框圖

圖4 碼元跳變沿脈沖產(chǎn)生電路

  固定延遲單元的作用是,將經(jīng)過跳變沿提取電路之后的碼元信號進行固定時鐘周期的延遲,使之與計數(shù)器的輸出同相,從而達到位同步。

  本設計的關鍵點是帶清零抖動判斷的N進制計數(shù)器的設計。當計數(shù)器清零輸入沒有抖動,而嚴格按照t=n2NT時間出現(xiàn)時(當出現(xiàn)連“1”或是連“0”時,式中n>1,否則n = 1),計數(shù)器計到“0”和清零脈沖同時生效,計數(shù)器輸出翻轉,這時的輸出時鐘是穩(wěn)定的。計數(shù)器的清零輸入信號是由碼元的邊沿脈沖提供的,所謂清零抖動實際上就是輸入碼元的邊沿位置出現(xiàn)抖動,這是符合實際情況的,因為信號的傳輸路徑上不可避免地會產(chǎn)生衰減,并受到干擾,發(fā)送方的數(shù)據(jù)發(fā)送時鐘也有可能存在抖動。下面討論這種抖動對N進制計數(shù)器輸出產(chǎn)生的影響:

  1.當輸入的不歸零碼元的跳變沿出現(xiàn)的時間略小于2NT的整數(shù)倍時,稱之為前向抖動。此時計數(shù)器的清零脈沖出現(xiàn)在計數(shù)器還沒有計數(shù)到 “0”的某個計數(shù)值的位置,比如當計數(shù)器計到N-1時,清零脈沖出現(xiàn),于是計數(shù)器被清零脈沖清零,同時輸出脈沖翻轉。這種情況會使輸出的時鐘脈沖比估計的翻轉時間提前aT=(0+N-(N-1)+1)T=2T,這對時鐘輸出不會產(chǎn)生不利影響。而且,時鐘的翻轉時間實時反映出碼元的變化,有利于后續(xù)電路功能的實現(xiàn)。

  2.當輸入的不歸零碼元的跳變沿出現(xiàn)的時間略大于2NT的整數(shù)倍時,稱之為后向抖動。此時計數(shù)器的清零脈沖出現(xiàn)在計數(shù)器計數(shù)到“0”之后的某個計數(shù)值的位置,比如當計數(shù)值為2時,清零脈沖出現(xiàn)?,F(xiàn)在來看計數(shù)器的輸出,首先當計數(shù)器計到“0”前,計數(shù)器輸出一直維持在“0”;計數(shù)器計到“0”后,計數(shù)器輸出自動翻轉為“1”,然后繼續(xù)計數(shù);當計數(shù)值為2時,清零脈沖出現(xiàn),于是計數(shù)器被清零脈沖清零,同時輸出脈沖翻轉為“0”,計數(shù)器輸出就會出現(xiàn)持續(xù)時間為bT=(2-0)T=2T的窄脈沖。當接收電路的時鐘里出現(xiàn)這種不可預測的窄脈沖時,接收電路位同步之后的后續(xù)電路的功能也就無法正常實現(xiàn)了,這也就是本文剛開始討論的采用開環(huán)結構的快速位同步電路的缺點。

  本文的設計方案中所采用的計數(shù)器是利用VHDL語言設計的、帶清零抖動判斷功能的計數(shù)器。具體來說,它可以判斷清零抖動為前向抖動還是后向抖動。如果是后者,則忽略此次清零脈沖,同時將此之后的某個計數(shù)值減去b,這樣做的目的是防止這種抖動帶來的影響出現(xiàn)累加。依照以上分析及處理辦法,可以設計出帶有清零抖動判斷功能的計數(shù)器。

  a:process(clk,clr) begin

  if clk'event and clk='1' then

  if clr='1' and count>c then count=0;

  elsif clr='1' and count=0 then count=1; zero='1';

  elsif clr='1' and count>0 and count=c then temp=count;

  elsif count=N/2 then

  if zero='1' then count=N/2; zero='0';

  elsif temp=0 then count=count+1;

  else count=N/2-temp+1; temp=0;

  end if;

  else count=count + 1;

  end if;

  end if;

  end process a;

  b:process(clk,clkout) begin

  if clk'event and clk='1' then

  if count=0 then clkout= not clkout;

  end if;

  end if;

  end process b;

  程序中count為當前時刻的計數(shù)值,當清零信號有效時,首先進行0c。這樣可以在碼元跳邊沿之間的計數(shù)值湊夠N的整數(shù)倍,避免了這種抖動帶來的影響出現(xiàn)累加。程序中對清零信號有效且n=0的情況作了特殊考慮。

  本設計方案在Altera的Cyclone II系列FPGA芯片EP2C5上進行了實現(xiàn),在Quartus II環(huán)境下,用VHDL硬件描述語言和電路圖輸入混合設計的方法,完成了整個時鐘提取電路的設計,其仿真結果如圖5所示。仿真中采用的CLK頻率為10MHz,參數(shù)取值為N=32、c=4。仿真圖中各輸入輸出標號與圖3中標號對應。

圖5 仿真波形

  提取電路的性能

  將廣泛采用的鎖相環(huán)路法(模擬鎖相環(huán)和數(shù)字鎖相環(huán))和本文設計的開環(huán)位同步法相比較,本方案有如下優(yōu)點:

  1.本設計基于開環(huán)結構,具備了開環(huán)結構位同步提取電路的快速同步特點。如果輸入不出現(xiàn)較大的相位抖動,輸出時鐘的相位可以實時地反映輸入碼元的相位。

  2.由于具有判斷輸入碼元脈沖邊沿抖動的功能,因此也具有鎖相環(huán)的自適應性。由以上分析可知,當輸入碼元出現(xiàn)抖動而使得輸出時鐘沒有和碼元對齊之后,下一個碼元跳變沿就會重新對齊。這種自適應性比鎖相環(huán)的自適應反應更迅速。

  3.本設計可支持的系統(tǒng)時鐘clk可以達到181MHz,支持的輸入碼元速率最大為(181/N)MHz,可以支持大部分的數(shù)字通信應用。

  4.本設計結構簡單,這種辦法比鎖相環(huán)法更節(jié)省LE資源。當N=32、c=4時,使用EP2C5Q208C8器件,位同步提取電路所消耗的LE數(shù)目僅為26個。

  結語

  實現(xiàn)位同步的方法很多,本文討論的是一種提取位同步信號的新型設計方案。該設計在Quartus II下調試通過并在實踐中得到應用。實踐證明這種方法可以用很少的FPGA資源實現(xiàn)位同步的目的,并具有很高的穩(wěn)定性和可靠性。

  參考文獻:

  1. 段吉海,黃志偉,王毓銀. 基于CPLD/FPGA的數(shù)字通信系統(tǒng)建模與設計. 2004

  2. 陳世偉. 鎖相環(huán)路原理及應用. 兵器工業(yè)出版社, 1990

  3. 王蘭勛,榮民. 一種提取方案及實現(xiàn). 工程應用, 2003



關鍵詞: 位同步時鐘 方案

評論


相關推薦

技術專區(qū)

關閉