《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > FPGA遠程配置在遠程實驗系統(tǒng)中的應用
FPGA遠程配置在遠程實驗系統(tǒng)中的應用
2016年微型機與應用第19期
馮建文,,王春
杭州電子科技大學 計算機應用所,,浙江 杭州 310018
摘要: 介紹了FPGA遠程實驗系統(tǒng)的組成、工作原理以及遠程配置,,著重介紹FPGA遠程實驗系統(tǒng)的遠程配置的原理及具體實現(xiàn),,即在ARM微控制器的主導下,通過以太網(wǎng)實現(xiàn)FPGA配置數(shù)據(jù)的傳輸和下載,,然后由ARM作為時序控制器,,通過FPGA的從串(slave serial)配置方式,完成FPGA的遠程配置,。在FPGA配置的同時,,通過研究配置管腳輸出的波形,來驗證FPGA從串配置模式下的配置原理,。
Abstract:
Key words :

  馮建文,,王春

  (杭州電子科技大學 計算機應用所,,浙江 杭州 310018)

       摘要:介紹了FPGA遠程實驗系統(tǒng)的組成,、工作原理以及遠程配置,,著重介紹FPGA遠程實驗系統(tǒng)的遠程配置的原理及具體實現(xiàn),,即在ARM微控制器的主導下,通過以太網(wǎng)實現(xiàn)FPGA配置數(shù)據(jù)的傳輸和下載,,然后由ARM作為時序控制器,,通過FPGA的從串(slave serial)配置方式,完成FPGA的遠程配置,。在FPGA配置的同時,,通過研究配置管腳輸出的波形,來驗證FPGA從串配置模式下的配置原理,。

  關鍵詞:FPGA,;遠程實驗系統(tǒng);遠程配置,;ARM

0引言

  近年來,,使用可編程器件 FPGA/CPLD 和 VHDL 進行硬件設計發(fā)展快速,,可編程邏輯器件逐漸取代了傳統(tǒng)通用的中、小規(guī)模集成電路而得到廣泛的應用,,并且隨著系統(tǒng)的復雜程度越來越高,,借助在電子系統(tǒng)的開發(fā)過程中具有重要作用的EDA(Electronic Design Automation)軟件,使得FPGA 成為數(shù)字邏輯電路設計,、計算機組成原理,、嵌入式系統(tǒng)等課程實驗教學的首選方式[1]。同時隨著嵌入式技術以及網(wǎng)絡技術的發(fā)展,,遠程控制也變得越來越容易實現(xiàn),,把遠程控制技術引入到FPGA實驗系統(tǒng)中來,利用FPGA可重復編程的特點,,實現(xiàn)FPGA實驗操作遠程執(zhí)行,,從而實現(xiàn)實驗設備的遠程共享和實驗設備的最大利用。

1FPGA工作原理及配置

  現(xiàn)場可編程門陣列(Field Programmable Gate Array,,F(xiàn)PGA)是在PAL,、GAL、CPLD等可編程器件的基礎上進一步發(fā)展的產物,。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現(xiàn)的,,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點[2],。以硬件描述語言(Verilog或VHDL)所完成的電路設計,,可以經過簡單的綜合與布局,快速燒錄至FPGA上進行測試,,是現(xiàn)代 IC設計驗證的技術主流,。

  FPGA利用小型查找表(16×1 RAM)來實現(xiàn)組合邏輯,每個查找表連接到一個D觸發(fā)器的輸入端,,觸發(fā)器再來驅動其他邏輯電路或驅動I/O,,由此構成了既可實現(xiàn)組合邏輯功能又可實現(xiàn)時序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊,。在FPGA正常工作時,,配置數(shù)據(jù)存儲在SRAM單元中,這個SRAM單元也被稱為配置存儲器(Configuration RAM),。由于SRAM是易失性的存儲器,,因此FPGA在上電之后,外部電路需要將配置數(shù)據(jù)重新載入到片內的配置RAM中[3],。FPGA的配置過程如下:外部電路將配置數(shù)據(jù)載入片內配置RAM中,;片內配置RAM中的配置數(shù)據(jù)用于控制FPGA內部可編程的內部邏輯、內部寄存器和I/O寄存器初始化,、I/O驅動器使能等,。配置完成后,,F(xiàn)PGA進入用戶模式。在掉電后,,F(xiàn)PGA又恢復成白片,,內部邏輯關系消失。

  FPGA一般有4種配置模式:從串模式(Slave Serial),、主串模式(Master Serial),、從并模式(Slave Parallel/SelectMap)以及邊界掃描模式(Boundary Scan)。配置模式的選擇一般由FPGA芯片上配置模式選擇引腳的輸入電平決定[4],。

  從串配置模式是指在進行配置時,,由外部控制器主導同步時鐘輸入,將配置數(shù)據(jù)一位一位地加載進FPGA,;主從配置模式則是在FPGA內部同步時鐘的作用下,,將配置數(shù)據(jù)從外部存儲器按位串行加載到FPGA中;從并模式則是將配置數(shù)據(jù)多位數(shù)據(jù)一起并行輸入,;而邊界掃描模式即JTAG配置模式,,JTAG模式在開發(fā)調試階段使用。

