Cpld的升級(jí)處理方法、裝置和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種復(fù)雜可編程邏輯器件(complexprogrammable logic device,簡(jiǎn)稱:CPLD)的升級(jí)處理方法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002]CPLD是一種根據(jù)用戶需求構(gòu)造邏輯功能的數(shù)字集成電路,被廣泛地應(yīng)用于各種設(shè)備中,例如單板。隨著對(duì)設(shè)備的可靠性、安全性要求越來(lái)越高,如果CPLD在運(yùn)行時(shí)出現(xiàn)問(wèn)題,或者用戶需求變化,則需要升級(jí)CPLD的程序。但是,通常升級(jí)完CPLD的程序之后會(huì)釋放CPLD的管腳,這樣可能使得升級(jí)前后CPLD的管腳信號(hào)發(fā)生跳變,導(dǎo)致CPLD所在設(shè)備的前后狀態(tài)不一,需要通過(guò)復(fù)位來(lái)保證升級(jí)前后狀態(tài)的一致性,從而導(dǎo)致設(shè)備當(dāng)前業(yè)務(wù)中斷。如果發(fā)生跳變的信號(hào)是關(guān)鍵信號(hào),例如設(shè)備的控制信號(hào),用于控制設(shè)備上一些業(yè)務(wù)處理模塊的功能,就有可能影響整個(gè)設(shè)備的業(yè)務(wù)。
【發(fā)明內(nèi)容】
[0003]本發(fā)明實(shí)施例提供一種CPLD的升級(jí)處理方法、裝置和系統(tǒng),不需要中斷當(dāng)前系統(tǒng)的業(yè)務(wù),就可以保證CPLD升級(jí)前與升級(jí)后設(shè)備狀態(tài)的一致性。避免對(duì)業(yè)務(wù)產(chǎn)生沖擊,提高了系統(tǒng)的可靠性。
[0004]本發(fā)明實(shí)施例提供一種復(fù)雜可編程邏輯器件CPLD的升級(jí)處理方法,包括:
[0005]備份所述CPLD的寄存器信息和管腳信號(hào);
[0006]升級(jí)所述CPLD的程序,包括通過(guò)后臺(tái)模式將所述CPLD的升級(jí)程序加載到CPLD的閃存中;鎖定所述CPLD的管腳;將所述CPLD的閃存中的所述升級(jí)程序加載到所述CPLD的靜態(tài)隨機(jī)存儲(chǔ)器SRAM中;
[0007]在完成升級(jí)所述CPLD的程序之后,根據(jù)備份的所述寄存器信息和管腳信號(hào)恢復(fù)所述CPLD的寄存器信息和管腳信號(hào);
[0008]并在完成恢復(fù)所述CPLD的寄存器信息和管腳信號(hào)之后,釋放所述CPLD的管腳。
[0009]進(jìn)一步地,在所述升級(jí)所述CPLD的程序之前,所述方法還包括:
[0010]生成串行向量格式SVF文件,根據(jù)所述SVF文件生成VME總線文件;其中,SVF文件用于指示所述CPLD的升級(jí)處理過(guò)程;所述VME總線文件用于執(zhí)行所述CPLD的升級(jí)處理。[0011 ] 所述根據(jù)所述SVF文件生成VME總線文件包括:
[0012]將所述SVF文件拆分成第一子SVF文件和第二子SVF文件,其中,所述第一子SVF文件用于指示所述CPLD的升級(jí)處理執(zhí)行到完成升級(jí)所述CPLD的程序;所述第二子SVF文件用于指示在完成恢復(fù)所述CPLD的寄存器信息和管腳信號(hào)之后,釋放所述CPLD的管腳;
[0013]根據(jù)所述第一子SVF文件生成第一子VME總線文件;所述第一子VME總線文件用于執(zhí)行升級(jí)所述CPLD程序的操作;
[0014]根據(jù)所述第二子SVF文件生成第二子VME總線文件;所述第二子VME總線文件用于執(zhí)行釋放所述CPLD的管腳的操作。
[0015]本發(fā)明實(shí)施例提供一種復(fù)雜可編程邏輯器件CPLD的升級(jí)處理裝置,包括:
[0016]備份模塊,用于備份所述CPLD的寄存器信息和管腳信號(hào);
[0017]升級(jí)模塊,用于在所述備份模塊完成所述CPLD的寄存器信息和管腳信號(hào)的備份之后,升級(jí)所述CPLD的程序,具體用于通過(guò)后臺(tái)模式將所述CPLD的升級(jí)程序加載到CPLD的閃存中;鎖定所述CPLD的管腳;將所述CPLD的閃存中的所述升級(jí)程序加載到所述CPLD的靜態(tài)隨機(jī)存儲(chǔ)器SRAM中;
[0018]恢復(fù)模塊,用于在所述升級(jí)模塊完成升級(jí)所述CPLD的程序之后,根據(jù)備份的所述寄存器信息和管腳信號(hào)恢復(fù)所述CPLD的寄存器信息和管腳信號(hào);
[0019]釋放模塊,用于在所述恢復(fù)模塊完成恢復(fù)所述CPLD的寄存器信息和管腳信號(hào)之后,釋放所述CPLD的管腳。
[0020]進(jìn)一步的,所述裝置還包括:
[0021]生成模塊,用于在所述升級(jí)所述CPLD的程序之前,生成串行向量格式SVF文件,根據(jù)所述SVF文件生成VME總線文件;其中,SVF文件用于指示所述CPLD的升級(jí)處理過(guò)程;所述VME總線文件用于執(zhí)行所述CPLD的升級(jí)處理。
[0022]所述生成模塊具體用于將所述SVF文件拆分成第一子SVF文件和第二子SVF文件,其中,所述第一子SVF文件用于指示所述CPLD的升級(jí)處理執(zhí)行到完成升級(jí)所述CPLD程序的操作;所述第二子SVF文件用于指示在完成恢復(fù)所述CPLD的寄存器信息和管腳信號(hào)之后,釋放所述CPLD的管腳;
[0023]根據(jù)所述第一子SVF文件生成第一子VME總線文件;所述第一 VME總線文件用于執(zhí)行升級(jí)所述CPLD程序的操作;
[0024]根據(jù)所述第二子SVF文件生成第二子VME總線文件;所述第二子VME總線文件用于執(zhí)行釋放所述CPLD的管腳的操作。
[0025]本發(fā)明實(shí)施例提供一種復(fù)雜可編程邏輯器件CPLD的升級(jí)處理裝置,包括:一個(gè)或多個(gè)處理器、存儲(chǔ)器以及一個(gè)或多個(gè)程序,所述一個(gè)或多個(gè)程序存儲(chǔ)在所述存儲(chǔ)器中,并被配置為由所述一個(gè)或多個(gè)處理器執(zhí)行,所述一個(gè)或多個(gè)程序包括:
[0026]備份所述CPLD的寄存器信息和管腳信號(hào)的指令;
[0027]升級(jí)所述CPLD的程序的指令,包括通過(guò)后臺(tái)模式將所述CPLD的升級(jí)程序加載到CPLD的閃存中的指令;鎖定所述CPLD的管腳的指令;將所述CPLD的閃存中的所述升級(jí)程序加載到所述CPLD的靜態(tài)隨機(jī)存儲(chǔ)器SRAM中的指令;
[0028]在完成升級(jí)所述CPLD的程序之后,根據(jù)備份的所述寄存器信息和管腳信號(hào)恢復(fù)所述CPLD的寄存器信息和管腳信號(hào)的指令;
[0029]并在完成恢復(fù)所述CPLD的寄存器信息和管腳信號(hào)之后,釋放所述CPLD的管腳的指令。
[0030]進(jìn)一步的,在所述升級(jí)所述CPLD的程序的指令之前還包括:
[0031]生成串行向量格式SVF文件,根據(jù)所述SVF文件生成VME總線文件的指令;其中,SVF文件用于指示所述CPLD的升級(jí)處理過(guò)程;所述VME總線文件用于執(zhí)行所述CPLD的升級(jí)處理。
[0032]所述根據(jù)所述SVF文件生成VME總線文件的指令包括:
[0033]將所述SVF文件拆分成第一子SVF文件和第二子SVF文件的指令,其中,所述第一子SVF文件用于指示所述CPLD的升級(jí)處理執(zhí)行到完成升級(jí)所述CPLD的程序的指令;所述第二子SVF文件用于指示在完成恢復(fù)所述CPLD的寄存器信息和管腳信號(hào)之后,釋放所述CPLD的管腳的指令;
[0034]根據(jù)所述第一子SVF文件生成第一子VME總線文件的指令;所述第一子VME總線文件用于執(zhí)行升級(jí)所述CPLD程序的操作的指令;
[0035]根據(jù)所述第二子SVF文件生成第二子VME總線文件的指令;所述第二子VME總線文件用于執(zhí)行釋放所述CPLD的管腳的操作的指令。
[0036]本發(fā)明實(shí)施例提供一種復(fù)雜可編程邏輯器件CPLD的升級(jí)處理系統(tǒng),包括:CPLD和CPLD的升級(jí)處理裝置,其中,CPLD的升級(jí)處理裝置采用上述的CPLD的升級(jí)處理裝置。
[0037]本發(fā)明實(shí)施例中,升級(jí)處理裝置在執(zhí)行CPLD升級(jí)任務(wù)之前,備份CPLD當(dāng)前狀態(tài)的寄存器信息和管腳信號(hào),然后執(zhí)行CPLD的升級(jí),后臺(tái)加載CPLD的升級(jí)程序到CPLD的Flash中,鎖定CPLD當(dāng)前的管腳,接著,將升級(jí)程序從CPLD的Flash中加載到CPLD的SRAM中運(yùn)行,并不立即釋放CPLD當(dāng)前的管腳,而是在釋放CPLD當(dāng)前的管腳之前,將上述備份的CPLD的內(nèi)部信息恢復(fù)到當(dāng)前CPLD中,使升級(jí)前的CPLD的寄存器信息和管腳信號(hào)與升級(jí)后當(dāng)前的CPLD的寄存器信息和CPLD的管腳信號(hào)匹配,最后釋放CPLD當(dāng)前的輸出管腳,可以實(shí)現(xiàn)設(shè)備在線狀態(tài)下升級(jí)CPLD的操作。不需要中斷當(dāng)前系統(tǒng)的業(yè)務(wù),就可以保證CPLD升級(jí)前與升級(jí)后設(shè)備狀態(tài)的一致性。避免對(duì)業(yè)務(wù)產(chǎn)生沖擊,提高了系統(tǒng)的可靠性。
【附圖說(shuō)明】
[0038]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0039]圖1為本發(fā)明實(shí)施例提供的CPLD的升級(jí)處理方法的流程圖;
[0040]圖2為本發(fā)明實(shí)施例提供的CPLD的升級(jí)處理方法中升級(jí)所述CPLD的程序的具體流程圖;
[0041]圖3為本發(fā)明實(shí)施例提供的一種CPLD的升級(jí)處理裝置的結(jié)構(gòu)示意圖;
[0042]圖4為本發(fā)明實(shí)施例提供的另一種CPLD的升級(jí)處理裝置的結(jié)構(gòu)示意圖;
[0043]圖5為本發(fā)明實(shí)施例提供的CPLD的升級(jí)處理系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0044]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案