潘興武,呂志強
(1. 電子科技大學自動化工程學院 成都 611731; 2. 中國海洋石油公司 天津 塘沽區 300452)
可穿戴計算機系統應能提供多樣化的信息處理能力和多種應用模式以適應各種任務需求。然而,可穿戴計算機系統受人機工學、可穿戴性和現有技術水平的制約,所能提供的系統資源(如計算性能、存儲性能、通訊端口、電源等)十分有限,采用動態配置功能模塊的方式,可使可穿戴計算機以有限的系統資源支持多種應用模式(如圖像捕獲、語音識別、GPS和GIS等),以滿足多樣化的需求??纱┐饔嬎銠C采用可動態加載模塊化的外設結構,當不同任務需要采用不同功能模塊時才進行動態加載,任務完成以后及時卸載,釋放系統資源,以滿足其他的功能模塊對系統資源的需求,可保證任務的正常運行。
現場可編程門陣列(field programmable gate array,FPGA)是目前應用最廣泛的通用可重構器件,本文介紹目前使用最廣泛的FPGA廠商Xilinx的基于查找表結構的FPGA。
Xilinx公司的FPGA是基于可編程互聯連接的可配置邏輯塊(CLB)矩陣的可編程半導體器件,它整合了常用功能(如RAM、時鐘管理和DSP)硬塊[1]。FPGA的基本結構如圖1所示,它的基本組成如下:
(1) 可配置邏輯塊(CLB)。CLB是FPGA內的基本邏輯單元,包含一個由4或6個輸入、一些選型電路(多路復用器等)和觸發器組成的可配置開關矩陣。
(2) SelectIO(IOB)。FPGA支持多達24類I/O標準,FPGA內的I/O按組分類,每組都能獨立支持不同的I/O標準,實現了I/O支持的靈活性。
(3) 存儲器。大多數FPGA均提供嵌入式Block RAM存儲器,可以在設計中實現片上存儲器。Xilinx FPGA在36 kb塊中提供高達10 Mb的片上存儲器,支持真正的雙端口操作。
(4) 時鐘管理。大多數FPGA均提供數字時鐘管理。Xilinx推出的最先進的FPGA提供數字時鐘管理和相位環路鎖定。相位環路鎖定夠提供精確的時鐘綜合,且能夠降低抖動和實現過濾功能。

圖1 FPGA結構簡圖
可重構計算(reconfigurable computing,RC)[2]簡單來說就是對結構固定的硬件計算平臺,根據不同的應用進行配置,并在輔助設備(包括外圍控制硬件和軟件)的協同下完成相應的計算任務。在通用機器平臺上,采用可重構計算器件對部分計算進行加速,構建一個完整的可重構計算系統,使之能夠用傳統的方法完成數據密集型的應用任務。
在系統加電運行過程中,通過配置控制邏輯主動加載FPGA的配置文件,可以實現FPGA的重構,但需要中斷系統的運行。而對于Xilinx公司提供的部分可重構功能的Virtex系列FPGA,則可以在不中斷系統運行的基礎上更新FPGA的部分邏輯,具有更高的靈活性和更好的性能。
在部分動態可重構中,用戶首先按照模塊化設計方法,將整個設計分解為固定模塊部分和可重構模塊部分。然后分別對固定模塊和可重構模塊進行設計綜合,根據應用需求生成一個缺省全局配置比特流文件,同時生成所有可重構模塊的部分配置比特流文件。初始配置過程中選擇加載FPGA的缺省全局配置文件,在動態部分可重構過程中,可根據用戶命令選擇加載對應的可重構模塊配置文件[3]。
基于可穿戴機的應用,本文給出了一種系統的總體硬件結構框圖,如圖2所示。
可穿戴機的硬件部分是基于Xilinx FPGA開發板設計的,它是一個完整的嵌入式系統。硬件平臺的核心為FPGA內部的處理器PowerPC405,通過CoreConnect總線結構與各種外設IP連接,其中有音頻視頻接口、藍牙模塊、存儲模塊以及USB接口模塊等。其原型平臺如圖3所示。

圖2 系統硬件體系結構

圖3 原型平臺
在該原型平臺基礎上,本文通過實驗來驗證局部動態重構的可行性。該實驗基于Xilinx的模塊化設計方法,目的是實現一個能夠使用ICAP來動態配置FPGA的設計,使其在LED偏移的同時分別播放音頻和顯示圖片或視頻。其主要設計流程如圖4所示。

圖4 可重構系統開發流程
系統總體結構框架圖5所示。系統包含了兩個PRR(局部重構區域),其中有兩個重構模塊(RM)。本文通過編寫應用程序可以實現LED的左移和右移,以及音頻播放和圖片視頻顯示。

圖5 系統總體框架
局部重構設計與實現的流程分為以下步驟:
1) 嵌入式系統子模塊的設計。系統子模塊由圖5中的所有外設模塊組成。該模塊是重構設計中的固定邏輯模塊,在重構過程中執行重構的控制操作,并負責對OPB總線IP模塊的測試。所有信息都通過RS232傳輸給PC,并通過PC顯示信息。
(1) 該子模塊由EDK10.1i建立,在工程建立界面選擇PowerPC處理器,外設選擇RS232_Uart(115200),SysAce_CompactFlash,Momery選64 K。要完成可重構的設計還需要添加幾個外設IP核gpio、hw icap、ac97以及plb_tft_cntlr_ref,并適當修改一些端口和地址。
(2) 在EDK的Software Platform setting中將xilfatfs庫文件選上。
(3) 添加各IP核的驅動程序。
(4) 添加應用程序,并編譯,即可完成嵌入式系統子模塊的設計[4]。
2) 設計輸入與綜合。用硬件描述語言設計頂層模塊,并在頂層模塊中例化子系統模塊(包括靜態模塊與可重構模塊),最后綜合實現各個模塊。模塊設計流程可參考ISE10.1i軟件開發平臺。綜合頂層模塊與子系統模塊之后,將生成網表文件,這是下一步研究將涉及的內容[5]。
3) 布局布線。布局布線是在PlanAhead軟件中進行的,用上一步生成的網表文件以及編寫的用戶約束文件,具體操作步驟參見其用戶文檔。其中頂層模塊、靜態模塊和動態可重構模塊均由Busmacro(總線宏)連接,總線宏是重構模塊和其他模塊之間信號的固定通道,模塊間除時鐘外的所有信號都必須通過總線宏相連,總線宏的結構如圖6所示。將在ISE軟件中生成的網表文件導入PlanAhead中,并添加總線宏文件、全局時鐘。最后分別對各個模塊進行編譯。

圖6 總線宏的物理結構
4) 下載驗證。PowerPC將存儲于CF卡中的音頻、視頻、圖片信息緩存于DDR中,然后用Speaker播放音頻,通過CRT或TFT顯示視頻和圖片。使用EDK Shell工具,通過其命令行方式將硬件BIT文件轉化成ACE文件;將生成的靜態模塊和兩個可重構模塊的ACE文件拷到CF卡的相應分區,把CF卡插到Xilinx開發板上,上電并將PC上的超級終端打開,通過滑動開關選擇不同的組合,可以看到板上的LED在偏移,左移時伴隨有音樂響起,右移時CRT以幻燈片的形式顯示圖片,超級終端上顯示應用程序中指定的輸出字符,說明實驗成功。
本文提出了一種基于可穿戴機的具有動態重構功能的模塊化硬件模塊原型,實現了局部重構技術在可穿戴機中的應用,靈活利用了FPGA的硬件資源,節約了成本,是一種新型的硬件設計方法。
[1] POON A S Y. An energy-efficient reconfigurable baseband processor for w ireless communications[J]. IEEE Transactions on VLSI Systems, 2007, 12(3): 319-327.
[2] COMPTON K, HAUCK S. Reconfigurable computing: A survey of systems and software[J]. ACM Computing Surveys, 2002, 34(2): 171-210.
[3] 李仁發, 周祖德. 可重構計算的硬件結構[J]. 計算機研究與發展, 2003, 40(3): 500-506.
LI Ren-fa, ZHOU Zu-de. Hardware structure of reconfiguration[J]. Computer Research and Develop, 2003,40(3): 500-506.
[4] 楊浩強. 基于EDK的FPGA嵌入式系統開發[M]. 北京:機械工業出版社, 2008.
YANG Hao-qiang. The FPGA embedded system develop base on EDK[M]. Beijing: Mechanical Industry Press, 2008.
[5] 田 耘, 徐文波, 胡 彬, 等. Xilinx ISE design suite 10.x FPGA開發指南——邏輯設計篇[M]. 北京: 人民郵電出版社, 2008.
TIAN Yun, XU Wen-bo, HU Bin, et al. Xilinx ISE design suite 10.x FPGA developer's guide. logical design articles[M]. Beijing: Posts & Telecom Press, 2008.
編 輯 黃 莘