亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種加載fpga目標程序的方法及系統(tǒng)的制作方法

文檔序號:6563282閱讀:343來源:國知局
專利名稱:一種加載fpga目標程序的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,特別涉及一種加載FPGA目標程序的方法及系統(tǒng)。

背景技術(shù)
現(xiàn)在的業(yè)務處理單板越來越多的采用FPGA(Field Programmable Gate Array,現(xiàn)場可編程門陣列)芯片來實現(xiàn)業(yè)務處理功能,而邏輯規(guī)模也越來越大,在單板啟動時對FPGA邏輯的加載時間要求也越來越快?,F(xiàn)有的幾種加載方式,由于要增加CPU或者加載時間太長,都不能很好地滿足設計需求。
CPU加載是現(xiàn)在單板多采用的一種加載方式,這種方式是將FPGA的目標程序包含在主機軟件當中,系統(tǒng)啟動后,CPU執(zhí)行程序,將目標程序加載到FPGA中。
這種方法的不足之處在于1)加載時間長,一般要十幾秒的時間,而且目標程序規(guī)模越大,加載需要的時間就越長。2)CPU的增加使成本增高,且沒有CPU的單板無法實現(xiàn)加載。
還有一種方式是沒有CPU時,單板往往通過主控的HDLC(High-level Data Link Control 高級數(shù)據(jù)鏈路控制)通道,為業(yè)務處理子卡加載。這種加載方式需要業(yè)務處理子卡和主控板的HDLC通道正常,且子卡插上后,主控板能正確的讀出該子卡的類型,然后將主控軟件中對應的目標程序通過HDLC通道加載到該子卡的FPGA芯片中。
但這種方式有以下不足之處1)加載時間長,至少需要幾分鐘的時間,而且目標程序規(guī)模越大,加載需要的時間就越長。2)系統(tǒng)升級時,會造成業(yè)務長時間中斷。
另外,有的單板采用主從加載方式,就是增加一片ROM(Read Only Memory,只讀存儲器),將FPGA目標程序先燒到ROM中,單板啟動采用FPGA的主從模式,由FPGA主動發(fā)起,將目標程序從ROM中加載到FPGA中。這種方式下,程序一經(jīng)燒入ROM中,就固定了,無法實現(xiàn)FPGA升級,使維護不方便。


