基于Xilinx FPGA的片上系統(tǒng)無線保密通信終端
3.3 軟核控制模塊
3.3.1 軟核MicroBlaze簡介
MicroBlaze 是一款由xilinx公司開發(fā)的嵌入式處理器軟核,其采用RISC(Reduced Instruction Set Computer)優(yōu)化架構(gòu)。它符合IBM CoreConnect標(biāo)準(zhǔn),能夠與PPC405系統(tǒng)無縫連接[3]。MicroBlaze是一個非常簡化卻具有較高性能的軟核,在Spartan3E系列FPGA中它只占400個Slice,相當(dāng)于10萬門FPGA容量的1/3。其為哈佛結(jié)構(gòu),32位地址總線,獨立的指令和數(shù)據(jù)緩存,并且有獨立的數(shù)據(jù)和指令總線連接到IBM的PLB總線,使得它能很容易和其它外設(shè)IP核一起完成整體功能。支持SPI、I2C、PCI、CAN總線,支持重置、硬件異常、中斷、用戶異常、暫停等機(jī)制,可配置UART、GPIO等接口。
3.3.2 microblaze的控制流程
圖3 microblaze的控制流程
3.3.3 microblaze的控制流程主程序
main () {
Initial()//初始化系統(tǒng);
CmdSend()//上位機(jī)命令輸入;
DataRev()//數(shù)據(jù)接收;
AESEny()//數(shù)據(jù)加密;
DataPackage()數(shù)據(jù)打包;
CC2420Sen()加密數(shù)據(jù)發(fā)送;
Return success; }
結(jié)語
本系統(tǒng)將軟件加解密(在50M的頻率下使用軟件來進(jìn)行加解密)與硬件加解密時間做了對比:如表3所示。
表3 軟件和硬件加密對比
表4 AES加密占用FPGA資源統(tǒng)計表
該方案充分有效的利用了Spartan 3E的資源,尤其為可編程邏輯和RAM的利用。其中AES加解密中的乘法運算均由LUT查找表來實現(xiàn),用空間換取時間,獲得了很高的算法速度。在AES算法測試時我們發(fā)現(xiàn)80%的AES加解密時間都用于密鑰擴(kuò)展算法中,如果能再進(jìn)一步把算法優(yōu)化,比如做成流水線的算法模式的話,加解密時間又能減少近20%,即由現(xiàn)在的6.74us減少到略大于5.39us,效率又可以增加很多。
參考文獻(xiàn):
[1]AES算法FPGA實現(xiàn)分析,唐金藝,[M] 海軍計算技術(shù)研究所
[2]唐明,張煥國,劉樹渡等 AES的高性能硬件設(shè)計與研究 [M] 武漢大學(xué)計算機(jī)學(xué)院
[3]趙峰 馬迪民 孫偉等 FPGA上的嵌入式設(shè)計[M] 2008.4
[4]佟玉偉 陸浪如 FPGA先進(jìn)加密算法 (AES) 的并行實現(xiàn) [M] 交通與計算機(jī) 2002.6
評論