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