<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于CPLD的多DSP及FPGA遠程加載設(shè)計

          基于CPLD的多DSP及FPGA遠程加載設(shè)計

          作者: 時間:2012-06-15 來源:網(wǎng)絡(luò) 收藏


          2 遠程更新硬件實現(xiàn)
          遠程更新和加載就是系統(tǒng)具有從遠端通過下發(fā)指令或參數(shù)對處理模塊中存儲的應(yīng)用程序進行修改升級的功能,模塊內(nèi)部控制單元啟動加載模塊,完成模塊功能重構(gòu)。反映到硬件功能就是主控芯片要具備擦除、讀寫模塊內(nèi)存儲芯片的功能,可以控制模塊內(nèi)的各處理器及可編程器件重新加載運行新程序。數(shù)字處理模塊采用4顆芯片和1顆來完成系統(tǒng)的數(shù)據(jù)處理任務(wù),因此在系統(tǒng)升級時需要對4個處理器或部分處理器及FPCA的程序進行更新并重新加載。所以主控芯片要具備擦除、讀寫各和FPCA芯片掛接的FLASH芯片,并能對其完成程序加載。
          硬件設(shè)計時FLASH芯片采用了集中式設(shè)計,多個芯片和分段共享同一片大容量FLASH。共享存儲器有利于提高模塊可靠性、模塊小型化設(shè)計、有利于主控模塊對其操作控制,有效降低功能實現(xiàn)復(fù)雜度,也有利于擴充模塊功能。一般設(shè)計多采用掛接與之匹配的FLASH芯片,這些專用存儲芯片不但具備專用接口與FPGA匹配,而且內(nèi)部嵌入了FPCA信息,硬件設(shè)計時只需要將FPCA設(shè)計成主動加載模式即可。系統(tǒng)上電后FPGA將自動識別存儲器并完成程序加載,整個過程不需要外部干預(yù)。但對于通用存儲芯片來說FPGA是無法實現(xiàn)自動加載的。而且這種遠程控制也是要通過外部干預(yù)來實現(xiàn)的,所以FPGA只能設(shè)計為被動模式,通過主控模塊完成加載過程。而ALTERA公司專門研發(fā)了一款MAXⅡ系列的來實現(xiàn)StratixⅢ系列FPGA的加載管理硬件框圖如圖2所示。

          本文引用地址:http://www.ex-cimer.com/article/190244.htm

          b.JPG


          2.1 通用接口存儲器(CFI Flashl更新
          系統(tǒng)將更新數(shù)據(jù)從上位機下發(fā)至處理模塊。經(jīng)過解碼、識別系統(tǒng)更新要求。CPLD將啟動擦寫模塊,對CFI_Flash的相應(yīng)空間段進行數(shù)據(jù)擦除操作,同時將更新數(shù)據(jù)寫入存儲器中,實現(xiàn)系統(tǒng)程序升級更新。其流程框圖如圖3所示。

          c.JPG


          2.2 程序重構(gòu)
          當CPLD按照系統(tǒng)要求將CFI Flash中程序更新完畢后,就會自動喚醒加載模塊,對已更新的處理器或FPGA的程序進行重新加載。DSP的加載相對簡單,將DSP設(shè)計成主機口加載模式,設(shè)計框圖如圖4所示。由CPLD強行復(fù)位相應(yīng)DSP使其進入加載狀態(tài),然后從CFI_Flash中分別讀出各DSP的目標數(shù)據(jù),按照主機口加載時序?qū)懭隓SP的內(nèi)部靜態(tài)存儲區(qū),加載完畢再對DSP初始化控制寄存器進行設(shè)置,完成加載過程并喚醒各DSP重新運行新程序。完成模塊處理器的功能重構(gòu)工作。

          d.JPG



          關(guān)鍵詞: CPLD FPGA DSP 遠程加載

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();