《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > ARM設計的FPGA可重構配置方法的實現及應用
ARM設計的FPGA可重構配置方法的實現及應用
EEworld
EEworld
摘要: 摘要:文中詳述了FPGA被動串行配置方式的時序,給出配置流程圖及實現的程序代碼,并通過實例驗證了該方法的優越性...
Abstract:
Key words :

    隨著半導體工藝技術的迅猛發展,現場可編程邏輯器件FPGA的集成度迅速提高,已達到百萬門量級,與此同時,FPGA中的邏輯資源也日益豐富,使得基于FPGA的片上系統設計成為可能.基于FPGA的片上系統設計因其具有開發周期短,設計成本低,軟硬件可編程,系統設計靈活、可裁減、可擴充、可升級等優點正在成為電子系統設計的研究熱點,且已經在通訊、工控等領域得到實際應用.

    目前FPGA從實現技術上進行分類,可以分為基于查找表(LuT,k—up table)技術,SRAM工藝的FPGA、基于nash技術的FPGA和基于反熔絲(Anti—fuse)技術的FPGA,而使用最多的還是基于SRAM工藝的FPGA,如Altem的Cycl0ne和S tix系列、xilin)【的Spanan和Virtex系列.基于SRAM 的FPGA片內帶有存儲配置位流的sRAM,上電時,將存儲在專用配置芯片中的配置信息加載到FPGA中,從而實現一定的邏輯功能,掉電時片內SRAM中的配置數據遺失,需要下一次加電時重新加載配置.這種片內易失存儲器存儲配置數據的結構,使得FPGA可以在線動態的對其sRAM中的配置數據進行更新,從而實現電路邏輯功能動態改變.系統可重構主要就是利用基于sRAM的FPGA這種動態重配置特性才得以實現的,下面就以Altem公司Cyclone II系列FPGA分析其配置方式及其可重構應用.

1 可重構配置方法

    根據FPGA在配置過程中的角色可把cyclone II系列FPGA的配置方式分為三種:FPGA主動串行(As)方式、FPGA被動串行(PS)方式和JATG方式.不同配置模式通過配置模式選擇管腳MsEL[1:0]進行選擇,其中MsEL[1:0]=o0時選擇As模式,MsEL[1:O]=01時選擇PS模式,對于某些串行配置器件當MsEL[1:0]=l0時為快速AS模式,配置速度比PS模式快一倍.Cyclone II系列FPGA支持配置數據自解壓,將壓縮的配置數據存儲在配置器件或其它存儲器中,配置時傳送壓縮的位流數據到FPGA中,FPGA可實時的解壓縮并對內部sRAM進行編程,配置數據的壓縮比例可達35%-5O% ,可有效節省配置存儲空間.

    在As方式下,由FPGA主動輸出控制和同步信號給專用串行配置芯片,配置芯片接收到配置命令后,就開始將配置數據串行的發送至FPGA,完成配置工作.目前常用的專用串行配置芯片為容量為4 Mb的EPCS4和16 Mb的EPcS16等.AS配置模式主要用到四個信號:串行數據輸入DcLK、控制信號輸入AsDI、片選信號ncs和串行數據輸出DATA.

    在PS方式下,由系統中其它設備發起配置過程,FPGA在配置過程中只輸出應答信號,發起控制配置過程的設備可以是處理器、Altem EPC系列配置芯片、CPLD等功能設備.在下一小節將對PS配置方式做詳細的介紹.JTAG調試接口已經作為一個標準接口集成在芯片內,主要用于芯片的測試,cycl0ne II系列FPGA都支持JTAG方式對FPGA進行配置,JrrAG方式具有比其它配置方式都高的優先級.JrI'AG接口定義了四個標準信H號:

● rI℃K測試時鐘,各種信號都需要與測試時鐘同步;

● TDI測試數據輸入,測試數據串行輸入,數據在TCK上升沿傳送;

● TDO測試數據輸出,測試數據串行輸出,數據在TCK下降沿傳送;

●TMs測試模式選擇,決定JTAG電路內部TAP控制器狀態機的變化.

2 基于ARM的配置方法及實現

2.1 PS配置原理

     如圖l所示,利用s3c2410x作為主控制器采用被動串行方式對EP2c20內部邏輯進行重構.FPGA的PS配置方式是比較常用的一種配置方式,可以有效實現FPGA的在線配置,其基本流程為:在系統中將FPGA被動配置方式配置接口與ARM處理器的IO管腳相連,在處理器端通過軟件控制相應管腳的高低電平將數據串行的發送到FPGA中.重構程序運行在ARM處理器中作為實時系統的一個任務,當需要重配FPcA內部邏輯時,調用相應任務,配置完成后,刪除當前任務即可,因此,可將預先建立的配置文件庫存儲到ARM的nash中,由ARM處理器中運行的配置程序來完成動態重構任務。FPGA與Ps配置方式有關的管腳功能如表l所示:

 

    整個配置過程幾個關鍵信號的時序圖如圖2所示,配置過程可以分為復位、配置和初始化三個階段:

