具体实施方式
[实施例1]
在图1中,本实施例1的随机数产生装置具备:真随机数产生部1、LFSR2、EX-OR(“异或”)门3、随机数存储部4和CPU(CentralProcessing Unit:中央处理装置)5。
真随机数产生部1响应于来自CPU5的随机数产生要求信号生成真随机数数据(无规则性且质量高的随机数数据)。LFSP2响应于来自CPU5的时钟信号生成具有均匀性的伪随机数数据(“0”和“1”的产生概率都是50%且有规则性的伪随机数数据)。真随机数产生部1与LFSR2设为非同步。另外,LFSR2可以接受来自CPU5的写信号以代替接受来自CPU5的时钟信号。
EX-OR门3将来自真随机数产生部1的真随机数数据与来自LFSR2的伪随机数数据的“异或”数据供给随机数存储部4。虽然不能保证真随机数产生部1的输出真随机数数据的均匀性,但是由于能够保证LFSR2的输出伪随机数数据的均匀性,所以就能够从EX-OR门3输出具有均匀性的随机数数据。
随机数存储部4响应于来自CPU5的写信号对来自EX-OR门3的随机数数据进行存储,响应于来自CPU5的读信号输出随机数值。CPU5生成随机数产生要求信号、时钟信号、写信号和读信号,对真随机数产生部1、LFSR2和随机数存储部4进行控制,从随机数存储部4读出随机数值。
在图2中,该真随机数产生部1包括启动输入生成部11、环形振荡器12和计数器13。
启动输入生成部11响应于来自CPU5的随机数产生要求信号生成用于使真随机数数据产生的启动信号。环形振荡器12响应于来自启动输入生成部11的启动信号成为振荡状态或稳定状态。计数器13通过对传输到环形振荡器12的环路上的节点的信号脉冲数进行计数来输出真随机数数据。
在图3中,该环形振荡器12包括EX-OR门21和4个反相器22,计数器13包括5个触发器23和4个EX-OR门24。
在环形振荡器12中,4个反相器22被串联连接在EX-OR门21的输出端子与一个输入端子之间。EX-OR门21的另一个输入端子接受来自启动输入生成部11的启动信号。EX-OR门21和4个反相器22形成环路,该环路在启动信号为“L”电平时成为稳定状态,在启动信号为“H”电平时成为振荡状态。各输出节点N1~N5分别被连接到对应的触发器23的时钟输入端子上。
各触发器23是与其负逻辑输出端子和数据输入端子连接的1位的计数器。各触发器23响应于输入到时钟输入端子上的信号的上升沿使输出信号反转。各EX-OR门24的一个输入端子接受对应的触发器23的正逻辑输出信号,其另一个输入端子接受前级EX-OR门24的输出信号,并将它们的“异或”信号输出。其中,初级的EX-OR门24的一个输入端子接受对应于输出节点N1的触发器23的正逻辑输出信号,其另一个输入端子接受对应于输出节点N2的触发器23的正逻辑输出信号。
图4A、图4B、图4C分别是用来说明图3所示的环形振荡器12和计数器13的工作的时序图。在图4A、图4B、图4C中,表示了用于在输出节点N1~N5使作为在“H”电平与“L”电平之间的不确定状态的亚稳态产生的3种启动信号的图形。
在图4A中,启动信号是在时刻t0上升到“H”电平、经过时间T0后下降到“L”电平的脉冲信号。该时间T0(脉冲宽度)成为比环形振荡器12的环路的延迟时间T1短的时间。在初始状态下,在输出节点N1、N3、N5电位为“L”电平、输出节点N2、N4的电位为“H”电平的稳定状态的情况下,输出节点N1的电位成为将启动信号延迟由EX-OR门21引起的延迟时间的脉冲波形。根据该输出节点N1的电位变化,输出节点N2的电位成为将输出节点N1的脉冲波形延迟由反相器22引起的延迟时间且反转了的波形。在各输出节点N1~N5依次重复进行这样的工作,脉冲波形就逐渐钝化起来。这样的波形钝化的状态就是亚稳态。该亚稳态的波形随时间推移而逐渐变小,在绕环路2周后在输出节点N1处消失(在亚稳态的波形不超过触发器23的阈值的时刻,判断为亚稳态消失)。在这种情况下,各触发器23分别分两次对脉冲数进行计数。即,在初始状态中,在各触发器23的正逻辑输出信号为“0”的情况下,各触发器23的正逻辑输出信号在第1次的计数中成为“1”,在第2次的计数中成为“0”。因此,亚稳态消失后的最末级的EX-OR门24的输出信号成为“0”。
另外,该亚稳态的寿命不能控制。即,亚稳态消失的节点是随机的。例如,当亚稳态在绕环路2周后在输出节点N2处消失时,对应于输出节点N1的触发器23对脉冲数计数3次,对应于输出节点N2~N5的触发器23分别分2次对脉冲数进行计数。即,在初始状态中,在各触发器23的正逻辑输出信号为“0”的情况下,与亚稳态消失后的输出节点N1对应的触发器23的正逻辑输出信号成为“1”,与输出节点N2~N5对应的触发器23的正逻辑输出信号分别成为“0”。所以,亚稳态消失后的最末级的EX-OR门24的输出信号成为“1”。因此,从时刻t0到经过规定时间后(亚稳态消失后)的时刻t1的过程中,计数器13的输出信号成为依赖于亚稳态的寿命的真随机数数据。
另外,根据EX-OR门21或反相器22的延迟特性,有亚稳态消失的节点偏向于某个节点的情况。但是,通过设置奇数个(5个)触发器23,即使在亚稳态在相同的节点处消失的情况下,当亚稳态的运行次数不同时计数器13的输出信号也会不同。即,在亚稳态绕环路1周后在输出节点N2处消失的情况中的最末级EX-OR门24的输出信号(“0”)与在亚稳态绕环路2周后在输出节点N2处消失的情况中的最末级EX-OR门24的输出信号(“1”)不同。因此,就从计数器13输出质量高的随机数。
在图4B中,启动信号在时刻t0上升到“H”电平,在经过时间T0后下降到“L”电平,在时刻t10上升到“H”电平。从时刻t0到时刻t10的工作与在图4A说明过的工作同样,在输出节点N1~N5处依次产生亚稳态。在时刻t10响应于启动信号上升到“H”电平,环路成为振荡状态。即使环路成为振荡状态,也与在图4A说明过的情况同样,亚稳态的波形随时间推移而逐渐变小,在绕环路2周后在节点N2处消失。由于亚稳态的寿命不能控制,所以亚稳态消失的节点是随机的。因此,从时刻t0到经过规定时间后(亚稳态消失后)的时刻t1的过程中,计数器13的输出信号成为依赖于亚稳态的寿命的真随机数数据。
在图4C中,启动信号在时刻t0下降到“L”电平。在时刻t0响应于启动信号下降到“L”电平,环路从振荡状态转移到稳定状态,并且在输出节点N1~N5处依次产生亚稳态。亚稳态的波形随时间推移而逐渐变小,在绕环路2周后在节点N1处消失。由于亚稳态的寿命不能控制,所以亚稳态消失的节点是随机的。因此,从时刻t0到经过规定时间后(亚稳态消失后)的时刻t1的过程中,计数器13的输出信号成为依赖于亚稳态的寿命的真随机数数据。
此外,虽然这里是针对反相器22为4个,触发器23为5个的情况进行说明的,但是反相器22为任意偶数个,触发器23为任意个数也可以。
在图5中,该LFSR2包括n个(其中,n为任意自然数)的触发器31、多个EX-OR门32、“与”门33以及“或”门34。
各触发器31的数据输入端子与前级触发器31的正逻辑输出端子连接,其时钟输入端子接受来自CPU5的时钟信号,其负逻辑输出端子被连接到“与”门33的输入端子上。其中,初级触发器31的数据输入端子被连接到“或”门34的输出端子上。
各EX-OR门32的一个输入端子接受对应的触发器31的正逻辑输出信号,其另一个输入端子接受前级EX-OR门32的输出信号,并将它们的“异或”信号输出。其中,初级EX-OR门32的一个输入端子接受第(n-2)级触发器31的正逻辑输出信号,其另一个输入端子接受第n级EX-OR门32的输出信号。
这样,如所周知,利用将多级触发器31串联连接的、将最终输出反馈的结构来生成伪随机数。该LFSR2所输出的伪随机数数据的重复周期随EX-OR门32的数目和位置而不同,将EX-OR门32的数目和位置确定,以使伪随机数数据的重复周期变得最长。在这种情况下,生成重复周期为(2n-1)的伪随机数数据。
“与”门33输出n个触发器31的负逻辑输出信号的“与”信号。“或”门34输出与最末级的EX-OR门32的输出信号以及“与”门33的输出信号对应的信号。利用该结构,能防止成为所有的触发器31的正逻辑输出信号变成“0”且LFSR2的输出伪随机数数据为“0”的稳定状态。
在图6中,该随机数存储部4包括8个触发器41和8个缓冲电路42,能够存储8位随机数数据。
各触发器41的数据输入端子与前级触发器41的正逻辑输出端子连接,其时钟输入端子接受来自CPU5的写信号,其正逻辑输出端子与对应的缓冲电路42连接。其中,初级触发器41的数据输入端子从EX-OR门3接受随机数数据。8个缓冲电路42响应于来自CPU5的读信号,将存储在对应的8个触发器41中的随机数数据作为8位的随机数值经由总线输出给CPU5。
图7是用于说明图6所示的随机数存储部4的工作的时序图。在图7中,随机数值用16进制表示,使初始状态中的随机数值成为“0”。
在启动信号为“H”电平时,真随机数产生部1的环形振荡器12成为振荡状态,在启动信号为“L”电平时,成为稳定状态。另外,这里为了工作说明方便起见,随机数数据被简化为响应于启动信号的下降沿而成为“1”或“0”的信号。启动信号的脉冲宽度是(t21-t20),写信号的脉冲宽度是(t22-t21),启动信号和写信号的周期都是(t23-t22)。在时刻t21启动信号下降到“L”电平,随机数数据成为“1”,并且写信号上升到“H”电平。在时刻t22响应于写信号下降到“L”电平,初级触发器41对该瞬间的随机数数据“1”进行存储。这时,用16进制表示的随机数值成为“01”(用2进制表示是00000001)。
在时刻t23,响应于写信号下降到“L”电平,初级触发器41对该瞬间的随机数数据“1”进行存储,并且第2级触发器41在时刻t22存储由初级触发器41存储的随机数数据“1”。这时,随机数值成为“03”(用2进制表示是00000011)。这样,在时刻t24的随机数值成为“06”(用2进制表示是00000110),在时刻t25的随机数值成为“0C”(用2进制表示是00001100)。通过依次重复进行该工作,在时刻t 29的随机数值成为“C6”(用2进制表示是11000110),存储了8位随机数数据。其后,响应于来自CPU5的读信号,输出随机数值“C6”。
这样,由于通过用8级移位寄存器来构成随机数存储部4就能够存储8位的随机数数据,所以CPU5的对随机数存储部4的访问频度减少了。
如上所述,在本实施例1中,对真随机数产生部1的环形振荡器12进行振荡控制,通过将亚稳态的寿命2进制化为“0”、“1”,生成了真随机数数据。因此,能够实现小型且功耗小、性能高的随机数产生装置。
另外,虽然这里针对存储8位的随机数数据的情况进行了说明,但是如果用m个(其中,m为任意自然数)触发器41和m个缓冲电路42来构成随机数存储部4,那么也可以存储m位的随机数数据。
[实施例1的变例]
参照图8的实施例1的变例的环形振荡器12和计数器13,与图3的实施例1的环形振荡器12和计数器13的不同点是:计数器13的触发器23的数目减少到3个。在图8中,触发器23只与第奇数个输出节点N1、N3、N5连接。
在环形振荡器12中,根据EX-OR门21的延迟特性,有输出节点N1的电位偏向“H”电平或“L”电平中的某一电平的趋势。例如,当EX-OR门21的输出信号下降到“L”电平时的延迟时间比上升到“H”电平时的延迟时间长的情况下,有EX-OR门21的输出节点N1的电位偏向“H”电平的趋势。进而,根据各反相器22的延迟特性,亚稳态消失的节点有偏向第奇数个输出节点N1、N 3、N5或第偶数个输出节点N2、N4中的某一个的趋势。在这种情况下,如图3所示,在触发器23与所有输出节点N1~N5连接的结构中,来自计数器13的真随机数就偏向了“0”或“1”中的某一个,保证不了真随机数数据的均匀性。
但是,如果是如图8所示将触发器23只与第奇数个输出节点N1、N3、N5连接的结构,那么即使在亚稳态消失的节点偏向第奇数个输出节点N1、N3、N5或第偶数个节点N2、N4中的某一个的情况下,来自计数器13的真随机数数据也不偏向“0”或“1”中的某一个。例如,在亚稳态消失的节点为输出节点N1、N5的情况或输出节点N3的情况下,来自计数器13的真随机数数据就不同。由此,改善了真随机数数据的均匀性。
因此,在本实施例1的变例中,通过对应于环形振荡器12的第奇数个输出节点N1、N3、N5来设置触发器23,就能够提高在真随机数产生部1中生成的真随机数数据的质量,进而能够实现高性能的随机数产生装置。
另外,虽然这里针对将触发器23与第奇数个输出节点N1、N3、N5连接的情况进行了说明,但是在将触发器23与第偶数个输出节点N2、N4连接的情况下也能够获得同样的效果。
[实施例2]
参照图9的实施例2的环形振荡器50和计数器13,与图3的实施例1的环形振荡器12和计数器13的不同点是:用“与非”门51置换了EX-OR门21。
图10A、图10B、图10C分别是用来说明该环形振荡器50和计数器13的工作的时序图。在图10A、图10B、图10C中,表示了用于在输出节点N1~N5处使亚稳态产生的3种启动信号的图形。
在图10A中,启动信号是在时刻t0上升到“H”电平、经过时间T0后下降到“L”电平的脉冲信号。设定该时间T0(脉冲宽度)为比环形振荡器50的环路的延迟时间T1短的时间。在初始状态中,在输出节点N1、N3、N5电位为“H”电平、输出节点N2、N4的电位为“L”电平的稳定状态的情况下,输出节点N1的电位成为将启动信号延迟由“与非”门51引起的延迟时间且反转了的波形。随着该输出节点N1的电位变化,在输出节点N2~N5处依次产生亚稳态。亚稳态的波形随时间推移而逐渐变小,在输出节点N5处消失。由于亚稳态的寿命不能控制,所以亚稳态消失的节点是随机的。因此,从亚稳态产生的时间到经过规定时间后的时刻t1的过程中,计数器13的输出信号成为依赖于亚稳态的寿命的真随机数数据。
另外,在这种情况下,根据使用了“与非”门51的电路结构,在启动信号为“L”电平时,输出节点N1的电位被固定为“H”电平。即,亚稳态只运行1周。因此,形成了亚稳态在运行1周的期间内消失的电路结构。
在图10B中,启动信号在时刻t0上升到“H”电平,在经过时间T0后下降到“L”电平,在时刻t30上升到“H”电平。从时刻t0到时刻t30的工作与在图10A说明过的工作同样,在输出节点N1~N5处依次产生亚稳态。在时刻t30响应于启动信号上升到“H”电平,环路成为振荡状态。亚稳态在绕环路1周后在节点N1处消失。由于亚稳态的寿命不能控制,所以亚稳态消失的节点是随机的。因此,从时刻t0到经过规定时间后(亚稳态消失后)的时刻t1的过程中,计数器13的输出信号成为依赖于亚稳态的寿命的真随机数数据。另外,由于在这种情况下在时刻t30将启动信号固定在“H”电平,所以也可以不形成亚稳态在进行1周期间内消失的电路结构。
在图10C中,启动信号在时刻t0下降到“L”电平。在时刻t0响应于启动信号下降到“L”电平,环路从振荡状态转移到稳定状态,并且在输出节点N1~N5处依次产生亚稳态。亚稳态的波形随时间推移而逐渐变小,在输出节点N5处消失。由于亚稳态的寿命不能控制,所以亚稳态消失的节点是随机的。因此,从时刻t0到经过规定时间后(亚稳态消失后)的时刻t1的过程中,计数器13的输出信号成为依赖于亚稳态的寿命的真随机数数据。
另外,由于在这种情况下,将启动信号固定在“L”电平,所以亚稳态只运行1周。因此,形成亚稳态在运行1周的期间内消失的电路结构。
如上所述,在本发明的实施例2中,与实施例1同样地对真随机数产生部1的环形振荡器50进行振荡控制,通过将亚稳态的寿命2进制化为“0”、“1”来生成真随机数数据。因此,就能够实现小型且功耗小、性能高的随机数产生装置。
另外,虽然这里针对反相器22为4个,触发器23为5的情况进行了说明,但是即使在反相器22为任意偶数个、触发器23为任意个数的情况下,也能得到同样的效果。
[实施例3]
在图11中,该环形振荡器60包括开关电路SW1和7个反相器22。
在环形振荡器60中,7个反相器22被串联连接在输出节点N11与输出节点N18之间。开关电路SW1在启动信号为“H”电平的情况下将输出节点N11与输出节点N18连接,在启动信号为“L”电平的情况下将输出节点N11与输出节点N17连接。即,进行切换,以使在启动信号为“H”电平的情况下环路内的反相器22的数目成为7个(奇数个),在启动信号为“L”电平的情况下环路内的反相器22的数目成为6个(偶数个)。因此,在启动信号为“L”电平时环路成为稳定状态,在启动信号为“H”电平时环路成为振荡状态。输出节点N11~N18分别与计数器13所对应的触发器的时钟输入端子连接。
该环形振荡器60的工作,与图4A、图4B、图4C的时序图所示的工作同样。响应于图4A、图4B、图4C所示的3种启动信号的图形,在输出节点N11~N18依次产生亚稳态。由于亚稳态的寿命不能控制,所以亚稳态消失的节点是随机的。因此,从亚稳态产生的时间到经过规定时间后(亚稳态消失后)的计数器13的输出信号成为依赖于亚稳态的寿命的真随机数数据。
如上所述,在本实施例3中,设置了开关电路SW1,该电路对由环形振荡器60的7个(奇数个)反相器22构成的环路和由6个(偶数个)反相器22构成的环路进行切换,并通过将亚稳态的寿命2进制化为“0”、“1”来生成真随机数数据。因此,能够实现小型且功耗小、性能高的随机数产生装置。
另外,虽然这里针对开关电路SW1对由7个反相器22构成的环路与由6个反相器22构成的环路进行切换的情况进行了说明,但是如果构成为开关电路SW1对由任意奇数个反相器22构成的环路与由任意偶数个反相器22构成的环路进行切换,也能够获得同样的效果。
[实施例3的变例]
在图12中,本实施例3的变例的环形振荡器70包括3个反相器22和3个反相器71、反相器72、“与非”门73~75。图12的环形振荡器70利用“与非”门73~75和反相器72将图11的环形振荡器60的开关电路SW11具体化。即,通过“与非”门73~75和反相器72对由奇数个反相器构成的环路和由偶数个反相器构成的环路进行切换。
在环形振荡器70中,3个反相器22被串联连接在输出节点N21与输出节点N24之间,3个反相器71被串联连接在输出节点N24与输出节点N25之间。“与非”门73的一个输入端子与输出节点N24连接,其另一个输入端子接受启动信号。“与非”门74的一个输入端子与输出节点N25连接,其另一个输入端子经由反相器72接受启动信号。“与非”门75的一个输入端子接受来自“与非”门73的信号,其另一个端子接受来自“与非”门74的信号,其输出端子与节点N21连接。输出节点N21~N24分别与计数器13所对应的触发器的时钟输入端子连接。
根据该结构,由于在启动信号为“H”电平时“与非”门74的输出信号被固定为“H”电平,所以可以视为由3个反相器22和“与非”门73、75构成的环路,即由奇数个反相器构成的环路。由于在启动信号为“L”电平时“与非“门73的输出信号被固定为“H”电平,所以可以视为由3个反相器22、3个反相器71和“与非”门74、75构成的环路,即由偶数个反相器构成的环路。由此,在启动信号为“H”电平时环路成为振荡状态,在启动信号为“L”电平时环路成为稳定状态。
该环形振荡器70的工作,与图11所示的环形振荡器60的工作是同样的。另外,在图3和图9所示的环形振荡器12、50中,随着启动信号的时序的不同有不产生亚稳态的情况。但是,在图12所示的环形振荡器70中,可靠地产生了亚稳态。
图13是用于说明图3所示的环形振荡器12在不产生亚稳态的情况下的工作的时序图,并且是与图4C进行对比的图。在图13中,在比时刻t0早的时刻t40,启动信号下降到“L”电平。
在时刻t40,响应于启动信号下降到“L”电平,环路从振荡状态转移到稳定状态。这时,在响应于输出节点N5的电位变化而上升到“H”电平的瞬间,输出节点N1的电位响应于启动信号下降到“L”电平而下降到“L”电平。由此,在输出节点N1~N5处不产生亚稳态。
图14A和图14B分别是用于说明图12所示的环形振荡器12可靠地产生亚稳态的工作的时序图。图14A是启动信号在时刻t0下降到“L”电平时的时序图,图14B是启动信号在比时刻t0早的时刻t40下降到“L”电平时的时序图。
在图14A中,响应于在时刻t0启动信号下降到“L”电平,环路从振荡状态转移到稳定状态。这时,与图4C所示的时序图同样地,在输出节点N21~N25处依次产生亚稳态。亚稳态的波形随时间推移而逐渐变小,绕环路1周后在输出节点N22处消失。另外,该亚稳态的寿命不能控制。即,亚稳态消失的节点是随机的。在这种情况下,从时刻t0到经过规定时间后(亚稳态消失后)的时刻t1的过程中,计数器13的输出信号成为依赖于亚稳态的寿命的真随机数数据。
在图14B中,到时刻t40为止,是输出节点N21的电位响应于输出节点N24的电位变化而进行变动的振荡状态。响应于启动信号在时刻t40下降到“L”电平,环路从振荡状态转移到稳定状态。这时,输出节点N21的电位响应于输出节点N25的电位变化而进行变动,在上升到“H”电平后下降到“L”电平。因此,在输出节点N21~N25处依次产生亚稳态。这样,之所以可靠地产生亚稳态,是因为利用了由奇数个反相器形成的环路与由偶数个反相器形成的环路的延迟时间之差的缘故。亚稳态的波形随时间推移而逐渐变小,在绕环路1周后在输出节点N24处消失。另外,该亚稳态的寿命不能控制。即,亚稳态消失的节点是随机的。在这种情况下,从时刻t40到经过规定时间后(亚稳态消失后)的时刻t41的过程中,计数器13的输出信号成为依赖于亚稳态的寿命的真随机数数据。
如上所述,在本实施例3的变形例中,设置了开关电路,该电路对由环形振荡器70的奇数个反相器构成的环路和由偶数个反相器构成的环路进行切换,并能够通过利用这些环路的延迟时间之差可靠地产生亚稳态。因此,进而能够实现高性能的随机数产生装置。
另外,虽然这里针对反相器22为3个,触发器71为3个的情况进行了说明,但是如果成为对由任意奇数个反相器构成的环路与由任意偶数个触发器构成的环路进行切换的结构,那么也能得到同样的效果。
[实施例4]
在图15中,本实施例4的环形振荡器80包括开关电路SW11和7个反相器22。
在环形振荡器80中,7个反相器22被串联连接在输出节点N11与输出节点N18之间。开关电路SW11在启动信号为“H”电平的情况下将输出节点N11与输出节点N14连接,在启动信号为“L”电平的情况下将输出节点N11与输出节点N18连接。即,进行切换,以使在启动信号为“H”电平的情况下环路内的反相器22的数目成为3个(奇数个),在启动信号为“L”电平的情况下环路内的反相器22的数目成为7个(奇数个)。由此,环路在启动信号为“H”电平时成为短环路振荡状态(振荡频率高),在启动信号为“L”电平时环路成为长环路振荡状态(振荡频率低)。输出节点N11~N18分别与计数器13所对应的触发器的时钟输入端子连接。
图16是用于说明该环形振荡器80的工作的时序图。在图16中,启动信号在时刻t0下降到“L”电平。
在时刻t0,响应于启动信号下降到“L”电平,在输出节点N11~N18处依次产生亚稳态。亚稳态的波形随时间推移而逐渐变小,绕环路1周后在输出节点N1处消失。另外,该亚稳态的寿命不能控制。即,亚稳态消失的节点是随机的。因此,从时刻t0到经过规定时间后(亚稳态消失后)的时刻t1的过程中,计数器13的输出信号成为依赖于亚稳态的寿命的真随机数数据。
如上所述,在本发明实施例4中,通过设置了开关电路SW11,该电路对由环形振荡器80的3个(奇数个)反相器22构成的短环路和由7个(奇数个)反相器22构成的长环路进行切换,即使不生成比环形振荡器80的环路的延迟时间短的脉冲宽度的启动信号,也能够只通过使启动信号下降到“L”电平简单地产生亚稳态。因此,能够实现更简易结构的随机数产生装置。
另外,虽然这里针对环形振荡器80的反相器22为7个的情况进行了说明,但是在该反相器22为任意奇数个的情况下,如果构成为短环路的振荡频率比长环路的振荡频率充分高,那么也能获得同样的效果。
此外,该环形振荡器与图12所示的环形振荡器70同样,也能够使用“与非”门来具体化。
[实施例5]
在图17中,本实施例5的环形振荡器90包括5个“与非”门91。
各“与非”门91的一个输入端子接受来自前级“与非”门91的输出信号,其另一个输入端子接受启动信号。其中,初级“与非”门91的一个输入端子接受末级“与非”门91的输出信号。这5个“与非”门91形成环路,该环路在启动信号为“L”电平时成为稳定状态,在启动信号为“H”电平时成为振荡状态。输出节点N31~N35分别与计数器13所对应的触发器的时钟输入端子连接。
图18是用于说明该环形振荡器90的工作的时序图。在图18中,初始状态是输出节点N31~N35的电位为“H”电平的稳定状态。响应于启动信号在时刻t0上升到“H”电平,在各“与非”门91的输出节点N31~N35的电位下降到“L”电平后,环路从稳定状态转移到振荡状态。这时,在输出节点N31~N35处依次产生亚稳态。亚稳态的波形随时间推移而逐渐变小,在输出节点N35处消失。另外,该亚稳态的寿命不能控制。即,亚稳态消失的节点是随机的。在这种情况下,从时刻t0到经过规定时间后(亚稳态消失后)的时刻t1的过程中,计数器13的输出信号成为依赖于亚稳态的寿命的真随机数数据。
如上所述,在本实施例5中,即使不生成比环形振荡器90的环路的延迟时间短的脉冲宽度的启动信号,也能够只通过使启动信号上升到“H”电平简单地产生亚稳态。因此,能够实现更简易结构的随机数产生装置。
另外,虽然这里针对“与非”门91为5个的情况进行了说明,但是即使在“与非”门91为任意奇数个的情况下也能够获得同样的效果。
[实施例5的变例]
参照图19的实施例5的变例的环形振荡器100,与图17的实施例5的环形振荡器90的不同点是:“与非”门91的数目增加到了6个。这6个“与非”门91形成环路,该环路在启动信号为“L”电平和“H”电平时成为稳定状态。输出节点N31~N36分别与计数器13所对应的触发器的时钟输入端子连接。
初始状态是输出节点N31~N36的电位为“H”电平的稳定状态。响应于启动信号在时刻t0上升到“H”电平,在各“与非”门91的输出节点N31~N36的电位下降到“L”电平后,转移成输出节点N31、N33、N35的电位为“L”电平,输出节点N32、N34、N36的电位为“H”电平的稳定状态。这时,在输出节点N32~N36处依次产生亚稳态。亚稳态的波形随时间推移而逐渐变小并消失。另外,该亚稳态的寿命不能控制。即,亚稳态消失的节点是随机的。在这种情况下,从时刻t 0到经过规定时间后(亚稳态消失后)的时刻t1的过程中,计数器13的输出信号成为依赖于亚稳态的寿命的真随机数数据。
如上所述,在本实施例5的变例中,即使与实施例4同样地不生成比环形振荡器100的环路的延迟时间短的脉冲宽度的启动信号,也能够只通过使启动信号上升到“H”电平简单地产生亚稳态。因此,能够实现更简易结构的随机数产生装置。
另外,虽然这里针对“与非”门91为6个的情况进行了说明,但是即使在“与非”门91为任意偶数个的情况下也能够获得同样的效果。
[实施例6]
在图20中,本实施例6的环形振荡器110包括DL(延迟电路)111~DL114。
DL111~DL114由1个或多个元件构成,是输出正逻辑信号的延迟电路(例如,将偶数个反相器串联连接的延迟电路)。即,如果输出节点N41为“H”电平,则输出节点N42~N44也成为“H”电平;如果输出节点N41为“L”电平,则输出节点N42~N44也成为“L”电平。
进而,DL111~DL114分别成为具有相同延迟特性的延迟电路。即,DL111~DL114的输出信号下降到“L”电平时的延迟时间分别相等,DL111~DL114的输出信号上升到“H”电平时的延迟时间分别相等。输出节点N41~N44分别与计数器13所对应的触发器的时钟输入端子连接。
通过以上的结构,在响应于来自启动输入生成部11的启动信号产生亚稳态的情况下,亚稳态消失的节点偏向某一节点的可能性变低了。
因此,在本实施例6中,亚稳态的寿命的偏倚变少,生成了质量高的真随机数数据。由此,能够实现更高性能的随机数产生装置。
[实施例6的变例]
在本发明的实施例6的变例中,图20的DL111~DL113由1个或多个元件构成,成为输出负逻辑信号的延迟电路(例如,串联连接奇数个反相器的延迟电路)。即,如果输出节点N41的电位为“H”电平,那么输出节点N42、N44电位成为“L”电平,输出节点N43的电位成为“H”电平。
进而,DL111、DL113分别成为具有相同延迟特性的延迟电路,DL112、114分别成为具有相同延迟特性的延迟电路,DL111、DL113和DL112、114成为具有相反的延迟特性的延迟电路。即,在DL111、DL113的输出信号下降到“L”电平时的延迟时间比上升到“H”电平时的延迟时间长的情况下,在DL112、DL114的输出信号下降到“L”电平时的延迟时间比上升到“H”电平时的延迟时间短。输出节点N41~N44分别与计数器13所对应的触发器的时钟输入端子连接。
通过以上的结构,在响应于来自启动输入生成部11的启动信号产生亚稳态的情况下,使亚稳态消失的节点偏向某一节点的可能性变低了。
因此,在本实施例6的变例中,与实施例6同样地,亚稳态的寿命的偏倚变少,生成了质量高的真随机数数据。由此,能够实现更高性能的随机数产生装置。
[实施例7]
在图21中,本实施例7的环形振荡器110包括DL111~DL114,计数器120包括4个触发器23、“与”门121~124和EX-OR门125。
DL111~DL114是由1个或多个元件构成的延迟电路。输出节点N41~N44分别与对应的触发器23的时钟输入端子连接。各触发器23是将其负逻辑输出端子与数据输入端子连接的1位的计数器。“与”门121~124的一个输入端子分别接受信号EN11~EN14,其另一个输入端子分别接受对应的触发器23的正逻辑输出信号,其输出端子与EX-OR门125连接。EX-OR门125输出“与”门121~124的输出信号的“异或”信号。
通过以上的结构,在实施例7中,通过信号EN11~EN14中只有1个成为“H”电平、其他的3个成为“L”电平并对EX-OR门125的输出信号进行观测,能够进行DL111~DL114和各触发器23的电路测试。例如,使环路成为振荡状态,对信号EN11成为“H”电平、信号EN12~EN14成为“L”电平时的EX-OR门125的输出信号进行观测。这时,如果EX-OR门125的输出信号为正常,则连接在DL111~DL114和输出节点41上的触发器23就是正常的,如果EX-OR门125的输出信号为异常,则能够判断在连接于DL111~DL114和输出节点41上的触发器23中有故障。同样地,依次使信号EN12~EN14中的仅一个成为“H”电平,通过对各个情况下的EX-OR门125的输出信号进行观测,能够进行DL111~DL114和各触发器23的电路测试。
[实施例8]
参照图22的实施例8的随机数产生装置,与图1的实施例1的随机数产生装置的不同点是:追加了随机数生成控制部131和随机数生成位数计数器132。
在图22中,随机数生成控制部131生成随机数产生要求信号,供给真随机数产生部1、LFSR2和随机数生成位数计数器132,并且生成写信号,供给随机数存储部4。随机数生成位数计数器132对来自随机数生成控制部131的随机数产生要求信号的脉冲数进行计数,当只计数随机数存储部4能够存储的位数时,生成随机数生成结束通知信号,供给CPU5和随机数生成控制部131。
图23是用于说明该随机数产生装置的工作的时序图。在图23中,该时序图表示随机数存储部4存储8位随机数数据的情况下的各信号的波形。
真随机数产生部1响应于来自随机数生成控制部131的随机数产生要求信号,生成真随机数数据。包含于真随机数产生部1中的环形振荡器是这样的装置:在随机数产生要求信号为“H”电平时环路成为振荡状态,当为“L”电平时环路成为稳定状态。LFSR2响应于来自随机数生成控制部131的随机数产生要求信号,生成伪随机数。
随机数生成位数计数器132依次对来自随机数生成控制部131的随机数产生要求信号的脉冲数进行计数。在时刻t50,响应于随机数生成位计数值成为“8”,使随机数生成结束通知信号上升到“H”电平,并且将随机数生成位计数值复位为“0”。
随机数生成控制部131在来自随机数生成位数计数器132的随机数生成结束通知信号为“H”电平期间将随机数产生要求信号保持在“L”电平。由此,在随机数生成结束通知信号被设为“H”电平期间,真随机数产生部1和LFSR2将随机数生成工作停止。
CPU5响应于来自随机数生成位数计数器132的随机数生成结束通知信号被设为“H”电平,在时刻t51使读信号上升到“H”电平并读出存储于随机数存储部4中的8位随机数值。
在时刻t52,随机数生成位数计数器132使随机数生成结束通知信号下降到“L”电平,随机数生成控制部131使随机数产生要求信号上升到“H”电平,CPU5使读信号下降到“L”电平。
如上所述,在本实施例8中,当CPU5从随机数存储部4读出随机数值时,在规定期间将随机数产生要求信号保持在“L”电平,使真随机数产生部1和LFSR2的随机数生成工作停止。因此,能够使真随机数产生部1和LFSR2的工作频度变少。由此,能够实现随机数产生装置的低功耗化。
[实施例8的变例]
参照图24的实施例8的变例的随机数产生装置,与图22的实施例8的随机数产生装置的不同点是:在EX-OR门3与随机数存储部4之间追加了开关电路SW21。
在图24中,通过对开关电路SW21进行切换,在成为随机数存储部4接受来自随机数生成位数计数器132的随机数生成结束通知信号的情况下,能够进行随机数生成控制部131和随机数生成位数计数器132的工作测试。
图25是用于说明本随机数产生装置的工作的时序图。在图25中,随机数值用16进制表示,使初始状态中的随机数值成为“0”。
随机数生成控制部131生成频率相等、具有规定相位差的随机数产生要求信号和写信号。随机数存储部4响应于写信号的下降沿对其瞬间的随机数生成结束通知信号的值进行存储。由于到时刻t 50之前随机数生成结束通知信号为“L”电平“0”,所以随机数存储部4的随机数值为“0”。由于在时刻t50随机数生成结束通知信号上升到“H”电平(“1”),所以在时刻t60随机数值成为“1”。响应于随机数生成结束通知信号被设为“H”电平(“1”),CPU5在时刻t51使读信号上升到“H”电平并读出随机数存储部4的随机数值。如果此时读出的随机数值为“1”,则判断随机数生成控制部131和随机数生成位数计数器132为正常。另一方面,如果被读出的随机数值为“1”以外的值,则考虑在随机数生成控制部131或随机数生成位数计数器132中存在故障。在时刻t52,随机数生成位数计数器132使随机数生成结束通知信号下降到“L”电平,随机数生成控制部131使随机数产生要求信号上升到“H”电平,CPU5使读信号下降到“L”电平。
如上所述,在本实施例8的变例中,能够进行随机数生成控制部131和随机数生成位数计数器132的工作测试。
[实施例9]
参照图26的实施例9的随机数产生装置,与图1的实施例1的随机数产生装置的不同点是:真随机数产生部1的数目增加到了2个。
在图26中,2个真随机数产生部1分别响应于来自CPU5的随机数产生要求信号,生成真随机数数据,输出给EX-OR门3。2个真随机数产生部1的振荡频率成为互不相同。通过该结构,即使在一个真随机数产生部1不产生亚稳态的情况下,只要另一个真随机数产生部1产生亚稳态就可以。
因此,在该实施例9中,通过设置多个真随机数产生部1,使所产生的随机数的质量变高。因此,能够实现更高性能的随机数产生装置。
另外,虽然这里针对真随机数产生部1为2个的情况进行了说明,但是也可以是将振荡频率互不相同的真随机数产生部1设置成3以上的多个。在这种情况下,只要任何一个真随机数产生部1产生亚稳态就可以,能够得到同样的效果。
[实施例10]
参照图27的实施例10的随机数产生装置,与图1的实施例1的随机数产生装置的不同点是:真随机数产生部1被置换成启动输入生成部11和多个环形振荡器+计数器141;以及EX-OR门3和随机数存储部4增加到了多个。
在图27中,启动输入生成部11与图2所示的启动输入生成部11相同,响应于来自CPU5的随机数产生要求信号,生成启动信号。各环形振荡器+计数器141包括图2所示的环形振荡器12和计数器13,响应于来自启动输入生成部11的启动信号,生成真随机数数据并输出给对应的EX-OR门3。通过该结构,能够用1个启动输入生成部11并列地生成多个真随机数数据。LFSR2响应于来自CPU5的时钟信号,生成伪随机数数据,输出给多个EX-OR门3。另外,LFSR2也可以接受来自CPU5的写信号以代替接受来自CPU5的时钟信号。各EX-OR门3将来自对应的环形振荡器+计数器141的真随机数数据与来自LFSR2的伪随机数数据的“异或”数据输出给对应的随机数存储部4。各随机数存储部4响应于来自CPU5的写信号,存储来自对应的EX-OR门3的随机数数据,响应于来自CPU5的读信号,输出所存储的随机数值。
如上所述,在本实施例10中,通过分别并联地设置多个环形振荡器+计数器141、多个EX-OR门3和多个随机数存储部4,能够同时生成多位的随机数数据。因此,能够更高速地生成随机数。由此,能够实现更高性能的随机数产生装置。
虽然对本发明进行了详细的说明和展示,但是这仅是示例性的,而非限定性的,发明的宗旨和范围只通过所附权利要求的范围加以限定就可以清楚地理解。