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中實(shí)現(xiàn)隨機(jī)數(shù)發(fā)生器

FPGA研究院 ? 來(lái)源:Java學(xué)研大本營(yíng) ? 2024-08-06 11:20 ? 次閱讀

分享如何在Xilinx Breadboardable Spartan-7 FPGA, CMOD S7中實(shí)現(xiàn)4位偽隨機(jī)數(shù)發(fā)生器(PRNGs)。

現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)是一種高度可配置的集成電路,它使開(kāi)發(fā)者能夠測(cè)試和重寫(xiě)程序以執(zhí)行各種功能。它在原型設(shè)計(jì)、測(cè)試數(shù)字電路和實(shí)現(xiàn)生產(chǎn)中的定制數(shù)字系統(tǒng)方面很受歡迎。

該領(lǐng)域涉及但不限于:

數(shù)字信號(hào)處理

-實(shí)現(xiàn)濾波器、變換和信號(hào)發(fā)生器

-示例應(yīng)用:音頻、視頻處理、通信系統(tǒng)和雷達(dá)處理。

機(jī)器學(xué)習(xí)(ML)和人工智能AI

-實(shí)現(xiàn)定制的ML和AI算法,如CNN

-示例應(yīng)用:計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理和語(yǔ)音識(shí)別

通信系統(tǒng)和數(shù)據(jù)存儲(chǔ)中的加密安全

-實(shí)現(xiàn)加密算法,如AES、DES和RSA

-示例應(yīng)用:安全通信系統(tǒng)和數(shù)據(jù)存儲(chǔ)

工業(yè)控制系統(tǒng)

-在各種工業(yè)中實(shí)現(xiàn)定制的控制系統(tǒng)機(jī)器人、自動(dòng)化和過(guò)程控制

-示例應(yīng)用:自主車輛控制系統(tǒng)和智能電網(wǎng)控制系統(tǒng)

航空航天和國(guó)防

-實(shí)現(xiàn)定制的數(shù)字系統(tǒng),具有高性能、低功耗和抗輻射能力

-示例應(yīng)用:雷達(dá)處理和制導(dǎo)系統(tǒng)

1、 問(wèn)題陳述

雖然隨機(jī)性是安全網(wǎng)絡(luò)物理系統(tǒng)(CPS)的一個(gè)重要組成部分,但如何在FPGA中實(shí)現(xiàn)隨機(jī)數(shù)發(fā)生器呢?

今天分享一下關(guān)于如何在Xilinx Breadboardable Spartan-7 FPGA, CMOD S7中實(shí)現(xiàn)4位偽隨機(jī)數(shù)發(fā)生器(PRNGs)。

請(qǐng)注意,PRNGs與真隨機(jī)數(shù)發(fā)生器不同。PRNGs可能在輸出中存在偏差或模式,因此應(yīng)結(jié)合其他安全措施使用,如安全的密鑰管理實(shí)踐和強(qiáng)大的加密算法,以保護(hù)目標(biāo)系統(tǒng)。

28b6cd68-4f14-11ef-b8af-92fbcf53809c.pngCMOD S7的近景

下面是用Verilog語(yǔ)言編寫(xiě)的程序,使用了Vivado軟件。在這個(gè)程序中,主要有3個(gè)主要功能:

這個(gè)程序使用計(jì)數(shù)器來(lái)確定1秒的間隔

這個(gè)程序在反饋中進(jìn)行LFSR操作,并計(jì)算4位lfsr_reg

這個(gè)程序以二進(jìn)制格式輸出隨機(jī)數(shù),用LED燈顯示,范圍從0 ~ 15。下圖顯示為1011,即十進(jìn)制的11。

28eae9fe-4f14-11ef-b8af-92fbcf53809c.png隨機(jī)數(shù)的一個(gè)輸出。二進(jìn)制的1011是十進(jìn)制的11

290a2422-4f14-11ef-b8af-92fbcf53809c.png4位二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制。

下面是用Verilog語(yǔ)言實(shí)現(xiàn)4位LFSR的源代碼。

