<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

FPGA的光纖通道接口控制芯片設計

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

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

3 硬件
接口控制芯片的硬件部分也就是圖2中的光纖傳輸核,負責將數據幀按標準規定的格式從發(fā)送緩沖區傳輸到鏈路另一端的接收緩沖區。為了正確有效地完成這個(gè)任務(wù),接口控制芯片的硬件部分實(shí)現以下一些功能:緩沖到緩沖的流量控制、鏈路級別的差錯檢測和恢復、字同步、有序集檢測、幀提取、8B/10B編解碼和串并/并串轉換等功能。接口控制芯片的硬件部分功能框圖如圖3所示。

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

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



關(guān)鍵詞: 芯片 設計 控制 接口 光纖 通道 FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>