(57)【要約】【課題】システムＬＳＩに内蔵される乱数生成回路を低コストで効率よく評価し、初期不良の発生を防ぐ。【解決手段】システムＬＳＩに対するパワーオンリセットを予め設定された所定回数繰り返すことにより、最適化された制御パラメータが設定された乱数生成回路からパワーオンリセットの度にパワーオンリセット後の所定のタイミングで出力される乱数を所定個数取得し、該取得した所定個数の乱数の検査をシステムＬＳＩ内蔵のテスト回路を用いて行って、システムＬＳＩに内蔵される乱数生成回路の良否を判定する。【選択図】        図８
2009098973.tif 000002
【特許請求の範囲】
【請求項１】
集積回路に内蔵される乱数生成回路を検査する乱数生成回路搭載集積回路の検査方法において、
乱数生成回路の制御パラメータを調整しながら乱数生成回路から出力される乱数の検査を行って前記制御パラメータを最適化する第１の工程と、
前記集積回路に対するパワーオンリセットを予め設定された所定回数繰り返すことにより、前記最適化された制御パラメータが設定された乱数生成回路からパワーオンリセットの度にパワーオンリセット後の所定のタイミングで出力される乱数を所定個数取得し、該取得した所定個数の乱数の検査を行って、集積回路に内蔵される乱数生成回路の良否を判定する第２の工程と、
を備えることを特徴とする乱数生成回路搭載集積回路の検査方法。
【請求項２】
前記第１の工程は、乱数生成回路が内蔵される集積回路の試作段階に行い、前記第２の工程は、乱数生成回路が内蔵される集積回路の量産段階におけるバーンインテストの際に実行することを特徴とする請求項１に記載の乱数生成回路搭載集積回路の検査方法。
【請求項３】
前記第２の工程における乱数の検査は、
前記取得した所定個数の乱数間の一致ビット数に基づく第１の検査と、前記所定個数の乱数における同一ビット位置に現れる０または１の個数に基づく第２の検査とのうちの少なくとも一方を実行することを特徴とする請求項１または２に記載の乱数生成回路搭載集積回路の検査方法。
【請求項４】
乱数生成回路が内蔵される乱数生成回路搭載集積回路において、
集積回路を通常モードとテストモードとに切替えるための第１の端子と、
前記テストモードの際に、前記乱数生成回路が生成した乱数を格納するためのメモリと、
前記テストモードの際に前記乱数生成回路を制御して乱数値を生成させて上記メモリに格納させるための制御パラメータおよび生成された乱数の品質を検査するためのテストパラメータが入力される第２の端子と、
前記テストモードの際に前記第２の端子から入力された制御パラメータに基づき前記乱数生成回路を制御するとともに、前記第２の端子から入力された前記テストパラメータに基づき上記乱数生成回路で生成された乱数値を上記メモリに格納させるための制御を行う制御部と、
前記第２の端子から入力されたテストパラメータに基づき、メモリに格納された所定個数の乱数の検査を行って集積回路に内蔵される乱数生成回路の良否を判定する品質判定部と、
前記品質判定部によって判定された良否の判定結果が出力される第３の端子と、
を備え、
前記集積回路に対するパワーオンリセットを予め設定された所定回数繰り返すことにより、前記乱数生成回路からパワーオンリセットの度にパワーオンリセット後の所定のタイミングで出力される乱数を前記メモリに格納し、該格納した所定個数の乱数の検査を前記品質判定部によって行うことを特徴とする乱数生成回路搭載集積回路。
【請求項５】
前記品質判定部は、前記所定個数の乱数間の一致ビット数に基づく検査を行う第１の検査部と、前記所定個数の乱数における同一ビット位置に現れる０または１の個数に基づく検査を行う第２の検査部と、これら第１および第２の検査部の検査結果に基づき集積回路に内蔵される乱数生成回路の良否を判定する判定部とを備えることを特徴とする請求項４に記載の乱数生成回路搭載集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路に内蔵される乱数生成回路を検査する乱数生成回路搭載集積回路の検査方法および乱数生成回路搭載集積回路に関するものである。
【背景技術】
【０００２】
非特許文献１に記載のように、情報セキュリティという側面から、良質な乱数に対する需要が高まっている。通信や記録の際の暗号化、機器認証、個人認証あるいはアクセス制御などで、予測困難な乱数の生成が求められている。このような背景から、システムＬＳＩでも、これまではソフトウエアで乱数を生成させていたが、それよりも乱数性の高さを求めて、ハードウエアによる乱数生成回路を搭載するケースが増加している。ソフトウエアによる乱数生成では、算術アルゴリズムに基礎をおくため、周期性が避けられず、また同一の初期値を与えると同一の乱数値の列が生成されるという再現性も避けられない。これに対して、原理的に物理現象を利用しようとするハードウエアによる乱数生成回路では、周期性がなく、また、初期値の設定が不要であり、パワーオンリセット後に生成される乱数値の列は、パワーオンリセットのたびに異なることが期待される。
【０００３】
特許文献１、２には、ハードウエアによって構成した乱数生成回路が示されている。例えば、特許文献１では、ＬＦＳＲ（Linear Feedback Shift Register）によって構成される乱数発生回路に対してリセットをかけないようにすることで、初期値を設定することなく、電源投入直後に乱数発生回路から出力される乱数値が常に同一とならないようにしている。また、特許文献２では、電源投入直後から動作する発振器から出力される高速クロックによって動作するカウンタの出力を、パワーオンリセット信号をトリガとしてラッチ回路でラッチし、このラッチ回路の出力を乱数発生回路の乱数シード値（初期値）として用いる乱数シード生成回路において、パワーオンリセット信号が、高速クロックよりも十分に遅く、またラッチ回路に入力される時期も、まちまちとなることを利用して、ラッチ回路にラッチされるカウント値（乱数シード値）を、電源が投入される度に異なるものとしている。
【０００４】
このようなハードウエアによる乱数生成回路は、設計段階で検討を重ねた上でシステムＬＳＩに搭載される。しかし、その実装にアナログ回路的要素を排除することは完全にはできないため、乱数生成回路自体の出来具合によって乱数性が左右される可能性がある。このため、システムＬＳＩを試作設計する段階では、ＳＰＩＣＥ(Simulation Program with Integrated Circuit Emphasis)などの回路シミュレータで動作を確認し、また、ＰＬＤやＦＰＧＡで動作の確認と乱数品質の評価を行い、かつシステムＬＳＩ製造後の段階でも、乱数品質を評価するというような慎重さが求められる。また、システムＬＳＩは、製造後の乱数品質評価の結果をフィードバックして乱数生成回路を調整できるようにしておくことが望ましい。
【０００５】
乱数品質の評価は、基本的には、大量のデータを取得して、さまざまな角度から統計学的に検定することを求めるものである。たとえば、ＮＩＳＴ（National Institute of Standards and Technology: 米国商務省標準局）がNIST Special Publication 800-22（以下、NIST SP 800-22という）で公開しているツールでは、モノビット検定、ポーカー検定など１０種類以上の項目があり、いくつかの検定では、１００万ビット以上の乱数データが必要とされる。
【０００６】
【非特許文献１】東芝レビューVol.58 No.8(2003)のpp.47-51
【特許文献１】特開平１１−３１２０７８号公報
【特許文献２】特開２００２−２６８８７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
良質な乱数の生成を保証するためには、これらのNIST SP 800-22の全項目を検定する必要があるが、このような検定をシステムＬＳＩ製造後に行う場合、ＬＳＩ評価ボードによる実機評価テストに委ねなければならない。もし、ＬＳＩ評価ボードによる実機評価テストをシステムＬＳＩの量産工程に新たに追加すると、そのテストコストは非常に大きく、非現実的である。このように、現状では、システムＬＳＩに内蔵される乱数生成回路を量産段階で低コストで効率よく検査することが可能な手法が強く要望されている。このような要望に応えるためには、量産段階における既存の工程中に、既存の工程を邪魔することなく既存の工程に並行して乱数生成回路の検査が行えるようにすることが望ましい。
【０００８】
また、上記のとおり、ソフトウエアによる乱数生成では、パワーオンリセットのたびに初期値を与え、電源切断の際には最後に生成した乱数値を、次回パワーオンリセット時の初期値として記憶する必要がある。これに対して、ハードウエアによる乱数生成回路の場合には、通常、このような初期値に対する処置は不要とされる。これは、裏を返すと、乱数生成回路のパワーオンリセット直後に生成される乱数列の品質を調べる必要性が高いことを意味しており、パワーオンリセット直後の乱数列の品質に問題なければ、その後に続く乱数列の品質は或る程度補償されると考えられる。
【０００９】
本発明は、上記実情に鑑みてなされたものであって、集積回路に内蔵される乱数生成回路を低コストで効率よく評価し、初期不良の発生を防ぐことが可能な乱数生成回路搭載集積回路の検査方法および乱数生成回路搭載集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明は、集積回路に内蔵される乱数生成回路を検査する乱数生成回路搭載集積回路の検査方法において、乱数生成回路の制御パラメータを調整しながら乱数生成回路から出力される乱数の検査を行って前記制御パラメータを最適化する第１の工程と、前記集積回路に対するパワーオンリセットを予め設定された所定回数繰り返すことにより、前記最適化された制御パラメータが設定された乱数生成回路からパワーオンリセットの度にパワーオンリセット後の所定のタイミングで出力される乱数を所定個数取得し、該取得した所定個数の乱数の検査を行って、集積回路に内蔵される乱数生成回路の良否を判定する第２の工程とを備えることを特徴としている。
【００１１】
また、本発明は、乱数生成回路が内蔵される乱数生成回路搭載集積回路において、集積回路を通常モードとテストモードとに切替えるための第１の端子と、前記テストモードの際に、前記乱数生成回路が生成した乱数を格納するためのメモリと、前記テストモードの際に前記乱数生成回路を制御して乱数値を生成させて上記メモリに格納させるための制御パラメータおよび生成された乱数の品質を検査するためのテストパラメータが入力される第２の端子と、前記テストモードの際に前記第２の端子から入力された制御パラメータに基づき前記乱数生成回路を制御するとともに、前記第２の端子から入力された前記テストパラメータに基づき上記乱数生成回路で生成された乱数値を上記メモリに格納させるための制御を行う制御部と、前記第２の端子から入力されたテストパラメータに基づき、メモリに格納された所定個数の乱数の検査を行って集積回路に内蔵される乱数生成回路の良否を判定する品質判定部と、前記品質判定部によって判定された良否の判定結果が出力される第３の端子とを備え、前記集積回路に対するパワーオンリセットを予め設定された所定回数繰り返すことにより、前記乱数生成回路からパワーオンリセットの度にパワーオンリセット後の所定のタイミングで出力される乱数を前記メモリに格納し、該格納した所定個
数の乱数の検査を前記品質判定部によって行うことを特徴としている。
【発明の効果】
【００１２】
本発明によれば、第１の工程で乱数制御回路の制御パラメータを最適化し、第２の工程でパワーオンリセットを予め設定された所定回数繰り返すことにより、最適化された制御パラメータが設定された乱数生成回路からパワーオンリセットの度にパワーオンリセット後の所定のタイミングで出力される乱数を所定個数取得し、該取得した所定個数の乱数の検査を行って、集積回路に内蔵される乱数生成回路の良否を判定するようにしたので、集積回路に内蔵される乱数生成回路を量産段階で低コストで効率よく検査することが可能となり、初期不良の発生を防ぐことが可能となる。
【００１３】
また、本発明によれば、パワーオンリセットの都度、パワーオンリセット後に集積回路内蔵の乱数生成回路で生成させた乱数値を、集積回路内蔵のテスト回路で検査して、その合否を判定し、合否の判定結果を端子出力しているので、量産段階における既存の工程への適用が容易となり、これにより、低コストで効率的に、集積回路内蔵の乱数生成回路を評価し、初期不良の発生を防ぐことが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下に添付図面を参照して、この発明にかかる乱数生成回路搭載集積回路の検査方法および乱数生成回路搭載集積回路の最良な実施の形態を詳細に説明する。
【００１５】
（第１の実施の形態）
図１は一般的なシステムＬＳＩの製造工程を示すものである。試作段階（Ｓ１）では、集積回路としてのシステムＬＳＩの制御パラメータを最適化する。量産段階（Ｓ２）では、最適化された制御パラメータのもとで各種の検査が実施され、これに合格した製品が出荷される。乱数生成回路が内蔵されたシステムＬＳＩも、このような工程を経る。そこで、第１の実施の形態においては、試作段階（Ｓ１）では、乱数生成回路の制御パラメータを調整しながらシステムＬＳＩ内の乱数生成回路から出力される乱数の検査を行って制御パラメータを最適化し、量産段階（Ｓ２）では、システムＬＳＩに対するパワーオンリセットを予め設定された所定回数ｍだけ繰り返すことにより、最適化された制御パラメータが設定された乱数生成回路からパワーオンリセットの度に出力されるパワーオンリセット直後の乱数ビット列を取得し、該取得した所定個数ｍのパワーオンリセット直後の乱数ビット列の検査を行って、システムＬＳＩに内蔵される乱数生成回路の良否を判定する。
【００１６】
図２は、システムＬＳＩ内の乱数生成回路の制御パラメータの最適化手順の一例を示すものであり、この最適化手順は図１に示した試作段階（Ｓ１）で実行される。図２において、まず、パラメータ設定ステップ（Ｓ１１）において、乱数生成回路の制御パラメータを最適と考えられる設定値に設定する。この設定後、ＬＳＩ評価ボードによる実機評価テストで、例えば、NIST SP 800-22に規定されている手法（モノビット検定、ポーカー検定など１０種類以上の項目）を用いた検定を実行する（Ｃ１）。具体的には、パワーオンリセット後、所定の回数だけ乱数を生成させ、この所定個数の時系列の乱数値の集合について、NIST SP800-22に規定されている手法を用いた検定を実行する。所定個数は、NIST SP800-22の検定結果が有意となるビット数（１００万ビット）を最低限の目安とする。たとえば、１９２ビット乱数の場合、５,２０９個以上必要である。
【００１７】
ステップＣ１のNIST SP800-22の検定結果がＮＧならば、乱数生成回路の制御パラメータに変更の余地があるか否かを判定し（Ｃ３）、変更の余地がある場合は、乱数生成回路の制御パラメータを再設定する（Ｓ１１）。また、ステップＣ１のNIST SP800-22の検定結果がＯＫである場合は、つぎに、パワーオンリセット直後の乱数品質評価(Ｃ２)を行う。このＣ２の評価では、パワーオンリセットを所定回数繰り返し、パワーオンリセットの
度にパワーオンリセット直後の乱数列を取得し、この乱数列について品質を評価する。このＣ２の評価結果がＮＧならば、乱数生成回路の制御パラメータに変更の余地があるか否かを判定し（Ｃ３）、変更の余地がある場合は、乱数生成回路の制御パラメータを再設定する（Ｓ１１）。また、ステップＣ２の評価結果がＯＫである場合は、これで乱数生成回路の制御パラメータの最適化が完了する（Ｓ１２）。なお、制御パラメータをどのように調整しても、検定Ｃ１や評価Ｃ２の結果がＮＧとなった場合は、システムＬＳＩ内蔵の乱数生成回路に不具合があると判断される(Ｓ１３)。この場合は、乱数生成回路の設計内容を見直すことになる。なお、Ｃ１とＣ２は、その順番を入れ替えてもよい。
【００１８】
ステップＣ２におけるパワーオンリセット直後の乱数品質評価では、生成させた所定個数のパワーオンリセット直後の乱数列の集合について、たとえば、任意の２個の乱数列を各ビット位置（同じビット位置同士）で比較して一致したビット数（一致ビット数）を検出する処理を２個ずつの乱数列に対し総当たりで行い、一致ビット数の頻度分布を検査する。
【００１９】
図３は一致ビット数と頻度との関係である一致ビット数の頻度分布を示すものである。図３において、実線で示した完全な自然乱数の場合、その分布は理想曲線のように二項分布曲線となる。この曲線は、以下のような計算式に基づいている。各ビット位置の比較で一致と判定されるのは(０,０)と(１,１)の組み合わせで、不一致と判定されるのは(０,１)と(１,０)の組み合わせである。したがって、一致となる確率は１/２である。乱数のビット数がｎで、一致ビット数がｋ個の確率は、
ｎＣｋ×(１/２)ｋ(１/２)ｎ−ｋ        （１）
で計算される。
上記の所定個数（パワーオンリセットの繰り返し回数）をｍ個とすると、任意の２個の乱数列の組み合わせ数はｍＣ２であるので、その結果として、一致ビット数の理想的な頻度は、
ｎＣｋ×(１/２)ｎ×ｍＣ２            （２）
で計算される。
【００２０】
この二項分布曲線に対して、図３に点線で示したような実測曲線が得られた場合、乱数品質の判定基準としてはいくつか考えられるが、基本的に、一致ビット数が多い方の頻度の高さを問題とする。図３は１９２ビットの乱数列(ｎ＝１９２)で、ｍ＝８,０００の場合であるが、
（ａ）第１の判断基準では、理想曲線で頻度が１未満となった一致ビット数（基準ビット数ｚ）である１３４以上の領域で、実測曲線の理想曲線からのずれを検出し、ずれが大きいときに品質が悪いと判定する。たとえば、基準ビット数ｚ以上の領域での実測曲線と理想曲線との差分（面積ａ）が予め定められたしきい値を超えたときに、乱数の品質が悪いと判断する。
（ｂ）第２の判断基準では、基準ビット数z以上の一致ビット数の頻度が、予め定められた値を超えたときに、乱数の品質が悪いと判断する。
（ｃ）さらに、第３の判断基準では、基準ビット数zよりも大きな所定のビット数をしきい値として、該しきい値よりも大きな一致ビット数の頻度が１以上であるときに、乱数の品質が悪いと判断する。
【００２１】
図４は、図２のステップＣ２で実行した一致ビット数による乱数品質評価手順をより詳細に示すものである。まず、乱数生成回路を動作させるための制御パラメータや、乱数生成回路を検査するためのテストパラメータ（検査パラメータ）などを設定する（Ｓ２１）。つぎに、パワーオンリセットの繰り返し回数ｍを選定する。この繰り返し回数ｍは、基本的には、顧客要求品質（システムＬＳＩを用いて実現されるアプリケーションによって要求される乱数の品質）に合わせて決めておく。たとえば、パワーオンリセットの回数を
１日２０回として、４００日間、同一値が出現しないことを基準にする場合は、ｍ＝８,０００回である。この回数ｍだけ、パワーオンリセットを繰り返して乱数を生成させ、生成した乱数をシステムＬＳＩに内蔵のメモリ（不揮発性メモリやＳＲＡＭ）に格納する（Ｓ２２）。このようにしてメモリに格納されたパワーオンリセット直後のｍ個の乱数値に対して、上記した一致ビット数検査（Ｓ２３）を実施する。この検査に合格した場合は、良好な乱数品質と判断される（Ｓ２４）。なお、ステップＳ２２における乱数格納の所要時間は、たとえば、５秒間隔でパワーオンリセットをかけると、ｍ＝８,０００の場合、４０,０００秒となる。
【００２２】
図５は、図２のステップＣ２で行ったパワーオンリセット直後の乱数品質評価の他の手法を示すものである。図５の場合は、図３などを用いて説明した一致ビット数検査に加えて、構成ビット検査を実行するようにしている（Ｓ２５）。構成ビット検査では、パワーオンリセットをｍ回繰り返して取得したパワーオンリセット直後のｍ個の乱数値に対して、同一ビット位置に出現する“０”または“１”の個数を計数し、この計数値が所定の揺らぎの範囲α内にない場合に、乱数品質が悪いと判断する。すなわち、自然乱数であれば、“１”と“０”の出現確率はそれぞれ５０％であるので、“０”または“１”の個数が、例えば、(ｍ/２−α)以上、(ｍ/２＋α)以下の範囲にない場合に、乱数品質が悪いと判定する。例えば、検査ビットを奇数ビットとする場合は、奇数ビットのｍビットの乱数ビットについて、“０”または“１”の個数をそれぞれ計数し、これらの計数値が(ｍ/２−α)〜(ｍ/２＋α)の範囲内にない場合に、乱数品質が悪いと判定する。検査ビットとしては、全ビットを検査するようにしてもよいし、偶数ビットのみを検査するようにしてもよいし、もっと少ないビットのみを検査するようにしてもよい。
【００２３】
そして、図５のステップＳ２４´においては、一致ビット検査および構成ビット検査の両検査結果に基づいて乱数生成回路の乱数品質を判定する。例えば、両検査に合格していないと、不良と判定する。図５では、一致ビット数検査および構成ビット検査を並行して実行しており、多方面から乱数品質を評価することができる。なお、図２のステップＣ２においては、一致ビット数検査および構成ビット検査のいずれか一方を行うようにしてもよい。
【００２４】
なお、上記では、図１の試作段階（Ｓ１）において、NIST SP800-22の検定（Ｃ１）と、パワーオンリセットをｍ回繰り返して取得したパワーオンリセット直後のｍ個の乱数値に対する一致ビット数検査及び／又は構成ビット検査を行うようにしたが、乱数生成回路の制御パラメータを最適化することができる検査、検定であれば、これに限らず他の任意の検査を行うようにしてもよい。
【００２５】
以上の説明は、図１の試作段階（Ｓ１）での乱数生成回路の制御パラメータの最適化手順に関するものであった。つぎに、図１の量産段階（Ｓ２）において、システムＬＳＩ内の乱数生成回路を評価するための手法とテスト回路について説明する。量産段階（Ｓ２）においては、最適化された制御パラメータが設定された乱数生成回路が内蔵されたシステムＬＳＩに対し、図２のステップＣ２、図４または図５で説明したパワーオンリセット直後の乱数品質評価を実行する。すなわち、システムＬＳＩに対するパワーオンリセットを予め設定された所定回数ｍだけ繰り返すことにより、最適化された制御パラメータが設定された乱数生成回路からパワーオンリセットの度に出力されるパワーオンリセット直後の乱数ビット列を取得し、該取得した所定個数ｍのパワーオンリセット直後の乱数ビット列について前述の一致ビット検査及び／又は構成ビット検査を行って、システムＬＳＩに内蔵される乱数生成回路の良否を判定する。
【００２６】
図６に一般的な量産段階（Ｓ２）のＬＳＩ製造工程を示す。量産段階（Ｓ２）においては、ダイ製造(Ｓ３１)、ダイ検査（Ｓ３２）、パッケージアセンブリ（Ｓ３３）、パッケ
ージバーンインテスト（Ｓ３４）、パッケージファイナルテスト（Ｓ３５）の５つの工程を経て、ＬＳＩ出荷(Ｓ３６)となる。量産段階（Ｓ２）での、乱数生成回路の検査では、上述したように、パワーオンリセットを所定回数ｍだけ繰り返して、その直後に生成された乱数を取得するので、それだけでも長時間を要する。したがって、現状でも長時間を要しているパッケージバーンインテスト工程へ乱数生成回路の検査を組み込めば、追加のテストコストを抑制しながら、乱数生成回路の評価も実施することができ、効率の良いシステムＬＳＩの製造をなし得る。
【００２７】
図７は、一般的なパッケージバーンインテストの様子を示すものである。評価ボード２００上には、複数個のパッケージアセンブリ済みのシステムＬＳＩが搭載されており、評価装置２１０により、パッケージバーンインテストが制御される。図７の場合は、１６個のシステムＬＳＩＬ１〜Ｌ１６が評価ボード２００に搭載されている。パッケージバーンインテストは、複数個のシステムＬＳＩＬ１〜Ｌ１６を評価ボード上２００に配置して、高温および高電圧を印加した環境で長時間動作させることによって、初期不良品を検出して出荷させないようにすることを目的としている。このように、バーンインテストでは、多数のＬＳＩを同時にテストするので、評価装置２１０に接続できるＬＳＩ１個あたりの入出力端子数は制限される。
【００２８】
図８は、図５で説明した一致ビット数検査及び構成ビット検査を行うためのテスト回路を内蔵したシステムＬＳＩ１００の内部回路構成例を示すものであり、図８では乱数生成回路１に関わる部分だけが図示されている。図８に示すシステムＬＳＩ１００では、システムＬＳＩに、乱数生成回路のテスト回路を内蔵させており、このようにすれば、試作段階（Ｓ１）で、様々な条件で、図２のフローに従って、乱数生成回路の制御パラメータを最適化することができるだけでなく、量産段階（Ｓ２）でも、乱数生成回路の完成度を評価してシステムＬＳＩを選別することが可能となる。
【００２９】
図８において、乱数生成回路１は、パワーオンリセット解除後に動作開始して乱数を発生するものであり、パワーオンリセットの度に異なる乱数（乱数ビット列）を発生する。また、この場合、乱数生成回路１は、シード値を用いることなく乱数を発生させる。通常回路Ｎ１，Ｎ２は、システムＬＳＩ１００における通常動作モードの際に動作するものである。したがって、図８においては、乱数生成回路１，通常回路Ｎ１，Ｎ２以外の回路構成が乱数生成回路のテストモードの際に動作する乱数生成回路用テスト回路として機能する。乱数生成回路用テスト回路は、不揮発性メモリ２、モード設定部３，テストモード制御部４，テストパラメータ管理部５，アドレス管理部６，ライト／リード管理部７，乱数データ格納部８，乱数ビット列一致検査部９，乱数構成ビット検査部１０，乱数品質判定部１１，第１の選択部１２，第２の選択部１３を備える。システムＬＳＩ１００は、テストモードの際に利用する端子部ｔ１，ｔ２，ｔ３を備える。
【００３０】
端子部ｔ１からは、テストモードと通常動作モードとを切り替えるモード切替信号が入力される。端子部ｔ１から入力されるモード切替信号はモード設定部３に入力される。モード設定部３の設定出力は、第１の選択部１２及び第２の選択部１３に入力される。第１の選択部１２は、モード設定部３が通常動作モードに設定されたときは、通常回路Ｎ１の出力を選択して乱数生成回路１に入力し、モード設定部３がテストモードに設定されたときは、テストモード制御部４の出力を選択して乱数生成回路１に入力するような切替動作を実行する。第２の選択部１３は、モード設定部３が通常動作モードに設定されたときは、乱数生成回路１の出力を通常回路Ｎ２に入力し、モード設定部３がテストモードに設定されたときは、乱数生成回路１の出力を不揮発性メモリ２に入力するような切替動作を実行する。なお、図８では図示していないが、モード設定部３の設定出力は、不揮発性メモリ２、テストモード制御部４，テストパラメータ管理部５，アドレス管理部６，ライト／リード管理部７，乱数データ格納部８，乱数ビット列一致検査部９，乱数構成ビット検査
部１０，乱数品質判定部１１に入力されており、これらの各回路は、モード設定部３の設定出力がテストモードになったときに、作動される。
【００３１】
端子部ｔ２からは、乱数生成回路１の制御パラメータや乱数テストに用いるテストパラメータが入力される。これら制御パラメータやテストパラメータは、テストパラメータ管理部５に設定される。
【００３２】
図９は、端子部ｔ２に入力される制御パラメータ、テストパラメータの一例を示すものである。この場合、端子部ｔ２は、少なくとも３６＋１ビットを有し、制御パラメータ、テストパラメータを表現する３６ビットとは別の１端子で、３６ビットの制御パラメータ、テストパラメータの入力有効期間を示してシステムＬＳＩ１００に入力させる。最上位ビット（ＭＳＢ）側の４ビットで情報種別を設定し、下位の３２ビットでパラメータを設定する。ｂ１、ｂ６〜ｂ９で示すパラメータが上述のテストパラメータであり、ｂ２〜ｂ５で示すパラメータが上述の制御パラメータである。
【００３３】
たとえば、ｂ１で示すように、ＭＳＢ側の４ビットが１６進表示でゼロ（４’h０）のとき、下位の３２ビットでパワーオンリセットの繰り返し回数ｍと現在の繰り返し回数を示す。図９の場合は、繰り返し回数ｍは８,０００回(１６’h１Ｆ４０)で、現在の回数は４,１２３回(１６’h１０１Ｂ)である。
【００３４】
図９の場合、乱数生成回路１の制御パラメータは、４本の３２ビットレジスタ分で表現され、これらはＭＳＢ側の４ビットが４’h１から４’h４に割り当てられている(ｂ２〜ｂ５)。このレジスタの本数は、乱数生成回路１の事情に応じて増減する。制御パラメータの数が３２ビットレジスタ５本以上ならば、さらに割り当てが必要となる。少なければ、割り当てを削減してもよい。なお、これら制御パラメータは、前述したように、量産工程に入る前の試作段階での実機評価で最適値に選定しておく。システムＬＳＩでは、通常、特定ビット幅（たとえば、３２ビット幅）の制御レジスタが用意されているので、このビット幅で制御パラメータを表現する。
【００３５】
また、ｂ６、ｂ７で示すように、ＭＳＢ側４ビットが４’h８のときの下位３２ビットのパラメータで、乱数のどの部分を検査対象とするかを指定する。すなわち、乱数生成回路１が生成する乱数について全ビット検査するかそれとも部分的に検査するか、判断基準が分かれることがある。たとえば、１６０ビットの乱数が生成されるとき、乱数生成回路の構成として、乱数を部分的に検査しても理論的に問題がないならば、全１６０ビットを検査するのではなく、最下位の３２ビットだけ検査することなどが考えられる。図９においては、たとえば、下位３２ビットのフィールドの最上位ビットが”１”のときは、全ビットを検査対象とすることを指定している(ｂ６)。このビットが”０”のときは、部分領域を検査対象とすることを指定し、下位６ビットの[５:０]フィールドで指定されるバイト位置から、下位６ビットに続く６ビットの[１１:６]フィールドで指定されるバイト位置までの連続領域を検査対象としている。ｂ７の例では、バイト０からバイト７の合計８バイト（６４ビット）までが対象となっている。ｂ６またはｂ７で指定されたビット数が比較対象ビット数ｎとなる。
【００３６】
また、ｂ８に示すように、ＭＳＢ側４ビットが４’h９のときの下位３２ビットのパラメータには、図３を用いて説明した乱数ビット列一致検査における一致基準（第１〜第３の判断基準）を設定する。図９のｂ８の場合は、前述した第３の判断基準で用いるしきい値ｄが設定されている。第３の判断基準では、前述したように、基準ビット数zよりも大きな所定のビット数をしきい値ｄとして、該しきい値ｄよりも大きな一致ビット数の頻度が１以上であるときに、乱数の品質が悪いと判断するようにしており、図３に示した理想曲線によれば、たとえば、ｍ=８０００、ｎ=１９２のとき、一致ビット数が１３４以上の
頻度はゼロであるので、ｂ８のパラメータとして、１３４以上の所定値ｄ＝１３６（’h８８）に設定している。
【００３７】
また、ｂ９に示すように、ＭＳＢ側４ビットが４’hＡのときの下位３２ビットのパラメータには、図５のＳ２５で説明した乱数構成ビット検査における許容される揺らぎ幅（α）を設定する。すなわち、乱数ビット列における“０”（または“１”）の出現数が、(ｍ/２-α)以上で(ｍ/２+α)以下でない場合に、乱数の品質が悪いと判定される。図９の例では、αは１００（’ｈ６４）に設定されている。
【００３８】
テストパラメータ管理部５には、端子部ｔ２を介して、図９に示したような制御パラメータやテストパラメータが設定され、テストパラメータ管理部５は入力設定された制御パラメータやテストパラメータのうちｂ２〜ｂ５の制御パラメータおよびｂ１、ｂ６、ｂ７のテストパラメータをテストモード制御部４に入力する。また、テストパラメータ管理部５は、ｂ８の乱数ビット列一致検査における一致基準を乱数ビット列一致検査部９に入力する。また、テストパラメータ管理部５は、ｂ１のパワーオンリセットの繰り返し回数ｍと、ｂ９の乱数構成ビット検査における揺らぎ幅αを乱数構成ビット検査部１０に入力する。
【００３９】
テストモード制御部４は、テストモードの際に、入力された制御パラメータ（図９のｂ２〜ｂ５）を第１の選択部１２を介して乱数生成回路１に入力し、乱数生成回路１の乱数生成動作を制御する。また、テストモード制御部４は、入力されたテストパラメータのうちの乱数検査対象のバイト数ｎ（図９のｂ６，ｂ７）と、パワーオンリセット回数ｍ（図９のｂ１）とに基づいて、不揮発性メモリ２に対するライトアドレスおよびライトタイミングなどを決定し、決定したライトアドレスをアドレス管理部６に入力するとともに決定したライトタイミングをライト／リード管理部７に入力する。アドレス管理部６は、入力されたライトアドレスを用いて、不揮発性メモリ２に対して印加するライトまたはリード時のアドレス信号を決定する。ライト／リード管理部７は、入力されたライトタイミングを用いて不揮発性メモリ２に対して印加するライト信号およびリード信号のタイミングを決定する。
【００４０】
不揮発性メモリ２は、電源を切っても記憶内容を保持することができるメモリであり、第２の選択部１３を介して入力される乱数生成回路１からのパワーオンリセット直後の度の乱数列をライト／リード管理部７からのライト信号およびアドレス管理部６からのアドレス信号に従って所定のメモリ領域に格納する。不揮発性メモリ２に格納された乱数列は、ライト／リード管理部７からのリード信号およびアドレス管理部６からのアドレス信号に従って読み出され、テストモード制御部４の制御によって乱数データ格納部８に格納される。不揮発性メモリ２から乱数データ格納部８への乱数列の格納は、ｍ回のパワーオンリセットが終了してから行う。このように、乱数データ格納部８には、ｍ回のパワーオンリセットによって得られたｍ個の乱数列が記憶される。
【００４１】
乱数ビット列一致検査部９は、前述したように、乱数データ格納部８から読み出されたｍ個のパワーオンリセット直後の乱数列の集合について、任意の２個の乱数列を各ビット位置（同じビット位置同士）で比較して一致したビット数（一致ビット数）を検出する処理を２個ずつの乱数列に対し総当たりで行い、一致ビット数の頻度分布を検査する。この場合は、端子部ｔ２から一致基準パラメータｂ８として前述した第３の判断基準で用いるしきい値ｄが設定されており、乱数ビット列一致検査部９は、基準ビット数zよりも大きな所定のビット数をしきい値ｄとして、該しきい値ｄよりも大きな一致ビット数の頻度が１以上であるときに、乱数の品質が悪いと判断する。
【００４２】
乱数構成ビット検査部１０は、図５のＳ２５で説明した乱数構成ビット検査を実行する
。すなわち、パワーオンリセットをｍ回繰り返して取得したパワーオンリセット直後のｍ個の乱数値に対して、同一ビット位置に出現する“０”または“１”の個数を計数し、この計数値が所定の揺らぎの範囲α内にない場合に、乱数品質が悪いと判断する。
【００４３】
乱数品質判定部１１は、乱数ビット列一致検査部９の検査結果および乱数構成ビット検査部１０の検査結果に基づいて本システムＬＳＩに内蔵されている乱数生成回路１の品質の合否を判定し、その合否の判定結果を１ビットの２値の出力として端子部ｔ３から出力する。乱数品質判定部１１は、乱数ビット列一致検査部９の検査結果および乱数構成ビット検査部１０の検査結果が双方合格である場合に、本システムＬＳＩに内蔵されている乱数生成回路１が合格であると判定し、そうでない場合に、不合格であると判定する。この端子部ｔ３からの出力を適宜の表示器に接続すれば、当該乱数生成回路１の品質をＯＫまたはＮＧで表示させることができる。
【００４４】
つぎに、図７に示したバーンインテスト装置の評価ボード２００に、図８に示したシステムＬＳＩ１００を複数個載置して、バーンインテストと並行して乱数生成回路１の検査を行う際の動作について説明する。各システムＬＳＩ１００の電源ラインは、評価装置２１０に接続されており、評価装置２１０の制御によって各システムＬＳＩ１００は複数回のパワーオンリセットを実行する。また、各システムＬＳＩ１００の端子部ｔ１〜ｔ３も、評価装置２１０に接続されており、各システムＬＳＩ１００の端子部ｔ１には各システムＬＳＩ１００をテストモードに切り替えるモード切替信号が入力され、端子部ｔ２には、試作段階で最適化された乱数生成回路１の制御パラメータや乱数テストに用いるテストパラメータが入力される。また、端子部ｔ３から出力される各システムＬＳＩ１００の合否の検査結果は、評価装置２１０の適宜の表示部に個別に表示される。
【００４５】
第１回目のパワーオンリセットが評価装置２１０によって実行されると、このパワーオンリセット後、テストモード制御部４が、テストパラメータ管理部５から受け取った制御パラメータ（図９のｂ２〜ｂ５）を第１の選択部１２を介して乱数生成回路１に入力し、これにより乱数生成回路１は入力された制御パラメータに従って起動し、乱数列を発生する。また、テストモード制御部４は、テストパラメータ管理部５から受け取った各種テストパラメータ（図９のｂ１、ｂ６〜ｂ９）を所要の回路部に入力する。乱数生成回路１から発生された乱数列は、アドレス管理部６およびライト／リード管理部７の制御によって第２の選択部１３を介して不揮発性メモリ２に書き込まれる。第１回目のパワーオンリセットから所定の時間が経過すると、評価装置２１０によって第２回目のパワーオンリセットが実行され、前記と同様にして、乱数生成回路１から発生された乱数列は、不揮発性メモリ２に書き込まれる。このような処理が設定されたパワーオンリセット繰り返し回数ｍだけ繰り返されることにより、不揮発性メモリ２には、ｍ個のパワーオンリセット直後の乱数列が格納される。
【００４６】
この後、不揮発性メモリ２に格納されたｍ個の乱数列は、乱数データ格納部８に格納される。乱数ビット列一致検査部９は、前述したように、乱数データ格納部８に格納されたｍ個の乱数列を用いて一致ビット数の頻度分布を求め、この頻度分布を用いて乱数生成回路１の合否を判定する。乱数構成ビット検査部１０も、前述したように、乱数データ格納部８に格納されたｍ個の乱数列を用いて乱数構成ビット検査を行って、乱数生成回路１の合否を判定する。乱数品質判定部１１は、乱数ビット列一致検査部９の検査結果および乱数構成ビット検査部１０の検査結果に基づいて本システムＬＳＩ１００に内蔵されている乱数生成回路１の品質の合否を判定し、その合否の判定結果を１ビットの２値の出力として端子部ｔ３から出力する。このようにして評価ボード２００上に並べられた複数のシステムＬＳＩ１００の各端子部ｔ３から乱数生成回路１の品質の合否の判定結果が出力され、これら判定結果は評価装置２１０の適宜の表示部に各システムＬＳＩ別に表示される。
【００４７】
このように第１の実施の形態によれば、試作段階（Ｓ１）では、乱数生成回路の制御パラメータを調整しながらシステムＬＳＩ１００内の乱数生成回路１から出力される乱数の検査を行って制御パラメータを最適化し、量産段階（Ｓ２）では、システムＬＳＩ１００に対するパワーオンリセットを予め設定された所定回数ｍだけ繰り返すことにより、最適化された制御パラメータが設定された乱数生成回路１からパワーオンリセットの度に出力されるパワーオンリセット直後の乱数ビット列を取得し、該取得した所定個数ｍのパワーオンリセット直後の乱数ビット列の検査を行って、システムＬＳＩに内蔵される乱数生成回路の良否を判定するようにしているので、システムＬＳＩに内蔵される乱数生成回路を量産段階で低コストで効率よく検査することが可能となり、初期不良の発生を防ぐことが可能となる。
【００４８】
また、第１の実施の形態によれば、パワーオンリセットの都度パワーオンリセット直後にシステムＬＳＩ内蔵の乱数生成回路で生成させた乱数値を、システムＬＳＩ内蔵のテスト回路で検査して、その合否を判定し、合否の判定結果を端子出力しているので、量産段階における既存のバーンイン工程などへの適用が容易となり、これにより、低コストで効率的に、システムＬＳＩ内蔵の乱数生成回路を評価し、初期不良の発生を防ぐことが可能となる。
【００４９】
また、図９にｂ１〜ｂ６〜ｂ９で示したテストパラメータをシステムＬＳＩに外部端子から入力するようにしているので、乱数に対する要求品質に対応してこれらテストパラメータを変更するようにすれば、量産工程でのテストにおける検査基準、判断基準などを調整することが可能である。
【００５０】
なお、パワーオンリセット回数ｍ以外のパラメータは、初回のパワーオンリセットのときにのみ与えることとし、この際、不揮発性メモリに格納させてもよい。その場合、２回目以降のパワーオンリセットでの乱数値取得では、不揮発性メモリに格納されたパラメータに基づき、乱数発生回路などを動作させる。
【００５１】
また、上記では、端子部t２は、３７本で構成されることになる。これに対して、上記３６ビットの情報を１端子でシリアルに入力し、これとは別の１端子で上記の情報の入力有効期間を示すというような２端子で端子部t２を構成してもよい。このようにシリアル入力にすれば、テストに必要な端子数を削減できるので、図７に示したようなパッケージバーンインテストのための評価ボードへのＬＳＩ搭載数を増加させることができる。これは、パッケージバーンインテスト時間を短縮できるメリットがある。
【００５２】
また、上記では、量産工程において、一致ビット検査及び構成ビット検査を行うようにしたが、これら２つのいずれか一方の検査を行うようにしてもよいし、さらに乱数の周期性を検査するような他の任意の検査を行うようにしてもよい。
【００５３】
（第２の実施の形態）
つぎに、本発明の第２の実施の形態を説明する。図１０は、図８に示したシステムＬＳＩ１００の他の構成例を示すものである。図１０に示すシステムＬＳＩ１００においては、図８に示した不揮発性メモリ２の代わりに、システムＬＳＩに通常備えられている内蔵ＳＲＡＭ Ｎ６を用いるようにしている。この内蔵ＳＲＡＭ Ｎ６は、システムＬＳＩの通常モードで使用されていて、乱数生成回路のテストにも流用する。
【００５４】
図１０において、第３の選択部１４は、モード設定部３が通常動作モードに設定されたときは、通常回路Ｎ３の出力を選択して内蔵ＳＲＡＭ Ｎ６に入力し、モード設定部３がテストモードに設定されたときは、アドレス管理部６の出力を選択して内蔵ＳＲＡＭ Ｎ６に入力するような切替動作を実行する。第４の選択部１５は、モード設定部３が通常動
作モードに設定されたときは、通常回路Ｎ４の出力を選択して内蔵ＳＲＡＭ Ｎ６に入力し、モード設定部３がテストモードに設定されたときは、ライト／リード管理部７の出力を選択して内蔵ＳＲＡＭ Ｎ６に入力するような切替動作を実行する。第５の選択部１６は、モード設定部３が通常動作モードに設定されたときは、内蔵ＳＲＡＭ Ｎ６の出力を通常回路Ｎ５に入力し、モード設定部３がテストモードに設定されたときは、内蔵ＳＲＡＭ Ｎ６の出力を乱数データ格納部８に入力するような切替動作を実行する。図１０において、他の構成要素は図８に示したものと同じ機能を達成するので、重複する説明は省略する。
【００５５】
先の図８に示したシステムＬＳＩでは、乱数生成回路テスト専用に不揮発性メモリ２を用意する必要があったが、図１０に示したシステムＬＳＩではそれを不要にすることができるというメリットがある。これは、ＬＳＩの製造工程の面で、たとえば、マスクＲＯＭを組み込むための製造工程の省略にもつながり、製造コストを低減させるというメリットもある。ただし、この内蔵ＳＲＡＭ Ｎ６の電源は他の回路とは別系統とし、独立させておく必要がある。それは、パワーオンリセットを繰り返しても、ｍ個のパワーオンリセット直後の乱数をすべて内蔵ＳＲＡＭ Ｎ６に保持させるためであり、パワーオンリセットでＳＲＡＭの記憶内容が消えないようにするためである。このため、乱数生成回路のテスト期間中は、内蔵ＳＲＡＭ Ｎ６には常時電源を供給する。
【００５６】
ところで、上記第１、第２の実施の形態では、パワーオンリオセットをｍ回繰り返すことにより、ｍ個のパワーオンリセット直後の乱数を取得し、これらｍ個のパワーオンリセット直後の乱数を用いて乱数検査を行うようにしたが、本発明では、パワーオンリセット後の所定のタイミングで発生する乱数を取得するようにしてもよい。例えば、乱数列が複数周期発生する乱数発生回路であれば、パワーオンリセット後、予め設定したｉ周期目に発生する乱数列をパワーオンリセットの度に取得するようにしてもよく、あるいはパワーオンリセット後、予め設定した所定クロック後から発生する乱数列をパワーオンリセットの度に取得するようにしてもよい。
【図面の簡単な説明】
【００５７】
【図１】一般的なＬＳＩ製造工程を示す図。
【図２】試作段階での乱数生成回路の制御パラメータの最適化手順を示すフローチャート。
【図３】乱数列の一致ビット数の頻度分布を示す図。
【図４】パワーオンリセット直後での乱数品質評価手順を示すフローチャート。
【図５】パワーオンリセット直後での他の乱数品質評価手順を示すフローチャート。
【図６】一般的な量産段階のＬＳＩ製造工程を示す図。
【図７】パッケージバーンインテストの様子を示す図。
【図８】テスト回路を内蔵したシステムＬＳＩの第１の実施の形態での内部回路構成例を示すブロック図。
【図９】端子部に入力される制御パラメータ、テストパラメータのフォーマットを示す図。
【図１０】テスト回路を内蔵したシステムＬＳＩの第２の実施の形態での内部回路構成例を示すブロック図。
【符号の説明】
【００５８】
１        乱数生成回路
２        不揮発性メモリ
３        モード設定部
４        テストモード制御部
５        テストパラメータ管理部
６        アドレス管理部
７        ライト／リード管理部
８        乱数データ格納部
９        乱数ビット列一致検査部
１０      乱数構成ビット検査部
１１      乱数品質判定部
１００    システムＬＳＩ
２００    評価ボード
２１０    評価装置
Ｎ６      内蔵ＳＲＡＭ
【図１】
2009098973.tif 000003
【図２】
2009098973.tif 000004
【図３】
2009098973.tif 000005
【図４】
2009098973.tif 000006
【図５】
2009098973.tif 000007
【図６】
2009098973.tif 000008
【図７】
2009098973.tif 000009
【図８】
2009098973.tif 000010
【図９】
2009098973.tif 000011
【図１０】
2009098973.tif 000012