引 言
FPGA廣泛應(yīng)用在電子通信領(lǐng)域,其安全性引起了注意,本文針對安全配置提出了解決方案。
現(xiàn)場可編程門陣列FPGA(Field Programmablc Gate Array)是基于門陣列方式為用戶提供可編程資源的,其內(nèi)部邏輯結(jié)構(gòu)的形成是由配置數(shù)據(jù)決定的。采用在線可重配置方式ICR(In-Circuit Reconfigurability)將這些配置數(shù)據(jù)配置到FPGA內(nèi)部SRAM中,但由于SRAM的易失性,每次上電時,都必須對FPGA重新進(jìn)行配置,從而實(shí)現(xiàn)用戶編程所要實(shí)現(xiàn)的功能。
以前的設(shè)計大多是將配置數(shù)據(jù)存放在FPGA組成的系統(tǒng)上,本文提出將配置數(shù)據(jù)存放在使用者自己攜帶的外部存儲器(如可加密的U盤)中。使用前將U盤接入FPGA組成的系統(tǒng),系統(tǒng)上電時由單片機(jī)控制讀出配置數(shù)據(jù),再傳送給FPGA進(jìn)行配置。這樣做優(yōu)點(diǎn)很多:修改、升級簡便,現(xiàn)場保密性強(qiáng),安全性高;可多人分時使用同一硬件系統(tǒng),同一硬件系統(tǒng)插入不同的配置U盤就可以實(shí)現(xiàn)不同的功能,可以方便地存儲大容量配置數(shù)據(jù)或多個配置數(shù)據(jù)文件等;同時,符合計算機(jī)和嵌入式系統(tǒng)的熱點(diǎn)USB OTG(On The Go,移動USB)技術(shù)趨勢,是具有創(chuàng)新的設(shè)計。
1 FPGA的配置方式和配置數(shù)據(jù)文件
1.1 FPGA的配置方式
以Altera公司的FPGA器件為例,有2類配置下載方式:主動配置和被動配置。主動配置方式是由FPGA器件主動引導(dǎo)配置操作,從外圍專用配置芯片(如EPC4)中獲得配置數(shù)據(jù)的過程;被動配置方式則是由外部計算機(jī)或控制器控制配置過程。
以Mercury、APEX 20K(2.5V)、ACEX 1K和FLEX10K系列FPGA為例,配置方式有:被動串行PS(PasiveSerial)、被動并行同步PPS(Passive Parallel Synchronous)、被動并行異步PPA(Passive Parallel Asyn-chronous)和JTAG(Jont Test Action Group)等。具體配置方式由方式選擇引腳MSEL1和MSELO的邏輯電平組合決定。
基于SRAM LUT(查找表)結(jié)構(gòu)的FPGA采用在線可重配置方式ICR。以配置方式PS為例,可通過下載電纜南計算機(jī)直接對FPGA器件進(jìn)行配置。這種方法在設(shè)計調(diào)試時非常方便,但在現(xiàn)場應(yīng)用巾是很不現(xiàn)實(shí)的。上電后自動加載對FPGA器件進(jìn)行配置是實(shí)際必須的,有許多方法,例如專用配置芯片(如EPC4)配置、單片機(jī)控制配置、MAX3000A控制F1ash存儲器配置、PCI總線配置、Internet配置、PSD(Programmable System Devices可編程器件)配置等。
1.2 FPGA的配置數(shù)據(jù)文件
Altera公司的Quartus II開發(fā)工具可以生成多種配置或編譯文件,用于不同配置方式。對于不同的目標(biāo)器件,編譯后開發(fā)工具會根據(jù)指定的FPGA器件自動生成“.sof(SRAM Object File)”和“.pof(Programmer ObjectFile)”配置文件。“.sof”配置文件是由下載電纜將其下載到FPGA中的;“.pof”配置文件是存放在配置器件里的。用單片機(jī)配置時,要將“.sof”文件轉(zhuǎn)換成“.rbf(Raw BinaryFile)”文件,可打開QuartusII的File菜單,單擊ConvertProgramming Fiks進(jìn)行轉(zhuǎn)換。配置文件的大小隨FPGA器件的不同而不同,例如EPFlOKlO的配置文件“.sof”和“.rbf”的大小為15KB。
2 單片機(jī)配置FPGA設(shè)計
2.1 單片機(jī)配置FPGA的優(yōu)點(diǎn)
在實(shí)際應(yīng)用中,單片機(jī)控制配置FPGA,對于保密和升級,以及實(shí)現(xiàn)多任務(wù)電路結(jié)構(gòu)重配置和降低配置成本,都是很好的選擇。配置方式PS、PPS和PPA均可以用單片機(jī)控制配置。
由單片機(jī)和外部存儲器組成配置FPGA電路,將配置數(shù)據(jù)寫入外部存儲器,系統(tǒng)上電時再由單片機(jī)控制對FPGA進(jìn)行配置。也可將多個配置文件分區(qū)存儲到外部存儲器中,然后由單片機(jī)接收不同的命令,選擇讀取不同存儲區(qū)的數(shù)據(jù)配置到FPGA器件,從而實(shí)現(xiàn)多任務(wù)電路結(jié)構(gòu)重配置,在線配置成多種不同的電路功能;代替了價格昂貴的不可擦寫和可擦寫配置芯片,降低了成本。