快速實(shí)現(xiàn)SHA-1算法的硬件結(jié)構(gòu)
實(shí)現(xiàn)結(jié)果
使用Verilog硬件描述語言按本文提出的優(yōu)化方法實(shí)現(xiàn)了SHA-1算法,并使用Synopsys Design Compiler在0.18Lm標(biāo)準(zhǔn)單元庫下綜合,得到表1中的結(jié)果。表1中還包括了文[6]的實(shí)現(xiàn)結(jié)果。文[6]同樣使用了0.18Lm工藝,但是實(shí)現(xiàn)SHA-1算法的方法仍然是傳統(tǒng)的直接計(jì)算ABCDE5個(gè)中間變量的方法。
表1 ASIC實(shí)現(xiàn)結(jié)果比較
從前文的算法分析可以看出,傳統(tǒng)實(shí)現(xiàn)方法的關(guān)鍵路徑上有4次加法,如果把這4次加法按樹型組織,那么關(guān)鍵路徑的延時(shí)大約為3個(gè)32bit加法器的延時(shí);通過本文方法改進(jìn)后,關(guān)鍵路徑延時(shí)可以縮短為1個(gè)32bit加法器延時(shí)加上少量組合邏輯延時(shí)。因此理論上速度大約可以提高為傳統(tǒng)方法的2~3倍。從表1和使用傳統(tǒng)方法實(shí)現(xiàn)的文[6]對(duì)比可以發(fā)現(xiàn),實(shí)現(xiàn)結(jié)果和理論分析完全一致。改進(jìn)方法因?yàn)橛?jì)算中引入了中間變量,所以面積比傳統(tǒng)方法要略大;同時(shí)為了計(jì)算中間變量的初值,每塊數(shù)據(jù)也需要多兩個(gè)周期的計(jì)算。但是因?yàn)殛P(guān)鍵路徑得以明顯縮短,整體的計(jì)算速度大大提高,吞吐量達(dá)到傳統(tǒng)方法的兩倍以上。
通過縮短關(guān)鍵路徑加速SHA-1計(jì)算的方法不僅適用于ASIC設(shè)計(jì),而且一樣適用于基于FPGA的硬件設(shè)計(jì)。文[6,7]是目前常用的兩種SHA-1算法的商業(yè)IP核。使用本文提出的改進(jìn)方法在和文[6,7]同樣的FPGA芯片上(XilinxVirtex2II系列XC2V50025)實(shí)現(xiàn)SHA-1算法。具體結(jié)果以及和文[6,7]結(jié)果的對(duì)比見表2。
表2 FPGA實(shí)現(xiàn)結(jié)果比較
結(jié)論
針對(duì)有理分式擬合中的保證生成二端口網(wǎng)絡(luò)無源性的問題,本文提出了一種簡(jiǎn)單且有效的局部補(bǔ)償方法,其主要思想在于:在生成網(wǎng)絡(luò)的Y參數(shù)矩陣的對(duì)角元素上加上(相當(dāng)于并聯(lián))一個(gè)RLC串聯(lián)的濾波回路,使得該回路可以以恰好補(bǔ)償原網(wǎng)絡(luò)違反無源性條件的頻率段,而盡量少的引入誤差。經(jīng)過實(shí)驗(yàn)表明,該方法能很好的達(dá)到預(yù)期的目的,在保證無源性條件的同時(shí),能使引入的誤差限制在2%以內(nèi)。
評(píng)論