CN105242903B - 随机数生成装置和方法 - Google Patents
随机数生成装置和方法 Download PDFInfo
- Publication number
- CN105242903B CN105242903B CN201510689294.8A CN201510689294A CN105242903B CN 105242903 B CN105242903 B CN 105242903B CN 201510689294 A CN201510689294 A CN 201510689294A CN 105242903 B CN105242903 B CN 105242903B
- Authority
- CN
- China
- Prior art keywords
- clock signal
- memory cell
- clock
- signal
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Pulse Circuits (AREA)
Abstract
本发明涉及一种随机数生成装置和方法。该装置包括:可调延迟模块,用于对第一时钟信号进行延迟,生成n个第二时钟信号,在控制信号的控制下对n个第二时钟信号的延迟进行调整;存储模块,包括n级存储单元,n级存储单元包括第1级存储单元、中间级存储单元和第n级存储单元;同步逻辑模块,用于对n级存储单元的输出进行同步;延迟控制逻辑模块,用于根据n级存储单元的稳定的输出,生成控制信号,生成并输出真随机数。本发明用以提高触发器的输出发生亚稳态的可能性,实现根据触发器输出端的亚稳态生成真随机数,且不用采用专门的时钟产生异步输入信号,降低芯片的复杂度。
Description
技术领域
本发明涉及数字电路领域,尤其涉及一种随机数生成装置和方法。
背景技术
在数字同步电路中常采用触发器或锁存器作为存储单元,这两种器件都定义了一个信号的时序要求,只有满足了这个时序要求这两种器件才可以正确地在输入端获取(capture)数据、在输出端产生数据。这两种器件都易进入亚稳态,所谓亚稳态是指触发器或锁存器无法在某个规定时间段内达到一个可确认的状态。当触发器或锁存器进入亚稳态时,既无法预测触发器或锁存器的输出电平,也无法预测触发器或锁存器输出何时才能稳定在某个正确的电平上。在这期间,触发器或锁存器输出一些中间级电平,或者可能处于振荡状态,并且这些中间级电平可以沿信号通道上的各个触发器或锁存器级联式传播下去。下面以触发器为例介绍亚稳态的情况,对于锁存器也同样适用。
为了确保触发器中操作的可靠性,输入信号在时钟沿之前必须稳定一段时间,这段时间通常被定义为触发器建立时间Ts,且输入信号在时钟沿之后还要继续稳定一段时间,将这段时间定义为触发器保持时间Th,然后触发器经过输出延时(clock to output,简称:Tco)后输出信号。如果一个数据信号在变化时没有满足触发器建立时间Ts和保持时间Th的要求,触发器的输出就可能会出现亚稳态的情况。
如图1所示,为现有技术中触发器正常状态时的时序图,具体地,在图1(a)中,输入信号A在时钟上升沿之前已经稳定且大于触发器建立时间Ts,并且在时钟上升沿之后稳定时间大于触发器保持时间Th,此时触发器的输出不会出现亚稳态,经过输出延时Tco后触发器输出信号的值等于输入信号A。其中,如果输入信号与时钟信号异步,该输入信号又称为异步输入信号,过渡期(transition)为异步输入信号由A到B变化过程中的过渡时间,在这个transition过程中异步输入信号的值是不确定的;在图1(b)中,与图1(a)类似,异步输入信号B在时钟上升沿之前已经稳定且大于触发器建立时间Ts,在时钟上升沿之后稳定时间大于触发器保持时间Th,此时触发器的输出不会出现亚稳态,经过输出延时Tco后触发器输出信号的值等于异步输入信号B。如图2所示,为现有技术中触发器发生亚稳态时的时序图,与图1不同的是,在该图中,异步输入信号在时钟上升沿之前就已经由A变到B,但是异步输入信号B在时钟上升沿之前的稳定时间小于了触发器建立时间Ts,而A在时钟上升沿之前就已经结束,所以A的时钟上升沿之后稳定时间可以视为负值,而该负值小于触发器要求的保持时间Th,所以在这种情况下,触发器的输出可能会出现亚稳态的情况,并且在亚稳态稳定下来后触发器的输出可能是异步输入信号A,也可能是异步输入信号B,是随机的、与异步输入信号没有关系的。触发器在经历亚稳态以后,输出值具体会稳定在哪个值,受触发器电路设计、制造工艺偏差、电路环境温度、噪声等多个因素的影响,这种不确定性可以作为真随机数源。对于触发器而言,发生亚稳态的可能性越低,其作为真随机数源生成的随机数的质量就越低。
根据图1和图2的时序图可知,触发器输入端的异步输入信号如果在触发器时钟沿的前后Ts+Th时间内保持稳定,也就是异步输入信号在Ts+Th时间窗没有变化,那么触发器就不会发生亚稳态,此时触发器的输出是完全确定的、没有随机性的;而只有在触发器时钟沿的前后Ts+Th时间窗内,若异步输入信号发生了变化,触发器的输出才有可能发生亚稳态。但是,在先进的半导体工艺下,Ts+Th时间窗非常小,例如:0.1ns,甚至更小,那么假设触发器时钟的周期是50ns,那么异步输入信号在Ts+Th时间窗内发生变化的可能性只为:0.1ns*100%/50ns=0.2%。因此,这种情况下触发器的输出发生亚稳态的可能性非常小,可能性最大时为0.2%,可能性最小时基本为零。
另外,在芯片电路设计中,异步输入信号往往需要特定的时钟源来产生,例如:需要抖动比较大的时钟来产生异步输入信号,所以产生异步输入信号的难度比较大,还会增加芯片的复杂度;并且由于该异步输入信号的时钟与触发器的时钟是不相干的两个时钟,这两个时钟之间可能是异步的情况,也可能是同步的情况,这是无法预测的,这种情况下该异步输入信号不能做到与触发器时钟完全异步,所以该异步输入信号的变化与触发器的时钟沿可能会发生相关的“共振”现象,这样就会大大减少异步输入信号在Ts+Th时间窗内发生变化的可能性,从而进一步降低触发器的输出发生亚稳态的可能性。
发明内容
本发明提供一种随机数生成装置和方法,用以提高触发器的输出发生亚稳态的可能性,实现根据触发器输出端的亚稳态生成真随机数,且不用采用专门的时钟产生异步输入信号,降低芯片的复杂度。
本发明提供一种随机数生成装置,包括:
输入延迟模块,用于对第一时钟信号进行延迟,生成一个第三时钟信号;
可调延迟模块,用于对第一时钟信号进行延迟,生成n个第二时钟信号,在控制信号的控制下对所述n个第二时钟信号的延迟进行调整,其中,所述n个第二时钟信号相对于所述第一时钟信号的延迟依次增大,n为大于或等于3的自然数;
存储模块,包括n级存储单元,所述n级存储单元包括第1级存储单元、中间级存储单元和第n级存储单元,所述n个第二时钟信号和第三时钟信号分别作为所述n级存储单元的输入信号和时钟信号,使得所述第1级存储单元和所述第n级存储单元的输出为正常状态,所述中间级存储单元中至少有一级存储单元的输出为亚稳态,所述第一时钟信号与所述第三时钟信号为同步信号;
同步逻辑模块,用于对所述n级存储单元的输出进行同步,以便得到所述第n级存储单元的稳定的输出,消除所述亚稳态;
延迟控制逻辑模块,用于根据所述n级存储单元的稳定的输出,生成所述控制信号,生成并输出真随机数。
本发明还提供一种随机数生成方法,包括:
对第一时钟信号进行延迟,生成n个第二时钟信号,在控制信号的控制下对所述n个第二时钟信号的延迟进行调整,其中,所述n个第二时钟信号相对于所述第一时钟信号的延迟依次增大,n为大于或等于3的自然数;
将所述n个第二时钟信号和第三时钟信号分别作为n级存储单元的输入信号和时钟信号,使得第1级存储单元和第n级存储单元的输出为正常状态,中间级存储单元中至少有一级存储单元的输出为亚稳态,其中,所述n级存储单元包括所述第1级存储单元、所述中间级存储单元和所述第n级存储单元,所述第一时钟信号与所述第三时钟信号为同步信号;
对所述n级存储单元的输出进行同步,以便得到所述n级存储单元的稳定的输出,消除所述亚稳态;
根据所述n级存储单元的稳定的输出,生成所述控制信号,生成并输出真随机数。
在本发明中,可调延迟模块对第一时钟信号进行延迟,生成n个第二时钟信号,在控制信号的控制下对n个第二时钟信号的延迟进行调整,其中,n个第二时钟信号相对于第一时钟信号的延迟依次增大,n为大于或等于3的自然数,n个第二时钟信号和第三时钟信号分别作为存储模块中n级存储单元的输入信号和时钟信号,使得第1级存储单元和第n级存储单元的输出为正常状态,中间级存储单元中至少有一级存储单元为亚稳态,然后通过同步逻辑模块对n级存储单元的输出进行同步,得到n级存储单元的稳定的输出,消除前述的亚稳态,最后延迟控制逻辑模块根据n级存储单元的稳定的输出生成控制信号,生成并输出真随机数,这样,由于采用的第一时钟信号与第三时钟信号为同步信号,所以可以避免采用异步输入信号时不能与存储单元的时钟完全异步的情况,提高了存储单元的输出发生亚稳态的可能性,实现根据触发器输出端的亚稳态生成真随机数,保证了得到的真随机数的随机性,且不用采用专门的时钟产生异步输入信号,容易实现,降低了芯片的复杂度。
附图说明
图1为现有技术中触发器正常状态时的时序图;
图2为现有技术中触发器发生亚稳态时的时序图;
图3为本发明随机数生成装置实施例的结构示意图;
图4为本发明随机数生成装置实施例的第一实例结构示意图;
图5为本发明随机数生成装置实施例的图4实例中n级D触发器的D输入端的第三时钟信号的上升沿与时钟端的第二时钟信号的上升沿的相对关系;
图6为本发明随机数生成装置实施例的第二实例结构示意图;
图7为本发明随机数生成装置实施例的图6实例中n级D触发器的D输入端的第三时钟信号的下降沿与时钟端的第二时钟信号的上升沿的相对关系;
图8为本发明随机数生成装置实施例的第三实例结构示意图;
图9为本发明随机数生成装置实施例的图8实例中n级D触发器的D输入端的第二时钟信号的上升沿与时钟端的第三时钟信号的上升沿的相对关系;
图10为本发明随机数生成装置实施例的第四实例结构示意图;
图11为本发明随机数生成装置实施例的图10实例中n级D触发器的D输入端的第三时钟信号的下降沿与时钟端的第二时钟信号的下降沿的相对关系;
图12为本发明随机数生成装置实施例的第五实例结构示意图;
图13为本发明随机数生成装置实施例的图12实例中n级D触发器的D输入端的第三时钟信号的上升沿与时钟端的第二时钟信号的下降沿的相对关系;
图14为本发明随机数生成装置实施例的第六实例结构示意图;
图15为本发明随机数生成装置实施例的图14实例中n级D触发器的D输入端的第二时钟信号的下降沿与时钟端的第三时钟信号的下降沿的相对关系;
图16为本发明随机数生成装置实施例中采用5级D触发器的实例的电路时序图。
具体实施方式
下面结合说明书附图和具体实施方式对本发明作进一步的描述。
如图3所示,为本发明随机数生成装置实施例的结构示意图,该装置可以包括:存储模块31、可调延迟模块32、同步逻辑模块33和延迟控制逻辑模块34,存储模块31与可调延迟模块32连接,同步逻辑模块33与存储模块31连接,延迟控制逻辑模块34与同步逻辑模块33连接,延迟控制逻辑模块34与可调延迟模块32连接。其中,存储模块31可以包括n级存储单元,该n级存储单元具体可以包括:第1级存储单元311、中间级存储单元312和第n级存储单元313,中间级存储单元312与第1级存储单元311连接,第n级存储单元313与中间级存储单元312连接,其中,n为大于或等于3的自然数,所以,中间级存储单元312有n-2个存储单元。第1级存储单元311、中间级存储单元312以及第n级存储单元313均与可调延迟模块32连接,同步逻辑模块33与第1级存储单元311、中间级存储单元312和第n级存储单元313均连接。
在本实施例中,可调延迟模块32用于对第一时钟信号进行延迟,生成n个第二时钟信号,在控制信号的控制下对n个第二时钟信号的延迟进行调整,其中,n个第二时钟信号相对于第一时钟信号的延迟依次增大,n为大于或等于3的自然数;n个第二时钟信号和第三时钟信号分别作为存储模块31中n级存储单元的输入信号和时钟信号,使得第1级存储单元311和第n级存储单元313的输出为正常状态,中间级存储单元312中至少有一级存储单元的输出为亚稳态,第一时钟信号与第三时钟信号为同步信号;同步逻辑模块33具体与n级存储单元的输出连接,用于对n级存储单元的输出进行同步,以便得到n级存储单元的稳定的输出,消除前述的亚稳态,这样,若某一级的存储单元输出发生亚稳态时,可以在同步逻辑模块33中使该级存储单元输出的不确定的振荡的状态得到稳定后再进行输出,这样可以使后续的延迟控制逻辑模块34进行正确的判断得到真随机数;延迟控制逻辑模块34用于根据n级存储单元的稳定的输出,生成控制信号,生成并输出真随机数。
该实施例的具体工作过程如下:可调延迟模块32对第一时钟信号进行延迟,生成n个第二时钟信号,在控制信号的控制下对n个第二时钟信号的延迟进行调整,其中,n个第二时钟信号相对于第一时钟信号的延迟依次增大,n为大于或等于3的自然数;存储模块31将n个第二时钟信号和第三时钟信号分别作为n级存储单元的输入信号和时钟信号,使得第1级存储单元311和第n级存储单元313的输出为正常状态,中间级存储单元312中至少有一级存储单元的输出为亚稳态,其中,n级存储单元包括第1级存储单元311、中间级存储单元312和第n级存储单元313,第一时钟信号与第三时钟信号为同步信号;同步逻辑模块33对n级存储单元的输出进行同步,以便得到n级存储单元的稳定的输出,消除前述的亚稳态;延迟控制逻辑模块34根n级存储单元的稳定的输出生成控制信号,生成并输出真随机数。
在本实施例中,可调延迟模块32对第一时钟信号进行延迟,生成n个第二时钟信号,在控制信号的控制下对n个第二时钟信号的延迟进行调整,其中,n个第二时钟信号相对于第一时钟信号的延迟依次增大,n为大于或等于3的自然数,n个第二时钟信号和第三时钟信号分别作为存储模块31中n级存储单元的输入信号和时钟信号,使得第1级存储单元311和第n级存储单元313的输出为正常状态,中间级存储单元312中至少有一级存储单元为亚稳态,然后通过同步逻辑模块33对n级存储单元的输出进行同步,得到n级存储单元的稳定的输出,消除前述的亚稳态,最后延迟控制逻辑模块34根据n级存储单元的稳定的输出生成控制信号,生成并输出真随机数,这样,由于采用的第一时钟信号与第三时钟信号为同步信号,所以可以避免采用异步输入信号时不能与存储单元的时钟完全异步的情况,提高了存储单元的输出发生亚稳态的可能性,实现根据触发器输出端的亚稳态生成真随机数,保证了得到的真随机数的随机性,且不用采用专门的时钟产生异步输入信号,容易实现,降低了芯片的复杂度。
可选地,在本实施例中,第一时钟信号与第三时钟信号可以为同一个时钟信号;或者,第三时钟信号为第一时钟信号进行无延迟逻辑处理后得到的时钟信号,例如,对第一时钟信号进行取反操作得到的时钟信号。
可选地,在本实施例中,第一时钟信号可以由时钟源生成,实际中,第一时钟信号可以由一个时钟源生成,并且随机数生成装置对该时钟源的最低工作频率、频率抖动以及相位抖动都没有特殊要求。其中,频率的抖动可以包括最大时钟频率的抖动和最小时钟频率的抖动,相位的抖动可以包括最大时钟频率的抖动和最小时钟频率的抖动。可选地,当该随机数生成装置用于芯片中时,第一时钟信号可以由芯片内部的时钟源生成,也可以由芯片外部的时钟芯片生成。
可选地,在本实施例中,再参见图3所示的示意图,该随机数生成装置还可以包括输入延迟模块35,输入延迟模块35用于对第一时钟信号按照第二预定时间进行延迟,经过输入延迟模块35后的第一时钟信号分成两路分别输入到存储模块31和可调延迟模块32。通过输入延迟模块35对第一时钟信号进行延迟,可以确保输入到存储模块31和可调延迟模块32中的两路信号的同步。
可选地,在本实施例中,n级存储单元可以为n级触发器;n级存储单元还可以为n级锁存器。其中,n级触发器具体可以为n级D触发器,还可以为n级JK触发器、n级T触发器或n级RS触发器等其他类型的触发器。
可选地,在本实施例中,延迟控制逻辑模块34具体可以用于根据第1级存储单元311的稳定的输出和第n级存储单元313的稳定的输出,生成控制信号,其中,当第1级存储单元的稳定的输出311与第n级存储单元313的稳定的输出不是期望的时钟变化沿时,生成表示增加或减少延迟的控制信号。这样,可以得到预期的每一级存储单元的输入端与时钟端的时钟变化沿的相对关系,从而可以保证中间级存储单元312发生亚稳态现象,有利于后续真随机数的生成。
可选地,在本实施例中,时钟信号的时钟变化沿具体可以为上升沿,也可以为下降沿,对应地,若采用上升沿触发器,则时钟信号的上升沿有效,若采用下降沿触发器,则时钟信号的下降沿有效。
可选地,在本实施例中,可调延迟模块32可以包括串联连接的n个延迟单元,每个延迟单元输出1个第二时钟信号,n个延迟单元中的第1个延迟单元的延迟在控制信号的控制下进行调整,生成第1个第二时钟信号。除第1个延迟单元以外的n-1个延迟单元,每个延迟单元的延迟时间为第一预定时间,这n-1个延迟单元对第1个延迟单元输出的第二时钟信号进行n-1次延迟,得到n个相对于第一时钟信号的延迟依次增大的第二时钟信号,每一次的延迟时间是前述的第一预定时间,从而实现了n级存储单元中除第1级存储单元311以外每一级存储单元经历时钟变化沿的时间均比上一级触发器延迟第一预定时间。可选地,第一预定时间可以根据随机数生成装置的工作条件进行变化,例如:根据随机数生成装置的工作温度、电压或者制造工艺参数的变化而变化,且该变化的规律与n级存储单元输入信号的建立时间、保持时间根据随机数生成装置的工作条件进行变化的规律一致,例如:n级存储单元输入信号的建立时间、保持时间根据随机数生成装置工作温度的升高而增大,则第一预定时间根据随机数生成装置工作温度的升高也是增大。
可选地,在本实施例中,n个第二时钟信号作为n级存储单元的时钟信号,第三时钟信号作为n级存储单元的输入信号,可调延迟模块32中的n个延迟单元的输出分别连接n级存储单元的时钟端,通过延迟控制逻辑模块34输出控制信号控制可调延迟模块32的传输延迟,这样,每个第三时钟信号的时钟变化沿会同时加在n级存储单元的输入端,但是每一级存储单元的时钟端经历的时钟变化沿会比上一级触发器延迟第一预定时间,从而使得每一级存储单元的输入端与时钟端的时钟变化沿具有相对的关系。
如图4所示,为本发明随机数生成装置实施例的第一实例结构示意图,在该实例中,第一时钟信号和第三时钟信号为同一个时钟信号,n级存储单元具体为n级D触发器,对应地,第1级存储单元311具体为第1级D触发器,中间级存储单元312具体为中间级D触发器,第n级存储单元313具体为第n级D触发器,并且这n级D触发器为上升沿触发器,可调延迟模块32中依次连接的n个延迟单元的输出分别与n级D触发器的时钟端连接,每一级D触发器的输出端与同步逻辑33连接,除第1个延迟单元以外的n-1个延迟单元延迟的第一预定时间具体为ΔT,D触发器的Q端为输出端。
该实例的具体工作过程如下:第一时钟信号首先经过输入延迟模块35延迟第二预定时间后得到延迟后的第一时钟信号,该第一时钟信号分成两路,一路输入n级D触发器的D输入端,这样每个第三时钟信号的上升沿都会同时加在n级D触发器的D输入端;另一路输入到可调延迟模块32,然后可调延迟模块32将延迟后得到的n个第二时钟信号依次输入到n级D触发器的时钟端,所以n级D触发器的时钟端所经历的第二时钟信号的上升沿的时间是不同的,第1级D触发器是最早经历第二时钟信号的上升沿的,然后从第2级D触发器开始一直到第n级D触发器,每一级D触发器的时钟端经历第二时钟信号的上升沿的时间都要比前一级D触发器的时钟端经历时钟信号的上升沿的时间延迟第一预定时间ΔT,这里,第一预定时间就是第二时钟信号的上升沿从一个延迟单元的输入到输出的传递时间;同步逻辑模块33接收n级D触发器的输出,对这n级D触发器的输出进行同步,使这n级D触发器的输出稳定,消除这n级D触发器的输出端可能出现的亚稳态;延迟控制逻辑模块34根据同步逻辑模块33中输出的n级D触发器的稳定输出信号,生成控制信号,控制可调延迟模块32中对时钟信号的延迟时间,同时,延迟控制逻辑模块34根据同步逻辑模块33中输出的n级D触发器的稳定输出信号生成真随机数并输出。
在延迟控制逻辑模块34中通过生成控制信号调整可调延迟模块32对第一时钟信号的延迟时间,这是为了使第一时钟信号在经过可调延迟模块32中的各延迟单元时具有延迟,从而得到n级D触发器的D输入端与时钟端的时钟信号的上升沿的相对关系,如图5所示,为本发明随机数生成装置实施例的图4实例中n级D触发器的D输入端的第三时钟信号的上升沿与时钟端的第二时钟信号的上升沿的相对关系,n级D触发器D输入端同时经历第三时钟信号的上升沿,n级D触发器时钟端依次经历第二时钟信号的上升沿,各级D触发器时钟端经历第二时钟信号上升沿的时间相差第一预定时间ΔT。在延迟控制逻辑模块34根据同步逻辑模块33输出的n级D触发器的稳定输出信号生成控制信号,最终达到第1级D触发器和第n级D触发器的输出正常、中间级D触发器的输出发生亚稳态这一稳定状态,第1级D触发器的时钟端最早经历第二时钟信号的上升沿,第n级D触发器的时钟端最晚经历第二时钟信号的上升沿。
通过延迟控制逻辑模块34控制可调延迟模块32的延迟时间,可以保证得到预期的n级D触发器的D输入端与时钟端时钟变化沿的相对关系,保证中间级D触发器输出端的亚稳态现象出现,从而保证了输出的真随机数的随机性。
在图4所示的实例中,延迟控制逻辑模块34生成控制信号的具体工作原理为:根据n级D触发器的稳定的输出,根据第1级D触发器的输出信号和第n级D触发器的输出信号进行判断并生成相应的控制信号,对应关系如下表1所示:
表1
根据表1中的对应关系可知,只要使得n级D触发器中正确采样到D输入端第三时钟信号的上升沿,就可以保证中间级D触发器中触发器的输出有亚稳态现象出现,然后在延迟控制逻辑模块34中通过对中间各级D触发器的输出进行组合运算,生成真随机数并输出。这里的组合运算具体可以是对各触发器的输出进行异或等逻辑操作,还可以对各触发器的输出进行Hash运算等。
如图6所示,为本发明随机数生成装置实施例的第二实例结构示意图,与第一实例的不同之处在于,在本实例中,增加了一个反向器61,反向器61的输入为第一时钟信号,反向器61的输出与各级D触发器的D输入端连接,所以,在本实例中,第三时钟信号为对第一时钟信号进行无延迟逻辑非处理后得到的时钟信号,所以n级D触发器的D输入端是下降沿的第三时钟信号作为输入,并在n级D触发器的时钟端采用第二时钟信号的上升沿作为判断,因此,如图7所示,为本发明随机数生成装置实施例的图6实例中n级D触发器的D输入端的第三时钟信号的下降沿与时钟端的第二时钟信号的上升沿的相对关系,n级D触发器D输入端同时经历第三时钟信号的下降沿,n级D触发器时钟端依次经历第二时钟信号的上升沿,n级D触发器时钟端经历第二时钟信号上升沿的时间相差第一预定时间ΔT。
可选地,在本实施例中,n个第二时钟信号作为n级存储单元的输入信号,第三时钟信号作为n级存储单元的时钟信号,可调延迟模块32中的n个延迟单元分别连接n级存储单元的输入端,通过延迟控制逻辑模块34输出控制信号控制可调延迟模块32的传输延迟,这样,每个第三时钟信号的时钟沿会同时加在n级存储单元的时钟端,但是每一级存储单元的输入端经历的时钟变化沿会比上一级存储单元延迟第一预定时间,从而使得每一级存储单元的输入端与时钟端的时钟变化沿具有相对的关系。
如图8所示,为本发明随机数生成装置实施例的第三实例结构示意图,与第一实例的不同之处在于,在本实例中,可调延迟模块32中的n级延迟单元的输出分别与n级D触发器的D输入端连接。与第一实例类似,可以得到,如图9所示,为本发明随机数生成装置实施例的图8实例中n级D触发器的D输入端的第二时钟信号的上升沿与时钟端的第三时钟信号的上升沿的相对关系,n级D触发器时钟端同时经历第三时钟信号的上升沿,n级D触发器D输入端依次经历第二时钟信号的上升沿,各级D触发器D输入端经历第二时钟信号上升沿的时间相差第一预定时间ΔT,在达到稳定状态后,第1级D触发器的D输入端最早经历第二时钟信号的上升沿,第n级D触发器的D输入端最晚经历第二时钟信号的上升沿。
同样地,延迟控制逻辑模块34生成控制信号的具体工作原理:根据n级D触发器的稳定的输出,根据第1级D触发器的输出信号和第n级D触发器的输出信号进行判断并生成相应的控制信号,对应关系如下表2所示:
表2
根据表2中的对应关系可知,只要使得n级D触发器中正确采样到D输入端第二时钟信号的上升沿,就可以保证中间级D触发器中触发器的输出有亚稳态现象出现。
可选地,在本实例中,可以与图6所示的实例中的类似,增加一个反向器61,连接在第一时钟信号与各级D触发器的时钟端之间,所以各级D触发器时钟端的时钟信号为对第一时钟信号进行无延迟逻辑非处理后得到的第三时钟信号,这样,n级D触发器的D输入端是上升沿的第二时钟信号作为输入信号,但在n级D触发器的时钟端是采用第三时钟信号的下降沿作为判断,则n级D触发器D时钟端同时经历第三时钟信号的下降沿,n级D触发器的D输入端依次经历第二时钟信号的上升沿,n级D触发器的D输入端经历第二时钟信号上升沿的时间相差第一预定时间ΔT。
如图10所示,为本发明随机数生成装置实施例的第四实例结构示意图,与第一实例的不同之处在于,在本实例中,n级D触发器为下降沿触发器,所以本实例的具体工作过程与第一实例中的具体过程完全类似,只是时钟信号的变化沿由上升沿变为下降沿,在此不再赘述。同样地,可以得到n级D触发器的D输入端与时钟端的时钟信号的下降沿的相对关系,如图11所示,为本发明随机数生成装置实施例的图10实例中n级D触发器的D输入端的第三时钟信号的下降沿与时钟端的第二时钟信号的下降沿的相对关系,n级D触发器D输入端同时经历第三时钟信号的下降沿,n级D触发器时钟端依次经历第二时钟信号的下降沿,各级D触发器时钟端经历第二时钟信号下降沿的时间相差第一预定时间ΔT。在达到第1级D触发器和第n级D触发器的输出正常、中间级D触发器的输出发生亚稳态这一稳定状态后,第1级D触发器的时钟端最早经历第二时钟信号的下降沿,第n级D触发器的时钟端最晚经历第二时钟信号的下降沿。
在本实例中,延迟控制逻辑模块34在根据第1级D触发器的输出信号和第n级D触发器的输出信号进行判断并生成相应的控制信号过程中的对应关系如下表3所示:
表3
根据表3中的对应关系可知,只要使得n级D触发器中正确采样到D输入端第三时钟信号的下降沿,就可以保证中间级D触发器中触发器的输出有亚稳态现象出现。
如图12所示,为本发明随机数生成装置实施例的第五实例结构示意图,与第四实例的不同之处在于,在本实例中,增加了一个反向器61,反向器61的输入为第一时钟信号,反向器61的输出与各级D触发器的D输入端连接,所以,在本实例中,第三时钟信号为对第一时钟信号进行无延迟逻辑非处理后得到的时钟信号,所以n级D触发器的D输入端是上升沿的第三时钟信号作为输入,并在n级D触发器的时钟端采用第二时钟信号的下降沿作为判断,因此,如图13所示,为本发明随机数生成装置实施例的图12实例中n级D触发器的D输入端的第三时钟信号的上升沿与时钟端的第二时钟信号的下降沿的相对关系,n级D触发器D输入端同时经历第三时钟信号的上升沿,n级D触发器时钟端依次经历第二时钟信号的下降沿,n级D触发器时钟端经历第二时钟信号下降沿的时间相差第一预定时间ΔT。
如图14所示,为本发明随机数生成装置实施例的第六实例结构示意图,与第四实例的不同之处在于,在本实例中,可调延迟模块32中的n级延迟单元的输出分别与n级D触发器的D输入端连接,这种情况与图8所示的第三实例类似,区别就是图8实例中n级D触发器采用的是上升沿触发器,本实例中n级D触发器采用的是下降沿触发器,具体工作过程在此不再赘述。如图15所示,为本发明随机数生成装置实施例的图14实例中n级D触发器的D输入端的第二时钟信号的下降沿与时钟端的第三时钟信号的下降沿的相对关系,n级D触发器时钟端同时经历第三时钟信号的下降沿,n级D触发器D输入端依次经历第二时钟信号的下降沿,n级D触发器D输入端经历第二时钟信号下降沿的时间相差第一预定时间ΔT。
可选地,在本实例中,还可以与图12所示的实例中的类似,增加一个反向器61,连接在第一时钟信号与各级D触发器的时钟端之间,所以各级D触发器时钟端的时钟信号为对第一时钟信号进行无延迟逻辑非处理后得到的第三时钟信号,这样,n级D触发器的D输入端是下降沿的第二时钟信号作为输入,在n级D触发器的时钟端是采用第三时钟信号的上升沿作为判断,则n级D触发器D时钟端同时经历第三时钟信号的上升沿,n级D触发器的D输入端依次经历第二时钟信号的下降沿,n级D触发器的D输入端经历第二时钟信号下降沿的时间相差第一预定时间ΔT。
如图16所示,为本发明随机数生成装置实施例中采用5级D触发器的实例的电路时序图,该实例可以对应图4所示的实例中的结构,所采用的5级D触发器为上升沿触发器,因此,在该实例中,根据输入信号的时序图,根据时钟端经历第二时钟信号的上升沿的情况以及Ts、Th的时间关系,对于第1级D触发器,输入信号在Ts+Th时间窗内没有变化,所以第1级D触发器输出端没有发生亚稳态,第1级D触发器输出低电平;第2级D触发器的Th为负值,不能满足D触发器的保持时间,所以第2级D触发器的输出端有可能发生亚稳态;第3级D触发器的Th同样为负值,Ts和Th均不能满足D触发器的建立时间和保持时间,所以第3级D触发器的输出端有可能发生亚稳态;第4级D触发器的Ts时间太短,不能满足D触发器的建立时间,所以第4级D触发器的输出端有可能发生亚稳态;第5级D触发器的Ts和Th均满足D触发器的建立时间和保持时间,所以第5级D触发器输出端没有发生亚稳态,第5级D触发器输出高电平。所以,在本实例中,第1级D触发器输出低电平、第5级D触发器输出高电平,表明在这5个D触发器的时钟采样期间D触发器的D输入端的输入信号存在一个上升沿,这正与前述的表1中的分析一致。另外,由于中间3级D触发器的输出可能发生亚稳态,可以保证得到真随机数的随机性。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种随机数生成装置,其特征在于,包括:
输入延迟模块,用于对第一时钟信号进行延迟,生成一个第三时钟信号;
可调延迟模块,用于对第一时钟信号进行延迟,生成n个第二时钟信号,在控制信号的控制下对所述n个第二时钟信号的延迟进行调整,其中,所述n个第二时钟信号相对于所述第一时钟信号的延迟依次增大,n为大于或等于3的自然数;
存储模块,包括n级存储单元,所述n级存储单元包括第1级存储单元、中间级存储单元和第n级存储单元,所述n个第二时钟信号和第三时钟信号分别作为所述n级存储单元的输入信号和时钟信号,使得所述第1级存储单元和所述第n级存储单元的输出为正常状态,所述中间级存储单元中至少有一级存储单元的输出为亚稳态,所述第一时钟信号与所述第三时钟信号为同步信号;
同步逻辑模块,用于对所述n级存储单元的输出进行同步,以便得到所述第n级存储单元的稳定的输出,消除所述亚稳态;
延迟控制逻辑模块,用于根据所述n级存储单元的稳定的输出,生成所述控制信号,生成并输出真随机数。
2.根据权利要求1所述的装置,其特征在于,所述n个第二时钟信号和所述第三时钟信号分别作为所述n级存储单元的输入信号和时钟信号具体为:
所述n个第二时钟信号作为所述n级存储单元的输入信号,所述第三时钟信号作为所述n级存储单元的时钟信号;或者
所述n个第二时钟信号作为所述n级存储单元的时钟信号,所述第三时钟信号作为所述n级存储单元的输入信号。
3.根据权利要求1所述的装置,其特征在于,所述延迟控制逻辑模块用于根据所述第1级存储单元的稳定的输出和所述第n级存储单元的稳定的输出,生成所述控制信号;其中,当所述第1级存储单元的稳定的输出与所述第n级存储单元的稳定的输出不是期望的时钟变化沿时,生成表示增加或减少延迟的控制信号。
4.根据权利要求1所述的装置,其特征在于,所述可调延迟模块包括串联连接的n个延迟单元,每个延迟单元输出1个第二时钟信号,所述n个延迟单元中的第1个延迟单元的延迟在所述控制信号的控制下进行调整。
5.根据权利要求1或2所述的装置,其特征在于,所述第一时钟信号与所述第三时钟信号为同一个时钟信号;或者,所述第三时钟信号为对所述第一时钟信号进行无延迟逻辑处理后得到的时钟信号。
6.一种随机数生成方法,其特征在于,包括:
对第一时钟信号进行延迟,生成n个第二时钟信号,在控制信号的控制下对所述n个第二时钟信号的延迟进行调整,其中,所述n个第二时钟信号相对于所述第一时钟信号的延迟依次增大,n为大于或等于3的自然数;
将所述n个第二时钟信号和第三时钟信号分别作为n级存储单元的输入信号和时钟信号,使得第1级存储单元和第n级存储单元的输出为正常状态,中间级存储单元中至少有一级存储单元的输出为亚稳态,其中,所述n级存储单元包括所述第1级存储单元、所述中间级存储单元和所述第n级存储单元,所述第一时钟信号与所述第三时钟信号为同步信号;
对所述n级存储单元的输出进行同步,以便得到所述第n级存储单元的稳定的输出,消除所述亚稳态;
根据所述n级存储单元的稳定的输出,生成所述控制信号,生成并输出真随机数。
7.根据权利要求6所述的方法,其特征在于,所述n个第二时钟信号和所述第三时钟信号分别作为所述n级存储单元的输入信号和时钟信号具体为:
所述n个第二时钟信号作为所述n级存储单元的输入信号,所述第三时钟信号作为所述n级存储单元的时钟信号;或者
所述n个第二时钟信号作为所述n级存储单元的时钟信号,所述第三时钟信号作为所述n级存储单元的输入信号。
8.根据权利要求6所述的方法,其特征在于,所述生成所述控制信号具体为:
根据所述第1级存储单元的稳定的输出和所述第n级存储单元的稳定的输出,生成所述控制信号;其中,当所述第1级存储单元的稳定的输出与所述第n级存储单元的稳定的输出不是期望的时钟变化沿时,生成表示增加或减少延迟的控制信号。
9.根据权利要求6所述的方法,其特征在于,所述生成n个第二时钟信号具体为:
将所述第一时钟信号输入串联连接的n个延迟单元,每个延迟单元输出1个第二时钟信号,从而生成n个第二时钟信号,其中,所述n个延迟单元中的第1个延迟单元的延迟在所述控制信号的控制下进行调整,生成第1个第二时钟信号。
10.根据权利要求6或7所述的方法,其特征在于,所述第一时钟信号与所述第三时钟信号为同一个时钟信号;或者,所述第三时钟信号为对所述第一时钟信号进行无延迟逻辑处理后得到的时钟信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510689294.8A CN105242903B (zh) | 2015-10-21 | 2015-10-21 | 随机数生成装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510689294.8A CN105242903B (zh) | 2015-10-21 | 2015-10-21 | 随机数生成装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105242903A CN105242903A (zh) | 2016-01-13 |
CN105242903B true CN105242903B (zh) | 2018-01-16 |
Family
ID=55040563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510689294.8A Active CN105242903B (zh) | 2015-10-21 | 2015-10-21 | 随机数生成装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105242903B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111555754B (zh) * | 2020-05-26 | 2023-03-10 | 成都铭科思微电子技术有限责任公司 | 一种应用于高速模数转换器同步时钟采样的亚稳态检测电路 |
CN112910451B (zh) * | 2021-01-18 | 2023-07-14 | 北京中科芯蕊科技有限公司 | 一种异步行波状态机 |
TWI778557B (zh) * | 2021-03-26 | 2022-09-21 | 新唐科技股份有限公司 | 真實亂數產生器及真實亂數產生方法 |
CN116860206B (zh) * | 2023-07-24 | 2024-03-22 | 山西工程科技职业大学 | 一种基于自治亚稳态电路的真随机数发生器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1380998A (zh) * | 2000-03-06 | 2002-11-20 | 皇家菲利浦电子有限公司 | 利用触发器亚稳性产生随机数的方法和设备 |
CN102736890A (zh) * | 2011-04-15 | 2012-10-17 | 深圳市证通电子股份有限公司 | 基于开环结构的高速随机数发生器 |
CN205247370U (zh) * | 2015-10-21 | 2016-05-18 | 昆腾微电子股份有限公司 | 随机数生成装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7113966B2 (en) * | 2001-07-25 | 2006-09-26 | Koninklijke Philips Electronics N.V. | Method and apparatus for decorrelating a random number generator using a pseudo-random sequence |
-
2015
- 2015-10-21 CN CN201510689294.8A patent/CN105242903B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1380998A (zh) * | 2000-03-06 | 2002-11-20 | 皇家菲利浦电子有限公司 | 利用触发器亚稳性产生随机数的方法和设备 |
CN102736890A (zh) * | 2011-04-15 | 2012-10-17 | 深圳市证通电子股份有限公司 | 基于开环结构的高速随机数发生器 |
CN205247370U (zh) * | 2015-10-21 | 2016-05-18 | 昆腾微电子股份有限公司 | 随机数生成装置 |
Non-Patent Citations (1)
Title |
---|
基于振荡采样的真随机数发生器IP设计;郑小岳等;《江南大学学报(自然科学版)》;20061020;第5卷(第5期);第522-525页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105242903A (zh) | 2016-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105242903B (zh) | 随机数生成装置和方法 | |
US7003423B1 (en) | Programmable logic resource with data transfer synchronization | |
CN100559356C (zh) | 跨不同时钟域的数据信号传输方法 | |
CN103220000B (zh) | 串化器及数据串化方法 | |
CN106897238B (zh) | 一种数据处理装置及方法 | |
US9054941B2 (en) | Clock and data recovery using dual manchester encoded data streams | |
JP2010200090A (ja) | 位相補償用クロック同期回路 | |
US8922264B1 (en) | Methods and apparatus for clock tree phase alignment | |
CN106788353A (zh) | 一种时钟偏斜纠正方法及电路、终端设备 | |
CN106209075A (zh) | 数字延迟单元与信号延迟电路 | |
US8812893B1 (en) | Apparatus and methods for low-skew channel bonding | |
CN102790605B (zh) | 异步信号同步器 | |
US8718215B2 (en) | Method and apparatus for deskewing data transmissions | |
WO2013110613A1 (en) | Modulated clock synchronizer | |
CN111124363B (zh) | 一种真随机数生成方法及真随机数发生器 | |
CN205247370U (zh) | 随机数生成装置 | |
JP4271623B2 (ja) | クロック調整装置および方法 | |
CN105306022A (zh) | 一种用于异步电路四相位握手协议的非对称延时装置 | |
CN105607689A (zh) | 高速多相时钟同步方法 | |
CN108777576A (zh) | 一种SoC系统复位期间锁相环稳定时钟输出电路 | |
CN101114517A (zh) | 用于执行动态修整的系统和方法 | |
CN108781080A (zh) | 分频电路、分路器电路、以及半导体集成电路 | |
CN102916700B (zh) | 数据传输装置及方法 | |
JP4765668B2 (ja) | データ受信回路 | |
CN103856281A (zh) | 一种数据同步的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |