DFX 動態重構的概念和實現
- 背景介紹?
本文內容當前僅限于XILINX或者和XILINX具有相同結構的FPGA器件。
FPGA 技術提供了在現場進行編程和重新編程的靈活性,而無需通過重新制造流程來實現設計修改。動態功能交換(Dynamic Function eXchange, DFX)將這種靈活性提升到了一個新的層次,它允許通過加載動態配置文件(通常是部分 BIT 文件)來修改正在運行的 FPGA 設計。
在使用完整的 BIT 文件對 FPGA 進行初始配置之后,可以通過下載部分 BIT 文件來修改 FPGA 中的可重配置區域,而不會影響那些未被重新配置的區域中正在運行的應用程序的完整性。
FPGA(現場可編程門陣列)局部重構技術,特別是在衛星等空間應用中的使用,具有重要意義。這種技術允許在不重新制造硬件的情況下,通過更新部分FPGA配置來修改或優化其功能(更新整個FPGA bit 通常由于數據星地間傳輸帶寬的限制而受到制約)。以下是FPGA局部重構在衛星設備中的一些關鍵意義:
- 靈活性和適應性:衛星在發射后可能需要根據任務需求的變化進行調整,或者應對未預見的環境挑戰。局部重構使得衛星能夠動態地適應這些變化,而無需物理更換硬件。例如,如果發現某個傳感器的數據處理算法不夠高效,可以通過更新相應的FPGA區域來改進而無需發射新的衛星或者更新整個bit。
- 資源利用效率:不是所有的任務都需要同時執行,也不是所有的時間段內都需要相同的計算能力。通過局部重構,可以在不同的時間點為不同任務分配FPGA資源,從而更有效地利用有限的硬件資源。
- 維護與升級:在軌衛星的硬件一旦發射就很難進行物理上的維修或升級。FPGA局部重構允許遠程對衛星的功能進行軟件更新或修復潛在的問題,這對于延長衛星使用壽命至關重要。
- 容錯能力:對于太空環境中的輻射效應,FPGA局部重構可以作為一種有效的容錯策略。當檢測到由于輻射導致的錯誤時,受影響的部分可以被快速隔離并重新配置,以恢復功能,減少系統宕機時間。
- 節省成本:采用局部重構技術可以減少設計多種專用硬件的需求,降低開發成本和復雜度。此外,它還可以減少衛星上所需的硬件數量,減輕重量,從而降低發射成本。
- 原理
下圖展示了動態功能交換(DFX)背后的基本原理:
圖 2?1 動態功能交換的基本原理
如圖所示,通過下載多個部分 BIT 文件之一(A1.bit、A2.bit、A3.bit 或 A4.bit),可以修改在“可重構模塊 A(Reconfig Block A)”中實現的功能。FPGA 設計中的邏輯被劃分為兩種不同類型:可重構邏輯 和 靜態邏輯。
標有 “FPGA” 的模塊區域代表靜態邏輯,標有 “Reconfig Block A” 的模塊區域代表可重構邏輯。靜態邏輯在整個過程中保持正常運行,不會受到加載部分 BIT 文件的影響;而可重構邏輯則會被部分 BIT 文件的內容所替換。
用戶可以在不同的時刻,來加載不同的局部bit 實現不同的功能,同時無需關機。
- 實施
- 提前將不同功能的bit 文件預先存儲在FLASH等存儲器指定位置,然后根據用戶指令或者提前設計好的工作邏輯,自由選擇當前啟用哪一份bit 文件
- 用戶需要更新功能時,只需要更新局部bit,無需更新整個器件的bit,需要傳輸的文件尺寸會被大大壓縮到KB級別
- 用戶只需要在VIVADO工具中提前劃定好局部邏輯即可,開發流程和非DFX重構沒有太多差異,生成的局部bit文件具有獨立性,是一份獨立的bit文件,調試、生產都非常方便。
下圖是我們實驗用的一份局部bit和全局bit尺寸對比,目標器件是KU040,其中top.bit是全局bit,經過壓縮后 尺寸是2.2MB,led12_partial.bit是局部bit,尺寸大小為133KB(這和劃定的重構區域大小有關,我們這里劃定的區域較大)
圖 3?1 局部bit 與全局bit 文件大小對比