<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è) > 嵌入式系統 > 設計應用 > 多核DSP系統高速傳輸核心的IP設計

多核DSP系統高速傳輸核心的IP設計

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

3.1.1 發(fā)送緩沖IP模塊設計
在雙口SRAM的外圍設計了較復雜的控制邏輯構成發(fā)送緩沖區,A口和B口的地址計數器的地址由兩部分組成:ID號和地址遞加計數邏輯。A口的輸入數據來(lái)自于封裝的數據幀,而B(niǎo)口的輸出數據又被送到了發(fā)送狀態(tài)機內,只不過(guò)B口的數據是需要重發(fā)的數據。
因為數據幀最大為68個(gè)雙字,發(fā)送窗口數被設計成7,所以已經(jīng)發(fā)送的數據在這個(gè)雙口SRAM中是分段保存的。當RapidIO發(fā)送狀態(tài)機開(kāi)始發(fā)送數據,同時(shí)對數據進(jìn)行封裝時(shí),A口的寫(xiě)信號有效,并且A口的計數器進(jìn)行遞增計數,遞增計數器和段地址構成了A口的有效地址。這樣已發(fā)送的數據就被保存在這個(gè)以雙口SRAM為核的緩沖區隊列中(最多為476個(gè)雙字數據)。在這個(gè)雙口SRAM的外圍設計了段指示變量用來(lái)指示在該段中保存字數據的個(gè)數(因為發(fā)送的數據可能有不夠256個(gè)字節,即64個(gè)雙字的情況)。
相鄰節點(diǎn)返回的數據響應幀內,包含相鄰節點(diǎn)希望接收的下一個(gè)數據幀的序號ID,當數據響應幀類(lèi)型為datanot accept或data retry類(lèi)型時(shí),激活了發(fā)送狀態(tài)機內的重發(fā)機制,B口當前地址和A口的段指示變量進(jìn)行比較,當B口的當前地址和A口相應的段指示變量相等時(shí),通知發(fā)送狀態(tài)機該數據已經(jīng)被重新發(fā)送完畢,結束幀的發(fā)送。只有該幀數據的正確的響應幀被接收到時(shí),A口才能繼續發(fā)送新的數據,并且發(fā)送緩沖區的窗口向前滑動(dòng)。通過(guò)使用這種方法,已發(fā)送的數據就源源不斷地保存在這個(gè)緩沖區隊列中,而且不會(huì )丟失。
3.1.2 接收緩沖IP模塊設計
在雙口SRAM的周?chē)尤肓艘恍┩鈬目刂齐娐窐嫵闪私邮站彌_區。雙口SRAM的A口和接收狀態(tài)機相連,雙口SRAM的B口和處理器接口相連。A口和B口分別使用了地址計數邏輯。接收緩沖IP模塊如圖5所示。

本文引用地址:http://dyxdggzs.com/article/148059.htm

e.JPG


由于RapidIO的一個(gè)數據幀是以272字節封裝的,并且在數據幀的第80個(gè)字節處插入了一個(gè)CRC校驗序列,這樣就增加了判斷的難度。當接收機開(kāi)始接收數據幀內嵌入的第一個(gè)CRC校驗序列時(shí),通過(guò)接收狀態(tài)機進(jìn)行判斷:當接收到的第一個(gè)CRC校驗序列和接收狀態(tài)機本地產(chǎn)生的CRC一樣時(shí),A口的地址計數電路繼續計數;當接收到的第一個(gè)CRC校驗序列和接收狀態(tài)機本地產(chǎn)生的CRC不一樣時(shí),說(shuō)明前面接收到的數據是無(wú)效的,此時(shí)地址計數電路停止計數,并且地址指示變量減去20。
當接收完一個(gè)數據幀內的所有有效數據時(shí)(不包括數據幀末尾的CRC校驗碼),地址計數電路停止計數,同時(shí)在接收狀態(tài)機內進(jìn)行判斷:當接收到的數據幀末尾的CRC校驗序列和接收狀態(tài)機本地產(chǎn)生的CRC校驗序列一致時(shí),地址指示變量的值不變;當接收到的數據幀末尾的CRC校驗序列和接收狀態(tài)機本地產(chǎn)生的CRC校驗序列不一致時(shí),地址指示變量減63(標準的數據幀內的有效數據是64個(gè)字)。通過(guò)這樣的方法在由這個(gè)雙口SRAM構造的接收數據緩沖區內保存了一個(gè)完整有效的數據幀。
3.2 發(fā)送/接收狀態(tài)機
發(fā)送狀態(tài)機和接收狀態(tài)機模塊包含了RapidIO協(xié)議的差錯控制和流量控制的功能。差錯控制功能主要是通過(guò)使用CRC校驗機制和定時(shí)器機制來(lái)完成的。發(fā)送狀態(tài)機和接收狀態(tài)機是通過(guò)相互交換內部信息來(lái)實(shí)現對數據進(jìn)行差錯控制和流量控制的,如圖6所示。

f.JPG


