如系統中包含可編程器件,就必須考慮其功能配置的問題。然而,傳統的FPGA配置方案(例如調試階段的專用下載電費方式、成品階段的專用存儲器方式)在成本、效率、靈活性等方面都存在著明顯的不足。針對這樣的實際問題,基于嵌入式微控制器與FPGA廣泛共存于復雜數字系統的背景,考慮到大量數字系統要求接入internet的現狀,借鑒軟件無線電“一機多能”的思想,提出了一種基于嵌入式系統和Internet的FPGA動態配置方案。該方案的提出,旨在基于系統現有的、通用的軟硬件資源,盡可能地提高FPGA配置的效率和靈活性。實踐證明,該方案可行、實用,達到了設計目的。
1 FPGA配置的期基本問題及現有的解決方案
為輪述方便,將基于SRAM工藝的FPGA的配置流程用圖1所示的模型表示。從圖1中可以看到,FPGA的配置過程實質上是兩次數據的傳輸過程(分別由配置數據源到時序控制器和時序控制器到目標FPGA)。因此,將這兩次關鍵的數據傳輸作為FPGA配置的兩個基本問題,并在下文中針對不同的傳輸方式討論各自的優缺點,從而尋求合理的解決方案。
傳統的配置方式包括應用于調試階段的專用下載電費方式和應用于成員階段的專用 非易失性存儲器方式。在這兩種方式中,上文所提到的兩次數據傳輸完全由FPGA廠商所提供的軟硬件完成。這樣的解決方案確實方便了一般的FPGA用戶,因為他們不必花費精力關心配置的細節,但同時也不得不面對不少的缺陷:首先,專用下載電費和專用非易失性存儲器的成本非常高,雖然用戶可以根據FPGA廠商提供的原理圖自制下載電纜,但專用非易失性存儲器是肯定無法自制的,而且有些不支持ISP(在系統可編程)的器件不定期必須配以合適的編程器,進一步增加了開發的成本;第二,常見的專用下載電費都是使用計算機并口產生串行的配置信號,而以并口線作為傳輸媒介,注定其有效傳輸距離非常有限;第三,專用非易失性存儲器的配置方式決定了目標FPGA只能接收單一配置文件,即在系統運行過程中,FPGA不可能根據不同情況動態調整邏輯功能,這樣的設計無法滿足某些應用中對于系統靈活性的要求。
首先,專用下載電纜和專用非易失性存儲器的成本非常高,雖然用戶可以根據FPGA廠商提供的原理圖自制下載電費,但專用非易失性存儲器是肯定無法自制的,而且有些不支持ISP(在系統可編程)的器件還必須配以合適的編程器,進一步增加了開發的成本;第二,常見的專用下載電纜都是使用計算機并口產生串行的配置信號,而以并口線作為傳輸媒介,注定其有效傳輸距離信號,而以并口線作為傳輸媒介,注定其有效傳輸距離非常有限;第三,專用非易失性存儲器的配置方式決定了目標FPGA只能接收單一配置文件,即在系統運行過程中,FPGA不可能根據不同情況動態調整邏輯功能,這樣的設計無法滿足某些應用中對于系統靈活性的要求。
針對上述各種缺陷,有人提出了改進方案,例如在系統中存在微控制器的前提下,用通用異步串口RS232替代專用的配置電纜、用通用的非易失性存儲器替代專用的非易失性存儲器。這些改進方案在一定程度上彌補了傳統配置方案的不足,但也存在一些新的缺陷:通用異步串口的傳輸速率很有限,無法滿足目前一些新的缺陷:通用異步串口的傳輸速率很有限,無法滿足目前一些大規模FPGA的配置要求;傳輸距離雖有明顯提高,但仍然無法滿足某些用戶對于遠程、跨區域的測試、維護和更新的需要。