杜尚濤 賀鵬超 余國強 曲翕
(西安微電子技術研究所 陜西省西安市 710054)
可重構技術是一種通過對電路結構可變的硬件進行配置,從而完成不同功能之間的靈活切換的新技術。使用可重構技術實現的系統(tǒng)兼具靈活性和高性能的優(yōu)勢,可以在兼顧系統(tǒng)性能的同時大大縮短產品研發(fā)周期,因此可重構技術具有重要的研究價值。
20 世紀80年代,Xilinx 公司推出了第一塊現場可編程門陣列[1](Field Programmable Gate Array, FPGA)。由于FPGA 具有可反復硬件編程的特點,即可以僅通過改變加載程序或加載方式實現內部硬件邏輯電路的改變,從而成為可重構技術理想的硬件搭載平臺。
可重構技術包括靜態(tài)可重構技術和動態(tài)可重構技術。靜態(tài)可重構技術是指在任務切換時需要在外部控制下對硬件重新進行配置,該方法配置前后在時間上任務是不連續(xù)的; 動態(tài)可重構技術則是指在系統(tǒng)運行時實時實現重構,配置前后任務在時間上是連續(xù)不間斷的。
動態(tài)可重構包括兩種:一種是動態(tài)全局重構,另一種是動態(tài)部分重構。動態(tài)全局重構即將FPGA 內部的邏輯電路全部進行重新配置,重新配置之后FPGA 內部原有的邏輯功能被新的邏輯功能代替,故該方法適合于配置邏輯功能比較獨立的不同功能的程序。動態(tài)局部重構則是在系統(tǒng)運行時只改變特定區(qū)域的邏輯電路,而其它非重構區(qū)域的邏輯電路還在正常運行,該方法從時分復用方面入手,只使用較少的硬件資源來實現快速局部重構。
Xilinx 公司的Virtex 系列FPGA 支持JTAG、ICAP 以及Select MAP 方式的動態(tài)重構。下面將以該系列FPGA 為例,介紹一種適用于地面設備的動態(tài)全局重構方案和一種適用于星載產品的重構設計方案。
圖1:Xilinx 公司Virtex-5 系列FPGA 配置模式
圖2:適用于地面設備的動態(tài)重構框圖
航天領域的產品設計中一般分為地面設備和星上產品。對于地面設備,其基本的需求特點為低成本、高靈活性、占用硬件資源少,下面針對地面設備的特點提出一種與其適應的基于FPGA 的動態(tài)全局重構設計方案。
以Xilinx 公司的Virtex-5 系列FPGA 為例,針對同樣的配置文件,選擇不同的配置模式,其配置時間與硬件設計方案均不同[2],圖1 為Xilinx 公司Virtex-5 系列FPGA 的配置模式。
FPGA 器件手冊中只有Master SelectMAP 和Slave SelectMAP 兩種方式支持并行配置的動態(tài)重構,而這兩種配置方式中只有Slave SelectMAP 方式支持數據壓縮功能[3]??紤]到并行配置可以提高配置速度、數據壓縮可以用來實現存儲較多的配置程序,該方案使用Xilinx 公司的XCF32P Flash PROM 在Slave SelectMAP 配置模式下配置FPGA,邏輯框圖如圖2 所示。
該方案的設計在邏輯功能上有4 種功能的配置位流文件,對應的配置位流文件命名為為HGJ1.bit、HGJ2.bit、HGJ3.bit 和HGJ4.bit。程序生成的位流文件需要使用Xilinx 公司的ISE 軟件轉換為.mcs 文件方可存儲于XCF32P 中。位流文件轉換成.mcs 文件的配置界面如圖3 所示,轉換過程分為5 個步驟:
(1)選擇Xilinx Flash/PROM 作為配置存儲器;
(2)配置存儲器類型選擇Platform Flash;
(3)PROM 容量大小選擇32Mbit;
(4)填寫文件的名稱,選擇存儲路徑;
(5)設置將要生成的配置文件的文件屬性,將文件格式設置為.mcs、勾選設計修訂版本選項、將版本數量設置為4、勾選配置數據壓縮選項。當配置完成之后,點擊OK,此時會自動彈出基于Platform Flash 的配置文件生成對話框,如圖4 所示,接著需要將不同種類的位流文件壓縮為一個.mcs 文件,操作步驟為:
(1)按順序添加不同的配置位流文件;
(2)生成可存儲于Platform Flash 中的.mcs 文件。此時生成的.mcs 文件即包含了4 種設計修訂版本的程序。生成完畢之后會顯示Generate Succeeded。
通過以上操作便完成了基于Platform Flash 的動態(tài)全局重構程序生成。如果需要對FPGA 程序進行重構,則可將FPGA 的M2-M0 配置為“110”(Slave SelectMAP 配置模式)然后通過設置RS[1:0]選擇需要的程序版本,最后觸發(fā)PROG_B 控制信號來實現FPGA 中不同程序的切換,從而完成FPGA 程序的動態(tài)全局重構。
某些設計中,由FPGA 控制的外設(比如AD、DA 和鎖相環(huán)等芯片)需要通過配置寄存器來完成其初始化和自檢操作,當初始化和自檢完成后該功能對應的邏輯就不再使用了。使用本方案的動態(tài)全局重構方法可以先通過一個配置程序完成初始化和自檢,然后再將FPGA 程序重構為實現具體應用功能的程序,這樣可以有效降低程序功耗和資源利用率,或者在資源不夠的情況下通過邏輯拆分來實現所需功能。
航天領域的星上產品在設計中需滿足高可靠性、抗單粒子翻轉的要求,在設計中不僅要從元器件質量等級、抗輻照指標、溫度適應性等方面考慮,而且也要從設計架構中考慮產品的可靠性問題。在星載宇航產品設計中由于任務需要經常會用到SRAM 型FPGA,而SRAM 型FPGA 容易受到單粒子翻轉的影響,所以需要在系統(tǒng)設計上提高其抗單粒子翻轉的能力,如回讀重構、刷新、三模冗余等。下面將從重構和刷新方面介紹一種適用于宇航產品的設計方案。該方案的FPGA 選型為JFM4VSX55RT(復旦微電子研究所的FPGA,對標Xilinx 公司的XC4VSX55),設計采用1 片JFMRS01RH 型刷新芯片配以2 片JFM29LV641RH 型NOR Flash、2 片XQ17V16 型PROM 來對FPGA 進行在軌重構和刷新操作。
JFMRS01RH 可用于SRAM 型FPGA 的回讀刷新,當回讀檢測到FPGA 發(fā)生單粒子翻轉時,可以采取重構的方式消除單粒子的影響,使系統(tǒng)恢復正常;也可定時刷新FPGA,削減單粒子的累積效應。在配置方式上支持SelectMap 并行模式或者Daisy Chain 模式,考慮到采用并行配置可提高配置速度,本方案設計為SelectMap 并行模式。實現方法如圖5。
如圖5 所示,使用2 片64M 的NOR FLASH 存儲位流,每片NOR FLASH 存儲2 份位流。2 片NOR FLASH 存儲的位流完全一致,在2 片NOR FLASH 上可實現4 份備份。使用時可通過UART 接口對NOR FLASH 進行在線重構,包括編程、全芯片擦除、扇區(qū)擦除、數據校驗、數據回讀操作。
當FLASH 中的位流數據發(fā)生翻轉,導致重構不成功或者位流解析錯誤,可自動切換到片內分區(qū)。如果片內的第二片分區(qū)也發(fā)生翻轉,那么會切換到備機,依此類推,如果備機的數據也發(fā)生翻轉導致重構不成功或者位流解析錯誤,將自動切換到XQ17V16 來加載程序。當前使用的存儲器和已經發(fā)生數據翻轉的存儲器可以通過遙測查詢,發(fā)生翻轉的存儲器將被全芯片擦除,然后重新進行編程。
圖3:基于Platform Flash 的配置文件格式轉化配置界面
圖4:基于Platform Flash 的配置文件生成界面
本方案已在多個星載任務中實現成功應用,通過將同一個程序文件進行5 份備份,當出現程序運行異常后,由控制芯片實現程序自動切換,從而保證了星上產品在的高可靠性、抗單粒子翻轉的要求。
本文針對基于FPGA 的動態(tài)可重構技術,提出了分別適用于地面設備和星上產品的兩種可重構方案,其中適用于地面設備的方案可滿足地面設備低成本、高靈活性、硬件資源少的需求,適用于星上產品的方案可滿足星上產品高可靠性、抗單粒子翻轉的需求。對于以上兩種方案已經在多個產品研發(fā)中進行了應用,并且產品功能性能穩(wěn)定可靠。隨著FPGA 的集成度和運行速度不斷提升,基于 FPGA 的動態(tài)可重構技術具有越來越高的研究價值。今后的研究主要可以從以下兩個方向來開展。
(1) FPGA 可重構系統(tǒng)的體系架構??芍貥嫾夹g的體系架構并非千篇一律,今后在系統(tǒng)體系架構研究層面還有很大的發(fā)展空間。
(2)研究基于FPGA 的可重構應用。通過研究和改進基于FPGA 的可重構技術,探索可重構技術可適用的新的應用領域,使基于FPGA 的可重構技術應用更加廣泛。
圖5:動態(tài)全局重構連接圖