国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      遠(yuǎn)程升級(jí)現(xiàn)場(chǎng)可編程門(mén)陣列的系統(tǒng)、接口卡及方法

      文檔序號(hào):6471305閱讀:269來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):遠(yuǎn)程升級(jí)現(xiàn)場(chǎng)可編程門(mén)陣列的系統(tǒng)、接口卡及方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及遠(yuǎn)程升級(jí)技術(shù)領(lǐng)域,具體涉及遠(yuǎn)程升級(jí)現(xiàn)場(chǎng)可編程門(mén)陣列的 系統(tǒng)、接口卡及方法。
      背景技術(shù)
      為了靈活應(yīng)對(duì)各行業(yè)用戶(hù)的各種需求,路由器等通信設(shè)備已經(jīng)大量應(yīng)用 了模塊化設(shè)計(jì),同一款主板通過(guò)配置不同的接口卡,可以實(shí)現(xiàn)多種不同的接 口接入,為很多行業(yè)用戶(hù)提供了更為豐富、方便、靈活的組網(wǎng)的方式,節(jié)省 了用戶(hù)的投資并減少了用戶(hù)網(wǎng)絡(luò)維護(hù)的難度。目前應(yīng)用的接口卡中,大量使
      用了后端為外圍部件互聯(lián)(PCI, Peripheral Component Interconnect)接口 、 局部總線(xiàn)(Local bus )接口的總線(xiàn)方式,后續(xù)可能還會(huì)使用高速PCI ( PCIE )
      總線(xiàn)等。
      由于接口卡的種類(lèi)眾多,并且各種接口類(lèi)型豐富,在板卡設(shè)計(jì)中會(huì)經(jīng)常 使用到大規(guī)模現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA, Field Programmable Gate Array ) 芯片來(lái)實(shí)現(xiàn)接口協(xié)議或者接口控制。目前的路由器產(chǎn)品已經(jīng)在多款接口卡上 應(yīng)用了FPGA芯片。由于FPGA通常開(kāi)發(fā)復(fù)雜度高,經(jīng)常會(huì)涉及到版本的升 級(jí)。即便已發(fā)放到市場(chǎng)上的FPGA版本也存在版本升級(jí)的風(fēng)險(xiǎn),因此實(shí)現(xiàn) FPGA版本的遠(yuǎn)程升級(jí)功能很有必要。
      FPGA的遠(yuǎn)程升級(jí)除了要有一定的數(shù)據(jù)通道將升級(jí)數(shù)據(jù)傳遞到FPGA芯 片上之外,還需要若干控制信號(hào)的介入,才能控制FPGA實(shí)現(xiàn)自我配置。但 對(duì)于接口卡這種特殊形式的模塊,其同主板的連接往往就是純粹的Local bus 總線(xiàn)、PCI總線(xiàn)等,沒(méi)有多余可用的通用輸入輸出(GPIO, General Purpose Input Output)管腳,如圖1所示。因此,要實(shí)現(xiàn)FPGA的遠(yuǎn)程升級(jí)就顯得格外復(fù)雜。
      圖2為現(xiàn)有的遠(yuǎn)程升級(jí)FPGA的示意圖,如圖2所示,通常在接口卡上 增加 一 片復(fù)雜可編程邏輯器件(CPLD , Complex Programmable Logic Device)。通過(guò)CPLD來(lái)實(shí)現(xiàn)一定的接口配置邏輯,對(duì)FPGA進(jìn)行升級(jí)。遠(yuǎn) 程升級(jí)的過(guò)程為通過(guò)網(wǎng)絡(luò)將升級(jí)數(shù)據(jù)傳輸?shù)街靼宓腃PU上,主板的CPU 通過(guò)數(shù)據(jù)通道(PCI總線(xiàn)等)將升級(jí)數(shù)據(jù)傳送到CPLD中;然后CPLD按照 一定的配置邏輯來(lái)加載FPGA,并激活FPGA,從而實(shí)現(xiàn)遠(yuǎn)程升級(jí)。
      現(xiàn)有方案的缺點(diǎn)如下
      1、 為了能與主板的CPU通信,CPLD必須實(shí)現(xiàn)一個(gè)復(fù)雜的PCI核(PCI core),并且還要完成PCI接口向FPGA配置接口的轉(zhuǎn)換。
      2、 為提高升級(jí)數(shù)據(jù)加載效率和避免占用CPU資源,需要CPLD內(nèi)部的 PCI core工作在Master方式,經(jīng)PCI橋片仲裁申請(qǐng)到PCI總線(xiàn)后,通過(guò)直接 內(nèi)存訪(fǎng)問(wèn)(DMA, Direct Memory Access )控制器來(lái)/人主板內(nèi)存獲取升級(jí)數(shù) 據(jù)( 一般在8Mbits左右)。因?yàn)镻CI總線(xiàn)以高速Burst方式操作數(shù)據(jù),而配 置接口數(shù)據(jù)率較低,這樣就要求CPLD必須自帶較多隨機(jī)訪(fǎng)問(wèn)內(nèi)存(RAM, Radom Access Memory )資源,設(shè)計(jì)成內(nèi)部先入先出(FIFO, First In First Out) 來(lái)緩存升級(jí)數(shù)據(jù)塊。
      3 、接口卡上有CPLD和FPGA兩個(gè)master設(shè)備,必須增加 一級(jí)PCI橋 片作為總線(xiàn)仲裁。
      4、接口卡上的CPLD和FPGA的PCI core必須同頻率設(shè)計(jì)。但因?yàn)镃PLD 工藝限制,在CPLD上實(shí)現(xiàn)66MHz的PCI core比較困難,因此當(dāng)FPGA工 作在66MHz時(shí)還需要在FPGA和CPLD之間增加 一 級(jí)PCI橋片作總線(xiàn)隔離。
      總的來(lái)說(shuō),該方案需要的CPLD規(guī)模大、設(shè)計(jì)復(fù)雜,還需增加PCI橋片, 造成整體設(shè)計(jì)成本偏高。另外,PCI橋片的插入,還會(huì)造成FPGA同主板的 通信效率降低。

      發(fā)明內(nèi)容
      本發(fā)明提供遠(yuǎn)程升級(jí)FPGA的系統(tǒng)、接口卡及方法,以降低接口卡的設(shè)計(jì) 成本。
      本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的
      一種遠(yuǎn)程升級(jí)FPGA的系統(tǒng),包括主板和接口卡,且,接口卡包括 FPGA、閃存和CPLD,其中
      主板,將遠(yuǎn)程網(wǎng)管發(fā)來(lái)的升級(jí)數(shù)據(jù)發(fā)送給FPGA,并在接收到遠(yuǎn)程網(wǎng)管發(fā) 來(lái)的升級(jí)指令后,向FPGA發(fā)送升級(jí)啟動(dòng)指令;
      FPGA,將主板發(fā)來(lái)的升級(jí)數(shù)據(jù)寫(xiě)入閃存,接收主板發(fā)來(lái)的升級(jí)啟動(dòng)指令, 向CPLD輸出啟動(dòng)信號(hào);根據(jù)CPLD輸入的控制信號(hào)時(shí)序,從閃存讀取升級(jí)數(shù) 據(jù)完成配置;
      CPLD,接收FPGA發(fā)來(lái)的啟動(dòng)信號(hào),向FPGA輸出一組控制信號(hào)時(shí)序。 所述FPGA進(jìn)一步包括用于在配置完成后,向主板發(fā)起配置完成中斷的 模塊,
      且,所述主板進(jìn)一步包括用于接收FPGA上報(bào)的配置完成中斷,若發(fā)現(xiàn) FPGA版本未更改,則重新向FPGA發(fā)送升級(jí)啟動(dòng)指令的模塊。 一種接口卡,包括FPGA、閃存和CPLD,其中
      FPGA,將主板發(fā)來(lái)的升級(jí)數(shù)據(jù)寫(xiě)入閃存,接收主板發(fā)來(lái)的升級(jí)啟動(dòng)指令, 向CPLD輸出啟動(dòng)信號(hào);根據(jù)CPLD輸入的控制信號(hào)時(shí)序,從閃存讀取升級(jí)數(shù) 據(jù)完成配置;
      CPLD,接收FPGA發(fā)來(lái)的啟動(dòng)信號(hào),向FPGA輸出一組控制信號(hào)時(shí)序。 所述FPGA包括
      升級(jí)數(shù)據(jù)加載模塊,將主板發(fā)來(lái)的升級(jí)數(shù)據(jù)寫(xiě)入閃存; 升級(jí)啟動(dòng)觸發(fā)模塊,接收主板發(fā)來(lái)的升級(jí)啟動(dòng)指令,向CPLD發(fā)送啟動(dòng) 信號(hào);
      配置模塊,接收CPLD輸入的配置啟動(dòng)信號(hào),進(jìn)入配置模式;接收CPLD輸入的配置初始化啟動(dòng)信號(hào),開(kāi)始配置初始化過(guò)程;確定配置初始化完成, 并接收到CPLD輸入的配置開(kāi)始信號(hào),則從閃存讀取升級(jí)數(shù)據(jù)進(jìn)行配置,確 定配置完成,向CPLD輸出配置完成信號(hào),檢測(cè)到CPLD設(shè)置的配置完成標(biāo) 志,產(chǎn)生配置完成中斷上報(bào)給主板。
      所述配置模塊進(jìn)一步包括用于發(fā)現(xiàn)從閃存讀取升級(jí)數(shù)據(jù)失敗,從閃存 中讀取備份版本的配置數(shù)據(jù)完成配置的模塊。
      所述CPLD包括
      啟動(dòng)模塊,接收FPGA發(fā)來(lái)的啟動(dòng)信號(hào),向時(shí)序控制模塊發(fā)送時(shí)序啟動(dòng) 指令;
      時(shí)序控制模塊,接收啟動(dòng)模塊發(fā)來(lái)的時(shí)序啟動(dòng)指令,產(chǎn)生配置啟動(dòng)信號(hào) 輸出到FPGA,并開(kāi)始對(duì)配置啟動(dòng)、配置初始化過(guò)程計(jì)時(shí),根據(jù)預(yù)設(shè)配置啟 動(dòng)時(shí)長(zhǎng)檢測(cè)到配置啟動(dòng)過(guò)程到時(shí),產(chǎn)生配置初始化啟動(dòng)信號(hào)輸出到FPGA; 根據(jù)預(yù)設(shè)配置初始化時(shí)長(zhǎng)檢測(cè)到配置初始化過(guò)程到時(shí),產(chǎn)生配置開(kāi)始信號(hào)輸 出到FPGA;接收FPGA輸入的配置完成信號(hào),設(shè)置配置完成標(biāo)志。
      一種遠(yuǎn)程升級(jí)FPGA的方法,應(yīng)用在包含主板和接口卡的系統(tǒng)中,其中, 接口卡包括FPGA、閃存和CPLD,該方法包括
      FPGA接收主板轉(zhuǎn)發(fā)的來(lái)自遠(yuǎn)程網(wǎng)管的升級(jí)數(shù)據(jù),將該升級(jí)數(shù)據(jù)寫(xiě)入閃存;
      FPGA接收主板發(fā)來(lái)的升級(jí)啟動(dòng)指令,向CPLD發(fā)送啟動(dòng)信號(hào),根據(jù)CPLD 產(chǎn)生的一組控制信號(hào)時(shí)序從閃存讀取升級(jí)數(shù)據(jù)完成配置。
      所述FPGA向CPLD發(fā)送啟動(dòng)信號(hào)之后、FPGA根據(jù)CPLD產(chǎn)生的一組控 制信號(hào)時(shí)序從閃存讀取升級(jí)數(shù)據(jù)完成配置之前進(jìn)一步包括
      CPLD接收啟動(dòng)信號(hào),向FPGA發(fā)送配置啟動(dòng)信號(hào),并開(kāi)始對(duì)配置啟動(dòng)過(guò) 程、配置初始化過(guò)程計(jì)時(shí);
      所述FPGA根據(jù)CPLD產(chǎn)生的一組控制信號(hào)時(shí)序從閃存讀取升級(jí)數(shù)據(jù)完成 配置包括
      FPGA接收配置啟動(dòng)信號(hào),進(jìn)入配置模式;CPLD根據(jù)預(yù)設(shè)配置啟動(dòng)時(shí)長(zhǎng) 斗企測(cè)到配置啟動(dòng)過(guò)程到時(shí)時(shí),向FPGA發(fā)送配置初始化啟動(dòng)信號(hào),F(xiàn)PGA接收配置初始化啟動(dòng)信號(hào),開(kāi)始配置初始化過(guò)程;CPLD才艮據(jù)預(yù)設(shè)配置初始化時(shí)長(zhǎng) 檢測(cè)到配置初始化過(guò)程到時(shí)時(shí),向FPGA發(fā)送配置開(kāi)始信號(hào),F(xiàn)PGA接收配置 開(kāi)始信號(hào),從閃存讀取升級(jí)數(shù)據(jù)進(jìn)行配置。
      所述FPGA根據(jù)CPLD產(chǎn)生的一組控制信號(hào)時(shí)序從閃存讀取升級(jí)數(shù)據(jù)完成 配置之后進(jìn)一步包括
      FPGA確定配置完成,向CPLD輸出配置完成信號(hào),檢測(cè)到CPLD設(shè)置的 配置完成標(biāo)志,向主板上報(bào)配置完成中斷,主板接收該中斷后,發(fā)現(xiàn)FPGA版 本未更改,則重新向FPGA發(fā)送升級(jí)啟動(dòng)指令。
      所述主板發(fā)現(xiàn)FPGA版本未更改之后、重新向FPGA發(fā)送升級(jí)啟動(dòng)指令之 前進(jìn)一步包括
      主板判斷FPGA升級(jí)失敗次數(shù)是否小于預(yù)設(shè)最大次數(shù),若是,重新向FPGA 發(fā)送升級(jí)啟動(dòng)指令;否則,向網(wǎng)管上報(bào)告警。 預(yù)先在閃存中保存?zhèn)浞莅姹镜呐渲脭?shù)據(jù);
      所述FPGA根據(jù)CPLD產(chǎn)生的一組控制信號(hào)時(shí)序從閃存讀取升級(jí)數(shù)據(jù)進(jìn)一 步包括
      FPGA發(fā)現(xiàn)從閃存讀取升級(jí)數(shù)據(jù)失敗,則從閃存中讀取備份版本的配置 數(shù)據(jù)完成配置。
      與現(xiàn)有技術(shù)相比,本發(fā)明中,通過(guò)FPGA實(shí)現(xiàn)升級(jí)數(shù)據(jù)加載,CPLD的 設(shè)計(jì)只需要簡(jiǎn)單的控制信號(hào)時(shí)序,無(wú)需在CPLD內(nèi)設(shè)計(jì)PCI core,也無(wú)需在 CPLD內(nèi)設(shè)計(jì)接口轉(zhuǎn)換功能,接口卡內(nèi)無(wú)需PCI橋片,降低了接口卡的設(shè)計(jì) 成本。同時(shí),接口卡內(nèi)軟硬件接口簡(jiǎn)單,加載升級(jí)速度快(只需幾ms), 可靠性高;使用通用的閃存,進(jìn)一步降低成本。且,本發(fā)明中在FPGA升級(jí) 時(shí),無(wú)需斷電重啟,可實(shí)現(xiàn)在線(xiàn)升級(jí)。
      本發(fā)明實(shí)施例中,在閃存中采用雙鏡像機(jī)制,保證了FPGA的可靠性。


      圖1為現(xiàn)有的接口卡結(jié)構(gòu)示意圖;圖2為現(xiàn)有的遠(yuǎn)程升級(jí)FPGA的示意圖; 圖3為本發(fā)明實(shí)施例提供的遠(yuǎn)程升級(jí)FPGA的系統(tǒng)組成圖; 圖4為本發(fā)明實(shí)施例提供的主板的結(jié)構(gòu)示意圖; 圖5為本發(fā)明實(shí)施例提供的FPGA的結(jié)構(gòu)示意圖; 圖6為本發(fā)明實(shí)施例提供的CPLD的結(jié)構(gòu)示意圖; 圖7為本發(fā)明提供的遠(yuǎn)程升級(jí)FPGA的流程圖; 圖8為本發(fā)明實(shí)施例提供的遠(yuǎn)程升級(jí)FPGA的流程圖; 圖9為本發(fā)明實(shí)施例提供的CPLD產(chǎn)生控制信號(hào)時(shí)序PROGRAMn、 INITn和DONE的示意圖10為本發(fā)明實(shí)施例提供的主板對(duì)配置完成中斷的處理流程圖。
      具體實(shí)施例方式
      下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn) 一 步詳細(xì)的說(shuō)明。
      圖3為本發(fā)明實(shí)施例提供的遠(yuǎn)程升級(jí)FPGA的系統(tǒng)組成圖,如圖3所示,
      該系統(tǒng)包括主板31和接口卡32,其中,接口卡可包括FPGA321、閃存
      322和CPLD 323。
      主板31與FPGA 321之間的接口可為PCI接口, FPGA 321與閃存322 之間的接口可為串行外圍設(shè)備接口 ( SPI, Serial Peripheral Interface )。 各部分的功能如下
      主板31:接收遠(yuǎn)程網(wǎng)管發(fā)來(lái)的升級(jí)數(shù)據(jù),將升級(jí)數(shù)據(jù)發(fā)送到FPGA321; 在接收到遠(yuǎn)程網(wǎng)管發(fā)來(lái)的升級(jí)指令后,向FPGA 321發(fā)送一個(gè)升級(jí)啟動(dòng)指令。
      FPGA 321:接收主板31發(fā)來(lái)的升級(jí)數(shù)據(jù),將該升級(jí)數(shù)據(jù)寫(xiě)入閃存322; 接收主板31發(fā)來(lái)的升級(jí)啟動(dòng)指令,向CPLD 323發(fā)送一個(gè)啟動(dòng)信號(hào);根據(jù) CPLD 323輸入的控制信號(hào)時(shí)序,從閃存322讀取升級(jí)數(shù)據(jù)完成配置。
      閃存322:保存升級(jí)數(shù)據(jù)。
      CPLD 323:接收FPGA 321發(fā)來(lái)的啟動(dòng)信號(hào),產(chǎn)生用于控制升級(jí)過(guò)程的 控制信號(hào)時(shí)序輸出到FPGA 321。如圖4所示,其中,主板31可包括升級(jí)數(shù)據(jù)傳輸模塊311、升級(jí)啟 動(dòng)指示模塊312和配置完成中斷處理模塊313,其中
      升級(jí)數(shù)據(jù)傳輸模塊311:接收遠(yuǎn)程網(wǎng)管發(fā)來(lái)的升級(jí)數(shù)據(jù),將升級(jí)數(shù)據(jù)發(fā) 送到FPGA321。
      升級(jí)啟動(dòng)指示模塊312:接收遠(yuǎn)程網(wǎng)管發(fā)來(lái)的升級(jí)指令或接收配置完成 中斷處理模塊313發(fā)來(lái)的重啟升級(jí)指令,向FPGA321發(fā)送一個(gè)升級(jí)啟動(dòng)指令。
      配置完成中斷處理模塊313:接收FPGA 321上報(bào)的配置完成中斷,在 中斷服務(wù)程序中從FPGA版本寄存器中讀取FPGA版本,若FPGA版本更改, 則對(duì)FPGA進(jìn)行業(yè)務(wù)配置,并根據(jù)業(yè)務(wù)需要決定是否對(duì)接口卡進(jìn)行復(fù)位;若 FPGA版本未更改,則判斷FPGA升級(jí)次數(shù)是否小于最大升級(jí)次數(shù),若小于, 則向升級(jí)啟動(dòng)指示模塊312發(fā)送重啟升級(jí)指令;否則,向網(wǎng)管上報(bào)告警。
      如圖5所示,F(xiàn)PGA321可包括升級(jí)數(shù)據(jù)加載模塊3211 、升級(jí)啟動(dòng)觸 發(fā)模塊3212和配置模塊3213,其中
      升級(jí)數(shù)據(jù)加載模塊3211:接收主板31發(fā)來(lái)的升級(jí)數(shù)據(jù),將該升級(jí)數(shù)據(jù) 寫(xiě)入閃存322。
      升級(jí)啟動(dòng)觸發(fā)模塊3212:接收主板31發(fā)來(lái)的升級(jí)啟動(dòng)指令,向CPLD 323發(fā)送一個(gè)啟動(dòng)信號(hào)。
      配置模塊3213:檢測(cè)到CPLD 323輸入的PROGRAMn信號(hào)的下降沿, 從正常工作模式進(jìn)入配置模式,并產(chǎn)生DONE信號(hào)的下降沿;檢測(cè)到CPLD 323輸入的PROGRAMn信號(hào)的上升沿,開(kāi)始配置初始化過(guò)程;確定配置初 始化完成,并檢測(cè)到CPLD 323輸入的INITn高電平信號(hào),則產(chǎn)生INITn信 號(hào)的上升沿,從閃存讀取升級(jí)數(shù)據(jù),根據(jù)升級(jí)數(shù)據(jù)進(jìn)行配置;確定配置完成, 向CPLD 323輸出DONE信號(hào)的上升沿,檢測(cè)到CPLD323的配置完成標(biāo)志, 產(chǎn)生一個(gè)配置完成中斷上報(bào)給主板。
      配置模塊3213進(jìn)一步用于,在發(fā)現(xiàn)從內(nèi)存322讀取升級(jí)數(shù)據(jù)失敗時(shí),
      從內(nèi)存322讀取備份版本的配置數(shù)據(jù)完成配置。這里,閃存322中設(shè)置有兩個(gè)完全對(duì)稱(chēng)的配置數(shù)據(jù)區(qū)域, 一個(gè)區(qū)域用于存放新版本的配置數(shù)據(jù)(即升級(jí) 數(shù)據(jù)),另一個(gè)區(qū)域用于存放備份版本的配置數(shù)據(jù),該備份版本通常為升級(jí) 前的版本。
      如圖6所示,CPLD 323可包括啟動(dòng)模塊3231、時(shí)序控制模塊3232 和配置完成檢測(cè)模塊3233,其中
      啟動(dòng)模塊3231:接收FPGA321發(fā)來(lái)的啟動(dòng)信號(hào),向時(shí)序控制模塊3232 發(fā)送時(shí)序啟動(dòng)指令。
      時(shí)序控制模塊3232:預(yù)先設(shè)置配置啟動(dòng)時(shí)長(zhǎng)、配置初始化時(shí)長(zhǎng);接收 啟動(dòng)模塊3231發(fā)來(lái)的時(shí)序啟動(dòng)指令,產(chǎn)生PROGRAMn信號(hào)的下降沿輸出 到FPGA321,打開(kāi)配置啟動(dòng)定時(shí)器,同時(shí)控制INITn信號(hào)輸出低電平,打 開(kāi)配置初始化定時(shí)器;檢測(cè)到配置啟動(dòng)定時(shí)器到時(shí),產(chǎn)生PROGRAMn信號(hào) 的上升沿輸出到FPGA 321;檢測(cè)到配置初始化定時(shí)器到時(shí),產(chǎn)生INITn高 電平信號(hào)沿輸出到FPGA321。
      配置完成檢測(cè)模塊3233:檢測(cè)到FPGA 321輸入的DONE信號(hào)的上升 沿,設(shè)置配置完成標(biāo)志。
      圖7為本發(fā)明提供的遠(yuǎn)程升級(jí)FPGA的流程圖,如圖7所示,其具體步 驟如下
      步驟701:遠(yuǎn)程網(wǎng)管通過(guò)網(wǎng)絡(luò)將升級(jí)數(shù)據(jù)傳輸?shù)街靼迳?,主板通過(guò)數(shù)據(jù) 通道如PCI接口將升級(jí)數(shù)據(jù)傳送到接口卡上的FPGA。
      步驟702: FPGA通過(guò)邏輯接口如SPI接口將升級(jí)數(shù)據(jù)寫(xiě)入接口卡上 的閃存。
      步驟703:遠(yuǎn)程網(wǎng)管向主板發(fā)送升級(jí)指令,主板接收升級(jí)指令,向FPGA 發(fā)送升級(jí)啟動(dòng)指令,F(xiàn)PGA接收升級(jí)啟動(dòng)指令后向接口卡上的CPLD發(fā)起一
      個(gè)啟動(dòng)信號(hào)。
      此時(shí),F(xiàn)PGA處于User mode (正常工作模式)下。
      為了提高啟動(dòng)信號(hào)的抗干擾性,F(xiàn)PGA可以將啟動(dòng)信號(hào)設(shè)計(jì)成一個(gè)序列。步驟704: CPLD接收FPGA發(fā)來(lái)的啟動(dòng)信號(hào),產(chǎn)生一組控制信號(hào)時(shí)序 輸出到FPGA, FPGA根據(jù)該控制信號(hào)時(shí)序從閃存讀取升級(jí)數(shù)據(jù)完成配置。
      圖8為本發(fā)明實(shí)施例提供的遠(yuǎn)程升級(jí)FPGA的流程圖,如圖8所示,其 具體步驟如下
      步驟801:在CPLD上設(shè)置配置啟動(dòng)時(shí)長(zhǎng)、配置初始化時(shí)長(zhǎng),將FPGA 的配置完成中斷的使能位默認(rèn)為打開(kāi)。
      由于FPGA在配置完成后需要向主板上報(bào)中斷,因此,本步驟中需要將 FPGA的配置完成中斷的使能位默認(rèn)為打開(kāi)。
      步驟802:主板通過(guò)PCI接口將遠(yuǎn)程網(wǎng)管發(fā)來(lái)的升級(jí)數(shù)據(jù)傳送到FPGA, FPGA將升級(jí)數(shù)據(jù)寫(xiě)入閃存。
      本步驟中,F(xiàn)PGA將升級(jí)^:據(jù)寫(xiě)入閃存時(shí),F(xiàn)PGA工作在user mode下。
      FPGA與閃存間的連接管腳為多用途管腳。該管腳在FPGA工作在不同 模式時(shí),其用途是不同的。在配置模式下,F(xiàn)PGA內(nèi)部硬件會(huì)自動(dòng)將該連接 管腳設(shè)置為配置專(zhuān)用的SPI接口 ,當(dāng)FPGA工作在user mode下時(shí),該連接 管腳由代碼設(shè)計(jì)編程為SPI接口,以用于FPGA向閃存寫(xiě)入數(shù)據(jù)。
      步驟803:主板接收遠(yuǎn)程網(wǎng)管發(fā)來(lái)的升級(jí)指令,向FPGA發(fā)送一個(gè)升級(jí) 啟動(dòng)指令,F(xiàn)PGA收到該指令通過(guò)SPI接口向CPLD發(fā)送一個(gè)啟動(dòng)信號(hào)。
      步驟804: CPLD接收啟動(dòng)信號(hào),產(chǎn)生PROGRAMn信號(hào)的下降沿輸出 到FPGA,打開(kāi)配置啟動(dòng)定時(shí)器,同時(shí)控制INITn信號(hào)輸出低電平,打開(kāi)配 置初始化定時(shí)器。
      配置啟動(dòng)定時(shí)器的定時(shí)時(shí)長(zhǎng)等于配置啟動(dòng)時(shí)長(zhǎng),配置初始化定時(shí)器的定 時(shí)時(shí)長(zhǎng)等于配置初始化時(shí)長(zhǎng)。
      圖9給出了 CPLD產(chǎn)生控制信號(hào)時(shí)序PROGRAMn、 INITn和DONE
      的示意圖。
      步驟805: FPGA檢測(cè)到PROGRAMn信號(hào)的下降沿,從User mode切 換到Configuration mode (配置模式),同時(shí)產(chǎn)生DONE信號(hào)的下降沿。
      步驟806: CPLD ^r測(cè)到配置啟動(dòng)定時(shí)器到時(shí),產(chǎn)生PROGRAMn信號(hào)的上升沿輸出到FPGA。
      步驟807: FPGA檢測(cè)到PROGRAMn信號(hào)的上升沿,開(kāi)始配置初始化 過(guò)程。
      步驟808: CPLD檢測(cè)到配置初始化定時(shí)器到時(shí),產(chǎn)生INITn高電平信 號(hào)輸出到FPGA。
      步驟809: FPGA確定配置初始化完成,并;f企測(cè)到INITn高電平信號(hào), 則產(chǎn)生INITn信號(hào)的上升沿,從閃存讀取升級(jí)數(shù)據(jù),根據(jù)升級(jí)數(shù)據(jù)進(jìn)行配置。 步驟810: FPGA確定配置完成,產(chǎn)生DONE信號(hào)的上升沿。 步驟811: CPLD檢測(cè)到DONE信號(hào)的上升沿,設(shè)置配置完成標(biāo)志。 步驟812: FPGA檢測(cè)到配置完成標(biāo)志,產(chǎn)生一個(gè)配置完成中斷上報(bào)給 主板。
      例如可利用CPLD上的一個(gè)管腳來(lái)輸出配置完成信號(hào),F(xiàn)PGA檢測(cè)到 該信號(hào),則產(chǎn)生配置完成中斷。
      由于在線(xiàn)升級(jí)過(guò)程的異常斷電等原因,F(xiàn)PGA升級(jí)會(huì)失敗,從而導(dǎo)致 FPGA無(wú)法正確配置。為了避免升級(jí)失敗而造成的FPGA配置異常,本發(fā)明 實(shí)施例中,可以在閃存中采用雙鏡像機(jī)制,即在閃存中設(shè)置兩個(gè)完全對(duì)稱(chēng)的 配置數(shù)據(jù)區(qū)域, 一個(gè)區(qū)域用于存放新版本的配置數(shù)據(jù)(即升級(jí)數(shù)據(jù)),另一 個(gè)區(qū)域用于存放備份版本的配置數(shù)據(jù)。當(dāng)FPGA在升級(jí)過(guò)程中,發(fā)現(xiàn)升級(jí)數(shù) 據(jù)無(wú)法讀取時(shí),則切換到另一個(gè)區(qū)域讀取備份版本的配置數(shù)據(jù)完成配置,這 樣,F(xiàn)PGA就可正常啟動(dòng),并可在啟動(dòng)后重新進(jìn)行升級(jí)。
      以下給出主板對(duì)配置完成中斷的處理
      圖10為本發(fā)明實(shí)施例提供的主板對(duì)配置完成中斷的處理流程圖,如圖 IO所示,其具體步驟如下
      步驟1001:主板接收FPGA上報(bào)的配置完成中斷,在中斷服務(wù)程序中 從FPGA版本寄存器中讀取FPGA版本。
      步驟1002:主板判斷FPGA版本是否更改,若是,執(zhí)行步驟1003;否 則,執(zhí)行步驟1004。升級(jí)成功后,寄存器中的FPGA版本會(huì)自動(dòng)更改為新版本;若升級(jí)失敗, 則FPGA版本不會(huì)發(fā)生更改。
      步驟1003:主板對(duì)FPGA進(jìn)行業(yè)務(wù)配置,根據(jù)業(yè)務(wù)需要決定是否對(duì)接 口卡進(jìn)行復(fù)位,本流程結(jié)束。
      步驟1004:主板確定本次升級(jí)失敗,記錄升級(jí)失敗次數(shù)n。
      步驟1005:主板判斷n〈Nmax是否成立,若是,執(zhí)行步驟1006;否貝'J, 執(zhí)行步驟1007。
      Nmax為預(yù)設(shè)最大升級(jí)次數(shù)。
      步驟1006:主板重新向FPGA發(fā)送升級(jí)啟動(dòng)指令,并在接收到FPGA 發(fā)來(lái)的配置完成中斷后,返回步驟1001。 步驟1007:主板向網(wǎng)管上報(bào)告警。
      本發(fā)明實(shí)施例中的FPGA可以采用Lattice ECP2系列FPGA。 以上所述僅為本發(fā)明的過(guò)程及方法實(shí)施例,并不用以限制本發(fā)明,凡在
      本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在
      本發(fā)明的保護(hù)范圍之內(nèi)。
      權(quán)利要求
      1、一種遠(yuǎn)程升級(jí)現(xiàn)場(chǎng)可編程門(mén)陣列FPGA的系統(tǒng),其特征在于,該系統(tǒng)包括主板和接口卡,且,接口卡包括FPGA、閃存和復(fù)雜可編程邏輯器件CPLD,其中主板,將遠(yuǎn)程網(wǎng)管發(fā)來(lái)的升級(jí)數(shù)據(jù)發(fā)送給FPGA,并在接收到遠(yuǎn)程網(wǎng)管發(fā)來(lái)的升級(jí)指令后,向FPGA發(fā)送升級(jí)啟動(dòng)指令;FPGA,將主板發(fā)來(lái)的升級(jí)數(shù)據(jù)寫(xiě)入閃存,接收主板發(fā)來(lái)的升級(jí)啟動(dòng)指令,向CPLD輸出啟動(dòng)信號(hào);根據(jù)CPLD輸入的控制信號(hào)時(shí)序,從閃存讀取升級(jí)數(shù)據(jù)完成配置;CPLD,接收FPGA發(fā)來(lái)的啟動(dòng)信號(hào),向FPGA輸出一組控制信號(hào)時(shí)序。
      2、 如權(quán)利要求l所述的系統(tǒng),其特征在于,所述FPGA進(jìn)一步包括用于 在配置完成后,向主板發(fā)起配置完成中斷的;f莫塊,且,所述主板進(jìn)一步包括用于接收FPGA上報(bào)的配置完成中斷,若發(fā)現(xiàn) FPGA版本未更改,則重新向FPGA發(fā)送升級(jí)啟動(dòng)指令的模塊。
      3、 一種接口卡,其特征在于,該接口卡包括FPGA、閃存和CPLD,其中FPGA,將主板發(fā)來(lái)的升級(jí)數(shù)據(jù)寫(xiě)入閃存,接收主板發(fā)來(lái)的升級(jí)啟動(dòng)指令, 向CPLD輸出啟動(dòng)信號(hào);根據(jù)CPLD輸入的控制信號(hào)時(shí)序,從閃存讀取升級(jí)數(shù) 據(jù)完成配置;CPLD,接收FPGA發(fā)來(lái)的啟動(dòng)信號(hào),向FPGA輸出一組控制信號(hào)時(shí)序。
      4、 如權(quán)利要求3所述的接口卡,其特征在于,所述FPGA包括 升級(jí)數(shù)據(jù)加載模塊,將主板發(fā)來(lái)的升級(jí)數(shù)據(jù)寫(xiě)入閃存; 升級(jí)啟動(dòng)觸發(fā)模塊,接收主板發(fā)來(lái)的升級(jí)啟動(dòng)指令,向CPLD發(fā)送啟動(dòng)信號(hào);配置模塊,接收CPLD輸入的配置啟動(dòng)信號(hào),進(jìn)入配置模式;接收CPLD 輸入的配置初始化啟動(dòng)信號(hào),開(kāi)始配置初始化過(guò)程;確定配置初始化完成,并接收到CPLD輸入的配置開(kāi)始信號(hào),則從閃存讀取升級(jí)數(shù)據(jù)進(jìn)行配置,確定配置完成,向CPLD輸出配置完成信號(hào),檢測(cè)到CPLD設(shè)置的配置完成標(biāo)志,產(chǎn)生配置完成中斷上報(bào)給主板。
      5、 如權(quán)利要求4所述的接口卡,其特征在于,所述配置模塊進(jìn)一步包 括用于發(fā)現(xiàn)從閃存讀取升級(jí)數(shù)據(jù)失敗,從閃存中讀取備份版本的配置數(shù)據(jù) 完成配置的模塊。
      6、 如權(quán)利要求3至5任一所述的接口卡,其特征在于,所述CPLD包括啟動(dòng)模塊,接收FPGA發(fā)來(lái)的啟動(dòng)信號(hào),向時(shí)序控制模塊發(fā)送時(shí)序啟動(dòng) 指令;時(shí)序控制模塊,接收啟動(dòng)模塊發(fā)來(lái)的時(shí)序啟動(dòng)指令,產(chǎn)生配置啟動(dòng)信號(hào) 輸出到FPGA,并開(kāi)始對(duì)配置啟動(dòng)、配置初始化過(guò)程計(jì)時(shí),根據(jù)預(yù)設(shè)配置啟 動(dòng)時(shí)長(zhǎng)檢測(cè)到配置啟動(dòng)過(guò)程到時(shí),產(chǎn)生配置初始化啟動(dòng)信號(hào)輸出到FPGA; 根據(jù)預(yù)設(shè)配置初始化時(shí)長(zhǎng)檢測(cè)到配置初始化過(guò)程到時(shí),產(chǎn)生配置開(kāi)始信號(hào)輸 出到FPGA;接收FPGA輸入的配置完成信號(hào),設(shè)置配置完成標(biāo)志。
      7、 一種遠(yuǎn)程升級(jí)FPGA的方法,應(yīng)用在包含主板和接口卡的系統(tǒng)中, 其中,接口卡包括FPGA、閃存和CPLD,其特征在于,該方法包括FPGA接收主板轉(zhuǎn)發(fā)的來(lái)自遠(yuǎn)程網(wǎng)管的升級(jí)數(shù)據(jù),將該升級(jí)數(shù)據(jù)寫(xiě)入閃存; FPGA接收主板發(fā)來(lái)的升級(jí)啟動(dòng)指令,向CPLD發(fā)送啟動(dòng)信號(hào),根據(jù)CPLD 產(chǎn)生的一組控制信號(hào)時(shí)序從閃存讀取升級(jí)數(shù)據(jù)完成配置。
      8、 如權(quán)利要求7所述的方法,其特征在于,所述FPGA向CPLD發(fā)送啟 動(dòng)信號(hào)之后、FPGA根據(jù)CPLD產(chǎn)生的一組控制信號(hào)時(shí)序從閃存讀取升級(jí)數(shù)據(jù) 完成配置之前進(jìn)一步包括CPLD接收啟動(dòng)信號(hào),向FPGA發(fā)送配置啟動(dòng)信號(hào),并開(kāi)始對(duì)配置啟動(dòng)過(guò) 程、配置初始化過(guò)程計(jì)時(shí);所述FPGA根據(jù)CPLD產(chǎn)生的一組控制信號(hào)時(shí)序從閃存讀取升級(jí)數(shù)據(jù)完成 配置包括FPGA接收配置啟動(dòng)信號(hào),進(jìn)入配置模式;CPLD根據(jù)預(yù)設(shè)配置啟動(dòng)時(shí)長(zhǎng) 檢測(cè)到配置啟動(dòng)過(guò)程到時(shí)時(shí),向FPGA發(fā)送配置初始化啟動(dòng)信號(hào),F(xiàn)PGA接收 配置初始化啟動(dòng)信號(hào),開(kāi)始配置初始化過(guò)程;CPLD根據(jù)預(yù)設(shè)配置初始化時(shí)長(zhǎng) 檢測(cè)到配置初始化過(guò)程到時(shí)時(shí),向FPGA發(fā)送配置開(kāi)始信號(hào),F(xiàn)PGA接收配置 開(kāi)始信號(hào),從閃存讀取升級(jí)數(shù)據(jù)進(jìn)行配置。
      9、 如權(quán)利要求7或8所述的方法,其特征在于,所述FPGA根據(jù)CPLD 產(chǎn)生的一組控制信號(hào)時(shí)序從閃存讀取升級(jí)數(shù)據(jù)完成配置之后進(jìn)一步包括FPGA確定配置完成,向CPLD輸出配置完成信號(hào),檢測(cè)到CPLD設(shè)置的 配置完成標(biāo)志,向主板上報(bào)配置完成中斷,主板接收該中斷后,發(fā)現(xiàn)FPGA版 本未更改,則重新向FPGA發(fā)送升級(jí)啟動(dòng)指令。
      10、 如權(quán)利要求9所述的方法,其特征在于,所述主板發(fā)現(xiàn)FPGA版本未 更改之后、重新向FPGA發(fā)送升級(jí)啟動(dòng)指令之前進(jìn)一步包括主板判斷FPGA升級(jí)失敗次數(shù)是否小于預(yù)設(shè)最大次數(shù),若是,重新向FPGA 發(fā)送升級(jí)啟動(dòng)指令;否則,向網(wǎng)管上報(bào)告警。
      11、 如權(quán)利要求7或8所述的方法,其特征在于,預(yù)先在閃存中保存?zhèn)浞?版本的配置數(shù)據(jù);所述FPGA根據(jù)CPLD產(chǎn)生的一組控制信號(hào)時(shí)序從閃存讀取升級(jí)數(shù)據(jù)進(jìn)一 步包括FPGA發(fā)現(xiàn)從閃存讀取升級(jí)數(shù)據(jù)失敗,則從閃存中讀取備份版本的配置數(shù) 據(jù)完成配置。
      全文摘要
      本發(fā)明公開(kāi)了遠(yuǎn)程升級(jí)現(xiàn)場(chǎng)可編程門(mén)陣列的系統(tǒng)、接口卡及方法。系統(tǒng)包括主板和接口卡,且,接口卡包括FPGA、閃存和CPLD,其中主板,將遠(yuǎn)程網(wǎng)管發(fā)來(lái)的升級(jí)數(shù)據(jù)發(fā)送給FPGA,并在接收到遠(yuǎn)程網(wǎng)管發(fā)來(lái)的升級(jí)指令后,向FPGA發(fā)送升級(jí)啟動(dòng)指令;FPGA,將主板發(fā)來(lái)的升級(jí)數(shù)據(jù)寫(xiě)入閃存,接收主板發(fā)來(lái)的升級(jí)啟動(dòng)指令,向CPLD輸出啟動(dòng)信號(hào);根據(jù)CPLD輸入的控制信號(hào)時(shí)序,從閃存讀取升級(jí)數(shù)據(jù)完成配置;CPLD,接收FPGA發(fā)來(lái)的啟動(dòng)信號(hào),向FPGA輸出一組控制信號(hào)時(shí)序。本發(fā)明降低了接口卡的設(shè)計(jì)成本。
      文檔編號(hào)G06F9/445GK101420328SQ20081022797
      公開(kāi)日2009年4月29日 申請(qǐng)日期2008年12月3日 優(yōu)先權(quán)日2008年12月3日
      發(fā)明者謝世成, 趙恒卓 申請(qǐng)人:杭州華三通信技術(shù)有限公司
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1