在復位階段,微處理器首先在nc0NFIG信號線上產生一個寬度大于8 s的負脈沖,然后開始檢測nsTATus信號的狀態.FPGA檢測到ncONFIG信號的下降沿后會迫使nsTATus和cONF—DONE信號拉低,使FPGA處于復位狀態,當ncONFIG變為高電平時,FPGA退出復位狀態,釋放漏級開路的nSTATUS管腳,nSTATuS在外部需要被l0 K的上拉電阻拉高,nSTATUS管腳變為高電平后,FPGA即進人配置階段,此時,FPGA已做好了接收配置數據的準備.

    FPGA的nsTATuS管腳變高后,延時5 s左右,在DCLK的上升沿FPGA即可從DA L0管腳串行的接收配置數據,配置數據按低位在先高位在后的順序從數據線上送出.當所有數據都接收完后釋放漏級開路的CONFIG— DONE管腳,CONFIG—DONE管腳在外部需要被10 K的上拉電阻拉高,CONFIG—DONE管腳由低到高的跳變表明配置階段結束,FPGA進入初始化階段.如果在配置過程中出現錯誤,則n rATuS管腳將輸出低電平,FPGA在內部自動復位,處理器可以通過查詢ns1IATuS管腳狀態判斷在配置過程中是否有錯誤發生,如果nsTATuS管腳在配置過程中變低則表明有錯誤發生,如果在軟件中設置了錯誤發生后自動重新開始配置選項則FPcA會延時一段時間后釋放nsTATuS,此時nsTATuS被外部上拉電阻拉高,CPu在nsTA—Tus上檢測到一個由低到高的跳變后重新開始配置.若軟件中未設置“錯誤發生后自動重新開始配置”選項則需要CPu首先將nCONFIC管腳置低再拉高以開始重新配置.

    在初始化階段,初始化時鐘可以是FPGA內部時鐘或外部由CLKusR管腳提供的時鐘,本例使用了FPGA內部時鐘,FPGA將為初始化提供時鐘,這樣,初始化階段不再需要外部時鐘.初始化階段完成后INIT—DONE管腳變為高電平,指示FPGA成功進人用戶模式,配置過程結束.需要注意的是,若此時CONF—DONE或INIT_DONE未變為高電平,則表明此次配置過程不成功,需要cPu重新進行配置.

2.2 配置程序設計

   下面是完整的重構程序及流程圖(圖3所示),作為s3c24lOx ARM處理器 μC/OS—II實時操作系統的一個任務運行,但在工程應用中要結合實際情況做適當修改.

基于μC/OS—II配置程序:

U8Fpga~DownLoad(v0id)

{U8 Bootaddr;

U32 CountNum =O柏:

u8 FpgaBu如;

U16 i:

Bo0taddT:(u8 )(O】(33ooooo0);/ 配置數據起始地址 /

SeI— Datao(O);

seLnCONFIG(0);/_將ncONFIG置低電平 /

set— DCLK(O);

hude1ay(10);/}延時1O /

if(Re們一nSTATUS)

{prin (”err0r:nSTATuSis 1 1”);

retum O;}

Set— nC0NFIG(1);

while(!Read—nsTATUS);

hudelay(5);

p nd(”十co gIlre FPGA.-);

while(c0untNum <=O)(24294)/}串行配置數據 /

{FpgaBu任er= (Bo0t&ddT+c0un um);

if(!(CountNum%1O24))pdnd(”.”);

f0r(._O;i<8;i++)

{Set—Data0(FpgaBu丘 腳 1);

hudelay(1);

seLDCLK(O);

FpgaBu艉r> > = 1;

if(!ReaⅡ一ns1、ATUS)

{ nEf(”\n、卜C0 gure Error:nsTATus is 0 1、n );

ren】m O;}

Set— DCLK(1);

}

C0untNum + + :

}

SeI— Datao(O);

S eI— DCLK(O);

if(!Reau—nsTATuS)

 

{p ntf(”、n\r—Configure Ermr:nsrATus is O!、n、r );

retum O;}}

else if(Read—nC0NF—Done)

{p ntf(”\n\卜-Co gure success! 、n );}

