摘 要: 隨著FPGA的廣泛應用, 其實現的功能也越來越多, FPGA 的動態重構設計就顯得愈發重要。在分析Xilinx Vertex II Pro系列FPGA配置流程、時序要求的基礎上, 設計了基于CPLD 的FPGA 快速動態重構方案, 實現了同一硬件平臺下多個FPGA 設計版本的在線動態配置和功能重構, 該技術已在工程中成功應用。
1 引 言
軟件無線電( SDR )的設計思想已成為現今通信的熱點, 它以通用、標準、模塊化的硬件處理平臺為依托, 通過軟件編程來實現無線電臺的各種功能。硬件處理平臺設計為通信系統的關鍵之一,通用性是其首要考慮的問題, 因為只有具有通用性,才能用軟件實現多種功能。由于FPGA ( Field Programmable Gate Array)的現場可編程特性, 故目前硬件處理平臺的設計基本上都采用了FPGA + CPU 的架構, FPGA主要用來完成并行和高速處理的功能。
隨著微電子技術的發展, FPGA 可提供的資源日益強大, 達到上千萬門級, 其承擔的功能越來越多, 同時, 電子設備對成本、功耗和體積的要求也越來越高, 矛盾就不可避免地產生。通過實時地動態重新配置FPGA 來加載不同的功能軟件, 實現功能切換, 是解決此問題的較好方法, 可實現幾者之間的均衡。目前, 實現FPGA 動態重新配置比較通用的方法有兩種: 一是通過DSP或其它CPU 讀取存儲器中的比特( bit)文件對FPGA 進行串行加載或并行加載, 其缺點是加載速率一般很低, 不能實現狀態高速切換; 二是使用Xilinx 公司的專用配置芯片XCFxxP系列, 但由于其存儲容量有限, 對于功能復雜的系統, FPGA 的軟件版本多, 需要多片專用配置芯片, 不適用于印制板尺寸很小、布局緊張的場合。
針對上述問題, 本文提出了基于CPLD的FPGA快速動態加載方案, 實現了FPGA 的功能重構, 克服了上述兩種方式的缺點。
2 Vertex II Pro的配置流程
Xilinx 公司的FPGA 配置存儲器是易失性的 , 每次上電時都要將存儲在外部存儲器中的位流文件加載到FPGA中才能正常工作。其配置過程主要有4個階段: 清除配置存儲器、初始化、加載配置數據、器件啟動 , 其流程如圖1所示。
配置存儲器清除階段, IN IT _B 和DONE 管腳變低。當配置存儲器清除完畢后, IN IT _B 管腳變高。如果通過拉低PROG _B 管腳來清除配置存儲器, 則PROG _B 的低脈沖時間至少大于300 ns, 無最大值。上電時序如圖2所示。
2. 2 初始化
在初始化階段, FPGA 首先釋放對IN IT_B 的控制權。此時, 如果外部將IN IT _B 拉低, FPGA 將延遲配置進程, IN IT _B上升沿采樣配置方式管腳M0、M1、M2, 根據不同的配置方式, 開始配置進程。在此期間, 不需要暫停時間或等待周期, 但IN IT _B 變高后, 也不會立即開始配置, 需要FPGA 從位流文件中收到同步字后, 其配置邏輯才開始處理數據。
2. 3 加載配置數據
內部配置存儲器被分成叫做“幀”的塊, 真正寫進配置存儲器的位流部分叫做"數據幀", "幀"的大小和數量隨器件而變。一旦配置進程開始, FPGA接收數據幀, 最后一個數據幀接收完后進行CRC 校驗。當CRC校驗出錯, FPGA 將IN IT _B 管腳置低,指示CRC 出錯, 同時FPGA 放棄配置進程, 不啟動工作, 直至PROG _B變低來重新復位配置邏輯; CRC校驗正確, 最后一個數據幀下載后, 將給全局復位信號( GSR)一個脈沖, 它將在進入啟動之前復位器件內的全部寄存器。
2. 4 器件啟動
啟動是配置的最后一個階段, 是從配置狀態到工作狀態的一個轉換過程, 如圖3所示。啟動次序是0~ 7的一個8段序列狀態機, 可以用軟件改變次序, 該階段完成以下任務: 釋放DONE 管腳; 撤消GTS, 激活所有的I/O; 使能GWE, 允許所有的RAM和觸發器改變狀態; 使能EOS, 啟動結束標志總是設在第7段, 其為內部標志, 用戶無法介入。
3 CPLD動態配置FPGA的方法
Vertex II Pro 系列有4 種配置模式: 主串行模式、主并行模式、從串行模式和從并行模式。其中主從指的是配置時鐘的方向, 主模式配置時鐘由FPGA內部振蕩器產生, 從模式則由外部提供配置時鐘; 串行是指配置數據逐位傳輸, 并行是指配置數據以字節傳輸。為了便于有效地控制配置流程和快速加載, 這里選擇從并行模式。
評論
查看更多