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

          新聞中心

          EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > FPGA的光纖通道接口控制芯片設(shè)計(jì)

          FPGA的光纖通道接口控制芯片設(shè)計(jì)

          作者: 時(shí)間:2009-07-08 來(lái)源:網(wǎng)絡(luò) 收藏

          圖2左邊的PowerPC和存儲(chǔ)器器通過(guò)PLB總線互聯(lián)在一起,構(gòu)建了Linux操作系統(tǒng)和的軟件部分的運(yùn)行平臺(tái)。
          PowerPC架構(gòu)中還包含了通用的OPB總線,用來(lái)進(jìn)行外部設(shè)備的互聯(lián)。OPB總線通過(guò)一個(gè)PLB-OPB橋連接到PLB總線,如圖2右邊所示。連接到OPB總線的外部設(shè)備只有一個(gè),也就是傳輸核。
          用戶定義了的用戶接口。根據(jù)應(yīng)用環(huán)境的不同,這個(gè)模塊有不同的實(shí)現(xiàn)方法,如PCI或USB。
          當(dāng)用戶有數(shù)據(jù)需要發(fā)送時(shí),通過(guò)接口控制的用戶接口將數(shù)據(jù)按標(biāo)準(zhǔn)格式存人芯片內(nèi)部的數(shù)據(jù)存儲(chǔ)器,并通過(guò)設(shè)置相應(yīng)的寄存器請(qǐng)求接口控制芯片的數(shù)據(jù)傳輸服務(wù)。然后,軟件代碼將數(shù)據(jù)接管過(guò)來(lái),先為這次數(shù)據(jù)(IU)傳輸分配相應(yīng)的軟件資源(交換狀態(tài)塊、序列狀態(tài)塊等)用以記錄數(shù)據(jù)的發(fā)送狀態(tài)。等完成相應(yīng)的處理后,PowerPC通過(guò)傳輸核提供的接口通知傳輸核對(duì)數(shù)據(jù)進(jìn)行處理,包括分片、成幀、CRC計(jì)算和8B/10B編碼等任務(wù)。最后,傳輸核通過(guò)輸出引腳輸出高速串行數(shù)據(jù)去調(diào)制光發(fā)射機(jī)并發(fā)送到鏈路。
          當(dāng)從輸入鏈路上接收到數(shù)據(jù)時(shí),傳輸核首先對(duì)數(shù)據(jù)進(jìn)行處理,包括位同步、串并轉(zhuǎn)換、8B/10B解碼、字同步、有序集檢測(cè)、CRC校驗(yàn)和幀提取。當(dāng)有效幀接收到并存到接收緩沖區(qū)后,硬件模塊設(shè)置相應(yīng)的寄存器通知Power-PC,然后PowerPC對(duì)接收到的幀進(jìn)行處理,包括分配相應(yīng)的軟件資源、幀重裝。當(dāng)屬于一個(gè)序列的所有幀都正確接收完后,PowerPC通過(guò)用戶接口模塊通知用戶模塊,用戶模塊接收到數(shù)據(jù)后自行進(jìn)行處理。

          3 硬件
          接口控制芯片的硬件部分也就是圖2中的光纖傳輸核,負(fù)責(zé)將數(shù)據(jù)幀按標(biāo)準(zhǔn)規(guī)定的格式從發(fā)送緩沖區(qū)傳輸?shù)芥溌妨硪欢说慕邮站彌_區(qū)。為了正確有效地完成這個(gè)任務(wù),接口控制芯片的硬件部分實(shí)現(xiàn)以下一些功能:緩沖到緩沖的流量控制、鏈路級(jí)別的差錯(cuò)檢測(cè)和恢復(fù)、字同步、有序集檢測(cè)、幀提取、8B/10B編解碼和串并/并串轉(zhuǎn)換等功能。接口控制芯片的硬件部分功能框圖如圖3所示。

          3.1 發(fā)送控制邏輯
          發(fā)送控制邏輯的功能是控制幀、原語(yǔ)信號(hào)和原語(yǔ)序列的發(fā)送順序,使之符合光纖通道標(biāo)準(zhǔn),主要包括保證連續(xù)幀之間具有足夠的間隔和在幀之間插入原語(yǔ)信號(hào)。
          發(fā)送幀的CRC值也由發(fā)送控制邏輯計(jì)算,傳統(tǒng)的串行計(jì)算方法達(dá)不到要求的速率,這里采用并行CRC算法進(jìn)行計(jì)算,每個(gè)時(shí)鐘有效沿可以計(jì)算32位數(shù)據(jù),大大提高了數(shù)據(jù)吞吐量。
          緩沖到緩沖流量控制也在發(fā)送控制邏輯中實(shí)現(xiàn)。發(fā)送控制邏輯維持一個(gè)計(jì)數(shù)器,表示當(dāng)前已發(fā)送但還未被確認(rèn)的幀的數(shù)目,每當(dāng)發(fā)送1幀,計(jì)數(shù)器加1;當(dāng)接收到 R_RDY原語(yǔ)信號(hào)時(shí),計(jì)數(shù)器減1。如果這個(gè)值小于配置寄存器中的BB_Credit值,則表示可以繼續(xù)發(fā)送幀;否則,表明目標(biāo)端口已經(jīng)沒(méi)有可用的接收緩沖區(qū),發(fā)送控制邏輯此時(shí)就不往外發(fā)出幀。
          3.2 接收控制邏輯
          8B/10B解碼出來(lái)的數(shù)據(jù)是字節(jié)數(shù)據(jù),而所有的有序集都是字,因此需要在輸入的字節(jié)流中正確區(qū)分出字邊界。接收控制邏輯內(nèi)部的字同步模塊和接收狀態(tài)機(jī)協(xié)同工作,實(shí)現(xiàn)這一功能。標(biāo)準(zhǔn)規(guī)定的接收機(jī)狀態(tài)轉(zhuǎn)換圖如圖4所示。
          3.3 8B/1 0B編解碼
          傳統(tǒng)的編解碼方法由數(shù)字邏輯實(shí)現(xiàn),主要是為了節(jié)省邏輯資源。由于內(nèi)含有豐富的RAM,使其作為編解碼的載體既可以降低復(fù)雜程度又可以提高編解碼的速度,待編碼的數(shù)據(jù)作為地址線輸人,編碼數(shù)據(jù)存在RAM內(nèi)從數(shù)據(jù)線輸出。
          3.4 端口狀態(tài)機(jī)
          作為鏈路級(jí)差錯(cuò)檢測(cè)與恢復(fù)的核心,端口狀態(tài)機(jī)對(duì)收發(fā)鏈路的狀態(tài)進(jìn)行監(jiān)測(cè)。每當(dāng)鏈路狀態(tài)出現(xiàn)異常,端口狀態(tài)機(jī)就根據(jù)異常的起因啟動(dòng)不同的鏈路恢復(fù)協(xié)議來(lái)對(duì)鏈路進(jìn)行恢復(fù)。如果恢復(fù)失敗,那么端口狀態(tài)機(jī)就通過(guò)狀態(tài)寄存器向上層報(bào)告。出于版面的考慮,簡(jiǎn)化的端口狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖如圖5所示。

          3.5 其他模塊
          異步FIFO:由于接口控制芯片的接收部分使用從接收數(shù)據(jù)中恢復(fù)出來(lái)的時(shí)鐘,因此和芯片的主時(shí)鐘是異步的。當(dāng)將接收到的數(shù)據(jù)交給其他工作于主時(shí)鐘的模塊處理時(shí)需要進(jìn)行速率調(diào)整。異步FIFO用于實(shí)現(xiàn)這個(gè)功能。串并/并串轉(zhuǎn)換:高速的串并轉(zhuǎn)換對(duì)器件性能有較高要求。內(nèi)部集成了專用的硬核 (RocketIO)用來(lái)實(shí)現(xiàn)這一功能,因此對(duì)其進(jìn)行適當(dāng)?shù)呐渲眉纯伞_@樣節(jié)省了專用的串并轉(zhuǎn)換芯片。
          配置寄存器存儲(chǔ)一系列的工作參數(shù),如(R_T_TOV、E_D_TOV等),復(fù)位后以默認(rèn)值初始化寄存器。完成注冊(cè)后,使用新值更新寄存器。
          光纖通道傳輸核通過(guò)狀態(tài)寄存器來(lái)表示自己當(dāng)前所處的狀態(tài)(如在線、離線等)。



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