基於共享鎖相環的Aurora接口捆綁方法及裝置與流程
2023-08-08 18:18:51 1

本發明屬於通信技術領域,更進一步涉及數據傳輸技術領域中的一種基於共享鎖相環PLL(Phase Locked Loop)的奧若拉Aurora接口捆綁方法及裝置。本發明提供一種可共享鎖相環PLL的Aurora接口裝置,並且通過鎖相環時鐘資源共享技術實現多個Aurora接口共享時鐘,通過對Aurora接口的壞死檢測以及數據對齊處理,完成Aurora接口的捆綁,實現了板間數據的高速並行可靠傳輸。
背景技術:
隨著通信技術的發展,對接口數據傳輸速率及可靠性要求越來越高。目前現有的Aurora接口技術一般用於板間點對點單通道傳輸,由於技術的限制,單通道點對點的Aurora接口數據速率最高為10Gbps。這種方式雖然在背板互連的高速接口實現中得到了廣泛的應用,但在某些應用中,要實現更高的傳輸數據數率時,則無法滿足要求。因此,將多個Aurora接口捆綁一起並行傳輸是非常必要的。
無錫眾志和達存儲技術股份有限公司在其申請的專利文獻「基於Aurora協議的高速總線接口的擴展結構」(申請號201310033124.5,申請公開號CN 103106169 A,公開日為2013.05.15)中提出了一種背板互連的Aurora接口裝置,該接口裝置對上層用戶的數據進行Aurora協議封裝之後,傳輸到鏈路層和達物理層並完成並串轉換,轉換成差分信號發送到接收方,接收方對數據的處理與發送方相反。但是,該專利的接口裝置結構仍然存在的不足之處是,所提供的Aurora接口裝置,是一種單通道的Aurora接口裝置,Aurora接口裝置內部並沒有實現多個高速串行收發器的合併傳輸,無法滿足更高數據速率的要求。該專利同時還提出了一種實現存儲器接口的擴展方法,該方法定義了一種私有協議,通過私有協議對Aurora接口的數據封裝,並根據私有協議定義的包格式選擇將封裝後的數據發送到系統內存訪問LIS接口或寄存器訪問DCR接口,實現存儲器接口的擴展。但是,該接口的擴展方法仍然存在的不足之處是,其一,可擴展性差,由於開發板鎖相環PLL資源有限,多個接口擴展會出現鎖相環PLL時鐘資源不足的問題。其二,沒有擴展接口檢測處理,無法實時獲得每個Aurora接口的工作狀態,不能保證數據傳輸的可靠性。其三,沒有擴展接口數據對齊處理,不能保證數據傳輸的正確性。
技術實現要素:
本發明的目的在於克服上述現有技術的不足,解決了原有的Aurora接口裝置傳輸速率較低,多個Aurora接口捆綁時佔用鎖相環PLL資源較多、接口壞死無法檢測、接口數據不對齊、接口擴展性差等問題,提出了一種數據傳輸速率更快、資源利用率更高、結構更簡單、擴展性更好的基於共享鎖相環的Aurora接口捆綁方法,以改善其實用性能。
本發明基於共享鎖相環的Aurora接口裝置,包括發送方和接收方兩部分,發送方包括發送方用戶接口模塊、發送方緩存模塊、發送方高速串行收發器GTH模塊、發送方共享鎖相環PLL模塊以及發送方數據對齊模塊;接收方包括接收方用戶接口模塊、接收方緩存模塊、接收方高速串行收發器GTH模塊、接收方共享鎖相環PLL模塊以及接收方接口壞死檢測模塊;所述的發送方用戶接口模塊、發送方緩存模塊、發送方高速串行收發器GTH模塊通過數據總線和控制總線依次相連;所述的發送方共享鎖相環PLL模塊與發送方高速串行收發器GTH模塊通過數據總線和控制總線相連;所述的發送方用戶接口模塊與發送方數據對齊模塊通過數據總線和控制總線相連;所述的接收方用戶接口模塊、接收方緩存模塊、接收方高速串行收發器GTH模塊通過數據總線和控制總線依次相連;所述的接收共享鎖相環PLL模塊與接收方高速串行收發器GTH模塊通過數據總線和控制總線相連;所述的接收方用戶接口模塊與接收方接口壞死檢測模塊通過數據總線和控制總線相連;所述的發送方高速串行收發器GTH模塊與接收方高速串行收發器GTH模塊之間通過差分並行信號線背板相連;其中:
所述發送方用戶接口模塊,用於接收上層用戶發送的數據,提供發送方數據對齊模塊的用戶時鐘信號;
所述發送方緩存模塊,用於暫時緩存輸入數據總線上的數據;
所述發送方高速串行收發器GTH模塊,用於接收輸入數據總線上的數據,提供一個共享的鎖相環PLL;
所述發送方共享鎖相環PLL模塊,用於對輸入時鐘進行增大扇出處理,並提供發送方高速串行收發器GTP的時鐘輸入埠所需的時鐘輸入信號;
所述發送方數據對齊模塊,用於對發送方用戶接口模塊的輸出tx_dst_rdy_n_i信號進行對齊處理,並將數據對齊結果上傳到上層用戶;
所述接收方用戶接口模塊,用於接收接收方緩存模塊發送的數據,並提供接口壞死檢測所需的輸入信號和時鐘信號;
所述接收方緩存模塊,用於暫時緩存輸入數據總線上的數據;
所述接收方共享鎖相環PLL模塊,用於對輸入時鐘進行增大扇出處理,並提供接收方高速串行收發器GTP的時鐘輸入埠所需的時鐘輸入信號;
所述接收方接口壞死檢測模塊,用於檢測接收方用戶接口模塊的輸出channel_up信號,並判定每個接口的工作狀態;
所述接收方高速串行收發器GTH模塊,提供一個共享的鎖相環PLL。
本發明基於共享鎖相環的Aurora接口的捆綁方法,包括如下步驟:
(1)生成發送方的四個Aurora接口:
(1a)對發送方的四個高速串行收發器GTH的智慧財產權IP核分別進行例化;
(1b)將例化後的每個高速串行收發器GTH的智慧財產權IP核依次與發送方數據緩存模塊和發送方用戶接口模塊連接,生成發送方的四個Aurora接口;
(2)生成接收方的四個Aurora接口:
(1a)對接收方的四個高速串行收發器GTH的智慧財產權IP核分別進行例化;
(1b)將例化後的每個高速串行收發器GTH的智慧財產權IP核依次與接收方數據緩存模塊和接收方用戶接口模塊連接,生成接收方的四個Aurora接口;
(3)初始化:
(3a)用上層用戶發送的用戶數據的速率除以用戶數據的位寬,得到Aurora接口工作的時鐘頻率值;
(3b)用時鐘頻率值分別替換四個接收方高速串行收發器GTH的智慧財產權IP核的時鐘頻率參數值;
(3c)用時鐘頻率值分別替換四個發送方高速串行收發器GTH的智慧財產權IP核的時鐘頻率參數值;
(3d)給發送方的四個Aurora接口一個統一復位信號,使得發送方的四個Aurora接口均處於復位狀態;
(3e)給接收方的四個Aurora接口一個統一復位信號,使得接收方的四個Aurora接口均處於復位狀態;
(4)共享發送方的鎖相環PLL:
(4a)從發送方的四個高速串行收發器GTH中任意選擇三個高速串行收發器GTH,屏蔽每個高速串行收發器GTH內部的鎖相環PLL;
(4b)將一對差分系統時鐘輸入到未屏蔽的高速串行收發器GTH內部的鎖相環PLL內,得到一個單端的時鐘輸出信號;
(4c)將單端的時鐘輸出信號通過發送方共享鎖相環PLL模塊進行增大扇出處理後,得到一個時鐘輸出信號;
(4d)將時鐘輸出信號同時發送到四個高速串行收發器GTH的時鐘輸入埠,實現發送方鎖相環PLL資源的共享;
(5)共享接收方鎖相環PLL:
(5a)從接收方的四個高速串行收發器GTH中任意選擇三個高速串行收發器GTH,屏蔽每個高速串行收發器GTH內部的鎖相環PLL;
(5b)將一對差分系統時鐘信號輸入到未屏蔽的高速串行收發器GTH內部的鎖相環PLL內,得到一個單端的時鐘輸出信號;
(5c)將單端的時鐘輸出信號通過接收方共享鎖相環PLL模塊進行增大扇出處理後,得到一個時鐘輸出信號;
(5d)將時鐘輸出信號同時發送到四個高速串行收發器GTH的時鐘輸入埠,實現接收方鎖相環PLL資源的共享;
(6)檢測接收方Aurora接口:
(6a)當接收方用戶接口模塊的輸出channel_up信號為0時,接收方接口壞死檢測模塊內部對應的時鐘計數器從0開始計時;
(6b)判斷時鐘計數器的計時值是否等於上層用戶發送的一個幀的幀長,若是,則執行步驟(6c),否則,判定該Aurora接口工作正常,執行步驟(7);
(6c)判定Aurora接口壞死,屏蔽接收方用戶接口模塊對應的Aurora接口;
(7)對齊發送方Aurora接口數據:
(7a)從四個發送方用戶接口模塊的四個輸出時鐘信號中,任意選擇一個輸出時鐘信號作為用戶時鐘信號;
(7b)用戶時鐘信號發送到發送方數據對齊模塊的時鐘輸入埠;
(7c)在用戶時鐘信號上升沿的當前周期到達時,數據對齊模塊對每個發送方用戶接口模塊輸出的tx_dst_rdy_n_i信號進行對齊處理,得到對齊處理的結果;
(7d)判斷對齊處理的結果是否為0,若是,則判定發送方四個Aurora接口數據沒有對齊,等待所選的用戶時鐘信號下一個周期的到來,再執行步驟(7c),否則,執行步驟(7e);
(7e)判定發送方四個Aurora接口數據實現對齊將,將對齊處理的結果上傳到上層用戶。
本發明與現有技術相比,具有以下優點:
第一,由於本發明Aurora接口裝置中發送方高速串行收發器GTH模塊與接收方高速串行收發器GTH模塊之間,通過差分並行信號線背板相連,有效的克服了現有技術中Aurora接口裝置單通道傳輸時,因接口結構限制了線速的問題,使得本發明Aurora接口裝置具有更高的數據傳輸速率。
第二,由於本發明的擴展方法提出了一種共享發送方鎖相環PLL的方法以及共享接收方鎖相環PLL的方法,有效的克服了現有技術中Aurora接口擴展時鎖相環PLL資源不足的問題,提高了本發明鎖相環PLL資源利用率。
第三,由於本發明的擴展方法提出了檢測接收方Aurora接口的方法,實時檢測每個Aurora接口的工作狀態,有效地克服現有技術在多個Aurora接口並行數據傳輸過程中無法實時獲得每個Aurora接口工作狀態的問題,提高了本發明數據傳輸的可靠性。
第四,由於本發明的擴展方法提出了一種對齊發送方Aurora接口數據的方法,使得多個Aurora接口數據可以對齊並行傳輸,有效地克服了現有技術中多個Aurora接口並行傳輸過程中每個Aurora接口數據不對齊的問題,使得本發明更具有實用性。
附圖說明
圖1為本發明Aurora接口裝置的結構示意圖;
圖2為本發明Aurora接口捆綁方法的流程圖。
具體實施方式:
下面結合附圖對本發明做進一步的描述。
參照附圖1對本發明Aurora接口裝置整體結構做進一步的描述。
基於共享鎖相環的Aurora接口裝置,包括發送方和接收方兩部分,發送方包括發送方用戶接口模塊、發送方緩存模塊、發送方高速串行收發器GTH模塊、發送方共享鎖相環PLL模塊以及發送方數據對齊模塊;接收方包括接收方用戶接口模塊、接收方緩存模塊、接收方高速串行收發器GTH模塊、接收方共享鎖相環PLL模塊以及接收方接口壞死檢測模塊;所述的發送方用戶接口模塊、發送方緩存模塊、發送方高速串行收發器GTH模塊通過數據總線和控制總線依次相連;所述的發送方共享鎖相環PLL模塊與發送方高速串行收發器GTH模塊通過數據總線和控制總線相連;所述的發送方用戶接口模塊與發送方數據對齊模塊通過數據總線和控制總線相連;所述的接收方用戶接口模塊、接收方緩存模塊、接收方高速串行收發器GTH模塊通過數據總線和控制總線依次相連;所述的接收共享鎖相環PLL模塊與接收方高速串行收發器GTH模塊通過數據總線和控制總線相連;所述的接收方用戶接口模塊與接收方接口壞死檢測模塊通過數據總線和控制總線相連;所述的發送方高速串行收發器GTH模塊與接收方高速串行收發器GTH模塊之間通過差分並行信號線背板相連。
發送方用戶接口模塊,用於接收上層用戶發送的數據,提供發送方數據對齊模塊的用戶時鐘信號。
發送方緩存模塊,用於暫時緩存輸入數據總線上的數據,包括三個隨機存儲器RAM,第一個隨機存儲器RAM1、第二個隨機存儲器RAM2和第三個隨機存儲器RAM3,第一個隨機存儲器RAM1用來緩存發送方緩存模塊輸入數據總線上的數據,第二個隨機存儲器RAM2用來緩存即將輸出到發送方緩存模塊的輸出數據總線上的數據,第三個隨機存儲器RAM3用來暫時緩存第二個隨機存儲器RAM2中即將輸出到發送方緩存模塊的輸出數據總線上的數據,四個隨機存儲器的位寬均為64位,工作時鐘為156.25MHz。
發送方高速串行收發器GTH模塊,用於接收輸入數據總線上的數據,提供一個共享的鎖相環PLL。
發送方共享鎖相環PLL模塊,用於對輸入時鐘進行增大扇出處理,並提供發送方高速串行收發器GTP的時鐘輸入埠所需的時鐘輸入信號。
發送方數據對齊模塊,用於對發送方用戶接口模塊的輸出tx_dst_rdy_n_i信號進行對齊處理,並將數據對齊結果上傳到上層用戶。
接收方用戶接口模塊,用於接收接收方緩存模塊發送的數據,並提供接口壞死檢測所需的輸入信號和時鐘信號。
接收方緩存模塊,用於暫時緩存輸入數據總線上的數據,包括三個隨機存儲器RAM,第一個隨機存儲器RAM4、第二個隨機存儲器RAM5和第三個隨機存儲器RAM6,第一個隨機存儲器RAM4用來緩存發送方緩存模塊輸入數據總線上的數據,第二個隨機存儲器RAM5用來緩存即將輸出到發送方緩存模塊輸出數據總線上的數據,第三個隨機存儲器RAM6用來暫時緩存第二個隨機存儲器RAM5中即將輸出到發送方緩存模塊輸出數據總線上的數據,四個隨機存儲器的位寬均為64位,工作時鐘為156.25MHz。
接收方共享鎖相環PLL模塊,用於對輸入時鐘進行增大扇出處理,並提供接收方高速串行收發器GTP的時鐘輸入埠所需的時鐘輸入信號。
接收方接口壞死檢測模塊,用於通過內部時鐘計數器對接收方用戶接口模塊的輸出channel_up信號進行檢測,並判定每個接口的工作狀態。
接收方高速串行收發器GTH模塊,提供一個共享的鎖相環PLL。
參照附圖2,對本發明Aurora接口捆綁方法做進一步的描述。
步驟1,生成發送方的四個Aurora接口。
對發送方的四個高速串行收發器GTH的智慧財產權IP核分別進行例化。
將例化後的每個高速串行收發器GTH的智慧財產權IP核依次與發送方數據緩存模塊和發送方用戶接口模塊連接,生成發送方的四個Aurora接口。
步驟2,生成接收方的四個Aurora接口。
對接收方的四個高速串行收發器GTH的智慧財產權IP核分別進行例化。
將例化後的每個高速串行收發器GTH的智慧財產權IP核依次與接收方數據緩存模塊和接收方用戶接口模塊連接,生成發送方的四個Aurora接口。
步驟3,初始化。
用上層用戶發送的用戶數據的速率除以用戶數據的位寬,得到Aurora接口工作的時鐘頻率值。
用時鐘頻率值分別替換四個接收方高速串行收發器GTH的智慧財產權IP核的時鐘頻率參數值。
用時鐘頻率值分別替換四個發送方高速串行收發器GTH的智慧財產權IP核的時鐘頻率參數值。
給發送方的四個Aurora接口一個統一復位信號,使得發送方的四個Aurora接口均處於復位狀態。
給接收方的四個Aurora接口一個統一復位信號,使得接收方的四個Aurora接口均處於復位狀態。
步驟4,共享發送方的鎖相環PLL。
從發送方的四個高速串行收發器GTH中任意選擇三個高速串行收發器GTH,屏蔽每個高速串行收發器GTH內部的鎖相環PLL。
將一對差分系統時鐘輸入到未屏蔽的高速串行收發器GTH內部的鎖相環PLL內,得到一個單端的時鐘輸出信號。
將單端的時鐘輸出信號通過發送方共享鎖相環PLL模塊進行增大扇出處理後,得到一個時鐘輸出信號。
所述的增大扇出處理是指,通過賽靈思Xilinx原語全局緩衝BUFG對時鐘信號的功率進行放大。
將時鐘輸出信號同時發送到四個高速串行收發器GTH的時鐘輸入埠,實現發送方鎖相環PLL資源的共享。
步驟5,共享接收方的鎖相環PLL。
從接收方的四個高速串行收發器GTH中任意選擇三個高速串行收發器GTH,屏蔽每個高速串行收發器GTH內部的鎖相環PLL。
將一對差分系統時鐘信號輸入到未屏蔽的高速串行收發器GTH內部的鎖相環PLL內,得到一個單端的時鐘輸出信號。
將單端的時鐘輸出信號通過接收方共享鎖相環PLL模塊進行增大扇出處理後,得到一個時鐘輸出信號。
所述的增大扇出處理是指,通過賽靈思Xilinx原語全局緩衝BUFG對時鐘信號的功率進行放大。
將時鐘輸出信號同時發送到四個高速串行收發器GTH的時鐘輸入埠,實現接收方鎖相環PLL資源的共享。
步驟6,檢測接收方Aurora接口。
第一步,當接收方用戶接口模塊的輸出channel_up信號為0時,接收方接口壞死檢測模塊內部對應的時鐘計數器從0開始計時。
第二步,判斷時鐘計數器的計時值是否等於上層用戶發送的一個幀的幀長,若是,則執行步驟第三步,否則,判定該Aurora接口工作正常,執行步驟7。
第三步,判定Aurora接口壞死,屏蔽接收方用戶接口模塊對應的Aurora接口。
步驟7,對齊發送方Aurora接口數據。
第一步,從四個發送方用戶接口模塊的四個輸出時鐘信號中,任意選擇一個輸出時鐘信號作為用戶時鐘信號。
第二步,用戶時鐘信號發送到發送方數據對齊模塊的時鐘輸入埠。
第三步,在用戶時鐘信號上升沿的當前周期到達時,數據對齊模塊對每個發送方用戶接口模塊輸出的tx_dst_rdy_n_i信號進行對齊處理,得到對齊處理的結果。
數據對齊模塊對每個發送方用戶接口模塊輸出的tx_dst_rdy_n_i信號進行對齊處理的步驟如下:
第一步,任意設置四個寄存器信號,分別為tx_ready1信號、tx_ready2信號、tx_ready3信號和tx_ready4信號,並將這四個寄存器信號初始化為0;
第二步,對四個tx_dst_rdy_n_i信號均在用戶時鐘下打兩拍,得到tx_dst_rdy_n_i1信號、tx_dst_rdy_n_i2信號、tx_dst_rdy_n_i3信號和tx_dst_rdy_n_i4信號;
第三步,將tx_dst_rdy_n_i1信號阻塞賦值給tx_ready1信號,tx_dst_rdy_n_i2信號阻塞賦值給tx_ready2信號,tx_dst_rdy_n_i3信號阻塞賦值給tx_ready3信號,tx_dst_rdy_n_i4信號阻塞賦值給tx_ready4信號;
第四步,對tx_ready1信號、tx_ready2信號、tx_ready3信號和tx_ready4信號依次進行位與運算,將位與運算的結果作為對齊處理的結果。
第四步,判斷對齊處理的結果是否為0,若是,則判定發送方四個Aurora接口數據沒有對齊,等待所選的用戶時鐘信號下一個周期的到來,再執行第三步,否則,執行第五步。
第五步,判定發送方四個Aurora接口數據實現對齊將,將對齊處理的結果上傳到上層用戶。