基于FPGA的多路數字信號復接系統設計與實(shí)現
摘要 數字復分接技術(shù)是數字通信網(wǎng)中的一項重要技術(shù),能將若干路低速信號合并為一路高速信號,以提高帶寬利用率和數據傳輸效率。文中在介紹數字復接系統的基礎上,采用VHDL對數字復分接系統進(jìn)行建模設計和實(shí)現。并利用乒乓操作和先進(jìn)先出存儲器(FIFO)對復接器進(jìn)行設計,利用幀同步器對數據進(jìn)行分接。以QuartusII8.0為仿真軟件,對設計進(jìn)行仿真驗證,仿真結果表明,設計實(shí)現了復接系統,便于修改電路結構,增強了設計的靈活性,且節約了系統資源。
本文引用地址:http://dyxdggzs.com/article/201610/306478.htm數字通信系統中,為了提高信道的利用率,使多路信號在同一條信道上傳輸時(shí)互相不產(chǎn)生相干的方式稱(chēng)為多路復用。在時(shí)分復用中,將時(shí)間劃分為若干時(shí)隙,各路信號在時(shí)間上占用各自的時(shí)隙,即多路信號在不同時(shí)間內被傳送,各路信號在時(shí)域中互不重疊。數字復接終端是將若干低速率碼流變換成一路高速率碼流的設備。應用可編程邏輯門(mén)陣列(FPGA)芯片實(shí)現復接系統便于修改電路結構,增強了設計的靈活性,并節約了系統資源。
1 多路復接系統設計要求
(1)實(shí)現兩路數據的同步復接。(2)支路速率為32 kbit·s-1。(3)按位復接。(4)幀同步碼字為10 bit:“1 0 1 1 0 1 0 01 1”。(5)幀長(cháng)128 bit。
2 數字復接系統基本原理
2.1 數字復接系統
數字復接終端的作用是將低速數據碼流變換成高速數據碼流的設備。將兩個(gè)或兩個(gè)以上的支路數字信號按時(shí)分復用方式合并成單一的合路數字信號的過(guò)程稱(chēng)為數字復接;完成數字復接功能的設備稱(chēng)為數字復接器;在接收端將一路復合數字信號分離成各支路信號的過(guò)程稱(chēng)為數字分接。數字復接器、數字分接器和傳輸傳道共同構成了數字復接系統。
2.2 按位復接
復接的方式有:按位、按字和按幀復接等方式。本文采用按位復接的方法,方法是每次僅依次復接每一個(gè)支路的一位碼,又稱(chēng)比特復接。復接后的碼序列中第一個(gè)時(shí)隙中的第一位表示第一路的第一位碼;第二位表示第二路的第一位碼;依此類(lèi)推,則第n位表示第n路的第一位碼。2路串行數據按位復接原理框圖如圖1所示。

3 數字復接系統的建模與仿真
3.1 復接器總體設計方案
復接器的設計方案如下:首先對兩支路串行數據數字信號進(jìn)行按位復接合成一路信號;用FIFO定義2個(gè)128 bit幀格式,幀同步碼為10 bit“1011010011”,采用乒乓操作對合路數據每118位依次存儲到FIFO中,即將合路數每118位插入一個(gè)幀同步碼,形成128位的幀。乒乓操作是輸入合路數據流通過(guò)輸入數據選擇單元等時(shí)地將數據流分配到兩個(gè)FIFO數據緩沖區。當FIFO緩沖區1寫(xiě)入數據操作時(shí),從FIFO緩沖區2中讀取數據操作;當FIFO緩沖區1讀數據操作時(shí),FIFO緩沖區2中進(jìn)行寫(xiě)操作;如此循環(huán),可實(shí)現2路數據復接,具體如圖2所示。

3.2 復接器關(guān)鍵模塊設計
(1)合路模塊。合路模塊功能是將兩路串行數據按位復接成一路數據,合路模塊輸出的是未接入幀同步碼的數據,對于各支路數據輸入需使用clksel時(shí)鐘作為控制。合路輸出為y信號,D0、D1是兩路串行數據,clksel是兩支路控制輸出信號。從仿真圖3中可看出,其能將D0和D1合成一路信號y輸出,仿真結果正確。

