如圖1所示,密碼算法IP核重構(gòu)區(qū)由TDES、SHA1、RSA三個IP核與IP_bridge、asis_ramx共同構(gòu)成,根據(jù)輸入的控制參數(shù),完成同一雙端口存儲區(qū)與不同IP核之間的動態(tài)重構(gòu)。其輸入輸出如表1所列。
以調(diào)用SHA1為例,系統(tǒng)完成對數(shù)據(jù)塊雜湊值計算的操作步驟為:
①MCU執(zhí)行指令
MOV FUNCCHOOSE,#05H
選擇當(dāng)前調(diào)用IP核為SHA1。
②將一個16字節(jié)待處理數(shù)據(jù)塊輸入雙端口存儲區(qū)asis_ramx中,此時輸入數(shù)據(jù)長度必須為16字節(jié)。
③執(zhí)行指令
MOV INSTUCT,#80H
MOV INSTRUCT,#01H
前一條指令將SHA1進行復(fù)位,后一條指令使能SHA1,將待處理數(shù)據(jù)讀入IP核內(nèi)部寄存器,進而對其進行SHA1運算處理。
④對FUNCSTATE最低位進行判斷,為1時輸入下一個16字節(jié)數(shù)據(jù)塊,執(zhí)行指令
MOV INSTRUCT,#01H
復(fù)位SHA1完成信號,繼續(xù)進行SHA1運算處理。
⑤最后一個16字節(jié)數(shù)據(jù)塊輸入,執(zhí)行指令
MOV INSTRUCT,#01H
判斷FUNCSTATE最低位,為1時讀出雙端口存儲區(qū)中處理完成數(shù)據(jù)。
⑥執(zhí)行指令
MOV INSTRUCT,#00H
關(guān)閉SHA1協(xié)處理器,完成SHA1調(diào)用。
對TDES及RSA的功能調(diào)用類似于SHA1,僅在指令配置時稍有不同。TDES增加了密鑰生成過程的指令配置與完成信號判斷,RSA增加了對模長與模冪的參數(shù)配置。由上可知,與方法二相比較,IP橋接技術(shù)在調(diào)用實現(xiàn)IP核功能時,需要增加的僅為一條IP選擇參數(shù)配置指令。
3 測試與仿真
本文采用軟件仿真與FPGA下載測試兩種手段,對2.2中的設(shè)計進行了功能正確性驗證。圖2給出了該設(shè)計中IP_bridge在quartus II 5.0下的仿真波形圖。
在圖2中,F(xiàn)UNCCHOOSE為系統(tǒng)功能區(qū)的IP選擇參數(shù)輸入,INSTRUCT為IP控制指令。當(dāng)IP選擇參數(shù)值為07H、06H、05H 時,對應(yīng)的選定IP為RSA、TDES、SHA1。以選定SHA1為例,當(dāng)IP選擇參數(shù)為05H時,IP_bridge模塊重構(gòu)asis_ramx為 SHA1專用數(shù)據(jù)處理區(qū),且此時SHA1控制指令shal_instruct_o被配置為當(dāng)前IN-STRUCT值,完成對SHA1的接口配置;當(dāng)IP選擇參數(shù)為 06H、07H時,IP_bridge置SHA1控制指令shal_in-struct_o為00H,使SHA1協(xié)處理器處于休眠狀態(tài)。對 IP_bridge仿真波形圖的分析表明,其邏輯功能正確。由于在初次FPGA下載測試時發(fā)現(xiàn),允許IP_bridge對IP核進行時鐘配置會導(dǎo)致協(xié)處理器功能不穩(wěn)定,因而取消了IP_bridge的IP核時鐘配置功能。除此以外,其余部分均滿足本文2.1中的功能要求。
為進一步驗證設(shè)計的正確性,本文選用Altera公司Cyclone II系列EP2C35F672C6器件,對其進行了FPGA下載測試。在初次測試時發(fā)現(xiàn),各IP核雖然可以完成功能調(diào)用,但執(zhí)行結(jié)果不穩(wěn)定,測試結(jié)果的最后5~10字節(jié)與標(biāo)準(zhǔn)測試對的結(jié)果不符。經(jīng)分析發(fā)現(xiàn),導(dǎo)致IP核功能錯誤的原因為IP_bridge在對時鐘進行配置時,會產(chǎn)生時鐘延遲。因此,取消了 IP_bridge的時鐘配置功能,在Qu-artus II 5.0下進行編譯仿真與綜合下載,再次進行FPGA下載測試。測試結(jié)果顯示,各IP核功能均正確無誤。采用選定器件,IP_bridge邏輯資源消耗為 200 LE,最大路徑延遲為16.838 ns。
結(jié) 語
本文在總結(jié)多IP核集成設(shè)計方法的基礎(chǔ)上,提出了一種IP橋接技術(shù),用于實現(xiàn)多IP核集成;并以其為指導(dǎo),基于一個8位SoC系統(tǒng),具體實現(xiàn)了三個IP核集成。功能仿真與FPGA測試表明該技術(shù)具備實際可行性,且相比較于現(xiàn)有多IP核集成方法,IP橋接技術(shù)具備可有效提高片內(nèi)資源利用率,降低系統(tǒng)功耗與開發(fā)成本等優(yōu)勢;其缺點在于,當(dāng)不同IP核的數(shù)據(jù)接口不一致時,IP_bridge的邏輯設(shè)計會比較復(fù)雜,且不能實現(xiàn)對IP核的變頻時鐘配置。初步分析表明,通過修改IP核的雙端口存儲區(qū)數(shù)據(jù)寫入環(huán)節(jié),延長數(shù)據(jù)寫入完成至done信號有效這一時間段,可解決這一問題。方法的有效性檢測與具體實現(xiàn),是筆者下一步工作的重點研究內(nèi)容。