0030] (2)本發(fā)明解決了現(xiàn)有技術在目前情況下,工作人員多采用專用仿真器在現(xiàn)場對 邏輯進行升級的方式,使得工作的可執(zhí)行性比較困難的技術問題,可以通過網(wǎng)絡遠程更新 配置文件;
[0031] (3)本發(fā)明通過解析FPGA燒寫文件XSVF文件,利用DSPGPIO口模擬FPGA或CPLD 配置PROM上JTAG口的時序和行為,完成了對FPGA或CPLD配置PROM的ISP操作;
[0032] (4)本發(fā)明以網(wǎng)絡為載體實現(xiàn)操作數(shù)據(jù)的遠距離傳輸,可對網(wǎng)絡中的所有設備進 行軟件維護和升級,避免了拆裝產(chǎn)品、利用專用下載線下載等過程所需的大量時間,節(jié)省了 設計成本、降低了設計復雜度、減輕了設計的工作量。
【附圖說明】
[0033] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn) 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
[0034] 圖1是現(xiàn)有技術在線升級FPGA邏輯裝置的系統(tǒng)結(jié)構(gòu)框圖;
[0035] 圖2是本發(fā)明可編程邏輯器件遠程更新系統(tǒng)一種【具體實施方式】的系統(tǒng)結(jié)構(gòu)框圖;
[0036] 圖3是本發(fā)明可編程邏輯器件遠程更新方法一種【具體實施方式】的程序流程圖;
[0037] 圖4是本發(fā)明可編程邏輯器件遠程更新方法另一種【具體實施方式】的程序流程圖;
[0038] 圖5是本發(fā)明可編程邏輯器件遠程更新方法一種【具體實施方式】JTAG端口模擬過 程的程序流程圖;
[0039] 圖6是JTAG狀態(tài)機的狀態(tài)跳轉(zhuǎn)程序流程圖;
[0040] 圖中:1-計算機,2-處理器,3-FPGA,4-CPLD,5-配置單元。
【具體實施方式】
[0041] 為了引用和清楚起見,將下文中使用的技術名詞、簡寫或縮寫記載如下:
[0042] FPGA:Field-ProgrammableGateArray,現(xiàn)場可編程門陣列的簡稱;
[0043] CPLD:ComplexProgrammableLogicDevice,復雜可編程邏輯器件的簡稱;
[0044] GPIO:GeneralPurposeInputOutput,通用輸入 / 輸出的簡稱;
[0045] PROM!Programmableread-onlymemory,可編程只讀存儲器的簡稱;
[0046] JTAG:JointTestActionGroup,聯(lián)合測試工作組的簡稱,又稱為邊界掃描 (boundaryscan),符合IEEESTDl149. 1的通信標準,它含有一個TAP控制器,也就是狀態(tài) 機,所有的指令,數(shù)據(jù)的輸入以及數(shù)據(jù)的輸出都在狀態(tài)機的控制下完成的;
[0047] XSVF:XilinxSerialVectorFormatXilinx,串行矢量格式的簡稱;
[0048] SVF:SerialVectorFormat,串行矢量格式的簡稱;
[0049] DSP:DigitalSignalProcessor,數(shù)字信號處理器的簡稱;
[0050] ISP:INSystemProgramming,在線系統(tǒng)編程的簡稱;
[0051] 為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例 中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整的描述。顯然,所描述的實施例僅 僅是本發(fā)明的一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通 技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范 圍。
[0052] 如附圖2至附圖5所示,給出了本發(fā)明可編程邏輯器件遠程更新系統(tǒng)及其方法的 具體實施例,下面結(jié)合附圖和具體實施例對本發(fā)明作進一步說明。
[0053]如附圖2所示,一種可編程邏輯器件遠程更新系統(tǒng)的具體實施例,包括:計算機1, 以及彼此相連的處理器2、可編程邏輯器件和配置單元5。其中,作為本發(fā)明一種典型的具 體實施例,計算機1可以采用任意一臺個人計算機、工業(yè)計算機或嵌入式計算機,或具有可 安裝特定發(fā)送程序安裝包的PC機。可編程邏輯器件進一步采用FPGA3或CPLD4,配置單元 進一步采用PROM。計算機1向處理器2發(fā)送配置文件數(shù)據(jù),處理器2根據(jù)配置文件數(shù)據(jù),通 過GPIO端口模擬可編程邏輯器件配置配置單元5的JTAG端口的時序和行為,實現(xiàn)處理器2 對配置單元5進行配置的ISP操作,從而實現(xiàn)對CPLD、FPGA配置PROM的編程、擦除、校驗、 讀保護等操作。將FPGA的配置文件數(shù)據(jù),即所要完成的工作程序生成一個燒寫文件,該燒 寫文件可以支持文件拷貝,或通過網(wǎng)絡進行傳送。然后由作為上位機的計算機1的發(fā)送例 程模塊把燒寫文件即配置文件數(shù)據(jù)包傳送至處理器2,處理器2將配置文件數(shù)據(jù)做相應的 時序轉(zhuǎn)化和數(shù)據(jù)處理后,把經(jīng)過處理的配置文件數(shù)據(jù)通過模擬FPGA或CPLD的JTAG時序的 方式編程到配置單元5中,以此來完成配置單元5的重新配置,從而完成FPGA或CPLD配置 程序的更新。
[0054] 作為本發(fā)明一種典型的具體實施例,處理器2進一步采用DSP,并通過DSP的四個 GPIO端口(分別為如附圖2中所示的GPI01、GPI02、GPI03和GPI04)分別模擬JTAG端口 中的TMS端口、TDI端口、TDO端口和TCK端口,四個端口的功能如下:
[0055] TMS-TAP控制器的模式輸入信號,在TCK的上升沿,TMS的狀態(tài)確定TAP控制器即 將進入的工作狀態(tài),用于狀態(tài)轉(zhuǎn)換;
[0056] TDI-輸入引腳,指令和數(shù)據(jù)通過它在TCK的上升沿送入TAP控制器;
[0057] TDO-輸出引腳,數(shù)據(jù)在TCK的下降沿由此輸出;
[0058] TCK-輸入時鐘,為TAP控制器的輸入和輸出提供時序,在TCK的同步作用下通過 TDI和TDO引腳串行移入或移出數(shù)據(jù)及指令。同時,TCK為TAP控制器狀態(tài)機提供時鐘。
[0059] 如附圖2所示,處理器2與可編程邏輯器件、配置單元5之間的連接可以采用菊花 鏈的形式。具體地說就是,可編程邏輯器件和配置單元5的TMS端口、TCK端口接線并聯(lián)后 依次連接至處理器2用于模擬TMS端口、TCK端口的GPIO端口。處理器2用于模擬TDI端 口的GPIO端口連接可編程邏輯器件的TDI端口、可編程邏輯器件的TDO端口連接配置單元 5的TDI端口,配置單元5的TDO端口連接至處理器2用于模擬TDO端口的GPIO端口。在 如附圖2所示的具體實施例中,可編程邏輯器件遠程更新系統(tǒng)的可編程邏輯器件同時包括 FPGA3和CPLD4,此時作為處理器2的DSP可以對FPGA3、CPLD4、以及作為配置單元5的PROM 任意進行操作。而在其它的具體實施例中,可編程邏輯器件可以僅包括FPGA3或CPLD4,DSP 也可以單獨針對PROM進行操作。如:可以去掉圖2中位于最右邊的CPLD4,此時去掉CPLD4 各個端口的連線,而將作為配置單元5的PROM的TDO端口連接至作為處理器的DSP2用于 模擬TDO端口的GPIO端口即可。或者具體實施例還可以包括任意多塊的FPGA3或任意多 塊的CPLD4,或其任意的組合,這些具體的組成形式都在本發(fā)明請求保護的范圍之內(nèi)。
[0060] 作為本發(fā)明一種典型的具體實施例,計算機1將包括更新命令在內(nèi)的配置數(shù)據(jù)傳 送至處理器2,處理器2對配置數(shù)據(jù)進行相應的時序轉(zhuǎn)化和數(shù)據(jù)處理后,將經(jīng)過處理的配置 數(shù)據(jù)通過模擬JTAG狀態(tài)機時序的方式下載至配置單元5中,以完成配置單元5中配置數(shù)據(jù) 的更新。計算機1通過串行總線或網(wǎng)絡總線(如可以為RS485總線或者網(wǎng)線)向處理器2 發(fā)送更新命令和配置數(shù)據(jù),配置數(shù)據(jù)進一步為IntelHex格式的XSVF文件。處理器2接收 到每一幀都是"指令+數(shù)據(jù)"的固定格式,處理器2根據(jù)指令模擬出該條指令的時序和動作, 從而直接操作JTAG口。當需要更新配置文件數(shù)據(jù)時,處理器2從網(wǎng)絡總線上獲得更新后的 XSVF文件(IntelHex格式),暫存于RAM空間,然后讀取XSVF文件命令,逐條解釋,并予以 執(zhí)行,即通過GPIO口模擬JTAG的TAP口操作,產(chǎn)生編程指令、數(shù)據(jù)和控制信號,完成對FPGA 或CPLD配置數(shù)據(jù)的擦除、編程、校驗、讀寫保護設置等項工作。根據(jù)JTAG狀態(tài)機,完成XSVF文件JTAG時序的模擬,實現(xiàn)配置單元5配置文件數(shù)據(jù)的更新。
[0061] 計算機1通過計算機應用程序逐條解析FPGA3或CPLD4的燒寫XSVF文件,并將解 析后的數(shù)據(jù)逐條傳送至處理器2。處理器2根據(jù)計算機1傳送的數(shù)據(jù),并按照JTAG狀態(tài)機 的時序和數(shù)據(jù)格式生成FPGA3或CPLD4的編程指令、數(shù)據(jù)和控制信號。
[0062] XSVF文件常用的指令格式見下表1。在下表1中,各條指令后的數(shù)據(jù)格式和長度 都有一定規(guī)律。對于不同的指令來說,其后所跟數(shù)據(jù)的格式是不變的,長度則是常數(shù)或有固 定的計算公式。利用計算機1的軟件處理程序?qū)SVF文件中的指令和指令后的數(shù)據(jù)逐條 解析出來,并下發(fā)給處理器2。
[0063] 表IXSVF文件指令-編碼對照表
[0064]
[0065] 上述本發(fā)明的具體實施例提出了 一種通過DSP的GPIO(GeneralPurposeInput Output,通用輸入 / 輸出)口模擬CPLD或FPGA配置PROM(Programmableread-onlymemor