(57)【要約】【課題】ランダム性の高い乱数生成回路を提供する。【解決手段】本発明の乱数生成回路は、第１インバータ及び第２インバータと、閉じた時に、第１インバータ及び第２インバータをメタステーブル状態に設定し、開いた時に、第１インバータ及び第２インバータをメタステーブル状態から解放して双安定ランダム状態に移行するように構成されたスイッチと、スイッチを交互に開閉するように構成され、双安定ランダム状態にある時、第１インバータ及び第２インバータの少なくとも１つから複数のランダム値を出力させるように構成された論理回路と、を備える。【選択図】図１
2020119562.tif 000002
【特許請求の範囲】
【請求項１】
第１入力および第１出力を有する第１インバータ、及び第２入力および第２出力を有する第２インバータであって、前記第１出力は前記第２入力に供給され、前記第２出力は前記第２入力に供給された第１インバータ及び第２インバータと、
閉じた時に、前記第１出力を前記第１入力に、前記第２出力を前記第２入力にそれぞれ短絡させることにより、前記第１インバータ及び前記第２インバータをメタステーブル状態に設定し、開いた時に、前記第１インバータ及び前記第２インバータを前記メタステーブル状態から解放して双安定ランダム状態に移行するように構成されたスイッチと、
前記スイッチを交互に開閉するように構成され、前記双安定ランダム状態にある時、前記第１インバータ及び前記第２インバータの少なくとも１つから複数のランダム値を出力させるように構成された論理回路と、
を備えることを特徴とする乱数生成回路。
【請求項２】
前記論理回路は、クロック信号を前記スイッチに印加することにより前記スイッチを交互に開閉するように構成される請求項１に記載の乱数生成回路。
【請求項３】
前記論理回路は、ノイズ信号を前記スイッチに印加するように構成される請求項１に記載の乱数生成回路。
【請求項４】
前記論理回路は、前記複数のランダム値を蓄積することにより、前記複数のランダム値のランダム性を高めるように構成される請求項１に記載の乱数生成回路。
【請求項５】
機能的入力信号を受信し、機能的出力信号を出力する機能フリップフロップと、
前記複数のランダム値が前記機能的出力信号の値と時間インターリーブされた出力信号を生成するマルチプレクサーと、
をさらに備える請求項１に記載の乱数生成回路。
【請求項６】
前記スイッチ、前記第１インバータ、及び前記第２インバータは、乱数生成ステージを形成し、
前記スイッチとインバータのペアを有する少なくとも１つの追加の乱数生成ステージを含み、
前記論理回路は、前記乱数生成ステージと前記追加の乱数生成ステージのそれぞれの出力をＸＯＲ演算により、前記複数のランダム値のランダム性を高めるように構成される請求項１に記載の乱数生成回路。
【請求項７】
前記スイッチ、前記第１インバータ、及び前記第２インバータは、乱数生成ステージを形成し、
前記スイッチとインバータのペアを有する少なくとも１つの追加の乱数生成ステージを含み、
前記論理回路は、前記追加の乱数生成ステージによって生成された前記複数のランダム値に基づいて、前記乱数生成ステージの前記スイッチを交互に開閉するように構成される請求項１に記載の乱数生成回路。
【請求項８】
前記スイッチ、前記第１インバータ、及び前記第２インバータは、乱数生成ステージを形成し、
前記スイッチとインバータのペアを有する少なくとも１つの追加の乱数生成ステージを含み、
前記論理回路は、ノイズ信号を生成するように構成された発振器と、
前記ノイズ信号によって駆動され、複数のインバータ又はバッファステージを有し、前記複数のインバータまたは前記バッファステージの出力信号が、外部ノイズとして前記乱数生成ステージ及び前記少なくとも１つの追加の乱数生成ステージに印加されるインバータチェーン又はバッファステージチェーンと、
を含む請求項１に記載の乱数生成回路。
【請求項９】
前記スイッチ、前記第１インバータ、及び前記第２インバータは、乱数生成ステージを形成し、
前記スイッチとインバータのペアを有する少なくとも１つの追加の乱数生成ステージを含み、
前記論理回路は、複数の遅延素子を有し且つクロック信号のレプリカを生成する遅延素子チェーンを備え、
前記遅延素子の出力信号は、前記乱数生成ステージ及び前記少なくとも１つの追加の乱数生成ステージの前記スイッチに印加される請求項１に記載の乱数生成回路。
【請求項１０】
前記論理回路は、前記第１インバータ及び前記第２インバータの第１出力信号及び第２出力信号の少なくとも１つからセルフジッタクロック信号を導出し、当該セルフジッタクロック信号を使用して前記スイッチを交互に開閉するように構成される請求項１に記載の乱数生成回路。
【請求項１１】
前記論理回路は、
前記第１インバータ及び前記第２インバータの前記出力信号の少なくとも１つが、第１論理値を表す電圧から所定距離未満の場合、前記セルフジッタクロック信号を前記第１論理値に設定することと、
前記第１インバータ及び前記第２インバータの前記出力信号の両方が、前記第１論理値を表す電圧から前記所定距離よりも大きい場合、前記セルフジッタクロック信号を第２論理値に設定することと、によって、
前記セルフジッタクロック信号を導出するように構成される請求項１０に記載の乱数生成回路。
【請求項１２】
第１入力および第１出力を有する第１インバータ、及び第２入力および第２出力を有する第２インバータであって、前記第１出力は前記第２入力に供給され、前記第２出力は前記第２入力に供給された第１インバータ及び第２インバータを動作させるステップと、
閉じた時に、前記第１出力を前記第１入力に、前記第２出力を前記第２入力にそれぞれ短絡させることにより、前記第１インバータ及び前記第２インバータをメタステーブル状態に設定し、開いた時に、前記第１インバータ及び前記第２インバータを前記メタステーブル状態から解放して双安定ランダム状態にするように構成されたスイッチを交互に開閉させるステップと、
前記双安定ランダム状態にある時、前記第１インバータ及び前記第２インバータの少なくとも１つから複数のランダム値を出力させるステップと、
を含む乱数生成方法。
【請求項１３】
前記スイッチを交互に開閉させるステップは、クロック信号を前記スイッチに印加することをさらに含む請求項１２に記載の乱数生成方法。
【請求項１４】
ノイズ信号を前記スイッチに印加することをさらに含む請求項１２に記載の乱数生成方法。
【請求項１５】
前記複数のランダム値を蓄積することにより、前記複数のランダム値のランダム性を高めることをさらに含む請求項１２に記載の乱数生成方法。
【請求項１６】
機能フリップフロップを使用して、機能的入力信号を受信し、機能的出力信号を出力することと、
マルチプレクサーを使用して、前記複数のランダム値が前記機能的出力信号の値と時間インターリーブされた出力信号を生成することと、
をさらに含む請求項１２に記載の乱数生成方法。
【請求項１７】
前記スイッチ、前記第１インバータ、及び前記第２インバータは、乱数生成ステージを形成し、
前記乱数生成ステージと追加の乱数生成ステージのそれぞれの出力をＸＯＲ演算により、前記複数のランダム値のランダム性を高めることをさらに含み、
前記追加の乱数生成ステージは、スイッチとインバータのペアを有する請求項１２に記載の乱数生成方法。
【請求項１８】
前記スイッチ、前記第１インバータ、及び前記第２インバータは、乱数生成ステージを形成し、
追加の乱数生成ステージによって生成された複数のランダム値に基づいて、前記乱数生成ステージの前記スイッチを交互に開閉することをさらに含み、
前記追加の乱数生成ステージは、スイッチとインバータのペアを有する請求項１２に記載の乱数生成方法。
【請求項１９】
前記スイッチ、前記第１インバータ、及び前記第２インバータは、乱数生成ステージを形成し、
ノイズ信号を生成することと、
前記ノイズ信号を使用してインバータチェーン又はバッファステージチェーンを駆動して、前記インバータチェーン又は前記バッファステージチェーンが有する複数のインバータまたは複数のバッファステージの出力信号を、外部ノイズとして前記乱数生成ステージ及び前記追加の乱数生成ステージに印加することと、をさらに含み、
前記追加の乱数生成ステージは、スイッチとインバータのペアを有する請求項１２に記載の乱数生成方法。
【請求項２０】
前記スイッチ、前記第１インバータ、及び前記第２インバータは、乱数生成ステージを形成し、
遅延素子チェーンを使用して、クロック信号のレプリカを生成することと、
前記遅延素子チェーンが有する複数の遅延素子の出力信号を、前記乱数生成ステージ及び前記追加の乱数生成ステージのスイッチに印加すること、をさらに含み、
前記追加の乱数生成ステージは、スイッチとインバータのペアを有する請求項１２に記載の乱数生成方法。
【請求項２１】
前記スイッチを交互に開閉させるステップには、前記第１インバータ及び前記第２インバータの前記第１出力信号及び前記第２出力信号の少なくとも１つからセルフジッタクロック信号を導出し、当該セルフジッタクロック信号を使用して前記スイッチを交互に開閉することを含む請求項１２に記載の乱数生成方法。
【請求項２２】
前記セルフジッタクロック信号を導出するステップは、
前記第１インバータ及び前記第２インバータの前記出力信号の少なくとも１つが、第１論理値を表す電圧から所定距離未満の場合、前記セルフジッタクロック信号を前記第１論理値に設定することと、
前記第１インバータ及び前記第２インバータの前記出力信号の両方が、前記第１論理値を表す電圧から前記所定距離よりも大きい場合、前記セルフジッタクロック信号を第２論理値に設定することと、
をさらに含む請求項２１に記載の乱数生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乱数生成回路及び乱数生成方法に関し、特に、短絡バックツーバックインバータ（ｂａｃｋ−ｔｏ−ｂａｃｋ  ｉｎｖｅｒｔｅｒｓ）に基づく乱数生成回路及び乱数生成方法に関する。
【背景技術】
【０００２】
乱数生成のためのさまざまな回路および技術が知られている。一部のＲＮＧ（ＲＮＧ）は、メタスタビリティに基づいており、例えば、電子コンポーネントをメタステーブル状態に設定する。一例として、Ｂａｒａｎｇｉ氏らは、２０１６年１月第５２期第１号の「ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎ  ｏｎ  Ｍａｇｎｅｔｉｃｓ」誌に掲載された「高速でエネルギーリミテッドされたアプリケーション向けのストレイントロニクスに基づいた真性ＲＮＧ」（Ｓｔｒａｉｎｔｒｏｎｉｃｓ−Ｂａｓｅｄ  Ｔｒｕｅ  Ｒａｎｄｏｍ  Ｎｕｍｂｅｒ  Ｇｅｎｅｒａｔｏｒ  ｆｏｒ  Ｈｉｇｈ−Ｓｐｅｅｄ  ａｎｄ  Ｅｎｅｒｇｙ−Ｌｉｍｉｔｅｄ  Ａｐｐｌｉｃａｔｉｏｎｓ）において、メタスタスタビリティに基づいたＲＮＧについて説明している。
また、Ｓｒｉｎｉｖａｓａｎ氏らは、２０１０年７月第５２期第１号の「ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  ＶＬＳＩ  Ｃｉｒｃｕｉｔｓ  （ＶＬＳＩＣ）」誌に掲載された「４５ｎｍ  ＣＭＯＳ内の２．４ＧＨｚ  ７ｍＷ全デジタルＰＶＴ変動耐性を有する真性ＲＮＧ」（２．４ＧＨｚ  ７ｍＷ  ａｌｌ−ｄｉｇｉｔａｌ  ＰＶＴ−ｖａｒｉａｔｉｏｎ  ｔｏｌｅｒａｎｔ  Ｔｒｕｅ  Ｒａｎｄｏｍ  Ｎｕｍｂｅｒ  Ｇｅｎｅｒａｔｏｒ  ｉｎ  ４５ｎｍ  ＣＭＯＳ）において、自己校正フィードバックループ機能を有する２段階の粗粒子調整／微粒子調整を使用するＲＮＧ（ａ  ＲＮＧ  ｔｈａｔ  ｕｓｅｓ  ｔｗｏ−ｓｔｅｐ  ｃｏａｒｓｅ／ｆｉｎｅ−ｇｒａｉｎｅｄ  ｔｕｎｉｎｇ）について説明している。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】２０１６年１月第５２期第１号の「ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎ  ｏｎ  Ｍａｇｎｅｔｉｃｓ」誌に掲載された「高速でエネルギーリミテッドされたアプリケーション向けのストレイントロニクスに基づいた真性ＲＮＧ」
【非特許文献２】２０１０年７月第５２期第１号の「ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  ＶＬＳＩ  Ｃｉｒｃｕｉｔｓ  （ＶＬＳＩＣ）」誌に掲載された「４５ｎｍ  ＣＭＯＳ内の２．４ＧＨｚ  ７ｍＷ全デジタルＰＶＴ変動耐性を有する真性ＲＮＧ」（
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、ランダム性の高い乱数生成回路及び乱数生成方法を提供することにある。
【課題を解決するための手段】
【０００５】
本発明の実施例にかかる乱数生成回路は、第１入力および第１出力を有する第１インバータ、及び第２入力および第２出力を有する第２インバータであって、前記第１出力は前記第２入力に供給され、前記第２出力は前記第２入力に供給された第１インバータ及び第２インバータと、閉じた時（ＯＮ）に、前記第１出力を前記第１入力に、前記第２出力を前記第２入力にそれぞれ短絡させることにより、前記第１インバータ及び前記第２インバータをメタステーブル状態に設定し、開いた時（ＯＦＦ）に、前記第１インバータ及び前記第２インバータを前記メタステーブル状態から解放して双安定ランダム状態（ａ  ｂｉ−ｓｔａｂｌｅ  ｒａｎｄｏｍ  ｓｔａｔｅ）に移行するように構成されたスイッチと、前記スイッチを交互に開閉するように構成され、前記双安定ランダム状態にある時、前記第１インバータ及び前記第２インバータの少なくとも１つから複数のランダム値を出力させるように構成された論理回路と、を備える。
【０００６】
また、本発明のいくつかの実施形態に係る乱数生成回路において、前記論理回路は、クロック信号を前記スイッチに印加することにより前記スイッチを交互に開閉するように構成される。また、本発明のいくつかの実施形態に係る乱数生成回路において、前記論理回路は、ノイズ信号を前記スイッチに印加するように構成される。また、本発明の一実施形態に係る乱数生成回路において、前記論理回路は、前記複数のランダム値を蓄積することにより、前記複数のランダム値のランダム性（ｒａｎｄｏｍｎｅｓｓ）を高めるように構成される。
【０００７】
また、本発明の一実施形態に係る乱数生成回路は、機能的入力信号を受信し、機能的出力信号を出力する機能フリップフロップと、前記複数のランダム値が前記機能的出力信号の値と時間インターリーブ（ｔｉｍｅ−ｉｎｔｅｒｌｅａｖｅｄ）された出力信号を生成するマルチプレクサー（ＭＵＸ）と、をさらに備える。
【０００８】
また、本発明の一実施形態に係る乱数生成回路において、前記スイッチ、前記第１インバータ、及び前記第２インバータは、乱数生成ステージ（ＲＮＧ  ｓｔａｇｅ）を形成し、前記乱数生成回路は、前記スイッチとインバータのペアを有する少なくとも１つの追加の乱数生成ステージを含み、前記論理回路は、前記乱数生成ステージと前記追加の乱数生成ステージのそれぞれの出力をＸＯＲ演算により、前記複数のランダム値のランダム性を高めるように構成されている。
【０００９】
また、本発明の一実施形態に係る乱数生成回路において、前記スイッチ、前記第１インバータ、及び前記第２インバータは、乱数生成ステージを形成し、前記乱数生成回路は、前記スイッチとインバータのペアを有する少なくとも１つの追加の乱数生成ステージを含み、前記論理回路は、前記追加の乱数生成ステージによって生成された前記複数のランダム値に基づいて、前記乱数生成ステージの前記スイッチを交互に開閉するように構成されている。
【００１０】
また、本発明の一実施形態に係る乱数生成回路において、前記スイッチ、前記第１インバータ、及び前記第２インバータは、乱数生成ステージを形成し、前記乱数生成回路は、前記スイッチとインバータのペアを有する少なくとも１つの追加の乱数生成ステージを含み、前記論理回路は、ノイズ信号を生成するように構成された発振器と、前記ノイズ信号によって駆動され、複数のインバータ又はバッファステージを有し、前記複数のインバータまたは前記バッファステージの出力信号が、外部ノイズとして前記乱数生成ステージ及び前記少なくとも１つの追加の乱数生成ステージに印加されるインバータ又はバッファステージチェーン（ａ  ｃｈａｉｎ  ｏｆ  ｉｎｖｅｒｔｅｒ  ｏｒ  ｂｕｆｆｅｒ  ｓｔａｇｅｓ）と、を含む。
【００１１】
また、本発明の一実施形態に係る乱数生成回路において、前記スイッチ、前記第１インバータ、及び前記第２インバータは、乱数生成ステージを形成し、前記乱数生成回路は、前記スイッチとインバータのペアを有する少なくとも１つの追加の乱数生成ステージを含み、前記論理回路は、複数の遅延素子を有し且つクロック信号のレプリカを生成する遅延素子チェーンを備え、前記遅延素子の出力信号は、前記乱数生成ステージ及び前記少なくとも１つの追加の乱数生成ステージの前記スイッチに印加される。
【００１２】
また、本発明の一実施形態に係る乱数生成回路において、前記論理回路は、前記第１インバータ及び前記第２インバータの第１出力信号及び第２出力信号の少なくとも１つからセルフジッタクロック信号（ａ  ｓｅｌｆ−ｊｉｔｔｅｒｉｎｇ  ｃｌｏｃｋ  ｓｉｇｎａｌ）を導出し、当該セルフジッタクロック信号を使用して前記スイッチを交互に開閉するように構成される。また、本発明の一実施形態に係る乱数生成回路において、前記論理回路は、前記第１インバータ及び前記第２インバータの前記出力信号の少なくとも１つが、第１論理値を表す電圧から所定距離未満の場合、前記セルフジッタクロック信号を前記第１論理値に設定することと、前記第１インバータ及び前記第２インバータの前記出力信号の両方が、前記第１論理値を表す電圧から前記所定距離よりも大きい場合、前記セルフジッタクロック信号を第２論理値に設定することによって、前記セルフジッタクロック信号を導出するように構成される。
【００１３】
本発明の実施例にかかる乱数生成方法は、第１入力および第１出力を有する第１インバータ、及び第２入力および第２出力を有する第２インバータであって、前記第１出力は前記第２入力に供給され、前記第２出力は前記第２入力に供給された第１インバータ及び第２インバータを動作させるステップと、閉じた時に、前記第１出力を前記第１入力に、前記第２出力を前記第２入力にそれぞれ短絡させることにより、前記第１インバータ及び前記第２インバータをメタステーブル状態に設定し、開いた時に、前記第１インバータ及び前記第２インバータを前記メタステーブル状態から解放して双安定ランダム状態にするように構成されたスイッチを交互に開閉させるステップと、前記双安定ランダム状態にある時、前記第１インバータ及び前記第２インバータの少なくとも１つから複数のランダム値を出力させるステップと、を含む。
【図面の簡単な説明】
【００１４】
【図１】ＦＩＧ１は、本発明の一実施形態に係るＲＮＧ（ＲＮＧ）を概略的に示すブロック図である。
【図２】ＦＩＧ２Ａ〜ＦＩＧ２Ｂは、本発明の実施形態に係る後段処理機能を有するＲＮＧを概略的に示すブロック図である。
【図３】ＦＩＧ３は、本発明の一実施形態に係る、機能フリップフロップと統合されたＲＮＧを概略的に示すブロック図である。
【図４】ＦＩＧ４Ａ〜ＦＩＧ４Ｂは、本発明の実施形態に係る、パラレル排他的論理和演算された（ｐａｒａｌｌｅｌ  ＸＯＲｅｄ）乱数生成ステージを含むＲＮＧを概略的に示すブロック図である。
【図５】ＦＩＧ５Ａ〜ＦＩＧ５Ｂは、本発明の実施形態に係る、カスケードされた乱数生成ステージを含むＲＮＧを概略的に示すブロック図。
【図６】ＦＩＧ６は、本発明の一実施形態に係るランダム性が強化されたＲＮＧを概略的に示すブロック図である。
【図７】ＦＩＧ７は、本発明の一実施形態に係る駆動強度較正（ｄｒｉｖｅ  ｓｔｒｅｎｇｔｈ  ｃａｌｉｂｒａｔｉｏｎ）機能を有するＲＮＧを概略的に示すブロック図である。
【図８】ＦＩＧ８は、本発明の一実施形態に係る、シフトレジスタ（ｓｈｉｆｔ  ｒｅｇｉｓｔｅｒ）を用いた駆動強度較正機能を有するＲＮＧを概略的に示すブロック図である。
【図９】ＦＩＧ９は、本発明の実施形態に係る、セルフジッタクロック信号を有すＲＮＧを概略的に示すブロック図である。
【図１０】ＦＩＧ１０は、本発明の実施形態に係る、セルフジッタクロック信号を有すＲＮＧを概略的に示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明について、図に示す実施形態に基づいて説明する。
【００１６】
本明細書で説明される本発明の実施形態は、乱数生成のための改善された方法および回路を提供する。本明細書で開示されているＲＮＧは、例えば暗号操作を実行するシステムや乱数を使用する他のアプリケーションで使用できる。また、本書で説明するＲＮＧは、小型且つ高速で、拡張性があるため、高速乱数（ｈｉｇｈ  ｒａｔｅ  ｏｆ  ｒａｎｄｏｍ  ｎｕｍｂｅｒｓ）を必要とする低コストで低消費電流のシステムにとって特に魅力的である。
【００１７】
いくつかの開示された実施形態において、乱数生成回路は、バックツーバック方式で接続されたインバータのペア（ＮＯＴゲート）を含。即ち、各インバータの入力は他のインバータの出力に接続されている。インバータのペアーの間にスイッチが接続されている。スイッチが閉じられた時（ＯＮ）に、インバータはメタステーブル状態になり、その出力が、論理「０」を表す電圧と論理「１」を表す電圧との間にある電圧範囲内でドリフトするか、又はワンダリング（ふらつく）するようになる。一方、スイッチを開いた時（ＯＦＦ）に、インバータがメタステーブル状態から解放されて双安定状態に移行されるようになる。
【００１８】
双安定状態に移行されると、一方のインバータの出力が論理「１」で安定し、もう一方のインバータの出力が論理「０」で安定する。ただし、どのインバータが論理「１」を出力し、どのインバータが論理０」を出力するかの選択はランダムに行われ、スイッチが開けた瞬間のインバーターの出力における瞬時アナログ電圧に依存される。従って、スイッチを開閉するたびに、上記インバータのペアがランダムなバイナリ値を生成する。そして、いずれかのインバータの出力を使用してランダム値を抽出することができる。
【００１９】
また、いくつかの実施形態では、ＲＮＧは、例えばクロック信号を使用してスイッチを交互に開閉する制御ロジックをさらに備え、一体のインバータから生成されたランダム値のシーケンスを出力する。
【００２０】
ここでは、短絡されたバックツーバック式インバータのビルディングブロックに基づく様々ＲＮＧの構成について説明する。いくつかの開示された構成では、論理回路は複数のランダム値を蓄積することによりランダム性を強化することができる。他の開示された構成では、カスケードされたインバータを二対以上含む。さらに他の実施形態では、インバータの出力は、スイッチを切り替えるために使用されるセルフジッター交代信号（ｓｅｌｆ−ｊｉｔｔｅｒｉｎｇ  ａｌｔｅｒｎａｔｅ  ｓｉｇｎａｌ）を導出するために使用される。この乱数生成スキームでは、インバータのメタステーブル状態とスイッチを切り替える交代信号によって生成されたタイムジッタの両方によって導入されたノイズによって、ランダム性を高めることができる。
【００２１】
また、いくつかの実施形態では、ＲＮＧは、より良いランダム性を実現させるために、インバータの駆動強度を較正する較正回路を含む。しかし、実際、多くのアプリケーションでは、短絡方式自体には、インバータ間の不整合を補償する固有の自己校正特性を備えているため、上記ような校正回路は必要ない。
【００２２】
また、本発明に開示された乱数生成スキームは簡単に実現でき、多くのアプリケーションで十分な程度のランダム性を提供できる。このように、本発明に開示された乱数生成回路は簡単であるため、例えば１００Ｍｂｐｓ以上の高速動作を対応できる。
【００２３】
以下、バックツーバック式インバータによる断続的な短絡（ｉｎｔｅｒｍｉｔｔｅｎｔ  ｓｈｏｒｔｉｎｇ）を利用したＲＮＧについて説明する。
【００２４】
図１は、本発明の一実施形態に係るＲＮＧ２０を概略的に示すブロック図である。図１に示すように、ＲＮＧ２０は入力としてアナログノイズを受信し、このノイズを使用して出力としてランダムビットのシーケンスを生成する。また、上記ノイズは、例えば、抵抗器全体の熱ノイズ、宇宙線や電磁放射、既存のデジタルやアナログ回路の動作、又はリング発振器などのノイズ発生器回路によるノイズなど、如何なる適切なノイズ源からのもので有り得る。また、上記ノイズは、適切なハイパスフィルターによるフィルター処理で、後続のノイズサンプル間の相関性を減らすことができる。
【００２５】
本実施例では、ＲＮＧ２０は、アナログノイズからランダムビットを生成するサンプリング回路２４と、ランダムビットのランダム性を高める後段処理回路２８と、を含む。別の実施形態では、後段処理回路２８を省略してもよい。その場合、サンプリング回路２４によって生成された出力ビットはＲＮＧ２０の出力として機能する。
【００２６】
サンプリング回路２４は、インバータのペア（論理ＮＯＴゲート）３２Ａ、３２Ｂを含む。この２つのインバータはバックツーバック方式で接続されている。すなわち、インバータ３２Ａの出力はインバータ３２Ｂの入力に供給され、インバータ３２Ｂの出力はインバータ３２Ａの入力に供給される。アナログ入力ノイズは、このバックツーバック接続上の任意の指定ポイントに印加できる。スイッチ３６は、バックツーバック接続されたインバータの間に接続されており、クロック信号ＣＬＫによって駆動される。
【００２７】
いくつかの実施形態では、アナログノイズは適切な回路によって生成される。他の実施形態では、例えば、電磁フィールド、宇宙放射、および／または近くの信号への容量性カップリングを介して、環境から収集される自然ノイズなと、上記アナログノイズとしても十分なり得る。
【００２８】
また、いくつかの実施形態では、論理素子、例えばバッファ又はインバータは、サンプリング回路２４の出力に（例えば、サンプリング回路２４の出力と後段処理回路２８の入力との間のＤＯライン上に）配置される。スイッチ３６が閉じられて論理素子の出力が論理「０」又は論理「１」にある場合、この論理素子を調整することで入力におけるメタステーブル状態を解決できる。具体的には、例えば、非対称のＮＭＯＳ及びＰＭＯＳ属性を持つインバーターを使用して実現できる。
【００２９】
ＦＩＧ１の下部  は、サンプリング回路２４のより詳細な回路実現を具体化したものである。ＦＩＧ１に示すように、インバータ３２Ａは、正の金属酸化物半導体電界効果トランジスタ（ＰＭＯＳＦＥＴ、または簡略してＰＭＯＳ）Ｐ１およびＮＭＯＳＦＥＴ  Ｎ１（簡略してＮＭＯＳ）を使用して実現されている。インバータ入力は、Ｐ１およびＮ１のゲートに適用される。Ｐ１のソースピンは電源電圧ＶＣＣ  に接続され、Ｎ１のソースピンはアースに接続される。Ｐ１のドレーンピンはＮ１のドレーンピンに接続されており、このポイントはインバータ出力としても使用される。インバータ３２Ｂは、ＰＭＯＳ  Ｐ２  と  ＮＭＯＳ  Ｎ２  を使用して同様の方法で実現される。スイッチ３６は、ＦＥＴ（この例では  ＮＭＯＳだが、ＰＭＯＳも構成する場合がある  ）を使用して実現されている。このＦＥＴのゲートは、クロック信号ＣＬＫによって駆動され、そのソースとドレインがインバータのペアを介して接続されている。
【００３０】
現在の例では、クロック信号が高い場合はスイッチ３６が閉じ、クロック信号が低い場合は開いている。スイッチ３６が閉じている場合、インバータは短絡している。つまり、各インバータの出力が入力（および他のインバータの入力および出力）に短絡している。このような場合（クロック高間隔）、インバータ３２Ａと３２Ｂはメタステーブル状態にあり、論理「０」を表す電圧と論理「１」を表す電圧の間にある電圧範囲で出力が変化する。平均すると、各インバータの出力電圧は論理「０」を表す電圧と論理「１」を表す電圧の中間付近になるが、アナログノイズであるために、ある時点での実際の瞬間電圧はランダムに変化することがある。
【００３１】
（現在の例ではクロックＬｏｗに移行している）スイッチを開くと、インバータがメタステーブル状態から双安定状態に解放される。双安定状態に入ると、インバータ３２Ａの出力は、スイッチ３６が開いた時点の瞬間的な電圧値に応じて、双安定でランダム状態（論理「１」または論理「０」）に収束する。インバータ３２Ｂの出力は反対の状態に収束する。２つのインバータは、スイッチ３６が再び閉じるまで（クロック信号ＣＬＫの次の立ち上がりエッジでの現在の例）、これらの安定した出力状態を維持する。
【００３２】
したがって、クロックＬｏｗ間隔ごとに、各インバータの出力はそれぞれのランダムなバイナリ値を提供する。現在の例では、必ずしもそうではないが、ランダムなバイナリ値はインバータ３２Ａ  の出力から取得される。
【００３３】
クロック信号ＣＬＫには任意の適切なクロックレートを使用できる。１つの実施形態では、クロック周波数は２００ＭＨｚの順序である。クロック信号は正確である必要がないため、単純なクロック生成回路（リング・オシレーターなど）を使用して生成することができる。
【００３４】
上記の短絡バックツーバックインバータ方式は、２つのインバータの駆動強度間の不一致を可能にするための内蔵補正を提供する。ＦＩＧ１の下部を参照した場合  、スイッチ３６を開くと、インバータ３２Ａと３２Ｂが収束する状態は、ｄｒｉｖｅ＿ｓｔｒｅｎｇｔｈ（Ｎ１）＋ｄｒｉｖｅ＿ｓｔｒｅｎｇｔｈ（Ｐ２）とｄｒｉｖｅ＿ｓｔｒｅｎｇｔｈ（Ｎ２）＋ｄｒｉｖｅ＿ｓｔｒｅｎｇｔｈ（Ｐ１）の間の競合によって異なる。したがって、例えば、最初の順序の不一致では、ｄｒｉｖｅ＿ｓｔｒｅｎｇｔｈ（Ｎ１）＞ｄｒｉｖｅ＿ｓｔｒｅｎｇｔｈ（Ｎ２）およびｄｒｉｖｅ＿ｓｔｒｅｎｇｔｈ（Ｐ１）＞ｄｒｉｖｅ＿ｓｔｒｅｎｇｔｈ（Ｐ２）が同じ比率で補正される。
【００３５】
そのため、多くのアプリケーションでは、較正なしで達成されたランダム性で十分である。たとえば、発明者が行ったコンピュータシミュレーションでは、インバータ３２Ａと３２Ｂ間の駆動強度が  ５％不一致であってもランダム性が高く、各インバータ内のＰＭＯＳトランジスタとＮＭＯＳトランジスタ間の駆動強度が５０％不一致であることが示されている。シミュレーションでは、公称電圧レベルはＶＤＤ＝１．２Ｖと仮定され、噴射ノイズレベルは±２５ｍＶであった。ただし、必要に応じて、追加の較正回路を追加することもできる。例えば、以下のＦＩＧ７を参照する。
【００３６】
ランダムなバイナリー値のシーケンスは、後段処理回路２８に提供される（クロックサイクルごとに１つ）。ＦＩＧ１において、後段処理回路２８は、入力（Ｄ）、出力（Ｑ）、および反転出力（上にラインを引いたＱ）を持つＤフリップフロップ（Ｄ−ＦＦ）４０で構成されている。反転出力（上にラインを引いたＱ）は入力Ｄに短絡する。ランダムデータ値はＤ−ＦＦのクロック入力（ＣＰ）に適用される。Ｄ−ＦＦ  ４０の出力Ｑは、ＤＯのサンプリングレートよりも低いレートでサンプリングされる。例えば、１／１／４  または１／１６  の係数やその他のフラクションによってサンプリングされる。このようにして、Ｄ−ＦＦ４０はランダムなバイナリ値を蓄積し、生成されたランダムシーケンスのランダム性を向上させる。出力Ｑは回路２８（およびＲＮＧ２０全体）の出力として機能する。
【００３７】
ロジック回路は、スイッチ３６を駆動するクロック信号ＣＬＫにノイズを適用する（例えば、スイッチの実現に使用するＦＥＴのゲートにノイズを適用する）。その結果、ゲートからのノイズが容量性カップリング（スイッチ３６のゲートと他のピンの間）を介してインバータに伝達される可能性がある。さらに、また、あるいは、クロック信号のノイズにより、スイッチを閉じるタイミングと開くタイミングが完全に周期的ではなく、むしろタイムジッタが含まれている。これらの効果は、出力ランダムビットのランダム性のレベルを高めるのに役立ち、また、回路が周囲のコンポーネントのデータトランジションに対してあまり敏感でないようにする。
【００３８】
また、スイッチ３６（ゲートのクロック信号に必ずしも該当しない）にノイズを加える他の形態を使用することもできる。具体例では、リング・オシレータ（リングに接続された奇数のインバータ・ステージで構成）を使用してこのノイズを発生させる。リング・オシレータの各インバータ・ステージは、インバータ３２Ａ、３２Ｂ、またはスイッチ３６に接続されたネットに電気的に（抵抗、コンデンサー、または他のいずれかを介して）結合でき、全体的なノイズに寄与し、非常に高いノイズ・レベルを実現する（インバータ３２Ａおよび３２Ｂのトランジション電圧の順序）。また、スイッチ３６にノイズを適用したり、スイッチ３６を介してノイズを発生させる必要はない。図に示すように、ノイズはインバータに直接適用される場合がある。また、電源ライン、基板、またはその他のソースからノイズが発生することもある。
【００３９】
一部の実施形態では、インバータ３２Ａおよび３２Ｂは、メタステーブル状態でのリーク電流を低減するために、高スレッショルド電圧（ＨＶＴ）インバータとなっている。スイッチ３６は、スイッチング速度を向上させるために、強力な低スレッショルド電圧（ＬＶＴ）ＮＭＯＳで構成される場合もある。
【００４０】
代替ランダム性強化スキーム
【００４１】
ＦＩＧ２ＡとＦＩＧ２Ｂは、現在の発明の代替実施形態に従って、代替後段処理スキームを持つＲＮＧを図示したブロック図である。ＦＩＧ２Ａでは、後段処理はＸＯＲゲート４４およびオプションの遅延素子４８によって実行される。ＦＩＧ２Ｂでは、後段処理はＸＯＲゲート５６とＤ−フリップフロップ５２  によって実行される。フリップフロップ５２はクロック信号でクロックされる。ＸＯＲゲート５６は、フリップフロップ５２のフィードバック・ループ内に配置される。
【００４２】
通常、スイッチ３６とクロックライン遅延は、Ｄ型フリップフロップ５２がＤ型フリップフロップ５２の反転された前の出力ＸＯされたインバータ３２Ｂの出力の双安定状態をサンプリングするように設定される。フリップフロップ５２の前の出力信号の非反転信号を使用したＸＯＲ演算、または線形フィードバック・シフト・レジスター（ＬＦＳＲ）などより高度なフィードバック方式を実行するＸＯＲ演算も適用可能である。
【００４３】
どちらの後段処理方式も、ランダム性を高めるために複数のランダムビット値を蓄積するために使用され、ＦＩＧ  １の後段処理回路２８を置き換えることができる。いずれの方式でも、ランダム性を高めるために、出力はクロック信号ＣＬＫのレートよりも低いレートでサンプリングされることがある。
【００４４】
ＦＩＧ３は、現在の発明の実施形態に応じて、機能フリップフロップ（ＦＦ）と統合されたＲＮＧを図示したブロック図である。この実現では、公開されたＲＮＧスキームは機能フリップフロップ６０と統合されており、場合によってはＦＦゲートの一部を共有する。「機能フリップフロップ」という用語は、このＦＦの入力（Ｄ）および出力（Ｑ）がホストシステムの機能信号であることを意味する。インバータ３２Ａおよび３２Ｂ、スイッチ３６およびＦＦ６０に加えて、この回路はクロック信号ＣＬＫによってクロック駆動されるマルチプレクサ  ＭＵＸ）６４で構成されている。
【００４５】
回路の出力（Ｑｏｕｔと表示）は、時間の関数としてＦＩＧの下部に示されている。ここに示すように、各クロックサイクルはそれぞれ「ＲＮＧ時間間隔」とそれに続く「機能時間間隔」で構成される。ＲＮＧ時間間隔では、ＭＵ  ６４がＲＮＧ出力を選択するため、Ｑｏｕｔの値はランダムになる。機能時間間隔では、ＭＵＸ６４がＦＦ出力を選択するため、Ｑｏｕｔの値は機能ＦＦ６０の出力になる。つまり、  Ｑｏｕｔは、機能出力信号の値とタイムインターリーブされたランダム値で構成される。
【００４６】
ＦＩＧ３の回路は、たとえば、ホストシステムでのＤＰＡ（電力差分解析）攻撃など、サイドチャネル攻撃を緩和する場合に役立つ。機能データとランダムデータを多重化して攻撃を緩和するその他の側面については、２０１８年１１月１８日に提出された米国特許申請１６／１９４，３４２で取り上げられ、「小規模オーバーヘッドのランダム事前課金を使用したサイドチャネル攻撃の緩和」というタイトルで現在の特許申請の担当者に割り当てられ、ここでの開示が参考にして組み込まれている。
【００４７】
ＦＩＧ４ＡとＦＩＧ４Ｂは、現在の発明の実施形態に従って、並列ＸＯＲされた乱数生成ステージで構成される  乱数生成を図示したブロック図である。ＦＩＧに示すように、  乱数生成ステージはＦＩＧ１のサンプリング回路２４に類似している。ＸＯＲゲートは、乱数生成ステージの出力間でＸＯＲ  を実行し、ランダム出力  ＤＯ  を生成する。ＦＩＧ４Ａでは、１つの乱数生成ステージはクロック信号ＣＬＫによってクロックされ、もう１つの乱数生成ステージはクロック信号ＣＬＫの反転によってクロックされる。ＦＩＧ４Ｂ、両方の乱数生成ステージは、クロック信号ＣＬＫの同じ位相でクロックされる。
【００４８】
パラレルＸＯＲ演算スキームは、単一乱数生成ステージのランダム性に比べてランダム性のレベルを高める。ＦＩＧ４ＡとＦＩＧ４Ｂの構成は、例えば、２つの乱数生成ステージを示す。代替実施形態では、任意の適切な数の乱数生成ステージを並行して  ＸＯＲｅｄ  することができる。また、その他の適切な乱数生成ステージ構成（ＦＩＧ２ＢまたはＦＩＧ２Ａ）をＸＯＲｅｄにすることができる。ＦＩＧ１、ＦＩＧ２ＡおよびＦＩＧ２Ｂの累積スキームとの比較では、パラレルＸＯＲ演算ではダウンサンプリングは必要ないが、この利点はハードウェアの二重化に伴うものである。
【００４９】
ＦＩＧ５ＡおよびＦＩＧ５Ｂは、現在の発明の実施形態に応じて、カスケード乱数生成ステージで構成される乱数生成を図示したブロック図である。これらのスキームは、１つの乱数生成ステージのランダム性に比べて、ランダム性のレベルを高めるもう１つの方法を提供する。
【００５０】
これらのカスケード方式では、１つの乱数生成ステージの出力（ＤＯ）が、カスケード内の次の乱数生成ステージのクロック信号（ＣＬＫ）として使用される。ＦＩＧに示すように、各乱数生成ステージはＦＩＧ１のサンプリング回路２４に類似している。ＦＩＧ５Ｂでは、各乱数生成ステージはＦＩＧ２ＡのＲＮＧに類似している。
【００５１】
ＦＩＧ５ＡとＦＩＧ５Ｂの構成は、例えば、２つのカスケード乱数生成ステージを表現する。代替実施形態では、任意の適切な数の乱数生成ステージをカスケードできる。また、その他の適切な  乱数生成ステージ構成（ＦＩＧ２Ｂ）をカスケード接続できる。カスケードされたスキームでも、ハードウェアは複製される。一方、ダウンサンプリングなしでランダム性が向上し、元のクロックレートを維持する。
【００５２】
ＦＩＧ６は、現在の発明の別の実施形態に従って、ランダム性が強化されたＲＮＧ１００を図表化したブロック図である。この設定は、ＲＮＧ出力のランダム性レベルを上げるもう１つの方法である。
【００５３】
現在の例では、ＲＮＧ１００は乱数生成ステージ１０２の多元性で構成されている。任意の数の  乱数生成ステージ１０２を使用できる。各乱数生成ステージ１０２は、上記で説明したように、バックツーバックインバータのペアとスイッチで構成されている。乱数生成ステージは、ＸＯＲ演算（ＦＩＧ４ＡまたはＦＩＧ４Ｂ）または各乱数生成ステージ１０２を後段処理装置２８に接続する。各乱数生成ステージ１０２には、それぞれのスイッチをクロックするクロック入力信号ＣＬＫ、外部ノイズを受信するための「Ａ」入力、およびランダムビットを出力するための「ＤＯ」出力がある。
【００５４】
ＲＮＧ１００はさらに、インバータ１０８のチェーンを駆動するリング・オシレータ  （ＲＯ）１０４で構成されている。各乱数生成ステージ１０２の「Ａ」入力は、容量性カップリングを介してインバータチェーンの選択されたタップに結合される。したがって、各乱数生成ステージ１０２は、外部ノイズとして機能するＲＯ信号の遅延または反転レプリカを受信する。代替実施形態では、ＲＮＧ１００は複数のＲＯｓ１０４で構成され、通常は異なる周波数を持ち、各ＲＯがそれぞれのインバータ１０８  のチェーンを駆動する。インバータに替わり、バッファを使用することもできる。
【００５５】
ＲＮＧ１００は、遅延素子１１６のチェーンを駆動するクロックソース１１２も構成されている。チェーンの各タップは、特定のクロック位相を生成する（φで表示）。各乱数生成ステージ１０２の「ＣＬＫ」入力は、遅延素子のチェーンの選択されたタップに接続される。つまり、選択されたクロック位相によってクロックされる。
【００５６】
ノイズとクロック信号の複製が異なるさまざまな乱数生成ステージのクロックおよび外部ノイズ入力を駆動することで、  乱数生成出力全体のランダム性レベルが向上する。一部の実施形態では、「ＣＬＫ」と「ＲＯ」の１つだけが複数のタップで構成される。ＣＬＫはＲＯに非同期である場合もある。複数のＲＯが実現されている場合、その周波数は非同期である。一部の実施形態では、  ＬＦＳＲの出力からクロックを取得するなど、ＲＯおよびＣＬＫの少なくとも１つが意図的なジッタで実現される。
【００５７】
オプションの駆動強度較正
【００５８】
ＦＩＧ７は、現在の発明の具体化に従って、駆動強度較正を伴うＲＮＧを図示したブロック図である。この例では、ＲＮＧは、上記で説明したように、バックツーバック短絡インバータ３２Ａおよび３２Ｂで構成されている。さらに、ＲＮＧは、インバータにそれぞれ結合された駆動強度較正回路６６のペアで構成されている。
【００５９】
各駆動強度較正回路６６は、フィルタ６８と制御回路７２で構成されている。フィルター６８ローパスは、インバータの出力で電圧をフィルタリングする。フィルターされた出力電圧に基づいて、制御回路７２はインバータの駆動強度を調整する。２つの駆動強度較正回路６６は互いに独立して動作する。
【００６０】
駆動強度較正回路６６の実現例をＦＩＧの下部に示す。この例では、各フィルター６８は抵抗コンデンサ（ＲＣ）フィルターで構成され、各制御回路７２はトランジスタで構成されている。トランジスタはそれぞれのインバータのＮＭＯＳのバイアスを調整し、たとえば、ある時点で、バランスの取れていないＲＮＧサンプルにより、Ｐ１  Ｎ１インバータの平均出力が低下し、結合コンデンサＣの電圧が降下して、Ｎ１ソースピンとグラウンド間の抵抗が大きくなり、「０」を駆動する能力が低下する。「Ｐ１  Ｎ１」インバータの平均電圧が上昇する。逆も同様である。同様に、「Ｐ２  Ｎ２」プロセスでも同じプロセスが発生する。
【００６１】
ＦＩＧ７の例では、インバータ３２Ａと３２Ｂの両方が較正される。別の実施形態では、インバータの１つのみが較正され、その場合は回路６６の１つが省略される。
【００６２】
ＦＩＧ８は、現在の発明の別の実施形態に従って、シフトレジスター７６を使用した駆動強度較正付きＲＮＧを図示したブロック図である。この代替較正スキームでは、シフトレジスター７６はＱ［Ｎ−１：０］と呼ばれるデジタルワードを保持する。このワードは、インバータ３２Ａおよび３２ＢのＮＭＯＳ  トランジスタにそれぞれ適用される較正値を指定する。ＦＩＧの下部に示すように、Ｎ個のトランジスタのスタックが互いに並列に接続され、各インバータのＮＭＯＳに結合されている。各トランジスタのゲートは、そのインバータのコントロールワードのそれぞれのビットによって駆動される。一方のインバータはコントロールワードの値で較正され、もう一方のインバータはこの値の逆で較正される。ＦＩＧ８の例では、インバータ３２Ａと３２Ｂの両方が較正される。別の実施形態では、インバータの１つのみが較正される。
【００６３】
例えばＦＩＧ７またはＦＩＧ８のスキームを使用して駆動強度較正を実行する場合、駆動強度制御はプロセスごとに調整できる。
【００６４】
セルフジッタリングクロック信号を備えたＲＮＧ
【００６５】
ＦＩＧ９は、現在の発明の具体化に従って、セルフジッタクロック信号を持つＲＮＧを図示したブロック図である。この実施形態では、スイッチ３６をトグルさせる交流信号（ＣＬＫ）は、信号トランジション時間にランダムジッタを発生させる方法で、２つのインバータの出力からＲＮＧ内に導出される。
【００６６】
セルフジッタークロック信号は、何らかのシステムクロックでサンプリングされた場合（後段処理後の場合もある）、出力ビットのランダム性を改善するのに役立つ。このシステムクロックのレートがＣＬＫよりもかなり低い場合、ランダム性の改善はさらに大きくなる。セルフジッタークロック信号によって得られるランダム性の改善は、上記の長さで記述された短絡バックツーバックインバータのランダム性に加えて行われる。
【００６７】
ＦＩＧ９のＲＮＧは、上記の実施形態のように、バックツーバックインバータ３２Ａと３２Ｂ、およびスイッチ３６で構成されている。現在の実施形態では、ポイント「Ａ」および「Ｂ」（２つのインバータの瞬間出力電圧）の電圧が、またはゲート８０のそれぞれの入力にフィードバックされる。
【００６８】
ＯＲゲート８０の出力には、ＡＮＤゲート８４の１つの入力が提供され、もう１つの入力はイネーブル信号によって駆動される。およびゲート８４はオプションで、ＲＮＧを選択的に有効または無効にするために使用する。次の説明では、ＥＮＡＢＬＥ信号が「１」であることを前提としている。したがって、ＯＲゲート８０の出力は、ＡＮＤゲート８４の出力にそのまま反映される。ＡＮＤゲート８４の出力は遅延素子８８によって遅延される。遅延素子８８の出力は、スイッチ３６に供給されるＣＬＫ  信号である。遅延素子８８もオプションであり、一部の実施形態では省略できる。
【００６９】
上記の回路は、スイッチ３６をトグルさせる交流クロック信号ＣＬＫを生成する。前述のように、インバータの出力「Ａ」および「Ｂ」は、またはゲート８０の入力にフィードバックされる。ただし、従来のＯＲ  ゲートとは異なり、ＯＲゲート８０では入力が論理「１」として解釈されるのは、その電圧が論理「１」を表す電圧に近い場合だけである。それ以外の場合、つまり、「１」と「０」を表す電圧範囲のほとんどの電圧範囲で、ゲート８０は入力を論理「０」として解釈する。特に、インバータ３２Ａと３２Ｂ  がメタステーブル状態の場合、  ＯＲゲート８０への「Ａ」と「Ｂ」入力は論理「０」として解釈される。
【００７０】
たとえば、論理「０」が０Ｖの電圧で表され、論理「１」が１．２Ｖの電圧で表される場合を考える。従来のＯＲゲートとは異なり、０．６Ｖ未満の電圧は「０」と見なされ、０．６Ｖを超える電圧は「１」と見なされる。または、ゲート８０は、電圧が１Ｖを超える場合は特定の入力を「１」と見なし、それ以外の場合は「０」と見なす。または、他の適切なしきい値を使用することもできる。通常、使用されるしきい値は、「１」を表す電圧と「０」を表す電圧の中間点よりも「１」を表す電圧に近い値である。
【００７１】
スイッチ３６が開くと（ＣＬＫが論理「１」から論理「０」になる）、ポイント「Ａ」と「Ｂ」のいずれかの電圧が任意の電圧から「１」を表す電圧に移行し、もう一方のポイントの電圧が任意の電圧から「０」を表す電圧に移行する。これらのトランジションの持続時間は、スイッチ３６が開いた時点での「Ａ」および「Ｂ」の実際の電圧に応じてランダムに変化する。
【００７２】
ＯＲゲート８０は、入力「Ａ」と「Ｂ」を論理「１」として解釈するのは、入力が「０」と「１」を表す電圧に近づいた場合だけである（中間点を「０」と「１」の間で交差した場合は解釈されない）。したがって、スイッチ３６のオープンからゲート８０の出力までの時間間隔はランダムになる。この時点で、およびゲート８４および遅延素子８８の追加（オプション）遅延後、クロック信号ＣＬＫは「１」になり、スイッチ  ３６は閉じられる。
【００７３】
スイッチ３６が閉じると、ポイント「Ａ」および「Ｂ」（２つのインバータの出力）の電圧がメタステーブル状態になる。またはゲート８０は、これらの電圧を「０」と解釈し、「０」を出力する。およびゲート８４および遅延素子８８の追加（オプション）遅延後、クロック信号ＣＬＫは「０」になり、スイッチ３６  が開く。このプロセスは継続され、前述の説明からもわかるように、スイッチ３６はランダムなタイミングジッタを持つレートでトグルされる。
【００７４】
通常、またはゲート８０は、スイッチ３６が閉じている場合（インバータ３２Ａおよび３２Ｂが短絡している場合）、ＯＲゲートの両方の入力（インバータの断続的なメタステーブル出力）が「０」と確実に解釈されるように設計されているため、ＯＲゲートの出力は「０」で安定している。ＯＲゲートは通常、これらの断続的な値によって過剰なリーク電流が発生しないように実現される。以下に説明するように、ＤＬＹ８８の遅延は、異なる立ち上がり時間と立ち下がり時間の遅延を持つように設計されている場合がある。特に、スイッチ３６を閉じた後、「Ａ」および「Ｂ」がメタステーブル状態になるように遅延を設計することができる。
【００７５】
ＦＩＧ９の下部は、上記の要件を満たしているＯＲゲート８０の実現例を示している。この例では、  ＯＲゲートは、１組の強ＰＭＯＳトランジスタ９２と１組の弱ＮＭＯＳトランジスタ９６を使用して実現されている。ここで、「弱トランジスタ」という用語は、トランジスタの動作を引き起こすために大きなゲート電圧が必要であることを意味する（つまり、入力を「１」と解釈する）。また、その逆も同様である  。
【００７６】
たとえば、弱ＮＭＯＳ  は、チャネル長Ｌまたはチャネル幅Ｗが大きい高スレッショルド電圧（ＨＶＴ）トランジスタ、またはその両方を構成できる。同じトークンを使用すると、強ＰＭＯＳは、例えば、チャネル長Ｌおよび／またはチャネル幅Ｗが大きい低スレッショルド電圧（ＬＶＴ）トランジスタで構成される。追加のシリアル・コンポーネント（抵抗器、トランジスタ、ダイオードなど）を各ＮＭＯＳ９６デバイスのソースとアースの間に挿入できる。この実現によりＮＭＯＳ９６のデバイスによる論理  「１」の認識がさらに弱くなる。この構成では、入力「Ａ」と「Ｂ」の両方が「１」を表す電圧に近い場合にのみ、ゲート８０の出力が「１」になる。
【００７７】
ＦＩＧ９の例では、交流クロック信号ＣＬＫは、上記で説明したように、非従来型またはゲートを使用して、ポイント「Ａ」および「Ｂ」の電圧から得られる。代替実施形態では、ＯＲゲートを同等の特性を持つＮＡＮＤゲートに置き換えることができる。
【００７８】
フィードバック経路の遅延（ゲート８０を介してポイント「Ａ」および「Ｂ」から、ゲート８４を使用している場合はゲート８８、スイッチ３６のゲートまで）は、通常、スイッチ３６の開閉時ポイント「Ａ」および「Ｂ」の電圧が安定するのに十分な大きさである必要がある。一部の実施形態では、閉じたスイッチ３６（「０」から「１」へのＣＬＫ）と開いたスイッチ３６（「１」から「０」へのＣＬＫ）に異なる遅延が適用される。このような非対称遅延は、サイクルタイム（ビットレート）を損なうことなく、スイッチの開閉時の安定化を可能にするのに役立つ。
【００７９】
ＦＩＧ１０は、現在の発明の具体化に従って、セルフジッタクロック信号を持つＲＮＧを図示したブロック図である。乱数生成素子の一部、すなわちインバータ３２Ａおよび３２Ｂ、スイッチ３６、遅延素子８８およびゲート８４は、ＦＩＧ９の乱数生成のものと類似している。しかし、現在の実施形態では、ＦＩＧ９のゲート８０ではなく、ＲＮＧは２つのインバータ１００と１０４、およびＸＮＯＲゲート１０８  （ＮＯＲまたは同等のＸＯＲ＋ＮＯＴを除く）で構成される。インバータ１００および１０４への入力は、両方ともポイント「Ａ」から取得される。（または、両方の入力をポイント「Ｂ」から取得できる）。
【００８０】
ＦＩＧ１０の実施形態では、インバータ１００は、強ＰＭＯＳと弱ＮＭＯＳを使用して実現されている。一方、インバータ１０４は、弱ＰＭＯＳと強ＮＭＯＳを使用して実現されている。インバータ３２Ａと  ３２Ｂが双安定状態の場合、インバータ１００と１０４の出力（ＸＮＯＲゲート１０８の入力）は同じ論理状態（「１」または両方「０」）になる。その結果、ＸＮＯＲゲート１０８の出力は「１」になる。インバータ  ３２Ａと３２Ｂがメタステーブル状態の場合、インバータ１００と１０４の出力（ＸＮＯＲゲート１０８の入力）は反対の論理状態（１つが「１」、もう１つが「０」）になる。その結果、ＸＮＯＲゲート１０８  の出力は「０」になる。
【００８１】
上記の説明からわかるように、インバータ１００および１０４およびＸＮＯＲゲート１０８の動作は、ＦＩＧ９のＯＲゲート８０の動作と論理的に同等である。ＦＩＧ１０とＦＩＧ９との違いは、インバータ３２Ａと３２Ｂの１つ出力だけ（つまり、ポイント「Ａ」またはポイント「Ｂ」だけ）がセルフジッタクロックの生成に使用されることにある。
【００８２】
また、インバータ３２Ａおよび（または）インバータ３２Ｂの出力から交流クロック交互信号ＣＬＫ（ｓｅｌｆ−ｊｉｔｔｅｒｉｎｇ  ａｌｔｅｒｎａｔｉｎｇ  ＣＬＫ  ｓｉｇｎａｌ）を生成する他の適切な回路を使用することもできる。
【００８３】
その他の実施形態およびバリエーション
【００８４】
ＦＩＧ１、２Ａ、２Ｂ、３、４Ａ、４Ｂ、５Ａ、５Ｂ、６〜１０に示すＲＮＧ構成は、概念を明確にするために純粋に示された構成例である。他の実施形態では、他の適切な構成を使用することができる。これらのＦＩＧおよび代替実施形態では、インバータ３２Ａ、３２Ｂ、およびスイッチ３６以外の回路要素を総称して「論理回路」と呼ぶ。その他の可能な機能の中で、ロジック回路はスイッチを交互に閉じて開く（クロック信号を使用するなど）ように構成され、インバータからランダムな値を出力する。ＦＩＧのように実施されている。例えば、ロジック回路はスイッチのトグルに使用される交流信号を生成する。ロジック回路の他の機能は、ランダム性を高めるなど、さまざまな後段処理を構成することができる。
【００８５】
開示されたＲＮＧは、１つまたは複数のディスクリート・コンポーネント、１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）、１つまたは複数のフィールドプログラム可能ゲートアレイ（ＦＰＧＡ）など、適切なハードウェアを使用して実現することができる。
【００８６】
このように、上記の実施形態が例として挙げられており、現在の発明は、特に下文で示され、また、下文で示されているものに限定されていないことが認められる。むしろ、現在の発明の範囲には、上文に説明された様々な特徴および前述の説明を読めばその技術に熟練した人物には想起され、かつ以前の技術では開示されていないそれに関するバリエーションや変更の組み合わせと副組み合わせの両方が含まれる。すべての用語が現在の仕様で明示的または黙示的に行われた定義に矛盾するような仕方でこれらの組み込まれた文書で定義されている限り、現在の仕様の定義のみが考慮されるべき場合を除き、現在の特許申請書に参照して組み込まれた文書は申請書の不可分の一部と考慮されるものとされる。
【符号の説明】
【００８７】
１００、１０４、３２Ａ、３２Ｂ…インバータ
１０２…乱数生成ステージ
１０８…インバータチェーン
１１２…クロックソース
１１６…遅延素子チェーン
２０…ＲＮＧ
２４…サンプリング回路
２８…後段処理回路
３６…スイッチ
４０、５２…Ｄ型フリップフロップ
４４…ＸＯＲゲート
４８、８８…遅延素子
５６…ＸＯＲゲート
６０…機能フリップフロップ
６４…マルチプレクサー（ＭＵＸ）
６６…駆動強度較正回路
６８…フィルター
７２…駆動強度制御回路
７６…シフトレジスタ
８０…ＯＲゲート
８４…ＡＮＤゲート
９２…強ＰＭＯＳ
９６…弱ＰＭＯＳ
ＣＬＫ…クロック信号
【図１】
2020119562.tif 000003
【図２】
2020119562.tif 000004
【図３】
2020119562.tif 000005
【図４】
2020119562.tif 000006
【図５】
2020119562.tif 000007
【図６】
2020119562.tif 000008
【図７】
2020119562.tif 000009
【図８】
2020119562.tif 000010
【図９】
2020119562.tif 000011
【図１０】
2020119562.tif 000012