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

圖6為上位機配置控制界面,圖中給出了2片配置芯片的配置過(guò)程,這是采用Visual C++和NIMeasurement Studio聯(lián)合編程方式的標準用戶(hù)界面。其中Visual C++提供了友好的界面及用戶(hù)熟悉的Windows風(fēng)格界面,并可以調用CVI中提供的控件庫和庫函數。
5 結束語(yǔ)
本文給出了一種基于VC++程序的FPGA可重配置的實(shí)現方案,該方案在配置過(guò)程中,用戶(hù)可以通過(guò)調用自己的邏輯配置文件和程序來(lái)完成處理轉換,并控制下載,從而實(shí)現用戶(hù)系統的FPGA在系統編程。該方法可有效提高系統配置的效率,并為產(chǎn)品的升級、重構,以及用戶(hù)產(chǎn)品二次開(kāi)發(fā)提供了良好手段。此外,借助互聯(lián)網(wǎng)技術(shù),本設計還可以支持遠程下載功能。
評論