朱華偉
(四川文理學(xué)院 國有資產(chǎn)管理處,四川 達(dá)州 635000)
EPON是由位于局端的OLT、位于用戶端的ONU和由無源分光器和光纖線路構(gòu)成的ODN等構(gòu)成的點(diǎn)到多點(diǎn)系統(tǒng),ONU端 LSW位于ONU MAC同用戶側(cè)之間,負(fù)責(zé)數(shù)據(jù)發(fā)送與接收的過濾,緩存,調(diào)度等,其設(shè)計效果直接影響著ONU與用戶側(cè)數(shù)據(jù)交互的質(zhì)量.本文旨在設(shè)計一個數(shù)據(jù)接收控制器,用來對ONU發(fā)往用戶側(cè)的數(shù)據(jù)進(jìn)行接收控制.[1]
LSW數(shù)據(jù)接收控制器接收MAC發(fā)送來的幀數(shù)據(jù)并緩存在FIFO中,當(dāng)MAC發(fā)送來的幀頭指示信號有效時,開始接收幀數(shù)據(jù)及控制信號,并將接收到的幀數(shù)據(jù)和幀控制信號組成72位數(shù)據(jù)寫入FIFO.[2]如果在接收數(shù)據(jù)幀的中途,F(xiàn)IFO 溢出,則丟棄當(dāng)前正在接收的幀,等待下一個幀頭指示信號.數(shù)據(jù)接收控制邏輯每接收一個數(shù)據(jù)幀或丟棄一個數(shù)據(jù)幀都要向CPU接口模塊發(fā)送相應(yīng)的指示信號.
數(shù)據(jù)接收控制器主要由4個子模塊組成,分別為數(shù)據(jù)接收緩存模塊,狀態(tài)機(jī)轉(zhuǎn)換模塊,數(shù)據(jù)接收狀態(tài)指示模塊,發(fā)送/丟棄幀指示模塊.圖1所示為數(shù)據(jù)接收控制器的各子模塊結(jié)構(gòu)框圖.
圖1 數(shù)據(jù)接收邏輯結(jié)構(gòu)框圖
狀態(tài)機(jī)轉(zhuǎn)換邏輯根據(jù)數(shù)據(jù)發(fā)送有效指示信號和FIFO滿狀態(tài)標(biāo)志信號的狀態(tài)生成狀態(tài)機(jī)控制邏輯,控制數(shù)據(jù)的接收.通過發(fā)送控制信號,狀態(tài)機(jī)轉(zhuǎn)換模塊在FIFO溢出時指示FIFO控制器丟棄當(dāng)前幀,并要求CPU接口對丟棄的數(shù)據(jù)幀進(jìn)行計數(shù).同樣通過發(fā)送控制信號,狀態(tài)機(jī)轉(zhuǎn)換模塊在接收完一個完整數(shù)據(jù)幀時要求CPU接口對就收的數(shù)據(jù)幀進(jìn)行計數(shù).與狀態(tài)機(jī)轉(zhuǎn)換模塊的數(shù)據(jù)控制邏輯相關(guān)的信號及其內(nèi)涵如下:
mac2lsw_vlu:接收來自MAC的數(shù)據(jù)有效指示信號,該信號為高電平時,表示MAC正在發(fā)送的數(shù)據(jù)有效.
mac2lsw_sop:接收來自MAC的數(shù)據(jù)幀頭指示信號,高電平脈沖信號,該信號為高電平時,表示接收到數(shù)據(jù)幀的幀頭數(shù)據(jù).
mac2lsw_eop:接收來自MAC的下行數(shù)據(jù)幀尾指示信號,高電平脈沖信號,該信號為高電平時,表示接收到數(shù)據(jù)幀的幀尾數(shù)據(jù).
dgf2cpuif_drop_fra:發(fā)送給CPU接口的丟幀指示信號.每從低電平向高電平跳變一次,表示丟棄一個數(shù)據(jù)幀.
dgf2cpuif_wr_fra:發(fā)送給CPU接口模塊的接收幀指示信號.每從低電平向高電平跳變一次,表示接收到一個數(shù)據(jù)幀.
full:數(shù)據(jù)緩存FIFO滿狀態(tài)標(biāo)志.高電平有效,F(xiàn)IFO滿時,必須停止向FIFO寫入數(shù)據(jù).
圖2 數(shù)據(jù)接收狀態(tài)轉(zhuǎn)換圖
數(shù)據(jù)接收處理邏輯包括4個狀態(tài),分別為數(shù)據(jù)接收開始狀態(tài),數(shù)據(jù)接收狀態(tài),數(shù)據(jù)丟棄狀態(tài),空閑狀態(tài).圖2所示為數(shù)據(jù)幀接收處理邏輯的狀態(tài)轉(zhuǎn)換圖.系統(tǒng)復(fù)位時,狀態(tài)機(jī)處于空閑狀態(tài).當(dāng)幀頭指示信號有效時,如果FIFO沒滿,就開始接收數(shù)據(jù).在接收數(shù)據(jù)幀的過程中,如果FIFO滿了,則向FIFO控制器發(fā)送丟棄幀指示,指示FIFO控制器丟棄已經(jīng)接收的幀數(shù)據(jù),同時向CPU接口發(fā)送丟棄幀指示,用于丟幀計數(shù).如果接收到一個完整幀,則向CPU接口模塊發(fā)送接收幀指示,用于接收幀計數(shù).同時等待接收下一個數(shù)據(jù)幀.
從MAC發(fā)送來的數(shù)據(jù)包含幀數(shù)據(jù)信號和幀控制信號.幀數(shù)據(jù)信號位寬為64位,共8個字節(jié),按照低字節(jié)到高字節(jié)的順序排列;幀控制信號位寬5位,包含幀頭指示信號1位,幀尾信號指示1位,幀數(shù)據(jù)有效指示信號1位,字節(jié)指示信號3位.當(dāng)收到MAC的數(shù)據(jù)發(fā)送指示時,數(shù)據(jù)接收緩存邏輯開始從MAC接收數(shù)據(jù)并把接收的數(shù)據(jù)按表1所示格式重新進(jìn)行組裝,新組裝的數(shù)據(jù)在下一個時鐘周期被發(fā)送給FIFO控制器.
表1 FIFO數(shù)據(jù)保存格式
每接收或丟棄一個完整數(shù)據(jù)幀都要向CPU接口發(fā)送指示信號,以便CPU接口進(jìn)行接收數(shù)據(jù)幀和發(fā)送數(shù)據(jù)幀的統(tǒng)計.
數(shù)據(jù)接收處理邏輯向FIFO控制器發(fā)送的數(shù)據(jù)包含幀數(shù)據(jù)和控制信號,幀數(shù)據(jù)如表一所示,控制信號包括寫數(shù)據(jù)指示信號和丟棄數(shù)據(jù)指示信號.當(dāng)狀態(tài)機(jī)處于開始狀態(tài)或數(shù)據(jù)傳送狀態(tài)時,置寫數(shù)據(jù)指示信號有效,指示FIFO控制器接收數(shù)據(jù);當(dāng)狀態(tài)機(jī)跳轉(zhuǎn)到丟棄數(shù)據(jù)幀狀態(tài)時,置丟棄數(shù)據(jù)指示信號有效,指示FIFO控制器丟棄當(dāng)前正在接收的數(shù)據(jù)幀,包括該數(shù)據(jù)幀已經(jīng)接收的數(shù)據(jù)和將要接收的數(shù)據(jù).
圖3,4所示為數(shù)據(jù)接收控制邏輯仿真波形圖,從圖中可以看出,從 MAC接收的幀數(shù)據(jù)(mac2lsw_data)及幀數(shù)據(jù)控制信號在入口緩存了一個時鐘周期后,被重新組成72位數(shù)據(jù)并被寫入了FIFO(wdata_fifo).一個完整幀寫入RAM后,數(shù)據(jù)接收處理邏輯向CPU接口模塊發(fā)送了一個持續(xù)兩個高電平時鐘周期的接收幀指示信號(dgf2cpuif_wr_fra),與設(shè)計理論相符.
圖3 數(shù)據(jù)接收處理波形圖(幀頭處理部分)
圖4 數(shù)據(jù)接收處理波形圖(幀尾處理部分)
本文針對LSW數(shù)據(jù)接收控制器提出了一種設(shè)計方案,并使用Verilog語言進(jìn)行了描述,編寫Testbench對RTL電路進(jìn)行了驗證,[3-4]結(jié)果表明設(shè)計方案較好的實現(xiàn)了LSW數(shù)據(jù)接收控制功能.
[1]朱華偉.10G EPON系統(tǒng)ONU交換模塊設(shè)計[D].成都:電子科技大學(xué)碩士學(xué)位論文,2010:44-46.
[2]朱華偉,稅奇軍.基于異步FIFO的多時鐘域同步技術(shù)研究[J].四川文理學(xué)院學(xué)報,2012(5):37-40.
[3]伯杰龍.System Verilog驗證方法學(xué)[M].北京:北京航空航天大學(xué)出版社,2007.
[4]克里斯·斯皮爾.System Verilog驗證:測試平臺編寫指南[M].張 春,麥宋平,趙益新,等,譯.北京:科學(xué)出版社,2009:33.