2基于ARM的遠程實驗系統(tǒng)

  基于ARM的遠程實驗系統(tǒng)主要功能是實現(xiàn)遠程FPGA的實驗操作,。用戶通過該系統(tǒng),,能夠在PC端登錄該實驗系統(tǒng),進行預約FPGA實驗,,同時能夠發(fā)送FPGA控制命令,,并且能夠得到實驗結果信息。系統(tǒng)結構如圖1所示,,主要分為3個模塊:PC客戶端,、服務器端和ARMFPGA模塊。PC客戶端為用戶提供遠程實驗操作接口,,服務器端則主要負責數(shù)據(jù)或命令的發(fā)送和接收,,而ARMFPGA模塊則是進行控制和執(zhí)行客戶端發(fā)來的命令,并向服務器返回實驗結果,。

圖像 001.png

  2.1PC客戶端

  客戶端的主要作用是提供用戶操作接口,,為用戶提供遠程操作ARM控制器的界面,,方便用戶控制FPGA的配置及相關的FPGA實驗操作,。客戶端的設計主要采用C/C++編程,,采用Socket編程模式進行配置數(shù)據(jù)的發(fā)送和配置結果數(shù)據(jù)的返回,。

  2.2服務器端

  服務器是基于FPGA實驗平臺的遠程實驗系統(tǒng)的核心,負責控制實驗系統(tǒng)的運行,。它負責FPGA實驗平臺的調度管理,,給實驗用戶(PC客戶端)分配空閑的實驗平臺,。并且需要能連接上百個ARM客戶端和PC客戶端,作為兩種客戶端之間的信息中轉站,。同時,,服務器還負責管理數(shù)據(jù)庫,及時進行學生信息,、FPGA平臺信息,、預約記錄和實驗記錄等信息的記錄和更新。

  2.3ARM客戶端

  ARM客戶端作為系統(tǒng)整體結構中的重要組成部分,,是與FPGA實驗平臺進行數(shù)據(jù)交互的唯一接口,,它主要實現(xiàn)如下功能:

  (1)連接服務器,,接收PC客戶端發(fā)來的指令信息,,還需接收存儲FPGA配置執(zhí)行文件。

 ?。?)解析指令,,調用程序完成指令。

 ?。?)實現(xiàn)FPGA動態(tài)配置,,把配置文件加載到FPGA運行。

 ?。?)連接PC客戶端,,實時將FPGA相關引腳的信息發(fā)送到PC客戶端。

 ?。?)實現(xiàn)對FPGA實驗平臺上開關,、按鍵的遠程控制操作。

3FPGA遠程配置的實現(xiàn)

  在本次實驗中,,選用ARM9開發(fā)板+FPGA實驗板來完成FPGA遠程配置的具體實現(xiàn),。其中ARM控制器采用以ARM9為處理器的單片機開發(fā)板。ARM9開發(fā)板支持網(wǎng)絡接口連接,,并且成功地移植了Linux 2.6.30內核操作系統(tǒng)以及相應的文件系統(tǒng),,為Socket網(wǎng)絡編程和ARM客戶端的軟件實現(xiàn)與執(zhí)行提供了良好的Linux環(huán)境。FPGA則使用為計算機組成原理所設計的FPGA實驗板卡,,該實驗板卡所用的FPGA芯片為Xilinx生產的Spartan-6系列芯片,,并將其專用的配置接口引出,方便后續(xù)的實驗操作,。

  3.1配置文件

  本設計所用的FPGA的配置數(shù)據(jù)格式為.bin格式,,是由Xilinx的FPGA設計工具ISE軟件產生的FPGA配置數(shù)據(jù)的一種格式,也是進行Spartan-6系列芯片進行從串配置的配置數(shù)據(jù)格式,。在PC客戶端可通過Socket編程配置引腳

