專利名稱::對可編程邏輯器件進行在系統編程的裝置和方法
技術領域:
:本發明涉及應用可編程集成電路的領域,具體地,涉及一種對可編程邏輯器件(PLD)進4亍在系統編程(ISP:InSystemProgramming)的裝置和方法,其尤其適用于在存儲資源和運算資源受限的嵌入式系統內提供PLD在線升級(on-lineupgrade)功能的場合。
背景技術:
:可編程邏輯器件(PLD)是一類包含可編程單元的集成電路,電可編程邏輯器件(EPLD)、復雜可編程邏輯器件(CPLD)、現場可編程門陣列(FPGA)都是典型的可編程邏輯器件,它們被廣泛地應用于數字電路的各種應用領域。使用可編程邏輯器件,設計者既可以在有限的印刷電路板(PCB)空間內實現較大規^莫的數字邏輯電路,又可以簡化電路板設計的前期準備。同時,可編程邏輯器件的在系統可編程(ISP)特性使設計者能夠對焊在印刷電路板上的可編程邏輯器件進行重復編程,這在很大程度上縮短了開發周期,降低了開發成本。幾乎所有的可編程邏輯器件制造商都在IEEE1149.1標準的基礎上提供ISP功能。在IEEE1149.1中,聯合測試行動組(JTAG)為數字集成電路和數模混合電路定義了一個測試訪問端口(TAP)和一種邊界掃描邏輯結構,實現了對不同器件進行邊界掃描測試(BST)和在系纟充編禾呈(ISP)的纟充一接口(通常稱、為JTAG接口)。JTAG接口包括四個必備信號(TDI、TDO、TMS、TCK)。其中,TCK為時鐘輸入信號,TDI用于向TAP輸入JTAG數據或JTAG指令,TAP通過TDO輸出JTAG數據或JTAG指令,TMS用來驅動TAP控制器狀態機。各種器件的JTAG接口能以雛菊花鏈(DaisyChain)的方式連接起來,集中由一個測試/編禾呈器訪問。為了對BST和ISP過程進行描述,ASSETInterTech公司(前身是TexasInstruments/>司的JTAG工具團隊)開發出一種串《亍向量格式(SVF)文件。由于SVF在獨立于特定器件的條件下完整地描述了測試/編程器訪問JTAG接口的全過程,目前它已被絕大多數PLD制造商采納,成為事實上的標準的BST過程描述i吾言和ISP過程描述語言。PLD制造商的集成開發軟件都提供SVF文件輸出功負fe。侈'H口,Altera7>司的QuartusII、Lattice乂〉司的ispVM、Xilinx公司的ISE都支持把各自的編程數據文件轉換成SVF文件。SVF是由一系列SVF語句組成的ASCII文本文件,每一條SVF語句都包含命令字和參數列表,以分號";,,結尾。參數列表依次包括掃描數值、參數關鍵字、和掃描數據。掃描數據(分為JTAG數據和JTAG指令)在一對括號中以十六進制形式表示。參數關鍵字TDI引導的掃描數據和SMASK引導的掃描數據進行邏輯與運算后,以最低有效位(LSB)在前的順序輸入器件。參數關鍵字TDO引導的掃描數據和MASK引導的掃描數據進行邏輯與運算后,同樣以LSB在前的順序依次與器件的輸出數據進行比較。SVF命令字歹ij舉如下ENDDR指定JTAG數據寄存器掃描(DRscan)操作結束后TAP控制器狀態機的狀態ENDIR指定JTAG指令寄存器掃描(IRscan)操作結束后TAP4空制器^l犬態才幾的^)犬態FREQUENCY指定TCK4言號頻率的最大值HDR指定在每次DRscan操作開始前預先輸入輸出器件TAP的JTAG數據前綴HIR指定在每次IRscan操作開始前預先輸入輸出器件TAP的JTAG指令前綴PIO指定一種并4于測試向量PIOMAP指定PIO命令中并行測試向量與器件管腳的映射關系RUNSET驅動器件的TAP狀態4幾進入某一狀態,并在此狀態下運行一段時間,這段時間可以用TCK周期數表示SDR執行JTAG數據寄存器掃描(DRscan)SIR執行JTAG指令寄存器掃描(IRscan)STATE驅動器件的TAP狀態機進入某一穩定狀態TDR指定在每次DRscan操作結束前輸入輸出器件TAP的JTAG數據后綴TIR指定在每次IRscan操作結束前輸入輸出器件TAP的JTAG指令后綴TRST控制JTAG接口的可選輸入信號TRST4吏用SVF文4牛進4亍在系統編#呈的方法雖然具有適用于幾乎所有PLD制造商的器件的優點,但是它也存在明顯的缺點第一,SVF最主要的兩個命令SDR、SIR攜帶著原始JTAG數據和原始JTAG指令,而這些數據和指令包含極大的冗余信息,加上它是一種由ASCII字符組成的文本格式,因此SVF文件的數據量非常大,對這種文件的保存和處理都需要耗費大量存儲單元;第二,SVF沒有提供足夠的檢錯能力,SVF處理軟件在大多數情況下無法檢查出文件在保存、傳遞過程因為外界干擾而引入的差錯,錯誤的JTAG數據和JTAG指令仍舊被用于PLD編程,在一些條件下甚至可能造成PLD的硬z件損傷。存儲和容錯方面的問題使SVF不能成為理想的ISP文件格式,在提供PLD在線升級(on-lineupgrade)功能的嵌入式系統里,這些問題更是必須解決的。嵌入式系統是為某種應用所定制的包含嵌入式處理器、存儲器和其他邏輯器件的電子設備。一般情況下,存儲容量非常有限,為了保存、處理PLD的ISP文件而占用大量存儲單元是4艮不經濟的。另一方面,為了實現PLD在線升級,嵌入式系統通常需要從某一個外部通訊接口(例如RS232接口或以太網口)獲得新的ISP文件,這個通訊過程存在引入外部干擾導致文件差錯的可能,因此,對ISP文件進行檢錯處理就顯得相當必要。除了以上兩個缺點,由于SVF文件直接描述JTAG接口的訪問過程,它還存在不能顯式區分整個ISP過程各個階段的問題。事實上,PLD的整個ISP過程是由多個階段組成的。對于EPLD、CPLD、和FPGA這三種典型PLD來說,ISP主要包括器件標識檢查、擦除、編程、和校驗四個階段。顯式區分這些階段有助于軟件在ISP過程給出必要的提示信息,提高ISP過程的健壯性。綜上所述,可編程邏輯器件的在系統編程,特別是嵌入式系統中可編程邏輯器件的在系統編程需要一種更先進的技術,這一技術應該不僅能夠發揮現有技術的優勢,更重要的是還能解決它所面臨的問題。
發明內容考慮到相關技術中存在的耗費較大存儲單元、容錯性差、以及不能顯式區分整個在系統編程過程各個階段的問題而做出本發明。為此,根據本發明的一個實施例,提供了一種對可編程邏輯器4牛進4亍在系統編禾呈的裝置。該裝置包括文件格式轉換器,用于將目標可編程邏輯器件的串行向量格式文件轉換成嵌入式編程格式文件,作為目標可編程邏輯器件的在系統編程文件;以及文件解釋器,用于解析輸入的嵌入式編程格式文件,生成符合IEEE1149.1的編禾呈信息,并才艮據編程信息驅動JTAG4妻口信號,對目標可編程邏輯器件進行在系統編程。其中,當有多個目標可編程邏輯器件存在于一條雛菊花鏈中時,文件格式轉換器將多個目標可編程邏輯器件對應的所有串行向量格式文件統一轉換成一個嵌入式編程格式文件,作為多個目標可編程邏輯器件的在系統編程文件,其中,上述多個目標可編程邏輯器件是該雛菊花鏈中部分或全部可編程邏輯器件。以下首先具體描述嵌入式編程格式文件。嵌入式編程格式文件是二進制文件,它包含作為文件格式轉換器輸入的所有串行向量格式文件的全部編程信息。另外,嵌入式編程格式文件還可以包含以下部分或全部信息差錯4交驗字;標識目標可編程邏輯器件的在系統編程過程各個階段的信息;文件版本信息。其中,差錯校驗字用于檢查嵌入式編程格式文件在保存和傳遞過程中因外界干擾而引入的差4普;標識目標可編程邏輯器件的在系統編程過程各個階段的信息用于在系統編程過程給出必要提示;文件版本信息用于檢,驗嵌入式編程格式文件與目標可編程邏輯器件是否匹配,以及指示嵌入式編程格式文件的更新次數。這樣,文件解釋器在進行解析操作之前,利用嵌入式編程格式文件中的差錯校驗字對嵌入式編程格式文件本身的正確性進行校驗,和/或利用文件版本信息檢驗嵌入式編程格式文件與目標可編程邏輯器件是否匹配。根據本發明的另一實施例,提供了一種對可編程邏輯器件進行在系統編禾呈的方法。該方法包括以下步驟第一步驟,文件格式轉換器將目標可編程邏輯器件的串行向量格式文件轉換成嵌入式編程格式文件,并將嵌入式編程格式文件作為在系統編程文件加以保存和傳遞;第二步驟,文件解釋器校驗嵌入式編程格式文件的有效性、是否與目標可編程邏輯器件匹配、以及是否為最新的在系統編程文件;第三步驟,編程邏輯器件進行在系統編程。上述的第一步驟具體包括以下步驟步驟A:文件格式轉換器對目標可編程邏輯器件的串行向量格式文件中的串行向量格式命令進行逐條處理,將串行向量格式命令字和參數關鍵字替換成相應的二進制符號編碼,將掃描數值和掃描數據壓縮編碼成二進制序列,同時插入標識目標可編程邏輯器件在系統編程各階段的二進制符號編碼,得到二進制編程數據;步驟B:文件格式轉換器對二進制編程數據進行無損壓縮,并將嵌入式編程格式文件長度信息和嵌入式編程格式文件版本信息添加到壓縮數據之前;以及步驟C:文件格式轉換器對嵌入式編程格式文件長度信息、嵌入式編程格式文件版本信息、以及壓縮數據進行CRC-16計算,將計算結果添加到嵌入式編程格式文件長度信息之前,將嵌入式編程格式文件頭部和壓縮數據的總合^f呆存為嵌入式編程格式文件。其中,上述的嵌入式編程格式文件頭部包4舌CRC-16校驗信息、嵌入式編禾呈格式文件長度信息、以及嵌入式編程格式文件版本信息。在第二步驟中,文件解釋器對嵌入式編程格式文件中除CRC-16校驗信息之外的部分進行CRC-16計算,比較計算結果與CRC-16校驗信息,如果二者一致,則說明嵌入式編程格式文件有效,否則i兌明嵌入式編程格式文件無效;文件解釋器核查嵌入式編程格式文件版本信息,以確i人嵌入式編程格式文件是否與目標可編程邏輯器件匹配、以及是否為最新的在系統編程文件。上述的第三步驟具體包括以下步驟步驟A:文件解釋器對嵌入式編程格式文件的壓縮數據部分進行解壓縮,還原出二進制編程數據;以及步驟B:文件解釋器識別二進制編程數據中的串行向量格式命令,從中提取掃描數據,驅動JTAG接口信號,對目標可編程邏輯器件進行在系統編程。通過以上技術方案,本發明實現了以下有益效果在保留目前適用于幾乎所有可編程邏輯器件制造商器件的優勢的同時,解決了存儲資源消耗大、差錯檢測能力差、以及不能顯式區分整個在系統編考呈過程各個階,殳的問題。此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中圖1是根據本發明實施例的用于解釋對可編程邏輯器件進行在系統編程的裝置的框圖;圖2是根據本發明實施例的對可編程邏輯器件進行在系統編程的裝置的具體實現的結構示意圖;圖3是4艮據本發明實施例的用于解釋對可編程邏輯器件進行在系統編程的方法的流程圖;圖4是示出EPF文^f牛的結構的示意圖;圖5是示出文件格式轉換器的處理流程的流程圖;圖6是文件格式轉換器使用的"比特級聯"算法的處理流程圖;以及圖7是示出文件解釋器的處理流程的流程圖。U^實施方式以下將參照附圖來描述本發明的優選實施例,提供以下實施例的目的在于提供對本發明的全面和透徹理解,而不是對本發明進行任何限制。裝置實施例在本實施例中,提供了了一種對可編程邏輯器件進行在系統編程的裝置。如圖l所示,裝置100包括文件格式轉換器102,用于將目標可編程邏輯器件(PLD)的串^f亍向量格式(SVF)文件轉換成嵌入式編程格式(EPF)文件,作為目標可編程邏輯器件的在系統編程文件;以及文件解釋器104,用于解析輸入的嵌入式編程格式文件,生成符合IEEE1149.1的編程信息(包括JTAG數據和JTAG指令),并根據編程信息驅動JTAG接口信號,對目標可編程邏輯器件進4亍在系統編程。文件格式轉換器102可以是存在于計算機存儲器介質上的程序。當有多個目標PLD存在于一條雛菊花鏈中時,文件格式轉換器將多個目標PLD對應的所有SVF文件統一轉換成一個EPF文件,作為多個目標PLD的在系統編程文件。上述多個目標PLD可以是這條雛菊花鏈中的所有可編程邏輯器件,也可以是這條雛菊花鏈中的任意幾個可編程邏輯器件。另外,SVF文件由目標PLD制造商的集成開發軟件輸出。上述的EPF文件取代了原SVF文件,作為目標PLD進行在系統編程的文件。具體地,EPF文件首先是二進制文件,它包含作為文件格式轉換器輸入的所有SVF文件的全部編程信息。另外,EPF文件還可以包含以下的部分或全部信息差4普4交-驗字;標識目標PLD在系統編程過程各個階段的信息;文件版本信息。與所有SVF文件規模的總和相比,EPF文件的規模小很多,在保存和處理過程中只需占用極少的存儲單元;此外,EPF文件包含差錯校驗字,這使得檢查出EPF文件在保存和傳遞過程中因外界干擾而引入的差錯成為可能;EPF文件包含標識目標PLD在系統編程過程各個階段的信息,這使在系統編程過程得以給出必要的提示信息,以增強其健壯性;EPF文件還包含文件版本信息,用來檢驗所述EPF文件與目標PLD是否匹配,并指示EPF文件的更新次凌t。文件解釋器104可以是存在于計算機存儲器介質上的程序,也可以是存在于嵌入式系統存儲器介質上的程序。文件解釋器104在進行解析操作之前,利用EPF文件中的差錯校驗字對EPF文件本身的正確性進行校驗,還可以利用文件版本信息檢-驗EPF文件與目標PLD是否匹配。該裝置100的具體實現如圖2所示。圖2的計算才幾系統包^舌通過系統總線互相通信的中央處理單元(CPU)、存儲器、輸入/輸出設備。輸入/輸出設備至少包括一個通4言接口,例如RS232接口或以太網接口,用于和嵌入式系統進4亍信息交互。文件格式轉換器由駐留于計算機系統存儲器內的一個程序實現,目標PLD制造商的集成開發軟件輸出SVF文件暫存在存儲器中,經過文件格式轉換器的處理,SVF文件轉換成EPF文件同樣保存在存儲器內。輸入/輸出設備把EPF文件傳遞給嵌入式系統,作為文件解釋器的輸入暫存在嵌入式系統的存儲器中。圖2的嵌入式系統包括嵌入式處理器和外圍設備、存儲器、包含目標PLD的雛菊花鏈,其中,外圍設備具有與計算機系統交互信息的通信接口和產生JTAG接口信號的電路。嵌入式處理器通過處理器總線訪問并執行存儲器中的文件解釋器程序,處理EPF文件,進而通過外圍設備產生JTAG接口信號操作雛菊花鏈,對目標PLD進4亍在系統編程。方法實施例在本實施例中,提供了一種對可編程邏輯器件進行在系統編程的方法。如圖3所示,該方法包4舌以下步驟步驟S302,文件格式轉換器將目標PLD(編程邏輯器件)的SVF文件(串行向量格式文件)轉換成EPF文件(嵌入式編碼格式文件),并將EPF文件作為在系統編程加以保存和傳遞;步驟S304,文件解釋器校驗EPF文件的有效性、是否與目標PLD匹配、以及是否為最新的在系統編程文件;步驟S306,文件解釋器通過對EPF文件進行相應處理來對目標PLD進4亍在系統編程。上述的步驟S302具體包括以下步驟步驟A:文件格式轉換器對目標PLD的SVF文件中的SVF命令進行逐條處理,將SVF命令字和參數關鍵字替換成相應的二進制符號編碼,將掃描數值和掃描數據壓縮編碼成二進制序列,同時插入標識目標PLD在系統編程各階段的二進制符號編碼,得到二進制編程數據;步驟B:文件格式轉換器對二進制編程數據進行無損壓縮,并將EPF文件長度信息和EPF文件版本信息添加到壓縮數據之前;以及步驟C:文件格式轉換器對EPF文件長度信息、EPF文件版本信息、以及壓縮數據進行CRC-16計算,將計算結果添加到EPF文件長度信息之前,將EPF文件頭部和壓縮lt據的總合4呆存為EPF文件。其中,上述EPF文件的結構在圖4中示出,具體包4舌EPF文件頭部和EPF壓縮數據。其中,EPF文件頭部包括CRC-16校驗信息(3字節)、EPF文件長度信息(5字節)、以及EPF文件版本信息(8字節)。其中,CRC-16校驗信息由符號編碼0x65開頭,后接2字節CRC-16計算結果;文件長度信息由符號編碼0x7F開頭,后接4字節文件長度值;文件版本信息由符號編碼0x78開頭,后接文件格式轉換器版本號(1字節)、目標PLD功能編碼(2字節)、目標PLD在系統編程文件版本號(1字節)、目標PLD所在嵌入式系統的硬件功能編碼(2字節)、嵌入式系統的硬件版本號(1字節)。在步驟S304中,文件解釋器對EPF文件中除CRC-16校-驗信息之外的部分進行CRC-16計算,比較計算結果與CRC-16校驗信息,如果二者一致,則說明EPF文件有效,否則,則說明EPF文件無效;文件解釋器核查EPF文件版本信息,以確i人EPF文件是否與目標PLD匹配、以及是否為最新的在系統編程文件。上述的步驟S306具體包括以下步驟步驟A:文件解釋器對EPF文件壓縮數據部分進行解壓縮,還原出二進制編程數據;以及步驟B:文件解釋器識別二進制編程數據中的SVF命令,從中提取掃描數據,驅動JTAG接口信號,對目標PLD進行在系統編程。以下將結合具體實例來詳細描述文件格式轉換器和文件解釋器的處理。實例1以下將結合圖5來描述文件格式轉換器102的處理流程。如圖5所示,文件格式轉換器102的處理包括以下步驟51、打開一個目標PLD的SVF文件,分別從SIR命令、SDR命令中提取該PLD的指令寄存器長度和各種數據寄存器長度;52、與所有型號PLD在它們的邊界掃描描述(BSD)文件中定義的指令寄存器長度、數據寄存器長度進行比較,確定目標PLD的型號;53、如果已經掃描完所有目標PLD的SVF文件,繼續執行S4,否則打開雛菊花鏈中下一個目標PLD的SVF文件,回到SI;54、逐個處理目標PLD,掃描它的SVF文件;S5、根據雛菊花鏈中所有器件的指令寄存器長度以及當前目標PLD在雛菊花鏈中的位置,計算指令前綴、指令后綴、數據前綴、數據后綴,分別以0x06(HIR)、0x07(TIR)、0x08(HDR)、0x09(TDR)四個符號編碼開頭寫入EPF文件;56、逐條掃描當前目標PLD的SVF命令;57、如果這條SVF命令處于當前目標PLD在系統編程某個階l殳的起始位置,則向EPF文件寫入對應這一階段的符號編碼,0x7A表示器件標識檢查(IDCODE),0x7B表示擦除(ERASE),0x7C表示編程(PROGRAM),0x7D表示校驗(VERIFY);58、識別SVF命令字,將相應的符號編碼寫入EPF文件;59、采用"比特級聯"算法對SVF命令中的掃描數值進行編碼,寫入EPF文件;510、識別這條SVF中的參數關鍵字,將相應的符號編碼寫入EPF文件;511、采用"比特流壓縮"算法對SVF命令中的掃描數據進行編石馬,寫入EPF文4牛;512、如果已經掃描完當前目標PLD的SVF文件,繼續執行513,否則讀取下一條SVF命令,回到S7;513、如果已經掃描完所有目標PLD的SVF文件,繼續執行514,否則處理雛菊花鏈中的下一個目標PLD,回到S5;514、采用Deflate算法對EPF文4牛進4亍無損壓縮,;得到EPF壓縮數據,這種方法先后對原始數據使用LZ77和Huffman兩種算法進行壓縮;515、在EPF壓縮數據之前添加5字節EPF文件長度信息和8字節EPF文件版本信息,EPF文件長度信息包括1字節EPF文件長度符號編碼0x7F和4字節EPF文件長度值,EPF文件長度值等于EPF壓縮^i:據量加上EPF文件頭部的凄t據量,8字節EPF文件版本信息包括EPF文件版本符號編碼0x78、文件格式轉換器版本號、目標PLD功能編碼、目標PLD在系統編禾呈文件版本號、目標PLD所在嵌入式系統的硬件功能編碼和版本號;516、對EPF文件長度信息、EPF文件版本信息和EPF壓縮數據進行CRC-16計算,把2字節計算結果和1字節CRC-16校驗符號編碼0x65添加到EPF文件長度信息之前,CRC-16的生成多項式為xA16+xA15+xA2+l;517、將EPF文件頭部和EPF壓縮數據的總合保存為最終的EPF文件,其中EPF文件頭部包括3字節CRC-16校驗信息、5字節EPF文件長度信息、8字節EPF文件版本信息。步驟S8和S10用二進制符號編碼替代SVF命令字和參數關鍵字,文件格式轉換器使用到的符號編碼列在以下表格中示出<table>tableseeoriginaldocumentpage19</column></row><table><table>tableseeoriginaldocumentpage20</column></row><table>步驟S9所指的掃描數值包括SIR、SDR、HIR、TIR、HDR、TDR命令中的掃描數據長度值,FREQUENCY命令中的頻率值,RUNTEST命令中的時鐘周期值和時延值。"比特級聯"算法如圖6所示,它把這些掃描數值拆成一串相連的字節,每個字節的低7位包含數值信息,最高位用來表示這一字節是否掃描數值的結尾,1表示后續還有級聯字節,0表示這是當前掃描數值的最后一個字節。步驟Sll所指的掃描數據包含在一對括號中,由TDI、TDO、MASK和SMASK四個參豸t關鍵字引導。"比特流壓縮,,算法采用的五種壓縮類型在以下表格中示出<table>tableseeoriginaldocumentpage20</column></row><table>壓縮類型編碼OxOO表示后續的掃描數據未經壓縮。壓縮類型編碼0x01表示掃描數據由重復的0x00組成。例如(0x0000000000000000000003)壓縮成0x01000A03,其中0x01是壓縮類型編石馬,OxOO是替換節,OxOA表示掃描數據包含10個連續的替換節,0x03是剩余的未壓縮字節。壓縮類型編碼0x02表示掃描數據由重復的OxFF組成。例如(0xFFFFFFFFFFFFFFFF74)壓縮成0x02FF0874,其中0x02是壓縮類型編碼,OxFF是替換節,0x08表示掃描數據包含8個連續的替換節,0x74是剩余的未壓縮字節。壓縮類型編碼0x03至OxFE表示掃描數據由重復的N個半位元組(nibble)組成。例如(0x342810342810342810342810342810)壓縮成0x0634281005,其中0x06是壓縮類型編碼,表示替換節長度是6個半位元組,替換節內容為緊接著的0x342810,最后的0x05表示掃描數據包含5個替換節。壓縮類型編碼OxFF表示掃描數據按照哈夫曼(Huffman)算法壓縮。例如(0x04020401030904040404040404040404)壓縮成0xFF044090181C2400,其中OxFF是壓縮類型編碼,第二個字節0x04為替換節,它是掃描數據中出現頻率最高的字節,從第三個字節開始壓縮數據中的每一個比特等于0時表示該位置出現替換節,等于1時表示該位置出現的字節就是緊接著的8個比特。實例2以下將結合圖7來描述文件解釋器104的處理流程。如圖7所示,文件解釋器104的處理包括以下步驟S1、對EPF文件中除CRC-16校驗信息以外的部分進行CRC-16計算,如果計算結果與EPF文件中的CRC-16才交驗信息一致,繼續執行S2,否則提示CRC-16校驗出錯,結束編程過程;52、核查EPF文件版本信息,如果與目標PLD相匹S己,繼續執行S3,否則提示文件版本校驗出錯,結束編程過程;53、按照Deflate算法解壓縮EPF文件中的壓縮數據,還原EPF編程數據;54、在EPF編程數據中識別各種符號編碼表示的命令字,按照"比特級聯,,算法解析掃描數值,按照"比特流壓縮,,算法解析掃描數據,步驟S5至S12根據不同的符號編碼實施不同處理;55、對于FREQUENCY命令的符號編碼OxOB,根據其掃描數值設置JTAG接口信號頻率;56、對于ENDIR和ENDDR命令的符號編碼0x03和0x02,才艮據其掃描數值分別設置TAP控制器狀態機的JTAG指令寄存器掃描(IRscan)結束狀態和JTAG數據寄存器掃描(DRscan)結束狀態;57、對于HIR、TIR、HDR、TDR四條命令的符號編碼0x06、0x07、0x08、0x09,根據它們的掃描數值分別確定指令前綴、指令后綴、數據前綴、數據后綴的長度,根據它們的掃描數據分別設置指令前綴、指令后綴、數據前綴、數據后綴的取值;58、對于SIR命令符號編碼0x11,首先向雛菊花鏈發送指令前綴,其次把掃描數據作為JTAG指令輸入目標PLD,然后向雛菊花鏈發送指令后綴,最后驅動TAP控制器狀態機,使它躍遷到步驟B6設置的JTAG指令寄存器掃描(IRscan)結束狀態;59、對于SDR命令符號編碼0x12,首先向雛菊花鏈發送數據前綴,其次把掃描數據作為JTAG數據輸入目標PLD,然后向雛菊花鏈發送數據后綴,最后驅動TAP控制器狀態機,使它躍遷到步驟B6設置的JTAG數據寄存器掃描(DRscan)結束狀態;SIO、對于TCK命令符號編碼OxlB,首先驅動TAP控制器狀態機,4吏它躍遷到運行測試/空閑(Run-Test/Idle)狀態,然后在TCK信號發送一定周期凄t的時鐘樂P中,TCK時鐘周期數由掃描數值確定;SI1、對于標識在系統編程階羊爻IDCODE、ERASE、PROGRAM、VERIFY的符號編碼0x7A、0x7B、0x7C、0x7D,用它更新當前編程進度;512、對于標識EPF編程數據結尾EPFEND的符號編碼0xFE,提示在系統編禾呈完成,編程過禾呈執4亍結束;513、如果步驟S5至S11執行成功,讀取下一個符號編碼,回到S4繼續執行,否則提示當前在系統編程進度操作失敗,結束編程過程。步驟S8的指令寄存器掃描(IRscan)過程使用了由HIR、TIR兩條命令確定的指令前綴和指令后綴。其中指令前綴是雛菊花鏈中位于目標PLD之前的器件的JTAG旁路指令,在向目標PLD發送JTAG指令前首先發送這些JTAG旁路指令;指令后綴是雛菊花鏈中位于目標PLD之后的器件的JTAG旁路指令,這些JTAG旁路指令在目標PLD的JTAG指令發送完畢后輸入雛菊花鏈。步驟S9的數據寄存器掃描(DRscan)過程使用了由HDR、TDR兩條命令確定的數據前綴和凄t據后綴。其中,數據前綴用于填充雛菊花鏈中位于目標PLD之前的器件的JTAG旁路寄存器,在向目標PLD發送JTAG數據前首先發送這些填充數據;指令后綴用于填充雛菊花鏈中位于目標PLD之后的器件的JTAG旁路寄存器,這些填充數據在目標PLD的JTAG數據發送完畢后輸入雛菊花鏈。本發明提供的在系統編禾呈方法通過兩次壓縮編^馬處理,把文本格式的SVF文件轉才灸成二進制格式的EPF文件。第一次處理在用二進制符號編碼替換SVF命令字和參數關鍵字的同時壓縮掃描數值和掃描數據,產生的EPF編程數據既獲得5倍的平均壓縮率,也具有^f更于解析的特點。第二次處理利用Deflate算法進一步壓縮EPF編程數據,平均壓縮率達到8倍,最終生成的EPF文件獲得平均40倍的壓縮率,尤其適用于在存儲資源和運算資源受限的嵌入式系統內提供PLD在線升級功能的場合。由于EPF文件從SVF文件轉換得到,這種在系統編程方法同樣具有良好的兼容性,適用于幾乎所有PLD制造商的器件。以上所述^又為本發明的優選實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。權利要求1.一種對可編程邏輯器件進行在系統編程的裝置,其特征在于,包括文件格式轉換器,用于將目標可編程邏輯器件的串行向量格式文件轉換成嵌入式編程格式文件,作為所述目標可編程邏輯器件的在系統編程文件;以及文件解釋器,用于解析輸入的所述嵌入式編程格式文件,生成符合IEEE1149.1的編程信息,并根據所述編程信息驅動JTAG接口信號,對所述目標可編程邏輯器件進行在系統編程。2.根據權利要求1所述的對可編程邏輯器件進行在系統編程的裝置,其特征在于,當有多個目標可編程邏輯器件存在于一條雛菊花鏈中時,所述文件格式轉換器將所述多個目標可編程邏輯器件對應的所有串行向量格式文件統一轉換成一個嵌入式編程格式文件,作為所述多個目標可編程邏輯器件的在系統編程文件;其中,所述多個目標可編程邏輯器件是所述雛菊花鏈中的部分或全部可編程邏輯器件。3.根據權利要求1所述的對可編程邏輯器件進行在系統編程裝置,其特征在于,所述嵌入式編程格式文件是二進制文件。4.根據權利要求1所述的對可編程邏輯器件進行在系統編程裝置,其特征在于,所述嵌入式編程格式文件包含作為所述文件格式轉換器輸入的所有所述串行向量格式文件的全部編程信自5.根據權利要求4所述的對可編程邏輯器件進行在系統編程裝置,其特征在于,所述嵌入式編程格式文件還包含以下的部分或全部信息差錯校驗字;標識所述目標可編程邏輯器件的在系統編程過程各個階段的信息;文件版本信息。6.根據權利要求5所述的對可編程邏輯器件進行在系統編程裝置,其特征在于,所述差錯校驗字用于檢查所述嵌入式編程格式文件在保存和傳遞過程中因外界干擾而引入的差錯;所述標識目標可編程邏輯器件的在系統編程過程各個階段的信息用于在系統編程過程給出必要提示;所述文件版本信息用于檢驗所述嵌入式編程格式文件與所述目標可編程邏輯器件是否匹酉己,以及指示所述嵌入式編程格式文件的更新次數。7.根據權利要求6所述的對可編程邏輯器件進行在系統編程裝置,其特征在于,所述文件解釋器在進行解析操作之前,利用所述嵌入式編程格式文件中的所述差錯校驗字對所述嵌入式編程格式文件本身的正確性進行4交一驗,和/或利用所述文件版本信息檢驗所述嵌入式編程格式文件與所述目標可編程邏輯器件是否匹配。8.—種對可編程邏輯器件進行在系統編程的方法,其特征在于,包括第一步驟,文件格式轉換器將目標可編程邏輯器件的串行向量格式文件轉換成嵌入式編程格式文件,并將所述嵌入式編程格式文件作為在系統編程文件加以〗呆存和傳遞;第二步驟,文件解釋器校驗所述嵌入式編程格式文件的有效性、是否與所述目標可編程邏輯器件匹配、以及是否為最新的在系統編程文件;第三步驟,所述文件解釋器通過對所述嵌入式編程格式文件進4亍相應處理來對所述目標可編禾呈邏輯器件進4亍在系統編程。9.4艮據4又利要求8所述的對可編程邏輯器件進4亍在系統編程的方法,其特征在于,所述第一步驟具體包括以下步驟步驟A:所述文件格式轉換器對所述目標可編程邏輯器件的所述串行向量格式文件中的串行向量格式命令進行逐條處理,將串行向量格式命令字和參數關鍵字替換成相應的二進制符號編碼,將掃描數值和掃描數據壓縮編碼成二進制序列,同時插入標識所述目標可編程邏輯器件在系統編程各階段的二進制符號編碼,得到所述二進制編程數據;步驟B:所述文件格式轉換器對所述二進制編程數據進行無損壓縮,并將嵌入式編程格式文件長度信息和嵌入式編程格式文件版本信息添加到壓縮凄t據之前;以及步驟C:所述文件格式轉換器對所述嵌入式編程格式文件長度信息、所述嵌入式編程格式文件版本信息、以及所述壓縮數據進行CRC-16計算,將計算結果添加到所述嵌入式編程格式文件長度信息之前,將嵌入式編程格式文件頭部和壓縮數據的總合保存為所述嵌入式編程格式文件。10.根據權利要求9所述的對可編程邏輯器件進行在系統編程的方法,其特征在于,所述嵌入式編程格式文件頭部包括CRC-16校驗信息、所述嵌入式編程格式文件長度信息、以及所述嵌入式編程格式文件版本信息。11.根據權利要求10所述的對可編程邏輯器件進行在系統編程的方法,其特征在于,在所述第二步驟中,所述文件解釋器對所述嵌入式編程格式文件中除所述CRC-16校驗信息之外的部分進行CRC-16計算,比較計算結果與所述CRC-16校驗信息,如果二者一致,則i兌明所述嵌入式編;f呈格式文件有效,否則,則i兌明所述嵌入式編程格式文件無效。12.根據權利要求10所述的對可編程邏輯器件進行在系統編程的方法,其特征在于,在所述第二步驟中,所述文件解釋器核查所述嵌入式編程格式文件版本信息,以確認所述嵌入式編程格式文件是否與所述目標可編程邏輯器件匹配、以及是否為最新的在系統編禾呈文件。13.根據權利要求8所述的對可編程邏輯器件進行在系統編程的方法,其特征在于,所述第三步驟具體包括以下步驟步驟A:所述文件解釋器對所述嵌入式編程格式文件的壓縮數據部分進行解壓縮,還原出二進制編程數據;以及步驟B:所述文件解釋器識別所述二進制編程數據中的串行向量格式命令,從中提取掃描數據,驅動JTAG接口信號,對所述目標可編程邏輯器件進4亍在系統編考呈。全文摘要本發明提供了一種用于對可編程邏輯器件進行在系統編程的裝置,該裝置包括文件格式轉換器,用于將目標可編程邏輯器件的串行向量格式文件轉換成嵌入式編程格式文件,作為目標可編程邏輯器件的在系統編程文件;以及文件解釋器,用于解析輸入的嵌入式編程格式文件,生成符合IEEE1149.1的編程信息,并根據編程信息驅動JTAG接口信號,對目標可編程邏輯器件進行在系統編程。此外,本發明還提供了一種用于對可編程邏輯器件進行在系統編程的方法。通過本發明的技術方案,實現了以下有益效果在保留了目前適用于幾乎所有可編程邏輯器件制造商器件的優勢的同時,解決了存儲資源消耗大、差錯檢測能力差、以及不能顯式區分整個在系統編程過程各個階段的問題。文檔編號G01R31/3167GK101266548SQ20071008736公開日2008年9月17日申請日期2007年3月14日優先權日2007年3月14日發明者曹興國,林盛榮,馬立軍,黃燕榮申請人:中興通訊股份有限公司