《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 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網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美freesex8一10精品| 欧美午夜国产| 亚洲综合色噜噜狠狠| 亚洲久久视频| 亚洲老司机av| 日韩午夜激情电影| 日韩视频一区二区三区| 亚洲精品国产精品乱码不99按摩| 久久黄色网页| 久久黄色级2电影| 久久国产精品免费一区| 久久精品99无色码中文字幕| 亚洲第一区在线| 亚洲国产成人在线播放| 亚洲国产精品ⅴa在线观看| 久久精品国产91精品亚洲| 久久激情五月激情| 亚洲精品123区| 亚洲精品一区在线观看香蕉| 亚洲免费激情| 亚洲网站视频福利| 亚洲欧美激情一区| 欧美在线视频免费| 久久超碰97中文字幕| 久久综合给合| 欧美国产视频在线| 欧美日韩另类在线| 国产精品久久久久久久久久尿 | 欧美成人免费网| 欧美激情综合五月色丁香| 欧美日本国产一区| 国产精品伦理| 国外成人在线视频| 亚洲成色精品| 亚洲精选成人| 亚洲欧美日本国产有色| 久久精品人人爽| 99国内精品久久久久久久软件| 亚洲一区二区精品在线观看| 午夜精品久久久久久久久| 久久久久一区二区| 欧美国产一区二区| 国产精品国产a级| 狠狠色综合日日| 亚洲日本精品国产第一区| av不卡在线看| 欧美专区日韩专区| 99精品欧美一区| 欧美亚洲色图校园春色| 久久嫩草精品久久久精品一| 欧美久久久久| 国产伦精品一区二区三区视频孕妇 | 国产精品视频免费一区| 国内久久婷婷综合| 亚洲伦理一区| 久久成人一区二区| 亚洲视频在线观看免费| 久久久久国产一区二区三区四区| 欧美精品一区在线| 国产精品影片在线观看| 亚洲国产美女精品久久久久∴| 在线一区视频| 亚洲全部视频| 久久激情视频久久| 欧美另类久久久品| 国产亚洲欧洲997久久综合| 亚洲精品美女久久久久| 久久av二区| 亚洲欧美日韩人成在线播放| 你懂的亚洲视频| 国产毛片精品国产一区二区三区| 亚洲国产专区校园欧美| 亚洲欧美日韩系列| 一区二区激情视频| 久久综合影音| 国产精品一卡二卡| 亚洲日本一区二区三区| 欧美呦呦网站| 午夜性色一区二区三区免费视频 | 国产欧美精品日韩| 亚洲精品美女在线观看播放| 久久精品国产精品亚洲| 午夜精品久久久99热福利| 欧美激情一区二区三区在线视频观看| 国产欧美高清| 一区二区三区国产盗摄| 亚洲韩国青草视频| 久久精品青青大伊人av| 国产精品久久久久9999高清| 亚洲精品欧洲精品| 亚洲欧洲日本国产| 久久久亚洲精品一区二区三区| 国产精品久久久久久久久久久久| 亚洲日本va在线观看| 亚洲欧洲精品一区二区三区不卡| 久久久久久久97| 国产欧美欧美| 亚洲一卡二卡三卡四卡五卡| 一区二区三区四区精品| 欧美va亚洲va国产综合| 激情国产一区| 欧美中文字幕在线视频| 久久av一区二区三区| 国产精品久久久久久久久动漫| 日韩视频在线免费| 一区二区三区日韩欧美精品| 欧美精品123区| 1000部国产精品成人观看| 欧美一区二区三区电影在线观看| 亚洲欧美在线高清| 国产精品成人一区二区网站软件 | 国产精品国产一区二区| 99精品国产福利在线观看免费| 99国内精品久久久久久久软件| 欧美成人精品一区二区三区| 在线看日韩欧美| 久久激情一区| 米奇777在线欧美播放| 激情成人综合| 亚洲国产精品一区制服丝袜| 久久久久在线| 激情久久影院| 亚洲国产高清高潮精品美女| 美女亚洲精品| 亚洲黄色精品| 在线中文字幕一区| 欧美日韩中文字幕在线| a4yy欧美一区二区三区| 亚洲欧美日韩精品久久奇米色影视| 欧美性大战久久久久久久蜜臀| 一本色道久久综合亚洲精品高清 | 欧美激情一区在线| 亚洲精品自在在线观看| 亚洲一区二区在| 国产精品婷婷| 久久大逼视频| 欧美99在线视频观看| 最新成人在线| 中文一区在线| 国产精品亚洲欧美| 欧美在线关看| 欧美77777| 一区二区三区久久精品| 香蕉av777xxx色综合一区| 国产美女搞久久| 亚洲国产欧美在线人成| 欧美成人综合| 99精品视频免费| 久久国产婷婷国产香蕉| 韩国久久久久| 99国产成+人+综合+亚洲欧美| 欧美天堂亚洲电影院在线播放 | 久久久久久久一区二区三区| 影音先锋中文字幕一区二区| 日韩亚洲欧美成人| 国产精品成人va在线观看| 欧美一进一出视频| 欧美成人一区二区三区片免费| 99热在线精品观看| 久久精品国产免费观看| 亚洲国产精品一区制服丝袜| 亚洲综合色自拍一区| 狠狠色香婷婷久久亚洲精品| 日韩亚洲欧美一区二区三区| 国产精品亚发布| 亚洲欧洲在线视频| 国产精品欧美久久久久无广告| 久久精品噜噜噜成人av农村| 欧美精品色一区二区三区| 亚洲免费在线播放| 欧美成人精品在线| 亚洲男人的天堂在线观看| 欧美成年人网站| 亚洲专区一区| 欧美激情久久久| 午夜精品网站| 欧美日韩国语| 久久精品国产亚洲一区二区| 欧美日韩一二三四五区| 欧美自拍偷拍午夜视频| 欧美日韩一区二区在线视频 | 一区二区三区鲁丝不卡| 久久九九99视频| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美亚洲视频在线观看| 亚洲国产精品第一区二区| 亚洲资源在线观看| 亚洲第一网站| 久久久www免费人成黑人精品 | 国产在线精品二区| 亚洲一区成人| 亚洲国产中文字幕在线观看| 欧美影院在线| 99国产精品自拍| 麻豆精品视频在线观看| 亚洲主播在线| 欧美日韩视频在线一区二区| 亚洲国产综合在线看不卡| 国产伦精品一区二区三区免费 | 欧美色精品在线视频|