圖像 002.png

  將文件由網(wǎng)絡傳送至ARM控制器客戶端,。

  3.2配置電路

  Spartan-6配置引腳如圖2所示,,各個引腳的功能如表1所示。表1FPGA配置引腳說明引腳名類型說明M[1:0]輸入模式選擇引腳,,決定FPGA的配置模式CCLK輸入/輸出除JTAG配置模式外其他配置模式的同步時鐘源DIN輸入串行配置數(shù)據(jù)輸入引腳,,同步于時鐘的上升沿DOUT輸出用于菊花鏈配置器件后面的器件配置數(shù)據(jù)的串行輸入DONE輸出高電平表示配置完成,低電平表示配置失敗INIT_B輸入/輸出在配置模式選擇完成前,,拉低該引腳電平表示延遲配置,;配置模式選擇完成后,該引腳的電平輸出表示配置有無發(fā)生CRC校驗錯誤:

  0=CRC error

  1=No CRC errorPROGRAM_B輸入低電平輸入使芯片復位

  3.3配置流程

  Spartan-6芯片的配置時序如圖3所示,,先給PROGRAM_B引腳一個低電平信號,,然后再恢復高電平,檢測INIT_B引腳電平信號,,如果其電平信號也隨著PROGRAM_B而變化,,則表明FPGA內部配置已經完成初始化,可以進行FPGA配置了,。接下來在ARM輸入到FPGA的DCLK引腳的信號的同步下,,按位加載配置數(shù)據(jù),直到加載完配置數(shù)據(jù),。當檢測到DONE引腳信號變?yōu)楦唠娖綍r,,表明FPGA已經完成配置,進入到工作狀態(tài)了,。其配置程序的流程圖如圖4所示,。

圖像 003.png

圖像 004.png

4實驗結果分析

  實驗時,將FPGA的配置引腳DIN,、CCLK,、INIT_B、DONE,、PROGRAM_B連接到ARM開發(fā)板的I/O引腳上,,同時注意ARM開發(fā)板和FPGA實驗板卡要共地,將ARM開發(fā)板接上網(wǎng)線,,供電并啟動后,,通過PC客戶端進行配置文件的傳輸和加載,當配置完成后返回客戶端“config done,!”則表示配置完成,。實驗結果演示如圖5所示。

圖像 005.png

  為了得到配置過程中DIN引腳和CCLK引腳的數(shù)據(jù),,在程序中進行了配置數(shù)據(jù)輸出,,并用示波器捕捉到這兩個引腳的輸出波形,,如圖6所示,。由圖可以看出,,在一個配置循環(huán)中,ARM控制器是按字節(jié)進行位傳輸?shù)?,每個字節(jié)8位數(shù)據(jù),,在每輸入一個時鐘過程中,輸入一位配置數(shù)據(jù),,直至加載完所有配置數(shù)據(jù),,完成FPGA的配置。

圖像 006.png

5結論

  本設計中采用兩個獨立模塊的連接來實現(xiàn)總體功能,,而且ARM控制器的一些操作命令是通過串口進行命令傳輸實現(xiàn)的,。在接下來的FPGA遠程實驗系統(tǒng)中,將完全通過單網(wǎng)線進行ARM所有操作命令的實現(xiàn),,并且不僅能完成FPGA的遠程配置,,還能完成FPGA的遠程實驗——遠端實、近端虛的遠程FPGA實驗,,即在客戶端電腦上完成界面上開關,、按鍵等操作,這些操作命令通過網(wǎng)線傳遞到ARM端,,控制FPGA相關引腳的輸入高低電平,,并返回相關引腳的輸出電平,在客戶端電腦上通過LED或數(shù)碼管來顯示該引腳電平的高低,。

  參考文獻

 ?。?] 丁偉, 肖鐵軍. 基于FPGA的通用實驗平臺的設計與實現(xiàn)[J]. 無線通信技術, 2013, 22(4):38-39.

  [2] 劉笑嫘, 何廣平. FPGA芯片的配置與下載[J]. 科技信息, 2011(15):109-109.

 ?。?] 高闖, 吳利華, 芳羅,等. 一種用于FPGA的可配置存儲器設計[J]. 固體電子學研究與進展, 2016,,36(1):67-67.

  [4] 陳曦, 沈佐峰. 一種可靠的FPGA動態(tài)配置方法及實現(xiàn)[J]. 通信技術, 2012, 45(3):105-107.


此內容為AET網(wǎng)站原創(chuàng),,未經授權禁止轉載,。