我們定義了一個(gè)名為“DELAY”的常量,其十進(jìn)制值為12000000,以匹配默認(rèn)時(shí)鐘運(yùn)行在12 MHz

clog2(12000000)=24

//因?yàn)槟J(rèn)時(shí)鐘運(yùn)行在12MHz
`defineDELAY1_200_000_0//1秒

modulelfsr(
inputclk,
outputreg[3:0]LED
);

reg[3:0]lfsr_reg;
reg[$clog2(`DELAY)-1:0]counter=0;

wirefeedback;

assignfeedback=~(lfsr_reg[3]^lfsr_reg[2]);

always@(posedgeclk)
begin
if(counter==`DELAY-1)
begin
counter<=?0;?//?復(fù)位計(jì)數(shù)器
????????lfsr_reg?<=?{lfsr_reg[2:0],?feedback};?//?更新LFSR?//?反饋位在第3和第2位,向左移位
????????LED?=?lfsr_reg;
????end?
????else
????????counter?<=?counter?+?1;?//?增加計(jì)數(shù)器
????????
end

Cmod-S7–25-Master.xdc的示例內(nèi)容,其中定義了設(shè)計(jì)約束,如引腳分配、時(shí)鐘約束和I/O時(shí)序參數(shù),這些參數(shù)在實(shí)現(xiàn)階段使用。

##Thisfileisageneral.xdcfortheCmodS7-25Rev.B
##Touseitinaproject:
##-uncommentthelinescorrespondingtousedpins
##-renametheusedports(ineachline,afterget_ports)accordingtothetoplevelsignalnamesintheproject

##12MHzSystemClock
set_property-dict{PACKAGE_PINM9IOSTANDARDLVCMOS33}[get_ports{clk}];#IO_L13P_T2_MRCC_14Sch=gclk
create_clock-add-namesys_clk_pin-period83.33-waveform{041.66}[get_ports{clk}];

##4LEDs
set_property-dict{PACKAGE_PINE2IOSTANDARDLVCMOS33}[get_ports{LED[0]}];#IO_L8P_T1_34Sch=led[1]
set_property-dict{PACKAGE_PINK1IOSTANDARDLVCMOS33}[get_ports{LED[1]}];#IO_L16P_T2_34Sch=led[2]
set_property-dict{PACKAGE_PINJ1IOSTANDARDLVCMOS33}[get_ports{LED[2]}];#IO_L16N_T2_34Sch=led[3]
set_property-dict{PACKAGE_PINE1IOSTANDARDLVCMOS33}[get_ports{LED[3]}];#IO_L8N_T1_34Sch=led[4]

set_propertyCONFIG_VOLTAGE3.3[current_design]
set_propertyCFGBVSVCCO[current_design]

set_propertyBITSTREAM.GENERAL.COMPRESSTRUE[current_design]
set_propertyBITSTREAM.CONFIG.CONFIGRATE33[current_design]
set_propertyCONFIG_MODESPIx4[current_design]

2、演示

291c01ba-4f14-11ef-b8af-92fbcf53809c.gif

3 、結(jié)論

從綜合報(bào)告中可以看出,這個(gè)程序只占用了FPGA中0.05%的LUT滑塊。我們可以在這個(gè)CMOD S7中實(shí)現(xiàn)更多有趣的功能,充分利用資源。

來(lái)源: 本文轉(zhuǎn)載自Java學(xué)研大本營(yíng)公眾號(hào)

聲明:本文內(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)注

    1643

    文章

    21954

    瀏覽量

    613889
  • 濾波器
    +關(guān)注

    關(guān)注

    162

    文章

    8065

    瀏覽量

    180935
  • Xilinx
    +關(guān)注

    關(guān)注

    73

    文章

    2181

    瀏覽量

    124310
  • 生成器
    +關(guān)注

    關(guān)注

    7

    文章

    322

    瀏覽量

    21663

原文標(biāo)題:使用Verilog在FPGA中實(shí)現(xiàn)偽隨機(jī)數(shù)生成器

文章出處:【微信號(hào):FPGA研究院,微信公眾號(hào):FPGA研究院】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

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

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

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

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

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

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

    一種必然。為此,基于純數(shù)字電路實(shí)現(xiàn)隨機(jī)數(shù)發(fā)生器已成為研究的熱點(diǎn),而FPGA可編程邏輯芯片為此類隨機(jī)數(shù)發(fā)
    發(fā)表于 08-27 06:05

    請(qǐng)問(wèn)隨機(jī)數(shù)發(fā)生器的主要特性和功能以及如何操作?

    隨機(jī)數(shù)發(fā)生器簡(jiǎn)介隨機(jī)數(shù)發(fā)生器主要特性隨機(jī)數(shù)發(fā)生器功能說(shuō)明隨機(jī)
    發(fā)表于 11-13 07:51

    隨機(jī)數(shù)發(fā)生器的相關(guān)資料分享

    00. 目錄文章目錄00. 目錄01. 隨機(jī)數(shù)發(fā)生器簡(jiǎn)介02. 隨機(jī)數(shù)發(fā)生器主要特性03. 隨機(jī)數(shù)發(fā)生器
    發(fā)表于 02-14 07:35

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

    以及真隨機(jī)數(shù)。本次設(shè)計(jì)為基于FPGA生成的偽隨機(jī)數(shù)發(fā)生器,什么是偽隨機(jī)數(shù)呢?統(tǒng)計(jì)學(xué)偽隨機(jī)性指的是
    發(fā)表于 04-21 19:42

    用振蕩采樣隨機(jī)數(shù)發(fā)生器保證網(wǎng)絡(luò)SoC設(shè)計(jì)加密算法的安全性

    用振蕩采樣隨機(jī)數(shù)發(fā)生器保證網(wǎng)絡(luò)SoC設(shè)計(jì)加密算法的安全性 在保障互聯(lián)網(wǎng)安全的各種加密算法,隨機(jī)數(shù)產(chǎn)生至關(guān)重要。產(chǎn)生
    發(fā)表于 12-26 14:45 ?1166次閱讀

    基于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)行分析,給出了仿真得到的溫度曲線;分析了工藝可能存在的問(wèn)題和溫度的影響與運(yùn)放的
    發(fā)表于 06-10 15:53 ?26次下載
    真<b class='flag-5'>隨機(jī)數(shù)</b><b class='flag-5'>發(fā)生器</b>的容差分析

    利用FPGA的自身特性實(shí)現(xiàn)隨機(jī)數(shù)發(fā)生器

    本文主要介紹利用FPGA的自身的特性實(shí)現(xiàn)隨機(jī)數(shù)發(fā)生器,在Virtex-II Pro開(kāi)發(fā)板上用ChipScope觀察隨機(jī)數(shù)序列,以及在PCIe
    發(fā)表于 02-11 16:26 ?1.4w次閱讀
    利用<b class='flag-5'>FPGA</b>的自身特性<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>隨機(jī)數(shù)</b><b class='flag-5'>發(fā)生器</b>

    PIC32系列參考手冊(cè)之加密引擎和隨機(jī)數(shù)發(fā)生器(RNG)

    本文主要介紹了PIC32系列參考手冊(cè)之加密引擎和隨機(jī)數(shù)發(fā)生器(RNG)。
    發(fā)表于 06-05 17:29 ?5次下載

    基于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í)筆記,這里分享給大家,僅供參考。 基于FPGA
    的頭像 發(fā)表于 09-12 09:13 ?1970次閱讀

    基于多級(jí)反饋環(huán)形振蕩的真隨機(jī)數(shù)發(fā)生器設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于多級(jí)反饋環(huán)形振蕩的真隨機(jī)數(shù)發(fā)生器設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 09-14 14:56 ?0次下載
    基于多級(jí)反饋環(huán)形振蕩<b class='flag-5'>器</b>的真<b class='flag-5'>隨機(jī)數(shù)</b><b class='flag-5'>發(fā)生器</b>設(shè)計(jì)

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品