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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 基于ASIC FPGA的IPv6路由器PoS接口設(shè)計

          基于ASIC FPGA的IPv6路由器PoS接口設(shè)計

          作者: 時間:2012-05-09 來源:網(wǎng)絡 收藏


            4 實現(xiàn)方案

            圖4為155Mbit/s 的實現(xiàn)方案圖。在輸入方向上,從光纖傳入的信號經(jīng)光電轉(zhuǎn)換后送入PM5380,完成定時處理、幀同步,從輸入比特流中提取出SDH幀并進而恢復出PPP幀,并按接口緩存于內(nèi)部8個FIFO中。輸入鏈路處理模塊輪詢讀取PM5380的FIFO,獲得PPP幀并完成PPP相關(guān)處理,恢復出IP報文并且完成查IP地址表的工作,將協(xié)議報文交處理機,而普通的數(shù)據(jù)報文合路輸入FIFO,進而通過FPGA的Rocket I/O(高速I/O)送轉(zhuǎn)發(fā)處理。


            在輸出方向上,從轉(zhuǎn)發(fā)過來的數(shù)據(jù)報文 經(jīng)Rocket I/O送FPGA內(nèi)部,在輸出鏈路處理模塊中完成與協(xié)議報文的合路并且封裝成PPP幀,然后根據(jù)內(nèi)部報文格式中的出接口號來判斷送往ASIC的哪個接口; ASIC完成SDH幀的映射,最后經(jīng)電光轉(zhuǎn)換通過光纖送到外部SDH網(wǎng)絡。

            5 FPGA設(shè)計

            圖5中的虛線框內(nèi)為輸入FPGA設(shè)計原理。輸入FPGA的輪詢接收模塊從PM5380的FIFO中輪詢讀取8個外部接口的數(shù)據(jù),并將完整的PPP包緩存;分揀模塊查本地IP表,將協(xié)議報文緩存于協(xié)議FIFO并經(jīng)處理機送交主控處理,需轉(zhuǎn)發(fā)的數(shù)據(jù)報文送轉(zhuǎn)發(fā)FIFO。圖中的MPM5380管理模塊負責產(chǎn)生處理機管理PM5380時所需要的時序,CPU模塊負責和860的交互,時鐘模塊產(chǎn)生系統(tǒng)時鐘,它們是公共模塊。


            圖6示出輸出FPGA設(shè)計原理。從轉(zhuǎn)發(fā)過來的數(shù)據(jù)經(jīng)Rocket I/O后緩存于輸出FIFO,合路模塊將數(shù)據(jù)報文和從處理機下發(fā)的協(xié)議報文合路送發(fā)送模塊按照PM5380要求的時序?qū)懙较鄳涌诘腇IFO中發(fā)送,但這里必須嚴格滿足PM5380的寫時序要求。


            6 結(jié)束語

            本文根據(jù)155Mbit/s 的需求,提出并實現(xiàn)了一種基于ASIC+FPGA的設(shè)計方案。目前該方案已經(jīng)在國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心開發(fā)的中得到實現(xiàn),測試后的系統(tǒng)性能穩(wěn)定,達到了預期的設(shè)計目標。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: IPv6 路由器 PoS接口

          評論


          相關(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); })();