JP2009193523A - 乱数発生回路、電子機器、およびi/oセルのテスト方法 - Google Patents
乱数発生回路、電子機器、およびi/oセルのテスト方法 Download PDFInfo
- Publication number
- JP2009193523A JP2009193523A JP2008036220A JP2008036220A JP2009193523A JP 2009193523 A JP2009193523 A JP 2009193523A JP 2008036220 A JP2008036220 A JP 2008036220A JP 2008036220 A JP2008036220 A JP 2008036220A JP 2009193523 A JP2009193523 A JP 2009193523A
- Authority
- JP
- Japan
- Prior art keywords
- signal
- circuit
- random number
- generation circuit
- exclusive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Logic Circuits (AREA)
Abstract
【課題】簡単な回路構成で予測不能性の高い乱数を発生させ、かつ回路に備わるI/Oセルのテストにも兼用させることによって、回路規模の拡大を抑制できる。
【解決手段】第1〜第n(nは、3以上の整数)の入力信号IS1〜ISnに基づいて乱数のシードとなるシード出力信号SGOを生成して出力するシード生成回路110と、シード出力信号の信号処理を行う信号処理回路120と、を含む乱数発生回路100であって、シード生成回路110は、第1〜第nの入力信号のうちの少なくとも第j(1≦j≦n)の入力信号ISjの信号レベルが変化した場合に、第1〜第nの入力信号のうちの第jの入力信号以外の入力信号の信号レベルに依存せずその信号レベルが変化するシード出力信号を出力する。
【選択図】 図2
【解決手段】第1〜第n(nは、3以上の整数)の入力信号IS1〜ISnに基づいて乱数のシードとなるシード出力信号SGOを生成して出力するシード生成回路110と、シード出力信号の信号処理を行う信号処理回路120と、を含む乱数発生回路100であって、シード生成回路110は、第1〜第nの入力信号のうちの少なくとも第j(1≦j≦n)の入力信号ISjの信号レベルが変化した場合に、第1〜第nの入力信号のうちの第jの入力信号以外の入力信号の信号レベルに依存せずその信号レベルが変化するシード出力信号を出力する。
【選択図】 図2
Description
本発明は、乱数発生回路、電子機器、およびI/Oセルのテスト方法等に関する。
近年では、情報セキュリティの重要性から、例えば、PC(Personal Computer)等の各端末装置間におけるデータ通信に際して、送信するデータを保護するために、送信側でデータを暗号化してから送信し、受信側で当該暗号化されたデータを受信すると、受信したデータを復号化することが行われている。このような暗号化に使用する鍵として、例えば、乱数発生回路により発生された乱数が使用される。
乱数発生回路により発生させる乱数は、情報セキュリティの強化のために、第三者によって予測不能であることが要求されている。発生乱数の予測不能性を高めるために、乱数の種(シード)をランダムに発生させる乱数発生回路が特許文献1に開示されている。当該乱数発生回路は、CPUから周辺デバイスへの読み出し/書き込み要求信号をカウンタによって計数し、このカウンタにより計数された計数値に基づいて、当該計数値を擬似乱数の種として設定し、この種を用いて擬似乱数を発生させている。
特開2003−99245号公報
しかしながら、情報セキュリティ強化の要請が高まる昨今では、暗号化に使用する鍵として使用される擬似乱数は、さらに予測不能性が大きいことが望ましい。また、当該擬似乱数を生成する乱数発生回路の誤作動や動作不良を未然に防ぐためには、ICチップにテスト回路を内蔵させることが望ましい。ところが、このようなテスト回路を内蔵させると、ICチップの回路が大規模化してしまうという問題がある。
本発明に係る幾つかの態様によれば、簡素な回路構成で予測不能性の高い乱数の発生を可能にする乱数発生回路およびこれを含む電子機器を提供できる。
本発明は、第1〜第n(nは、3以上の整数)の入力信号に基づいて乱数のシードとなるシード出力信号を生成して出力するシード生成回路と、シード出力信号の信号処理を行う信号処理回路と、を含み、シード生成回路は、第1〜第nの入力信号のうちの少なくとも第j(1≦j≦n)の入力信号の信号レベルが変化した場合に、第1〜第nの入力信号のうちの第jの入力信号以外の入力信号の信号レベルに依存せずその信号レベルが変化するシード出力信号を出力する乱数発生回路に関係する。
本発明の乱数発生回路によれば、シード生成回路に入力される複数の入力信号のうちの少なくとも1つの入力信号の信号レベルが変化した場合、他の入力信号の信号レベルに依存せずに、シード出力信号の信号レベルが変化する。このようにすれば、第1〜第nの入力信号のいずれかの変化に基づいて乱数のシード(種)を生成できるため、簡素な構成でシード出力信号の予測不能性を高めることができる。
このとき、本発明では、シード生成回路は、第1の排他的論理和回路と第2の排他的論理和回路を少なくとも含み、第1の排他的論理和回路は、第1〜第nの入力信号のうちの第1の入力信号と第2の入力信号の排他的論理和を演算し、第2の排他的論理和回路は、第1の排他的論理和回路から出力される第1の排他的論理和信号と、第1〜第nの入力信号のうちの第3の入力信号の排他的論理和を演算することとしてもよい。
このような第1、第2の排他的論理和回路を設ければ、シード生成回路に入力される第1〜第3の入力信号のうちの少なくとも1つの入力信号の信号レベルが変化した場合に、他の入力信号の信号レベルに依存せずにシード出力信号の信号レベルが変化するので、簡素な構成でシード出力信号の予測不能性を高めることが出来る。
また、本発明では、シード生成回路は、第1の排他的論理和回路と第2の排他的論理和回路と第3の排他的論理和回路を少なくとも含み、第1の排他的論理和回路は、第1〜第nの入力信号のうちの第1の入力信号と第2の入力信号との排他的論理和を演算し、第2の排他的論理和回路は、第1〜第nの入力信号のうちの第3の入力信号と第4の入力信号との排他的論理和を演算し、第3の排他的論理和回路は、第1の排他的論理和回路から出力される第1の排他的論理和信号と、第2の排他的論理和回路から出力される第2の排他的論理和信号との排他的論理和を演算することとしてもよい。
このような第1、第2、第3の排他的論理和回路を設ければ、シード生成回路に入力される第1〜第4の入力信号のうちの少なくとも1つの入力信号の信号レベルが変化した場合に、他の入力信号の信号レベルに依存せずにシード出力信号の信号レベルを変化させて、乱数のシードを生成することが可能になる。
また、本発明では、信号処理回路は、カスケード接続された複数のラッチ回路を有し、複数のラッチ回路のうちの初段側の第1のラッチ回路のデータ入力端子にシード出力信号が入力され、複数のラッチ回路のうちの第1のラッチ回路の後段側の第2のラッチ回路のデータ入力端子に第1のラッチ回路の出力信号が入力され、複数のラッチ回路の各ラッチ回路のクロック入力端子にクロック信号が入力されることとしてもよい。
このようにすれば、カスケード接続されたラッチ回路によって、シード出力信号のメタステーブル等による異常動作の発生を防止することができる。
また、本発明では、信号処理回路から出力される処理信号に基づいて擬似乱数を生成する擬似乱数生成回路をさらに含み、処理信号は、擬似乱数生成回路のデータ入力端子に入力されることとしてもよい。
このようにすれば、乱数シードの処理信号を擬似乱数生成回路のデータ入力信号として使用することによって、擬似乱数生成回路によって生成する擬似乱数(乱数)の予測不能性を高めることができる。
また、本発明では、信号処理回路から出力される処理信号に基づいて擬似乱数を生成する擬似乱数生成回路をさらに含み、処理信号は、擬似乱数生成回路のクロック入力端子に入力されることとしてもよい。
このようにすれば、乱数シードの処理信号を、擬似乱数生成回路のクロック信号として使用することによって、擬似乱数生成回路によって生成する擬似乱数(乱数)の予測不能性を高めることができる。
また、本発明では、信号処理回路は、ローパスフィルタを有し、ローパスフィルタから出力される処理信号が擬似乱数生成回路のクロック入力端子に入力されることとしてもよい。
このようにすれば、ローパスフィルタを用いてシード出力信号のグリッジを除去することができ、乱数生成回路の誤動作等を防止できる。
また、本発明では、スキャンパスモード信号およびリセット信号を受け、乱数発生回路をリセットする乱数発生回路用リセット信号を出力するリセット回路をさらに含み、擬似乱数生成回路は、カスケード接続された複数のラッチ回路を有し、リセット回路は、スキャンパスモード信号がアクティブである場合には、リセット信号がアクティブ時に乱数発生回路用リセット信号をアクティブにし、スキャンパスモード信号が非アクティブである場合には、リセット信号の信号レベルに依存せずに乱数発生回路用リセット信号を非アクティブにするリセット回路を含むこととしてもよい。
このようにすれば、スキャンパスモード時にリセット信号がアクティブになると、これによりアクティブになった乱数発生回路用リセット信号を用いて疑似乱数生成回路のラッチ回路をリセットでき、適正なスキャンパス動作を実現できる。一方、スキャンパスモード以外の例えば通常動作モードでは、リセット信号がアクティブになっても乱数発生回路用リセット信号はアクティブにならないため、乱数の予測不能性を高めることができる。
また、本発明では、第1〜第nの入力信号は、第1〜第nのI/Oセルからの入力信号であることとしてもよい。
このようにすれば、第1〜第nのI/Oセルから入力される第1〜第nの入力信号を有効活用して、乱数のシードを生成できる。
また、本発明では、シード生成回路が第1〜第nのI/Oセルのテスト用回路として兼用され、シード生成回路で生成された信号が第1〜第nのI/Oセルのテスト出力信号として使用されることとしてもよい。
このようにすれば、シード生成回路で生成された信号を、乱数シードの生成とテスト用信号の双方に兼用できるので、回路規模を縮小できる。
また、本発明では、第1〜第nのI/Oセルとシード生成回路との間に設けられ、スリープモード時に第1〜第nのI/Oセルの第1〜第nの入力信号を所定信号レベルに固定するマスク回路を含むこととしてもよい。
このようにすれば、スリープモード時にシード生成回路が不必要に動作することを防止できる。
また、本発明は、上記のいずれかに記載の乱数発生回路を含む電子機器に関係する。
さらに、本発明は、上記のいずれかに記載の乱数発生回路を使用した第1〜第nのI/Oセルのテスト方法であって、通常動作時には、シード生成回路で生成された信号に基づいて乱数のシードを生成し、テストモード時には、シード生成回路で生成された信号に基づいて第1〜第nのI/Oセルのテストを行うことを特徴とするI/Oセルのテスト方法に関係する。
本発明のI/Oセルのテスト方法によれば、乱数のシードの生成のためにシード生成回路により生成された信号を、テストモード時にI/Oセルのテスト用信号として使用できる。
以下、本発明の好適な実施の形態について詳細に説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
1.乱数発生回路
図1に、本実施形態の乱数発生回路100の構成の概要を示す。なお、本実施形態の乱数発生回路100は、図1の構成に限定されず、その構成要素の一部(例えば、信号処理回路、疑似乱数生成回路)を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
図1に、本実施形態の乱数発生回路100の構成の概要を示す。なお、本実施形態の乱数発生回路100は、図1の構成に限定されず、その構成要素の一部(例えば、信号処理回路、疑似乱数生成回路)を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
乱数発生回路100は、携帯情報端末、センサデバイス、PC、画像処理装置等の電子機器内に設けられ、図1に示すように、バス等の信号通信線を介してCPU150と接続されている。本実施形態では、乱数発生回路100は、シード生成回路110と、信号処理回路120と、擬似乱数生成回路130とを含む。乱数発生回路100は、シード生成回路110で乱数のシード(種、初期値)を生成し、これを擬似乱数生成回路130に入力することで、乱数を発生する。本実施形態では、シード生成回路110と擬似乱数生成回路130との間に、シード出力信号SPOの信号処理を行う信号処理回路120が設けられている。
シード生成回路110は、当該シード生成回路110に入力される複数の入力信号である第1〜第n(nは、3以上の整数)の入力信号IS1〜ISnに基づいて、乱数シードとなるシード出力信号SGOを生成して出力する。第1〜第nの入力信号IS1〜ISnは、例えば、I/Oセルからの入力信号や、乱数発生回路100を含むIC内の各回路からの入力信号などである。
本実施形態では、シード生成回路110は、第1〜第nの入力信号IS1〜ISnのうちの少なくとも第jの入力信号ISj(1≦j≦n)が変化した場合に、当該第jの入力信号ISj以外の入力信号の信号レベルに依存することなく、その信号レベルが変化するシード出力信号SGOを出力する。すなわち、ISj以外の入力信号の信号レベルがHレベルであるかLレベルであるかに依存せずに、その信号レベルが変化するシード出力信号SGOを出力する。このため、入力信号IS1〜ISnのうちの少なくとも1つの入力信号の信号レベルが変化すると、当該変化した入力信号以外の入力信号の信号レベルに依存せずに、シード出力信号SGOの信号レベルが変化する。
信号処理回路120は、シード生成回路110から生成されたシード出力信号SGOを擬似乱数生成回路130に供給する際に、メタステーブル等の異常動作が発生するのを防止するための信号処理をシード出力信号SGOに対して行う。具体的には、信号処理回路120は、当該信号処理として、シード出力信号SGOに発生するグリッジ等を除去する信号処理等を行う。そして、信号処理回路120は、シード出力信号SGOをより安定させた当該信号処理後の処理信号SPOを擬似乱数生成回路130に供給する。
擬似乱数生成回路130は、信号処理回路120からの処理信号SPOに基づいて疑似乱数PNO(乱数)を生成する。具体的には、擬似乱数発生回路130は、信号処理回路120を介してシード生成回路110から出力されたシード出力信号SGOの信号レベルの変化をカウントすることによって、擬似乱数PNOを生成する。なお、擬似乱数生成回路130を特に設けずに、シード生成回路110から出力したシード出力信号SGOを信号処理回路120で信号処理した処理信号SPOを乱数として直接使用することとしてもよい。
本実施形態では、擬似乱数生成回路130で生成された擬似乱数PNOは、所定数(例えば、8ビット)の乱数列が揃うまで、FIFOバッファ140で保持される。そして、FIFOバッファ140に所定数分の擬似乱数PNOが乱数列として揃うと、その乱数列を用いて暗号処理を行う暗号処理部等に、当該乱数列が供給される。なお、乱数列を保存するバッファは、いわゆる先入れ先出し方式のFIFOバッファに限定されない。また、乱数列を保存する必要のない場合には、FIFOバッファ140を特に設けないで、CPUバスから乱数発生回路100に直接アクセスする構成としてもよい。
2.シード生成回路の構成例
2.1.第1の構成例
図2に、本実施形態の乱数発生回路100に備わるシード生成回路の第1の構成例を示す。第1の構成例のシード生成回路111は、第1〜第n(nは、3以上の整数)の入力信号IS1〜ISnに基づいて、乱数シードとなるシード出力信号SGOを生成して出力する。本構成例では、各入力信号IS1〜ISnは、n個のI/OセルC1〜Cnから入力され、各I/OセルC1〜Cnは、信号配線を介してn個のパッド(広義には端子)P1〜Pnと接続されている。なお、I/Oセルは、例えば、入力セルや入出力兼用セルなどである。
2.1.第1の構成例
図2に、本実施形態の乱数発生回路100に備わるシード生成回路の第1の構成例を示す。第1の構成例のシード生成回路111は、第1〜第n(nは、3以上の整数)の入力信号IS1〜ISnに基づいて、乱数シードとなるシード出力信号SGOを生成して出力する。本構成例では、各入力信号IS1〜ISnは、n個のI/OセルC1〜Cnから入力され、各I/OセルC1〜Cnは、信号配線を介してn個のパッド(広義には端子)P1〜Pnと接続されている。なお、I/Oセルは、例えば、入力セルや入出力兼用セルなどである。
第1の構成例のシード生成回路111は、少なくとも2つ以上の排他的論理和回路XOR1、XOR2、XOR3…を備え、具体的には、シード生成回路110に入力される入力信号IS1〜ISnの数nより1個少ない(n−1)個の排他的論理和回路XOR1〜XOR(n−1)が備わる。そして、各排他的論理和回路XOR1〜XOR(n−1)は、図2に示すように、チェーン状に接続されている。
これらの排他的論理和回路XOR1〜XOR(n−1)のうち、第1の排他的論理和回路XOR1は、第1〜第nの入力信号IS1〜ISnのうちの第1の入力信号IS1と第2の入力信号IS2との排他的論理和を演算する(排他的論理和を取る)。第2の排他的論理和回路XOR2は、第1の排他的論理和回路XOR1の出力信号XQ1と、第1〜第nの入力信号IS1〜ISnのうちの第3の入力信号IS3との排他的論理和を演算する。第3の排他的論理和回路XOR3は、第2の排他的論理和回路XOR2の出力信号XQ2と、第1〜第nの入力信号IS1〜ISnのうちの第4の入力信号IS4との排他的論理和を演算する。このように、第1の構成例では、第kの排他的論理和回路XORk(2≦k≦n−1)は、第(k−1)の排他的論理和回路XOR(k−1)の出力信号XQ(k−1)と、第(k+1)の入力信号IS(k+1)との排他的論理和を演算する。
シード生成回路110を上記の構成とすることによって、各I/OセルC1〜Cnからの入力信号IS1〜ISnのうち、例えば、第1の入力信号IS1の信号レベルが変化すると、第2の入力信号IS2の信号レベルに依存することなく(IS2がLレベルであってもHレベルであっても)、第1の排他的論理和回路XOR1の出力信号XQ1の信号レベルが変化する。そして、第1の排他的論理和回路XOR1の出力信号XQ1の信号レベルが変化すると、第3の入力信号IS3の信号レベルに依存することなく(IS3がLレベルであってもHレベルであっても)、第2の排他的論理和回路XOR2の出力信号XQ2の信号レベルが変化する。そして、第2の排他的論理和回路XOR2の出力信号XQ2の信号レベルが変化すると、第4の入力信号IS4の信号レベルに依存することなく、第3の排他的論理和回路XOR3の出力信号XQ3の信号レベルが変化する。このように、第1の構成例では、第(k−1)の排他的論理和回路XOR(k−1)の信号レベルが変化すると、第(k+1)の入力信号IS(k+1)の信号レベルに依存せずに、第kの排他的論理和回路XORkの出力信号XORkの信号レベルが変化する。
仮に、第1の構成例のシード生成回路111に設けられる各排他的論理和回路XOR1〜XOR(n−1)を複数の論理積回路ANDのチェーン接続の構成とすると、第1〜第nの入力信号IS1〜ISnのうちのいずれかの入力信号の信号レベルがLレベル(論理「0」)になると、シード出力信号SGOが強制的にLレベルになってしまう。従って、他の入力信号の信号レベルの変化を、シード出力信号SG0の信号レベルの変化として伝えることができなくなる。また、第1の構成例の各排他的論理和回路XOR1〜XOR(n−1)を複数の論理和回路ORのチェーン接続の構成とすると、第1〜第nの入力信号IS1〜ISnのうちのいずれかの信号レベルがHレベル(論理「1」)になると、シード出力信号SGOが強制的にHレベルになってしまう。従って、他の入力信号の信号レベルの変化を、シード出力信号SG0の信号レベルの変化として伝えることができなくなる。故に、このようなANDチェーンやORチェーンの構成では、シード生成回路のシード出力信号SGOの信号レベルの変化が単調なものとなってしまう。
これに対して、第1の構成例では、各I/OセルC1〜Cnからの入力信号IS1〜ISnの全ての排他的論理和を排他的論理和回路XOR1〜XOR(n−1)で取る。このため、第1〜第nの入力信号IS1〜ISnのうちの少なくとも1つの入力信号の信号レベルが変化すると、当該信号レベルが変化した入力信号以外の入力信号の信号レベルに依存することなく、シード出力信号SGOの信号レベルも変化するようになる。すなわち、各I/OセルC1〜Cnからの入力信号IS1〜ISnの全ての論理計算を排他的論理和回路XOR1〜XOR(n−1)で演算すると、全ての入力信号IS1〜ISnの信号レベルの変化を伝搬できる。換言すると、シード生成回路111のシード出力信号SGOの信号レベルの変化がよりランダムなものとなる。従って、第1の構成例のシード生成回路111は、外部デバイスからの入力信号IS1〜ISnの信号レベルの変化と言う不規則的な変動因子に基づいて、乱数シードを発生させることにより、当該乱数シードが予測不能性の高いものとすることができる。このため、従来のようにクロック信号を発生する発振器等の乱数シードを発生させるようなデバイスを別途設ける必要がなくなり、少ない回路規模で予測不能性の高い乱数を発生できる。
また、第1の構成例では、各I/OセルC1〜Cnから入力される入力信号IS1〜ISnのうちの少なくとも1つの入力信号の信号レベルが変化すると、当該信号レベルが変化した入力信号以外の入力信号の信号レベルに依存することなく、シード出力信号SGOの信号レベルも変化する。換言すると、当該シード出力信号SGOの信号レベルが変化すると、各I/OセルC1〜Cnから入力される入力信号IS1〜ISnのうちの少なくとも1つの信号レベルが変化していることが検出できる。このため、シード生成回路111のシード出力信号SGOの信号レベルの変化を検出することにより、各I/OセルC1〜Cnが正常に機能しているか否かを検出するためのテスト用回路として適用することもできる。換言すると、シード生成回路110を、乱数シード生成用の回路と、I/OセルC1〜Cnのテスト用回路と兼用することが出来るので、回路規模の縮小が可能となる。
さらに、第1の構成例では、第1〜第nの入力信号IS1〜ISnは、第1〜第nのI/OセルC1〜Cnからの入力信号IS1〜ISnであるので、I/Oセルからの入力信号を有効活用して、乱数シードを生成できる。特に、IC内に多数のI/Oセルが設けられる場合には、このI/Oセルの個数に応じて乱数の予測不能性が高まるため、予測不能性の高い乱数シードを生成できる効果が顕著に表れる。また、乱数シード生成のための回路を別個に設ける必要がなく、I/Oセルを有効活用できるため、回路の小規模化も図れる。さらに、乱数シード生成用の信号として、アナログ回路からの信号を用いなくても済むため、例えば、ゲートアレイなどのデジタル回路においても、乱数の生成が可能になる。
2.2.第2の構成例
図3に、本実施形態の乱数発生回路100に備わるシード生成回路の第2の構成例を示す。第2の構成例のシード生成回路112は、第1の構成例と同様に、n個のI/OセルC1〜Cnから入力される第1〜第n(nは、3以上の整数)の入力信号IS1〜ISnに基づいて、乱数シードとなるシード出力信号SGOを生成して出力する。第2の構成例のシード生成回路112は、少なくとも3つ以上の排他的論理和回路XOR1、XOR2、XOR3…を備え、具体的には、シード生成回路112に入力される入力信号IS1〜ISnの数nより1個少ない(n−1)個の排他的論理和回路XOR1〜XOR(n−1)が備わる。そして、第2の構成例では、各排他的論理和回路XOR1〜XOR(n−1)は、図3に示すように、ツリー状に接続されている。
図3に、本実施形態の乱数発生回路100に備わるシード生成回路の第2の構成例を示す。第2の構成例のシード生成回路112は、第1の構成例と同様に、n個のI/OセルC1〜Cnから入力される第1〜第n(nは、3以上の整数)の入力信号IS1〜ISnに基づいて、乱数シードとなるシード出力信号SGOを生成して出力する。第2の構成例のシード生成回路112は、少なくとも3つ以上の排他的論理和回路XOR1、XOR2、XOR3…を備え、具体的には、シード生成回路112に入力される入力信号IS1〜ISnの数nより1個少ない(n−1)個の排他的論理和回路XOR1〜XOR(n−1)が備わる。そして、第2の構成例では、各排他的論理和回路XOR1〜XOR(n−1)は、図3に示すように、ツリー状に接続されている。
第2の構成例では、これらの排他的論理和回路XOR1〜XOR(n−1)のうち、第1の排他的論理和回路XOR1は、第1〜第nの入力信号IS1〜ISnのうちの第1の入力信号IS1と第2の入力信号IS2との排他的論理和を演算する。第2の排他的論理和回路XOR2は、第1〜第nの入力信号IS1〜ISnのうちの第3の入力信号IS3と第4の入力信号IS4との排他的論理和を演算する。第3の排他的論理和回路XOR3は、第1の排他的論理和回路XOR1から出力される第1の排他的論理和信号XQ1と、第2の排他的論理和回路XOR2から出力される第2の排他的論理和信号XQ2との排他的論理和を演算する。このように、第2の構成例では、シード生成回路112は、入力段側の排他的論理和回路XOR1、XOR2は、第1〜第nの入力信号IS1〜ISnのうちの異なる2つの入力信号IS1、IS2(IS3、IS4)の排他的論理和を演算する。そして、入力段側の排他的論理和回路XOR1、XOR2から出力される排他的論理和回路信号XQ1、XQ2の排他的論理和を当該排他的論理和回路XOR1、XOR2の後段側の第3の排他的論理和回路XOR3が演算する。
このため、第1の構成例と同様に、第2の構成例のシード生成回路112は、外部デバイスからの入力信号IS1〜ISnの信号レベルの変化と言う不規則的な変動因子に基づいて乱数シードを発生させるので、当該乱数シードの予測不能性を高いものとする。また、第2の構成例は、第1の構成例と同様に、第1〜第nの入力信号IS1〜ISnを第1〜第nのI/OセルC1〜Cnからの出力信号とするので、ゲートアレイなどのデジタル回路においても、シード生成回路112を実現できる。さらに、第1の構成例と同様に、シード出力信号SGOの信号レベルが変化すると、各I/OセルC1〜Cnから入力される入力信号IS1〜ISnのうちの少なくとも1つが変化していることが検出可能なので、I/Oセルのテスト用回路として適用することもできる。
また、第2の構成例では、各排他的論理和回路XOR1〜XOR(n−1)をツリー状に接続しているので、これらをチェーン状に接続している第1の構成例よりも、シード生成回路112の初段から最終段までの段数を減らすことができる。このため、第1の構成例と比べて、少ない信号遅延でシード出力信号SGOの出力が可能となる。
2.3.第3の構成例
図4に、本実施形態の乱数発生回路100に備わるシード生成回路の第3の構成例を示す。第3の構成例のシード生成回路113は、前述した第1および第2の構成例と同様に、第1〜第n(nは、3以上の整数)の入力信号IS1〜ISnに基づいて、乱数シードとなるシード出力信号SGOを生成して出力する。第3の構成例では、第1および第2の構成例と異なり、各入力信号IS1〜ISnの全てがn個のI/OセルC1〜Cnからの入力信号ではなく、一部の入力信号が、IC(LSI)内の他の回路から出力される信号となっている。具体的には、IS1〜ISnの一部の入力信号(図4では、ISD4)がA/D変換器cnvの出力信号となっている。このA/D変換器cnvは、例えば、パッドP4から入力されるアナログの入力信号ISA4をデジタルの信号ISD4に変換する。
図4に、本実施形態の乱数発生回路100に備わるシード生成回路の第3の構成例を示す。第3の構成例のシード生成回路113は、前述した第1および第2の構成例と同様に、第1〜第n(nは、3以上の整数)の入力信号IS1〜ISnに基づいて、乱数シードとなるシード出力信号SGOを生成して出力する。第3の構成例では、第1および第2の構成例と異なり、各入力信号IS1〜ISnの全てがn個のI/OセルC1〜Cnからの入力信号ではなく、一部の入力信号が、IC(LSI)内の他の回路から出力される信号となっている。具体的には、IS1〜ISnの一部の入力信号(図4では、ISD4)がA/D変換器cnvの出力信号となっている。このA/D変換器cnvは、例えば、パッドP4から入力されるアナログの入力信号ISA4をデジタルの信号ISD4に変換する。
第3の構成例のシード生成回路113は、第1および第2の構成例と同様に、少なくとも2つ以上の排他的論理和回路XOR1、XOR2、XOR3…を備え、具体的には、シード生成回路113に入力される入力信号IS1〜ISnの数nより1個少ない(n−1)個の排他的論理和回路XOR1〜XOR(n−1)が備わる。これらの排他的論理和回路XOR1〜XOR(n−1)のうち、第1の排他的論理和回路XOR1は、第1〜第nの入力信号IS1〜ISnのうちの第1の入力信号IS1と第2の入力信号IS2との排他的論理和を演算する。第2の排他的論理和回路XOR2は、第1の排他的論理和回路XOR1の出力信号XQ1と、第1〜第nの入力信号IS1〜ISnのうちの第3の入力信号IS3との排他的論理和を演算する。第3の排他的論理和回路XOR3は、第2の排他的論理和回路XOR2の出力信号XQ2と、他の回路であるA/D変換器cnvから入力される第4の入力信号ISD4との排他的論理和を演算する。このように、第3の構成例では、他の回路からのランダム性のある信号ISD4も乱数シード生成に反映させているので、予測不能性の高いシード出力信号SGO(図4における第3の排他的論理和信号XQ3)を出力できる。
また、シード生成回路113への入力信号IS1〜ISnのうち、I/OセルC1〜C3から入力される第1〜第3の入力信号IS1〜IS3の排他的論理和となる第2の排他的論理和信号XQ2は、テストモード時には、テスト用I/OセルCTおよびテスト用パッドPTを介して、テスト出力信号TSとして外部(テスタ等)に出力される。すなわち、通常動作時に、乱数シードを生成するために第3の排他的論理和回路XOR3に供給される第2の排他的論理和信号XQ2は、テストモード時には、テスト用I/OセルCTを介してテスト用パッドPTに供給される。このように、I/OセルC1〜C3から入力される入力信号IS1〜IS3の排他的論理和となる排他的論理和信号XQ2をテスト用パッドPTに供給することによって、シード生成回路113をI/OセルC1〜C3のテスト用に使用することもできる。すなわち、シード生成回路113が第1〜第3のI/OセルC1〜C3のテスト用回路として兼用され、シード生成回路113で生成された信号XQ2が第1〜第3のI/OセルC1〜C3のテスト出力信号TSとして使用される。このように、シード生成回路113の出力信号が乱数シードの生成とテスト用信号の双方に兼用可能なので、別途テスト用回路を設ける必要が無くなるので、回路規模を縮小できる。
3.信号処理回路
3.1.第1の構成例
図5に、本実施形態の乱数発生回路100に備わる信号処理回路120の第1の構成例を示す。前述したように、信号処理回路120は、シード生成回路110から生成されたシード出力信号SGOを擬似乱数生成回路130に供給する際に、シード出力信号SGOのメタステーブル等による異常動作の発生を防止するために、シード生成回路110と擬似乱数生成回路130との間に設けられる。
3.1.第1の構成例
図5に、本実施形態の乱数発生回路100に備わる信号処理回路120の第1の構成例を示す。前述したように、信号処理回路120は、シード生成回路110から生成されたシード出力信号SGOを擬似乱数生成回路130に供給する際に、シード出力信号SGOのメタステーブル等による異常動作の発生を防止するために、シード生成回路110と擬似乱数生成回路130との間に設けられる。
第1の構成例の信号処理回路121は、カスケード接続された2つのラッチ回路LA1、LA2を有し、2つのラッチ回路のうちの初段側の第1のラッチ回路LA1のデータ入力端子にシード出力信号SGOが入力される。また、これらのラッチ回路LA1、LA2の各クロック入力端子には、クロック信号CLKが入力され、当該ラッチ回路LA1、LA2がクロック信号CLKに同期して動作する。このため、各ラッチ回路LA1、LA2にクロック信号CLKが1パルス入力されると、第1のラッチ回路LA1で保持されているデータが信号出力され、この出力信号LAQが、第1のラッチ回路LA2の後段側の第2のラッチ回路LA2のデータ入力端子に入力される。そして、各ラッチ回路LA1、LA2にクロック信号CLKがさらに1パルス入力されると、第2のラッチ回路LA2で保持されているデータが信号出力され、この出力信号が信号処理回路121から出力される処理信号SPOとなる。このように、各ラッチ回路LA1、LA2のクロック入力端子にクロック信号CLKを入力することによって、シード出力信号SGOをメタステーブル等による異常動作を生じない安定化させた処理信号SPOとして、後続の擬似乱数生成回路130に供給できるようになる。
信号処理回路121から出力される処理信号SPOは、擬似乱数生成回路130のデータ入力端子に供給され、当該擬似乱数生成回路130において、当該処理信号SPOに基づいて擬似乱数が生成される。なお、第1の構成例の信号処理回路121では、処理信号SPOは、擬似乱数生成回路130のデータ入力端子に入力されるが、クロック入力端子に入力させて、クロック信号CLKをランダム性のあるものとして、擬似乱数生成回路130で擬似乱数を生成させてもよい。
このように、信号処理回路120として、2つのラッチ回路LA1、LA2からなるダブルラッチ回路を設けることによって、シード出力信号SGOのメタステーブル等による異常動作の発生を防止する。このため、シード生成回路110から供給されるシード出力信号SGOに基づいて擬似乱数生成回路130で生成される擬似乱数PNOがよりランダム性を有するものとなる。なお、メタステーブル対策として安定した処理信号SPOを出力するには、信号処理回路121には、少なくとも2つ以上のラッチ回路を有していればよく、例えば、3つ以上のラッチ回路を含む構成としても良い。
3.2.第2の構成例
図6に、本実施形態の乱数発生回路100に備わる信号処理回路の第2の構成例を示す。第2の構成例の信号処理回路122は、抵抗RBとコンデンサCBを含むRC型のローパスフィルタ(LPF)である。第2の構成例の信号処理回路122から出力される処理信号SPOは、擬似乱数生成回路130のクロック入力端子に供給され、当該擬似乱数生成回路130において、シード出力信号SGOを信号処理した当該処理信号SPOをランダム性のあるクロック信号CLKとして、擬似乱数が生成される。
図6に、本実施形態の乱数発生回路100に備わる信号処理回路の第2の構成例を示す。第2の構成例の信号処理回路122は、抵抗RBとコンデンサCBを含むRC型のローパスフィルタ(LPF)である。第2の構成例の信号処理回路122から出力される処理信号SPOは、擬似乱数生成回路130のクロック入力端子に供給され、当該擬似乱数生成回路130において、シード出力信号SGOを信号処理した当該処理信号SPOをランダム性のあるクロック信号CLKとして、擬似乱数が生成される。
このように、シード生成回路110と擬似乱数生成回路130との間に、ローパスフィルタの信号処理回路122を設けることにより、クロックに重畳されるグリッジの除去が可能になり、動作異常の発生を防止できる。このため、シード生成回路110において、各入力信号IS1〜ISnの入力動作が極端に速い場合でも、擬似乱数生成回路130でのカウンタ動作が機能しなくなる動作不良を解消できる。また、第2の構成例では、信号処理回路122においてクロック信号CLKで同期を取る必要がないという利点もある。
4.擬似乱数生成回路
4.1.第1の構成例
図7に、本実施形態の乱数発生回路100に備わる擬似乱数生成回路の第1の構成例を示す。第1の構成例の擬似乱数生成回路131は、カスケード接続された3つのD型のフリップフロップ回路(ラッチ回路)FFA1、FFA2、FFA3と、2つの排他的論理和回路XOR11、XOR12を備える3ビットのデータを保持できるPN系列の回路である。また、擬似乱数生成回路131では、各フリップフロップ回路FFA1、FFA2、FFA3のデータ入力端子に前段から出力されるデータ信号が入力され、各フリップフロップ回路FFA1、FFA2、FFA3の動作の同期を取るためのクロック信号や、各フリップフロップ回路FFA1、FFA2、FFA3をリセットするリセット信号を共通のものとする。なお、フリップフロップ回路の個数は、3個に限定されず、m個(mは、自然数)のフリップフロップ回路を設ければ、mビットのデータを保持できる擬似乱数生成回路となる。
4.1.第1の構成例
図7に、本実施形態の乱数発生回路100に備わる擬似乱数生成回路の第1の構成例を示す。第1の構成例の擬似乱数生成回路131は、カスケード接続された3つのD型のフリップフロップ回路(ラッチ回路)FFA1、FFA2、FFA3と、2つの排他的論理和回路XOR11、XOR12を備える3ビットのデータを保持できるPN系列の回路である。また、擬似乱数生成回路131では、各フリップフロップ回路FFA1、FFA2、FFA3のデータ入力端子に前段から出力されるデータ信号が入力され、各フリップフロップ回路FFA1、FFA2、FFA3の動作の同期を取るためのクロック信号や、各フリップフロップ回路FFA1、FFA2、FFA3をリセットするリセット信号を共通のものとする。なお、フリップフロップ回路の個数は、3個に限定されず、m個(mは、自然数)のフリップフロップ回路を設ければ、mビットのデータを保持できる擬似乱数生成回路となる。
このような構成の擬似乱数生成回路131では、各フリップフロップ回路FFA1、FFA2、FFA3のクロック入力端子にクロック信号CLKが1パルス入力されると、各フリップフロップ回路FFA1、FFA2、FFA3が保持する1ビット分のデータを後続にシフトするシフトレジスタとして機能する。
すなわち、第1の構成例では、信号処理回路120から出力された処理信号SPOは、擬似乱数生成回路131の入力段側に設けられる入力段側排他的論理和回路XOR12を介して、擬似乱数生成回路131の初段側の第1のフリップフロップ回路FFA1のデータ入力端子に入力される。そして、1ビットのデータを第1のフリップフロップ回路FFA1が保持する。第1のフリップフロップ回路FFA1は、保持している1ビットのデータを後段側の第2のフリップフロップ回路FFA2および帰還用排他的論理和回路XOR11に供給する。そして、第1のフリップフロップ回路FFA1は、所定のクロックに同期させて、帰還用排他的論理和回路XOR11から供給される1ビットのデータを新たに保持し、このデータを第2のフリップフロップ回路FFA2および帰還用排他的論理和回路XOR11に新たに供給する。
第2のフリップフロップ回路FFA2は、保持している1ビットのデータを第3のフリップフロップ回路FFA3に供給する。そして、第2のフリップフロップ回路FFA2は、所定のクロックに同期させて、前段の第1のフリップフロップ回路FFA1から供給される1ビットのデータを新たに保持し、当該新たなデータを後段の第3のフリップフロップ回路FFA3に新たに供給する。
第3のフリップフロップ回路FFA3は、保持している1ビットのデータを帰還用排他的論理和回路XOR11に供給する。そして、第3のフリップフロップ回路FFA3は、所定のクロックに同期させて、前段の第2のフリップフロップ回路FFA2から供給される1ビットのデータを新たに保持し、このデータを帰還用排他的論理和回路XOR11に新たに供給する。
帰還用排他的論理和回路XOR11は、第1のフリップフロップ回路FFA1から供給されるデータと、第3のフリップフロップ回路FFA3から供給されるデータとを用いて排他的論理和演算を行い、演算結果を入力段側排他的論理和回路XOR12に供給する。
入力段側排他的論理和回路XOR12は、信号処理回路120から供給される処理信号SPOと、帰還用排他的論理和回路XOR11の演算結果とを用いて排他的論理和演算を行い、演算結果を第1のフリップフロップ回路FFA1に供給する。
このような第1の構成例の擬似乱数生成回路130では、最終段のフリップフロップ回路FFA3からシリアル出力されるビット列が、疑似乱数PNOとして出力される。
4.2.第2の構成例
図8に、本実施形態の乱数発生回路100に備わる擬似乱数生成回路の第2の構成例を示す。第2の構成例の擬似乱数生成回路132は、3つのD型のフリップフロップ回路(ラッチ回路)FFB1、FFB2、FFB3がカスケード接続されて構成されるシフトレジスタと、1つの帰還用排他的論理和回路XOR13とを備えるPN系列の回路である。
図8に、本実施形態の乱数発生回路100に備わる擬似乱数生成回路の第2の構成例を示す。第2の構成例の擬似乱数生成回路132は、3つのD型のフリップフロップ回路(ラッチ回路)FFB1、FFB2、FFB3がカスケード接続されて構成されるシフトレジスタと、1つの帰還用排他的論理和回路XOR13とを備えるPN系列の回路である。
第2の構成例では、信号処理回路120からの処理信号SPOは、擬似乱数生成回路132の各フリップフロップ回路FFB1、FFB2、FFB3のクロック入力端子に入力される。すなわち、各フリップフロップ回路FFB1、FFB2、FFB3の動作タイミングを取るためのクロック信号に、シード生成回路110で生成された乱数シードによるランダム性を付与することによって、擬似乱数PNOを発生させる。また、第2の構成例では、擬似乱数生成回路132は、各フリップフロップ回路FFB1、FFB2、FFB3の動作状態をリセットするリセット信号を共通のものとする。また、フリップフロップ回路FFB1、FFB2、FFB3には、当該リセット後に、3ビットのデータFNがロード端子を介してロードされる。なお、フリップフロップ回路の個数は、3個に限定されず、m個のフリップフロップ回路を設ければ、mビットのデータを保持できる擬似乱数生成回路となる。
第2の構成例では、信号処理回路120から出力された処理信号SPOは、擬似乱数生成回路132の初段の第1のフリップフロップ回路FFB1のクロック入力端子に入力され、1ビットのデータを第1のフリップフロップ回路FFB1が保持する。第1のフリップフロップ回路FFB1は、保持している1ビットのデータを後段側の第2のフリップフロップ回路FFB2および帰還用排他的論理和回路XOR13に供給する。そして、第1のフリップフロップ回路FFB1は、ランダム性が付与された所定のクロックに同期させて、帰還用排他的論理和回路XOR13から供給される1ビットのデータを新たに保持し、このデータを第2のフリップフロップ回路FFB2および帰還用排他的論理和回路XOR13に新たに供給する。
第2のフリップフロップ回路FFB2は、保持している1ビットのデータを第3のフリップフロップ回路FFB3に供給する。そして、第2のフリップフロップ回路FFB2は、ランダム性が付与された所定のクロックに同期させて、前段の第1のフリップフロップ回路FFB1から供給される1ビットのデータを新たに保持し、当該新たなデータを後段の第3のフリップフロップ回路FFB3に新たに供給する。
第3のフリップフロップ回路FFB3は、保持している1ビットのデータを帰還用排他的論理和回路XOR13に供給する。そして、第3のフリップフロップ回路FFB3は、所定のクロックに同期させて、前段の第2のフリップフロップ回路FFB2から供給される1ビットのデータを新たに保持し、このデータを帰還用排他的論理和回路XOR13に新たに供給する。
帰還用排他的論理和回路XOR13は、第1のフリップフロップ回路FFB1から供給されるデータと、第3のフリップフロップ回路FFB3から供給されるデータとを用いて排他的論理和演算を行い、演算結果を第1のフリップフロップ回路FFB1に供給する。
このような第2の構成例の擬似乱数生成回路132は、各フリップフロップ回路FFB1、FFB2、FFB3がランダム性の付与されたクロック(SPO)に基づいてデータの保持・出力を行い、最終段のフリップフロップ回路FFB3からシリアル出力されるビット列を擬似乱数PNOとして出力する。
5.本発明の乱数発生回路の詳細例
図9に、本発明の乱数発生回路の詳細例を示す。本詳細例は、シード生成回路110として図4に示す第3の構成例のシード生成回路113を用い、信号処理回路120として図5に示す第1の構成例の信号処理回路121を用い、擬似乱数生成回路130として図7に示す第1の構成例の擬似乱数生成回路131を用い、かつリセット回路160およびマスク回路170を付加したものである。
図9に、本発明の乱数発生回路の詳細例を示す。本詳細例は、シード生成回路110として図4に示す第3の構成例のシード生成回路113を用い、信号処理回路120として図5に示す第1の構成例の信号処理回路121を用い、擬似乱数生成回路130として図7に示す第1の構成例の擬似乱数生成回路131を用い、かつリセット回路160およびマスク回路170を付加したものである。
シード生成回路110に入力される第1〜第3の入力信号IS1〜IS3は、I/OセルC1〜C3から入力される信号であり、各I/OセルC1〜C3は、パッドP1〜P3と接続されている。これに対して、第4の入力信号IS4は、パッドP4を介して入力されるアナログ信号をA/D変換するA/D変換器cnvから入力される信号である。
本詳細例では、シード生成回路110は、チェーン状に接続された第1〜第3の排他的論理和回路XOR1〜XOR3を備える。そして、第1の排他的論理和回路XOR1は、第1の入力信号IS1と第2の入力信号IS2との排他的論理和を演算し、第2の排他的論理和回路XOR2は、第1の排他的論理和回路XOR1の出力信号XQ1と、第3の入力信号IS3との排他的論理和を演算する。第3の排他的論理和回路XOR3は、第2の排他的論理和回路XOR2の出力信号XQ2と、A/D変換器cnvからの第4の入力信号IS4との排他的論理和を演算して、その出力信号XQ3がシード出力信号SGOとして信号処理回路120に供給される。このような構成とすることにより、I/Oセルからの入力信号やIC内の他の回路からの入力信号の変化が、シード出力信号SGOの変化に影響を与えるので、当該シード出力信号SGOの信号レベルの変化をよりランダムなものとすることができる。
また、I/OセルC1〜C3から入力される第1〜第3の入力信号IS1〜IS3の排他的論理和となる第2の排他的論理和信号XQ2は、第3の排他的論理和回路XOR3以外にも、テスト用I/OセルCTを介して、テスト用のシリアルデータを受け入れるテスト用パッドPTにも供給可能な構成となっている。このように、I/OセルC1〜C3から入力される入力信号IS1〜IS3の排他的論理和となる排他的論理和信号XQ2をテスト用パッドPTに供給することによって、シード生成回路110で生成された信号XQ2をI/OセルC1〜C3のテスト用に使用することもできる。すなわち、シード生成回路113が第1〜第3のI/OセルC1〜C3のテスト用回路として兼用され、シード生成回路113で生成された信号XQ2が第1〜第3のI/OセルC1〜C3のテスト出力信号として使用される。換言すると、シード生成回路110は、通常動作時には、シード生成回路110で生成されたシード出力信号SGOに基づいて乱数シードを生成し、テストモード時には、シード生成回路110で生成された信号XQ2に基づいて、第1〜第3のI/OセルC1、C2、C3のテストを行う。このように、シード生成回路110の出力信号が乱数シードの生成とテスト用信号の双方に兼用可能となるので、別途テスト用回路を設ける必要が無くなり、回路規模を縮小できる。
さらに、本詳細例では、各入力信号IS1〜IS4のシード生成回路110の入力段側に、マスク回路170が設けられる。具体的には、第1〜第3のI/OセルC1〜C3とシード生成回路110との間に、各I/OセルC1〜C3に対応する第1〜第3の否定論理積回路NAND1〜NAND3、およびA/D変換器cnvと第3の排他的論理和回路XOR3との間に第4の否定論理積回路NAND4が設けられている。これらの否定論理積回路NAND1〜NAND4の一方の入力端子には、それぞれに対応する各入力信号IS1〜IS4が入力される。また、各否定論理積回路NAND1〜NAND4の他方の入力端子にはイネーブル信号enが入力される。このイネーブル信号enは、通常動作時にその信号レベルがHレベル(「1」)になり、スリープモード時にその信号レベルがLレベル(「0」)になる。各否定論理積回路NAND1〜NAND4は、各入力信号IS1〜IS4とイネーブル信号enとの否定論理積を演算する。
このため、イネーブル信号enがLレベルになるスリープモード時には、入力信号IS1〜IS4は、所定の信号レベル(Hレベル)に固定される。換言すると、スリープモード時には、否定論理積回路NAND1〜NAND4は、シード生成回路110の入力信号IS1〜IS4の信号レベルを固定するマスク回路170として機能する。このように、各入力信号IS1〜IS4のシード生成回路110の入力段前に、当該マスク回路を設けることによって、スリープモード時にシード生成回路110が不必要に動作することを未然に防げるので、シード生成回路110の誤作動や余分な消費電力を軽減できる。
シード生成回路110で生成された乱数シードは、シード出力信号SGOとして出力されてから信号処理回路120に入力され、シード出力信号SGOのメタステーブル等による異常動作の発生を防止する信号処理を行う。本詳細例では、信号処理回路120は、2つのラッチ回路LA1、LA2からなるダブルラッチ回路であり、前段側の第1のラッチ回路LA1のデータ入力端子にシード出力信号SGOが入力される。そして、後段側の第2のラッチ回路LA2からの出力が信号処理回路120から出力される処理信号SPOとなる。
疑似乱数生成回路130は、フリップフロップ回路(ラッチ回路)を3つずつ含むバッファ回路133と生成回路134を有する。ここで、本詳細例の擬似乱数生成回路130の動作を図10に示すフローチャートを用いながら説明する。3つのフリップフロップ回路FF1〜FF3から構成されるバッファ回路133は、図10に示すように、フリップフロップ回路FF1〜FF3のリセット終了後に、信号処理回路120を介してシリアル出力される信号SPOである乱数シードを3ビット分保持する(ステップS11)。そして、保持された乱数シードの全ビットが0か否かを判断する(ステップS12)。このとき、全ビットが0ではないというロード条件が満たされると、保持された3ビット分の乱数シードを、生成回路134を構成する3つのフリップフロップ回路FF4〜FF6にそれぞれロードする(ステップS13)。生成回路134は、ロードされた3ビットのデータを用いて、図8でその動作を説明したように疑似乱数PNOの生成を行い、擬似乱数PNOを出力する。なお、ステップS12において、保持された乱数シードの全ビットが0と検出されると、擬似乱数生成回路130は、擬似乱数を生成できないので、再びステップS11に戻って、乱数シードを3ビット分溜める。
また、本詳細例では、乱数発生回路100を含むICのスキャンパステストを実行するスキャンパスモード時に、パッドP3を介して入力されるスキャンパスモード信号がアクティブ(Hレベル)になる。その際に、各フリップフロップ回路FF1〜FF6を正確に検証するために、スキャンパスモード時には、各フリップフロップ回路FF1〜FF6を適正にリセットする必要がある。
これに対して、通常動作時では、各フリップフロップ回路FF1〜FF6において初期状態に保持されるデータは、不安定であるほど乱数性が高まる。このため、各フリップフロップ回路FF1〜FF6は、リセットしない方が好ましいので、リセット信号を非アクティブ(Lレベル)にすることが望ましい。
このため、本詳細例では、リセット信号RSTを受けて、これらフリップフロップ回路FF1〜FF6をリセットするための信号として乱数発生回路用リセット信号XRSTを出力するリセット回路160が設けられている。リセット回路160は、図9に示すように、インバータ回路INVと論理和回路ORを備える。インバータ回路INVは、第3のパッドP3から入力されるスキャンパスモード信号SCANENを反転させ、その反転信号が論理和回路ORの一方の入力端子に入力される。そして、論理和回路ORの他方の入力端子には、リセット信号RSTが入力される。論理和回路ORによる演算結果である乱数発生回路用リセット信号XRSTは、擬似乱数生成回路130の各フリップフロップ回路FF1〜FF6のリセット入力端子に入力される。
このようにすれば、スキャンパスモード信号SCANENがHレベルの場合には、リセット信号RSTがLレベル(非アクティブ)の時に擬似乱数生成用リセット信号XRSTがHレベルになり、リセット信号RSTがHレベル(アクティブ)の時に擬似乱数生成用リセット信号XRSTがLレベルになる。擬似乱数生成用リセット信号XRSTは、Lレベルでアクティブになる負論理信号であるので、Lレベルの擬似乱数生成用リセット信号XRSTが各フリップフロップ回路FF1〜FF6のリセット入力端子に入力されると、各フリップフロップ回路FF1〜FF6がリセットされる。このため、アクティブになった乱数発生回路用リセット信号XRSTを用いて疑似乱数生成回路130の各フリップフロップ回路FF1〜FF6をリセットでき、適正なスキャンパス動作を実現できる。
一方、例えば、通常動作時等のスキャンパスモード以外の場合では、スキャンパスモード信号SCANENがLレベルであるので、論理和回路ORによる演算結果がHレベルに固定される。このため、リセット信号RSTがアクティブになっても、乱数発生回路用リセット信号XRSTは、常にHレベルとなってしまいアクティブにならない。従って、リセット回路160によるリセット動作が働かなくなり、乱数の予測不能性を高められる。
本詳細例では、擬似乱数生成回路130で生成される擬似乱数PNOは、ビット列が3ビットのデータがシリアルに出力される。このため、擬似乱数生成回路130とFIFOバッファ140との間には、3ビットのシリアルデータを8ビットのパラレルデータに変換するシリパラ変換回路180が設けられる。なお、擬似乱数生成回路130に8個以上のラッチ回路を設けることによって保持可能なデータが8ビット以上の場合は、当該シリパラ変換回路180は、省略可能である。
6.電子機器
次に本実施形態の電子機器について、図11(A)〜図11(C)を用いて説明する。なお、本実施形態の電子機器は、図11(A)〜図11(C)の構成に限定されず、その構成要素の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
次に本実施形態の電子機器について、図11(A)〜図11(C)を用いて説明する。なお、本実施形態の電子機器は、図11(A)〜図11(C)の構成に限定されず、その構成要素の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
図11(A)は、本実施形態の電子機器の第1の構成例である。この第1の構成例の電子機器は、本実施形態の乱数発生回路100を含む無線回路500とセンサデバイス510を含む。図11(A)の電子機器では、センサデバイス510が力、加速度、質量等の各種の物理量を検出する。そして物理量を電流や電圧等に変換して、検出信号として出力する。
無線回路500は、センサデバイス510からの検出信号を受け、検出信号の増幅や、増幅後の信号に対する各種の信号処理を行う。また、無線回路500は、本実施形態の乱数発生回路100を備え、送信するデータを保護するために暗号化する際に使用する鍵として、当該乱数発生回路100で発生させた乱数を使用する。そして、アンテナ50を用いて、暗号化されたデータを外部機器に送信する。また、無線回路500は、アンテナ50を用いて外部機器からのデータを受信し、ID認証を行ったり、センサデバイス510の制御等を行う。
図11(B)は、本実施形態の電子機器の第2の構成例である。この第2の構成例では、図11(A)の第1の構成例に対して、さらに電源装置520が設けられている。この電源装置520は、例えば、バッテリ(電池)や電源回路により構成できる。そして、本実施形態の乱数発生回路100を含む無線回路500は、この電源装置520から供給される電源に基づいて動作する。なお、アンテナ50を用いて、非接触(無接点)で外部機器から電力を供給する場合には、電源装置520の構成は、省略できる。
図11(C)は、本実施形態の第3の構成例である。図11(C)の電子機器は、CPU530(広義にはプロセッサ)とメモリ540と本実施形態の乱数発生回路100が設けられた無線回路500を含む。
CPU530は、電子機器全体の制御や、メモリ540の読み出し、書き込み制御や、無線回路500の制御を行う。CPU530の機能は、CPU530のハードウェアと、CPU530上で動作するソフトウェアにより実現できる。また、CPU530からの指示によって、無線回路500に備わる乱数発生回路100で生成された擬似乱数を使用する各デバイスに供給する。
メモリ540は、CPU530や無線回路500のワーク領域となるメモリであり、各種データを記憶する。このメモリ540は、RAM等により実現できる。
無線回路500は、CPU530からの指示に基づいて、アンテナ50を用いてメモリ540に記憶されるデータ等の各種データを外部機器に送信する。また、無線回路500は、アンテナ50を用いて、外部機器からのデータを受信して、CPU530に転送したり、CPU530を介してメモリ540に転送して書き込む作業を実行する。
以上の図11(A)〜図11(C)に示す第1〜第3の電子機器は、本実施形態の乱数発生回路100が使用される一実施例に過ぎす、本実施形態の乱数発生回路100は、乱数発生回路を使用する他の電子機器にも適用可能である。例えば、画像処理装置で表示される画像のモアレ等の画像不良を防止するために、擬似中間処理等の画像データ信号の処理の際に使用することもできる。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは、当業者には、容易に理解できるであろう。従って、このような変形例は、全て本発明の範囲に含まれるものとする。
例えば、明細書または図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書または図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、乱数発生回路、電子機器の構成、動作も本実施形態で説明したものに限定に限定されず、種々の変形実施が可能である。
100 乱数発生回路、110、111、112、113 シード生成回路、
120、121、122 信号処理回路、130、131、132 擬似乱数生成回路、140 FIFOバッファ、150 CPU、160 リセット回路、
170 マスク回路、180 8ビットシリパラ変換回路、
XOR1、XOR2、XOR3 排他的論理和回路、
C1、C2、C3、C4 I/Oセル、CT テスト用I/Oセル、
LA1、LA2 ラッチ回路、LPF ローパスフィルタ、
FF1、FF2、FF3、FF4、FF5、FF6 フリップフロップ回路
120、121、122 信号処理回路、130、131、132 擬似乱数生成回路、140 FIFOバッファ、150 CPU、160 リセット回路、
170 マスク回路、180 8ビットシリパラ変換回路、
XOR1、XOR2、XOR3 排他的論理和回路、
C1、C2、C3、C4 I/Oセル、CT テスト用I/Oセル、
LA1、LA2 ラッチ回路、LPF ローパスフィルタ、
FF1、FF2、FF3、FF4、FF5、FF6 フリップフロップ回路
Claims (13)
- 第1〜第n(nは、3以上の整数)の入力信号に基づいて乱数のシードとなるシード出力信号を生成して出力するシード生成回路と、
前記シード出力信号の信号処理を行う信号処理回路と、を含み、
前記シード生成回路は、
前記第1〜第nの入力信号のうちの少なくとも第j(1≦j≦n)の入力信号の信号レベルが変化した場合に、前記第1〜第nの入力信号のうちの前記第jの入力信号以外の入力信号の信号レベルに依存せずその信号レベルが変化する前記シード出力信号を出力することを特徴とする乱数発生回路。 - 請求項1において、
前記シード生成回路は、
第1の排他的論理和回路と第2の排他的論理和回路を少なくとも含み、
前記第1の排他的論理和回路は、
前記第1〜第nの入力信号のうちの第1の入力信号と第2の入力信号の排他的論理和を演算し、
前記第2の排他的論理和回路は、
前記第1の排他的論理和回路から出力される第1の排他的論理和信号と、前記第1〜第nの入力信号のうちの第3の入力信号の排他的論理和を演算することを特徴とする乱数発生回路。 - 請求項1において、
前記シード生成回路は、
第1の排他的論理和回路と第2の排他的論理和回路と第3の排他的論理和回路を少なくとも含み、
前記第1の排他的論理和回路は、
前記第1〜第nの入力信号のうちの第1の入力信号と第2の入力信号との排他的論理和を演算し、
前記第2の排他的論理和回路は、
前記第1〜第nの入力信号のうちの第3の入力信号と第4の入力信号との排他的論理和を演算し、
前記第3の排他的論理和回路は、
前記第1の排他的論理和回路から出力される第1の排他的論理和信号と、前記第2の排他的論理和回路から出力される第2の排他的論理和信号との排他的論理和を演算することを特徴とする乱数発生回路。 - 請求項1乃至3のいずれかにおいて、
前記信号処理回路は、カスケード接続された複数のラッチ回路を有し、
前記複数のラッチ回路のうちの初段側の第1のラッチ回路のデータ入力端子に前記シード出力信号が入力され、
前記複数のラッチ回路のうちの前記第1のラッチ回路の後段側の第2のラッチ回路のデータ入力端子に前記第1のラッチ回路の出力信号が入力され、
前記複数のラッチ回路の各ラッチ回路のクロック入力端子にクロック信号が入力されることを特徴とする乱数発生回路。 - 請求項1乃至4のいずれかにおいて、
前記信号処理回路から出力される処理信号に基づいて擬似乱数を生成する擬似乱数生成回路をさらに含み、
前記処理信号は、前記擬似乱数生成回路のデータ入力端子に入力されることを特徴とする乱数発生回路。 - 請求項1乃至4のいずれかにおいて、
前記信号処理回路から出力される処理信号に基づいて擬似乱数を生成する擬似乱数生成回路をさらに含み、
前記処理信号は、前記擬似乱数生成回路のクロック入力端子に入力されることを特徴とする乱数発生回路。 - 請求項6において、
前記信号処理回路は、ローパスフィルタを有し、
前記ローパスフィルタから出力される処理信号が前記擬似乱数生成回路の前記クロック入力端子に入力されることを特徴とする乱数発生回路。 - 請求項5乃至7のいずれかにおいて、
スキャンパスモード信号およびリセット信号を受け、乱数発生回路をリセットする乱数発生回路用リセット信号を出力するリセット回路をさらに含み、
前記擬似乱数生成回路は、カスケード接続された複数のラッチ回路を有し、
前記リセット回路は、
前記スキャンパスモード信号がアクティブである場合には、前記リセット信号がアクティブの時に前記乱数発生回路用リセット信号をアクティブにし、前記スキャンパスモード信号が非アクティブである場合には、前記リセット信号の信号レベルに依存せずに前記乱数発生回路用リセット信号を非アクティブにすることを特徴とする乱数発生回路。 - 請求項1乃至8のいずれかにおいて、
前記第1〜第nの入力信号は、第1〜第nのI/Oセルからの入力信号であることを特徴とする乱数発生回路。 - 請求項9において、
前記シード生成回路が前記第1〜第nのI/Oセルのテスト用回路として兼用され、前記シード生成回路で生成された信号が前記第1〜第nのI/Oセルのテスト出力信号として使用されることを特徴とする乱数発生回路。 - 請求項9または請求項10において、
前記第1〜第nのI/Oセルと前記シード生成回路との間に設けられ、スリープモード時に前記第1〜第nのI/Oセルの前記第1〜第nの入力信号を所定信号レベルに固定するマスク回路を含むことを特徴とする乱数発生回路。 - 請求項1乃至11のいずれかに記載の乱数発生回路を含む電子機器。
- 請求項10または請求項11の乱数発生回路を使用した前記第1〜第nのI/Oセルのテスト方法であって、
通常動作時には、前記シード生成回路で生成された信号に基づいて乱数のシードを生成し、
テストモード時には、前記シード生成回路で生成された信号に基づいて前記第1〜第nのI/Oセルのテストを行うことを特徴とするI/Oセルのテスト方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008036220A JP2009193523A (ja) | 2008-02-18 | 2008-02-18 | 乱数発生回路、電子機器、およびi/oセルのテスト方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008036220A JP2009193523A (ja) | 2008-02-18 | 2008-02-18 | 乱数発生回路、電子機器、およびi/oセルのテスト方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009193523A true JP2009193523A (ja) | 2009-08-27 |
Family
ID=41075453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008036220A Withdrawn JP2009193523A (ja) | 2008-02-18 | 2008-02-18 | 乱数発生回路、電子機器、およびi/oセルのテスト方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009193523A (ja) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0934794A (ja) * | 1995-07-24 | 1997-02-07 | Fujitsu Ltd | 半導体記憶装置 |
JPH11125661A (ja) * | 1997-10-23 | 1999-05-11 | Oki Electric Ind Co Ltd | 半導体集積回路 |
JPH11143570A (ja) * | 1997-11-11 | 1999-05-28 | Kawasaki Steel Corp | Lsiのクロック停止信号生成回路 |
JP2002236582A (ja) * | 2001-02-07 | 2002-08-23 | Iwaki Electronics Corp | 乱数発生装置および確率発生装置 |
JP2003315426A (ja) * | 2002-04-24 | 2003-11-06 | Matsushita Electric Ind Co Ltd | 入力パターン供給器と半導体集積回路の検査方法 |
JP2005018251A (ja) * | 2003-06-24 | 2005-01-20 | Renesas Technology Corp | 乱数発生装置 |
WO2005078573A1 (ja) * | 2004-02-12 | 2005-08-25 | Hitachi Ulsi Systems Co., Ltd. | 乱数発生方法と半導体集積回路装置 |
JP2007122560A (ja) * | 2005-10-31 | 2007-05-17 | Oki Electric Ind Co Ltd | 乱数生成回路 |
-
2008
- 2008-02-18 JP JP2008036220A patent/JP2009193523A/ja not_active Withdrawn
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0934794A (ja) * | 1995-07-24 | 1997-02-07 | Fujitsu Ltd | 半導体記憶装置 |
JPH11125661A (ja) * | 1997-10-23 | 1999-05-11 | Oki Electric Ind Co Ltd | 半導体集積回路 |
JPH11143570A (ja) * | 1997-11-11 | 1999-05-28 | Kawasaki Steel Corp | Lsiのクロック停止信号生成回路 |
JP2002236582A (ja) * | 2001-02-07 | 2002-08-23 | Iwaki Electronics Corp | 乱数発生装置および確率発生装置 |
JP2003315426A (ja) * | 2002-04-24 | 2003-11-06 | Matsushita Electric Ind Co Ltd | 入力パターン供給器と半導体集積回路の検査方法 |
JP2005018251A (ja) * | 2003-06-24 | 2005-01-20 | Renesas Technology Corp | 乱数発生装置 |
WO2005078573A1 (ja) * | 2004-02-12 | 2005-08-25 | Hitachi Ulsi Systems Co., Ltd. | 乱数発生方法と半導体集積回路装置 |
JP2007122560A (ja) * | 2005-10-31 | 2007-05-17 | Oki Electric Ind Co Ltd | 乱数生成回路 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8260835B2 (en) | Random number generator with ring oscillation circuit | |
US9135453B2 (en) | Preventing data extraction by side-channel attack | |
TWI758688B (zh) | 隨機數產生器 | |
JP3696209B2 (ja) | シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器 | |
JPWO2002037260A1 (ja) | 乱数発生装置 | |
US9323957B2 (en) | Anti-tamper system based on dual random bits generators for integrated circuits | |
JPS6035400A (ja) | 相補形金属酸化膜半導体を用いた送信装置 | |
KR20160068369A (ko) | 패리티 체크 회로 및 이를 포함하는 메모리 장치 | |
US20240088901A1 (en) | Low power clock network | |
JPH06509200A (ja) | 乱数発生装置並びに方法 | |
JP2018528719A (ja) | ランダムクロック発生器 | |
JP2010002959A (ja) | 擬似乱数生成装置 | |
JP2009193523A (ja) | 乱数発生回路、電子機器、およびi/oセルのテスト方法 | |
US10754812B2 (en) | N-depth asynchronous FIFO including a collection of 1-depth FIFO cells | |
JP4061294B2 (ja) | 自己同期型擬似ランダム・ビット・シーケンス・チェッカ | |
US20210312045A1 (en) | Integrated circuit side-channel mitigation mechanism | |
US20140049359A1 (en) | Security device and integrated circuit including the same | |
KR102499932B1 (ko) | 다중 비트 플립 플롭 | |
Shimada et al. | High-speed and energy-efficient crypto-processor for post-quantum cryptography CRYSTALS-Kyber | |
US9970987B2 (en) | Method and apparatus for test time reduction using fractional data packing | |
WO2014007583A1 (ko) | Fpga 기반된 진정한 난수 생성기의 성능 향상을 위한 장치 및 방법 | |
Guo et al. | Parallel and real-time post-processing for quantum random number generators | |
US20040143614A1 (en) | Hiding the internal state of a random number generator | |
Zhou et al. | A test set embedding approach based on twisted-ring counter with few seeds | |
US20220091168A1 (en) | Clock frequency ratio monitor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110217 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120808 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120814 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20121012 |