KR20050001377A - 링 발진 회로를 구비한 난수 발생 장치 - Google Patents

링 발진 회로를 구비한 난수 발생 장치 Download PDF

Info

Publication number
KR20050001377A
KR20050001377A KR1020040047200A KR20040047200A KR20050001377A KR 20050001377 A KR20050001377 A KR 20050001377A KR 1020040047200 A KR1020040047200 A KR 1020040047200A KR 20040047200 A KR20040047200 A KR 20040047200A KR 20050001377 A KR20050001377 A KR 20050001377A
Authority
KR
South Korea
Prior art keywords
random number
level
signal
output
metastable
Prior art date
Application number
KR1020040047200A
Other languages
English (en)
Other versions
KR100668554B1 (ko
Inventor
후꾸시마가즈히꼬
야마구찌아쯔오
Original Assignee
가부시끼가이샤 르네사스 테크놀로지
가부시키가이샤 르네사스 엘에스아이 디자인
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 가부시끼가이샤 르네사스 테크놀로지, 가부시키가이샤 르네사스 엘에스아이 디자인 filed Critical 가부시끼가이샤 르네사스 테크놀로지
Publication of KR20050001377A publication Critical patent/KR20050001377A/ko
Application granted granted Critical
Publication of KR100668554B1 publication Critical patent/KR100668554B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03BGENERATION OF OSCILLATIONS, DIRECTLY OR BY FREQUENCY-CHANGING, BY CIRCUITS EMPLOYING ACTIVE ELEMENTS WHICH OPERATE IN A NON-SWITCHING MANNER; GENERATION OF NOISE BY SUCH CIRCUITS
    • H03B25/00Simultaneous generation by a free-running oscillator of oscillations having different frequencies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/36Data generation devices, e.g. data inverters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/36Data generation devices, e.g. data inverters
    • G11C2029/3602Pattern generator

Abstract

난수 발생 장치의 링 발진기(12)에서는, EX-OR 게이트(21) 및 4개의 인버터(22)가 루프를 형성한다. 이 루프는 기동 신호가 「L」레벨일 때에는 안정 상태가 되고, 기동 신호가 「H」레벨일 때에는 발진 상태가 된다. 루프의 지연 시간보다도 짧은 펄스 폭의 기동 신호에 따라, 출력 노드(N1∼N5)에 「H」레벨과 「L」레벨 사이의 불확정 상태인 메타스테이블이 순차적으로 발생한다. 메타스테이블의 파형은 시간이 지남에 따라 서서히 작아져 소멸한다. 메타스테이블의 수명은 제어할 수 없기 때문에, 메타스테이블이 소멸하는 노드는 랜덤하다. 이 때문에, 카운터(13)의 출력 신호는 메타스테이블의 수명에 의존한 진정 난수 데이터로 된다. 따라서, 소형이면서 소비 전력이 작고, 고성능의 난수 발생 장치를 실현할 수 있다.

Description

링 발진 회로를 구비한 난수 발생 장치{RANDOM NUMBER GENERATOR WITH RING OSCILLATION CIRCUIT}
본 발명은 난수 발생 장치에 관한 것으로, 특히 링 발진 회로를 구비하는 난수 발생 장치에 관한 것이다.
정보 시큐러티 분야에서는 난수의 사용이 불가결하고, 최근, 균일성(난수의 확률값 및 출현율에 차이가 발생하지 않는 것)을 갖고, 또한 난수 출현의 규칙성이나 전후의 상관성, 주기성 등을 갖지 않는 자연 난수(진정 난수)를 발생하는 고성능의 난수 발생 장치의 수요가 높아지고 있다. 이러한 난수 발생 장치로서, 미약 방사선, 저항이나 다이오드의 열 잡음, 수정 발진기의 진동 등의 자연 현상을 이용하여 얻어지는 랜덤 펄스를 이용한 것이 있다.
종래의 난수 발생 장치에서는, 난수를 생성하는 플립플롭의 입력 라인에 지터 생성 회로를 부가하여, 입력 신호의 지터에 의해 플립플롭 출력의 불확정 동작 범위를 넓히는 것이 제안되고 있다(예를 들면, 일본 특개2002-366347호 공보참조).
또한, 링 발진 회로를 구성하는 전계 효과 트랜지스터의 서브스트레이트 효과를 이용함으로써, 링 발진 회로의 발진 주파수를 변동시켜, 주파수가 변동하는 클럭 신호를 생성하는 것도 있다. 이 경우, 주파수가 변동하는 클럭 신호의 펄스 수를 카운터로 계수함으로써 난수를 생성한다(예를 들면, 일본 특개2001-331306호 공보 참조).
그러나, 자연 현상에 의한 랜덤 펄스를 이용한 난수 발생 장치에서는, 랜덤 펄스 발생원, 신호 증폭기, 파형 정형 회로, 균일성 적정화 회로 등의 아날로그 요소가 많이 포함되기 때문에, 회로 규모가 크고 또한 복잡하게 된다. 이 때문에, 이들을 일체의 LSI(대규모 집적 회로)로서 마이크로컴퓨터나 ASIC(Application Specific Integrated Circuit : 어플리케이션 고유 집적 회로)에 탑재하는 것은 어려웠다. 또한, 열 잡음을 이용한 것은 외부 노이즈 등의 영향을 받기 쉽기 때문에 동작의 안정성이 결여되었다. 또한, 방사선을 이용한 것은 환경에의 영향이 우려되었다.
초소형·박형 하이테크 기기에 적용하기 위해서는, 더 소형이며 소비 전력이 작고, 고성능의 난수 발생 장치가 요구된다.
그 때문에, 본 발명의 주된 목적은, 소형이며 소비 전력이 작고, 고성능의 난수 발생 장치를 제공하는 것이다.
본 발명의 상기 및 다른 목적, 특징, 국면 및 이점은, 첨부 도면과 관련하여이해되는 본 발명에 관한 다음의 상세한 설명으로부터 명확해질 것이다.
도 1은 본 발명의 제1 실시예에 따른 난수 발생 장치의 개략 구성을 도시하는 블록도.
도 2는 도 1에 도시한 진정 난수 발생부의 구성을 도시하는 블록도.
도 3은 도 2에 도시한 링 발진기 및 카운터의 구성을 도시하는 회로도.
도 4a∼도 4c는 각각 도 3에 도시한 링 발진기 및 카운터의 동작을 설명하기 위한 타임차트.
도 5는 도 1에 도시한 LFSR(Linear Feedback Shift Register : 선형 귀환 시프트 레지스터)의 구성을 도시하는 회로도.
도 6은 도 1에 도시한 난수 저장부의 구성을 도시하는 회로도.
도 7은 도 6에 도시한 난수 저장부의 동작을 설명하기 위한 타임차트.
도 8은 본 발명의 제1 실시예의 변경예에 따른 링 발진기 및 카운터의 구성을 도시하는 회로도.
도 9는 본 발명의 제2 실시예에 따른 링 발진기 및 카운터 구성을 도시하는 회로도.
도 10a∼도 10c는 각각 도 9에 도시한 링 발진기 및 카운터의 동작을 설명하기 위한 타임차트.
도 11은 본 발명의 제3 실시예에 따른 링 발진기의 구성을 도시하는 회로도.
도 12는 본 발명의 제3 실시예의 변경예에 따른 링 발진기의 구성을 도시하는 회로도.
도 13은 도 3에 도시한 링 발진기의 메타스테이블이 발생하지 않는 경우의 동작을 설명하기 위한 타임차트.
도 14a 및 도 14b는 각각 도 12에 도시한 링 발진기가 확실하게 메타스테이블을 발생하는 동작을 설명하기 위한 타임차트.
도 15는 본 발명의 제4 실시예에 따른 링 발진기의 구성을 도시하는 회로도.
도 16은 도 15에 도시한 링 발진기의 동작을 설명하기 위한 타임차트.
도 17은 본 발명의 제5 실시예에 따른 링 발진기의 구성을 도시하는 회로도.
도 18은 도 17에 도시한 링 발진기의 동작을 설명하기 위한 타임차트.
도 19는 본 발명의 제5 실시예의 변경예에 따른 링 발진기의 구성을 도시하는 회로도.
도 20은 본 발명의 제6 실시예에 따른 링 발진기의 구성을 도시하는 블록도.
도 21은 본 발명의 제7 실시예에 따른 링 발진기 및 카운터의 구성을 도시하는 블록도.
도 22는 본 발명의 제8 실시예에 따른 난수 발생 장치의 개략 구성을 도시하는 블록도.
도 23은 도 22에 도시한 난수 발생 장치의 동작을 설명하기 위한 타임차트.
도 24는 본 발명의 제8 실시예의 변경예에 따른 난수 발생 장치의 개략 구성을 도시하는 블록도.
도 25는 도 24에 도시한 난수 발생 장치의 동작을 설명하기 위한 타임차트.
도 26은 본 발명의 제9 실시예에 따른 난수 발생 장치의 개략 구성을 도시하는 블록도.
도 27은 본 발명의 제10 실시예에 따른 난수 발생 장치의 개략 구성을 도시하는 블록도.
<도면의 주요 부분에 대한 부호의 설명>
1 : 진정 난수 발생부
2 : LFSR
3, 21, 24, 32, 125 : EX-OR 게이트
4 : 난수 저장부
5 : CPU
11 : 기동 입력 생성부
12, 50, 60, 70, 80, 90, 100, 110 : 링 발진기
13, 120 : 카운터
22, 71, 72 : 인버터
23, 31, 41 : 플립플롭
33, 121∼124 : AND 게이트
34 : OR 게이트
42 : 버퍼 회로
51, 73∼75, 91 : NAND 게이트
111∼114 : 지연 회로
131 : 난수 생성 제어부
132 : 난수 생성 비트수 카운터
141 : 링 발진기+카운터
[제1 실시예]
도 1에서, 이 제1 실시예에 따른 난수 발생 장치는, 진정 난수 발생부(1), LFSR : 2), EX-OR(배타적 논리합) 게이트(3), 난수 저장부(4) 및 CPU(Central Processing Unit: 중앙 처리 장치 : 5)를 구비한다.
진정 난수 발생부(1)는, CPU(5)로부터의 난수 발생 요구 신호에 따라 진정 난수 데이터(규칙성이 없고 질이 높은 난수 데이터)를 생성한다. LFSR(2)는, CPU(5)로부터의 클럭 신호에 따라 균일성이 있는 의사 난수 데이터("0"과 "1"의 발생 확률이 모두 50%로, 규칙성이 있는 의사적인 난수 데이터)를 생성한다. 진정 난수 발생부(1)와 LFSR(2)는 비동기로 한다. 또, LFSR(2)는, CPU(5)로부터의 클럭 신호를 받는 대신에, CPU(5)로부터의 라이트 신호를 받아도 된다.
EX-OR 게이트(3)는 진정 난수 발생부(1)로부터의 진정 난수 데이터와 LFSR(2)로부터의 의사 난수 데이터와의 배타적 논리합 데이터를 난수 저장부(4)에 공급한다. 진정 난수 발생부(1)의 출력 진정 난수 데이터는 균일성이 보증되어 있지 않지만, LFSR(2)의 출력 의사 난수 데이터는 균일성이 보증되어 있기 때문에, EX-OR 게이트(3)로부터는 균일성이 있는 난수 데이터가 출력된다.
난수 저장부(4)는, CPU(5)로부터의 라이트 신호에 따라 EX-OR 게이트(3)로부터의 난수 데이터를 기억하여, CPU(5)로부터의 리드 신호에 따라 난수값을 출력한다. CPU(5)는, 난수 발생 요구 신호, 클럭 신호, 라이트 신호 및 리드 신호를 생성하여 진정 난수 발생부(1), LFSR(2) 및 난수 저장부(4)를 제어하여, 난수 저장부(4)로부터 난수값을 판독한다.
도 2에서, 이 진정 난수 발생부(1)는, 기동 입력 생성부(11), 링 발진기(12) 및 카운터(13)를 포함한다.
기동 입력 생성부(11)는, CPU(5)로부터의 난수 발생 요구 신호에 따라, 진정 난수 데이터를 발생시키기 위한 기동 신호를 생성한다. 링 발진기(12)는, 기동 입력 생성부(11)로부터의 기동 신호에 따라 발진 상태 또는 안정 상태가 된다. 카운터(13)는, 링 발진기(12)의 루프 상의 노드에 전달되는 신호의 펄스수를 카운트함으로써 진정 난수 데이터를 출력한다.
도 3에서, 이 링 발진기(12)는 EX-OR 게이트(21) 및 4개의 인버터(22)를 포함하고, 카운터(13)는 5개의 플립플롭(23) 및 4개의 EX-OR 게이트(24)를 포함한다.
링 발진기(12)에서, EX-OR 게이트(21)의 출력 단자와 한쪽 입력 단자와의 사이에 4개의 인버터(22)가 직렬 접속된다. 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에서, 「H」 레벨과 「L」 레벨 사이의 불확정 상태인 메타스테이블을 출력 노드 N1∼N5에 발생시키기 위한 3가지의 기동 신호의 패턴을 도시한다.
도 4a에서, 기동 신호는, 시각 t0에 「H」 레벨로 상승되고, 시간 T0 경과 후에 「L」 레벨로 하강되는 펄스 신호이다. 이 시간 T0(펄스 폭)은, 링 발진기(12)의 루프의 지연 시간 T1보다도 짧은 시간으로 한다. 초기 상태에서 출력 노드 N1, N3, N5의 전위가 「L」 레벨, 출력 노드 N2, N4의 전위가 「H」 레벨의 안정 상태인 경우, 출력 노드 N1의 전위는 EX-OR 게이트(21)에 의한 지연 시간만큼 기동 신호가 지연된 펄스 파형이 된다. 이 출력 노드 N1의 전위 변화에 따라, 출력 노드 N2의 전위는 인버터(22)에 의한 지연 시간만큼 출력 노드 N1의 펄스 파형이 지연되고, 또한 반전된 파형이 된다. 각 출력 노드 N1∼N5에서 이러한 동작이 순차적으로 반복되어, 펄스 파형은 서서히 완만해진다. 이와 같이 파형이 완만해지는 상태가 메타스테이블이다. 이 메타스테이블의 파형은 시간이 지남에 따라 서서히 작아져, 루프를 2주(周)한 후 출력 노드 N1에서 소멸한다(메타스테이블의 파형이 플립플롭(23)의 임계값을 초과하지 않게 된 시점에서, 메타스테이블이 소멸한다고 판단함). 이 경우, 각 플립플롭(23)은, 각각 펄스수를 2회씩 카운트한다. 즉, 초기 상태에서 각 플립플롭(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)의 지연 특성에 의해, 메타스테이블이 소멸하는 노드가 어느 하나의 노드에 편향되는 경우가 있다. 그러나, 플립플롭(23)을 홀수개(5개) 설치하는 것에 의해, 메타스테이블이 동일한 노드에서 소멸한 경우라도, 메타스테이블의 주(周) 횟수가 서로 다르면 카운터(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에서, 이 LFSR(2)은, n개(단, n은 임의의 자연수)의 플립플롭(31), 복수의 EX-OR 게이트(32), AND 게이트(33) 및 OR 게이트(34)를 포함한다.
각 플립플롭(31)은, 그 데이터 입력 단자가 전단(前段)의 플립플롭(31)의 정논리 출력 단자에 접속되고, 그 클럭 입력 단자가 CPU(5)로부터의 클럭 신호를 받고, 그 부논리 출력 단자가 AND 게이트(33)의 입력 단자에 접속된다. 단, 초단의 플립플롭(31)은, 그 데이터 입력 단자가 OR 게이트(34)의 출력 단자에 접속된다.
각 EX-OR 게이트(32)는, 그 한쪽 입력 단자가 대응하는 플립플롭(31)의 정논리 출력 신호를 받고, 다른 쪽 입력 단자가 전단의 EX-OR 게이트(32)의 출력 신호를 받고, 이들 배타적 논리합 신호를 출력한다. 단, 초단의 EX-OR 게이트(32)는, 그 한쪽 입력 단자가 (n-2)단째의 플립플롭(31)의 정논리 출력 신호를 받고, 다른 쪽 입력 단자가 n 단째의 EX-OR 게이트(32)의 출력 신호를 받는다.
이와 같이, 복수단의 플립플롭(31)을 직렬로 접속하고, 최종 출력을 피드백하는 구성에 의해, 의사 난수가 생성되는 것은 주지된 사실이다. 이 LFSR(2)이 출력하는 의사 난수 데이터의 반복 주기는 EX-OR 게이트(32)의 수 및 위치에 따라 서로 다르고, 의사 난수 데이터의 반복 주기가 가장 길어지도록 EX-OR 게이트(32)의수 및 위치가 정해진다. 이 경우, 반복 주기가 (2n-1)인 의사 난수 데이터가 생성된다.
AND 게이트(33)는, n개의 플립플롭(31)의 부논리 출력 신호의 논리곱 신호를 출력한다. OR 게이트(34)는, 최종단의 EX-OR 게이트(32)의 출력 신호 및 AND 게이트(33)의 출력 신호에 따른 신호를 출력한다. 이 구성에 의해, 모든 플립플롭(31)의 정논리 출력 신호가 "0"이 되어 LFSR(2)의 출력 의사 난수 데이터가 "0"의 안정 상태가 되는 것이 방지된다.
도 6에서, 이 난수 저장부(4)는, 8개의 플립플롭(41) 및 8개의 버퍼 회로(42)를 포함하여, 8 비트의 난수 데이터를 저장할 수 있다.
각 플립플롭(41)은, 그 데이터 입력 단자가 전단의 플립플롭(41)의 정논리 출력 단자에 접속되어, 그 클럭 입력 단자가 CPU(5)로부터의 라이트 신호를 받고, 그 정논리 출력 단자가 대응하는 버퍼 회로(42)에 접속된다. 단, 초단의 플립플롭(41)은, 그 데이터 입력 단자가 EX-OR 게이트(3)로부터 난수 데이터를 받는다. 8개의 버퍼 회로(42)는, CPU(5)로부터의 리드 신호에 따라, 대응하는 8개의 플립플롭(41)에 기억된 난수 데이터를, 8 비트의 난수값으로 하여 버스를 통하여 CPU(5)에 출력한다.
도 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)이 된다. 이 동작을 순차적으로 반복하는 것에 의해, 시각 t29에서의 난수값은 "C6"(2진 표현으로는 11000110)으로 되어 8 비트의 난수 데이터가 기억된다. 그 후, CPU(5)로부터의 리드 신호에 따라, 난수값 "C6"을 출력한다.
이와 같이, 난수 저장부(4)를 8단의 시프트 레지스터로 구성함으로써 8 비트의 난수 데이터를 저장할 수 있기 때문에, CPU(5)의 난수 저장부(4)에의 액세스 빈도가 적어도 된다.
이상과 같이, 이 제1 실시예에서는, 진정 난수 발생부(1)의 링 발진기(12)를 발진 제어하고, 메타스테이블의 수명을 "0", "1"로 2치화함으로써 진정 난수 데이터를 생성한다. 따라서, 소형이며 소비 전력이 작고, 고성능의 난수 발생 장치를 실현할 수 있다.
또, 여기서는 8 비트의 난수 데이터를 기억하는 경우에 대해 설명했지만, 난수 저장부(4)를 m 개(단, m은 임의의 자연수)의 플립플롭(41) 및 m 개의 버퍼 회로(42)로 구성하면, 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, N3, N5, 혹은 짝수번째의 출력 노드 N2, N4 중 어느 한쪽으로 편향되는 경향이 있다. 이경우, 도 3에 도시한 바와 같이 모든 출력 노드 N1∼N5에 플립플롭(23)이 접속된 구성에서는, 카운터(13)로부터의 진정 난수 데이터가 "0"이나 "1" 중 어느 한쪽으로 편향되어, 진정 난수 데이터의 균일성이 유지되지 않는다.
그러나, 도 8과 같이 홀수번째의 출력 노드 N1, N3, N5에만 플립플롭(23)을 접속하는 구성이면, 메타스테이블이 소멸하는 노드가 홀수번째의 출력 노드 N1, N3, N5, 혹은 짝수번째의 출력 노드 N2, N4 중 어느 한쪽으로 편향된 경우라도, 카운터(13)로부터의 진정 난수 데이터가 "0"이나 "1" 중 어느 한쪽으로 편향되지 않는다. 예를 들면, 메타스테이블이 소멸하는 노드가 출력 노드 N1, N5인 경우와 출력 노드 N3인 경우에는, 카운터(13)로부터의 진정 난수 데이터는 서로 다르다. 이 때문에, 진정 난수 데이터의 균일성이 개선된다.
따라서, 이 제1 실시예의 변경예에서는, 링 발진기(12)의 홀수번째의 출력 노드 N1, N3, N5에 대응하여 플립플롭(23)을 설치하는 것에 의해, 진정 난수 발생부(1)에 의해 생성하는 진정 난수 데이터의 질을 높일 수 있으며, 더 고성능의 난수 발생 장치를 실현할 수 있다.
또, 여기서는 홀수번째의 출력 노드 N1, N3, N5에 플립플롭(23)을 접속한 경우에 대해 설명했지만, 짝수번째의 출력 노드 N2, N4에 플립플롭(23)을 접속한 경우도 마찬가지의 효과가 얻어진다.
[제2 실시예]
도 9의 제2 실시예에 따른 링 발진기(50) 및 카운터(13)를 참조하면, 도 3의 제1 실시예에 따른 링 발진기(12) 및 카운터(13)와 상이한 점은, EX-OR 게이트(21)가 NAND 게이트(51)로 치환되는 점이다.
도 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의 전위는 NAND 게이트(51)에 의한 지연 시간만큼 기동 신호가 지연되고, 또한 반전된 펄스 파형이 된다. 이 출력 노드 N1의 전위 변화에 따라, 출력 노드 N2∼N5에 순차적으로 메타스테이블이 발생한다. 메타스테이블의 파형은 시간이 지남에 따라 서서히 작아져, 출력 노드 N5에서 소멸한다. 메타스테이블의 수명은 제어할 수 없기 때문에, 메타스테이블이 소멸하는 노드는 랜덤하다. 따라서, 메타스테이블이 발생한 시간부터 소정 시간 경과 후의 시각 t1의 카운터(13)의 출력 신호는, 메타스테이블의 수명에 의존한 진정 난수 데이터로 된다.
또, 이 경우에는 NAND 게이트(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)를 발진 제어하여, 메타스테이블의 수명을 "0", "1"로 2치화함으로써 진정 난수 데이터를 생성한다. 따라서, 소형이며 소비 전력이 작고, 고성능의 난수 발생 장치를 실현할 수 있다.
또, 여기서는 인버터(22)가 4개, 플립플롭(23)이 5개인 경우에 대하여 설명했지만, 인버터(22)가 임의의 짝수개, 플립플롭(23)이 임의의 개수인 경우라도 마찬가지의 효과가 얻어진다.
[제3 실시예]
도 11에서, 이 제3 실시예에 따른 링 발진기(60)는 스위치 회로 SW1 및 7개의 인버터(22)를 포함한다.
링 발진기(60)에서, 출력 노드 N11과 출력 노드 N18과의 사이에 7개의 인버터(22)가 직렬 접속된다. 스위치 회로 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 실시예에서는, 링 발진기(60)의 7개(홀수개)의 인버터(22)로 이루어지는 루프와 6개(짝수개)의 인버터(22)로 이루어지는 루프를 전환하는 스위치 회로 SW1을 설치하고, 메타스테이블의 수명을 "0", "1"로 2치화함으로써 진정 난수 데이터를 생성한다. 따라서, 소형이며 소비 전력이 작고, 고성능의 난수 발생 장치를 실현할 수 있다.
또, 여기서는 스위치 회로 SW1이 7개의 인버터(22)로 이루어지는 루프와 6개의 인버터(22)로 이루어지는 루프를 전환하는 경우에 대해 설명했지만, 스위치 회로 SW1이 임의의 홀수개의 인버터(22)로 이루어지는 루프와 임의의 짝수개의 인버터(22)로 이루어지는 루프를 전환하도록 구성하면 마찬가지의 효과가 얻어진다.
[제3 실시예의 변경예]
도 12에서, 이 제3 실시예의 변경예에 따른 링 발진기(70)는, 3개의 인버터(22) 및 3개의 인버터(71), 인버터(72), NAND 게이트(73∼75)를 포함한다.도 12의 링 발진기(70)는, 도 11의 링 발진기(60)의 스위치 회로 SW1을, NAND 게이트(73∼75) 및 인버터(72)를 이용하여 구체화한 것이다. 즉, NAND 게이트(73∼75) 및 인버터(72)에 의해, 홀수개의 인버터로 이루어지는 루프와 짝수개의 인버터로 이루어지는 루프가 전환된다.
링 발진기(70)에서, 3개의 인버터(22)는 출력 노드 N21과 출력 노드 N24와의 사이에 직렬 접속되고, 3개의 인버터(71)는 출력 노드(24)와 출력 노드 N25와의 사이에 직렬 접속된다. NAND 게이트(73)는, 그 한쪽 입력 단자가 출력 노드 N24에 접속되고, 다른 쪽 입력 단자는 기동 신호를 받는다. NAND 게이트(74)는, 그 한쪽 입력 단자가 출력 노드 N25에 접속되고, 다른 쪽 입력 단자는 인버터(72)를 통하여 기동 신호를 받는다. NAND 게이트(75)는, 그 한쪽 입력 단자가 NAND 게이트(73)로부터의 신호를 받고, 다른 쪽 단자가 NAND 게이트(74)로부터의 신호를 받고, 그 출력 단자는 노드 N21에 접속된다. 출력 노드 N21∼N24는, 각각 카운터(13)가 대응하는 플립플롭의 클럭 입력 단자에 접속된다.
이 구성에 의해, 기동 신호가 「H」 레벨일 때에는 NAND 게이트(74)의 출력 신호가 「H」 레벨로 고정되기 때문에, 3개의 인버터(22) 및 NAND 게이트(73, 75)로 이루어지는 루프, 즉 홀수개의 인버터로 이루어지는 루프라고 간주할 수 있다. 기동 신호가 「L」 레벨일 때에는 NAND 게이트(73)의 출력 신호가 「H」 레벨로 고정되기 때문에, 3개의 인버터(22)와 3개의 인버터(71)와 NAND 게이트(74, 75)로 이루어지는 루프, 즉 짝수개의 인버터로 이루어지는 루프로 간주할 수 있다. 이 때문에, 기동 신호가 「H」 레벨일 때에는 루프가 발진 상태가 되고, 기동 신호가「L」 레벨일 때에는 루프가 안정 상태가 된다.
이 링 발진기(70)의 동작은, 도 11에 도시한 링 발진기(60)의 동작과 마찬가지이다. 또, 도 3 및 도 9에서 도시한 링 발진기(12, 50)에서는, 기동 신호의 타이밍에 의해서는 메타스테이블이 발생하지 않는 경우가 있다. 그러나, 도 12에 도시한 링 발진기(70)에서는, 확실하게 메타스테이블이 발생한다.
도 13은, 도 3에 도시한 링 발진기(12)의 메타스테이블이 발생하지 않는 경우의 동작을 설명하기 위한 타임차트로서, 도 4c와 대비되는 도면이다. 도 13에서, 시각 t0보다 빠른 시각 t40에 기동 신호가 「L」 레벨로 하강된다.
시각 t40에서, 기동 신호가 「L」 레벨로 하강되는 것에 따라, 루프가 발진 상태에서 안정 상태로 천이한다. 이 때, 출력 노드 N1의 전위는, 출력 노드 N5의 전위 변화에 따라「H」 레벨로 상승된 순간에, 기동 신호가 「L」 레벨로 하강되는 것에 따라「L」 레벨로 하강된다. 이 때문에, 출력 노드 N1∼N5에는 메타스테이블이 발생하지 않는다.
도 14a 및 도 14b는, 각각 도 12에 도시한 링 발진기(70)가 확실하게 메타스테이블을 발생하는 동작을 설명하기 위한 타임차트이다. 도 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)에서, 출력 노드 N11과 출력 노드 N18과의 사이에 7개의 인버터(22)가 직렬 접속된다. 스위치 회로 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 실시예에서는, 링 발진기(80)의 3개(홀수개)의 인버터(22)로 이루어지는 단루프와 7개(홀수개)의 인버터(22)로 이루어지는 장루프를 전환하는 스위치 회로 SW11을 설치하는 것에 의해, 링 발진기(80)의 루프의 지연 시간보다도 짧은 펄스 폭의 기동 신호를 생성하지 않아도, 기동 신호를 「L」 레벨로 하강시키는 것만으로 간단히 메타스테이블을 발생할 수 있다. 따라서, 보다 간이한 구성의 난수 발생 장치를 실현할 수 있다.
또, 여기서는, 링 발진기(80)의 인버터(22)가 7개인 경우에 대하여 설명했지만, 이 인버터(22)가 임의의 홀수개인 경우에 있어서, 단루프의 발진 주파수가 장루프의 발진 주파수보다도 충분히 높아지도록 구성하면 마찬가지의 효과가 얻어진다.
또한, 이 링 발진기는, 도 12에 도시한 링 발진기(70)와 마찬가지로 NAND 게이트를 이용하여 구체화할 수도 있다.
[제5 실시예]
도 17에서, 이 제5 실시예에 따른 링 발진기(90)는, 5개의 NAND 게이트(91)를 포함한다.
각 NAND 게이트(91)는, 그 한쪽 입력 단자가 전단의 NAND 게이트(91)의 출력 신호를 받고, 다른 쪽 입력 단자가 기동 신호를 받는다. 단, 초단의 NAND 게이트(91)는, 그 한쪽 입력 단자가 최종단의 NAND 게이트(91)의 출력 신호를 받는다. 이들 5개의 NAND 게이트(91)는 루프를 형성하고, 이 루프는 기동 신호가 「L」 레벨일 때에는 안정 상태가 되고, 기동 신호가 「H」 레벨일 때에는 발진 상태가 된다. 출력 노드 N31∼N35는, 각각 카운터(13)의 대응하는 플립플롭의 클럭 입력 단자에 접속된다.
도 18은, 이 링 발진기(90)의 동작을 설명하기 위한 타임차트이다. 도 18에서, 초기 상태는 출력 노드 N31∼N35의 전위가 「H」 레벨인 안정 상태이다. 시각 t0에 기동 신호가 「H」 레벨로 상승된 것에 따라, 각 NAND 게이트(91)의 출력 노드 N31∼N35의 전위가 「L」 레벨 하강된 후, 루프가 안정 상태에서 발진 상태로 천이한다. 이 때, 출력 노드 N32∼N35에 순차적으로 메타스테이블이 발생한다. 메타스테이블의 파형은 시간이 지남에 따라 서서히 작아져, 출력 노드 N35에서 소멸한다. 또, 이 메타스테이블의 수명은 제어할 수 없다. 즉, 메타스테이블이 소멸하는 노드는 랜덤하다. 이 경우, 시각 t0으로부터 소정 시간 경과 후(메타스테이블 소멸 후)의 시각 t1에서의 카운터(13)의 출력 신호는 메타스테이블의 수명에 의존한 진정 난수 데이터로 된다.
이상과 같이, 이 제5 실시예에서는, 링 발진기(90)의 루프의 지연 시간보다도 짧은 펄스 폭의 기동 신호를 생성하지 않아도, 기동 신호를 「H」 레벨로 상승시키는 것만으로 간단히 메타스테이블을 발생할 수 있다. 따라서, 보다 간이한 구성의 난수 발생 장치를 실현할 수 있다.
또, 여기서는 NAND 게이트(91)가 5개인 경우에 대하여 설명했지만, NAND 게이트(91)가 임의의 홀수개인 경우라도 마찬가지의 효과가 얻어진다.
[제5 실시예의 변경예]
도 19의 제5 실시예의 변경예에 따른 링 발진기(100)를 참조하면, 도 17의 제5 실시예에 따른 링 발진기(90)와 상이한 점은, NAND 게이트(91)의 수가 6개로 증가하는 점이다. 이들 6개의 NAND 게이트(91)는 루프를 형성하고, 이 루프는 기동 신호가 「L」 레벨 및 「H」 레벨일 때에 안정 상태가 된다. 출력 노드 N31∼N36은, 각각 카운터(13)가 대응하는 플립플롭의 클럭 입력 단자에 접속된다.
초기 상태는 출력 노드 N31∼N36의 전위가 「H」 레벨인 안정 상태이다. 시각 t0에 기동 신호가 「H」 레벨로 상승되는 것에 따라, 각 NAND 게이트(91)의 출력 노드 N31∼N36의 전위가 「L」 레벨로 하강된 후, 출력 노드 N31, N33, N35의 전위가 「L」 레벨, 출력 노드 N32, N34, N36의 전위가 「H」 레벨인 안정 상태로 천이한다. 이 때, 출력 노드 N32∼N36에 순차적으로 메타스테이블이 발생한다. 메타스테이블의 파형은 시간이 지남에 따라 서서히 작아져 소멸한다. 또, 이 메타스테이블의 수명은 제어할 수 없다. 즉, 메타스테이블이 소멸하는 노드는 랜덤하다. 이 경우, 시각 t0으로부터 소정 시간 경과 후(메타스테이블 소멸 후)의 시각 t1에서의 카운터(13)의 출력 신호는 메타스테이블의 수명에 의존한 진정 난수 데이터로 된다.
이상과 같이, 이 제5 실시예의 변경예에서는, 제4 실시예와 마찬가지로 링 발진기(100)의 루프의 지연 시간보다도 짧은 펄스 폭의 기동 신호를 생성하지 않아도, 기동 신호를 「H」 레벨로 상승하는 것만으로, 간단히 메타스테이블을 발생할 수 있다. 따라서, 보다 간이한 구성의 난수 발생 장치를 실현할 수 있다.
또, 여기서는 NAND 게이트(91)가 6개인 경우에 대하여 설명했지만, NAND 게이트(91)가 임의의 짝수개인 경우라도 마찬가지의 효과가 얻어진다.
[제6 실시예]
도 20에서, 이 제6 실시예에 따른 링 발진기(110)는 DL(지연 회로)(111)∼DL(114)를 포함한다.
DL(111)∼DL(114)는, 1개 또는 복수개의 소자로 구성되며, 정논리 신호를 출력하는 지연 회로(예를 들면, 짝수개의 인버터를 직렬 접속한 지연 회로)이다. 즉, 출력 노드 N41이 「H」 레벨이면 출력 노드 N42∼N44도 「H」 레벨이 되고, 출력 노드 N41이 「L」 레벨이면 출력 노드 N42∼N44도 「L」 레벨이 된다.
또한, DL(111)∼DL(114)는 각각 동일한 지연 특성을 갖는 지연 회로로 한다. 즉, DL(111)∼DL(114)의 출력 신호가 「L」 레벨로 하강될 때의 지연 시간은 각각 동일하고, DL(111)∼DL(114)의 출력 신호가 「H」 레벨로 상승될 때의 지연 시간은 각각 동일하다. 출력 노드 N41∼N44는, 각각 카운터(13)가 대응하는 플립플롭의 클럭 입력 단자에 접속된다.
이상과 같은 구성에 의해, 기동 입력 생성부(11)로부터의 기동 신호에 따라메타스테이블이 발생한 경우, 메타스테이블이 소멸하는 노드가 어느 하나의 노드에 편향될 가능성이 낮게 된다.
따라서, 이 제6 실시예에서는, 메타스테이블의 수명의 기울기가 적어져, 질이 높은 진정 난수 데이터가 생성된다. 이 때문에, 더 고성능의 난수 발생 장치를 실현할 수 있다.
[제6 실시예의 변경예]
본 발명의 제6 실시예의 변경예에서는, 도 20의 DL111∼DL113은, 1개 또는 복수개의 소자로 구성되며, 부논리 신호를 출력하는 지연 회로(예를 들면, 홀수개의 인버터를 직렬 접속한 지연 회로)로 한다. 즉, 출력 노드 N41의 전위가 「H」 레벨이면, 출력 노드 N42, N44의 전위가 「L」 레벨, 출력 노드 N43의 전위가 「H」 레벨이 된다.
또한, DL(111), DL(113)은 각각 동일한 지연 특성을 갖는 지연 회로로 하고, DL(112), DL(114)는 각각 동일한 지연 특성을 갖는 지연 회로로 하고, DL(111), DL(113)과 DL(112), DL(114)는 상반하는 지연 특성을 갖는 지연 회로로 한다. 즉, DL(111), DL(113)의 출력 신호가 「L」 레벨로 하강될 때의 지연 시간이, 「H」 레벨로 상승될 때의 지연 시간보다도 긴 경우에는, DL(112), DL(114)의 출력 신호가 「L」 레벨로 하강될 때의 지연 시간이, 「H」 레벨로 상승될 때의 지연 시간보다도 짧다. 출력 노드 N41∼N44는 각각 카운터(13)가 대응하는 플립플롭의 클럭 입력 단자에 접속된다.
이상과 같은 구성에 의해, 기동 입력 생성부(11)로부터의 기동 신호에 따라메타스테이블이 발생한 경우, 메타스테이블이 소멸하는 노드가 어느 하나의 노드에 편향될 가능성이 낮게 된다.
따라서, 이 제6 실시예의 변경예에서는, 제6 실시예와 마찬가지로 메타스테이블의 수명의 불균일이 적어져, 질이 높은 진정 난수 데이터가 생성된다. 이 때문에, 더 고성능의 난수 발생 장치를 실현할 수 있다.
[제7 실시예]
도 21에서, 이 제7 실시예에 따른 링 발진기(110)는 DL(111)∼DL(114)를 포함하고, 카운터(120)는 4개의 플립플롭(23), AND 게이트(121∼124) 및 EX-OR 게이트(125)를 포함한다.
DL(111)∼DL(114)는, 1개 또는 복수개의 소자로 구성되는 지연 회로이다. 출력 노드 N41∼N44는, 각각 대응하는 플립플롭(23)의 클럭 입력 단자에 접속된다. 각 플립플롭(23)은, 그 부논리 출력 단자와 데이터 입력 단자가 접속된, 1 비트의 카운터이다. AND 게이트(121∼124)는, 그 한쪽 입력 단자가 각각 신호 EN11∼EN14를 받고, 다른 쪽 입력 단자가 각각 대응하는 플립플롭(23)의 정논리 출력 신호를 받고, 그 출력 단자가 EX-OR 게이트(125)에 접속된다. EX-OR 게이트(125)는, AND 게이트(121∼124)의 출력 신호의 배타적 논리합 신호를 출력한다.
이상과 같은 구성에 의해, 이 제7 실시예에서는, 신호 EN11∼EN14 중 1개만 「H」 레벨로 하고, 다른 3개를 「L」 레벨로 하여 EX-OR 게이트(125)의 출력 신호를 관측함으로써, DL(111)∼DL(114) 및 각 플립플롭(23)의 회로 테스트를 행할 수 있다. 예를 들면, 루프를 발진 상태로 하고, 신호 EN11을 「H」 레벨, 신호 EN12∼EN14를 「L」 레벨로 했을 때의 EX-OR 게이트(125)의 출력 신호를 관측한다. 이 때, EX-OR 게이트(125)의 출력 신호가 정상이면, DL(111)∼DL(114) 및 출력 노드 N41에 접속된 플립플롭(23)은 정상이고, EX-OR 게이트(125)의 출력 신호가 이상하면, DL(111)∼DL(114) 또는 출력 노드 N41에 접속된 플립플롭(23)에 장해가 있다고 판단할 수 있다. 마찬가지로, 신호 EN12∼EN14 중 1개만을 순차적으로 「H」 레벨로 하여, 각각의 경우의 EX-OR 게이트(125)의 출력 신호를 관측함으로써, DL(111)∼DL(114) 및 각 플립플롭(23)의 회로 테스트를 행할 수 있다.
[제8 실시예]
도 22의 제8 실시예에 따른 난수 발생 장치를 참조하면, 도 1의 제1 실시예에 따른 난수 발생 장치와 상이한 점은, 난수 생성 제어부(131) 및 난수 생성 비트수 카운터(132)가 추가되는 점이다.
도 22에서, 난수 생성 제어부(131)는, 난수 발생 요구 신호를 생성하여 진정 난수 발생부(1), LFSR(2) 및 난수 생성 비트수 카운터(132)에 공급함과 함께, 라이트 신호를 생성하여 난수 저장부(4)에 공급한다. 난수 생성 비트수 카운터(132)는, 난수 생성 제어부(131)로부터의 난수 발생 요구 신호의 펄스수를 카운트하고, 난수 저장부(4)가 저장할 수 있는 비트수만큼 카운트하면, 난수 생성 완료 통지 신호를 생성하여 CPU(5) 및 난수 생성 제어부(131)에 공급한다.
도 23은, 이 난수 발생 장치의 동작을 설명하기 위한 타임차트이다. 도 23에서, 이 타임차트는 난수 저장부(4)가 8 비트의 난수 데이터를 저장하는 경우의 각 신호의 파형을 도시한다.
진정 난수 발생부(1)는, 난수 생성 제어부(131)로부터의 난수 발생 요구 신호에 따라 진정 난수 데이터를 생성한다. 진정 난수 발생부(1)에 포함되는 링 발진기는, 난수 발생 요구 신호가 「H」 레벨일 때에 루프가 발진 상태가 되고, 「L」 레벨일 때에 루프가 안정 상태가 되는 것으로 한다. LFSR(2)은, 난수 생성 제어부(131)로부터의 난수 발생 요구 신호에 따라 의사 난수를 생성한다.
난수 생성 비트수 카운터(132)는, 난수 생성 제어부(131)로부터의 난수 발생 요구 신호의 펄스수를 순차적으로 카운트한다. 시각 t50에서, 난수 생성 비트 카운트값이 "8"이 된 것에 따라 난수 생성 완료 통지 신호를 「H」 레벨로 상승시킴과 함께, 난수 생성 비트 카운트값을 "0"으로 리세트한다.
난수 생성 제어부(131)는, 난수 생성 비트수 카운터(132)로부터의 난수 생성 완료 통지 신호가 「H」 레벨인 기간, 난수 발생 요구 신호를 「L」 레벨로 유지한다. 이에 의해, 난수 생성 완료 통지 신호가 「H」 레벨로 되는 기간, 진정 난수 발생부(1) 및 LFSR(2)은 난수 생성 동작을 정지한다.
CPU(5)는, 난수 생성 비트 카운터(132)로부터의 난수 생성 완료 통지 신호가 「H」 레벨로 된 것에 따라, 시각 t51에 리드 신호를 「H」 레벨로 상승시켜 난수 저장부(4)에 저장된 8비트의 난수값을 판독한다.
시각 t52에서, 난수 생성 비트 카운터(132)는 난수 생성 완료 통지 신호를 「L」 레벨로 하강시키고, 난수 생성 제어부(131)는 난수 발생 요구 신호를 「H」 레벨로 상승시키고, CPU(5)는 리드 신호를 「L」 레벨로 하강시킨다.
이상과 같이, 이 제8 실시예에서는, CPU(5)가 난수 저장부(4)로부터 난수값을 판독할 때에, 난수 발생 요구 신호를 일정 기간 「L」 레벨로 유지하여, 진정 난수 발생부(1) 및 LFSR(2)의 난수 생성 동작을 정지한다. 따라서, 진정 난수 발생부(1) 및 LFSR(2)의 동작 빈도를 적게 할 수 있다. 이에 의해, 난수 발생 장치의 저소비 전력화를 실현할 수 있다.
[제8 실시예의 변경예]
도 24의 제8 실시예의 변경예에 따른 난수 발생 장치를 참조하면, 도 22의 제8 실시예에 따른 난수 발생 장치와 상이한 점은, EX-OR 게이트(3)와 난수 저장부(4)와의 사이에 스위치 회로 SW21이 추가되는 점이다.
도 24에서, 스위치 회로 SW21을 전환하는 것에 의해, 난수 저장부(4)가 난수 생성 비트수 카운터(132)로부터의 난수 생성 완료 통지 신호를 받도록 한 경우, 난수 생성 제어부(131) 및 난수 생성 비트수 카운터(132)의 동작 테스트를 행할 수 있다.
도 25는, 이 난수 발생 장치의 동작을 설명하기 위한 타임차트이다. 도 25에서, 난수값은 16진수로 표시되고, 초기 상태에서의 난수값을 "0"으로 한다.
난수 생성 제어부(131)는, 주파수가 동일하며, 소정의 위상차를 갖는 난수 발생 요구 신호 및 라이트 신호를 생성한다. 난수 저장부(4)는, 라이트 신호의 하강 엣지에 따라 그 순간의 난수 생성 완료 통지 신호의 값을 기억한다. 시각 t50까지는, 난수 생성 완료 통지 신호는 「L」 레벨("0")이므로, 난수 저장부(4)의 난수값은 "0"이다. 시각 t50에 난수 생성 완료 통지 신호가 「H」 레벨("1")로 상승되기 때문에, 시각 t60에서 난수값은 "1"이 된다. CPU(5)는, 난수 생성 완료 통지신호가 「H」 레벨("1")이 된 것에 따라, 시각 t51에 리드 신호를 「H」 레벨로 상승하여 난수 저장부(4)의 난수값을 판독한다. 이 때에 판독된 난수값이 "1"이면, 난수 생성 제어부(131) 및 난수 생성 비트수 카운터(132)는 정상으로 판단된다. 한편, 판독된 난수값이 "1" 이외의 값이면, 난수 생성 제어부(131) 또는 난수 생성 비트수 카운터(132)에 장해가 존재한다고 판단된다. 시각 t52에서, 난수 생성 비트 카운터(132)는 난수 생성 완료 통지 신호를 「L」 레벨로 하강하고, 난수 생성 제어부(131)는 난수 발생 요구 신호를 「H」 레벨로 상승하고, CPU(5)는 리드 신호를 「L」 레벨로 하강한다.
이상과 같이, 이 제8 실시예의 변경예에서는, 난수 생성 제어부(131) 및 난수 생성 비트수 카운터(132)의 동작 테스트를 행할 수 있다.
[제9 실시예]
도 26의 제9 실시예에 따른 난수 발생 장치를 참조하면, 도 1의 제1 실시예에 따른 난수 발생 장치와 상이한 점은, 진정 난수 발생부(1)의 수가 2개로 증가한 점이다.
도 26에서, 2개의 진정 난수 발생부(1)는, 각각 CPU(5)로부터의 난수 발생 요구 신호에 따라 진정 난수 데이터를 생성하고, 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)와 동일하며, CPU(5)로부터의 난수 발생 요구 신호에 따라 기동 신호를 생성한다. 각 링 발진기+카운터(141)는, 도 2에 도시한 링 발진기(12) 및 카운터(13)를 포함하고, 기동 입력 생성부(11)로부터의 기동 신호에 따라, 진정 난수 데이터를 생성하여 대응하는 EX-OR 게이트(3)에 출력한다. 이 구성에 의해, 1개의 기동 입력 생성부(11)에 의해 복수의 진정 난수 데이터를 병렬하여 생성할 수 있다. LFSR(2)은, CPU(5)로부터의 클럭 신호에 따라, 의사 난수 데이터를 생성하여 복수의 EX-OR 게이트(3)에 출력한다. 또, LFSR(2)은, CPU(5)로부터의 클럭 신호를 받는 대신에, CPU(5)로부터의 라이트 신호를 받아도 된다. 각 EX-OR 게이트(3)는, 대응하는 링발진기+카운터(141)로부터의 진정 난수 데이터와 LFSR(2)로부터의 의사 난수 데이터와의 배타적 논리합 데이터를 대응하는 난수 저장부(4)에 출력한다. 각 난수 저장부(4)는, CPU(5)로부터의 라이트 신호에 따라 대응하는 EX-OR 게이트(3)로부터의 난수 데이터를 기억하고, CPU(5)로부터의 리드 신호에 따라 기억한 난수값을 출력한다.
이상과 같이, 이 제10 실시예에서는, 복수의 링 발진기+카운터(141), 복수의 EX-OR 게이트(3) 및 복수의 난수 저장부(4)를 각각 병렬로 설치하는 것에 의해, 복수 비트의 난수 데이터를 동시에 생성할 수 있다. 따라서, 난수를 더 고속으로 생성할 수 있다. 이 때문에, 더 고성능의 난수 발생 장치를 실현할 수 있다.
본 발명을 상세히 설명했지만, 이것은 예시를 위한 것일 뿐으로, 한정해서는 안되며, 발명의 정신과 범위는 첨부된 청구 범위에 의해서만 한정되는 것이 분명하게 이해될 것이다.
본 발명에 따른 난수 발생 장치에서는, 루프 형상으로 접속된 복수의 지연 회로와, 복수의 지연 회로에 의해 형성된 루프 내에 복수의 지연 회로의 총 지연 시간보다도 짧은 펄스 폭의 펄스 신호를 발생시키는 펄스 발생 회로와, 복수의 지연 회로 중 임의의 지연 회로의 출력 노드에 접속되고, 그 출력 노드를 펄스 신호가 통과한 횟수를 카운트하여, 그 카운트값에 기초하여 진정 난수 데이터 신호를 출력하는 카운터가 설치된다. 이 경우, 루프 내에 발생하는 메타스테이블의 수명을 "0", "1"로 2치화함으로써 진정 난수 데이터를 생성한다. 따라서, 소형이며 소비 전력이 작고, 고성능의 난수 발생 장치를 실현할 수 있다.