發(fā)明內(nèi)容
本發(fā)明為了解決現(xiàn)有技術(shù)中加載時間長和不能在線升級的問題,提供了一種加載FPGA目標程序的方法及系統(tǒng)。所述技術(shù)方案如下 本發(fā)明提供了一種加載FPGA目標程序的方法,在單板的可擦可編程邏輯器件上外掛閃存,并執(zhí)行以下步驟 步驟A將FPGA的目標程序存儲到所述閃存上,然后對單板的接口進行配置; 步驟B單板上電復位,將所述目標程序從閃存中加載到FPGA上。
所述方法還包括 步驟C通過高級數(shù)據(jù)鏈路控制通道對存儲到閃存中的目標程序進行在線升級。
所述方法還包括 步驟D閃存中的目標程序升級后,將升級后的目標程序重載到FPGA上。
所述步驟B具體包括 步驟B1單板上電復位,將加載狀態(tài)機從空閑狀態(tài)遷移至加載準備狀態(tài),清除FPGA內(nèi)部存儲器; 步驟B2所述清除完畢,選中需要加載的FPGA,將存儲在閃存中的目標程序讀出并寫入所述FPGA; 步驟B3加載完畢,將所述FPGA片選信號設置為無效,同時加載狀態(tài)機進入空閑狀態(tài)。
所述步驟C具體包括 步驟C1主控板將閃存的訪問狀態(tài)機設置為有效后,將訪問狀態(tài)機由空閑狀態(tài)遷移到準備狀態(tài); 步驟C2主控板通過高級數(shù)據(jù)鏈路控制通道對閃存進行讀操作,讀出閃存中的程序判斷該程序是否為最新版本,如果是,結(jié)束在線升級;否則,擦除閃存中的目標程序,擦除完畢后,向閃存中寫入最新版本的目標程序。
所述步驟C2后還包括 步驟C3從FLASH中讀出新寫入的目標程序,驗證寫入的目標程序是否正確。
所述步驟D具體包括 步驟D1閃存中的目標程序在線升級后,單板的可擦可編程邏輯器件進入重載準備狀態(tài),清除FPGA內(nèi)部存儲器; 步驟D2所述清除完畢后,選中所述FPGA,將閃存中的目標程序讀出并寫入所述FPGA上; 步驟D3重載完畢,將所述FPGA片選信號設置為無效,同時加載狀態(tài)機進入空閑狀態(tài)。
本發(fā)明還提供了一種加載FPGA目標程序的系統(tǒng),所述系統(tǒng)包括 閃存,所述閃存外掛在單板的可擦可編程邏輯器件上; 存儲模塊,用于將FPGA的目標程序存儲到所述閃存上; 配置模塊,用于對單板的接口進行配置; 加載模塊,用于單板上電復位,將所述目標程序從閃存中加載到FPGA上。
所述系統(tǒng)還包括 在線升級模塊,用于通過高級數(shù)據(jù)鏈路控制通道對閃存中的目標程序進行在線升級。
所述系統(tǒng)還包括 更新模塊,用于閃存中的目標程序升級后,將升級后的目標程序重載到FPGA上。
所述加載模塊具體包括 加載準備單元,用于單板上電復位,加載狀態(tài)機為空閑狀態(tài),進入加載準備狀態(tài),清除FPGA內(nèi)部存儲器; 加載單元,用于所述清除完畢,選中需要加載的FPGA,將閃存中的目標程序讀出并寫入所述FPGA上;加載完畢,將所述FPGA片選信號設置為無效,同時加載狀態(tài)機進入空閑狀態(tài)。
所述在線升級模塊具體包括 訪問狀態(tài)機設置單元,用于主控板將閃存的訪問狀態(tài)機設置為有效后,將訪問狀態(tài)機由空閑狀態(tài)遷移到準備狀態(tài); 在線升級單元,用于主控板通過高級數(shù)據(jù)鏈路控制通道對閃存進行讀操作,讀出閃存中的程序判斷該程序是否為最新版本,如果是,結(jié)束在線升級;否則,擦除閃存中的目標程序,擦除完畢后,向閃存中寫入最新版本的目標程序。
所述在線升級模塊還包括 驗證單元,用于從閃存中讀出新寫入的目標程序,驗證寫入的目標程序是否正確。
所述更新模塊具體包括 重載準備單元,用于閃存中的目標程序在線升級后,單板的可擦可編程邏輯器件進入重載準備狀態(tài),清除FPGA內(nèi)部存儲器; 重載單元,用于所述清除完畢后,選中所述FPGA,將閃存中的目標程序讀出并寫入所述FPGA上;重載完畢,將所述FPGA片選信號設置為無效,同時加載狀態(tài)機進入空閑狀態(tài)。
本發(fā)明的技術(shù)方案帶來的有益效果是 通過在單板的EPLD(Erasable Programmable Logic Debice,可擦可編程邏輯器件)上外掛一片或多片F(xiàn)LASH(閃存)來存儲FPGA目標程序,實現(xiàn)了單板上電后自動進行加載,節(jié)省了單板的啟動時間;主控板通過高級數(shù)據(jù)鏈路控制通道實現(xiàn)了對FLASH中的FPGA目標程序的在線升級,使系統(tǒng)維護起來更方便。



圖1是本發(fā)明實施例1中的FPGA目標程序加載框圖; 圖2是本發(fā)明實施例1中的加載FPGA目標程序的方法流程圖; 圖3是本發(fā)明實施例1中的FPGA目標程序加載時序圖; 圖4是本發(fā)明提供的HDLC訪問的地址示意圖; 圖5是本發(fā)明實施例2中的在線升級方法流程圖; 圖6是本發(fā)明實施例3中的加載更新方法流程圖; 圖7是本發(fā)明實施例4中的加載FPGA目標程序的系統(tǒng)示意圖。

