• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種乘同余偽隨機(jī)序列快速實(shí)現(xiàn)的FPGA設(shè)計(jì)

    2010-03-15 01:08:04
    電子技術(shù)應(yīng)用 2010年7期
    關(guān)鍵詞:存儲(chǔ)單元乘積移位

    陳 帥

    (淮南師范學(xué)院 計(jì)算機(jī)與信息工程系,安徽 淮南232001)

    在擴(kuò)頻通信、信息加密和系統(tǒng)測試等實(shí)際應(yīng)用領(lǐng)域中采用了與隨機(jī)序列特性類似的偽隨機(jī)序列[1]。常用的偽隨機(jī)序列是基于線性反饋移位寄存器的m序列與同余序列(乘同余和線性同余)。

    乘同余的隨機(jī)數(shù)發(fā)生器[2-3]:y(n+1)=(16807×y(n))mod(231-1)已被廣泛應(yīng)用,其周期為素?cái)?shù)231-1=2 147 483 647=2.147 483 647×109,直接進(jìn)行該式的乘同余計(jì)算需要64位的整數(shù)除法運(yùn)算。最簡單的方法是采用循環(huán)減法實(shí)現(xiàn)該同余序列運(yùn)算中的整數(shù)除法,即采用將積循環(huán)減去模數(shù) 231-1,直到被減數(shù)小于模數(shù)231-1,則最后的被減數(shù)即為求得的同余數(shù)。采用循環(huán)相減的方法,若循環(huán)的次數(shù)多,必然會(huì)影響速度。為此,Montgomery[4]提出了一種求兩個(gè)大整數(shù)乘積的模的快速算法,算法不需要除法,只采用乘法、加法和右移位,即采用邊乘邊移位,其結(jié)果還需要進(jìn)一步處理。如果參加乘積的數(shù)很大,則移位很多,必然降低運(yùn)算速度。參考文獻(xiàn)[5]采用改變初始值設(shè)定,兩次調(diào)用該Montgomery算法實(shí)現(xiàn)形如 S=(x×y)mod N運(yùn)算,即兩個(gè)大整數(shù)乘積的模的計(jì)算,但運(yùn)算速度必然又大大降低。

    現(xiàn)場可編程門陣列FPGA(Field Programmable Gate Array)編程靈活、修改方便,特別適用于流水線方式與并行方式的數(shù)據(jù)處理。在很多高速設(shè)計(jì)和高速測試的場合[6],能夠在FPGA中直接實(shí)現(xiàn)上述偽隨機(jī)序列發(fā)生器。傳統(tǒng)的實(shí)現(xiàn)乘同余產(chǎn)生偽隨機(jī)數(shù)的軟件方法時(shí)鐘頻率很低,而采用FPGA硬件實(shí)現(xiàn)則可以達(dá)到更高的速度。本文對該乘同余偽隨機(jī)序列提出了一種快速方法,該算法特別適合FPGA快速實(shí)現(xiàn)。

    1 乘同余操作快速算法設(shè)計(jì)

    快速算法流程圖如圖1所示。算法使用3個(gè)32位存儲(chǔ)單元,1個(gè)32位存儲(chǔ)器用于存儲(chǔ)常數(shù) 16 807,2個(gè)32位存儲(chǔ)器依次用于存儲(chǔ)乘法結(jié)果、移位結(jié)果、加法結(jié)果。此外采用了1個(gè)32位的乘法器、2個(gè)32位的加法器、少量移位操作和1個(gè)最高位分離器。算法步驟如下:

    (1)將輸入值 y(n)與常數(shù)16807分別存入2個(gè) 32位存儲(chǔ)單元中。

    (2)將步驟(1)中數(shù)據(jù)進(jìn)行 32位乘法運(yùn)算,乘積分別存入低32位存儲(chǔ)單元和高32位存儲(chǔ)單元中。

    (3)將乘積的高32位存儲(chǔ)單元整體向高位移動(dòng)1位(將乘積的最高位丟棄),然后,將乘積的低 32位存儲(chǔ)單元的最高位移入乘積高32位存儲(chǔ)單元的最低位。

    (4)將乘積的低32位存儲(chǔ)單元的最高位置為零值;

    (5)將步驟(3)、(4)所得的 2個(gè) 32位存儲(chǔ)單元進(jìn)行32位的加法運(yùn)算得到32位的和值。

    (6)將步驟(5)所得和值的高位(1或 0值)取出,存入另一32位存儲(chǔ)單元,將步驟(5)和值的最高位置為零值(最高位分離)。

    (7)將步驟(6)所得 2個(gè) 32位存儲(chǔ)單元值相加,得到32位的和值,即為乘同余迭代操作計(jì)算值 y(n+1)=(16 807×y(n))mod(231-1)。

    2 乘同余快速運(yùn)算的驗(yàn)證

    采用FPGA功能仿真驗(yàn)證乘同余的快速算法模型如圖2所示。在輸入時(shí)鐘信號clk的上升沿完成對輸入信號in[31..0]的一次乘同余計(jì)算,產(chǎn)生輸出信號out[31..0], 輸出信號為:out[31..0]=(16 807×in[31..0])mod(231-1),采用Verilog HDL硬件描述語言描述為:

    FPGA設(shè)計(jì)實(shí)現(xiàn)的乘同余快速計(jì)算的仿真功能如圖3所示,T1時(shí)刻,輸入為0x00000002,在clk的上升沿進(jìn)行計(jì)算:(16 807×2)mode(231-1)=0x834e;T2時(shí)刻,輸入為0x6fffffff,在 clk的上升沿進(jìn)行計(jì)算:(16 807×0x6fffffff)mode(231-1)=0x0ffff7cb;T3時(shí)刻,輸入為 0x003fffff,在 clk的上升沿進(jìn)行計(jì)算:(16 807×0x003fffff)mode(231-1)=0x69bfbe79;T4時(shí)刻,輸入為 0,在 clk的上升沿進(jìn)行計(jì)算:(16 807×0)mode(231-1)=0;T5時(shí)刻,輸入為 0x00000006,在clk的上升沿進(jìn)行計(jì)算:(16 807×6)mode(231-1)=0x000189ea??梢姡現(xiàn)PGA仿真結(jié)果與人工計(jì)算一致,從而證明了乘同余快速算法的正確性。

    2.2 乘同余序列的產(chǎn)生

    為了連續(xù)產(chǎn)生乘同余序列,需要將上次產(chǎn)生的結(jié)果反饋輸入作為下次進(jìn)行乘同余計(jì)算的輸入值。為此需要對乘同余算法添加選擇控制電路,F(xiàn)PGA才能實(shí)現(xiàn)序列發(fā)生器。設(shè)計(jì)的電路如圖4所示,其中選擇控制為快速乘同余計(jì)算選擇輸入的數(shù)據(jù),在set=1時(shí)完成初始值預(yù)置輸入,在set=0時(shí)進(jìn)行反饋輸入。

    圖5為設(shè)計(jì)的FPGA電路功能仿真圖,F(xiàn)PGA采用EPF10K30ATC144-1。在T1時(shí)刻以前的set=1預(yù)置了初始值0x00000001,從而在T1時(shí)刻的時(shí)鐘clk的上升沿進(jìn)行乘同余運(yùn)算得到0x000041A7;在T2時(shí)刻的時(shí)鐘clk的上升沿,由于set=0,將0x000041A7代入進(jìn)行乘同余運(yùn)算得到0x10D63AF1;在T3時(shí)刻的時(shí)鐘clk的上升沿,由于set=0,將0x10D63AF1代入進(jìn)行乘同余運(yùn)算得到0x60B7ACD9;在T4時(shí)刻的時(shí)鐘clk的上升沿,由于set=0,將0x60B7ACD9代入進(jìn)行乘同余運(yùn)算得到0x3AB50C2A;在T5時(shí)刻的時(shí)鐘clk的上升沿,由于set=0,將0x3AB50C2A代入進(jìn)行乘同余運(yùn)算得到0x4431B782;在T6時(shí)刻開始set=1,故又重新預(yù)置初始值0x00000001,然后在T7時(shí)刻的時(shí)鐘clk的上升沿,將0x00000001代入進(jìn)行乘同余運(yùn)算得到0x000041A7;在T8時(shí)刻的時(shí)鐘 clk的上升沿,由于 set=0,將0x000041A7代入進(jìn)行乘同余運(yùn)算得到0x10D63AF1。

    對計(jì)算乘同余序列:y(n+1)=(16 807×y(n))mod(231-1)的運(yùn)算,提出了一種新的快速算法,算法包括1個(gè)32位乘法、2個(gè)32位加法、少量移位操作和1次最高位分離,不需要除法,只需乘法、加法、移位和最高位分離操作即可。在FPGA上設(shè)計(jì)了快速同余算法,功能仿真驗(yàn)證了該算法的正確性。

    [1]李飛飛,劉偉寧,王艷華.改進(jìn)的中值濾波算法及其 FPGA快速實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2009,35(14):175-177.

    [2]楊波.網(wǎng)絡(luò)安全理論與應(yīng)用[M].北京:電子工業(yè)出版社,2002.

    [3]張傳林,林立東.偽-隨機(jī)數(shù)發(fā)生器及其應(yīng)用[J].數(shù)值計(jì)算與計(jì)算機(jī)應(yīng)用,2002,23(3):188-208.

    [4]PETER L.Modular multiplication without trial division.Mathematics of Computation,1985,44(170):519-521.

    [5]陳政彣.于8051單芯片上實(shí)作RSA密碼系統(tǒng)之能量擊及防御措施[D].臺(tái)灣:資訊工程研究所,1993.

    [6]束禮寶,宋克柱,王硯方.偽隨機(jī)數(shù)發(fā)生器的FPGA實(shí)現(xiàn)與研究[J].電路與系統(tǒng)學(xué)報(bào),2003,8(3):121-124.

    猜你喜歡
    存儲(chǔ)單元乘積移位
    一種28 nm工藝下抗單粒子翻轉(zhuǎn)SRAM的12T存儲(chǔ)單元設(shè)計(jì)
    乘積最大
    再生核移位勒讓德基函數(shù)法求解分?jǐn)?shù)階微分方程
    大型總段船塢建造、移位、定位工藝技術(shù)
    Dirichlet級數(shù)及其Dirichlet-Hadamard乘積的增長性
    Σ(X)上權(quán)移位算子的不變分布混沌性
    數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中的存儲(chǔ)形式及實(shí)驗(yàn)驗(yàn)證
    一種成本更低的全新靜態(tài)DRAM存儲(chǔ)單元
    MiR-125a-5p is Upregulated in Plasma of Residents from An Electronic Waste Recycling Site
    多指離斷手指移位再植拇指25例
    阳东县| 大田县| 宝鸡市| 泗水县| 通州区| 都兰县| 惠东县| 日照市| 沙田区| 盐津县| 昌乐县| 江安县| 通山县| 诸城市| 四会市| 横山县| 即墨市| 鲜城| 延津县| 奎屯市| 昭通市| 广州市| 河东区| 体育| 固镇县| 都匀市| 左权县| 通道| 博白县| 靖安县| 尉氏县| 平遥县| 顺义区| 叶城县| 古田县| 崇左市| 漾濞| 万盛区| 曲阜市| 曲水县| 道真|