Claims (3)

  1. 난수 발생 장치에 있어서,
    루프 형상으로 접속된 복수의 지연 회로,
    상기 복수의 지연 회로에 의해 형성된 루프 내에 상기 복수의 지연 회로의 총 지연 시간보다도 짧은 펄스 폭의 펄스 신호를 발생시키는 펄스 발생 회로, 및
    상기 복수의 지연 회로 중 임의의 지연 회로의 출력 노드에 접속되고, 상기 출력 노드를 상기 펄스 신호가 통과한 횟수를 카운트하고, 상기 카운트값에 기초하여 진정 난수 데이터 신호를 출력하는 카운터
    를 구비하는 난수 발생 장치.
  2. 제1항에 있어서,
    상기 복수의 지연 회로 중 1개의 지연 회로는 논리 게이트 회로를 포함하고,
    상기 논리 게이트 회로의 한쪽 입력 노드는 전단의 지연 회로의 출력 신호를 받고, 상기 출력 노드는 후단의 지연 회로의 입력 노드에 접속되고,
    상기 펄스 발생 회로는, 상기 논리 게이트 회로의 다른 쪽 입력 노드에 기동 신호를 공급하여 상기 펄스 신호를 발생시키는 난수 발생 장치.
  3. 제2항에 있어서,
    상기 논리 게이트 회로는 배타적 논리합 게이트 회로이고,
    상기 1개의 지연 회로 이외의 각 지연 회로는 인버터인 난수 발생 장치.
