基于Virtex-5平臺(tái)的真隨機(jī)數(shù)發(fā)生器的設(shè)計(jì)實(shí)現(xiàn)
2 TRNG的FPGA實(shí)現(xiàn)與測(cè)試
本文引用地址:http://www.ex-cimer.com/article/269579.htm整個(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è)試組成的用來度量隨機(jī)數(shù)發(fā)生器性能的一組統(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)過同步器后不與PRBS運(yùn)算直接輸出。將采集到的隨機(jī)序列送入測(cè)試程序進(jìn)行測(cè)試以后,其結(jié)果如表1所示。
可以看出,振蕩器的數(shù)目直接影響隨機(jī)源模塊產(chǎn)生序列的統(tǒng)計(jì)性能,振蕩器數(shù)目越多,TRNG輸出序列的隨機(jī)性越好。但是如果振蕩器的數(shù)目太多,會(huì)消耗過多的硬件資源,功耗也過大。因此,不宜通過單純地增加振蕩器數(shù)目的方法提高隨機(jī)序列的性能。
定性分析如下:將序列的每位看作是一個(gè)隨機(jī)的二進(jìn)制變量X,定義b是序列的偏置。即
b=|P(X=1)-1/2|=|P(X=0)-1/2| (2)
根據(jù)Piling-up引理,輸出序列的偏置是:
其中n是輸入序列的個(gè)數(shù),bi是每個(gè)序列的偏置。容易看出b≤bi(1≤i≤n),等式當(dāng)且僅當(dāng)在bi=0(
2.3 后續(xù)處理模塊對(duì)統(tǒng)計(jì)性能的改善
由上一節(jié)的分析可知,增加振蕩器數(shù)量是改善序列統(tǒng)計(jì)特性的有效方法。但前提條件是各個(gè)振蕩器相互獨(dú)立。當(dāng)振蕩器數(shù)量過多時(shí)位置約束很可能與相互獨(dú)立的要求相互矛盾。因?yàn)楦咚俚恼袷幮盘?hào)往往發(fā)生相互串?dāng)_的情況,并且消耗更多資源和功耗,所以有必要在保證TRNG包含一定數(shù)量的振蕩器的前提下,引入后續(xù)處理模塊。從而達(dá)到消耗資源較少,序列性能較好的目的。
本項(xiàng)測(cè)試以19組振蕩器作為TRNG的隨機(jī)源,輸出序列與PRBS模塊輸出進(jìn)行異或運(yùn)算,然后分別使用32,16,8,2 MHz的采樣時(shí)鐘采集數(shù)據(jù)。將數(shù)據(jù)送入測(cè)試程序進(jìn)行測(cè)試以后,結(jié)果如表2所示。
可以看出,TRNG生成的隨機(jī)序列全部達(dá)到了預(yù)定的性能指標(biāo)。同時(shí)不難發(fā)現(xiàn),采樣時(shí)鐘頻率對(duì)TRNG的輸出統(tǒng)計(jì)特性是有影響的,當(dāng)采樣頻率逐漸降低時(shí),TRNG的隨機(jī)性能逐步提高。出現(xiàn)這種現(xiàn)象是由于采樣頻率越高,就與振蕩頻率越接近,二者的相位偏移干擾了隨機(jī)信號(hào)的獲取影響了統(tǒng)計(jì)特性。
3 結(jié)束語
本文嘗試了一種純數(shù)字形式的真隨機(jī)數(shù)發(fā)生器結(jié)構(gòu),規(guī)模較小、易于移植。電路包含兩個(gè)振蕩環(huán),分為自由振蕩和鎖存至雙穩(wěn)態(tài)兩個(gè)工作狀態(tài)。利用振蕩環(huán)之間的相位偏移和抖動(dòng)以及雙穩(wěn)態(tài)器件的亞穩(wěn)態(tài)作為隨機(jī)源。本文探討了振蕩器數(shù)量對(duì)序列統(tǒng)計(jì)特性的影響,并在加入后續(xù)處理模塊的情況下試驗(yàn)了多種采樣頻率,經(jīng)測(cè)試隨機(jī)序列完全符合預(yù)定指標(biāo)。
負(fù)離子發(fā)生器相關(guān)文章:負(fù)離子發(fā)生器原理
評(píng)論