換機(jī)I和FPGA編譯平臺(tái)2,其中,交換機(jī)包括CPU處理器11、一片或者多片F(xiàn)PGA、存儲(chǔ)器12、網(wǎng)絡(luò)接口 13,如圖1所示,具體的:
[0030]所述FPGA編譯平臺(tái)2將升級(jí)內(nèi)容轉(zhuǎn)換為能夠在FPGA中可編譯文件;并通過(guò)互聯(lián)網(wǎng)將攜帶所述可編譯文件的升級(jí)包發(fā)送到所述交換機(jī)I的網(wǎng)絡(luò)接口 13 ;所述交換機(jī)I的CPU處理器11從所述網(wǎng)絡(luò)接口 13中獲取升級(jí)包,并存儲(chǔ)于所述存儲(chǔ)器中12 ;所述CPU處理器11解析所述升級(jí)包,并根據(jù)解析結(jié)果定位需要進(jìn)行升級(jí)的FPGA ;所述CPU處理器11通過(guò)與各FPGA構(gòu)成的菊花鏈,將所述可編譯文件通過(guò)測(cè)試數(shù)據(jù)輸入接口 TDI下發(fā)到相應(yīng)FPGA完成升級(jí)。
[0031 ] 其中,各FPGA可以擁有各自的Flash存儲(chǔ)器,也可以如圖1所示,和所處CPU處理11公用一個(gè)存儲(chǔ)器12。
[0032]本發(fā)明實(shí)施例提供的在線升級(jí)系統(tǒng)相比較現(xiàn)有技術(shù)需要打開交換機(jī)盒才能完成的升級(jí)方式更為方便和高效。
[0033]優(yōu)選的,所述CPU處理和所述一片或者多片F(xiàn)PGA構(gòu)成菊花鏈,具體包括:所述CPU處理器分配4個(gè)通用輸入/輸出口 GP1分別作為測(cè)試輸入時(shí)鐘接口 TCK0、測(cè)試模式選擇接口 TMS0、測(cè)試數(shù)據(jù)輸入接口 TD10、測(cè)試數(shù)據(jù)輸出接口 TD00,其中,所述測(cè)試輸入時(shí)鐘接口TCK0、測(cè)試模式選擇接口 TMSO以并聯(lián)方式連接所述一片或者多片F(xiàn)PGA中的測(cè)試輸入時(shí)鐘接口和測(cè)試模式選擇接口 ;以串聯(lián)方式連接CPU處理器和各FPGA芯片的測(cè)試數(shù)據(jù)輸入接口、測(cè)試數(shù)據(jù)輸出接口,所述串聯(lián)方式具體為串聯(lián)鏈上前一節(jié)點(diǎn)的測(cè)試數(shù)據(jù)輸入接口對(duì)接串聯(lián)鏈上后一節(jié)點(diǎn)測(cè)試數(shù)據(jù)輸出接口 ;所述測(cè)試數(shù)據(jù)輸出接口 TD1與所述串聯(lián)鏈最后一節(jié)點(diǎn)的測(cè)試數(shù)據(jù)輸出接口相連。
[0034]優(yōu)選的,所述FPGA編譯平臺(tái)將升級(jí)內(nèi)容轉(zhuǎn)換為能夠在FPGA中可編譯文件,具體包括:
[0035]FPGA邏輯平臺(tái)通過(guò)編譯綜合生成JIC文件;所述FPGA編譯平臺(tái),通過(guò)JTAG掃描接口掃描出設(shè)備上面所有待升級(jí)的FPGA芯片,生成鏈描述文件CDF ;所述FPGA編譯平臺(tái)將所述JIC文件和CDF文件轉(zhuǎn)換為JBC文件,以便所述交換機(jī)根據(jù)所述JBC文件升級(jí)相應(yīng)的FPGA0
[0036]優(yōu)選的,所述FPGA編譯平臺(tái)將所述JIC文件和CDF文件轉(zhuǎn)換為JBC文件,具體包括:
[0037]所述FPGA編譯平臺(tái)打開所述CDF文件,并加載JIC文件,并轉(zhuǎn)換成JBC文件;以便所述CPU處理器在接收到攜帶所述JBC文件的升級(jí)包時(shí),能夠解析出所述JBC文件的CDF文件,通過(guò)解析所述菊花鏈轉(zhuǎn)發(fā)給匹配的FPGA芯片,由所述FPGA芯片解析所述JBC文件中的JIC文件內(nèi)容來(lái)完成所述FPGA的升級(jí)。
[0038]具體的:通過(guò)FPGA芯片的自身解析JBC文件中的JIC文件內(nèi)容,將升級(jí)內(nèi)容保存到自己匹配的flash存儲(chǔ)器里。保存成功,以后設(shè)備上電,F(xiàn)PGA自動(dòng)去加載FLASH存儲(chǔ)器里的內(nèi)容。從而達(dá)到了升級(jí)的目的。
[0039]實(shí)施例2:
[0040]本發(fā)明實(shí)施例還提供了一種具有FPGA在線升級(jí)功能的交換機(jī),所述交換機(jī)包括CPU處理器11、一片或者多片F(xiàn)PGA,如圖2所示,具體的:
[0041]所述CPU處理器分配4個(gè)通用輸入/輸出口 GP1分別作為測(cè)試輸入時(shí)鐘接口TCK0、測(cè)試模式選擇接口 TMS0、測(cè)試數(shù)據(jù)輸入接口 TD10、測(cè)試數(shù)據(jù)輸出接口 TD00,其中,所述測(cè)試輸入時(shí)鐘接口 TCK0、測(cè)試模式選擇接口 TMSO以并聯(lián)方式連接所述一片或者多片F(xiàn)PGA中的測(cè)試輸入時(shí)鐘接口和測(cè)試模式選擇接口;以串聯(lián)方式連接CPU處理器和各FPGA芯片的測(cè)試數(shù)據(jù)輸入接口、測(cè)試數(shù)據(jù)輸出接口,所述串聯(lián)方式具體為串聯(lián)鏈上前一節(jié)點(diǎn)的測(cè)試數(shù)據(jù)輸入接口對(duì)接串聯(lián)鏈上后一節(jié)點(diǎn)測(cè)試數(shù)據(jù)輸出接口 ;所述測(cè)試數(shù)據(jù)輸出接口TDOO與所述串聯(lián)鏈最后一節(jié)點(diǎn)的測(cè)試數(shù)據(jù)輸出接口相連。
[0042]本實(shí)施例所述的具有FPGA在線升級(jí)功能的交換機(jī),用于實(shí)施例1中所述的系統(tǒng),并提供了在線FPGA升級(jí)的解決方案,進(jìn)一步闡述了如何實(shí)現(xiàn)所述系統(tǒng)中的核心單元。
[0043]優(yōu)選的,所述交換機(jī)還包括存儲(chǔ)器12、網(wǎng)絡(luò)接口 13,所述存儲(chǔ)器12和網(wǎng)絡(luò)13接口分別和所述CPU處理器11相連,具體的:
[0044]所述網(wǎng)絡(luò)接口 13用于接收FPGA編譯平臺(tái)2發(fā)送過(guò)來(lái)的升級(jí)包;所述存儲(chǔ)器12用于存儲(chǔ)各FPGA的加載程序,還用于存儲(chǔ)所述網(wǎng)絡(luò)接口接收到的升級(jí)包。
[0045]其中,所述各FPGA還可以各自配備有flash存儲(chǔ)器,此時(shí),所述FPGA的加載程序各自存儲(chǔ)于如圖2所示的與之對(duì)應(yīng)連接的flash存儲(chǔ)器中。
[0046]優(yōu)選的,所述交換機(jī)還包括:一片或者多片F(xiàn)PGA或CPLD。由于其連接方式和所述FPGA的類似,因此,本實(shí)施例沒有對(duì)其——贅述。
[0047]實(shí)施例3:
[0048]本發(fā)明實(shí)施例還提供了一種交換機(jī)設(shè)備中FPGA在線升級(jí)方法,所述交換機(jī)設(shè)備具有實(shí)施例2所述的結(jié)構(gòu),具體的:
[0049]在步驟201中,CPU處理器通過(guò)解析提取接收到的升級(jí)包JBC文件中攜帶的⑶F文件內(nèi)容。
[0050]在步驟202中,所述CPU處理器通過(guò)所述測(cè)試模式選擇接口 TMSO向各FPJG發(fā)送進(jìn)入JTAG模式。
[0051]在步驟203中,所述CPU處理器通過(guò)測(cè)試輸入時(shí)鐘接口 TCKO輸入編程時(shí)鐘信號(hào),并通過(guò)TDOO 口向JTAG菊花鏈中下一節(jié)點(diǎn)的FPGA發(fā)送用于升級(jí)的JBC文件。
[0052]在步驟204中,JTAG菊花鏈中各FPGA校驗(yàn)所述JBC文件,若所述JBC文件的目標(biāo)地址并非自己,則透?jìng)鲗⑺鼍幾g代碼透?jìng)鹘o所述JTAG菊花鏈中下一個(gè)FPGA節(jié)點(diǎn),直到所述編譯代碼到達(dá)目標(biāo)JTAG節(jié)點(diǎn),并完成軟件升級(jí)。
[0053]優(yōu)選的,所述JTAG菊花鏈具體包括:所述CPU處理器分配4個(gè)通用輸入/輸出口GP1分別作為測(cè)試輸入時(shí)鐘接口 TCK0、測(cè)試模式選擇接口 TMS0、測(cè)試數(shù)據(jù)輸入接口 TD10、測(cè)試數(shù)據(jù)輸出接口 TD00,其中,所述測(cè)試輸入時(shí)鐘接口 TCK0、測(cè)試模式選擇接口 TMSO以并聯(lián)方式連接所述一片或者多片F(xiàn)PGA中的測(cè)試輸入時(shí)鐘接口和測(cè)試模式選擇接口 ;以串聯(lián)方式連接CPU處理器和各FPGA芯片的測(cè)試數(shù)據(jù)輸入接口、測(cè)試數(shù)據(jù)輸出接口,所述串聯(lián)方式具體為串聯(lián)鏈上前一節(jié)點(diǎn)的測(cè)試數(shù)據(jù)輸入接口對(duì)接串聯(lián)鏈上后一節(jié)點(diǎn)測(cè)試數(shù)據(jù)輸出接口 ;所述測(cè)試數(shù)據(jù)輸出接口 TD1與所述串聯(lián)鏈最后一節(jié)點(diǎn)的測(cè)試數(shù)據(jù)輸出接口相連。
[0054]優(yōu)選的,所述方法還包括:所述CPU處理器,在完成所有FPGA芯片的升級(jí)操作后,向FPGA編譯平臺(tái)返回升級(jí)成功消息。
[0055]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于:本發(fā)明提供的在線升級(jí)系統(tǒng)相比較現(xiàn)有技術(shù)需要打開交換機(jī)盒才能完成的升級(jí)方式更為方便和高效。
[0056]實(shí)施例4:
[0057]本發(fā)明實(shí)施例還提供了一種交換機(jī)設(shè)備中FPGA在線升級(jí)文件生成流程圖,本實(shí)施例適用于實(shí)施例3所述的方法,如圖4所示,具體的:
[0058]通過(guò)JTAG鏈,將FPGA加載程序通過(guò)CPU加載到FPGA匹配的FLASH寄存器中,保證以后設(shè)備啟動(dòng)上電,加載的程序和升級(jí)的版本統(tǒng)一。這個(gè)升級(jí)程序文件,是特定設(shè)置生成的。
[0059]在步驟301中,將編寫的FPGA邏輯程序綜合成JIC文件。
[0060]在步驟302中,生成⑶F。其中,有2種方法生成⑶F文件。方法一,F(xiàn)PGA編譯平臺(tái)通過(guò)JTGA鏈,掃描JTAG鏈上串的所有的JTAG接口芯片,生成⑶F文件。方法二,在FPGA編譯平臺(tái)上,按照設(shè)備上面JTAG鏈上的接口芯片自定義FPGA設(shè)備鏈結(jié)構(gòu),生成⑶F文件。
[0061]在步驟303中,打開⑶F文件,加載JIC文件。
[0062]在步驟304中,在⑶F文件的基礎(chǔ)上,將JIC文件加載上去后,生成JBC文件,并保存下來(lái)。此類型文件,即是可以進(jìn)行CPU在線升級(jí)的文件。
[0063]在步驟305中,按照上面的I到4步,看是否這個(gè)JTAG菊花鏈上面的所有的JTAG接口的FPGA芯片的加載程序均分別生成了對(duì)應(yīng)的JBC文件。若沒有則重復(fù)前面的I到4步驟,將JTAG菊花鏈上面的所以FPGA加載程序均生成了對(duì)應(yīng)的JBC文