一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA產(chǎn)生中偽隨機(jī)數(shù)發(fā)生器分析

454398 ? 來(lái)源:BitArt的博客 ? 作者:BitArt的博客 ? 2020-11-21 11:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 概念

通過(guò)一定的算法對(duì)事先選定的隨機(jī)種子(seed)做一定的運(yùn)算可以得到一組人工生成的周期序列,在這組序列中以相同的概率選取其中一個(gè)數(shù)字,該數(shù)字稱作偽隨機(jī)數(shù),由于所選數(shù)字并不具有完全的隨機(jī)性,但是從實(shí)用的角度而言,其隨機(jī)程度已足夠了。這里的“偽”的含義是,由于該隨機(jī)數(shù)是按照一定算法模擬產(chǎn)生的,其結(jié)果是確定的,是可見(jiàn)的,因此并不是真正的隨機(jī)數(shù)。偽隨機(jī)數(shù)的選擇是從隨機(jī)種子開(kāi)始的,所以為了保證每次得到的偽隨機(jī)數(shù)都足夠地“隨機(jī)”,隨機(jī)種子的選擇就顯得非常重要,如果隨機(jī)種子一樣,那么同一個(gè)隨機(jī)數(shù)發(fā)生器產(chǎn)生的隨機(jī)數(shù)也會(huì)一樣。

2. 由LFSR引出的產(chǎn)生方法

產(chǎn)生偽隨機(jī)數(shù)的方法最常見(jiàn)的是利用一種線性反饋移位寄存器(LFSR),它是由n個(gè)D觸發(fā)器和若干個(gè)異或門(mén)組成的,如下圖:


其中,gn為反饋系數(shù),取值只能為0或1,取為0時(shí)表明不存在該反饋之路,取為1時(shí)表明存在該反饋之路;n個(gè)D觸發(fā)器最多可以提供2^n-1個(gè)狀態(tài)(不包括全0的狀態(tài)),為了保證這些狀態(tài)沒(méi)有重復(fù),gn的選擇必須滿足一定的條件。下面以n=3,g0=1,g1=1,g2=0,g3=1為例,說(shuō)明LFSR的特性,具有該參數(shù)的LFSR結(jié)構(gòu)如下圖:


假設(shè)在開(kāi)始時(shí),D2D1D0=111(seed),那么,當(dāng)時(shí)鐘到來(lái)時(shí),有:

D2=D1_OUT=1;

D1=D0_OUT^D2_OUT=0;

D0=D2_OUT=1;

即D2D1D0=101;同理,又一個(gè)時(shí)鐘到來(lái)時(shí),可得D2D1D0=001. ………………

畫(huà)出狀態(tài)轉(zhuǎn)移圖如下:


從圖可以看出,正好有2^3-1=7個(gè)狀態(tài),不包括全0;

如果您理解了上圖,至少可以得到三條結(jié)論:

1)初始狀態(tài)是由SEED提供的;

2)當(dāng)反饋系數(shù)不同時(shí),得到的狀態(tài)轉(zhuǎn)移圖也不同;必須保證gn===1,否則哪來(lái)的反饋?

3)D觸發(fā)器的個(gè)數(shù)越多,產(chǎn)生的狀態(tài)就越多,也就越“隨機(jī)”;

3. verilog實(shí)現(xiàn)

基于以上原理,下面用verilog產(chǎn)生一個(gè)n=8,反饋系數(shù)為g0g1g2g3g4g5g6g7g8=101110001的偽隨機(jī)數(shù)發(fā)生器,它共有2^8=255個(gè)狀態(tài),該LFSR的結(jié)構(gòu)如下:


verilog源代碼如下:

module RanGen(
    input               rst_n,    /*rst_n is necessary to prevet locking up*/
    input               clk,      /*clock signal*/
    input               load,     /*load seed to rand_num,active high */
    input      [7:0]    seed,     
    output reg [7:0]    rand_num  /*random number output*/
);


always@(posedge clk or negedge rst_n)
begin
    if(!rst_n)
        rand_num    <=8'b0;
    else if(load)
        rand_num <=seed;    /*load the initial value when load is active*/
    else
        begin
            rand_num[0] <= rand_num[7];
            rand_num[1] <= rand_num[0];
            rand_num[2] <= rand_num[1];
            rand_num[3] <= rand_num[2];
            rand_num[4] <= rand_num[3]^rand_num[7];
            rand_num[5] <= rand_num[4]^rand_num[7];
            rand_num[6] <= rand_num[5]^rand_num[7];
            rand_num[7] <= rand_num[6];
        end
            
