基于應用存儲器的fpga芯片配置結構和配置方法
【技術領域】
[0001]本發明涉及現場可編程邏輯門陣列(Field Programmable Gate Array, FPGA)的芯片配置結構,尤其涉及可以實現快速重配置的基于應用存儲器的FPGA芯片配置結構和配置方法。
【背景技術】
[0002]FPGA是一種具有豐富硬件資源、強大并行處理能力和靈活可重配置能力的邏輯器件。這些特征使得FPGA在數據處理、通信、網絡等很多領域得到了越來越多的廣泛應用。尤其是它的可重配置性,用戶通過下載不同的配置文件可以使其執行不同的功能。因此,FPGA常被使用在需要根據情況改變功能的嵌入式系統中,如軟件無線電(Software DefinedRad1, SDR)系統、遠程傳感器(Remote Sensors, RS)系統等。但是對于性能要求苛刻的嵌入式系統,如實時性嵌入式系統,需要系統響應滿足嚴格的時序約束。這些時序約束通常是以毫秒和微秒為單位計算。傳統的FPGA的配置結構如圖1所示,其配置和重配置的流程示意圖如圖2所示。FPGA在上電后到正確執行功能需要經歷三個主要過程:上電檢測和初始化、初始比特流文件下、啟動配置過程(startup)。其中啟動配置過程是所有配置鏈接收解析后的內容并完成所有內容配置的過程。當FPGA在用戶模式需要執行重配置切換功能時,用戶需要下載完整的比特流文件和執行啟動配置過程。在這過程中FPGA —直處于暫停工作的狀態,直到啟動配置過程結束,FPGA開始執行新的功能。傳統FPGA的重配置是針對整個器件的,因此重配置的過程中下載的比特流文件和初始化比特流文件大小一樣,是完整的比特流文件。隨著用戶需求的不斷增高,FPGA所包含的硬件資源在不斷的增大,相對應的比特流文件的大小也在增大,導致了 FPGA重配置所需的時間也在增長。因此,采用傳統配置方式進行重配置的FPGA已越來越難滿足實時性系統的時序要求。FPGA重配置時間過長已成為FPGA應用的一個制約因素,如何能加快FPGA重配置的過程一直是FPGA研究的一個熱點。
[0003]為了加強FPGA的可重配置能力、減少FPGA重配置所需的時間。FPGA生產商Xilinx 和 Altera 分別在 2004 年和 2011 年提出了部分重構(Partial Reconfigurat1n,PR)的概念。PR技術的配置和重配置流程圖如圖3所示。和傳統FPGA配置相比,PR技術在上電后到執行用戶模式的過程一樣,需要經歷三個主要過程。PR技術最大的優勢是在重配置的過程中,僅需要下載部分比特流文件(Partial Bitstream)去配置FPGA的動態區域,使FPGA動態的改變功能。FPGA的動態區域,即需要改變功能的區域,是用戶可以根據設計來定義的,可以是一塊區域,也可以使多塊區域。和配置整個FPGA的比特流文件相比,部分比特流文件僅含有動態區域的配置數據,并且動態區域通常只是FPGA中的一部分區域,所以部分比特流文件比傳統的完整比特流文件小很多,下載所需的時間也少很多。另一方面,PR技術不涉及全局時鐘和輸入/輸出1/0等資源的配置,所以當部分比特流文件下載完成時,只需對局部的寄存器、查找表等進行啟動配置,即可執行用戶模式。所以在啟動配置過程中,PR技術也比傳統FPGA重配置要快。但是現有的PR技術只適用于具有公共功能的多個不同應用場合,只通過改變局部功能使FPGA實現多個不同應用的動態切換。因此PR重配置能力有一定局限性,并不能使FPGA徹底的改變所有功能。
【發明內容】
[0004]本發明的目的是針對現有技術的缺陷,提供了一種基于應用存儲器的FPGA芯片配置結構和配置方法,通過加入多個應用存儲器和多路復用器/解復用器,從而在多個應用存儲器中能夠分別存儲不同應用的比特流配置信息,從而在FPGA配置或重配置過程時,只需選擇相應的應用存儲器把配置內容根據地址操作從應用存儲器中讀出并傳送到對應的配置鏈完成啟動配置即可。
[0005]在第一方面,本發明實施例提供了一種基于應用存儲器的FPGA芯片配置結構,包括:
[0006]主控制器,所述主控制器接收外部串行發送的多組比特流文件,并對所述比特流文件依次進行解析,生成串行的多組比特流配置信息;
[0007]多路復用器,接收應用存儲器選擇信號和寫信號,當所述寫信號有效時,將當前一組比特流配置信息根據所述應用存儲器選擇信號發送給相應的應用存儲器;
[0008]多個應用存儲器,每個應用存儲器接收并存儲所述多路復用器根據所述應用存儲器選擇信號發送的相應的一組比特流配置信息;
[0009]多路解復用器,所述多路解復用器接收應用存儲器選擇信號和讀信號,當所述讀信號有效時,根據所述應用存儲器選擇信號從相應的應用存儲器中讀取存儲的比特流配置信息,并發送至配置鏈組;
[0010]配置鏈組,包括多個配置鏈,所述多個配置鏈根據所述比特流配置信息同時啟動配置。
[0011]優選的,所述每個應用存儲器包括多個存儲單元,所述多路復用器還接收存儲單元選擇信號,并根據所述存儲單元選擇信號將一組比特流配置信息中的部分發送給相應的存儲單元;所述多路解復用器還接收存儲單元選擇信號,并根據所述存儲單元選擇信號從所述相應的應用存儲器的相應存儲單元中讀取存儲的比特流配置信息,并發送至配置鏈組。
[0012]優選的,所述結構還包括存儲單元選擇信號輸入端口,外部發送的存儲器選擇信號通過所述存儲器選擇信號輸入端口傳送至所述多路復用器或多路解復用器。
[0013]優選的,所述結構還包括存儲器選擇信號輸入端口,外部發送的存儲器選擇信號通過所述存儲器選擇信號輸入端口傳送至所述多路復用器或多路解復用器。
[0014]優選的,所述結構還包括讀/寫信號輸入端口,外部發送的寫信號通過所述讀/寫信號輸入端口傳送至所述多路復用器,或者外部發送新的讀信號通過所述讀/寫信號輸入端口傳送至所述多路解復用器。
[0015]優選的,所述多個應用存儲器均為單口存儲器。
[0016]優選的,當多個配置鏈根據比特流配置信息配置完成后,FPGA芯片進入工作狀態;在所述FPGA芯片處于工作狀態,且當多路復用器接收到的寫信號有效時,所述多路復用器將當前收到的一組比特流配置信息根據應用存儲器選擇信號發送給相應的應用存儲器進行存儲,并覆蓋所述應用存儲器中的比特流配置信息。
[0017]在第二方面,本發明實施例提供了一種基于應用存儲器的FPGA芯片配置結構的配置方法,包括:
[0018]主控制器接收外部串行發送的多組比特流文件,并對所述比特流文件依次進行解析,生成串行的多組比特流配置信息;
[0019]多路復用器或多路解復用器接收應用存儲器選擇信號和讀/寫信號;
[0020]當所述寫信號有效時,多路復用器根據當前的應用存儲器選擇信號將當前的比特流配置信息發送給相應的應用存儲器進行存儲;
[0021]當所述讀信號有效時,多路解復用器根據當前的應用存儲器選擇信號從相應的應用存儲器中讀取存儲的比特流配置信息,并發送給配置鏈組;
[0022]所述配置鏈組中的多個配置鏈根據所述比特流配置信息同時啟動配置。
[0023]優選的,多路復用器接收存儲單元選擇信號,根據所述存儲單元選擇信號將相應的一組比特流配置信息發送給相應的存儲單元;或者
[0024]多路解復用器接收存儲單元選擇信號,根據所述存儲單元選擇信號從所述相應的應用存儲器的相應存儲單元中讀取存儲的比特流配置信息,并發送至配置鏈組。
[0025]優選的,當多個配置鏈根據比特流配置信息配置完成后,FPGA芯片進入工作狀態;在FPGA芯片處于工作狀態,且接收到的寫信號有效時,當前接收的一組比特流配置信息根據應用存儲器選擇信號發送給相應的應用存儲器進行存儲。
[0026]本發明實施例提供的基于應用存儲器的FPGA芯片配置結構和配置方法,通過加入多個應用存儲器和多路復用器/解復用器,從而實現在多個應用存儲器中能夠分別存儲不同應用的比特流配置信息,從而在FPGA重配置過程時,只需選擇相應的應用存儲器把配置內容根據地址操作從應用存儲器中讀出并傳送到對應的配置鏈完成啟動配置,使得FPGA在重配置的過程中無需等待外部下載新的比特流文件,只需將應用存儲器中的比特流配置信息讀出,并且并行傳輸到多個配置鏈中,充分發揮了 FPGA具有多個配置鏈的并行配置結構特點的優勢,極大地加快了重配置的速度,提高了配置效率。
【附圖說明】
[0027]圖1為現有技術提供的傳統的FPGA的配置結構示意圖;
[0028]圖2為現有技術提供的傳統的FPGA的配置和重配置的流程示意圖;
[0029]圖3為現有技術提供的基于PR技術的FPGA配置和重配置的流程示意圖;
[0030]圖4為本發明實施例提供的基于應用存儲器的FPGA芯片配置結構示意圖;
[0031]圖5為本發明實施例提供的FPGA芯片配置結構中應