專利名稱:一種基于aurora協(xié)議進(jìn)行FPGA板間高速互連的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體地說(shuō)是一種基于aurora協(xié)議進(jìn)行FPGA板間高速互連的方法。
背景技術(shù):
在大規(guī)模的ASIC驗(yàn)證中,往往一塊FPGA資源有限,很難完成驗(yàn)證工作,需要多塊FPGA —起工作,多塊FPGA要協(xié)同工作需要進(jìn)行實(shí)時(shí)通信,大量的數(shù)據(jù)的涌入,給通信帶來(lái)了極大的挑戰(zhàn)。在傳統(tǒng)的方案中,F(xiàn)PGA間采用LVDS進(jìn)行互聯(lián),這種方案,雖然物理層較易實(shí)現(xiàn),但速率受限制,PCB布線困難,可擴(kuò)展性能較差。本設(shè)計(jì)采用光纖進(jìn)行串行傳輸,運(yùn)用Aurora協(xié)議作為傳輸協(xié)議,可以很容易解決多塊FPGA間高速信號(hào)的通信問(wèn)題。并且Aurora 協(xié)議是一個(gè)開放性、可升級(jí)、小型、鏈路層協(xié)議,可以用來(lái)進(jìn)行點(diǎn)到點(diǎn)的串行通路數(shù)據(jù)傳輸,同時(shí)消除了其它串行協(xié)議的資源低效率問(wèn)題,可以在包括FPGA、ASIC和ASSP在內(nèi)的任何硅器件/技術(shù)中實(shí)現(xiàn),Aurora協(xié)議可以使用I個(gè)或多個(gè)高速的串行通道。結(jié)合QSPF光纖作為傳輸通道,可以極大的提高系統(tǒng)的可靠性,可用性以及可擴(kuò)展性。
發(fā)明內(nèi)容
兩塊板卡之間傳輸數(shù)據(jù)要達(dá)到240Gb / S的通訊速率,對(duì)硬件軟件都是一個(gè)極大的挑戰(zhàn),整個(gè)設(shè)計(jì)中,aurora的數(shù)據(jù)收發(fā)是提高通訊速率的重點(diǎn),本發(fā)明的目的是提供一種基于aurora協(xié)議進(jìn)行FPGA板間高速互連的方法。本發(fā)明的目的是按以下方式實(shí)現(xiàn)的,具體步驟如下
1)數(shù)據(jù)接收處理傳輸過(guò)程來(lái)自另一塊板卡的光纖信號(hào)首先進(jìn)入QSFP模塊,然后在FPGA中通過(guò)aur ora協(xié)議提取數(shù)據(jù),具體數(shù)據(jù)處理是,電信號(hào)進(jìn)入FPGA的PMA,在PMA中進(jìn)行數(shù)據(jù)的并串轉(zhuǎn)換,進(jìn)行數(shù)據(jù)和時(shí)鐘恢復(fù),然后數(shù)據(jù)流進(jìn)入PCS中,在PCS中進(jìn)行塊同步,剔除擾碼,補(bǔ)償,最后解碼,傳遞給FPGA邏輯單元進(jìn)行使用,并傳遞給數(shù)據(jù)中心,AURORA接收過(guò)程如下
在生成AURORA IP CORE時(shí),同時(shí)生成了一個(gè)基于AURORA協(xié)議的例示程序,因此,要實(shí)現(xiàn)基于AURORA協(xié)議的光纖通信,在發(fā)送端只需要在frame_gen_i模塊將要發(fā)送的數(shù)據(jù)打包,然后通過(guò)AURORA模塊發(fā)送出去,考慮到上一級(jí)傳輸數(shù)據(jù)速率會(huì)與AURORA傳輸?shù)臅r(shí)鐘頻率不同,因此在發(fā)送端需要建立一個(gè)FIFO來(lái)做緩沖器,同樣在AURORA協(xié)議中,要實(shí)現(xiàn)對(duì)數(shù)據(jù)的接收,只需在接收模塊frame_check中對(duì)接收的代碼加以修改,增加自己所需要的內(nèi)容,完成對(duì)數(shù)據(jù)的解碼提取,剔除冗余信息,并完成數(shù)據(jù)的緩存;
2)數(shù)據(jù)發(fā)送過(guò)程和數(shù)據(jù)接收過(guò)程是相反的過(guò)程,來(lái)自FPGA內(nèi)部邏輯的數(shù)據(jù),運(yùn)用Aur ora協(xié)議進(jìn)行處理,處理過(guò)程是,數(shù)據(jù)進(jìn)入到PCS中,進(jìn)行編碼,剔除擾碼,完成后,進(jìn)入PMA中,進(jìn)行串并轉(zhuǎn)換后,發(fā)送到QSFP,在進(jìn)行光電轉(zhuǎn)換,等待另一終端的接收,在接收模塊frame_check的RTL級(jí)模型中,RX_D
為接收端接收的緩存于FIFO的數(shù)據(jù),RX_E0F_NS數(shù)據(jù)包幀尾的標(biāo)志,RX_S0F_NS數(shù)據(jù)包幀頭的標(biāo)志,RX_SRC_RDY_N為低時(shí)代表數(shù)據(jù)有效,RX_REM
記錄最后的傳輸數(shù)據(jù)的線程,根據(jù)接收端接收模塊的時(shí)序圖確定接收時(shí)序,同樣,在AURORA協(xié)議末端,由于與下一級(jí)系統(tǒng)的速率可能不匹配,因此需要在接收末端加上一個(gè)FIFO做緩存; 綜上,把復(fù)雜的高速數(shù)據(jù)轉(zhuǎn)化為比較成熟的aurora協(xié)議來(lái)進(jìn)行芯片間互連,既消除了帶寬限制,又方便使用光纖進(jìn)行互連,減小板卡設(shè)計(jì)難度。本發(fā)明的有益效果是把復(fù)雜的高速數(shù)據(jù)轉(zhuǎn)化為比較成熟的aurora協(xié)議來(lái)進(jìn)行芯片間互連,既消除了帶寬限制,又方便使用光纖進(jìn)行互連,減小板卡設(shè)計(jì)難度。
圖I是利用aurora進(jìn)行FPGA板間高速互連的設(shè)計(jì)圖;
圖2是數(shù)據(jù)傳輸流程 圖3是接收模塊frame_check的RTL級(jí)模型 圖4是AURORA協(xié)議發(fā)送的時(shí)序 圖5是AURORA協(xié)議接收的時(shí)序圖。
具體實(shí)施例方式參照說(shuō)明書附圖對(duì)本發(fā)明的方法作以下詳細(xì)地說(shuō)明。一種基于aurora協(xié)議進(jìn)行FPGA板間高速互連的方法,其系統(tǒng)結(jié)構(gòu)如圖I所示,兩塊板卡之間要達(dá)到240Gb / S的通訊速率,處理如此高的速率,對(duì)硬件軟件都是一個(gè)極大的挑戰(zhàn),整個(gè)設(shè)計(jì)中,aurora的數(shù)據(jù)收發(fā)設(shè)計(jì)是重點(diǎn)。設(shè)計(jì)中還包括的各個(gè)模塊的功能如下Virtex6作為數(shù)據(jù)處理中心,用來(lái)實(shí)現(xiàn)來(lái)自QSFP的電數(shù)據(jù)的高速處理。QSFP模塊的作用是將內(nèi)部數(shù)據(jù)經(jīng)過(guò)編碼后的數(shù)據(jù),經(jīng)過(guò)電光轉(zhuǎn)換后,傳輸給接收系統(tǒng),以及接收外來(lái)光數(shù)據(jù),并經(jīng)過(guò)轉(zhuǎn)換后傳送給FPGA,數(shù)據(jù)中心的作用是與FPGA進(jìn)行數(shù)據(jù)交互。時(shí)鐘模塊的作用,是給系統(tǒng)提供參考時(shí)鐘。電源管理模塊的作用,是給整個(gè)系統(tǒng)提供各種不同的電壓。
實(shí)施例I.數(shù)據(jù)處理傳輸過(guò)程來(lái)自另一塊板卡的光纖信號(hào)首先進(jìn)入QSFP模塊,然后在FPGA中通過(guò)Aur ora協(xié)議提取數(shù)據(jù),具體數(shù)據(jù)處理是,電信號(hào)進(jìn)入FPGA的PMA,在PMA中進(jìn)行數(shù)據(jù)的并串轉(zhuǎn)換,進(jìn)行數(shù)據(jù)和時(shí)鐘恢復(fù),然后數(shù)據(jù)流進(jìn)入PCS中,在PCS中進(jìn)行塊同步,去擾碼,補(bǔ)償,最后解碼,傳遞給FPGA邏輯單元進(jìn)行使用,并傳遞給數(shù)據(jù)中心。如圖2所示;
2.數(shù)據(jù)發(fā)送過(guò)程和接受數(shù)據(jù)是相反的過(guò)程,來(lái)自FPGA內(nèi)部邏輯的數(shù)據(jù),運(yùn)用Aurora協(xié)議進(jìn)行處理,處理過(guò)程是,數(shù)據(jù)進(jìn)入到PCS中,進(jìn)行編碼,擾碼等等,完成后,進(jìn)入PMA中,進(jìn)行串并轉(zhuǎn)換后,發(fā)送到QSFP,在進(jìn)行光電轉(zhuǎn)換,等待另一終端的接收;
3.Aur ora協(xié)議對(duì)數(shù)據(jù)的具體處理過(guò)程如下
AURORA數(shù)據(jù)發(fā)送過(guò)程
在生成AURORA IP CORE時(shí),同時(shí)生成了一個(gè)基于AURORA協(xié)議的例示程序。因此,要實(shí)現(xiàn)基于AURORA協(xié)議的光纖通信,在發(fā)送端只需要在frame_gen_i模塊將要發(fā)送的數(shù)據(jù)打包,然后通過(guò)AURORA模塊發(fā)送出去??紤]到上一級(jí)傳輸數(shù)據(jù)速率可能會(huì)與AURORA傳輸?shù)臅r(shí)鐘頻率不同,因此在發(fā)送端建立一個(gè)FIFO來(lái)做緩沖器。圖3左側(cè)為frame_gen_i模塊的RTL級(jí)模型圖。AURORA協(xié)議的發(fā)送時(shí)序圖如圖4所示??梢钥闯?,TX_S0F_N為數(shù)據(jù)包幀的開始標(biāo)志,TX_E0F_N為數(shù)據(jù)包幀的結(jié)束.標(biāo)志,TX_REM
記錄最后的傳輸數(shù)據(jù)的線程,TX_SRC_RDY_N為低代表數(shù)據(jù)有效,TX_DST_RDY_N為低代表準(zhǔn)備好接受數(shù)據(jù),TX_D
是此模塊的輸出數(shù)據(jù)。AURORA 接收過(guò)程 接收端接收模塊的時(shí)序圖如圖5所示,同樣在AURORA協(xié)議中,要實(shí)現(xiàn)對(duì)數(shù)據(jù)的接收,只需在frame_check模塊中對(duì)接收的代碼加以修改,增加自己所需要的內(nèi)容,完成對(duì)數(shù)據(jù)的解碼提取,剔除冗余信息,并完成數(shù)據(jù)的緩存。接收模塊frame_check的RTL級(jí)模型圖如圖3右側(cè)所示其中,RX_D
為接收端接收的緩存于FIFO的數(shù)據(jù),RX_E0F_N為數(shù)據(jù)包幀尾的標(biāo)志,RX_S0F_N為數(shù)據(jù)包幀頭的標(biāo)志,RX_SRC_RDY_NS低時(shí)代表數(shù)據(jù)有效。RX_REM
記錄最后的傳輸數(shù)據(jù)的線程。因此在接收端接收模塊的時(shí)序圖如圖5所示。根據(jù)該時(shí)序圖可以確定接收時(shí)序,同樣,在AURORA協(xié)議末端,由于與下一級(jí)系統(tǒng)的速率可能不匹配,因此需要在接收末端加上一個(gè)FIFO做緩存。除說(shuō)明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。
權(quán)利要求
1.一種基于aimrni協(xié)議進(jìn)行FPGA板間高速互連的設(shè)計(jì)方法,其特征在于兩塊板卡之間傳輸數(shù)據(jù)要達(dá)到240Gb / S的通訊速率,對(duì)硬件軟件都是一個(gè)極大的挑戰(zhàn),整個(gè)設(shè)計(jì)中,aurora的數(shù)據(jù)收發(fā)是提高通訊速率的重點(diǎn),具體步驟如下 1)數(shù)據(jù)接收處理傳輸過(guò)程來(lái)自另一塊板卡的光纖信號(hào)首先進(jìn)入QSFP模塊,然后在FPGA中通過(guò)aur ora協(xié)議提取數(shù)據(jù),具體數(shù)據(jù)處理是,電信號(hào)進(jìn)入FPGA的PMA,在PMA中進(jìn)行數(shù)據(jù)的并串轉(zhuǎn)換,進(jìn)行數(shù)據(jù)和時(shí)鐘恢復(fù),然后數(shù)據(jù)流進(jìn)入PCS中,在PCS中進(jìn)行塊同步,剔除擾碼,補(bǔ)償,最后解碼,傳遞給FPGA邏輯單元進(jìn)行使用,并傳遞給數(shù)據(jù)中心,AURORA接收過(guò)程如下 在生成AURORA IP CORE時(shí),同時(shí)生成了一個(gè)基于AURORA協(xié)議的例示程序,因此,要實(shí)現(xiàn)基于AURORA協(xié)議的光纖通信,在發(fā)送端只需要在frame_gen_i模塊將要發(fā)送的數(shù)據(jù)打包,然后通過(guò)AURORA模塊發(fā)送出去,考慮到上一級(jí)傳輸數(shù)據(jù)速率會(huì)與AURORA傳輸?shù)臅r(shí)鐘頻率不同,因此在發(fā)送端需要建立一個(gè)FIFO來(lái)做緩沖器,同樣在AURORA協(xié)議中,要實(shí)現(xiàn)對(duì)數(shù)據(jù)的接收,只需在接收模塊frame_check中對(duì)接收的代碼加以修改,增加自己所需要的內(nèi)容,完成對(duì)數(shù)據(jù)的解碼提取,剔除冗余信息,并完成數(shù)據(jù)的緩存; 2)數(shù)據(jù)發(fā)送過(guò)程和數(shù)據(jù)接收過(guò)程是相反的過(guò)程,來(lái)自FPGA內(nèi)部邏輯的數(shù)據(jù),運(yùn)用Aur ora協(xié)議進(jìn)行處理,處理過(guò)程是,數(shù)據(jù)進(jìn)入到PCS中,進(jìn)行編碼,剔除擾碼,完成后,進(jìn)入PMA中,進(jìn)行串并轉(zhuǎn)換后,發(fā)送到QSFP,在進(jìn)行光電轉(zhuǎn)換,等待另一終端的接收,在接收模塊frame_check的RTL級(jí)模型中,RX_D
為接收端接收的緩存于FIFO的數(shù)據(jù),RX_E0F_NS數(shù)據(jù)包幀尾的標(biāo)志,RX_S0F_NS數(shù)據(jù)包幀頭的標(biāo)志,RX_SRC_RDY_N為低時(shí)代表數(shù)據(jù)有效,RX_REM
記錄最后的傳輸數(shù)據(jù)的線程,根據(jù)接收端接收模塊的時(shí)序圖確定接收時(shí)序,同樣,在AURORA協(xié)議末端,由于與下一級(jí)系統(tǒng)的速率可能不匹配,因此需要在接收末端加上一個(gè)FIFO做緩存。
全文摘要
本發(fā)明提供一種基于aurora協(xié)議進(jìn)行FPGA板間高速互連的設(shè)計(jì)方法,數(shù)據(jù)處理傳輸過(guò)程來(lái)自另一塊板卡的光纖信號(hào)首先進(jìn)入QSFP模塊,然后在FPGA中通過(guò)Aurora協(xié)議提取數(shù)據(jù),具體數(shù)據(jù)處理是,電信號(hào)進(jìn)入FPGA的PMA,在PMA中進(jìn)行數(shù)據(jù)的并串轉(zhuǎn)換,進(jìn)行數(shù)據(jù)和時(shí)鐘恢復(fù),然后數(shù)據(jù)流進(jìn)入PCS中,在PCS中進(jìn)行塊同步,去擾碼,補(bǔ)償,最后解碼,傳遞給FPGA邏輯單元進(jìn)行使用,并傳遞給數(shù)據(jù)中心。數(shù)據(jù)發(fā)送過(guò)程和接受數(shù)據(jù)是相反的過(guò)程,來(lái)自FPGA內(nèi)部邏輯的數(shù)據(jù),運(yùn)用Aurora協(xié)議進(jìn)行處理,處理過(guò)程是,數(shù)據(jù)進(jìn)入到PCS中,進(jìn)行編碼,擾碼等等,完成后,進(jìn)入PMA中,進(jìn)行串并轉(zhuǎn)換后,發(fā)送到QSFP,在進(jìn)行光電轉(zhuǎn)換,等待另一終端的接收。
文檔編號(hào)G06F13/42GK102681971SQ201210128968
公開日2012年9月19日 申請(qǐng)日期2012年4月28日 優(yōu)先權(quán)日2012年4月28日
發(fā)明者葉豐華, 閆波 申請(qǐng)人:浪潮電子信息產(chǎn)業(yè)股份有限公司