KR1020040047200A 2003-06-24 2004-06-23 링 발진 회로를 구비한 난수 발생 장치 KR100668554B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2003-00179798 2003-06-24
JP2003179798A JP4248950B2 (ja) 2003-06-24 2003-06-24 乱数発生装置

Publications (2)

Publication Number Publication Date
KR20050001377A true KR20050001377A (ko) 2005-01-06
KR100668554B1 KR100668554B1 (ko) 2007-01-16

Family

ID=33535093

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040047200A KR100668554B1 (ko) 2003-06-24 2004-06-23 링 발진 회로를 구비한 난수 발생 장치

Country Status (5)

Country Link
US (3) US7424500B2 (ko)
JP (1) JP4248950B2 (ko)
KR (1) KR100668554B1 (ko)
CN (2) CN100399261C (ko)
TW (1) TWI286289B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100090953A (ko) * 2009-02-09 2010-08-18 삼성전자주식회사 난수 발생 장치 및 난수 발생 방법
KR20190063492A (ko) * 2017-11-29 2019-06-10 서울대학교산학협력단 실시간 캘리브레이션을 지원하는 tdc

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7325021B2 (en) * 2003-03-14 2008-01-29 Nxp B.V. VLSI implementation of metastability-based random number generator using delay ladders
JP4248950B2 (ja) * 2003-06-24 2009-04-02 株式会社ルネサステクノロジ 乱数発生装置
CN1991859B (zh) * 2005-12-30 2010-05-05 财团法人工业技术研究院 随机数产生器及其种子计数值产生单元
WO2007099716A1 (ja) * 2006-03-01 2007-09-07 Bellwood International, Inc. データ通信システムおよび可搬型メモリ
US7774616B2 (en) * 2006-06-09 2010-08-10 International Business Machines Corporation Masking a boot sequence by providing a dummy processor
US20070288740A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for secure boot across a plurality of processors
US20070288738A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for selecting a random processor to boot on a multiprocessor system
US20070288761A1 (en) 2006-06-09 2007-12-13 Dale Jason N System and method for booting a multiprocessor device based on selection of encryption keys to be provided to processors
US7594104B2 (en) * 2006-06-09 2009-09-22 International Business Machines Corporation System and method for masking a hardware boot sequence
KR100921815B1 (ko) * 2007-06-18 2009-10-16 주식회사 애트랩 지연시간 측정회로 및 지연시간 측정 방법
DE102007040343B4 (de) * 2007-08-27 2010-12-30 Siemens Ag Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
US8583712B2 (en) * 2007-09-18 2013-11-12 Seagate Technology Llc Multi-bit sampling of oscillator jitter for random number generation
KR101481572B1 (ko) * 2007-10-19 2015-01-26 삼성전자주식회사 난수 발생 장치
US8180816B2 (en) * 2007-11-30 2012-05-15 Infineon Technologies Ag Control of a pseudo random number generator and a consumer circuit coupled thereto
JP2009193523A (ja) * 2008-02-18 2009-08-27 Seiko Epson Corp 乱数発生回路、電子機器、およびi/oセルのテスト方法
US8131789B2 (en) * 2008-03-28 2012-03-06 Atmel Corporation True random number generator
DE102008018678B4 (de) * 2008-04-14 2011-02-03 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
DE102008022918A1 (de) * 2008-05-09 2009-12-03 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
US8081037B2 (en) * 2008-06-11 2011-12-20 Qualcomm Incorporated Ring oscillator using analog parallelism
DE102008048292B4 (de) * 2008-09-22 2012-07-12 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
JP5074359B2 (ja) * 2008-11-12 2012-11-14 日本電信電話株式会社 乱数生成回路
US8539009B2 (en) * 2008-12-16 2013-09-17 Lsi Corporation Parallel true random number generator architecture
US9594541B2 (en) * 2009-01-06 2017-03-14 Inside Secure System and method for detecting FRO locking
US8886692B2 (en) 2009-02-09 2014-11-11 Samsung Electronics Co., Ltd. Apparatus for generating random number
US9335971B1 (en) * 2009-02-27 2016-05-10 Calamp Corp. High entropy random bit source
CN101510150B (zh) * 2009-03-24 2014-12-31 北京中星微电子有限公司 随机数产生装置
US20100281088A1 (en) * 2009-04-29 2010-11-04 Psigenics Corporation Integrated true random number generator
US8522065B2 (en) * 2009-09-06 2013-08-27 Percello Ltd. Generating a random number in an existing system on chip
US9513872B2 (en) * 2009-11-25 2016-12-06 Aclara Technologies Llc Random number generator
KR20110060033A (ko) * 2009-11-30 2011-06-08 박옥희 해상 구조물용 커플링
KR101646506B1 (ko) * 2009-11-30 2016-08-10 삼성전자주식회사 난수 발생기
US8583711B2 (en) * 2009-12-02 2013-11-12 Seagate Technology Llc Random number generation system with ring oscillators
US8635260B2 (en) * 2009-12-02 2014-01-21 Seagate Technology Llc Random number generator incorporating channel filter coefficients
JP5356362B2 (ja) * 2010-12-15 2013-12-04 日本電信電話株式会社 乱数生成回路
JP6083586B2 (ja) * 2011-01-19 2017-02-22 公立大学法人首都大学東京 リング発振器
US8285767B2 (en) * 2011-03-07 2012-10-09 Arm Limited Apparatus and method for generating a random number
CN102736890A (zh) * 2011-04-15 2012-10-17 深圳市证通电子股份有限公司 基于开环结构的高速随机数发生器
US8788551B2 (en) 2011-11-15 2014-07-22 Seagate Technology Llc Random number generation using switching regulators
US9201630B2 (en) * 2012-02-10 2015-12-01 Seagate Technology Llc Random number generation using startup variances
CN103049242B (zh) * 2012-12-04 2015-09-30 清华大学 数字式真随机数发生器电路
JP2014123284A (ja) * 2012-12-21 2014-07-03 Makita Corp 乱数発生装置
KR20140108362A (ko) 2013-02-25 2014-09-11 삼성전자주식회사 난수 발생기
US9846568B2 (en) 2013-05-23 2017-12-19 Synopsys, Inc. System and method for dynamic tuning feedback control for random number generator
DE102013210147A1 (de) * 2013-05-31 2014-12-18 Siemens Aktiengesellschaft Erzeugen von Zufallsbits
US9009495B2 (en) 2013-06-28 2015-04-14 Envieta, LLC High speed cryptographic combining system, and method for programmable logic devices
DE102013219768A1 (de) * 2013-09-30 2015-04-02 Siemens Aktiengesellschaft Erzeugen von Zufallsbits
CN104714774A (zh) * 2013-12-14 2015-06-17 中国航空工业集团公司第六三一研究所 一种基于数字电路的真随机数的产生方法
US9189202B2 (en) 2013-12-23 2015-11-17 The University Of Massachusetts Generate random numbers using metastability resolution time
CN104866280B (zh) * 2014-02-26 2018-07-27 紫光同芯微电子有限公司 一种利用存储器单元实现随机数发生的方法
TWI497409B (zh) * 2014-07-18 2015-08-21 Winbond Electronics Corp 亂數產生器及其亂數產生方法
CN104317551A (zh) * 2014-10-17 2015-01-28 北京德加才科技有限公司 一种超高安全的真随机数生成方法及真随机数生成系统
CN104298486B (zh) * 2014-10-23 2018-02-27 山东维固信息科技股份有限公司 一种嵌入式数据安全系统用soc芯片的随机数发生器
KR101571635B1 (ko) * 2014-10-30 2015-11-24 엘에스산전 주식회사 Plc 고속 카운터의 동작 방법
US9557964B2 (en) 2014-11-21 2017-01-31 Winbond Electronics Corp. Random number generator and method for generating random number thereof
CN104506166B (zh) * 2014-11-25 2017-06-13 武汉工程大学 无序脉冲发生电路
JP6287785B2 (ja) * 2014-11-28 2018-03-07 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP6423277B2 (ja) * 2015-01-09 2018-11-14 株式会社メガチップス 乱数生成装置及び乱数生成方法
CN106291148A (zh) * 2015-05-20 2017-01-04 中芯国际集成电路制造(上海)有限公司 测试电路及其测试方法
US9891888B2 (en) * 2015-06-17 2018-02-13 Nxp B.V. Digital true random number generator based on S-boxes
US9910639B2 (en) 2015-11-30 2018-03-06 International Business Machines Corporation Random number generation using threshold switching mechanism
US10520975B2 (en) 2016-03-03 2019-12-31 Regents Of The University Of Minnesota Polysynchronous stochastic circuits
CN105870778A (zh) * 2016-06-21 2016-08-17 中国工程物理研究院应用电子学研究所 大功率激光引信脉冲驱动源
CN106293617B (zh) * 2016-08-12 2018-11-09 上海坚芯电子科技有限公司 真随机数发生器
CN106325814B (zh) * 2016-08-12 2018-11-20 西安电子科技大学 基于双环耦合振荡电路的真随机数生成器
US10235138B2 (en) 2016-09-30 2019-03-19 International Business Machines Corporation Instruction to provide true random numbers
US10331410B2 (en) 2016-11-09 2019-06-25 Google Llc Hardened random number generator with ring oscillator collapse time random truncation
CN106775583B (zh) * 2016-11-18 2019-03-05 杭州电子科技大学 一种高速真随机数的产生方法
US10740686B2 (en) 2017-01-13 2020-08-11 Regents Of The University Of Minnesota Stochastic computation using pulse-width modulated signals
CN106875878B (zh) * 2017-02-27 2020-04-14 京东方科技集团股份有限公司 温度检测电路、显示面板及显示装置
PL236964B1 (pl) * 2017-08-08 2021-03-08 Politechnika Warszawska Generator losowy
PL237197B1 (pl) * 2017-08-08 2021-03-22 Politechnika Warszawska Generator losowy
WO2019030667A1 (en) * 2017-08-08 2019-02-14 Politechnika Warszawska RANDOM NUMBER GENERATOR
PL236965B1 (pl) * 2017-08-08 2021-03-08 Politechnika Warszawska Generator losowy
PL238519B1 (pl) * 2017-08-08 2021-08-30 Politechnika Warszawska Generator fizycznie niekopiowalnych kluczy kryptograficznych
PL236963B1 (pl) * 2017-08-08 2021-03-08 Politechnika Warszawska Generator losowy
PL236966B1 (pl) * 2017-08-08 2021-03-08 Politechnika Warszawska Generator losowy
PL237476B1 (pl) * 2017-08-08 2021-04-19 Politechnika Warszawska Generator fizycznie niekopiowalnych kluczy kryptograficznych
JP6867594B2 (ja) * 2017-09-13 2021-04-28 富士通株式会社 乱数生成回路及び乱数生成回路の制御方法
US10996929B2 (en) 2018-03-15 2021-05-04 Regents Of The University Of Minnesota High quality down-sampling for deterministic bit-stream computing
TWI662471B (zh) * 2018-05-31 2019-06-11 華邦電子股份有限公司 真實隨機數產生裝置及其產生方法
US10748591B2 (en) * 2019-01-13 2020-08-18 Ememory Technology Inc. Random code generator
US11023208B2 (en) 2019-01-23 2021-06-01 International Business Machines Corporation True random number generator
JP7317297B2 (ja) * 2019-03-05 2023-07-31 ブリルニクスジャパン株式会社 固体撮像装置、固体撮像装置の駆動方法、および電子機器
US11126404B2 (en) * 2019-05-20 2021-09-21 Nxp B.V. Random number generator using multiple entropy sources and a method for generating random numbers
CN112152613B (zh) * 2019-06-27 2024-04-30 华邦电子股份有限公司 环形振荡器及时间量测电路
TWI793429B (zh) * 2019-07-25 2023-02-21 熵碼科技股份有限公司 加密金鑰生成器及傳輸系統
CN111782179B (zh) * 2020-06-05 2023-09-01 上海赛昉科技有限公司 一种真随机数发生器
CN111969981B (zh) * 2020-10-21 2021-01-12 鹏城实验室 一种时钟产生电路和随机数产生电路
KR20220095576A (ko) 2020-12-30 2022-07-07 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
US11601120B2 (en) * 2021-02-03 2023-03-07 Nuvoton Technology Corporation Attack-resistant ring oscillators and random-number generators
US11962305B2 (en) 2021-06-09 2024-04-16 Nxp B.V. Ring oscillator based true random number generator and a method for generating a random number
KR20230011092A (ko) * 2021-07-13 2023-01-20 삼성전자주식회사 링 오실레이터, 이를 포함하는 난수 생성 장치 및 난수 생성 장치의 동작 방법
CN116582111B (zh) * 2023-05-23 2024-02-23 合芯科技有限公司 振荡环电路及测量时序电路读取时间的装置和方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4769777A (en) * 1986-06-25 1988-09-06 General Electric Company Unpredictable bit stream generator
US4905176A (en) 1988-10-28 1990-02-27 International Business Machines Corporation Random number generator circuit
JPH06314188A (ja) 1993-04-28 1994-11-08 N T T Data Tsushin Kk 乱数生成装置
JPH0946136A (ja) 1995-08-02 1997-02-14 Sony Corp ガウス雑音発生装置および方法
US5903522A (en) * 1996-04-19 1999-05-11 Oak Technology, Inc. Free loop interval timer and modulator
JP3439606B2 (ja) 1996-08-02 2003-08-25 沖電気工業株式会社 リング発振回路
US6194971B1 (en) * 1997-04-21 2001-02-27 Ati Technologies, Inc. Method and apparatus for phase shifting a controlled oscillator and applications thereof
US5864491A (en) * 1997-11-10 1999-01-26 Telefonaktiebolaget L M Ericsson Apparatus and associated method for generating a pseudo random number
US6065029A (en) * 1998-05-26 2000-05-16 N*Able Technologies, Inc. Method and system for providing a random number generator
JP3680091B2 (ja) 1999-04-13 2005-08-10 株式会社日立製作所 乱数生成装置
JP3650826B2 (ja) 1999-11-05 2005-05-25 株式会社 沖マイクロデザイン 乱数発生集積回路
FR2802661B1 (fr) * 1999-12-21 2003-10-31 Bull Sa Generateur de nombres aleatoires haut debit
TW536672B (en) 2000-01-12 2003-06-11 Hitachi Ltd IC card and microcomputer
US6631390B1 (en) * 2000-03-06 2003-10-07 Koninklijke Philips Electronics N.V. Method and apparatus for generating random numbers using flip-flop meta-stability
US6480072B1 (en) 2000-04-18 2002-11-12 Advanced Micro Devices, Inc. Method and apparatus for generating random numbers
US6327734B1 (en) 2000-04-28 2001-12-11 Philips Oral Healthcare, Inc. Force sensing system for a toothbrush
JP4251759B2 (ja) 2000-05-19 2009-04-08 Okiセミコンダクタ株式会社 乱数発生回路
JP2001344094A (ja) 2000-05-31 2001-12-14 Ntt Electornics Corp 乱数発生回路
JP3762955B2 (ja) 2000-06-05 2006-04-05 松下電器産業株式会社 データ再生装置
JP3487299B2 (ja) 2001-06-06 2004-01-13 いわき電子株式会社 乱数発生装置および確率発生装置
JP3446742B2 (ja) 2001-02-07 2003-09-16 いわき電子株式会社 乱数発生装置および確率発生装置
US6807553B2 (en) 2001-04-23 2004-10-19 Safenet B.V. Digital true random number generator circuit
JP2003131867A (ja) 2001-08-15 2003-05-09 Syst Kogaku Kk 乱数生成装置
TW531659B (en) 2001-12-11 2003-05-11 Chung Shan Inst Of Science Single-pulse radar multi-target real-time simulation generator
US7315874B2 (en) * 2003-03-14 2008-01-01 Nxp B.V. Electronic circuit for random number generation
JP4248950B2 (ja) * 2003-06-24 2009-04-02 株式会社ルネサステクノロジ 乱数発生装置
JP4905354B2 (ja) * 2005-09-20 2012-03-28 富士通株式会社 電源電圧調整装置
JP4812085B2 (ja) * 2005-12-28 2011-11-09 ルネサスエレクトロニクス株式会社 半導体集積回路
US7612622B2 (en) * 2008-03-27 2009-11-03 Intel Corporation Method and device for determining a duty cycle offset
KR101094200B1 (ko) * 2010-01-08 2011-12-14 (주)에이젯 메모리 모듈 테스트를 위한 메모리 모듈 테스터 장치 및 테스트 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100090953A (ko) * 2009-02-09 2010-08-18 삼성전자주식회사 난수 발생 장치 및 난수 발생 방법
KR20190063492A (ko) * 2017-11-29 2019-06-10 서울대학교산학협력단 실시간 캘리브레이션을 지원하는 tdc