fnr(i=O;i(5O;i++)/ 初始化 /

{Set—DcLK(1);

hudeIay(1);

Set— DCLK(O);

hude1.dy(1);} 、

if(!Read—nC0NF—D0ne)

{printf(”、r\n—configure En r:nCO F—Done is 0 1”);

retum 0:}

retum l:

{

3 可重構配置應用

    結合上述可重構配置分析,我們利用了FPGA可重構特性,實現模塊化機器人控制器的設計.模塊化機器人結構復雜,控制電機數量多,而且針對不同構形控制策略也有差別,如四自由度串聯式機器手構形和全向移動小車構形(圖4所示)從控制策略到控制電機數量都有很大的不同,這就要求控制器可以根據不同構形動態的改變控制策略,也即控制器的可重構.為此,在模塊化機器人可重構控制模塊結構設計中,提出基于ARM和FPGA的動態可重構的模塊化機器人控制系統方案,充分利用嵌入式ARM核微處理器高性能、低功耗、資源豐富等方面的性能和FPGA內部邏輯可重構的特性,由主處理器根據機器人當前構形選擇不同的控制策略并對FPGA內部邏輯進行動態重配,以適應不同構形及應用的需要.結構設計框圖如圖5所示。

 

    ARM模塊選用s3c241Ox運行 C/OS—II實時操作系統,負責運行控制軟件,完成模塊化機器人運動規劃,實時監控系統運行狀態,實現人機交互功能及對FPGA內部邏輯實時重構.FPGA內部運行軟核處理器,負責與模塊化機器人運動控制相關的任務,如舵機控制、直流電機控制、系統IO控制、傳感器數據采集等任務.

    對FPGA配置采用上述基于ARM的PS配置方法,平臺充分利用了FPcA內部邏輯可重構的特性,可組成多種不同構形,不同構形具有不同的物理結構和控制方式,以滿足不同任務需求.其重構方法采用:

(1)根據具體構形規劃系統硬件資源種類,如構形需要的直流電機數量、舵機數量、系統I/,O數量以及各種傳感器的數目.

(2)根據硬件資源種類修改FPcA內部邏輯,實現硬件層次的“重構”.

(3)根據FPGA邏輯的變化,進行軟件的開發,實現軟件層次的“重構”.

(4)將FPGA配置文件下載到ARM的存儲器中,系統上電后,ARM結合需求通過讀取相應存儲區的配

置文件對FPGA進行配置,實現控制系統的動態重構.

經過實驗驗證,利用ARM的實時處理功能,對FPGA內部邏輯進行動態重配,所設計的控制平臺可以滿足可重構配置的性能要求.

4 結語

文中給出了基于ARM的FPGA的Ps加載配置方案,該方法電路結構簡單、易于實現,充分利用ARM處理器功能強、速度快、應用廣的特點,在系統中可預先包含多個不同功能的配置文件,根據現場的需要進行相應的配置,實現在線更新FPGA功能,既節省了開發成本,又滿足了一些特殊的系統設計要求,也充分顯示出FPGA現場升級、靈活運用的設計理念,方案的提出,對嵌人式數字系統設計具有相當的借鑒意義.

 

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产激情一区二区三区| 成人免费视频网站| 人人澡人人澡人人澡| 高级秘密俱乐部的娇妻| 在线观看人成网站深夜免费| 久久久久久久伊人电影| 欧美成人精品a∨在线观看 | 99re在线这里只有精品| 护士的诱惑电影| 亚洲av本道一区二区三区四区| 男人扒开女人下身添免费| 国产三级日产三级韩国三级| 在线天堂av影院| 夫妻免费无码V看片| 久久99亚洲网美利坚合众国| 欧美e片成人在线播放乱妇| 人人添人人妻人人爽夜欢视av | 国产精品第一页第一页| 一本大道一卡2卡三卡4卡麻豆| 日韩欧美一区二区三区在线| 亚洲欧美日韩色| 精品久久人人妻人人做精品| 国产免费小视频在线观看| 2019中文字幕无线乱码| 女人18毛片水最多| 中文精品北条麻妃中文| 日韩精品有码在线三上悠亚| 亚洲成人网在线播放| 真实的国产乱xxxx| 四虎成人精品在永久在线观看| 黄网站色视频免费观看45分钟| 国产精品无圣光一区二区| aaa国产一级毛片| 性高朝久久久久久久| 久久大香香蕉国产免费网站| 欧美三级在线看中文字幕| 亚洲色精品vr一区二区三区| 精品视频一区在线观看| 国产二级一片内射视频播放| 国产丝袜第一页| 国产精品偷伦视频免费观看了|