<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的數(shù)字復(fù)接系統(tǒng)幀同步器設(shè)計(jì)與實(shí)現(xiàn)

          基于FPGA的數(shù)字復(fù)接系統(tǒng)幀同步器設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2005-09-27 來源:網(wǎng)絡(luò) 收藏

          摘要:介紹了應(yīng)用FPGA技術(shù)進(jìn)行設(shè)計(jì)的實(shí)現(xiàn)原理、框圖及設(shè)計(jì)中需要注意的問題,給出了用VHDL描述的幾個(gè)模塊的源代碼。

          關(guān)鍵詞:;FPGA

          在數(shù)字通信網(wǎng)中,為了提高傳輸效率,常常需要將若干路低速數(shù)字信號(hào)合并成一路高速數(shù)字信號(hào),以便通過高速信道進(jìn)行傳輸。實(shí)現(xiàn)此功能的設(shè)備稱為。

          包括發(fā)送端和接收端兩部分,通常稱為復(fù)接器和分接器。為了使分接器的幀狀態(tài)相對(duì)于復(fù)接器的幀狀態(tài)獲得并保持相位關(guān)系,以便正確地實(shí)施分接,數(shù)字復(fù)接系統(tǒng)在發(fā)送端把低速數(shù)字信號(hào)合并為高速信號(hào)的同時(shí),往往還要插入用于同步的幀同步碼;而在接收端,分接器要把發(fā)送端數(shù)字信號(hào)中的幀同步碼檢測(cè)出來并去除,然后才能分解為原來的支路數(shù)字信號(hào),其中完成幀同步碼檢出這一功能的單元稱為數(shù)字復(fù)接系統(tǒng)的。在合路數(shù)字信號(hào)中,幀同步碼能否被準(zhǔn)確識(shí)別直接決定了能否正確的分接出各個(gè)支路信號(hào)。

          目前,FPGA已在通信領(lǐng)域得到了廣泛應(yīng)用,這也為數(shù)字復(fù)接技術(shù)提供了靈活且可移植的設(shè)計(jì)方法。本文將介紹數(shù)字復(fù)接系統(tǒng)中幀同步器的工作原理和FPGA的設(shè)計(jì)流程,同時(shí)將給出具體實(shí)現(xiàn)方法以及設(shè)計(jì)中需要注意的問題。

          1 幀同步器原理

          圖1是筆者設(shè)計(jì)的一種數(shù)字復(fù)接系統(tǒng)接收端的原理框圖。其中,定時(shí)發(fā)生器為幀同步系統(tǒng)提供幀定位標(biāo)志信號(hào);幀同步系統(tǒng)用來檢測(cè)所傳輸數(shù)據(jù)碼流中的幀同步碼;比特分接電路用于把串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù);告警優(yōu)先電路用來指示當(dāng)前系統(tǒng)處于同步狀態(tài)還是失步狀態(tài)。

          在復(fù)接系統(tǒng)的發(fā)送端,可以將幀同步碼集中插在每幀的開頭位置;也可以將其分散插在各個(gè)支路的前面。前者稱為幀同步碼集中插入法,后者稱為分散插入法。圖2所示是使用集中插入法時(shí),接收端幀同步器的原理框圖。

          通常幀同步電路有兩種狀態(tài),同步未建立時(shí)系統(tǒng)處于搜捕態(tài),建立后則處于保持態(tài);保持態(tài)下的同步保護(hù)措施稱為前方保護(hù),搜捕態(tài)下的同步保護(hù)措施稱為后方保護(hù)。幀同步系統(tǒng)電路設(shè)計(jì)的原則是:同步建立時(shí),假同步概率要??;同步建立后,漏同步概率要小。

          圖2中的幀同步器前端是由8位移位寄存器組成的幀同步碼檢測(cè)電路,當(dāng)輸入碼流中無同步碼組時(shí),檢測(cè)電路輸出始終為1,這時(shí)定時(shí)發(fā)生器關(guān)閉,比較/計(jì)數(shù)電路(由a、b、c、d四個(gè)D觸發(fā)器組成)不工作,系統(tǒng)處于搜捕態(tài);一旦在輸入碼流中檢測(cè)到同步碼組,檢測(cè)電路輸出就為0,定時(shí)發(fā)生器開始產(chǎn)生比較/計(jì)數(shù)電路的計(jì)數(shù)時(shí)鐘,計(jì)數(shù)器開始后方保護(hù)計(jì)數(shù);如果隨后在規(guī)定時(shí)刻上又連續(xù)α-1次(圖中α=3)檢測(cè)到幀同步碼組,則系統(tǒng)同步,幀同步器進(jìn)入保持態(tài)。在同步保持狀態(tài)下,一旦幀同步碼檢測(cè)電路在規(guī)定時(shí)刻有一次未發(fā)現(xiàn)幀同步碼,比較/計(jì)數(shù)電路便開始前方保護(hù)計(jì)數(shù),如果隨后在規(guī)定時(shí)刻上又連續(xù)β-1次(圖中β=4)檢測(cè)不到幀同步碼,則定時(shí)發(fā)生器關(guān)閉,幀同步器由保持態(tài)進(jìn)入搜捕態(tài),重新捕捉幀同步碼。

          值得注意的是,如果搜捕中第一次檢測(cè)到的是假的同步碼組(即在傳送的碼元中有一段數(shù)據(jù)與幀同步碼相同,但其出現(xiàn)的位置不是在規(guī)定的同步碼位置上),定時(shí)發(fā)生器仍不工作,此時(shí)幀同步碼檢測(cè)電路將繼續(xù)搜捕,直至檢測(cè)到真正的幀同步碼為止。

          2 FPGA設(shè)計(jì)與實(shí)現(xiàn)

          在FPGA設(shè)計(jì)中,幀同步器主要由幀同步碼檢出、保護(hù)和校核計(jì)數(shù)、幀失步調(diào)整控制門三部分組成。圖3中的虛線框部分就是幀同步器。下面給出用VHDL語言設(shè)計(jì)幀同步器的幾個(gè)進(jìn)程模塊。

          2.1 同步碼檢測(cè)電路

          幀同步碼檢測(cè)電路由8位移位寄存器組成,這里把幀同步碼設(shè)定為8位最佳碼“10111000”,當(dāng)電路檢測(cè)到輸入碼流中有幀同步碼組時(shí),檢測(cè)電路將輸出“0”;否則將輸出“1”。輸出結(jié)果將作為定時(shí)發(fā)生器的控制信號(hào)之一。具體程序如下(其中d in為串行輸入碼流,yf1是檢測(cè)電路輸出的結(jié)果):

          process(clk)

          begin

          if ( clk'event and clk=′1′) then

          output<=d_in&output(7 down to 1);

          end if;

          end process p2;

          yfl<= not((not output(7))and (not output(6)) and ( not output(5)) and output(4) and output(3) and output(2) and (not output(1))?and output(0)); ??

          --″10111000″

          2.2 定時(shí)發(fā)生器

          定時(shí)發(fā)生器可對(duì)時(shí)鐘clk進(jìn)行n分頻,分頻后的周期等于幀周期(一幀有n個(gè)碼元,這里n=88)。 定時(shí)發(fā)生器主要用來產(chǎn)生幀定位標(biāo)志信號(hào),該信號(hào)是產(chǎn)生比較/計(jì)數(shù)電路計(jì)數(shù)時(shí)鐘clk yf5的信號(hào)之一。在下面的程序中,clk為時(shí)鐘,yf4為控制門輸出信號(hào),用于控制定時(shí)發(fā)生器的打開和關(guān)閉,f8為幀定位標(biāo)志信號(hào)。具體程序如下:

          process(reset,clk,yf4)

          begin

          if reset=′1′ then

          f8<=′1′;

          elsif clk'event and clk=′0′ then

          if yf4=′0′then

          countf<=″0000000″?

          f8<=′1′;

          elsif countf=″1010111″ then

          countf<=″0000000″;

          f8<=′1′;

          else

          countf<=countf+1;

          f8<=′0′;

          end if;

          end if;

          end process

          2.3 控制門

          控制門主要由RS觸發(fā)器構(gòu)成,用來判斷系統(tǒng)是同步還是失步。同步時(shí),RS觸發(fā)器的Q端輸出1,Q 端輸出0;失步時(shí),Q端輸出0,Q 端輸出1。Q端可作為進(jìn)一步分接數(shù)據(jù)的控制信號(hào), Q 端輸出結(jié)果可打開或關(guān)閉控制門yf4。具體程序如下:

          process(clk)

          begin

          if clk'event and clk=′1′ then

          rs<=(R&S);?

          case rs is

          when″01″=> Q1<= ′1′;

          Q<=′0′;

          when ″10″=> Q1<= ′0′;?

          Q<=′1′;

          when ″11″=> Q<=RSq;

          Q1<= RSq1;

          when others => null;

          end case;

          end if;

          end process

          2.4 比較/計(jì)數(shù)電路

          比較/計(jì)數(shù)電路用于完成搜捕態(tài)與保持態(tài)下的計(jì)數(shù)。搜捕態(tài)下,當(dāng)幀同步碼檢測(cè)電路連續(xù)3?α=3?次捕獲到同相位的正確幀同步碼時(shí),幀同步器將進(jìn)入保持態(tài);而在保持態(tài)下,如果幀同步碼檢測(cè)電路連續(xù)4(β=4)次未檢測(cè)到幀同步碼,幀同步器將進(jìn)入搜捕態(tài)。程序如下(其中,比較/計(jì)數(shù)電路計(jì)數(shù)時(shí)鐘clk_yf5由幀定位標(biāo)志信號(hào)f8和時(shí)鐘clk產(chǎn)生,yf2為輸出保持結(jié)果,yf3為輸出搜捕結(jié)果):

          clk_yf5<=not (f8 and clk) ;產(chǎn)生比較/計(jì)數(shù)電路所需時(shí)鐘

          process(reset,clk_yf5) ;比較/計(jì)數(shù)電路

          begin

          if reset=′1′ then

          qa<=′0′;qb<=′0′;qc<=′0′;

          qa1<=′1′;qb1<=′1′;qc1<=′1′;qd1<=′1′;

          --protel<=″0000″;

          elsif clk_yf5'event and clk_yf5=′1′ then

          qa<=qe1;

          qa1<=qe;

          qb<=qa;

          qb1<=qa1;

          qc<=qb;

          qc1<= qb1;

          qd1<=qc1;

          end if;

          end process; ?

          yf2<=not(qa1 and qb1 and qc1 and qd1);

          yf3<=not(qa and qb and qc);

          3 設(shè)計(jì)中需要注意的問題

          設(shè)計(jì)中要嚴(yán)格控制定時(shí)發(fā)生器產(chǎn)生時(shí)鐘clk_yf5的寬度,以避免出現(xiàn)不定狀態(tài)。如果幀定位標(biāo)志信號(hào)f8與幀同步檢出電路都是由時(shí)鐘clk的上升沿或下降沿產(chǎn)生的,那么clk_yf5脈沖中就會(huì)出現(xiàn)一小段不定狀態(tài),而在這段時(shí)間里幀同步系統(tǒng)是不能正常工作的。所以,幀定位標(biāo)志信號(hào)f8由時(shí)鐘clk的下降沿觸發(fā)產(chǎn)生,幀同步檢出電路則由時(shí)鐘clk的上升沿觸發(fā),這樣便可以得到一半碼元寬度的時(shí)鐘clk_yf5脈沖,且脈沖中不存在不定狀態(tài)。

          設(shè)計(jì)中應(yīng)多采用同步時(shí)序電路來實(shí)現(xiàn)各個(gè)進(jìn)程模塊的功能,以免電路中產(chǎn)生毛刺。

          4 結(jié)束語

          本設(shè)計(jì)選用Xilinx公司的ISE5.2作為硬件開發(fā)平臺(tái),并采用VHDL編程語言。文中程序已通過了綜合實(shí)驗(yàn),并進(jìn)行了功能仿真和時(shí)序仿真,仿真結(jié)果正確。在硬件實(shí)現(xiàn)與調(diào)試過程中,將程序下載到Xilinx公司的VIRTEX芯片,然后經(jīng)過整體調(diào)試,最終實(shí)現(xiàn)了數(shù)字復(fù)接系統(tǒng)中幀同步器的設(shè)計(jì)。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();