(2)乒乓操作FIFO模塊。乒乓操作FIFO模塊的功能是對合路數據加入幀同步碼。乒乓操作FIFO框圖如圖4所示。乒乓操作處理流程如下:輸入數據流通過(guò)輸入數據選擇單元將數據流分配到兩個(gè)數據緩沖區。在第1個(gè)緩沖周期中,將輸入的數據流緩存到數據緩沖模塊1;在第2個(gè)緩沖周期中,通過(guò)輸入數據選擇單元的切換,將輸入的數據流緩存到數據緩沖模塊2。同時(shí),將數據緩沖模塊1緩存的第1個(gè)周期的數據通過(guò)輸出數據選擇單元的選擇,送到運算處理單元進(jìn)行處理;在第3個(gè)緩沖周期,再次切換數據的進(jìn)入與輸出緩沖模塊。

空滿(mǎn)信號的產(chǎn)生是設計FIFO的關(guān)鍵之一,本文通過(guò)異步的比較讀寫(xiě)指針ptr以及讀寫(xiě)指針的MSB進(jìn)行判斷,然后產(chǎn)生兩個(gè)異步的空滿(mǎn)標志信號送入讀寫(xiě)模塊進(jìn)行同步,最后向外界輸出兩個(gè)同步的空滿(mǎn)信號。圖5的方框內可看出空判斷信號atmpty和滿(mǎn)判斷信號afull是取反的關(guān)系。當一個(gè)RAM數據讀完時(shí),另一個(gè)RAM寫(xiě)滿(mǎn)。

圖6中input,是M序列偽隨機碼,“10011101”作為測試信號??烧J為M序列偽隨機碼是由兩支路信號合路而得到的信號。從仿真波形可看出,空滿(mǎn)判斷信號rmsb和wrsb1互為取反關(guān)系,滿(mǎn)足要求。rptr是讀地址信號從FIFO的首地址開(kāi)始讀取數據的。wptr寫(xiě)地址信號是從FIFO的第10個(gè)存儲單元開(kāi)始寫(xiě)入數據的,這是因為FIFO的前10個(gè)存儲單元使用的是做幀同步碼“1011010011”。zongshu信號端是隨機碼加入幀同步碼后的輸出。

3.3 分接器關(guān)鍵模塊設計
圖7是分接器的原理框圖。定時(shí)發(fā)生器為幀同步系統提供幀定位標志信號;幀同步系統用來(lái)檢測所傳輸數據碼流中的幀同步碼;比特分接電路則用于將串行數據轉換為并行數據。

(1)幀同步碼檢測。幀同步碼檢測電路由10位移位寄存器組成,將幀同步碼設定為10位最佳碼“1011010011”,當電路檢測到輸入碼流中有幀同步碼組時(shí),檢測電路將輸出“0”;否則將輸出‘1’。輸出結果將作為定時(shí)發(fā)生器的控制信號之一。仿真波形如圖8所示,方框內表示搜索得到的幀頭。幀頭為“1011010011”。

(2)定時(shí)發(fā)生器。定時(shí)發(fā)生器可對時(shí)鐘clk進(jìn)行n分頻,分頻后的周期等于幀周期。定時(shí)發(fā)生器主要用以產(chǎn)生幀定位標志信號,仿真波形如圖9所示。從框中可看出幀定位標志信號。

(3)分路電路。兩路數據,可采用一路利用上升沿觸發(fā),另一路用下降沿觸發(fā)。進(jìn)而將數據存到D鎖存器后,再進(jìn)行輸出。這便可將一路數據變成兩路。
該分路模塊的輸入是二級緩存的輸出,如圖10所示。

3.4 復分接系統總體設計
將所設計的復接器與分接器相連接,從仿真圖11中可看出,輸出的兩支路信號outa和outb的信號和復接前輸入的兩支路信號a和b的速率,與所包含的信息完全對應。分別改變輸入信號a和b,最后分接出的信號同復接前的輸入信號一致,證明了設計的復分接系統的正確性和可靠性。

4 結束語(yǔ)
文中介紹了復分接系統的原理,并給出2路復分接系統建模方案。利用FIFO定義2個(gè)128 bit幀格式,10 bit幀同步碼,采用乒乓操作對合路數據每118位依次存儲到FIFO中,再將合路數每118位插入一個(gè)幀同步碼,形成128位的幀,即可實(shí)現兩路復接。同時(shí)對來(lái)自復接器的串行碼流進(jìn)行自動(dòng)幀識別定位分接,實(shí)現主碼流中兩個(gè)支路串行數據的同步復接。本系統中各模塊的仿真均在QuartusII 8.0中得到了驗證。
評論