3.2.1 發(fā)送狀態(tài)機模塊設計
如圖6所示,來(lái)自處理器接口的原始數據依次傳送到RapidIO的邏輯層和物理層時(shí),在數據的頭部封裝了地址、序號和長(cháng)度等頭部信息,同時(shí)發(fā)送狀態(tài)機得到每個(gè)數據的CRC碼;當數據大于80個(gè)字節時(shí),在第80個(gè)字節的后面插入1個(gè)CRC碼,然后在該數據幀的尾部插入1個(gè)CRC碼,這樣就將一個(gè)原始的數據轉換成了1個(gè)RapidIO數據幀,然后將這個(gè)封裝的數據幀傳到串行化數據模塊進(jìn)行發(fā)送。
如果數據幀被對方節點(diǎn)正確的接收,則發(fā)送端口可以繼續發(fā)送數據;如果數據幀被對方拒絕接收,則停止數據的繼續發(fā)送,并且接收端口和發(fā)送端口通過(guò)同步控制幀重新進(jìn)行端口同步,當這種同步重新建立后發(fā)送端口才可以繼續發(fā)送數據;在發(fā)送狀態(tài)機模塊中采用了滑動(dòng)窗口技術(shù),一方面可大大提高數據的吞吐量;另一方面可以盡量避免由于接收方緩沖區資源不足而導致的多次發(fā)送失敗。
3.2.2 接收狀態(tài)機模塊設計
當接收到數據幀后,對接收到的數據幀通過(guò)CRC校驗機制進(jìn)行錯誤檢查,同時(shí)得到幀的序號和設備號等信息,并且將數據幀的接收狀態(tài)通知本地發(fā)送端口,由本地發(fā)送端口根據接收數據的狀態(tài)作出判斷,然后向對方節點(diǎn)設備發(fā)送響應幀信號。
當接收狀態(tài)機接收到一個(gè)完整的消息后,則由接收狀態(tài)機向本地處理器接口發(fā)出中斷信號,通知處理器將接收緩沖區內的數據取出;當接收狀態(tài)機接收到控制幀后,根據控制幀的類(lèi)型作出判斷,如果是錯誤數據的響應幀,則本地發(fā)送端口和接收端口同時(shí)處于停止發(fā)送和接收數據狀態(tài),并且通知本地發(fā)送端口發(fā)送link請求幀和link相應幀,使得接收和發(fā)送鏈路重新建立連接;如果是用于鏈路控制的控制幀,則本地發(fā)送端口根據接收到的控制幀類(lèi)型向相鄰節點(diǎn)發(fā)送相應的響應控制幀。
3.3 時(shí)鐘信號設計
RapidIO協(xié)議規定使用雙數據時(shí)鐘發(fā)送和接收數據。
在專(zhuān)用電路內的時(shí)鐘布局分為發(fā)送時(shí)鐘模塊和接收時(shí)鐘模塊兩大子模塊。對時(shí)鐘的分頻和倍頻是通過(guò)專(zhuān)用集成電路內的數字時(shí)鐘管理器DCM完成的。來(lái)自處理器的輸出時(shí)鐘要驅動(dòng)專(zhuān)用電路芯片和其他外設,所以在專(zhuān)用電路的內部加入PLL,保證輸出時(shí)鐘能提供足夠的時(shí)鐘頻率、驅動(dòng)能力和較陡的時(shí)鐘邊沿。時(shí)鐘資源在專(zhuān)用電路內的布局如圖7所示。

g.JPG


發(fā)送時(shí)鐘模塊的主要功能包括:
①使用DCM的相移功能,提供RapidIO發(fā)送數據合適的采樣時(shí)鐘相位,包括從發(fā)送緩沖區將數據提取出來(lái),以及在發(fā)送數據前提供的較好的冗余時(shí)鐘相位,保證時(shí)鐘能正確地采集發(fā)送的數據和幀同步信號。
②在進(jìn)行數據串行化的時(shí)候,通過(guò)DCM的倍頻功能將上層模塊的數據發(fā)送變成雙數據進(jìn)行發(fā)送,即時(shí)鐘的上沿和下沿同時(shí)發(fā)送數據。
③通過(guò)差分引腳將LVTTL發(fā)送時(shí)鐘變?yōu)長(cháng)VDS差分時(shí)鐘進(jìn)行發(fā)送。
接收時(shí)鐘模塊中的主要功能包括:
①接收到的差分LVDS時(shí)鐘轉換為L(cháng)VTTL時(shí)鐘。
②對接收到的時(shí)鐘信號通過(guò)DCM對其進(jìn)行分頻,以便能夠正確地將接收到的DDR數據轉化為SDR數據。
③對接收到的時(shí)鐘通過(guò)DCM進(jìn)行相位移動(dòng),以便為接收緩沖區正確地接收數據提供正確的采樣時(shí)鐘相位。
除了此處提到的模塊,RapidIO協(xié)議專(zhuān)用集成電路內部還有串行和并行模塊,接口模塊等,在此就不一一介紹了。

結語(yǔ)
適用于系統的高速接口對于研究多核的體系結構具有實(shí)際意義。研制滿(mǎn)足RapidIO協(xié)議的專(zhuān)用集成電路不僅可以快速實(shí)現網(wǎng)絡(luò )結構,而且可以降低系統的功耗,提高可靠性,具有很好的應用價(jià)值。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(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>