分享如何在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í)現(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)。
CMOD 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。
隨機(jī)數(shù)的一個(gè)輸出。二進(jìn)制的1011是十進(jìn)制的11
4位二進(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、演示
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)
-
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)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
【assingle分享】labview隨機(jī)數(shù)發(fā)生器
【總結(jié)】LabVIEW隨機(jī)數(shù)發(fā)生器
怎么設(shè)計(jì)基于USB和FPGA的隨機(jī)數(shù)發(fā)生器驗(yàn)證平臺(tái)?
請(qǐng)問(wèn)隨機(jī)數(shù)發(fā)生器的主要特性和功能以及如何操作?
隨機(jī)數(shù)發(fā)生器的相關(guān)資料分享
學(xué)習(xí)筆記 | 基于FPGA的偽隨機(jī)數(shù)發(fā)生器(附代碼)
用振蕩器采樣隨機(jī)數(shù)發(fā)生器保證網(wǎng)絡(luò)SoC設(shè)計(jì)加密算法的安全性
基于FPGA的真隨機(jī)數(shù)發(fā)生器設(shè)計(jì)

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

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

PIC32系列參考手冊(cè)之加密引擎和隨機(jī)數(shù)發(fā)生器(RNG)
基于FPGA的偽隨機(jī)數(shù)發(fā)生器設(shè)計(jì)方案
【STM32】隨機(jī)數(shù)發(fā)生器詳解

FPGA的偽隨機(jī)數(shù)發(fā)生器學(xué)習(xí)介紹
基于多級(jí)反饋環(huán)形振蕩器的真隨機(jī)數(shù)發(fā)生器設(shè)計(jì)

評(píng)論