一种真随机数发生器自动优化方法与流程

文档序号:14571705发布日期:2018-06-01 22:33阅读:334来源:国知局
一种真随机数发生器自动优化方法与流程

本发明涉及真随机数发生器技术领域, 尤其涉及真随机数发生器自动优化方法。



背景技术:

真随机数发生器(TRNG)是利用自然界的物理现象的随机性来产生随机序列的。如图1所示,为现有的随机数发生器示意图,其中图1(a),是一种基于环形振荡器实现方式的随机数发生器,这种环形振荡器的随机性首先决定于环路振荡器上反相器的热噪声的随机性,其次决定于环形振荡器的环路的个数,环路上反相器的个数。因此当同一种实现方式的随机数发生器,在更换集成电路设计工艺时,由于器件的热噪声性能不同,导致真随机数发生器的随机性不同。经常发生的问题是,真随机数发生器仅更换器件,不更换组合方案的情况下,在A工艺下的产品中,真随机数发生器可提供较为可靠的随机数,但移植到B工艺时,就不能满足随机性的要求了。由于不同工艺间的偏差所导致的随机性的偏差没有在移植过程中得到考虑。为了增加真随机数的鲁棒性,通常会选择不断增加环路数量和改变环路上反相器的数量的方式提高随机性,如图1(b)所示,但是,这种方式虽然提高了随机数发生器的熵(即随机性),但是造成了较大的面积与功耗的浪费。因此,需要一种方法能够给出在不同工艺情况下,真随机数发生器的任意组合方式,既能够达到随机性良好,还能够做到面积和功耗最优的设计方案。



技术实现要素:

针对上述现有技术中存在的不足,本发明的目的是,提供一种真随机数发生器自动优化方法,该方法能够自动根据不同工艺的差别,选取真随机数发生器的参数,给出满足要求的最优方案。

为了达到上述技术目的,本发明所采用的技术方案是:

一种真随机数发生器自动优化方法,该自动优化方法的具体步骤如下:

第一步:种群初始化,内容包括:(1)总群的个数;(2)种群中染色体的最大最小值;(3)基因值的最大最小值;(4)迭代次数最大值;(5)交叉率与变异率;(6)随机数初始总群中的初代个体;

第二步:进行一代遗传,因此迭代次数加1;

第三步:计算本代中,个体的适应函数;

第四步:根据适应函数的值,利用轮盘赌算法进行选择;

第五步:利用选择出的个体进行交叉;

第六步:利用选择和交叉后的个体进行染色体数量基因数值的变异;

第七步:利用第六步变异后的个体进行染色体数量的变异;

第八步:判断是否已经有10轮次最优值没有变化;如果最优值10轮未变,则算法结束;否则的话,则进行第八步;

第九步:判断该轮次是否大于等于最大迭代次数,如果是,则算法结束;如果不是则本代遗传算法结束,返回第二步。

优选地,所述真随机数发生器自动优化方法中,所述种群定义为:假设种群数量为m,每个个体有n个染色体,每个染色体有一个基因,数值为q,则总群中每个个体表示为:Xm = [q1,q2,q3……qn]。

本发明由于能够根据不同工艺的差别,选取真随机数发生器的参数,在工艺变换过程中,不需要重新人工设计计算和设计真随机数的电路,加速了产品设计和生产的周期。同时,针对随机数发生器的特殊场景,重新描述种群定义,对遗传算法的改进,交叉过程为染色体的交叉,而非更换基因;染色体的变异过程分为两步,增加了染色体数量的变异情况,而且,这种自动优化方法提高了遗传算法的收敛速度,从而达到真随机数发生器面积和功耗最优的效果。

下面结合附图和具体实施方式对本发明做进一步说明。

附图说明

图1是现有的随机数发生器示意图。

图2是本发明具体实施的真随机数发生器自动优化方法流程图。

具体实施方式

参看图2,为本发明具体实施的真随机数发生器自动优化方法流程图。其中,种群定义为:假设种群数量为m,每个个体有n个染色体,每个染色体有一个基因,数值为q,则总群中每个个体表示为:

Xm = [q1,q2,q3……qn]。

(1)适应函数:两个优化目标包括随机性和功耗。

随机性的函数为R(xm),不同的振荡器环路模型会有不同的随机性函数,但应保证随机性越大,随即性函数的值越大;本技术方案中利用熵函数来表示随机性的函数。

Probue:随机数振荡器输出为1的概率。

(2)功耗函数为P(xm),不同工艺库中的器件不同,其功耗函数的计算方式也不同,但应保证功耗越大,功耗函数的值越大。

(3)适应度函数:适应度函数越高,个体的适应度越好,根据本方案的情况,应该是随机性越好,功耗越小的个体适应度函数的值越大。因此适应度函数为:

f(xm) = z R(xm)/P(xm)

其中,z 为归依化参数,使得f(xm) 的最大值为1。

(4)选择:选择个体的方法很多,轮盘赌等,这里不特定指某种方案;

轮盘赌方法的步骤:

A:计算出群体中所有个体的适应度的总和;

B:计算出每个个体被遗传到下一代群体中的概率,全部概率值之和为1;

C:计算出每个个体的累积概率;

D:产生一个0到1之间的随机数r,若r<q[1],则选择个体1,否则,选择个体k,使得:q[k-1]<r≤q[k] 成立。

(5)交叉:进行交叉的两个父辈染色体单点交叉的方式交换染色体。生成随机数r1,r2,r3当r1<p(选择率),在上述(4)选择的个体中,自r2位置开始进行交叉,交叉染色体长度为r3;

例如:第n代的第i和第j个个体被选择用于交换,得到第n+1代的第i和第j个个体如下所述:

Xn,i=[q1,q2,q3…qr2…qr2+r3…qn] Xn+1,i= [q1,q2,q3…pr2…pr2+r3…qn]

Xn,j=[p1,p2,p3…pr2…pr2+r3…pn] Xn+1,j=[p1,p2,p3…qr2…qr2+r3…pn]

(6)变异:由于方案的特殊性,该方案的变异分为两个步骤:

A:进行变异的子辈染色体单点变异的方式改变某条染色体。生成随机数r1,r2,当r1<q(变异率),在第五步交叉后的个体中,在个体中的r2位置,进行染色体变异;例如,第n代的第i个个体被选择用于变异A,得到第n+1代的第i个体如下所述:

Xn,i=[q1,q2,q3…qr2…qn] Xn+1,i=[q1,q2,q3…mr2…qn]

B:进行变异的子辈染色体的数量增加。生成随机数r1,r2;当r1<q(变异率),该变异个体增加一个染色体,增加染色体基因的值为r1>1-q(变异率),该变异个体减少一个染色体,染色体的基因的值为0,增加染色体。例如,第n代的第i个个体被选择用于变异B,增加一个染色体,得到第n+1代的第i个体如下所述:

Xn,i=[q1,q2,q3……qn] Xn+1,i=[q1,q2,q3……qn,qn+1,]

第n代的第i个个体被选择用于变异B,减少一个染色体,得到第n+1代的第i个体如下所述:

Xn,i=[q1,q2,q3……qn] Xn+1,i=[q1,q2,q3……qn-1,0]。

从上述可以看出,由于对遗传算法的改进,交叉过程为染色体的交叉,而非更换基因,使得染色体的变异过程分为两步,增加了染色体数量的变异情况,显著提高了遗传算法的收敛速度,从而达到真随机数发生器面积和功耗最优的效果。

本发明并不限于上文讨论的实施方式,以上对具体实施方式的描述旨在于为了描述和说明本发明涉及的技术方案。基于本发明启示的显而易见的变换或替代也应当被认为落入本发明的保护范围;以上的具体实施方式用来揭示本发明的最佳实施方法,以使得本领域的普通技术人员能够应用本发明的多种实施方式以及多种替代方式来达到本发明的目的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1