end
endmodule

仿真波形:


以1111 1111為種子,load信號(hào)置位后,開(kāi)始在255個(gè)狀態(tài)中循環(huán),可將輸出值255、143、111……作為偽隨機(jī)數(shù)。

編輯:hfy


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1646

    文章

    22054

    瀏覽量

    618800
  • 移位寄存器
    +關(guān)注

    關(guān)注

    3

    文章

    293

    瀏覽量

    22748
  • LFSR
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    12921
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【assingle分享】labview隨機(jī)數(shù)發(fā)生器

    ,提供了多種不同的函數(shù),下面大概總結(jié)一下。一、隨機(jī)數(shù)發(fā)生器在LABVIEW數(shù)值函數(shù)選板,提供了一個(gè)隨機(jī)數(shù)
    發(fā)表于 04-07 10:27

    【總結(jié)】LabVIEW隨機(jī)數(shù)發(fā)生器

    ,提供了多種不同的函數(shù),下面大概總結(jié)一下。一、隨機(jī)數(shù)發(fā)生器在LABVIEW數(shù)值函數(shù)選板,提供了一個(gè)隨機(jī)數(shù)
    發(fā)表于 01-30 14:51

    怎么設(shè)計(jì)基于USB和FPGA隨機(jī)數(shù)發(fā)生器驗(yàn)證平臺(tái)?

    隨機(jī)數(shù)發(fā)生器是信息安全領(lǐng)域不可或缺的重要組成部分,廣泛應(yīng)用于金融、軍事等信息安全保密通信的電子設(shè)備。目前,隨著對(duì)RNG體積、功耗、接口方式等要求的提高,設(shè)計(jì)集成化芯片或IP核形式的隨機(jī)數(shù)
    發(fā)表于 08-27 06:05

    學(xué)習(xí)筆記 | 基于FPGA隨機(jī)數(shù)發(fā)生器(附代碼)

    以及真隨機(jī)數(shù)。本次設(shè)計(jì)為基于FPGA生成的隨機(jī)數(shù)發(fā)生器,什么是
    發(fā)表于 04-21 19:42

    隨機(jī)數(shù)發(fā)生器FPGA實(shí)現(xiàn)與研究

    摘要:在很多實(shí)際應(yīng)用,直接利用FPGA 產(chǎn)生隨機(jī)序列的方法可以為系統(tǒng)設(shè)計(jì)或測(cè)試帶來(lái)極大的便利。本文給出了基于線性反饋移位寄存
    發(fā)表于 07-22 15:12 ?0次下載

    基于FPGA的真隨機(jī)數(shù)發(fā)生器設(shè)計(jì)

    設(shè)計(jì)并實(shí)現(xiàn)了一種基于 FPGA 的真 隨機(jī)數(shù)發(fā)生器 ,利用一對(duì)振蕩環(huán)路之間的相位漂移和抖動(dòng)以及亞穩(wěn)態(tài)作為隨機(jī)源,使用線性反饋移位寄存的輸出
    發(fā)表于 05-30 17:04 ?72次下載
    基于<b class='flag-5'>FPGA</b>的真<b class='flag-5'>隨機(jī)數(shù)</b><b class='flag-5'>發(fā)生器</b>設(shè)計(jì)

    隨機(jī)數(shù)發(fā)生器的容差分析

    基于混沌、均勻分布的真隨機(jī)數(shù)發(fā)生器的工作電路和精度要求較高的電壓參考電路的溫度漂移進(jìn)行分析,給出了仿真得到的溫度曲線;分析了工藝可能存在的
    發(fā)表于 06-10 15:53 ?26次下載
    真<b class='flag-5'>隨機(jī)數(shù)</b><b class='flag-5'>發(fā)生器</b>的容差<b class='flag-5'>分析</b>

    C語(yǔ)言中隨機(jī)數(shù)產(chǎn)生及性能檢驗(yàn)

    系統(tǒng)仿真或加密算法中常需要產(chǎn)生滿足一定分布函數(shù)的 隨機(jī)數(shù) ,高級(jí)程序設(shè)計(jì)語(yǔ)言中的庫(kù)函數(shù)采用線性同余法產(chǎn)生一個(gè)在[0,32767] 服從均勻分布的
    發(fā)表于 07-07 16:35 ?70次下載

    補(bǔ)充: FPGA產(chǎn)生基于LFSR的隨機(jī)數(shù)

    大家好,又到了每日學(xué)習(xí)的時(shí)間了,上一篇《薦讀:基于FPGA 的CRC校驗(yàn)碼生成器》文中,提到了要實(shí)現(xiàn)這一過(guò)程,仍然需要LFSR電路,參看《FPGA產(chǎn)生基于LFSR的
    的頭像 發(fā)表于 06-13 11:21 ?7888次閱讀
    補(bǔ)充: <b class='flag-5'>FPGA</b><b class='flag-5'>產(chǎn)生</b>基于LFSR的<b class='flag-5'>偽</b><b class='flag-5'>隨機(jī)數(shù)</b>

    如何使用FPGA實(shí)現(xiàn)隨機(jī)數(shù)發(fā)生器

    在很多實(shí)際應(yīng)用,直接利用FPGA產(chǎn)生隨機(jī)序列的方法可以為系統(tǒng)設(shè)計(jì)或測(cè)試帶來(lái)極大的便利。本文給出了基于線性反饋移位寄存
    發(fā)表于 02-05 15:22 ?25次下載
    如何使用<b class='flag-5'>FPGA</b>實(shí)現(xiàn)<b class='flag-5'>偽</b><b class='flag-5'>隨機(jī)數(shù)</b><b class='flag-5'>發(fā)生器</b>

    FPGA產(chǎn)生基于LFSR的隨機(jī)數(shù)概念

    大家好,又到了每日學(xué)習(xí)的時(shí)間了,上一篇《薦讀:基于FPGA 的CRC校驗(yàn)碼生成器》文中,提到了“要實(shí)現(xiàn)這一過(guò)程,仍然需要LFSR電路,參看《FPGA產(chǎn)生基于LFSR的
    的頭像 發(fā)表于 04-02 16:33 ?2674次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>產(chǎn)生</b>基于LFSR的<b class='flag-5'>偽</b><b class='flag-5'>隨機(jī)數(shù)</b>概念

    基于FPGA隨機(jī)數(shù)發(fā)生器設(shè)計(jì)方案

    基于FPGA隨機(jī)數(shù)發(fā)生器設(shè)計(jì)方案
    發(fā)表于 06-28 14:36 ?4次下載

    【STM32】隨機(jī)數(shù)發(fā)生器詳解

    00. 目錄文章目錄00. 目錄01. 隨機(jī)數(shù)發(fā)生器簡(jiǎn)介02. 隨機(jī)數(shù)發(fā)生器主要特性03. 隨機(jī)數(shù)發(fā)生器
    發(fā)表于 12-08 18:36 ?11次下載
    【STM32】<b class='flag-5'>隨機(jī)數(shù)</b><b class='flag-5'>發(fā)生器</b>詳解

    FPGA隨機(jī)數(shù)發(fā)生器學(xué)習(xí)介紹

    今天是畫(huà)師本人第一次和各位大俠見(jiàn)面,執(zhí)筆繪畫(huà)FPGA江湖,本人寫(xiě)了篇關(guān)于FPGA隨機(jī)數(shù)發(fā)生器學(xué)習(xí)筆記,這里分享給大家,僅供參考。 基于
    的頭像 發(fā)表于 09-12 09:13 ?2115次閱讀

    如何在FPGA實(shí)現(xiàn)隨機(jī)數(shù)發(fā)生器

    分享如何在Xilinx Breadboardable Spartan-7 FPGA, CMOD S7實(shí)現(xiàn)4位隨機(jī)數(shù)發(fā)生器(PRNGs)。
    的頭像 發(fā)表于 08-06 11:20 ?1213次閱讀
    如何在<b class='flag-5'>FPGA</b><b class='flag-5'>中</b>實(shí)現(xiàn)<b class='flag-5'>隨機(jī)數(shù)</b><b class='flag-5'>發(fā)生器</b>