新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 一種基于FPGA的真隨機(jī)數(shù)發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)

一種基于FPGA的真隨機(jī)數(shù)發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2012-02-07 來(lái)源:網(wǎng)絡(luò) 收藏

1.4 隨機(jī)源模塊的電路設(shè)計(jì)
各個(gè)振蕩器的輸出經(jīng)過(guò)異或運(yùn)算可以增加隨機(jī)性,而亞穩(wěn)態(tài)的傳播會(huì)造成后續(xù)電路的錯(cuò)誤動(dòng)作,因此使用同步器將異或后的隨機(jī)序列與后續(xù)電路隔離開來(lái),同時(shí)也方便采集穩(wěn)定的輸出序列做性能分析。此處采用了三級(jí)寄存器的同步結(jié)構(gòu),由MTBF(Mean Time Between Failure)的定義可知,平均需要經(jīng)過(guò)數(shù)百年時(shí)間才會(huì)發(fā)生一次亞穩(wěn)態(tài)通過(guò)同步器向下傳播的事件,因此是滿足設(shè)計(jì)要求的。該模塊電路圖如圖4所示。

本文引用地址:http://m.butianyuan.cn/article/190794.htm

d.jpg


1.5 后續(xù)處理模塊的設(shè)計(jì)
理想情況下,D觸發(fā)器所采集的信號(hào)具有隨機(jī)的統(tǒng)計(jì)特性,可是內(nèi)部電路不可避免地會(huì)受到溫度漂移、電壓抖動(dòng)等不良因素影響,從而導(dǎo)致采樣得到的隨機(jī)信號(hào)中存在偏置,影響結(jié)果的統(tǒng)計(jì)特性。所以在采樣得到隨機(jī)序列后要對(duì)數(shù)據(jù)進(jìn)行消偏處理,使0和1出現(xiàn)的概率相當(dāng)。
本設(shè)計(jì)采用16位最大長(zhǎng)度二進(jìn)制偽隨機(jī)序列(Pseudo Random Binary Sequence)的輸出與采樣得到的隨機(jī)序列進(jìn)行異或運(yùn)算作為后續(xù)處理,PRBS產(chǎn)生電路消耗資源少并且使用線性反饋移位寄存器實(shí)現(xiàn),非常適合于在上實(shí)現(xiàn)。它的生成多項(xiàng)式是:
e.jpg
多項(xiàng)式表示如圖5所示。

f.jpg



2 TRNG的實(shí)現(xiàn)與測(cè)試
整個(gè)TRNG的實(shí)驗(yàn)環(huán)境由外部時(shí)鐘源、FPGA開發(fā)板以及邏輯分析儀組成。TRNG采用Xilinx公司的Virtex-5系列中的XC5VLX110作為物理實(shí)現(xiàn)平臺(tái),外部時(shí)鐘頻率為64 MHz。由FPGA產(chǎn)生的隨機(jī)數(shù)據(jù),經(jīng)邏輯分析儀采集后,使用DIEHARD battery of tests of randomness隨機(jī)數(shù)測(cè)試程序進(jìn)行測(cè)試,檢驗(yàn)隨機(jī)序列的性能。
DIEHARD測(cè)試是由16項(xiàng)測(cè)試組成的用來(lái)度量性能的一組統(tǒng)計(jì)學(xué)測(cè)試,它由George Marsaglia開發(fā)并于1995年首次發(fā)布。DIE HARD的測(cè)試結(jié)果叫做P-value,它由方程P-value=Fi(X)計(jì)算得到,其中Fi試圖建立樣本X在0和1間服從均勻分布的分布函數(shù)。因?yàn)镕i是漸進(jìn)逼近的,它在尾部的近似效果變差,所以數(shù)值接近0或1的P-value在真隨機(jī)序列中極少出現(xiàn)。當(dāng)被測(cè)序列隨機(jī)性能很差時(shí),會(huì)有很多P-value的值是精確到小數(shù)點(diǎn)后數(shù)位的0或者1,例如1.000 000。需要強(qiáng)調(diào)的是,P-value等于1.000 000或0.000000是序列為真隨機(jī)序列的充分不必要條件。
2.1 FPGA位置約束
為保證每個(gè)振蕩器中的兩個(gè)獨(dú)立振蕩環(huán)的理論振蕩周期相同,以便更容易在鎖定期間產(chǎn)生亞穩(wěn)態(tài),加大噪聲對(duì)輸出電平的影響,同時(shí)盡量讓各個(gè)振蕩器的輸出在進(jìn)行異或運(yùn)算前延遲不出現(xiàn)太大偏差。所以對(duì)TRNG中的振蕩環(huán)進(jìn)行位置約束:將振蕩環(huán)中的反相器約束在左右相鄰的邏輯單元(Slice)中,讓各個(gè)振蕩環(huán)分別約束在上下相鄰的邏輯單元中。
2.2 振蕩器數(shù)目對(duì)統(tǒng)計(jì)特性的影響
在32 MHz的采樣頻率下,分別以15組、19組、27組和32組振蕩器作為TRNG的隨機(jī)源,隨機(jī)序列經(jīng)過(guò)同步器后不與PRBS運(yùn)算直接輸出。將采集到的隨機(jī)序列送入測(cè)試程序進(jìn)行測(cè)試以后,其結(jié)果如表1所示。

g.jpg


可以看出,振蕩器的數(shù)目直接影響隨機(jī)源模塊產(chǎn)生序列的統(tǒng)計(jì)性能,振蕩器數(shù)目越多,TRNG輸出序列的隨機(jī)性越好。但是如果振蕩器的數(shù)目太多,會(huì)消耗過(guò)多的硬件資源,功耗也過(guò)大。因此,不宜通過(guò)單純地增加振蕩器數(shù)目的方法提高隨機(jī)序列的性能。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