具體實施例方式 下面結(jié)合附圖和具體實施例對本發(fā)明作進一步說明,但不作為對本發(fā)明的限定。
本發(fā)明在單板的EPLD上外掛一片或多片F(xiàn)LASH來存儲FPGA邏輯的目標程序,而FPGA采用從并的加載方式,每次單板上電后,由EPLD控制將FLASH中的程序加載到FPGA中,通過HDLC通道和EPLD的接口轉(zhuǎn)換實現(xiàn)對FLASH中目標程序的在線升級。
實施例1 參見圖1,在單板的EPLD上外掛一片F(xiàn)LASH,同時在EPLD上通過總線連接兩片F(xiàn)PGA芯片,這兩片F(xiàn)PGA芯片以并行的方式連接。本實施例中,業(yè)務處理單板上有兩片F(xiàn)PGA芯片,實現(xiàn)單板的大規(guī)模業(yè)務處理邏輯,要求在單板上電啟動時,實現(xiàn)對兩片F(xiàn)PGA的快速加載,并且要實現(xiàn)系統(tǒng)在線升級。
這里以FPGA目標程序大小為2.11MB為例進行說明,則單板設計EPLD外掛一片4MB的FLASH來存儲FPGA的目標程序,由于單板兩片F(xiàn)PGA的邏輯功能完全相同,所以EPLD采用從并、總線的方式對FPGA進行加載。
參見圖2,本發(fā)明提供了一種加載FPGA目標程序的方法,包括以下步驟 步驟101按照JTAG(Joint Test Action Group;聯(lián)合測試行動小組)國際標準測試協(xié)議將FPGA的目標程序存儲到FLASH中,并對單板上的接口進行定義,即為每個接口配置相應信息。本實施例具體配置如表1所示。
表1 步驟102單板上電復位,加載狀態(tài)機為IDLE(空閑狀態(tài)),判斷DONE信號,如果DONE信號為“0”,則進入PROG_START(加載準備)狀態(tài),同時通過CLR_MEM(清除內(nèi)存)狀態(tài)置INIT信號為“0”清空FPGA的內(nèi)部存儲器。如果DONE信號為“1”,則說明已經(jīng)進行了加載,結(jié)束程序。
步驟103進入CLR_WAIT(清除等待)狀態(tài),在CLR_WAIT狀態(tài)過程中置PROG信號為“1”,直到INIT信號被FPGA拉高,開始進入PROGRAM(加載)狀態(tài),同時置FPGA的CS(片選)信號為“0”,即選中該FPGA; 步驟104在PROGRAM狀態(tài)下,EPLD邏輯自動生成FLASH地址并按時鐘周期自加1,把目標程序從FLASH中讀出并寫入FPGA。
步驟105加載完畢,F(xiàn)PGA將DONE信號拉高,退出PROGRAM狀態(tài)進入PROG_OVER(加載完成)狀態(tài),在PROG_OVER狀態(tài)下置CS信號為“1”,然后進入IDLE狀態(tài)。
上述單板所選FPGA的加載時序圖參見附圖3。
對FPGA加載時鐘(CCLK)頻率的選擇考慮兩個因素,存放FPGA邏輯代碼的外部FLASH存取訪問時間tACC和并行加載數(shù)據(jù)信號的建立時間tSMDCC。單板所選FLASH的tACC為110ns,所選FPGA的tSMDCC最小為2ns。得出fCCLK≤1/(110ns+2ns),即FPGA加載時鐘CCLK頻率應該小于8.9MHz,單板設計其頻率選擇為25MHz輸入時鐘4分頻后,即6.25MHz提供給FPGA加載模塊。加載時序如下 單板上電復位,PROG_B為低電平“0”,同時置INIT_B信號為“0”。然后進入CLR_WAIT(清除等待)狀態(tài),清除完畢后,將INIT_B信號拉高為“1”,置FPGA的CS_B信號為“0”,RDWR_B信號置“0”,進行加載,EPLD邏輯自動生成FLASH地址并按時鐘周期自加1,把目標程序從FLASH中讀出并寫入FPGA。加載完畢,F(xiàn)PGA將DONE信號拉高,置CS_B信號為“1”。
實施例2 主控板通過HDLC轉(zhuǎn)Local Bus(本地總線)和FLASH的接口在線升級FLASH中的目標程序,在線升級完成后,當FPGA邏輯的目標程序需要更新時,主控板下發(fā)reload命令,EPLD會啟動FPGA加載狀態(tài)機,對FPGA的邏輯進行更新加載。如果FPGA邏輯的目標程序暫時不需要更新,可以不進行重新加載。
主控通過HDLC短幀分頁方式實現(xiàn)對FLASH的在線編程,EPLD實現(xiàn)HDLC轉(zhuǎn)Local Bus和FLASH接口的轉(zhuǎn)換。短幀分頁加載,指每頁容量128B。將FLASH的地址分為Flash_addr[21:15]、Flash_addr[14:7]和Flash_addr[6:0]三段,在EPLD內(nèi)部設置HDLC可寫寄存器,在HDLC對Flash執(zhí)行寫操作時,先將FLASH的地址高位寫入寄存器Flash_addr[14:7]和Flash_addr[21:15]中,而低位地址Flash_addr[6:0]隨時鐘翻轉(zhuǎn),在EPLD內(nèi)部將Flash_addr[21:15]和Flash_addr[14:7]映射到FLASH的地址線高位上,寫128個字節(jié)后HDLC再刷新Flash_addr[21:15]和Flash_addr[14:7]中的高位地址。
單板EPLD邏輯通過設計加載優(yōu)先級,在EPLD執(zhí)行自動加載FPGA時,不允許主控對FLASH進行讀寫訪問。
本實施例中單板的寄存器列表 參見表2,F(xiàn)LASH的狀態(tài)寄存器FLASH_STS 地址0x1E 表2 在FLASH復位時默認配置為電平信號,“1”表示READY,“0”表示BUSY。
當配置該信號為脈沖方式時,根據(jù)配置命令的不同分別指示擦除完成或編程完成。
參見表3,F(xiàn)LASH的擦除/編程/塊鎖存使能信號FLASH_VPEN 地址0x1F 表3 需要升級FLASH程序時,軟件寫“1”。
參見表4,F(xiàn)LASH在系統(tǒng)編程使能寄存器FLASH_ISP_EN 地址0x21 表4 需要升級FPGA程序時,軟件置FLASH_ISP_EN為“1”通過HDLC轉(zhuǎn)Local Bus和FLASH接口更新FLASH,然后軟件寫RELOAD為“1”,開始FPGA目標程序的重新加載。
參見表5,F(xiàn)LASH地址寄存器1FLASH_ADDR1 地址0x25 表5 參見表6,F(xiàn)LASH地址寄存器2FLASH_ADDR2 地址0x26 表6 參見圖4,HDLC可以訪問的地址空間包括EPLD內(nèi)部寄存器地址空間和FLASH存儲地址空間。用lb_addr[6:0]作為地址域傳輸?shù)刂?,lb addr[7]用來片選地址空間,當lb_addr[7]為“0”時,片選EPLD地址空間;當lb_addr[7]為“1”時,片選FLASH存儲地址空間,執(zhí)行對FLASH的讀寫操作。
參見圖5,本實施例通過應用上述寄存器列表進行在線升級的過程如下 步驟201啟動FLASH訪問狀態(tài)機,F(xiàn)LASH訪問狀態(tài)機處于初始狀態(tài)IDLE,flash_isp_en和reload初始值為“0”,F(xiàn)PGA_LOAD_OVER寄存器的fpga_load_over初始值為“1”。
步驟202正常工作時,主控板如要更新FLASH中的FPGA程序,在fpga_load_over位為“1”時,先寫EPLD內(nèi)部FLASH_ISP_EN控制寄存器的flash_isp_en位為“1”,此時FLASH訪問狀態(tài)機由初始狀態(tài)IDLE遷移到FLASH_START狀態(tài); 步驟203進入讀操作,在READ、READ_DATA和READ_OVER狀態(tài)下置位選中FLASH的nOE信號,在READ、READ_DATA和READ_OVER狀態(tài)下賦值FLASH的數(shù)據(jù)給lb_din[7:0]。
步驟204主控板讀出FLASH中的目標程序后,判斷讀出的目標程序是否是最新版本,如果是,停止升級,執(zhí)行步驟207;否則執(zhí)行步驟205。
步驟205先擦除FLASH中的原程序,然后將最新版本的程序?qū)懭隖LASH中。
具體實現(xiàn)過程為首先使能FLASH_VPEN位為“1”,才能發(fā)起對FLASH的擦除/編程操作。執(zhí)行擦除操作時,軟件查詢FLASH_STS位,當為“1”時表示擦除完成,可以發(fā)起對FLASH的寫程序操作。對FLASH的寫程序操作完成后,軟件寫FLASH_VPEN為“0”,對FLASH寫保護。在WRITE、WRITE_DATA狀態(tài)置位選中FLASH的nWE信號,在WRITE_OVER狀態(tài)下nWE信號拉高,在WRITE、WRITE_DATA、WRITE_OVER狀態(tài)賦值lb_dout[7:0]給FLASH的數(shù)據(jù)總線。
步驟206當FLASH內(nèi)程序升級完成后,為了確保寫入FLASH中的目標程序正確,主控板可以再次執(zhí)行讀操作,驗證寫入的程序是否正確。也可以不再進行讀操作,本實施例不再進行讀操作。主控板軟件寫EPLD內(nèi)部FLASH_ISP_EN控制寄存器的flash_isp_en位為“0”,釋放FLASH的片選信號。
步驟207結(jié)束在線升級。
FLASH升級部分代碼 always@(flash_curr_state or flash_isp_en or lb_rw or lb_en_n or lb_addr[7]orflash_vpen)begincase(flash_curr_state)FLASH_IDLE:if(flash_isp_en==1'b1)flash_next_state=FLASH_START;elseflash_next_state=FLASH_IDLE;FLASH_START:if(lb_rw==1'b0&amp;&amp;lb_en_n==1'b0&amp;&amp;lb_addr[7]==1'b1&amp;&amp;flash_vpen)<!-- SIPO <DP n="8"> --><dp n="d8"/>flash_next_state=WRITE;else if(lb_rw==1'b1&amp;&amp;lb_en_n==1'b0&amp;&amp;lb_addr[7]==1'b1)flash_next_state=READ;elseflash_next_state=FLASH_START;WRITE:flash_next_state=WRITE_DATA;WRITE_DATA:flash_next_state=WRITE_OVER;WRITE_OVER:flash_next_state=FLASH_IDLE;READ:flash_next_state=READ_DATA;READ_DATA:flash_next_state=READ_OVER;READ_OVER:flash_next_state=FLASH_IDLE;default:flash_next_state=FLASH_IDLE;endcaseend 實施例3 FLASH中的目標程序升級完成后,當FPGA的目標程序需要更新時,主控板下發(fā)reload命令,EPLD會啟動FPGA加載狀態(tài)機,參見圖6,具體更新加載過程包括以下步驟 步驟301FLASH中的目標程序更新完成后,主控板置位reload(重載)信號為“1”,當reload置“1”后EPLD邏輯進入PROG_START狀態(tài),在PROGSTART狀態(tài)下清零reload。
步驟302至步驟305同步驟102至105重新加載FPGA,直到加載完成退回IDLE狀態(tài)。這里不再贅述。
片選兩片F(xiàn)PGA同時加載時,F(xiàn)PGA代碼為2.11MB,時鐘周期為1/6.25MHz=160ns,并行輸入需要時間為2.11MB×160ns,其他狀態(tài)需要約5個周期,F(xiàn)PGA的STARTUP過程需要約5個周期,這樣(2.11MB+5+5)×160ns~=354ms,實現(xiàn)了對FPGA的快速加載。
FPGA加載狀態(tài)機部分代碼   always@(load_curr_state or fpga_done or fpga_reload or fpga_init_b)  begin  case(load_curr_state)  LOAD_IDLE:  if((fpga_done==1'b0)||((fpga_done==1'b1)&amp;&amp;(fpga_reload==1'b1)))   load_next_state=PROG_START;  else   load_next_state=LOAD_IDLE;  PROG_START:   load_next_state=CLR_MEM;  CLR_MEM:   load_next_state=CLR_WAIT;  CLR_WAIT:   if(fpga_init_b==1'b1)   load_next_state=PROGRAM;   else   load_next_state=CLR_WAIT;   PROGRAM:   if(fpga_done==1'b1)   load_next_state=PROG_OVER;   else if(fpga_init_b==1'b0)   load_next_state=PROG_START;   else   load_next_state=PROGRAM;   PROG_OVER:   load_next_state=LOAD_IDLE;<!-- SIPO <DP n="10"> --><dp n="d10"/>  default:   load_next_state=LOAD_IDLE;  endcaseend 自動加載部分代碼 //FLASH address read/write<br/>always@(posedge clk25m or posedge rst)<br/>begin  if(rst==1'b1)   begin   addr_flash_1d<=FLASH_OFFSET_ADDR;   end  else if(load_curr_state[PROGRAM_POS]==1'b1)//FPGA自動加載   begin   addr_flash_1d[21:0] <=addr_flash_1d[21:0]+1'b1;   end  else   begin   addr_flash_1d <=FLASH_OFFSET_ADDR;   endendassign addr_flash=((|flash_curr_state[7:2])==1'b1) {flash_addr2[6:0],flash_addr1,lb_addr[6:0]}:addr_flash_ld;//FLASH data read/writeassign dq_flash=((|flash_curr_state[4:2])==1'b1) {8'h00,lb_din[7:0]}:16'hzzzz;assign flash_read_data=dq_flash[7:0]; 實施例4 參見圖7,一種加載FPGA目標程序的系統(tǒng),該系統(tǒng)包括 閃存,該閃存外掛在單板的可擦可編程邏輯器件上; 存儲模塊,用于將FPGA的目標程序存儲到閃存上; 配置模塊,用于對單板的接口進行配置; 加載模塊,用于單板上電復位,將目標程序從閃存中加載到FPGA上。
為了實現(xiàn)閃存的在線升級,系統(tǒng)還包括 在線升級模塊,用于通過高級數(shù)據(jù)鏈路控制通道對閃存中的目標程序進行在線升級。
更新模塊,用于閃存中的目標程序升級后,將升級后的目標程序重載到FPGA上。
其中,加載模塊具體包括 加載準備單元,用于單板上電復位,加載狀態(tài)機為空閑狀態(tài),進入加載準備狀態(tài),清除FPGA內(nèi)部存儲器; 加載單元,用于清除完畢,選中需要加載的FPGA,將閃存中的目標程序讀出并寫入FPGA上;加載完畢,將FPGA片選信號設置為無效,同時加載狀態(tài)機進入空閑狀態(tài)。
在線升級模塊具體包括 訪問狀態(tài)機設置單元,用于主控板將閃存的訪問狀態(tài)機設置為有效后,將訪問狀態(tài)機由空閑狀態(tài)遷移到準備狀態(tài); 在線升級單元,用于主控板通過高級數(shù)據(jù)鏈路控制通道對閃存進行讀操作,讀出閃存中的程序判斷該程序是否為最新版本,如果是,結(jié)束在線升級;否則,擦除閃存中的目標程序,擦除完畢后,向閃存中寫入最新版本的目標程序。
在線升級模塊還包括 驗證單元,用于從閃存中讀出新寫入的目標程序,驗證寫入的目標程序是否正確。
更新模塊具體包括 重載準備單元,用于閃存中的目標程序在線升級后,單板的可擦可編程邏輯器件進入重載準備狀態(tài),清除FPGA內(nèi)部存儲器; 重載單元,用于清除完畢后,選中FPGA,將閃存中的目標程序讀出并寫入FPGA上;重載完畢,將FPGA片選信號設置為無效,同時加載狀態(tài)機進入空閑狀態(tài)。
以上所述的實施例,只是本發(fā)明較優(yōu)選的具體實施方式
的一種,本領(lǐng)域的技術(shù)人員在本發(fā)明技術(shù)方案范圍內(nèi)進行的通常變化和替換都應包含在本發(fā)明的保護范圍內(nèi)。
權(quán)利要求
1.一種加載FPGA目標程序的方法,其特征在于,在單板的可擦可編程邏輯器件上外掛閃存,并執(zhí)行以下步驟
步驟A將FPGA的目標程序存儲到所述閃存上,然后對單板的接口進行配置;
步驟B單板上電復位,將所述目標程序從閃存中加載到FPGA上。
2.如權(quán)利要求1所述的加載FPGA目標程序的方法,其特征在于,所述方法還包括
步驟C通過高級數(shù)據(jù)鏈路控制通道對存儲到閃存中的目標程序進行在線升級。
3.如權(quán)利要求2所述的加載FPGA目標程序的方法,其特征在于,所述方法還包括
步驟D閃存中的目標程序升級后,將升級后的目標程序重載到FPGA上。
4.如權(quán)利要求1所述的加載FPGA目標程序的方法,其特征在于,所述步驟B具體包括
步驟B1單板上電復位,將加載狀態(tài)機從空閑狀態(tài)遷移至加載準備狀態(tài),清除FPGA內(nèi)部存儲器;
步驟B2所述清除完畢,選中需要加載的FPGA,將存儲在閃存中的目標程序讀出并寫入所述FPGA;
步驟B3加載完畢,將所述FPGA片選信號設置為無效,同時加載狀態(tài)機進入空閑狀態(tài)。
5.如權(quán)利要求2所述的加載FPGA目標程序的方法,其特征在于,所述步驟C具體包括
步驟C1主控板將閃存的訪問狀態(tài)機設置為有效后,將訪問狀態(tài)機由空閑狀態(tài)遷移到準備狀態(tài);
步驟C2主控板通過高級數(shù)據(jù)鏈路控制通道對閃存進行讀操作,讀出閃存中的程序判斷該程序是否為最新版本,如果是,結(jié)束在線升級;否則,擦除閃存中的目標程序,擦除完畢后,向閃存中寫入最新版本的目標程序。
6.如權(quán)利要求5所述的加載FPGA目標程序的方法,其特征在于,所述步驟C2后還包括
步驟C3從FLASH中讀出新寫入的目標程序,驗證寫入的目標程序是否正確。
7.如權(quán)利要求3至6中任一權(quán)利要求所述的加載FPGA目標程序的方法,其特征在于,所述步驟D具體包括
步驟D1閃存中的目標程序在線升級后,單板的可擦可編程邏輯器件進入重載準備狀態(tài),清除FPGA內(nèi)部存儲器;
步驟D2所述清除完畢后,選中所述FPGA,將閃存中的目標程序讀出并寫入所述FPGA上;
步驟D3重載完畢,將所述FPGA片選信號設置為無效,同時加載狀態(tài)機進入空閑狀態(tài)。
8.一種加載FPGA目標程序的系統(tǒng),其特征在于,所述系統(tǒng)包括
閃存,所述閃存外掛在單板的可擦可編程邏輯器件上;
存儲模塊,用于將FPGA的目標程序存儲到所述閃存上;
配置模塊,用于對單板的接口進行配置;
加載模塊,用于單板上電復位,將所述目標程序從閃存中加載到FPGA上。
9.如權(quán)利要求8所述的加載FPGA目標程序的系統(tǒng),其特征在于,所述系統(tǒng)還包括
在線升級模塊,用于通過高級數(shù)據(jù)鏈路控制通道對閃存中的目標程序進行在線升級。
10.如權(quán)利要求9所述的加載FPGA目標程序的系統(tǒng),其特征在于,所述系統(tǒng)還包括
更新模塊,用于閃存中的目標程序升級后,將升級后的目標程序重載到FPGA上。
11.如權(quán)利要求8所述的加載FPGA目標程序的系統(tǒng),其特征在于,所述加載模塊具體包括
加載準備單元,用于單板上電復位,加載狀態(tài)機為空閑狀態(tài),進入加載準備狀態(tài),清除FPGA內(nèi)部存儲器;
加載單元,用于所述清除完畢,選中需要加載的FPGA,將閃存中的目標程序讀出并寫入所述FPGA上;加載完畢,將所述FPGA片選信號設置為無效,同時加載狀態(tài)機進入空閑狀態(tài)。
12.如權(quán)利要求9所述的加載FPGA目標程序的系統(tǒng),其特征在于,所述在線升級模塊具體包括
訪問狀態(tài)機設置單元,用于主控板將閃存的訪問狀態(tài)機設置為有效后,將訪問狀態(tài)機由空閑狀態(tài)遷移到準備狀態(tài);
在線升級單元,用于主控板通過高級數(shù)據(jù)鏈路控制通道對閃存進行讀操作,讀出閃存中的程序判斷該程序是否為最新版本,如果是,結(jié)束在線升級;否則,擦除閃存中的目標程序,擦除完畢后,向閃存中寫入最新版本的目標程序。
13.如權(quán)利要求12所述的加載FPGA目標程序的系統(tǒng),其特征在于,所述在線升級模塊還包括
驗證單元,用于從閃存中讀出新寫入的目標程序,驗證寫入的目標程序是否正確。
14.如權(quán)利要求10至13任一權(quán)利要求所述的加載FPGA目標程序的系統(tǒng),其特征在于,所述更新模塊具體包括
重載準備單元,用于閃存中的目標程序在線升級后,單板的可擦可編程邏輯器件進入重載準備狀態(tài),清除FPGA內(nèi)部存儲器;
重載單元,用于所述清除完畢后,選中所述FPGA,將閃存中的目標程序讀出并寫入所述FPGA上;重載完畢,將所述FPGA片選信號設置為無效,同時加載狀態(tài)機進入空閑狀態(tài)。
全文摘要
本發(fā)明提供了一種加載FPGA目標程序的方法及系統(tǒng),屬于數(shù)據(jù)通信領(lǐng)域。為了解決現(xiàn)有技術(shù)中加載時間長和不能在線升級的問題,本發(fā)明提供了一種加載FPGA目標程序的方法,所述方法包括在單板的可擦可編程邏輯器件上外掛閃存,將FPGA的目標程序存儲到閃存上,然后對單板的接口進行配置,單板上電復位后,將目標程序從閃存中加載到FPGA上的步驟。本發(fā)明還提供了一種加載FPGA目標程序的系統(tǒng),所述系統(tǒng)包括閃存、存儲模塊、配置模塊、加載模塊、在線升級模塊和更新模塊。采用本發(fā)明提供的技術(shù)方案實現(xiàn)了自動加載,節(jié)省了單板的啟動時間,同時也實現(xiàn)了在線升級,可以及時地、方便地進行系統(tǒng)維護。
文檔編號G06F9/445GK1928824SQ20061015292
公開日2007年3月14日 申請日期2006年9月20日 優(yōu)先權(quán)日2006年9月20日
發(fā)明者侯雪華 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1