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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 采用VC++程序的FPGA重配置設(shè)計(jì)方案

          采用VC++程序的FPGA重配置設(shè)計(jì)方案

          作者: 時(shí)間:2010-04-21 來源:網(wǎng)絡(luò) 收藏

          應(yīng)用可以通過DeviceI/OControl ( )函數(shù)和WDM進(jìn)行通信,DeviceI/OControl ( )既可以讀數(shù)據(jù),也可以寫數(shù)據(jù),常用于數(shù)據(jù)量較小的情況下。在軟件中,發(fā)送數(shù)據(jù)可通過調(diào)用DeviceI/OControl()完成。根據(jù)硬件要求,每次可下發(fā)1022個(gè)數(shù)據(jù)到cyclone (即循環(huán)發(fā)LONG型數(shù)據(jù)511次),然后由cyclone給DSP一個(gè)中斷信號(hào),DSP接到中斷信號(hào)后,即進(jìn)入中斷,開始接收數(shù)據(jù)。當(dāng)應(yīng)用調(diào)用發(fā)送數(shù)據(jù)函數(shù)時(shí),可先確定要發(fā)送的配置數(shù)據(jù)大小,再計(jì)算發(fā)送的次數(shù)。為了盡可能的減小發(fā)送時(shí)間,有效完成數(shù)據(jù)的發(fā)送與配置,應(yīng)在軟件中建立與底層硬件的握手聯(lián)系。用戶每發(fā)送1022個(gè)數(shù)據(jù)便進(jìn)入等待狀態(tài),在等待期間,DSP可把接收到的數(shù)據(jù)轉(zhuǎn)化為EPCS所需要的配置數(shù)據(jù)流。當(dāng)DSP處理完這段數(shù)據(jù)后,就給上層用戶發(fā)送一個(gè)握手信號(hào),用戶接收到握手信號(hào),便進(jìn)入下一個(gè)1022的發(fā)送,如果最后一次發(fā)送的數(shù)據(jù)不夠1022個(gè),則用0xFFFF補(bǔ)足1022個(gè)數(shù)據(jù),如此循環(huán)處理,直到數(shù)據(jù)發(fā)送完畢。發(fā)送完畢后,再給硬件繼續(xù)發(fā)送一個(gè)配置命令,DSP接到該命令后,又開始對(duì)cyclone進(jìn)行配置,從而完成整個(gè)配置過程。圖4和圖5分別是配置數(shù)據(jù)和發(fā)送數(shù)據(jù)的軟件工作流程。



          圖6為上位機(jī)配置控制界面,圖中給出了2片配置芯片的配置過程,這是Visual C++和NIMeasurement Studio聯(lián)合編程方式的標(biāo)準(zhǔn)用戶界面。其中Visual C++提供了友好的界面及用戶熟悉的Windows風(fēng)格界面,并可以調(diào)用CVI中提供的控件庫和庫函數(shù)。

          5 結(jié)束語

          本文給出了一種基于++程序的可重配置的實(shí)現(xiàn),該在配置過程中,用戶可以通過調(diào)用自己的邏輯配置文件和程序來完成處理轉(zhuǎn)換,并控制下載,從而實(shí)現(xiàn)用戶系統(tǒng)的在系統(tǒng)編程。該方法可有效提高系統(tǒng)配置的效率,并為產(chǎn)品的升級(jí)、重構(gòu),以及用戶產(chǎn)品二次開發(fā)提供了良好手段。此外,借助互聯(lián)網(wǎng)技術(shù),本還可以支持遠(yuǎn)程下載功能。

          上一頁 1 2 3 下一頁

          評(píng)論


          相關(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); })();