KR20130060275A - 비트열 생성기 - Google Patents

비트열 생성기 Download PDF

Info

Publication number
KR20130060275A
KR20130060275A KR1020137005274A KR20137005274A KR20130060275A KR 20130060275 A KR20130060275 A KR 20130060275A KR 1020137005274 A KR1020137005274 A KR 1020137005274A KR 20137005274 A KR20137005274 A KR 20137005274A KR 20130060275 A KR20130060275 A KR 20130060275A
Authority
KR
South Korea
Prior art keywords
rate
state
sub
state machine
time
Prior art date
Application number
KR1020137005274A
Other languages
English (en)
Other versions
KR101402392B1 (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 KR20130060275A publication Critical patent/KR20130060275A/ko
Application granted granted Critical
Publication of KR101402392B1 publication Critical patent/KR101402392B1/ko

Links

Images

Classifications

    • 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
    • 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/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/64Generators producing trains of pulses, i.e. finite sequences of pulses
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/84Generating pulses having a predetermined statistical distribution of a parameter, e.g. random pulse generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/582Parallel finite field implementation, i.e. at least partially parallel implementation of finite field arithmetic, generating several new bits or trits per step, e.g. using a GF multiplier

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

생성 함수 및 생성 함수의 초기 상태에 의해 정의된 비트열을 생성하기 위한 비트열 생성기는 복수의 상태 머신과 멀티플렉서를 포함한다. 복수의 상태 머신의 각각의 상태 머신은 타임-인터리브 비트열을 생성하고, 상태 머신은 이전 시간 단계 동안에 상태 머신에 의해 생성된 적어도 일 비트를 기반으로, 생성될 비트열의 생성 함수를 기반으로, 생성 함수의 초기 상태를 기반으로 그리고 복수의 상태 머신의 다른 상태 머신에 의해 생성된 타임-인터리브 비트열로부터 독립적으로, 현재 시간 단계 동안에 타임-인터리브 비트열의 비트를 생성한다. 또한 멀티플렉서는 생성 함수 및 생성 함수의 초기 상태에 의해 정의된 비트열을 획득하기 위하여 반복 방식으로 각각의 생성된 타임-인터리브 비트열로부터 일 비트를 연속적으로 선택한다.

Description

비트열 생성기{BIT SEQUENCE GENERATOR}
본 발명에 따른 실시예는 비트열(bit sequences)의 생성에 관한 것으로, 특히 비트열 생성기, 비트열을 생성하는 방법, 그리고 상태 머신(state machines)에 대한 서브-레이트 천이 행렬(sub-rate transition matrix)과 서브-레이트 초기 상태를 계산하는 방법 및 장치에 관한 것이다.
현대 기술의 넓은 응용 분야에서, 예를 들어 테스트 시스템, 암호학, 수치 시뮬레이션 및 잡음신호 발생 등등의 분야에서 난수 또는 의사난수(pseudo-random numbers)를 필요로 한다. 난수 또는 의사난수는 제각기 트루 난수 생성기 또는 의사난수 생성기에 의해 기술적으로 생성될 수 있다.
트루 의사난수 생성기는 전형적으로 물리적인 무작위성의 실 소스를 사용하지만, 의사난수 생성기는 전형적으로 통계적인 진정한(true) 무작위성을 보여주는 요소를 사용하지 않는다. 예를 들어 이러한 요소의 예는 나이퀴스트 잡음(Nyquist noise)을 가진 저장기, 전기 터널링 요소, 또는 잡음 소스로서 피드백 신호를 사용하는 폐쇄 피드백 루프 또는 산탄 잡음 동작을 가진 방사성 붕괴를 기반으로 한 요소 등이다.
그에 반해, 의사난수 생성기는 전형적으로 이러한 진정한 난수성의 요소를 사용하지 않고 의사난수 생성기에 의해 발생된 수가 진정한 난수가 아니도록 결정성(deterministic behavior)을 기반으로 한다.
따라서 트루(true) 난수 생성기와 의사 난수 생성기는 난수 또는 의사 난수 값이 중요하거나 또는 응용 분야에 사용하는 것이 바람직할 때마다 이용된다. 적술한 예는 가능한 응용의 일부일 뿐이다.
보다 빠른 수 생성을 허용하는 트루 난수 생성기에 비하여 의사난수 생성기는 전형적으로 구현하기가 보다 쉬우며 대응하는 트루 난수 생성기보다 낮은 에너지 소비를 보여준다. 그러나 의사난수 생성기는 결정론적 시스템이라는 것을 기억해야 한다. 결과적으로, 발생된 수는 의사난수 생성기의 내부 구조에 대한 지식과, 그의 상태에 대한 지식을 기반으로 계산될 수 있다. 이것은 소정 환경 하에서는 단점이 될 수 있으며, 그리고 다른 환경 하에서, 예를 들어 소정 응용에서 주기적인 행동 또는 재현이 중요할 수 있을 때에는 바람직한 원하는 결과일 수 있다.
디지털 구현 또는 애플리케이션에서, 의사난수 생성기에 의해 생성된 의사난수는 전형적으로 디지털 또는 이진 유닛을 포함한다. 구체적인 구현에 따라, 의사난수 생성기는 이러한 경우에 개별 비트열을 포함한 의사랜덤(pseudo-random) 비트 스트림, 또는 워드열을 포함한 의사램덤 워드 스트림을 제공할 수 있다. 각 단어는 전형적으로 복수의 비트, 예를 들면 4 비트, 6 비트, 8 비트, 16 비트, 32 비트 등을 포함한다. 환언하면, 워드 스트림의 워드는 전형적으로 복수의 비트를 포함하며, 워드는 의사랜덤 비트열의 일부로서 간주될 수 있다. 따라서 다수의 애플리케이션에서, 의사랜덤 비트 스트림과 의사랜덤 워드 스트림은 서로로부터 도출될 수 있다.
회로, 컴퓨터 시스템 및 다른 장치의 점차 증가되는 동작 속도 및 주파수로 인하여, 예를 들어 애플리케이션에 따라 테스트 애플리케이션, 수치 시뮬레이션, 암호 애플리케이션, 잡음 신호 또는 다른 데이터, 정보 및 신호의 보다 신속한 처리 속도를 가능하게 하기 위하여, 비트의 무작위성에 관한 충분히 양호한 통계적 분산을 가진 의사램덤 비트 스트림과 워드 스트림을 보다 신속히 생성할 필요가 있다.
본 발명의 목적은 비트열의 비트 레이트(bit rate)의 증가를 가능하게 하는, 비트열을 생성하기 위한 개선된 개념을 제공하는데 있다.
본 목적은 청구항 제1항에 따른 비트열 생성기, 청구항 제11항에 따라 상태 머신에 대한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하기 위한 장치, 청구항 제23항에 따라 의사랜덤 비트열을 생성하기 위한 방법, 그리고 청구항 제24항에 따라 상태 머신에 대한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하기 위한 방법에 의해 해결된다.
본 발명의 실시예는 복수의 상태 머신과 멀티플렉서를 포함하여 생성 함수 및 생성 함수의 초기 상태에 의해 정의되는 비트열을 생성하기 위한 비트열 생성기를 제공한다. 복수의 상태 머신의 각각의 상태 머신은 타임-인터리브 비트열(time-interleaved bit sequence)을 생성하고, 상태 머신은 선행 시간 단계 동안에 생성된 타임-인터리브 비트열의 적어도 일 비트를 기반으로, 생성될 비트열의 생성 함수를 기반으로, 생성 함수의 초기 상태를 기반으로 그리고 복수의 상태 머신의 다른 상태 머신에 의해 생성된 타임-인터리브 비트열로부터 독립적으로, 현재 시간 단계 동안에 타임-인터리브 비트열의 비트를 생성한다. 또한, 멀티플렉서는 생성 함수와 생성 기능의 초기 상태에 의해 정의된 비트열을 획득하기 위하여 반복 방식으로 각각의 생성된 타임-인터리브 비트열로부터 일 비트를 연속적으로 선택하도록 구성된다.
본 발명의 다른 실시예는 복수의 상태 머신의 상태 머신에 대한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하기 위한 장치를 제공한다. 장치는 풀-레이트(full-rate) 비트열의 생성 함수, 생성 함수의 초기 상태 및 복수의 상태 머신의 상태 머신의 수를 기반으로 상태 머신에 대한 서브-레이트 초기 상태를 계산하도록 구성된 프로세서를 포함한다. 또한 프로세서는 생성 함수와 상태 머신의 수를 기반으로 상태 머신에 대한 서브-레이트 천이 행렬을 계산하도록 구성된다.
본 발명에 따른 실시예는 생성 함수와 생성 함수의 초기 상태에 의해 정의된 고속 비트열이 서로 독립적으로 생성된 둘 이상의 타임-인터리브 비트열을 병합함으로써 높은 비트 레이트로 생성될 수 있다는 주된 아이디어를 기반으로 한다. 이런 식으로, 각각의 타임-인터리브 비트열은 복수의 타임-인터리브 비트열을 병합함으로써 획득한 비트열의 비트 레이트의 서브-레이트로 생성될 수 있다.
따라서 타임-인터리브 비트열을 생성하는 상태 머신은 생성된 비트열의 주파수(비트 레이트)보다 낮은 클록 주파수에서 작동할 수 있다. 멀티플렉서만이 비트열의 풀 비트 레이트로 생성된 타임-인터리브 비트열로부터 비트를 선택할 수 있어야 한다. 따라서 상태 머신을 위해 필요한 하드웨어 요구는 동일한 비트 레이트로써 비트열을 직접 제공하는 단일 상태 머신에 비하여 상당히 감소될 수 있다.
본 발명에 따른 소정 실시예에서, 복수의 상태 머신의 상태 머신은 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 기반으로 타임-인터리브 비트열을 생성한다. 서브-레이트 천이 행렬과 서브-레이트 초기 상태는 생성 함수와 상기 생성 함수의 초기 상태를 기반으로 한다.
서브-레이트 천이 행렬과 서브-레이트 초기 상태는 앞에서 언급한 바와 같이 상태 머신에 대한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하기 위한 장치에 의해 결정될 수 있다.
따라서 본 발명에 따른 소정 실시예는 복수의 상태 머신의 상태 머신에 대한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하기 위한 장치를 포함한 비트열 생성기에 관한 것일 수 있다. 장치는 복수의 상태 머신의 각각의 상태 머신에 대한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산할 수 있으므로, 상태 머신의 병합된 타임-인터리브 비트열는 결과적으로 생성 함수와 생성 함수의 초기 상태에 의해 정의된 풀-레이트 비트열이 된다.
본 발명의 따른 소정 실시예에서, 생성 함수와 초기 상태 의해 정의된 비트열이 의사랜덤 비트열이다.
도 1은 비트열 생성기의 블록도.
도 2는 복수의 상태 머신의 상태 머신을 위한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하기 위한 장치의 블록도.
도 3는 비트열 생성기의 블록도.
도 4는 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하기 위한 장치를 포함한 의사랜덤 비트열 생성기의 블록도.
도 5는 선형 피드백 시프트 레지스터의 블록도.
도 6은 동작의 병렬 판독 모드에서 선형 피드백 시프트 레지스터의 블록도.
도 7은 상태 머신의 블록도.
도 8은 상태 머신의 블록도.
도 9는 비트열을 생성하기 위한 방법의 흐름도.
도 10은 복수의 상태 머신의 상태 머신을 위한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하기 위한 방법의 흐름도.
본 발명에 따른 실시예는 후속하여 첨부 도면을 참조하여 상세히 기술될 것이다.
다음에서, 동일한 참조번호는 동일하거나 또는 유사한 기능 속성을 가진 객체 및 기능 유닛을 위해 부분적으로 사용되며, 도면에 관한 이의 설명은 실시예의 설명에서 불필요한 중복을 감소시키기 위하여 다른 도면에도 적용될 수 있다.
도 1은 본 발명의 실시예에 따라서 비트열 생성기(100)의 블록도를 도시한다. 비트열 생성기(100)는 복수의 상태 머신과 멀티플렉서(120)를 포함한다. 복수의 상태 머신의 각각의 상태 머신(110)은 타임-인터리브 비트열(112)을 생성하도록 구성되며, 여기서 상태 머신(110)은 선행한 시간 단계 동안에 상태 머신에 의해 생성된 적어도 일 비트를 기반으로, 생성될 비트열(122)의 생성 함수를 기반으로, 생성 함수의 초기 상태를 기반으로 그리고 복수의 상태 머신의 다른 상태 머신(110)에 의해 생성된 타임-인터리브 비트열(112)로부터 독립적으로, 현재 시간 단계 동안에 타임-인터리브 비트열(112)을 생성하도록 구성된다. 더욱이 멀티플렉서(120)는 생성 함수와 생성 함수의 초기 상태에 의해 정의된 비트열(122)을 획득하기 위해 반복 방식으로 각 생성된 타임-인터리브 비트열(112)로부터 일 비트를 연속적으로 선택한다.
복수의 상태 머신에 의해 생성된 타임-인터리브 비트열(112)을 병합함으로써, 타임-인터리브 비트열(112)의 비트 레이트보다 상당히 높은 비트 레이트로써 비트열(122)을 획득할 수 있다. 따라서 상태 머신(110)은 하드웨어 노력 및/또는 전력 소비를 감소시키는 보다 낮은 클록 레이트에서 실행될 수 있다. 더욱이 상태 머신(110)은 서로 독립적인 타임-인터리브 비트열(112)을 생성하므로, 독립적인 하드웨어 유닛을 사용할 수 있다. 이런 식으로, 예를 들어 낮은 비트 레이트로 비트열을 생성하는 기존 상태 머신은 독립적인 비트 스트림을 병합하는데 멀티플렉서(120)를 사용하여 이 비트 레이트의 배로써 비트열을 생성하는데 사용될 수 있다.
이 경우에, 각 다른 수단으로부터 독립적으로 타임-인터리브 비트열을 생성하는 일은 상태 머신(110)이 현 상태 또는 이전 상태, 또는 복수의 상태 머신의 다른 상태 머신(110)중의 한 상태 머신의 출력으로부터 독립적으로 타임-인터리브 비트열을 생성한다. 서로 간의 링크는 생성될 의사랜덤 비트열(112)의 동일한 생성 함수를 기반으로, 그리고 생성 함수의 초기 상태를 기반으로 그들의 타임-인터리브 비트열을 생성한다는 사실에 의해서만 주어진다. 이런 식으로, 각 단일 상태 머신(110)은 다른 상태 머신이 하고 있는 일을 몰라도 되지만, 타임-인터리브 비트열(112)은 생성될 비트열(122)에 추가된다.
멀티플렉서(120)는 반복 방식으로 각 생성된 타임-인터리브 비트열(112)로부터 일 비트를 연속적으로 선택하므로, 타임-인터리브 비트열(112)은 생성될 비트열(122)의 각 M번째 비트를 포함하고, 여기서 M은 복수의 상태 머신(110)의 상태 머신의 수이다. 예를 들면 비트열 생성기(110)가 도 1에 도시된 바와 같이 두 상태 머신(110)을 포함한다면, 제1 상태 머신은 생성될 비트열(122)의 제1, 제3, 제5, 제7 비트 등을 포함한 타임-인터리브 비트열(112)을 생성하고, 제2 상태 머신(110)은 생성될 비트열(122)의 제2, 제4, 제6 비트 등을 포함한 타임-인터리브 비트열(112)을 생성한다.
비트열 생성기(100)는 둘 이상의 상태 머신(110)을 포함할 수 있다.
상태 머신(110)은 예를 들어 FSM(finite state machines) 또는 LFSM(linear finite state machines)일 수 있다.
타임-인터리브 비트열(112)의 생성은 생성 함수 및 이 생성 함수의 초기 상태를 기반으로 한다. 생성 함수뿐만 아니라 초기 상태는 사용자에 의해 정의될 수 있거나, 또는 저장 장치에 의해 저장될 수 있다. 환언하면, 생성 함수와 초기 상태가 주어지거나 또는 사전정의될 수 있다. 이를 위하여, 생성 함수는 매개변수, 계수, 변수, 공식 또는 다른 수학적 설명에 의해 표현될 수 있다. 더욱이, 초기 상태는 초기 상태 비트열에 의해 표현될 수 있다. 예를 들면 생성 함수는 P 계수에 의해 표현된 차수(degree) P의 생성 다항식 g(x)일 수 있다. 이와 관련하여 예를 들면, 비트열은 생성 함수에 의해 정의되고, 초기 상태는 비트열이 생성 함수의 계수와 초기 상태 비트열의 계수에 의해 정의되는 바와 같은 표현과 동일하다. 결과적으로, 또한 생성 함수 및 초기 상태를 기반으로 타임-인터리브 비트열의 비트를 생성한다는 것은 예를 들면 생성 함수의 계수와 초기 상태 비트열을 기반으로 타임-인터리브 비트열의 비트를 생성한다는 것을 의미한다.
본 발명에 따른 소정 실시예는 의사랜덤 비트열의 생성에 관한 것이다. 환언하면, 생성될 비트열은 의사랜덤 비트열이다. 다음에서, 본 발명의 개념이 의사랜덤 비트열로 제한되지 않지만, 의사랜덤 비트열의 생성과 관련하여 실시예를 기술한다.
의사랜덤 비트열은 생성 다항식에 의해 정의될 수 있다. 이러한 의사랜덤 비트열은 선형 피드백 시프트 레지스터에 의해 생성될 수 있다. 예를 들면 비트 레이트 f를 가진 PRBS(pseudo random bit sequences) {s(i)}는 주파수 f에서 클록화된 LFSR(linear feedback shift register)의 출력으로서 생성될 수 있다.
도 5는 생성 다항식
Figure pct00001
를 가진 선형 피드백 시프트 레지스터(500)의 예를 도시한다. 이 선형 피드백 시프트 레지스터(500)는 5개의 클록 레지스터(510), 그리고 제2 레지스터의 출력 x2과 제5 레지스터의 출력 x5을 논리적으로 결합하는 논리 XOR-유닛(520)를 포함하고, 그 결과를 제1 레지스터의 입력으로 제공한다. 제5 레지스터는 대응하는 의사난수 시퀀스 s(i)를 출력한다.
일반 LFSR은 차수 P의 그의 생성 다항식 g(x)의 항으로 기술될 수 있다. 즉 gP 0 와 gp = 0, p >P
Figure pct00002
g(x)의 계수 gp ∈ B(생성 함수의 계수)가 1과 동일할 때, p번째 시프트 레지스터단의 출력은 제1 단의 다음 값을 위해 XOR 함수에 포함된다.
상당히 높은 비트 레이트, 예를 들어 12.8 Gbps 또는 일반적으로 10 Gbps 초과의 경우, 이 직접 접근방안은 상당히 도전적인 것이다.
제안된 개념에 따라서, 비트 레이트 f를 가진 동일한 의사랜덤 비트열 s(i)는 M으로 나누어진 비트 레이트 f를 가진 M 타임-인터리브 비트열을 타임 인터리빙(멀티플렉싱)함으로써 생성된다.
예를 들면 상태 머신(110)은 각 시간 단계 동안에 타임-인터리브 비트열(112)의 하나 이상의 비트를 생성한다. 예를 들어 도 5에 도시된 바와 유사한 선형 피드백 시프트 레지스터를 사용함으로써, 타임-인터리브 비트열(112)의 일 비트가 각 시간 단계에서 생성될 수 있다. 바람직하게는, 각 시간 단계에서 타임-인터리브 비트열(112)의 일 비트보다 많이 생성하는 상태 머신을 사용할 수 있다. 각 시간 단계에서 생성된 비트의 수가 설정되고, 이런 식으로 상태 머신(110)의 사용된 하드웨어에 의해 사전정의된다. 환언하면, 복수의 상태 머신(110)의 상태 머신(110)은 각 시간 단계 동안에 대응하는 타임-인터리브 비트열(112)의 (1보다 많은) 사전정의된 수의 비트를 생성한다.
이런 식으로, 풀-레이트(full-rate)보다 상당히 낮은 (시간 단계의 길이에 대응하는) 서브-레이트를 가진 타임-인터리브 비트스트림(112)의 사전정의된 수의 비트를 반복해서 생성하는 것이 가능해질 수 있다. 의사랜덤 비트열은 멀티플렉서(120)에 의해 제공된다. 환언하면, 복수의 상태 머신(110)의 상태 머신(110)은 서브-레이트를 가진 타임-인터리브 비트열(112)의 사전정의된 수의 비트를 생성할 수 있고, 멀티플렉서(120)는 서브-레이트의 정수배인 풀-레이트를 가진 생성된 의사랜덤 비트열(122)을 제공한다.
상태 머신이 동작하는 서브-레이트와, 의사랜덤 비트열(112)을 제공받는 풀-레이트의 비율은 (병렬로 생성되) 타임-인터리브 비트열(112)의 사전정의된 수의 생성 비트, 그리고 복수의 상태 머신(110)에 포함된 상태 머신의 수에 의존한다. 환언하면, 앞에서 언급한 정수 배는 타임-인터리브 비트열(112)의 비트의 사전정의된 수와 복수의 상태 머신(110)의 상태 머신의 수의 곱(product)일 수 있다. 예를 들면 각 상태 머신은 상태 머신의 각 클록 사이클에서 대응하는 타임-인터리브 비트열의 4 비트를 생성하고, 복수의 상태 머신은 두 상태 머신을 포함하므로, 의사랜덤 비트열은 상태 머신이 동작하는 클록 레이트(서브-레이트)보다 8배 높은 비트 레이트(풀-레이트)로써 생성될 수 있다.
본 발명에 따른 소정 실시예에서, 상태 머신(110)의 상태는 사전정의된 수의 상태 비트에 의존할 수 있다. 사전정의된 수의 상태 비트는 동일한 시간 단계 동안에 생성될 수 있고, 선행한 시간 단계(예를 들면 직접 선행한 시간 단계)로부터의 상태 비트에 의존할 수 있다. 이 사전정의된 수의 상태 비트는 이 시간 단계의 타임-인터리브 비트열(112)의 사전정의된 수의 비트와 동일할 수 있지만, 사전정의된 수의 상태 비트는 또한 타임-인터리브 비트열(112)의 사전정의된 수의 비트보다 클 수 있다. 환언하면, 복수의 상태 머신(110)의 상태 머신(110)의 상태는 동일한 시간 단계 동안에 상태 머신(110)에 의해 생성된 사전정의된 수의 상태 비트에 의해 정의될 수 있다. 더욱이 사전정의된 수의 상태 비트는 동일한 시간 단계 동안에 타임-인터리브 비트열(112)의 적어도 사전정의된 수의 비트를 포함할 수 있다. 동일한 시간 단계 동안에 생성된 타임-인터리브 비트열의 비트와 상태 비트가 다를지라도, 상태 비트는 바람직한 실시예에서 타임-인터리브 비트열의 비트이다. 환언하면, 상태 머신은 상태를 변경함으로써 상태 비트에 의해 표현되는 타임-인터리브 비트열의 비트를 자동으로 생성할 수 있다.
현 시간 단계의 복수의 상태 머신의 상태 머신의 상태가 선행한 시간 단계의 상태 머신의 상태에 의존하므로, 상태 머신은 선행한 시간 단계의 상태 머신의 상태에 의존하여 현 시간 단계 동안에 타임-인터리브 비트열의 비트를 생성할 수 있다.
상태 머신(110)은 각 시간 단계(상태 머신의 클록 사이클) 동안에 타임-인터리브 비트열(112)의 일 보다 큰 비트를 결정할 수 있다면, 타임-인터리브 비트열(112)의 병렬로 결정된 비트는 타임-인터리브 비트열(112)을 획득하기 위하여 직렬화될 수 있다. 이를 위하여, 상태 머신(110)은 시리얼라이저(serializer)를 포함할 수 있다. 시리얼라이저는 각 시간 단계 동안에, 직렬 방식으로 타임-인터리브 비트열(112)을 제공하기 위해 시간 단계 동안에 생성된 상태 비트에 의해 포함된 타임-인터리브 비트열(112)의 비트를 선택할 수 있다. 이것은 중간 레이트로써 행해질 수 있고, 여기서 중간 레이트는 동일한 시간 단계 동안에 생성된, 타임-인터리브 비트열(112)의 사전정의된 수의 비트와 곱해진 서브-레이트와 동일하다. 환언하면, 상태 머신(110)에 의해 병렬로 생성된 타임-인터리브 비트열(112)의 비트는 직렬화되고, 따라서 타임-인터리브 비트열의 병렬 생성된 비트의 수(타임-인터리브 비트열의 비트의 사전정의된 수)와 서브-레이트를 곱한 비트 레이트를 포함한다.
결과적으로, 생성된 의사랜덤 비트열을 제공하는 풀-레이트는 복수의 상태 머신의 상태 머신(110)의 수와 곱해진 중간 레이트와 동일하다.
상태 머신(110)은 다양한 방식으로 구현될 수 있다. 예를 들면 앞에서 언급한 바와 같은 LFSR(linear feedback shift register)을 사용할 수 있다. 이 대신에, 병렬 판독 모드(parallel read-out mode)로 동작하는 LFSR을 사용할 수 있다. 도 6은 비트 스트림 대신에 워드 스트림을 생성하기 위한 구성에서 LFSR(600)을 도시한다. 이를 성취하기 위하여, 도 6의 LFSR은 LFSR(600)의 출력의 구성에 대하여 도 5와 상이하다. 도 5의 LFSR의 경우에, LFSR의 출력은 주로 제5 레지스터의 출력을 나타내지만, 도 6의 LFSR(600)의 출력은 4개의 레지스터(610-1, ..., 610-4)의 모든 출력으로 연결된다. LFSR(600)의 출력은 레지스터(610-4)의 출력에 제공되는 신호를 비트 y(k)로서, 제3 레지스터(610-3)의 출력에서 제공되는 신호를 비트 k+1로서, 제2 레지스터(610-2)의 출력에서 제공되는 신호를 비트 k+2로서, 그리고 제1 레지스터(110-1)의 출력에서 제공되는 신호를 비트 k + N - 1 = k + 3로서 제공한다.
도 6의 LFSR(600)은 이들 클로킹 시퀀스 동안의 출력을 무시하면서 N = 4 레지스터의 전술한 병렬 판독과 그 후에 LFSR N=4번 클로킹에 의해 비트열 또는 비트 스트림을 생성한다. 자연히, 도 6에 도시된 LFSR(600)은 LFSR(600)의 레지스터의 수 N보다 작거나 또는 이와 동일한 임의 비트수 R을 제외하고 각 N 비트를 가진 워드를 획득하는데만 사용될 수 없다. 이 경우, 병렬 판독은 이들 중간 클로킹 동안에 출력을 무시하면서 LFSR(600) R 번의 후속 클로킹과 R 단으로 제한될 수 있다.
도 7은 상태 머신(700)의 다른 구현을 도시한다. 상태 머신(700)은 복수의 클로킹된 레지스터(710)를 포함하고, 각 레지스터(710)는 피드백 신호 또는 입력 신호를 위한 입력(710a)과 출력 신호를 위한 출력(710b)을 포함한다. 또한 레지스터(710)는 클록 신호를 위한 클록 신호 입력(710c)을 더 포함한다. 도 5 및 도 6의 레지스터와 유사하게, 레지스터(710)는 또한 클록 신호 입력(710c)으로 제공되는 대응하는 클록 신호와 그들의 각 입력(710a)으로 제공되는 신호에 응답하여 적어도 두 상태(예를 들면 0 또는 1)를 저장하는데 적합하다. 레지스터(710)는 그들의 상태를 표시하는 신호를 그들의 출력(710b)에서 제공하는데 적합하다.
도 7의 블록도는 그들의 클록 신호 입력(710c)을 통해 대응하는 클록 신호를 병렬로 레지스터(710)에 제공하기 위해 공통 클록 신호선(720)으로 연결된 제1 레지스터(710-1) 및 제2 레지스터(710-2)를 도시한다. 또한 도 7에 도시된 상태 머신(700)은 복수의 입력(730a)와 복수의 출력(730b)를 가진 피드백 회로(730)를 포함한다. 각 레지스터(710)가 여기에 도시된 실시예에서 피드백 회로(730)의 개별 입력으로 연결되도록, 입력(730a)의 수는 상태 머신(700)의 레지스터(710)의 수 N에 적어도 대응한다. 따라서 레지스터(710)의 각각이 그의 입력(710a)을 통해 피드백 회로(730)의 출력(730b)의 한 출력으로 연결되도록, 피드백 회로(730)의 출력(730b)의 수는 레지스터(710)의 수에 적어도 대응한다. 그러나 본 발명에 따른 다른 실시예에서, 피드백 회로(730)의 입력 또는 출력의 수는 보다 작거나 또는 보다 클 수 있다.
복수의 레지스터(710)와 피드백 회로(730)는 폐쇄 피드백 루프를 형성하고, 여기서 피드백 회로(730)는 레지스터(710)의 입력(710a)으로 제공되는 복수의 피드백 신호를 생성한다. 레지스터(710)는 클록 신호선(720)을 통해 제공되는 클록 신호를 수신시에(예를 들면 클록 신호 레벨의 에지 또는 천이) 입력(710a)으로 제공되는 신호에 대응하는 상태를 추정하는데 적합하므로, 피드백 회로(730)는 클록 신호의 클록 사이클로부터 클록 사이클로의 피드백 신호의 생성을 통해 상태 변경에 영향을 준다. 때때로 레지스터는 플립플롭으로도 언급된다. 환언하면, 레지스터(710)와 같은 레지스터는 적어도 두 상이한 상태를 저장하는데 적합하다. 저장될 상태는 레지스터(710)의 입력(710a)으로 제공되고, 클록 신호의 수신시에 여기에 저장될 것이다. 그에 반해, 래치는 제어 신호 입력으로 공급되는 제어 신호에 따라 상태를 동결시킬 수 있거나, 또는 트랜스페어런트(transparent)일 수 있다.
레지스터(710)의 출력 신호가 피드백 회로(730)뿐만 아니라 출력(740)으로 제공되도록, 레지스터(710)의 출력(710b)은 상태 머신의 출력(740)으로 직접 또는 간접적으로 연결된다.
피드백 회로의 출력은 피드백 회로(730)의 입력(730a)으로 제공되는 신호와 피드백 함수에 의존한다. 피드백 신호가 생성되어 출력(730b)을 통해 레지스터(710)의 입력(710a)으로 공급된다. 피드백 회로(730)는 이 상황에서 피드백 함수의 단일 적용이 예를 들어 복수 번의 클로킹 후에 레지스터(710)의 원 상태로써 초기화되는, 도 5에 도시된 바와 같이 선형 피드백 시프트 레지스터의 상태를 나타내는 레지스터(710)의 새 상태로 이끌도록 조정된다. 환언하면, 피드백 회로(730)에서 구현되는 피드백 함수는 피드백 신호를 생성하여 적절한 클록 신호를 클록 신호선(720)에 공급하기 전에는 상태 머신(700)의 레지스터(710)에 제공되는 상태로써 초기화되는 LFSR로 클록 신호의 클록 사이클의 다중 적용에 대응하는 레지스터(710)의 입력(710a)으로 이들 피드백 신호를 공급할 가능성을 제공한다.
피드백 회로(730)에 구현되는 피드백 함수의 단일 적용으로 인하여 클록 신호에 응답하여 레지스터(710)의 출력(710b)에서 바로 연속적으로 생성된 워드(서전 정의된 수의 비트)가 LFSR 다중 클록 사이클의 경우에 필요로 하는 상태 변동을 나타내도록 피드백 신호가 생성된다.
피드백 신호는 도 7에 도시된 복수의 레지스터 출력 신호와 피드백 함수에만 의존할 수 있다. 피드백 함수 그자체를 프로그래밍할 수 있거나, 또는 피드백 회로(730)로 공급할 수 있지만, 전형적으로 추가 매개변수를 필요로 하지 않는다.
이러한 상태 머신(700)은 각 클록 사이클 동안에 LFSR의 경우에서와 같이 단지 하나의 피드백 신호가 아니라 레지스터(710)의 일 레지스터로 각각 공급되는 복수의 피드백 신호를 생성하므로 워드 스트림의 보다 신속한 생성을 가능하게 할 수 있다.
도 7에 도시된 상태 머신(700)은 상태 머신(700)의 출력(740)과 레지스터(710)의 출력(710b) 사이에 연결된 회로(750)를 선택적으로 포함할 수 있다. 회로(750)는 예를 들어 레지스터(710)의 병렬 공급 출력 신호로부터 직렬 비트 스트림을 생성고, 이를 상태 머신(700)의 출력(740)으로 공급하는데 적합한 회로일 수있다.
또한 대시 화살표(760)에 의해 표시된 바와 같이, 피드백 회로가 피드백 회로(730)로 공급되는 하나 이상의 매개변수에 의존할 수 있도록, 피드백 회로(730)는 피드백 회로(730)의 입력(760)로 프로그래밍 신호를 공급함으로써 프로그래밍될 수 있다. 이것은 프로그래밍가능한 비트 스트림의 생성을 구현할 기회를 제공한다. 예를 들어 이것은 피드백 회로(730)의 입력(730a)으로 공급되는 레지스터 출력 신호의 값과 천이 행렬 요소의 세트의 모듈러-2 스칼라 곱(modular-2 scalar product)의 원리로 성취될 수 있다.
요약하면, 도 7은 일 클록 사이클에서 비트 스트림(예를 들면 타임-인터리브 비트열)의 다중 비트를 생성하는 프로그램가능 상태 머신을 도시한다.
피드백 함수는 천이 행렬에 의해 표현될 수 있다. 발명의 개념과 관련하여, 서브-레이트 천이 행렬을 사용하는 상태 머신이 생성된 풀-레이트 비트열에 비해 서브-레이트를 가진 타임-인터리브 비트열을 생성하므로, 이 천이 행렬은 또한 서브-레이트 천이 행렬로도 불릴 수 있다. 피드백 회로(730)는 서브-레이트 천이 행렬을 포함하는 저장 유닛을 구비할 수 있다. 더욱이 레지스터(710)는 서브-레이트 초기 상태에 의해 초기화되도록 구성될 수 있다. 서브-레이트 천이 행렬뿐만 아니라 서브-레이트 초기 상태는 생성 함수, 그리고 생성할 비트열의 생성 함수의 초기 상태를 기반으로 한다.
요약하면, 비트열 생성기는 워드-스트림을 생성하기 위한 상태 머신(700)을 구비할 수 있고, 워드-스트림의 각 워드는 타임-인터리브 비트열의 복수의 후속 비트를 포함한다. 상태 머신은 복수의 클록 레지스터와 피드백 회로를 포함한다. 복수의 클록 레지스터는 대응하는 입력과 대응하는 출력을 포함한다. 또한 피드백 회로(730)는 레지스터(710)의 입력 및 출력으로 연결되고, 생성 함수, 그리고 레지스터의 복수의 레지스터 출력 신호를 기반으로 레지스터의 입력으로 복수의 피드백 신호를 제공하고, 레지스터 출력 신호는 레지스터의 상태를 표시한다. 부가적으로, 상태 머신(700)은 복수의 레지스터 출력 신호에 의해 정의된 제1 워드가 타임-인터리브 비트열의 제1 후속 비트 세트를 포함하도록, 그리고 복수의 레지스터 출력 신호에 의해 정의된 후속한 제2 워드가 타임-인터리브 비트열의 후속한 제2 비트 세트를 포함하도록 구성된다.
도 8은 상태 머신의 또 다른 구현을 도시한다. 상태 머신(800)은 입력 신호 u n을 위한 제1 입력(802)을 포함하고, 여기서 입력 신호의 후속 값은 제1 클록 레이트 f1로써 입력 단자(802)로 클로킹된다. 또한 장치(800)는 입력 신호 u n를 서브-레이트 입력 신호 U n으로 변환하기 위한 디시리얼라이저(de-serializser)(840)를 포함하고, 여기서 서브-레이트 입력 신호 U n는 제1 클록 레이트 f1의 일부인 제2 클록 레이트 f2로써 서브-레이트 유한 상태 머신 회로(sub-rate finite state machine circuit)(810)로 클로킹된다. 예를 들어 디시리얼라이저(840)는 입력 신호 u n의 직렬-병렬 변환을 위한 회로일 수 있다. 따라서 병렬화된 서브-레이트 입력 신호 U n은 제2 클록 레이트 f2로써 서브-레이트 FSM 회로(810)으로 클로킹되는 풀-레이트 입력 신호의 R 후속 값 u n, u n +1,...,u n +R-1을 포함할 수 있다. 메모리, 특히 RAM 또는 프로그램가능 논리 장치 또는 PLA(programmable logic array)를 포함할 수 있는 서브-레이트 FSM 회로(810)는 제2 입력(812)에 의해 서브-레이트 FSM 회로(810)로 공급되는 이전 서브-레이트 내부 상태 z n에 따라, 그리고 서브-레이트 입력 신호 Un = [u n, u n +1,...,u n +R-1]에 따라 서브-레이트 내부 상태를 갱신하도록 구성된다. 선택적으로, 서브-레이트 FSM 회로(810)는 이전 또는 갱신된 서브-레이트 내부 상태 z n, z n+R에 따라 서브-레이트 출력 신호 A n을 제공하도록 구성될 수 있다. 이로써 서브-레이트 출력 신호 A m은 제1 클록 레이트 f1을 가진 직렬 출력 신호 B m을 획득하도록 서브-레이트 출력 신호 A m을 직렬화하기 위하여 시리얼라이저(830)로 공급되는 R 신호 값 v m,v m +1,..., v m +R-1을 포함한다. 실시예에 따라서, 시리얼라이저 회로(830)는 R 출력 신호 값 a m,a m +1,..., a m +R-1을 포함한 서브-레이트 출력 신호 A m의 병렬-직렬 변환을 위한 회로를 포함할 수 있다.
서브-레이트 FSM 회로(810)는 서브-레이트 입력 신호 Un = [u n, u n +1,...,u n +R-1]과 이전 서브-레이트 내부 상태 z n의 형태로 입력 상에서 동작하고, 제2 클록 레이트 f2를 가진 서브-레이트 출력 신호 An = [a n,a n +1,..., a n +R-1]와 갱신된 서브-레이트 내부 상태 z n +R을 출력한다. 갱신된 서브-레이트 내부 상태 z n +R는 서브-레이트 내부 상태 레지스터(820)로 공급되고, 이 레지스터는 두 경로로 분할될 수 있는 단일 출력선(822)을 가질 수 있다. 제1 경로는 서브-레이트 FSM이 서브섹션인 시스템의 다른 부분으로 연결되고, 제2 경로는 상태 레지스터 출력선(812)이다.
실시예에 따라서, 디시리얼라이저(840)는 서브-레이트 입력 신호 U n이 시간 간격 T2(제2 클록 레이트 f2의 역, 즉 T2 = 1/f2)내에서, 제1 클록 레이트 f1의 역일 수 있는 구간, 즉 T 1 = 1/f1인 복수의 후속한 시간 간격 T1에 대응하는 복수의 후속 입력 신호 값 u n, u n +1,...,u n +R-1을 포함하도록 입력 신호u n를 직렬-병렬 변환하도록 구성된다.
이 대신에, 입력 신호는 서브-레이트 유한 상태 머신 회로(810)를 프로그램하는데에만 사용된다. 예를 들면 서브-레이트 천이 행렬의 행렬 요소는 서브-레이트 유한 상태 머신 회로(810)의 저장 유닛으로 제공된다. 이 예에서, 디시리얼라이저(840)는 단지 선택적인 부분이며, 입력 신호는 출력 신호의 클록 레이트로부터 독립적인 비트 레이트 또는 클록 레이트, 또는 서브-레이트 유한 상태 머신 회로(810)가 동작하는 클록 레이트로써 제공될 수 있다. 예를 들면 시리얼라이저(830)의 출력 신호는 상태 머신(800)에 의해 성성될 타임-인터리브 비트열일 수 있다. 이 대신에, 타임-인터리브 비트열은 서브-레이트 내부 상태 레지스터(820)의 출력선(822)으로부터, 또는 시리얼라이저(830)의 출력 신호와 결합하여 획득될 수 있다.
환언하면, 비트열 생성기는 제1 클록 레이트를 가진 중간 입력 신호를 위한 입력(802), 중간 레이트 입력 신호를 제1 클록 레이트의 일부인 제2 클록 레이트를 가진 서브-레이트 입력 신호로 변환하기 위한 디시리얼라이저(840), 서브-레이트 유한 상태 머신(810) 및 시리얼라이저(830)를 포함할 수 있다. 서브-레이트 유한 상태 머신(810)은 이전 서브-레이트 내부 상태와 서브-레이트 입력 신호에 따라 서브-레이트 내부 상태를 갱신하고, 이전 또는 갱신된 서브-레이트 내부 상태에 의존하여 서브-레이트 출력 신호를 제공한다. 또한 시리얼라이저(830)는 제1 클록 레이트를 가진 중간 레이트 출력 신호를 획득하기 위하여 서브-레이트 출력 신호를 직렬화하고, 여기서 서브-레이트 유한 상태 머신(810)은 제2 클록 레이트로 서브-레이트 내부 상태를 갱신하도록 구성된다.
보다 일반적으로는 구현된 상태 머신에 따라, 타임-인터리브 비트열의 비트는 상태 머신의 상태 머신과 동일하거나 또는 그렇지 않을 수 있다. 환언하면, 본 발명의 소정 실시예에서, 상태 머신은 선행한 시간 단계 동안에 상태 머신에 의해 생성된 타임-인터리브 비트열의 적어도 일 비트를 기반으로 현 시간 단계 동안에 타임-인터리브 비트열의 비트를 생성할 수 있다.
도 7에 도시된 구현과 유사하게, 상태 머신(800)은 생성 함수 및 생성함수의 초기 상태로부터 도출된 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 기반으로 타임-인터리브 비트열을 생성할 수 있다. 천이 행렬은 서브-레이트 유한 상태 머신 회로(810)에 의해 저장될 수 있고, 서브-레이트 내부 상태 레지스터(820)는 서브-레이트 초기 상태로써 초기화될 수 있다.
서브-레이트 천이 행렬과 서브-레이트 초기 상태는 전술한 비트열 생성기의 복수의 상태 머신의 모든 상태 머신에 대해 상이할 수 있다. 이 대신에, 모든 상태 머신은 동일한 서브-레이트 천이 행렬을 기반으로 하지만 상이한 서브-레이트 초기 상태를 기반으로 한 그들의 타임-인터리브 비트열을 생성할 수 있다. 이것은 기본 생성 함수와 초기 상태가 모든 상태 머신에 대해 동일하므로 가능할 수 있다.
앞에서 언급한 바와 같이, 복수의 상태 머신의 각 상태 머신을 위한 서브-레이트 천이 행렬과 서브-레이트 초기 상태는 생성 함수 및 생성 함수의 초기 상태로부터 도출될 수 있다. 도 2는 본 발명의 실시예에 따라서 복수의 상태 머신의 상태 머신을 위한 서브-레이트 천이 행렬(212)과 서브-레이트 초기 상태(214)를 계산하기 위한 장치(200)의 블록도를 도시한다. 장치(200)는 프로세서(210)를 포함한다. 이 프로세서(210)는 풀-레이트 비트열의 생성 함수(202), 생성 함수(202)의 초기 상태(204) 및 복수의 상태 머신의 상태 머신의 수(206)를 기반으로 상태 머신을 위한 서브-레이트 초기 단(214)을 계산한다. 또한 프로세서(210)는 생성 함수(202) 및 상태 머신의 수(206)를 기반으로 상태 머신을 위한 서브-레이트 천이 행렬(212)을 계산한다.
이러한 서브-레이트 천이 행렬(212)과 서브-레이트 초기 상태(214)가 복수의 상태 머신의 각 상태 머신을 위해 계산될 수 있다. 이런 식으로, 복수의 상태 머신은 임의 생성 함수와 초기 상태를 위해 타임-인터리브 비트열을 생성할 수 있고, 임의 생성 함수와 초기 상태는 예를 들어 멀티플렉서에 의해 병합되어 생성 함수 및 초기 상태에 의해 정의된 풀 비트 레이트 비트열을 획득한다.
상태 머신을 위한 서브-레이트 천이 행렬과 서브-레이트 초기 상태는 비트열 생성기로부터 독립적으로 계산될 수 있다. 서브-레이트 천이 행렬과 서브-레이트 초기 상태는 저장 장치에 의해 저장될 수 있고, 차후에 복수의 비트열 생성기에 의해 사용될 수 있다. 장치(200)는 단지, 차후에 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 사용하여 비트열 생성기의 복수의 상태 머신의 상태 머신의 수를 알 필요가 있을 수도 있다.
이런 식으로, 상태 머신이 상당히 낮은 클록 레이트로 동작할지라도 상당히 높은 비트 레이트를 가진 비트열을 생성할 수 있다. 환언하면, 상태 머신은 생성될 풀-레이트 비트열보다 상당히 낮은 비트 레이트를 가진 타임-인터리브 비트열을 제공할 수 있다.
서브-레이트 초기 상태의 계산과는 달리, 서브-레이트 천이 행렬은 예를 들어 생성 함수의 초기 상태로부터 독립적으로 결정될 수 있다. 이 경우, 서브-레이트 천이 행렬은 복수의 상태 머신의 모든 상태 머신에 대해 동일할 수 있다. 그 후, 상태 머신의 출력은 단지 상태 머신에 대해 결정된 상이한 서브-레이트 초기 상태로 인하여 상이할 수 있다. 환언하면, 프로세서(210)는 복수의 상태 머신의 각 상태 머신에 대해 서브-레이트 초기 상태를 계산할 수 있어, 계산된 서브-레이트 초기 상태는 서로 상이할 수 있다. 또한 프로세서는 서브-레이트 천이 행렬을 계산할 수 있어, 서브-레이트 천이 행렬은 복수의 상태 머신의 모든 상태 머신에 대해 동일하다. 환언하면, 동일한 서브-레이트 천이 행렬이 모든 상태 머신에 의해 사용될 수 있다.
도 1에 도시된 예에서와 같이 서브-레이트 천이 행렬은 의사랜덤 비트열 생성기의 각 상태 머신에 대해 계산될 수 있다. 비트열 생성기는 생성 함수를 기반으로 풀-레이트 천이 행렬을 사용하여 단일 상태 머신이라기 보다 동일한 비트열을 출력할 수 있다. 따라서 복수의 상태 머신의 상태 머신을 위한 서브-레이트 천이 행렬은 풀-레이트 천이 행렬로부터 도출될 수 있다. 환언하면, 프로세서는 생성 함수를 기반으로 풀-레이트 천이 행렬을 결정할 수 있고, 풀-레이트 천이 행렬과 상태 머신의 수를 기반으로 서브-레이트 천이 행렬을 계산할 수 있다. 또한 계산기는 풀-레이트 천이 행렬, 생성 함수의 초기 상태 및 상태 머신의 수를 기반으로 서브-레이트 초기 상태를 계산할 수 있다.
서브-레이트 천이 행렬은 예를 들어 사전정의된 수의 로우(row)를 가진 정방 행렬일 수 있다. 예를 들면 사전정의된 수의 로우는 상태 머신의 저장 유닛에 의해 저장될 수 있는 천이 행렬의 최대 크기, 또는 서브-레이트 천이 행렬을 기반으로 타임-인터리브 비트열의 비트를 생성하기 위해 상태 머신에 필요한 최대 계산 시간에 따라 설정될 수 있다. 서브-레이트 천이 행렬의 사전정의된 수의 로우는 생성 함수의 차수(order)와 동일하거나 또는 이보다 클 수 있다. 예를 들면 다항식 생성 함수의 경우, 다항식의 차수는 전술한 바와 같은 생성 함수를 정의하는데 필요한 계수의 수를 가리킨다. 따라서 서브-레이트 천이 행렬은 생성 함수를 정의하는데 필요한 계수의 수와 적어도 동일한 수의 로우를 포함할 수 있다.
프로세서(210)는 예를 들어 독립된 하드웨어 유닛, 컴퓨터 또는 마이크로제어기의 일부뿐만 아니라 컴퓨터 또는 마이크로제어기 상에서 실행되도록 구성된 컴퓨터 프로그램 또는 소프트웨어 제품으로서 구현될 수 있다.
다음에서, 복수의 상태 머신을 위한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하기 위한 예를 보다 상세히 설명할 것이다. 이것은 본 발명의 개념을 나타내는 도 3에 도시된 의사랜덤 비트열 생성기(300)의 하드웨어 구현을 기반으로 행해질 수 있다. 도 3이 복수의 상태 머신을 나타내는 세 상태 머신을 도시하지만, 의사랜덤 비트열 생성기는 또한 둘 또는 그 이상의 상태 머신으로서 구현될 수 있다. 각 상태 머신(310)은 시리얼라이저(330)로 연결되고, 각 시리얼라이저(330)는 멀티플렉서(320)로 연결된다. 또한 각 상태 머신(310)은 피드백 회로(312)와 하나 이상의 클로킹된 상태 레지스터(314)를 포함한다. 피드백 회로(312)는 상태 레지스터(314)로 연결되고, 상태 레지스터(314)는 피드백 회로(312)의 입력과 관련 시리얼라이저(330)의 입력으로 연결된 출력을 가진다. 의사랜덤 비트열 생성기(300)는 레이트 f/(R·M)에서 서브-레이트 선형 유한 상태 머신으로 불리는 이 연결에서 상태 머신의 출력으로부터 각각 직렬화된 M 타임-인터리브 비트스트림 wm(j)을 가진 목표 구조의 예를 나타낸다.
제안된 구조에서(도3), 비트 레이트 f를 가진 동일 시퀀스 {s(i)}는 레이트 f/(R·M)에서 실행되는 LFSM(sub-rate linear finite state machines)의 출력인 R 비트폭 워드 vm(k)를 더 직렬화함으로써 각각 생성되는 비트 레이트 f/M을 가진 M 비트 스트림, wm(j), m=0,1,...,M-1을 타임-인터리빙(멀티플렉싱)함으로써 상성될 것이다. M은 각 타임-인터리브 비트열 또는 각 상태 머신의 개별 번호를 나타낸다. 이 개별 번호는 상이한 타임-인터리브 비트열을 선택하기 위한 순서를 결정할 수 있다. 예를 들면 멀티플렉서는 먼저 개별 번호 m=0를 가진 상태 머신에 의해 생성된 타임-인터리브 비트열로부터 비트를 선택하고, 뒤이어 개별 번호 m=1을 가진 상태 머신에 의해 생성된 타임-인터리브 비트열로부터 비트를 선택하는 등과 같이 이어진다.
모든 M LFSM은 예를 들어 프로그램가능 N×N 확장 상태 천이 행렬 T m(서브-레이트 천이 행렬)과 프로그램가능 초기 확장 상태 y m(0)(서브-레이트 초기 상태)를 가진다. 이 예에서 전용 출력 행렬이 없으므로, 확장 상태 y m∈BN 는 출력뿐만 아니라 모든 도달가능한 ym을 고유하게 식별하는, 따라서 용어 확장 상태인 상태 z m∈BP, P≤N 을 포함한다.
일 목적은 PRBS 다항식 g(x)(생성 함수), 타임-인터리브 비트 스트림의 수 M(상태 머신의 수) 및 레이트 감소 인자 R로서, M 타임-인터리브 LFSM의 초기 확장 상태 y m(0)∈BN, m= 0,1,...,M-1와 확장 상태 천이 행렬 T m∈BN ×N을 계산하고, 이 계산이 가능할 때의 조건을 제시하기 위한 것이다.
N =32, M =2, 그리고 R ∈{4,8,12,16,20,24,28,32}의 경우, 해답은 차수 P≤N을 가진 모든 다항식에 대해 존재한다.
예를 들어 특허출원 "J.Rivoir: State machine and generator for generating a description of a state machine feedback function, WO 2010034326 A1"과 "J. Rivoir: Apparatus and method for emulating a full-rate finite state machine, WO 2010034327 A1"은 일 클록 사이클에서 임의(비선형) FSM의 다중 비트 생성을 다룬다. 그러나 서브-레이트 LFSM의 상태 천이 행렬에서 요소의 수는 서브-레이트 인자와 함께 이차식으로 증가한다. 본 발명의 개념은 멀티 비트를 타임-인터리빙하는 것을 제안하고, 따라서 단지 선형적으로 증가하는 HW 노력만을 요구한다. 그러나 이 접근방안은 단지 PBRS의 생성에 대한 제한이 아닌 자동 선형 FSM의 출력을 모방할 수 있다.
다음에서, GF(2)에서 행렬 접근방안을 사용하고, 따라서 인자환(factorial ring)의 추상 표기 g(x)∈BP[x]/(xP-1)에 대한 참조를 피한다. LFSR 및 관련 수학적 개념은 "A, Neubauer, J. Freudenberger, V. Kuhn; Coding Theory - Algorithms, Architectures and Applications, Wiley 2007"과 "D.S. Dummit, R.M. Foote: Abstract Algebra, Wiley 2004"에서 철저히 다룬다는 것을 알 수 있다.
LFSR의 출력 시퀀스{s(i)}은 L 단계 후에 반복된다. g(x)가 소위 원시 다항식일때, 시퀀스 길이는 최대치, 즉 L=Lmax=2P-1이고, 그렇지 않으면 L은 Lmax의 제수(divider)이다. 홀수 Lmax의 제수로서, L도 또한 홀수이다.
Figure pct00003
이제부터 최대 길이 시퀀스, 즉 원시 다항식을 추정할 것이다. 차수 P의 일반 불리언 LFSM과 일 출력 s(i)은 다음 형태의 상태 방정식을 가진다:
Figure pct00004
여기서, 연산은 이진 갈로아 필드(binary Galois field)에서 행해지며, 즉 논리 XOR은 '합산'으로 사용되고, 논리 AND는 '승산'으로 사용된다. '·'는 내부 행렬 곱을 표기하며 때때로 생략된다. x0는 생성 함수의 초기 상태이며, G는 풀-레이트 천이 행렬이고, s(i)는 생성될 비트열이다.
일반 상태 넘버링일시,
Figure pct00005
상태 천이 행렬(풀-레이트 천이 행렬)은
Figure pct00006
이는 또한 생성 다항식 g(x)(생성 함수)의 (계수 g1,...,gp를 가진) 계수 벡터의 상부 확장 행렬로서 알려져 있다.
Figure pct00007
출력 s가 마지막 상태 변수와 동일하므로, 출력 벡터는 P번째 유닛 로우 벡터가 된다.
Figure pct00008
반복적으로 수학식 3을 적용하여 i번째 시간 단계에서 상태 및 출력을 도출한다.
Figure pct00009
정확히 L = Lmax=2p-1 시간 단계 후에 모든 상태가 반복되므로,
Figure pct00010
P×P 상태 천이 행렬 G는 순환적이다.
Figure pct00011
속성(수학식 10)은 행렬의 순환성에 대해 충분하지 않다는 데에 주목한다. x가 BP에서 모든 L=Lmax=2P-1 난제로 상태를 거치므로, G i x, i=0,1,...,L-1은 또한 여기서 트루(true)인 B p의 기본을 형성해야 한다.
예정된 PRBS {s(i)}는 차수 m={0,1,...,M-1,0,1,...}에서 M 비트 스트림 wm(j)를 타임-인터리빙함으로써 생성될 수 있고, 따라서
Figure pct00012
로서 구성되어야 하며, j=0,1,2,...이고 m=0,1,...,M-1이다. wm(j)가 차수 r=1,2,...,R에서 v m(k)의 R 요소로부터 직렬화되므로(도 3 참조), 후자는 wm(j)의 R 연속값을 포함할 수 있다.
Figure pct00013
k=0,1,2,...이고, 수학식 11과 함께,
Figure pct00014
또한 상태 코딩과 출력을 선택할 수 있다. Lmax=2P-1의 시퀀스 길이를 가진 LFSM는 적어도 P 상태 비트를 요구한다. M이 시퀀스 길이와 공통 제수를 공유하지 않을 때, 각 타임-인터리브 LFSM(복수의 상태 머신의 상태 머신)은 모든 Lmax 상태를 거칠 것이며, 따라서 또한 P 요소 z m∈BP를 가진 상태 벡터를 필요로 한다. 이것은 제1(분명한) 요건으로 이끈다.
Figure pct00015
주목할 것은, M이 L과 제수를 공유하는 경우에, 각 LFSM은 단지 L/gcd(M,L) 상이한 상태를 생성해야 하고, 따라서 이들 상태를 나타내기 위해 단지
Figure pct00016
상태 비트를 필요로 한다.
도출을 간단히 하기 위하여, 항상 홀수인 L과 공통 제수를 공유하지 않는, 짝수 M을 가진 사실상 적절한 경우를 가정할 것이다.
Figure pct00017
이제 v m(k)의 R 요소가 적어도 R≤P인 경우에 첫 P 상태 비트와 동일하게 상태 코딩을 선택할 수 있다. 선택된 상태 코딩은 패턴(수학식 13)을 따른다.
Figure pct00018
R이 P보다 큰 경우를 수용하기 위해, 모든 사용가능한 N 출력 y m∈BN은 동일 패턴에 따라서 선택된다.
Figure pct00019
이는 다음을 분명히 가정할 시이다.
Figure pct00020
목표 구조가 자명하지 않은 출력 행렬을 특징화하지 않으므로, 이 선택은 필요시에 다음 상태와 출력 간에 수학식을 공유할 수 있게 한다.
Figure pct00021
Figure pct00022
주목할 것은, 일반 LFSR 표기를 따르는 상태 벡터의 제P 요소를 출력하는 도 5에 도시된 바와 같은 상태 머신과 달리, 위의 상태 머신은 제1 R 상태 요소를 출력한다. 이 넘버링은 인덱스 산술을 더 쉽게 만든다.
z m(k)는 상태 코딩(수학식 16)과 수학식 8로부터 계산될 수 있다.
Figure pct00023
간단하게는 다음과 같다.
Figure pct00024
여기서,
Figure pct00025
은 일 사이클에서 LFSR G의 M 시간 단계에 의해 진행되는 P×P 상태 천이 행렬 G M, 즉 순차 P의 LFSM의 (정방) 가관측 행렬 및 마지막 상태인 출력으로서 식별될 수 있다.
이제, Q p의 비특이성(non-singularity)을 도시할 것이다. "j. Jordan: Controllability of polynomial-shift inverse iteration, Proceedings of the Benelus Meeting on Systems and Control, Helvoirt, The Netherlands, 17-19. March 2004"에서의 주 이론은 그의 시스템 행렬이 순환적일 경우에만 제어가능하다는 것을 언급한다. gcd(M, L)=1라고 가정하면, G가 순환적이므로 G M은 확실히 순환적이다. 이중성 원리로 인하여, 아날로그문은 가관측 행렬의 전체 계수(rank)를 의미하는 가관측성, 또는 이경우에 정방행렬 Q p 의 비특이성에 적용된다.
이것은 G kMR x(m)을 위한 해결(수학식 22)을 허용한다:
Figure pct00026
z m(k)을 위한 상태 방정식은 시간 단계 k+1을 수학식 22에 적용하고 위의 결과(수학식 24)를 사용하여 도출될 수 있다.
Figure pct00027
상태 천이 행렬을 사용하면
Figure pct00028
이고 수학식 22에서 k=0으로부터 초기 상태인 경우, 상태 방정식은 다음과 같이 된다.
Figure pct00029
수학식 26이 유사 변환을 통해 SG MR을 연결하므로, 상태 z m(k)는 각 사이클 k에서 MR LFSR 단계에 의해 진행된다.
수학식 21, 수학식 22, 수학식 23과 유사하게, 수학식 24와 함께, 출력 방정식은 다음과 같이 쓰여질 수 있다.
Figure pct00030
여기서
Figure pct00031
도 3에 도시된 바와 같이 암시 출력을 가진 LFSM의 경우, 이들 상태 및 출력 방정식은 전용 출력 행렬을 포함하지 않는 도 3의 구조로 매핑될 수 있다.
상태 벡터 z m(k)의 P 요소는 y m(k)의 첫 P 요소와 동일하므로, y m(k)의 N 요소는 확장 상태 벡터로서 보여질 수 있다.
Figure pct00032
여기서, I p는 P×P 항등 행렬을 표기한다. 이제, 출력 방정식(수학식 28)은 (확장) 상태 방정식으로 기록될 수 있다.
Figure pct00033
확장 시스템의 N×N 상태 천이 행렬(서브-레이트 천이 행렬)은 m에 의존하지 않는다는 것에 주목해야 한다.
Figure pct00034
수학식 28로부터 초기 상태(서브레이트 초기 상태)와 함께
Figure pct00035
결합된 상태와 출력 y m(k)를 가진 마지막 LFSR은 다음과 같다.
Figure pct00036
Q N이 일반적으로 정방 행렬이 아니므로, z m(k)를 통한 우회가 필요했으며, 따라서 단순히 의사-역(pseudo-inverse)과 반대되므로 원래 역을 가지지 않는다.
예를 들어, 제안된 개념은 프로그램가능 LFSM의 더 직렬화된 출력에 의해 생성되는 타임-인터리빙 저속 비트스트림을 기반으로 고속 PRBS를 생성하기 위한 방법을 제공한다.
목표 비트열 생성기의 단지 일부 하드웨어 매개변수(예를 들면 복수의 상태 머신의 상태 머신의 수)는 상태 머신을 위한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산할 필요가 있을 수 있으므로, 복수의 상태 머신의 상태 머신을 위한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하기 위한 장치는 의사랜덤 비트열 생성기로부터 독립적으로 구현될 수 있다. 서브-레이트 초기 상태는 저장유닛에 저장될 수 있고, 차후에 의사랜덤 비트열 생성기의 상태 머신으로 전송될 수 있다. 이런 식으로 예를 들면 복수의 상이한 생성 함수를 위한 서브-레이트 초기 상태 및 천이 행렬, 그리고/또는 초기 상태가 결정되어 저장될 수 있다. 그 후, 이 저장된 데이터는 동일한 하드웨어를 포함한 복수의 의사랜덤 비트열 생성기로부터 사용될 수 있다.
상대적으로, 상태 머신을 위한 서브-레이트 초기 상태와 천이 행렬은 하나 이상의 생성 함수를 위한 저장유닛에 의해 저장 및 제공될 수 있으므로, 전술한 개념에 따른 비트열 생성기는 복수의 상태 머신의 상태 머신을 위한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하기 위한 장치로부터 독립적으로 구현될 수 있다.
그러나 예를 들면 사용자가 개별 생성 함수 및/또는 초기 상태를 정의하기를 원한다면, 비트열 생성기, 그리고 복수의 상태 머신의 상태 머신을 위한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하기 위한 장치를 결합하여 사용할 수 있다. 도 4는 본 발명의 실시예에 따라서 복수의 상태 머신의 상태 머신을 위한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하기 위한 장치를 구비한 비트열 생성기(400)의 블록도를 도시한다. 도 1에 도시된 의사랜덤 비트열 생성기와 유사하게, 의사랜덤 비트열 생성기(400)는 멀티플렉서(120)로 연결된 두 상태 머신(110)을 포함한다. 또한 비트열 생성기(400)는 상태 머신(110)으로 연결된 서브-레이트 천이 행렬(212)과 서브-레이트 초기 상태(214)를 계산하기 위한 장치의 프로세서(210)를 포함한다. 프로세서(210)는 서브-레이트 천이 행렬(212)과 서브-레이트 초기 상태(214)를 계산하여 이들을 상태 머신(110)으로 제공한다. 상태 머신(110)은 제공된 서브-레이트 천이 행렬(212)과 서브-레이트 초기 상태(214)를 기반으로 대응하는 타임-인터리브 비트열(112)을 생성한다. 이들 타임-인터리브 비트열(112)은 멀티플렉서(120)에 의해 병합됨으로써, 생성 함수 및 초기 상태에 의해 정의된 비트열(122)은 풀-레이트로써 제공된다.
본 발명에 따른 소정 실시예는 전술한 바와 같은 비트열 생성기, 그리고/또는 복수의 상태 머신의 상태 머신을 위한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하기 위한 장치를 포함한 자동화된 테스트 장비에 대한 것이다.
독립적인 상태 머신(110)을 구비한 비트열 생성기의 구현은 상태 머신의 구현을 위해 자동 테스트 장비의 독립 테스트 채널을 사용할 수 있다는 자동 테스트 장비의 이점을 가진다. 환언하면, 단지 멀티플렉서를 추가하고 전술한 개념에 따라 복수의 상태 머신의 상태 머신에 대한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 제공함으로써 가장 신속한 비트열(예를 들면 의사랜덤 비트열)을 제공할 수 있는 비트열 생성기를 구현하는 것이 가능할 수 있다.
본 발명에 따른 소정 실시예는 타임-인터리브 서브-레이트 상태 머신을 사용하여 의사랜덤 비트열을 생성하는 것에 관한 것이다.
이를 위하여, 제안된 개념은 예를 들어 12.8 Gbps PRBS(또는 비트 레이트)의 생성뒤의 이론을 설명한다. 예를 들어 고속 LFSR을 사용하는 12.8 Gbps PRBS의 생성이 기술적으로 극히 도전적이므로, 이 개념은 예를 들어 각각이 6.8 Gbps의 추가 부분 1/R에서 실행되는 순서 N의 프로그램가능 LFSM(linear finite state machine)을 포함하는 두(M=2) 코어의 6.8 Gbps 출력을 타임-인터리빙하는 것을 제안한다. 서브-레이트 상태 머신의 초기 상태와 후속 상태를 위한 방정식은 차수 P의 생성 다항식, 인터리브 비트 스트림의 수 M 및 레이트 감소 인자 R의 함수로서 도출될 수 있다.
예를 들어 기술한 개념은 (예를 들면 12.8 Gbps에서) 고속 선형 피드백 시프트 레지스터를 사용하여 의사랜덤 비트열의 직접 생성이 극히 어렵다는 문제를 해결한다. 또한 이것은 특히 다항식(생성 함수)이 프로그램가능할 때에 장래에 20 Gbps, 40 Gbps, 100 Gbps 이상을 위해 증가할 것이다. 기술한 개념을 사용하면 보다 저속인 실행 논리(상태 머신)을 가능하게 한다. 제안된 개념은 단지 의사랜덤 비트열이 아닌 임의 선형 유한 상태 머신의 출력을 위해 작동할 수 있다. 또한 L(출력 시퀀스가 반복된 후에 비트의 수)이 여전히 홀수이므로, 다항식은 비원시적일 수 있다. 또한 M(복수의 상태 머신의 상태 머신의 수)는 L의 제수(divider)일 수 있다. 기술한 개념은 이 경우에 모든 것을 보다 쉽게 만들 수 있는 전용 출력 행렬과 함께 또한 작동할 수 있다.
기술한 개념을 사용하여 다중 상태 머신 또는 선형 피드백 시프트 레지스터의 출력이 타임-인터리브됨으로써, 결합된 출력은 생성 함수와 초기 상태에 의해 정의되는 비트열을 제공하는 단일 선형 피드백 시프트 레지스터의 출력과 동일하다.
환언하면, 본 발명의 소정 실시예에서, 다른 목적을 위해 필요로 할 수 있는 멀티플렉서외의 추가 하드웨어가 필요없을 수도 있다. 더욱이 기술한 개념은 기존의 저속 의사랜덤 비트열 생성기에 영향을 줄 수 있다. 따라서 기술한 개념에 따른 비트열 생성기는 추가적인 하드웨어 복잡성 및 추가 전력 소비를 가지지 않을 수 있고, 더 높은 레이트로의 조정을 가질 수 있고, 그리고/또는 임의 다항식을 생성할 수 있다. 환언하면, 기술한 개념을 사용함으로써, 프로그램가능 다항식을 가진 12.8 Gbps(또는 그 이상) 의사랜덤 비트열의 생성이 가능해진다.
기술한 개념에 비하여, 예를 들어 12.8 Gbps 설계에서 알려진 전형적인 바이폴라 실행은 극히 도전적이며, 방대한 양의 전력을 소비하고, 다항식을 제한한다.
도 9는 본 발명의 실시예에 따라서 생성 함수 및 생성 함수의 초기 상태에 의해 정의되는 비트열을 생성하기 위한 방법(900)의 흐름도를 도시한다. 방법(900)은 복수의 타임-인터리브 비트열을 생성하는 단계(910), 그리고 생성 함수 및 생성 함수의 초기 상태에 의해 정의된 비트열을 획득하기 위하여 반복 방식으로 각 생성된 타임-인터리브 비트열로부터 연속적으로 일 비트를 선택하는 단계(920)를 포함한다. 현 시간 단계 동안에 생성된 타임-인터리브 비트열의 비트는 선행한 시간 단계 동안에 생성된 (예를 들면 이 타임-인터리브 비트열의 경우) 적어도 하나의 비트를 기반으로, 생성될 비트열의 생성 함수를 기반으로, 생성 함수의 초기 상태를 기반으로 하며, 다른 생성된 타임-인터리브 비트열로부터 독립적이다.
방법(900)은 전술한 비트열 생성기의 특징에 대응하는 추가 단계를 포함할 수 있다.
도 10은 본 발명의 실시예에 따라서 복수의 상태 머신의 상태 머신을 위한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하기 위한 방법(1000)의 흐름도를 도시한다. 방법(1000)은 상태 머신을 위한 서브-레이트 초기 상태를 계산하는 단계(1010), 그리고 상태 머신을 위한 서브-레이트-천이 행렬을 계산하는 단계(1020)를 포함한다. 서브-레이트 초기 상태는 풀-레이트 비트열의 생성 함수, 복수의 상태 머신의 상태 머신의 수와 생성 함수의 초기 상태를 기반으로 하여 계산된다(1010). 또한 서브-레이트 천이 행렬은 생성 함수와 상태 머신의 수를 기반으로 계산된다(1020).
방법(1000)은 전술한 복수의 상태 머신의 상태 머신을 위한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하기 위한 장치의 특징에 대응하는 추가 단계를 포함할 수 있다.
기술한 개념의 소정 양상은 장치라는 상황에서 기술하였지만, 이들 양상은 또한 대응하는 방법의 설명을 나타낸다는 것이 분명하며, 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 대응한다. 유사하게, 방법 단계라는 맥락에서 기술한 양상은 또한 대응 장치의 대응 블록 또는 항목 또는 특징의 설명을 나타낸다.
소정 구현 요건에 따라, 본 발명의 실시예는 하드웨어 또는 소프트웨어로 구현될 수 있다. 구현은 저장된 전자적으로 판독가능한 제어 신호를 가지며 각 방법을 수행하게 프로그램가능 컴퓨터 시스템과 협동하는(또는 협동할 수 있는) 디지털 저장매체, 예를 들면 플로피 디스크, DVD, 블루레이, CD, ROM, PROM, EPROM, EEPROM 또는 플래시 메모리를 사용하여 수행될 수 있다. 따라서 디지털 저장매체는 컴퓨터로 판독될 수 있다.
본 발명에 따른 소정 실시예는 프로그램가능 컴퓨터 시스템과 협동할 수 있는 전자적으로 판독가능한 제어 신호를 가진 데이터 캐리어를 포함함으로써 여기에 기술한 일 방법이 수행된다.
통상, 본 발명의 실시예는 프로그램 코드를 가진 컴퓨터 프로그램제품으로서 구현될 수 있고, 프로그램 코드는 컴퓨터 상에서 컴퓨터 프로그램제품을 실행할 시에 일 방법을 수행하기 위해 동작할 수 있다. 프로그램 코드는 예를 들어 머신 판독가능 캐리어 상에 저장될 수 있다.
다른 실시예는 머신 판독가능 캐리어 상에 저장되며 여기에 기술된 일 방법을 수행하기 위한 컴퓨터 프로그램을 포함한다.
환언하면, 본 발명 방법의 실시예는 컴퓨터 상에서 컴퓨터 프로그램을 실행할 시에 여기에 기술한 일 방법을 수행하기 위한 프로그램 코드를 가진 컴퓨터 프로그램이다.
따라서 본 발명의 방법의 다른 실시예는 레코딩되며 여기에 기술한 일 방법을 수행하기 위한 컴퓨터 프로그램을 포함한 데이터 캐리어(또는 디지털 저장매체 또는 컴퓨터 판독가능 매체)이다.
따라서 본 발명의 방법의 또 다른 실시예는 여기에 기술한 일 방법을 수행하기 위한 컴퓨터 프로그램을 나타내는 신호열 또는 데이터 스트림이다. 데이터 스트림 또는 신호열은 예를 들어 데이터 통신 연결, 예를 들어 인터넷을 통해 전송되도록 구성될 수 있다.
또 다른 실시예는 여기에 기술된 일 방법을 수행하도록 구성되거나 또는 이에 적합한 처리 수단, 예를 들어 컴퓨터 또는 프로그램가능 논리 장치를 포함한다.
또 다른 실시예는 여기에 기술된 일 방법을 수행하기 위한 컴퓨터 프로그램이 설치된 컴퓨터를 포함한다.
소정 실시예에서, 프로그램가능 논리 장치(예를 들면 필드 프로그램가능 게이트 어레이)는 여기에 기술된 방법의 일부 또는 모든 기능성을 수행하는데 사용될 수 있다. 소정 실시예에서, 필드 프로그램가능 게이트 어레이는 여기에 기술된 일 방법을 수행하기 위하여 마이크로프로세서와 협동할 수 있다. 통상, 방법은 바람직하게 임의 하드웨어 장치에 의해 수행된다.
전술한 실시에는 본 발명의 원리를 단지 설명하는 것이다. 여기에 기술된 장치 및 상세사항의 변형 및 변경은 당해 기술분야에 통상의 지식을 가진 다른 자에게 명백할 것이라는 것을 알 것이다. 따라서 현 특허 청구범위의 범주에 의해서만 제한되며, 설명에 의해 제공된 특정 상세사항과 여기에 기술된 실시예의 설명에 의해 제한되지 않는다.

Claims (25)

  1. 생성 함수(generating function) 및 상기 생성 함수의 초기 상태에 의해 정의되는 비트열(bit sequence)(122, s(i))을 생성하는 비트열 생성기(100, 300, 400)로서,
    복수의 상태 머신 -상기 복수의 상태 머신의 각각의 상태 머신(110, 310)은 타임-인터리브 비트열(time-interleaved bit sequence)(112, wm(j))을 생성하도록 구성되고, 상태 머신(110, 310)은 선행 시간 단계 동안에 상기 상태 머신(110, 310)에 의해 생성된 적어도 일 비트를 기반으로, 생성될 상기 비트열(122, s(i))의 생성 함수를 기반으로, 상기 생성 함수의 초기 상태를 기반으로 그리고 상기 복수의 상태 머신(110, 310)의 다른 상태 머신(110, 310)에 의해 생성되는 타임-인터리브 비트열(112, wm(j))로부터 독립적으로, 현재 시간 단계 동안에 상기 타임-인터리브 비트열(112, wm(j))의 비트를 생성함- 과,
    상기 생성 함수와 상기 생성 함수의 초기 상태에 의해 정의되는 상기 비트열(122, s(i))을 획득하기 위하여 반복 방식으로 각각의 생성된 타임-인터리브 비트열(112, wm(j))로부터 일 비트를 연속적으로 선택하도록 구성된 멀티플렉서(120)를 포함하는
    비트열 생성기.
  2. 제 1 항에 있어서,
    상기 복수의 상태 머신의 상태 머신(110, 310)은 각각의 시간 단계 동안에 대응하는 타임-인터리브 비트열(112, wm(j))의 사전정의된 수의 비트(R)를 생성하도록 구성되는
    비트열 생성기.
  3. 제 2 항에 있어서,
    상기 복수의 상태 머신의 상태 머신(110, 310)은 서브 비트 레이트(sub bit rate)로 상기 타임-인터리브 비트열(112, wm(j))의 사전정의된 수의 비트(R)를 생성하도록 구성되고, 상기 멀티플렉서(120)는 상기 서브 비트 레이트의 정수배인 풀(full) 비트 레이트로 상기 생성된 비트열을 제공하도록 구성되는
    비트열 생성기.
  4. 제 3 항에 있어서,
    상기 정수배는 상기 타임-인터리브 비트열(112, wm(j))의 사전정의된 수의 비트(R)와 상기 복수의 상태 머신(110, 310)의 상태 머신의 수(M)의 곱(product)인
    비트열 생성기.
  5. 제 2 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 복수의 상태 머신의 상기 상태 머신(110, 310)의 상태는 병렬 방식으로 동일한 시간 단계 동안에 상기 상태 머신(110, 310)에 의해 생성된 사전정의된 수의 상태 비트(N)에 의해 정의되고, 상기 사전정의된 수의 상태 비트(N)는 동일한 시간 단계 동안에 상기 타임-인터리브 비트열(112, wm(j))의 적어도 사전정의된 수의 비트(R)를 포함하는
    비트열 생성기.
  6. 제 5 항에 있어서,
    상기 상태 머신(110, 310)은 중간 비트 레이트(f/M)로 직렬 방식으로 상기 타임-인터리브 비트열(112, wm(j))을 제공하기 위해 시간 단계 동안에 생성된 상기 상태 비트에 의해 포함된 상기 타임-인터리브 비트열(112, wm(j))의 비트를 각각의 시간 단계 동안에 선택하도록 구성된 시리얼라이저(serializer)(330)를 포함하고, 상기 중간 비트 레이트(f/M)는 동일한 시간 단계 동안에 생성된 상기 타임-인터리브 비트열(112, wm(j))의 사전정의된 수의 비트(R)와 상기 서브 비트 레이트(f/(RM))를 곱한 값과 동일한
    비트열 생성기.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 복수의 상태 머신의 상태 머신(110, 310)은 서브-레이트 천이 행렬(T)과 서브-레이트 초기 상태(ym(0))를 기반으로 상기 타임-인터리브 비트열(112, wm(j))을 생성하고, 상기 서브-레이트 천이 행렬(T)과 상기 서브-레이트 초기 상태(ym(0))는 상기 생성 함수와 상기 생성 함수의 초기 상태를 기반으로 하는
    비트열 생성기.
  8. 제 7 항에 있어서,
    상기 서브-레이트 천이 행렬(T)은 상기 복수의 상태 머신의 모든 상태 머신(110, 310)에 대해 동일하고, 상기 서브-레이트 초기 상태(ym(0))는 상기 복수의 상태 머신의 모든 상태 머신(110, 310)에 대해 상이한
    비트열 생성기.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 복수의 상태 머신은 두 개의 상태 머신(110, 310)만을 포함하거나, 또는 세 개 이상의 상태 머신(110, 310)을 포함하는
    비트열 생성기.
  10. 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
    생성될 상기 비트열(122, s(i))은 의사랜덤(pseudorandom) 비트열인
    비트열 생성기.
  11. 복수의 상태 머신의 상태 머신에 대한 서브-레이트 천이 행렬(212, T)과 서브-레이트 초기 상태(214, ym(0))를 계산하는 장치(200)로서,
    풀-레이트(full-rate) 비트열의 생성 함수(202), 상기 생성 함수의 초기 상태(204) 및 상기 복수의 상태 머신의 상태 머신의 수(M)를 기반으로 상기 상태 머신에 대한 상기 서브-레이트 초기 상태(214, ym(0))를 계산하도록 구성되고, 상기 생성 함수(202)와 상기 상태 머신의 수(206, M)를 기반으로 상기 상태 머신에 대한 상기 서브-레이트 천이 행렬(212, T)을 계산하도록 구성된 프로세서(210)를 포함하는
    장치.
  12. 제 11 항에 있어서,
    상기 프로세서(210)는 상기 생성 함수(202)의 초기 상태(204)로부터 독립적으로 상기 서브-레이트 천이 행렬(212, T)을 계산하도록 구성되는
    장치.
  13. 제 11 항 또는 제 12 항에 있어서,
    상기 프로세서(210)는 상기 생성 함수(202)를 기반으로 풀-레이트 천이 행렬(G)을 결정하도록 구성되고, 상기 프로세서(210)는 상기 풀-레이트 천이 행렬(G)과 상기 상태 머신의 수(M)를 기반으로 상기 서브-레이트 천이 행렬(212, T)을 계산하도록 구성되며, 상기 프로세서(210)는 상기 풀-레이트 천이 행렬(G), 상기 생성 함수(202)의 초기 상태(204) 및 상기 상태 머신의 수(206, M)를 기반으로 상기 서브-레이트 초기 상태(214)를 계산하도록 구성되는
    장치.
  14. 제 11 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 프로세서(210)는 상기 복수의 상태 머신의 각각의 상태 머신에 대한 상기 서브-레이트 초기 상태(214, ym(0))를 계산하도록 구성되어, 상기 계산된 서브-레이트 초기 상태(214, ym(0))는 서로 상이한
    장치.
  15. 제 11 항 내지 제 14 항 중 어느 한 항에 있어서,
    상기 프로세서(210)는 상기 서브-레이트 천이 행렬(212, T)이 상기 복수의 상태 머신의 모든 상태 머신에 대해 동일하도록 상기 서브-레이트 천이 행렬(212, T)을 계산하도록 구성되는
    장치.
  16. 제 11 항 내지 제 15 항 중 어느 한 항에 있어서,
    상기 서브-레이트 천이 행렬(212, T)은 사전정의된 수의 로우(rows)(N)를 가진 정방 행렬이고, 상기 사전정의된 수의 로우(N)는 상기 생성 함수의 차수(P)와 동일하거나 또는 이보다 큰
    장치.
  17. 제 11 항 내지 제 16 항 중 어느 한 항에 있어서,
    상기 프로세서(210)는
    Figure pct00037

    에 따라서 상기 서브-레이트 천이 행렬(212, T)을 계산하도록 구성되며,
    N은 T의 사전정의된 수의 로우이고, M은 상기 복수의 상태 머신의 상태 머신의 수이며, P는 상기 생성 함수의 차수이고, G는 풀-레이트 천이 행렬이며, R은 상기 서브-레이트 천이 행렬을 사용하여 동일한 시간 동안에 상태 머신에 의해 생성된 상기 비트열의 비트 수이고,
    Figure pct00038
    이고,
    Figure pct00039
    이며,
    Figure pct00040

    장치.
  18. 제 11 항 내지 제 17 항 중 어느 한 항에 있어서,
    상기 프로세서(210)는
    Figure pct00041

    에 따라서 상기 서브-레이트 초기 상태(214, ym(0))를 계산하도록 구성되고,
    m은 각각의 상태 머신에 할당된 개별 번호이고, 상기 복수의 상태 머신의 상태 머신의 수(M)와 동일하거나 또는 이보다 낮은 값을 포함하는 상기 서브-레이트 초기 상태가 계산되며, N은 상기 서브-레이트 천이 행렬(T)의 사전정의된 수의 로우이고,
    Figure pct00042
    이고,
    Figure pct00043
    이며,
    P는 상기 생성 함수의 차수이며, G는 풀-레이트 천이 행렬이고,
    Figure pct00044

    장치.
  19. 청구항 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
    청구항 제 11 항 내지 제 18 항 중 어느 한 항에 따른 복수의 상태 머신의 상태 머신에 대한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하는 장치를 포함하되,
    상기 비트열 생성기의 복수의 상태 머신의 상태 머신은 상기 상태 머신에 대한 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하는 장치에 의해 계산된 상기 서브-레이트 천이 행렬과 상기 서브-레이트 초기 상태를 기반으로 대응하는 타임-인터리브 비트열을 생성하는
    비트열 생성기.
  20. 제 1 항 내지 제 10 항 또는 제 19 항 중 어느 한 항에 있어서,
    상태 머신(800)을 포함하되,
    상기 상태 머신(800)은,
    제 1 클록 레이트를 가진 중간 레이트 입력 신호를 위한 입력부(802)와,
    상기 중간 레이트 입력 신호를, 상기 제 1 클록 레이트의 일부인 제 2 클록 레이트를 가진 서브-레이트 입력 신호로 변환하기 위한 디시리얼라이저(deserializer)(840)와,
    이전 서브-레이트 내부 상태와 상기 서브-레이트 입력 신호에 따라 서브-레이트 내부 상태를 갱신하고, 상기 이전 서브-레이트 내부 상태 또는 갱신된 서브-레이트 내부 상태에 따라 서브-레이트 출력 신호를 제공하도록 구성되는 서브-레이트 유한 상태 머신(sub-rate finite state machine)(810)과,
    상기 제 1 클록 레이트를 가진 중간 레이트 출력 신호를 획득하도록 상기 서브-레이트 출력 신호를 직렬화하도록 구성된 시리얼라이저(serializer)(830)를 포함하되,
    상기 서브-레이트 유한 상태 머신(810)은 상기 제 2 클록 레이트로 상기 서브-레이트 내부 상태를 갱신하도록 구성되는
    비트열 생성기.
  21. 제 1 항 내지 제 10 항 또는 제 19 항 중 어느 한 항에 있어서,
    워드-스트림(word stream)을 생성하기 위한 상태 머신을 포함하되,
    상기 워드-스트림의 각각의 워드는 타임-인터리브 비트열의 복수의 후속 비트를 포함하고,
    상기 상태 머신은,
    대응하는 입력과 대응하는 출력을 포함한 복수의 클록 레지스터(710)와,
    상기 레지스터(710)의 입력 및 출력에 연결되며, 상기 레지스터의 복수의 레지스터 출력 신호와 상기 생성 함수를 기반으로 상기 레지스터의 입력에 복수의 피드백 신호를 제공하도록 구성된 피드백 회로(730) -상기 레지스터 출력 신호는 상기 레지스터의 상태를 표시함- 를 포함하고,
    상기 상태 머신(700)은 상기 복수의 레지스터 출력 신호에 의해 정의된 제 1 워드가 상기 타임-인터리브 비트열의 제 1 후속 비트 세트를 포함하고, 상기 복수의 레지스터 출력 신호에 의해 정의된 후속하는 제 2 워드가 상기 타임-인터리브 비트열의 제 2 후속 비트 세트를 포함하도록 구성되는
    비트열 생성기.
  22. 청구항 제 1 항 내지 제 10 항 또는 제 19 항 내지 제 21 항 중 어느 한 항에 따른 비트열 생성기를 포함하거나, 또는 청구항 제 11 항 내지 제 18 항 중 어느 한 항에 따른 복수의 상태 머신의 상태 머신에 대한 개별 초기 상태 및 개별 천이 행렬을 계산하는 장치를 포함하는
    자동 테스트 장비.
  23. 생성 함수 및 상기 생성 함수의 초기 상태에 의해 정의되는 비트열을 생성하는 방법(900)에 있어서,
    복수의 타임-인터리브 비트열을 생성하는 단계(910) -상기 복수의 타임-인터리브 비트열의 타임-인터리브 비트열의 비트는 선행 시간 단계 동안에 생성된 적어도 일 비트를 기반으로, 생성될 비트열의 상기 생성 함수를 기반으로, 상기 생성 함수의 초기 상태를 기반으로 그리고 상기 복수의 타임-인터리브 비트열의 다른 생성된 타임-인터리브 비트열로부터 독립적으로, 현재 시간 단계 동안에 생성됨(910)- 와,
    상기 생성 함수 및 상기 생성 함수의 초기 상태에 의해 정의되는 비트열을 획득하기 위하여 반복 방식으로 각각의 생성된 타임-인터리브 비트열로부터 일 비트를 연속적으로 선택하는 단계(920)를 포함하는
    비트열 생성 방법.
  24. 복수의 상태 머신의 상태 머신의 서브-레이트 천이 행렬과 서브-레이트 초기 상태를 계산하는 방법(1000)에 있어서,
    풀-레이트 비트열의 생성 함수, 상기 생성 함수의 초기 상태 및 상기 복수의 상태 머신의 상태 머신의 수를 기반으로 상기 상태 머신에 대한 상기 서브-레이트 초기 상태를 계산하는 단계(1010)와,
    상기 생성 함수 및 상기 상태 머신의 수를 기반으로 상기 상태 머신에 대한 상기 서브-레이트 천이 행렬을 계산하는 단계(1020)를 포함하는
    방법.
  25. 컴퓨터 또는 마이크로제어기 상에서 컴퓨터 프로그램을 실행할 때, 청구항 제 23 항 또는 제 24 항에 따른 방법을 수행하는 상기 프로그램 코드를 가진 컴퓨터 프로그램.
KR1020137005274A 2010-08-03 2010-08-03 비트열 생성기 KR101402392B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2010/061310 WO2012016588A1 (en) 2010-08-03 2010-08-03 Bit sequence generator

Publications (2)

Publication Number Publication Date
KR20130060275A true KR20130060275A (ko) 2013-06-07
KR101402392B1 KR101402392B1 (ko) 2014-06-03

Family

ID=43806849

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137005274A KR101402392B1 (ko) 2010-08-03 2010-08-03 비트열 생성기

Country Status (6)

Country Link
US (1) US9575726B2 (ko)
JP (1) JP2013534336A (ko)
KR (1) KR101402392B1 (ko)
CN (1) CN103098018B (ko)
TW (1) TW201214277A (ko)
WO (1) WO2012016588A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101402392B1 (ko) * 2010-08-03 2014-06-03 어드밴테스트 (싱가포르) 피티이. 엘티디. 비트열 생성기
US8861725B2 (en) * 2012-07-10 2014-10-14 Infineon Technologies Ag Random bit stream generator with enhanced backward secrecy
US9588860B2 (en) * 2013-12-26 2017-03-07 Semtech Canada Corporation Systems and methods for random number generation using a fractional rate clock
CA2972832C (en) * 2013-12-30 2021-10-26 Huawei Technologies Co., Ltd. Polar code rate matching method and apparatus
CN103713880B (zh) * 2014-01-03 2017-02-22 浪潮(北京)电子信息产业有限公司 一种序列生成器及其设计方法
JP6323065B2 (ja) * 2014-02-26 2018-05-16 セイコーエプソン株式会社 マイクロコンピューター及び電子機器
CN103929278B (zh) * 2014-05-14 2017-06-06 中国电子科技集团公司第五十四研究所 一种基于交织器伪随机码的构造方法
US10700888B2 (en) 2018-08-06 2020-06-30 Macom Technology Solutions Holdings, Inc. CMOS quarter-rate multiplexer for high-speed serial links
CN111414149B (zh) * 2019-01-04 2022-03-29 瑞昱半导体股份有限公司 背景模型更新的方法与相关装置
RU2717629C1 (ru) * 2019-10-08 2020-03-24 федеральное государственное казенное военное образовательное учреждение высшего образования "Военная академия связи имени Маршала Советского Союза С.М. Буденного" Министерства обороны Российской Федерации Генератор случайной последовательности
CN111694546B (zh) * 2020-06-12 2021-07-06 成都海光集成电路设计有限公司 伪随机二进制序列码生成方法以及装置
US20220066498A1 (en) * 2020-08-31 2022-03-03 Stmicroelectronics International N.V. High throughput linear feedback shift register
US20240160409A1 (en) * 2021-06-25 2024-05-16 Beijing Boe Technology Development Co., Ltd. Method and apparatus for generating random sequences, and device and medium thereof

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69326681T2 (de) * 1993-04-06 2000-02-10 Hewlett Packard Co Verfahren und Apparat zum Erzeugen von linearen Rückführungsschieberegistersequenzen
US5864491A (en) * 1997-11-10 1999-01-26 Telefonaktiebolaget L M Ericsson Apparatus and associated method for generating a pseudo random number
JP3539870B2 (ja) * 1998-07-14 2004-07-07 株式会社日立製作所 乱数生成システム及び乱数生成方法
US7194496B2 (en) * 2003-05-02 2007-03-20 Spirent Communications Of Rockville, Inc. System and method for producing functions for generating pseudo-random bit sequences
US7219113B2 (en) * 2003-09-26 2007-05-15 International Business Machines Corporation Pseudo-random binary sequence checker with automatic synchronization
US7613757B1 (en) * 2006-01-20 2009-11-03 L-3 Communications, Corp. System and method for parallel PN generation
JP4678335B2 (ja) * 2006-05-30 2011-04-27 Fdk株式会社 物理乱数生成装置
JP2009237249A (ja) * 2008-03-27 2009-10-15 Hitachi Displays Ltd 表示装置
WO2010034327A1 (en) 2008-09-24 2010-04-01 Verigy (Singapore) Pte. Ltd. Apparatus and method for emulating a full-rate finite state machine
WO2010034326A1 (en) * 2008-09-24 2010-04-01 Verigy (Singapore) Pte. Ltd. State machine and generator for generating a description of a state machine feedback function
KR101402392B1 (ko) * 2010-08-03 2014-06-03 어드밴테스트 (싱가포르) 피티이. 엘티디. 비트열 생성기

Also Published As

Publication number Publication date
TW201214277A (en) 2012-04-01
CN103098018A (zh) 2013-05-08
WO2012016588A1 (en) 2012-02-09
US9575726B2 (en) 2017-02-21
JP2013534336A (ja) 2013-09-02
CN103098018B (zh) 2015-11-25
KR101402392B1 (ko) 2014-06-03
US20150268933A1 (en) 2015-09-24

Similar Documents

Publication Publication Date Title
KR101402392B1 (ko) 비트열 생성기
US8880574B2 (en) State machine and generator for generating a description of a state machine feedback function
JP3022439B2 (ja) 擬似乱数発生方法および装置
TW201636829A (zh) 具有改進的排程效率之密碼編譯雜湊電路
US9166795B2 (en) Device and method for forming a signature
US20080320066A1 (en) Cryptographic random number generator using finite field operations
US9619206B2 (en) Pseudo-random bit sequence generator
Sandoval-Ruiz VHDL optimized model of a multiplier in finite fields
KR100478974B1 (ko) 직렬 유한체 승산기
RU2427885C1 (ru) Быстродействующий генератор случайных перестановок и сочетаний
US11907684B2 (en) High clock-efficiency random number generation system and method
JP2009124499A (ja) ランダムエラー発生装置、m系列発生回路及びその設計方法
RU154062U1 (ru) Устройство для перебора перестановок
JP4436830B2 (ja) 構成可能なマルチステップ線形フィードバックシフトレジスタ
US20230273772A1 (en) High clock-efficiency random number generation system and method
CN116382634B (zh) 伪随机码生成电路、方法
US7502814B2 (en) Device and method for generating a pseudorandom sequence of numbers
Sekhar et al. An Efficient Pseudo Random Number Generator for Cryptographic Applications
MADHUPAVANI et al. Design of Random Number Generation Using 256 Bit LFSR in FPGA
Provost et al. Implementation and error performance evaluation of an iterative decoding algorithm
Mishra et al. ADVANCE PARALLEL LFSR FOR CRYPTOGRAPHY
JP2000151367A (ja) 符号系列生成器
CN110633070A (zh) 伪随机数发生器及伪随机数生成方法
Rawate et al. Optimization of FPGA Architecture for Uniform Random Number Generator using LUT-SR Family
Kumari et al. Efficiency improvement in RNG using a simplified algorithm

Legal Events

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

Payment date: 20170427

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180425

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190425

Year of fee payment: 6