基于FPGA二次群分接器的實現(xiàn)
3.二次群幀頭捕獲及幀丟失告警
根據(jù)上面二次群幀結(jié)構(gòu)的分析,二次群的幀頭信碼為:”1111010000“10個bit,在FPGA中,定義一個10位的寄存器,二次群信碼從右向左進入10位寄存器,如果10位寄存器的值連續(xù)兩次為:”1111010000則表示幀頭捕獲成功,幀同步建立。同樣如何連續(xù)兩個二次群幀時間長度內(nèi)沒有捕獲到幀頭信碼,則表示幀丟失,產(chǎn)生幀丟失告警。VHDL語言代碼實現(xiàn)如下程序段:
4.基群信號提取
一個二次群信號復(fù)接了四個基群信號,基群信號提取是在二次群幀同步的狀態(tài)下把二次群信號按一分四的規(guī)則進行串并轉(zhuǎn)化。因為二次的復(fù)接是按bit復(fù)接,所以二次群一幀中第一位為第一個群的第一位,二次群一幀中第二位為第二個群的第一位,以此類推。VHDL語言代碼實現(xiàn)如下程序段:
5.去除插入碼及負碼速調(diào)整
去除插入碼及負碼速調(diào)整是二次群的關(guān)鍵部分,首先要去除幀頭插入的F1、F2和F3;接著去除C1、C25DC3;最后根據(jù)C1、C2和C3值來判斷第161位V否為插入碼,如果C1C2C3為:1 11,則V是插入碼應(yīng)去除,如果C1C2C3為:000,則V是基群的信碼,不應(yīng)去除。把去除了插入碼的信號輸入到一個FIFO,用經(jīng)過負碼速調(diào)整過的2.048MHz時鐘讀出輸出基群信號如圖3所示。
由于寫到FIF0的時鐘是不均勻的,不利于后端處理,所以必須做負碼速調(diào)整,即把2.112MHz速率調(diào)整到2.048MHz速率。FPGA實現(xiàn)的原理是根據(jù)2.112MHz速率和2.048MHz速率的有效信碼個數(shù)是一樣多的,可以根據(jù)它們的個數(shù)進行調(diào)整。如果根據(jù)2.048MHz速率輸出的信碼少了則稍微提高2.048MH z時鐘的頻率,如果根據(jù)2.048MHz速率輸出的信碼多了則稍微降低2.048MHz時鐘的頻率。
評論