Also Published As

Publication number Publication date
US20120303690A1 (en) 2012-11-29
TWI286289B (en) 2007-09-01
KR100668554B1 (ko) 2007-01-16
TW200504586A (en) 2005-02-01
US20040264233A1 (en) 2004-12-30
CN100399261C (zh) 2008-07-02
CN101290566A (zh) 2008-10-22
JP2005018251A (ja) 2005-01-20
US7424500B2 (en) 2008-09-09
JP4248950B2 (ja) 2009-04-02
US20080313249A1 (en) 2008-12-18
US8260835B2 (en) 2012-09-04
CN1573681A (zh) 2005-02-02
US9052975B2 (en) 2015-06-09

Similar Documents

Publication Publication Date Title
KR100668554B1 (ko) 링 발진 회로를 구비한 난수 발생 장치
US7376687B2 (en) Pseudo-random number generator
US4905176A (en) Random number generator circuit
KR100574730B1 (ko) 난수 발생 회로
KR100476927B1 (ko) 파워-온 리셋 회로 및 파워-온 리셋 방법
EP1782181B1 (en) Method and apparatus for generating random data
JP4471901B2 (ja) 乱数発生装置
KR101987141B1 (ko) 난수 발생기
JP2006294001A (ja) 乱数発生回路
US20130346459A1 (en) Method for generating random numbers
JP2005534115A (ja) 乱数発生用ラッチング電子回路
US7325021B2 (en) VLSI implementation of metastability-based random number generator using delay ladders
US9774317B1 (en) Bistable-element for random number generation
TWI579763B (zh) 具有亂數產生模式的儲存電路
US20190107999A1 (en) Random number generating system and random number generating method thereof
JP7450332B2 (ja) 同期可能なリング発振器
JP5356362B2 (ja) 乱数生成回路
JP2009259013A (ja) 擬似乱数生成装置
KR20120101836A (ko) 난수 발생 장치
US20230169167A1 (en) Semiconductor device and clock control method
US20220147318A1 (en) True random number generator
JP2009053906A (ja) 乱数発生装置
JP2002236582A (ja) 乱数発生装置および確率発生装置
KR20100102794A (ko) 반도체 메모리 장치의 카운터 회로
JP2003069420A (ja) カウンタ回路

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121227

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131218

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141230

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161221

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20171219

Year of fee payment: 12