随机数产生方法以及装置 【技术领域】
本发明涉及一种随机数产生方法及装置,特别涉及一种经由预测线性反馈移位寄存器所输出的布尔函数,搭配简单的逻辑门与相关运算,以缩短随机数运算时间的方法及装置。
背景技术
在目前电路设计的领域中,线性反馈移位寄存器(Liner Feedback ShiftRegister,LFSR)是一种用来产生准随机数式样(Pseudo Random PatternGeneration,PRPG)的电路设计。一般来说,最基本的线性反馈移位寄存器主要为移位寄存器(Shift Register,SR)在其输出端反馈有串接的异门(exclusive-OR)路径,以输出作为随机数结果的比特。通常,一个最基本的n位线性反馈移位寄存器在经过1个时钟脉冲(clock)后,可产生一个比特的随机数结果,在经过n个时钟脉冲后,可产生n个比特的随机数结果,且一个n比特的线性反馈移位寄存器最多可以产生2n-1个比特的随机数结果。
请参考图1,图1为常用的16位线性反馈移位寄存器的示意图。在图1中,16位线性反馈移位寄存器100包括有16位移位寄存器110以及异门120、130。其中,16位移位寄存器100中第0~第15个比特暂存位置可分别接受a[0]~a[15]的比特输入。且每经过一个时钟脉冲后,第0~第15个比特暂存位置内的a[0]~a[15]的比特则分别向左位移一个位置。以第0比特暂存位置内的a[0]比特为例,经过一个时钟脉冲后,a[0]比特即由第0比特暂存位置移位至第1比特暂存位置,再经过一个时钟脉冲后,a[0]比特即由第1比特暂存位置移位至第2比特暂存位置,...以此类推。
而此16位线性反馈移位寄存器100对于随机数输出地设计,则是采取将暂存在第5、第10以及第15比特暂存位置的比特输出,且将暂存在第15以及第10比特暂存位置的比特经异门120作异运算后,再与暂存在第5比特暂存位置的比特经异门130作异运算后输出,并以此作为反馈至第0比特暂存位置以及输出的比特140。因此,此16位线性反馈移位寄存器100每经过一时钟脉冲后即可输出一个比特140作为随机数结果,且比特140也同时反馈至第0比特暂存位置以产生下一个时钟脉冲的比特140作为随机数结果。然而,随着高速电路发展的驱动,线性反馈移位寄存器在每个时钟脉冲后仅产生一个比特作为随机数结果已不敷所需,因此,在每个时钟脉冲后产生多个比特作为随机数结果的线性反馈移位寄存器则被设计出。
请参考图2,图2为常用的另一线性反馈移位寄存器的示意图。在图2中,此线性反馈移位寄存器200以并联的16位线性反馈移位寄存器210、20位线性反馈移位寄存器220、搭配全加法器230以同时产生两比特240、245作为随机数结果。其中,此线性反馈移位寄存器200所产生的随机数比特240是透过16位线性反馈移位寄存器210,以及20位线性反馈移位寄存器220在每个时钟脉冲后分别产生的比特215、225,作为全加法器230输入端A、B的输入。因此,在每个时钟脉冲后,全加法器230A输入端A、B分别接收比特215与225,用以产生和(sum)比特240以及进位(carry)比特245,而且进位比特245还同时反馈作为全加法器230的前一级进位输入端carryin的输入。因此,此线性反馈移位寄存器200的全加法器230可在每个时钟脉冲后产生和比特240以及进位比特245,以作为随机数结果。同理,若要在每个时钟脉冲后,产生例如是8比特或16比特作为随机数结果时,必须并联更多线性反馈移位寄存器才能实现。不过,在并联更多线性反馈移位寄存器的情况下,势必付出更多成本。
有鉴于此,本发明提出一种随机数产生方法以及装置,可在不必付出太多成本的情况下,在每个时钟脉冲后产生多个比特,以作为多个随机数结果。
【发明内容】
本发明的一个目的是提供一种随机数产生方法,包括:根据一布尔函数组设计一N位线性反馈移位寄存器的反馈控制,以使该N位线性反馈移位寄存器在每一时钟脉冲后,即可产生该布尔函数所对应的比特组,其中该函数代表该N位线性反馈移位寄存器在经第M个时钟脉冲后所累积输出的比特组,且该布尔函数以第0个时钟脉冲为基准所产生的关系式;以及以该N位线性反馈移位寄存器所输出的对应于该布尔函数的该比特组,作为该N位线性反馈移位寄存器的反馈输入,以在下一个时钟脉冲后产生对应于该布尔函数的下一比特组。
根据上述目的,该随机数产生方法,还包括:若该N位线性反馈移位寄存器为一16位线性移位寄存器,且该16位线性移位寄存器具有一第0~一第15比特暂存位置时,则该16位线性移位寄存器经1个时钟脉冲后,该布尔函数组被预测为:
a.该第15比特暂存位置的比特该第10比特暂存位置的比特该第15比特暂存位置的比特。
根据上述目的,该随机数产生方法,其中该16位线性移位寄存器经2个时钟脉冲后,该布尔函数组依序被预测为:
a.该第15比特暂存位置的比特该第10比特暂存位置的比特该第5比特暂存位置的比特;以及
b.该第14比特暂存位置的比特该第9比特暂存位置的比特该第4比特暂存位置的比特。
根据上述目的,该随机数产生方法,其中该16位线性移位寄存器经3个时钟脉冲后,该布尔函数组依序被预测为:
a.该第15比特暂存位置的比特该第10比特暂存位置的比特该第5比特暂存位置的比特;
b.该第14比特暂存位置的比特该第9比特暂存位置的比特该第4比特暂存位置的比特;以及
c.该第13比特暂存位置的比特该第8比特暂存位置的比特该第3比特暂存位置的比特。
根据上述目的,该随机数产生方法,其中该16位线性移位寄存器经4个时钟脉冲后,该布尔函数组依序被预测为:
a.该第15比特暂存位置的比特该第10比特暂存位置的比特该第5比特暂存位置的比特;
b.该第14比特暂存位置的比特该第9比特暂存位置的比特该第4比特暂存位置的比特;
c.该第13比特暂存位置的比特该第8比特暂存位置的比特该第3比特暂存位置的比特;以及
d.该第12比特暂存位置的比特该第7比特暂存位置的比特该第2比特暂存位置的比特。
根据上述目的,该随机数产生方法,其中该16位线性移位寄存器经5个时钟脉冲后,该布尔函数组依序被预测为:
a.该第15比特暂存位置的比特该第10比特暂存位置的比特该第5比特暂存位置的比特;
b.该第14比特暂存位置的比特该第9比特暂存位置的比特该第4比特暂存位置的比特;
c.该第13比特暂存位置的比特该第8比特暂存位置的比特该第3比特暂存位置的比特;
d.该第12比特暂存位置的比特该第7比特暂存位置的比特该第2比特暂存位置的比特;以及
e.该第11比特暂存位置的比特该第6比特暂存位置的比特该第1比特暂存位置的比特。
根据上述目的,该随机数产生方法,其中该16位比特线性移位寄存器经6个时钟脉冲后,该布尔函数组依序被预测为:
a.该第15比特暂存位置的比特该第10比特暂存位置的比特该第5比特暂存位置的比特;
b.该第14比特暂存位置的比特该第9比特暂存位置的比特该第4比特暂存位置的比特;
c.该第13比特暂存位置的比特该第8比特暂存位置的比特该第3比特暂存位置的比特;
d.该第12比特暂存位置的比特该第7比特暂存位置的比特该第2比特暂存位置的比特;
e.该第11比特暂存位置的比特该第6比特暂存位置的比特该第1比特暂存位置的比特:以及
f.该第10比特暂存位置的比特该第5比特暂存位置的比特该第0比特暂存位置的比特。
根据上述目的,该随机数产生方法,其中该16位线性移位寄存器经7个时钟脉冲后,该布尔函数组依序被预测为:
a.该第15比特暂存位置的比特该第10比特暂存位置的比特该第5比特暂存位置的比特;
b.该第14比特暂存位置的比特该第9比特暂存位置的比特该第4比特暂存位置的比特;
c.该第13比特暂存位置的比特该第8比特暂存位置的比特该第3比特暂存位置的比特;
d.该第12比特暂存位置的比特该第7比特暂存位置的比特该第2比特暂存位置的比特;
e.该第11比特暂存位置的比特该第6比特暂存位置的比特该第1比特暂存位置的比特;
f.该第10比特暂存位置的比特该第5比特暂存位置的比特该第0比特暂存位置的比特;以及
g.该第9比特暂存位置的比特该第4比特暂存位置的比特(该第15比特暂存位置的比特该第10比特暂存位置的比特该第5比特暂存位置的比特)。
根据上述目的,该随机数产生方法,其中该16位比特线性移位寄存器经8个时钟脉冲后,该布尔函数组依序被预测为:
a.该第15比特暂存位置的比特该第10比特暂存位置的比特该第5比特暂存位置的比特;
b.该第14比特暂存位置的比特该第9比特暂存位置的比特该第4比特暂存位置的比特;
c.该第13比特暂存位置的比特该第8比特暂存位置的比特该第3比特暂存位置的比特;
d.该第12比特暂存位置的比特该第7比特暂存位置的比特该第2比特暂存位置的比特;
e.该第11比特暂存位置的比特该第6比特暂存位置的比特该第1比特暂存位置的比特;
f.该第10比特暂存位置的比特该第5比特暂存位置的比特该第0比特暂存位置的比特;
g.该第9比特暂存位置的比特该第4比特暂存位置的比特(该第15比特暂存位置的比特该第10比特暂存位置的比特该第5比特暂存位置的比特);以及
h.该第8比特暂存位置的比特该第3比特暂存位置的比特(该第14比特暂存位置的比特该第9比特暂存位置的比特该第4比特暂存位置的比特)。
根据上述目的,该随机数产生方法,其中该16位线性移位寄存器经8个时钟脉冲后,该方法还包括:
该16位线性移位寄存器所暂存的比特位移8个位;以及
该16位线性移位寄存器以输出的8比特作为该16位线性反馈移位寄存器的反馈输入。
本发明的另一目的是提供一种随机数产生装置,包括:一移位寄存器,具有多个比特暂存位置;以及多个逻辑门,设置于这些比特暂存位置输出的一反馈路径上,其中,该移位寄存器仅透过这些逻辑门以输出多个输出比特,且这些输出比特同时作为该移位寄存器的多个反馈输入比特。
根据上述目的,该随机数产生装置,其中该移位寄存器为一16位移位寄存器,且具有一第0~第15比特暂存位置。
根据上述目的,该随机数产生装置,其中这些逻辑门为一第1~一第8异门。
根据上述目的,该随机数产生装置,其中该第1异门接收该第15、该第10、该第5比特暂存位置的输出,该第2异门接收该第14、该第9、该第4比特暂存位置的输出,该第3异门接收该第13、该第8、该第3比特暂存位置的输出,该第4异门接收该第12、该第7、该第2比特暂存位置的输出,该第5异门接收该第11、该第6、该第1比特暂存位置的输出,该第6异门接收该第10、该第5、该第0比特暂存位置的输出,该第7异门接收第9、第4比特暂存位置以及该异门510的输出,该第8异门接收该第8、该第3比特暂存位置以及该异门520的输出,且,该第1~该第8异门的输出还分别作为该第7~该第0比特暂存位置的反馈输入。
综合上述,本发明提出一种随机数产生方法以及装置,在仅增添一些逻辑门的情况下,即可在每个时钟脉冲后产生多个比特,以作为多个随机数结果。
【附图说明】
其中,附图标记说明如下:
图1为常用的16位线性反馈移位寄存器的示意图;
图2为常用的另一线性反馈移位寄存器的示意图;
图3为本发明较佳实施例的随机数产生方法的流程图;
图4A、4B为图116位线性反馈移位寄存器在经过各时钟脉冲后其比特暂存位置所暂存比特的示意图;以及
图5为图116位线性反馈移位寄存器以经8个时钟脉冲后其累计输出字节所代表的布尔函数组重新设计其反馈路径的电路示意图。
图中标号说明:
100、200、210、220:线性反馈移位寄存器
110:移位寄存器
120、130:异门
215、225:比特
230:全加法器
240:和比特
245:进位比特
301~303:步骤
510~580:异门
【具体实施方式】
请参考图3,图3为本发明较佳实施例的随机数产生方法的流程图。首先,预测原本仅在每个时钟脉冲之后仅输出一比特的N位线性反馈移位寄存器,预测其在经过M(例如N/2)个时钟脉冲后,此N位线性反馈移位寄存器累积输出字节所代表的布尔函数,其中,此布尔函数为此N位线性反馈移位寄存器其比特暂存位置比特于第0个时钟脉冲时与比特组间的关系式,此为步骤301。
接着,根据预测的布尔函数重新设计此N位线性反馈移位寄存器的反馈控制。也就是说,此N位线性反馈移位寄存器的反馈控制布局改用此布尔函数所代表的逻辑值来构筑,此为步骤302。因此,此重新设计的N位线性反馈移位寄存器,其输出比特为上述比特组比特数目的比特。
最后,即以此重新设计的N位线性反馈移位寄存器的输出比特作为反馈控制,以在下一个时钟脉冲后产生上述比特组比特数目的输出比特,此为步骤303。
举例图1常用的16位线性反馈移位寄存器100为例,且请同时参考图4A、4B做进一步的说明。图4A、4B为图116位线性反馈移位寄存器100,在经过各时钟脉冲后其比特暂存位置所暂存比特的示意图。在一开始的时候,也就是时钟脉冲为0的时候,16位线性反馈移位寄存器100其第0~15比特暂存位置其暂存的比特分别为a[0]~a[15]。经过1个时钟脉冲后,16位线性反馈移位寄存器100将分别暂存在第5、第10、以及第15比特暂存位置的比特a[5]、比特a[10]、以及比特a[15]输出,且比特a[5]、比特a[10]、以及比特a[15]经异门120、130运算后得到:
a[15]a[10]a[5]的比特输出。因此,经过1个时钟脉冲后,16位线性反馈移位寄存器100输出a[15]a[10]a[5]的比特,作为随机数结果以及反馈至第0比特暂存位置,且16位线性反馈移位寄存器100的第0~15比特暂存位置内所暂存的比特将向左位移一个位置。因此,经过1个时钟脉冲后,16位线性反馈移位寄存器100其第0~15比特暂存位置所暂存的比特将分别为a[15]a[10]a[5]、a[0]~a[14]。同理,在经过2、3~8个时钟脉冲后,16位线性反馈移位寄存器100其第0~15比特暂存位置所暂存的比特将如同图4A、4B所示。
此外,当预测出此16位线性反馈移位寄存器100在经过8个时钟脉冲后其第0~15比特暂存位置所暂存的比特时,也可同时得知此16位线性反馈移位寄存器100在经过8个时钟脉冲后,所累计输出的比特组将为此16位线性反馈移位寄存器100在经过8个时钟脉冲后,其第7~0比特暂存位置所暂存的比特:
a[15]a[10]a[5]
a[14]a[9]a[4]
a[13]a[8]a[3]
a[12]a[7]a[2]
a[11]a[6]a[1]
a[10]a[5]a[0]
a[9]a[4](a[15]a[10]a[5])
a[8]a[3](a[14]a[9]a[4])
而上述这些比特以布尔函数表现的表示式,其实即此16位线性反馈移位寄存器100相对于第0个时钟脉冲时,其比特暂存位置所暂存比特与累计比特组间的关系式。
也因此,根据本发明的概念,当预测出16位线性反馈移位寄存器100经8个时钟脉冲后所累计输出比特组所代表的布尔函数组时,若根据此布尔函数组重新设计16位线性反馈移位寄存器100的反馈路径,此16位线性反馈移位寄存器100即可在经过1个时钟脉冲后产生原本需经8个时钟脉冲后所累计输出的比特组。
请继续参考图5,图5为图116位线性反馈移位寄存器100以经8个时钟脉冲后,其累计输出比特组所代表的布尔函数组重新设计其反馈路径的电路示意图。在图5中,16位线性反馈移位寄存器100内的移位寄存器110,将根据前述布尔函数组设计其反馈路径。由前述布尔函数组可知,仅需将移位寄存器110的第0~第15比特暂存位置都设置有输出,且第0~第15比特暂存位置的输出则根据前述布尔函数组耦接并联的异门510~580。其中,异门510接收第15、第10、第5比特暂存位置的输出,异门520接收第14、第9、第4比特暂存位置的输出,异门530接收第13、第8、第3比特暂存位置的输出,异门540接收第12、第7、第2比特暂存位置的输出,异门550接收第11、第6、第1比特暂存位置的输出,异门560接收第10、第5、第0比特暂存位置的输出,异门570接收第9、第4比特暂存位置以及异门510的输出,异门580接收第8、第3比特暂存位置以及异门520的输出。且其中,异门510~580的输出还分别作为第7~第0比特暂存位置的反馈输入。因此,借助以上反馈路径的设置,在移位寄存器110其第0~第15比特暂存位置的输入比特分别为a[0]~a[15]的情况下且经下一个时钟脉冲后,移位寄存器110可一次输出8个比特的字节作为随机数结果,且移位寄存器110其第0~第7比特暂存位置原本暂存的比特a[0]~a[7]移至第8~第15比特暂存位置,而第0~第7比特暂存位置则分别接收8个比特作为反馈输入。
明显地,与常用的移位寄存器100相比,本发明较佳实施例的移位寄存器110仅利用一个时钟脉冲的运算时间,即可产生原本需要8个时钟脉冲才可产生的随机数结果。同样地,对于N位移位寄存器而言,可基于本发明较佳实施例的精神,当预测出原本M个时钟脉冲方可产生的布尔函数后,随后依据所预测的布尔函数设计一移位寄存器,其于是仅需一个时钟脉冲的运算时间,即可产生常用的移位寄存器需要M个时钟脉冲才能产生的N比特随机数。熟悉本发明技术领域的人可依据本发明较佳实施例精神加以变更,例如根据实际需求或规格来变更M值等的修改,然而所有基于本发明精神所进行的等效修改或变化,都应包含于本发明权利要求中。
综合上述,本发明提出一种随机数产生方法及装置,借助预测原本一次输出一比特作为随机数结果的线性反馈移位寄存器其经多个时钟脉冲后的输出,且根据预测设计线性反馈移位寄存器的反馈路径,以在每经一时钟脉冲后,可同时输出多个比特以作为随机数结果。而且,由于本发明以预测输出的概念一次输出多比特,因此,本发明所使用的线性反馈移位寄存器的反馈路径上仅以少许的逻辑门作为布局组件。因此,本发明可在反馈路径布局成本最节省的情况下,一次输出多比特以作为随机数结果。
上述内容,仅为本发明的较佳实施例,不能以之限制本发明的范围。即只要依据本发明权利要求所做的均等变化及修改,仍将不失本发明的要义所在,也不脱离本发明的精神和范围,因此都应视为本发明的进一步实施状况。