新聞中心

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

一種基于VC++程序的FPGA重配置方案設(shè)計(jì)

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

  4 儀器驅(qū)動(dòng)函數(shù)的設(shè)計(jì)

  根據(jù)硬件設(shè)計(jì),儀器驅(qū)動(dòng)需將配置數(shù)據(jù)以長整型的形式發(fā)送,即32位。因?yàn)榕渲脭?shù)據(jù)的長度為16位,所以發(fā)送數(shù)據(jù)時(shí),每次要傳兩個(gè)數(shù),高16位和低16位分別放一個(gè)數(shù)。當(dāng)應(yīng)用程序打開.rpd文件時(shí),應(yīng)將其中配置數(shù)據(jù)流保存在數(shù)組ww[f]中,而反轉(zhuǎn)處理后得到的數(shù)據(jù)依然放在數(shù)組ww[f]中并覆蓋原來的數(shù)據(jù),然后根據(jù)公式(1)進(jìn)行組合處理,以得到最終要發(fā)送的32位數(shù)據(jù)并保存在長整型數(shù)組comdata[f]中。數(shù)組comdata[j]中的每個(gè)數(shù)據(jù)實(shí)際上包含兩個(gè)配置數(shù)據(jù),第一個(gè)數(shù)放在高16位,第二個(gè)數(shù)放在低16位,依次類推。確定好數(shù)據(jù)后,便可以調(diào)用動(dòng)態(tài)連接庫中的發(fā)送數(shù)據(jù)函數(shù)并發(fā)送給硬件。

  comdata[j]=(ww[i]24)∣(ww[i+1]16)∣(ww[i+2]8)∣ww[i+3](1)

  應(yīng)用程序可以通過DeviceI/OControl ( )函數(shù)和WDM進(jìn)行通信,DeviceI/OControl ( )既可以讀數(shù)據(jù),也可以寫數(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給一個(gè)中斷信號,接到中斷信號后,即進(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)在軟件設(shè)計(jì)中建立與底層硬件的握手聯(lián)系。用戶每發(fā)送1022個(gè)數(shù)據(jù)便進(jìn)入等待狀態(tài),在等待期間,可把接收到的數(shù)據(jù)轉(zhuǎn)化為EPCS所需要的配置數(shù)據(jù)流。當(dāng)DSP處理完這段數(shù)據(jù)后,就給上層用戶發(fā)送一個(gè)握手信號,用戶接收到握手信號,便進(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接到該命令后,又開始對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)品的升級、重構(gòu),以及用戶產(chǎn)品二次開發(fā)提供了良好手段。此外,借助互聯(lián)網(wǎng)技術(shù),本設(shè)計(jì)還可以支持遠(yuǎn)程下載功能。


上一頁 1 2 3 下一頁

關(guān)鍵詞: FPGA VC++ DSP CPCI CPLD

評論


相關(guān)推薦

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

關(guān)閉