(57)【要約】【課題】期待したビット列が生成されたことを確認できる判定回路を提供する。【解決手段】データ生成回路は、共通に接続されたセット入力及びリセット入力を有し、入力信号を入力した時にビット列を出力するラッチ回路であって、イオン濃度を調整することにより閾値が設定されたトランジスタを有し、駆動電圧が動作電圧とは異なる電圧である場合に入力信号に応じて第１の出力状態をラッチして出力し、駆動電圧が動作電圧である場合に入力信号に応じて設定された閾値に基づく第２の出力状態をラッチして出力するラッチ回路と、ラッチ回路が出力するビット列を入力し、１ビット目のデータと２ビット目以降のデータとを比較して、２ビット目以降のデータが一致しており且つ２ビット目以降のデータが１ビット目のデータを反転したデータであるかを判定する判定回路と、を備え、判定回路の判定結果に基づいて出力データを生成する。【選択図】図１
2014010867.tif 000002
【特許請求の範囲】
【請求項１】
共通に接続されたセット入力及びリセット入力を有し、前記共通に接続されたセット入力及びリセット入力に所定の入力信号を入力した時に、ビット列を出力するラッチ回路であって、イオン濃度を調整することにより閾値が設定されたトランジスタを有し、前記ラッチ回路を駆動する電圧が動作電圧とは異なる電圧である状態において、前記入力信号に応じて第１の出力状態をラッチして出力し、前記ラッチ回路を駆動する電圧が前記動作電圧である状態において、前記入力信号に応じて前記設定された閾値に基づく第２の出力状態をラッチして出力するラッチ回路と、
前記ラッチ回路が出力する前記ビット列を入力し、１ビット目のデータと２ビット目以降のデータとを比較して、２ビット目以降のデータが一致しており且つ２ビット目以降のデータが１ビット目のデータを反転したデータであるかを判定する判定回路と、
を備え、
前記判定回路の判定結果に基づいて出力データを生成するデータ生成回路。
【請求項２】
前記ラッチ回路を駆動する電圧を変動させる電圧変動回路を備える請求項１に記載のデータ生成回路。
【請求項３】
前記電圧変動回路は、前記ラッチ回路を駆動する電圧を、前記動作電圧よりも低い第１電圧未満の電圧に低下させた後、前記動作電圧に変化させる請求項２に記載のデータ生成回路。
【請求項４】
前記電圧変動回路は、前記ラッチ回路を駆動する電圧を、動作電圧よりも高い第２電圧よりも高い電圧に上昇させた後、前記動作電圧に変化させる請求項２に記載のデータ生成回路。
【請求項５】
複数の前記判定回路が判定した結果の多数決に基づいて、多数決による判断を行う多数決回路を備える請求項１〜４の何れか一項に記載のデータ生成回路。
【請求項６】
共通に接続されたセット入力及びリセット入力を有し、前記共通に接続されたセット入力及びリセット入力に所定の入力信号を入力した時に、ビット列を出力するラッチ回路であって、イオン濃度を調整することにより閾値が設定されたトランジスタを有し、前記ラッチ回路を駆動する電圧が動作電圧とは異なる電圧である状態において、前記入力信号に応じて第１の出力状態をラッチして出力し、前記ラッチ回路を駆動する電圧が前記動作電圧である状態において、前記入力信号に応じて前記設定された閾値に基づく第２の出力状態をラッチして出力するラッチ回路と、
前記ラッチ回路が出力する前記ビット列を入力し、１ビット目のデータと２ビット目以降のデータとを比較して、２ビット目以降のデータが一致しており且つ２ビット目以降のデータが１ビット目のデータを反転したデータであるかを判定する判定回路と、
を備え、
前記判定回路の判定結果に基づいて出力データを生成するデータ生成回路を備える半導体装置。
【請求項７】
共通に接続されたセット入力及びリセット入力を有するラッチ回路であって、イオン濃度を調整することにより閾値が設定されたトランジスタを有するラッチ回路を用いて、
前記ラッチ回路を駆動する電圧が動作電圧とは異なる電圧である状態において、前記共通に接続されたセット入力及びリセット入力に所定の入力信号を入力して第１の出力状態をラッチさせて１ビット目のデータを出力させ、
続いて前記ラッチ回路を駆動する電圧が前記動作電圧である状態において、前記共通に接続されたセット入力及びリセット入力に所定の入力信号を入力して前記設定された閾値に基づく第２の出力状態をラッチさせて２ビット目以降のデータを出力させ、
前記ラッチ回路が出力する前記１ビット目のデータと前記２ビット目以降のデータとを比較して、２ビット目以降のデータが一致しており且つ２ビット目以降のデータが１ビット目のデータを反転したデータであるかを判定する判定方法。
【請求項８】
前記ラッチ回路へ電力を供給する電源の起動時に、
前記動作電圧よりも低い第３電圧以上であり且つ前記動作電圧よりも低い第４電圧未満の電圧を前記ラッチ回路に供給して、前記ラッチ回路に前記１ビット目のデータを生成させ、
前記動作電圧を前記ラッチ回路に供給して、前記ラッチ回路に前記２ビット目以降のデータを生成させる請求項７に記載の判定方法。
【請求項９】
前記ラッチ回路と、前記ラッチ回路へ電力を供給する電源との間に可変抵抗を配置して、前記ラッチ回路が前記２ビット目以降のデータを生成する時に、前記可変抵抗の抵抗値を、前記ラッチ回路が前記１ビット目を生成した時よりも大きくする請求項７又は８に記載の判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ生成回路、半導体装置及び判定方法に関する。
【背景技術】
【０００２】
従来、ＩＤ等のデータを生成する回路が用いられている。
【０００３】
ＩＤは、例えば個体を認識する情報であり、外部に対して秘匿されるものである。
【０００４】
このような情報を秘匿する技術として、Ｐｈｙｓｉｃａｌ  Ｕｎｃｌｏｎａｂｌｅ  Ｆｕｎｃｔｉｏｎ：ＰＵＦ技術が提案されている。ＰＵＦ技術を用いた半導体装置では、例えば、回路を形成するトランジスタの閾値がイオン濃度を調整することにより設定されている。そのため、ＰＵＦ技術を用いた半導体装置の回路パターンは、リバースエンジニアリングにより光学的に複製することはできないと考えられている。
【０００５】
そこで、ＰＵＦ技術を用いて半導体装置を製造することにより、ＩＤ等の情報を秘匿することが提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−２５２７１３号公報
【特許文献２】特開２００３−２９９６４号公報
【特許文献３】特開２００２−２３６５８２号公報
【特許文献４】特開２０１０−２６６４１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＰＵＦ技術を用いた半導体装置が動作すると、トランジスタが設定された閾値に基づいて動作することにより、ＩＤ等のデータを生成する。
【０００８】
しかし、半導体装置の製造工程の不具合に起因して回路の接触不良等によりアンバランスな状態が形成され、結果として期待した通りのデータが生成される場合がある。
【０００９】
例えば、ＰＵＦ技術を用いない場合には、不揮発性メモリにＩＤ等のデータを書き込んだ後に、その書き込んだデータを読み出して書き込んだデータを検証することができる。
【００１０】
しかし、ＰＵＦ技術を用いた半導体装置の場合には、ＰＵＦ技術を用いた半導体装置が生成したデータが期待された値であるのか、又は、回路に不具合があるにも関わらず、結果として期待された値が生成されたものであるのかを判定することが困難であった。
【００１１】
そこで、本明細書では、上述した問題点を解決するデータ生成回路を提供することを目的とする。
【００１２】
また、本明細書では、上述した問題点を解決するデータ生成回路を備えた半導体装置を提供することを目的とする。
【００１３】
更に、本明細書では、上述した問題点を解決する判定方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本明細書に開示するデータ生成回路によれば、共通に接続されたセット入力及びリセット入力を有し、上記共通に接続されたセット入力及びリセット入力に所定の入力信号を入力した時に、ビット列を出力するラッチ回路であって、イオン濃度を調整することにより閾値が設定されたトランジスタを有し、上記ラッチ回路を駆動する電圧が動作電圧とは異なる電圧である状態において、上記入力信号に応じて第１の出力状態をラッチして出力し、上記ラッチ回路を駆動する電圧が上記動作電圧である状態において、上記入力信号に応じて上記設定された閾値に基づく第２の出力状態をラッチして出力するラッチ回路と、上記ラッチ回路が出力する上記ビット列を入力し、１ビット目のデータと２ビット目以降のデータとを比較して、２ビット目以降のデータが一致しており且つ２ビット目以降のデータが１ビット目のデータを反転したデータであるかを判定する判定回路と、を備え、上記判定回路の判定結果に基づいて出力データを生成する。
【００１５】
また、本明細書に開示する半導体装置によれば、共通に接続されたセット入力及びリセット入力を有し、上記共通に接続されたセット入力及びリセット入力に所定の入力信号を入力した時に、ビット列を出力するラッチ回路であって、イオン濃度を調整することにより閾値が設定されたトランジスタを有し、上記ラッチ回路を駆動する電圧が動作電圧とは異なる電圧である状態において、上記入力信号に応じて第１の出力状態をラッチして出力し、上記ラッチ回路を駆動する電圧が上記動作電圧である状態において、上記入力信号に応じて上記設定された閾値に基づく第２の出力状態をラッチして出力するラッチ回路と、上記ラッチ回路が出力する上記ビット列を入力し、１ビット目のデータと２ビット目以降のデータとを比較して、２ビット目以降のデータが一致しており且つ２ビット目以降のデータが１ビット目のデータを反転したデータであるかを判定する判定回路と、を備え、上記判定回路の判定結果に基づいて出力データを生成するデータ生成回路を備える。
【００１６】
更に、本明細書に開示する判定方法によれば、共通に接続されたセット入力及びリセット入力を有するラッチ回路であって、イオン濃度を調整することにより閾値が設定されたトランジスタを有するラッチ回路を用いて、上記ラッチ回路を駆動する電圧が動作電圧とは異なる電圧である状態において、上記共通に接続されたセット入力及びリセット入力に所定の入力信号を入力して第１の出力状態をラッチさせて１ビット目のデータを出力させ、続いて上記ラッチ回路を駆動する電圧が上記動作電圧である状態において、上記共通に接続されたセット入力及びリセット入力に所定の入力信号を入力して上記設定された閾値に基づく第２の出力状態をラッチさせて２ビット目以降のデータを出力させ、上記ラッチ回路が出力する上記１ビット目のデータと上記２ビット目以降のデータとを比較して、２ビット目以降のデータが一致しており且つ２ビット目以降のデータが１ビット目のデータを反転したデータであるかを判定する。
【発明の効果】
【００１７】
上述した本明細書に開示するデータ生成回路によれば、期待したビット列が生成されたことを確認できる。
【００１８】
また、上述した本明細書に開示する半導体装置によれば、期待したビット列が生成されたことを確認できる。
【００１９】
更に、上述した本明細書に開示する判定方法によれば、期待したビット列が生成されたことを確認できる。
【００２０】
本発明の目的及び効果は、特に請求項において指摘される構成要素及び組み合わせを用いることによって認識され且つ得られるだろう。
【００２１】
前述の一般的な説明及び後述の詳細な説明の両方は、例示的及び説明的なものであり、特許請求の範囲に記載されている本発明を制限するものではない。
【図面の簡単な説明】
【００２２】
【図１】本明細書に開示する半導体装置の第１実施形態を示す図である。
【図２】ビット列生成回路を説明する図である。
【図３】判定回路を説明する図（その１）である。
【図４】３ビットカウンタを説明する図である。
【図５】合成クロックＳＣＫを説明する図である。
【図６】半導体装置の動作を説明するタイミングチャートである。
【図７】判定回路を説明する図（その２）である。
【図８】判定回路を説明する図（その３）である。
【図９】判定回路を説明する図（その４）である。
【図１０】判定回路を説明する図（その５）である。
【図１１】判定回路を説明する図（その６）である。
【図１２】判定回路を説明する図（その７）である。
【図１３】ビット列生成回路に電力を供給する電源の起動時の電圧波形を説明する図である。
【図１４】ＲＳラッチの動作を説明する図（その１）である。
【図１５】ＲＳラッチの動作を説明する図（その２）である。
【図１６】電源電圧のノイズを除去するフィルタを説明する図である。
【図１７】可変抵抗を説明する図である。
【図１８】第１実施形態の半導体装置の変型例１を示す図である。
【図１９】第１実施形態の半導体装置の変型例２を示す図である。
【図２０】本明細書に開示する半導体装置の第２実施形態を示す図である。
【図２１】多数決回路を説明する図である。
【発明を実施するための形態】
【００２３】
以下、本明細書で開示する半導体装置の好ましい実施形態を、図を参照して説明する。但し、本発明の技術範囲はそれらの実施形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【００２４】
図１は、本明細書に開示する半導体装置の第１実施形態を示す図である。
【００２５】
本実施形態の半導体装置１０は、乱数及び固定値等のデータを生成する装置である。半導体装置１０が生成した乱数のデータは、そのデータを乱数として用いても良いし、又は、そのデータに基づいて新たな乱数が生成されても良い。同様に、半導体装置１０が生成した固定値のデータは、そのデータを固定値として用いても良いし、又は、そのデータに基づいて新たな固定値が生成されても良い。この固定値は、例えば、ＩＤ等のデータとして使用され得る。
【００２６】
半導体装置１０は、ビット列を生成して出力するビット列生成回路ブロック２０Ａと、ビット列生成回路ブロック２０Ａからビット列を入力して、ビット列が期待されたように生成されたかを判定する判定回路ブロック３０Ａとを備える。
【００２７】
ビット列生成回路ブロック２０Ａは、複数のビット列生成回路２０を有する。各ビット列生成回路２０は、システムクロックに基づいて生成された合成クロックＳＣＫを入力してビット列を生成し、生成したビット列を判定回路ブロック３０Ａに出力する。
【００２８】
判定回路ブロック３０Ａは、複数の判定回路３０を有する。各判定回路３０は、対応するビット列生成回路２０からビット列を入力し、ビット列が期待されたように生成されたことを判定した判定結果を出力する。
【００２９】
各判定回路３０が出力する判定結果は、ビット列が期待されたように生成されたことを示すフラグＪと、ビット列の内の１ビット目のデータＢ１と、ビット列の内の２ビット目以降のデータが一致していることを示すフラグＢ２とを有する。
【００３０】
フラグＪは、ビット列が期待されたように生成された場合には、１の値を有する。一方、フラグＪは、ビット列が期待されたように生成されていない場合には、０の値を有する。
【００３１】
ビット列が期待されたように生成された場合には、１ビット目のデータＢ１は、乱数であると判定される。
【００３２】
また、ビット列が期待されたように生成された場合には、２ビット目以降のデータは一致しており且つ２ビット目以降のデータは１ビット目のデータを反転したデータとなる。そして、ビット列が期待されたように生成された場合には、２ビット目以降のデータは固定値であると判定される。
【００３３】
また、２ビット目以降のデータが一致している場合には、フラグＢ２は０の値を有する。一方、２ビット目以降のデータが一致していない場合には、フラグＢ２は１の値を有する。
【００３４】
図１に示す例では、ビット列は、６個のビットにより形成されるが、ビット列は、３個以上のビットを有していれば６個に限定されるものではない。
【００３５】
また、ビット列生成回路ブロック２０Ａ内に配置されるビット列生成回路２０の数は、生成すべき乱数及び固定値の数に応じて適宜設定される。
【００３６】
次に、ビット列生成回路２０について、更に以下に説明する。
【００３７】
図２は、ビット列生成回路を説明する図である。
【００３８】
本実施形態のビット列生成回路２０は、共通に接続されたセット入力及びリセット入力を有し、共通に接続されたセット入力及びリセット入力に所定の信号を入力した時に、ビット列を出力するＲＳラッチである。本実施形態では、所定の信号として、合成クロックＳＣＫを用いる。この合成クロックＳＣＫの詳しい説明は後述する。
【００３９】
ビット列生成回路２０は、セット入力及びリセット入力に接続された共通入力２１と、相互に接続された２つのＮＡＮＤ回路２２，２３と、非反転出力２４と、反転出力２５とを有する。
【００４０】
ビット列生成回路２０は、イオン濃度を調整することにより閾値が設定されたトランジスタを有する。ここで、イオン濃度を調整することは、単位体積当たりのイオン数又は深さ方向のイオン濃度の分布を含む意味である。
【００４１】
所定の動作電圧が供給されるビット列生成回路２０は、入力される所定の信号が、安定な出力状態を与える信号から不定な出力状態を与える信号へ変化した時に、設定された閾値に基づいた出力状態に遷移する。
【００４２】
ビット列生成回路２０は、入力Ａ＝０の時には、出力（Ｂ，Ｃ）＝（１，１）で安定な出力状態となる。
【００４３】
そして、入力をＡ＝０からＡ＝１に変化させた時には、設定された閾値に基づいて、出力（Ｂ，Ｃ）＝（１，０）又は（Ｂ，Ｃ）＝（０，１）の出力状態に遷移する。
【００４４】
通常のＲＳラッチでは、ＮＡＮＤ回路を形成するトランジスタの閾値は同様に調整されており、上述したように入力をＡ＝０からＡ＝１に変化させた時には、出力状態は不定になる。
【００４５】
一方、本実施形態のビット列生成回路２０は、ＮＡＮＤ回路を形成するトランジスタの閾値を調整することにより駆動能力に差をつけて、入力をＡ＝０からＡ＝１に変化させた時に意図した状態に遷移するように重み付けがなされている。
【００４６】
ビット列生成回路２０は、所定の動作電圧が供給されて、ビット列の内の２ビット目以降のデータを生成する。ビット列生成回路２０は、２ビット目以降のデータとして、トランジスタの設定された閾値に基づいて１又は０の固定値を生成する。
【００４７】
ビット列生成回路２０を形成するトランジスタはイオン濃度を調整することにより閾値が設定されており、各ビット列生成回路２０が生成する固定値が決定される。
【００４８】
ビット列生成回路２０は、合成クロックＳＣＫを入力し、合成クロックＳＣＫと同期してビットデータを生成し、生成したビットデータを対応する判定回路３０に出力する。
【００４９】
正常なビット列生成回路２０は、２ビット目以降のデータが一致したビット列を生成する。一方、図１に示す例のように、ビット列生成回路２０は、製造工程の不具合等に起因して、２ビット目以降のデータが一致しないビット列を生成する場合もある。このようなビット列は、判定回路３０によって、ビット列が期待されたように生成されていないと判定されるので、乱数又は固定値として使用されない。
【００５０】
また、ビット列生成回路２０は、所定の動作電圧よりも低く且つノイズを有する電圧が供給されて、ビット列の内の１ビット目のデータを生成する。そして、ビット列生成回路２０を形成するトランジスタ等の素子が正常に動作しない場合には、ビット列生成回路２０は、固定値を反転したデータをランダムに生成する。そこで、半導体装置１０は、ビット列の内の１ビット目のデータが固定値を反転したデータである場合には、１ビット目のデータを乱数として使用する。所定の動作電圧よりも低く且つノイズを有する電圧が供給されたビット列生成回路２０が、１ビット目のデータとして乱数を生成することの詳しい説明は後述する。
【００５１】
次に、判定回路３０について、更に以下に説明する。
【００５２】
図３は、判定回路を説明する図である。
【００５３】
判定回路３０は、ビット列生成回路２０からビット列の信号ＯＲＳを入力する。判定回路３０は、ビット列の１ビット目のデータと２ビット目以降のデータとを比較して、２ビット目以降のデータが一致しており且つ２ビット目以降のデータが１ビット目のデータを反転したデータであるかを判定する。
【００５４】
図３に示す例では、判定回路３０は、ビット列０００００１を入力する。ビット列は、最下位ビットＬＳＢとして１を有し、最上位ビットＭＳＢとして０を有する。ビット列の１ビット目のデータは、ＬＳＢである１であり、２ビット目以降のデータは、ＭＳＢを含む０００００である。
【００５５】
判定回路３０は、ビット列生成回路２０からビット列の信号ＯＲＳを入力するシフトレジスタ３１を有する。シフトレジスタ３１は、直列に接続された６個のＤ型フリップフロップＤＦＦ０〜ＤＦＦ５を有する。各Ｄ型フリップフロップは、合成クロックＳＣＫと同期して、ビット列生成回路２０からのデータを１ビットずつシフトしていく。
【００５６】
図３には、６個のＤ型フリップフロップＤＦＦ０〜ＤＦＦ５それぞれにビット列０００００１の各ビットデータが保持された状態が示されている。
【００５７】
Ｄ型フリップフロップＤＦＦ０〜ＤＦＦ４は、保持するデータを端子Ｑ０〜Ｑ４からＸＯＲ回路３２に出力する。また、Ｄ型フリップフロップＤＦＦ４、ＤＦＦ５は、保持するデータを端子Ｑ４、Ｑ５からＸＯＲ回路３３に出力する。更に、Ｄ型フリップフロップＤＦＦ５は、保持するデータを端子Ｑ５から１ビット目のデータＢ１として出力する。
【００５８】
ＸＯＲ回路３２は、入力した２ビット目以降のデータのＸＯＲ論理値を生成して、ＮＡＮＤ回路３６の一方の入力に出力すると共に、ＸＯＲ論理値をフラグＢ２として出力する。
【００５９】
図３に示す例では、ＸＯＲ回路３２は、ＸＯＲ（０，０，０，０，０）＝０を、ＮＡＮＤ回路３６に出力すると共に、フラグＢ２として出力する。
【００６０】
ＸＯＲ回路３３は、入力した１ビット目のデータと２ビット目のデータとのＸＯＲ論理値を生成して、ＮＡＮＤ回路３７の一方の入力に出力する。
【００６１】
図３に示す例では、ＸＯＲ回路３３は、ＸＯＲ（０，１）＝１を、ＮＡＮＤ回路３７に出力する。
【００６２】
また、判定回路３０は、３ビットカウンタ３４と、３ビットカウンタ３４の出力の論理積を生成するＡＮＤ回路３５とを有する。３ビットカウンタ３４とＡＮＤ回路３５とは、３本のビット線によって接続される。
【００６３】
図４は、３ビットカウンタを説明する図である。
【００６４】
３ビットカウンタ３４は、システムクロックＣＫを入力してクロック数をカウントし、カウント数をＡＮＤ回路３５に出力する。
【００６５】
３ビットカウンタ３４は、７番目のクロックを入力すると、３本のビット線の全てから１をＡＮＤ回路３５に出力する。
【００６６】
３本のビット線の全てから１を入力したＡＮＤ回路３５は、その論理積であるＡＮＤ（１，１，１）＝１を、ＮＡＮＤ回路３６の他方の入力及びＮＡＮＤ回路３７の他方の入力に出力する。
【００６７】
ＮＡＮＤ回路３６は、ＡＮＤ回路３５から１を入力し且つＸＯＲ回路３２から０を入力すると、ＮＡＮＤ論理値である１を、ＡＮＤ回路３９の一方の入力に出力する。
【００６８】
また、ＮＡＮＤ回路３７は、ＡＮＤ回路３５から１を入力し且つＸＯＲ回路３３から１を入力すると、ＮＡＮＤ論理値である０を、インバータ３８に出力する。インバータ３８は、ＮＡＮＤ論理値である０を反転した反転値１をＡＮＤ回路３９の他方の入力に出力する。
【００６９】
一方及び他方の入力それぞれから１を入力したＡＮＤ回路３９は、フラグＪとして１を出力する。
【００７０】
このようにして、ビット列０００００１を入力した判定回路３０は、入力したビット列が期待されたように生成されたことを示すフラグＪとして１を出力する。また、ビット列０００００１を入力した判定回路３０は、１ビット目のデータＢ１として１を出力する。更に、ビット列０００００１を入力した判定回路３０は、２ビット目以降のデータが一致していることを示すフラグＢ２として０を出力する。
【００７１】
次に、合成クロックＳＣＫについて、以下に更に説明する。
【００７２】
図５は、合成クロックＳＣＫを説明する図である。
【００７３】
ＳＣＫ信号生成回路５０は、初期リセットパルスＩＲＳＴと、システムクロックＣＫと、パワーオンリセット（Ｐｏｗｅｒ  Ｏｎ  Ｒｅｓｅｔ：ＰＯＲ）信号に基づいて、合成クロックＳＣＫを生成する。
【００７４】
ＰＯＲ信号は、半導体装置１０の電源が投入された時、半導体装置１０が有する回路の状態を初期化するための信号である。ＰＯＲ信号は、例えば、電源の電圧が、動作電圧の５０〜７０％程度に上昇した時点で出力される。
【００７５】
初期リセットパルスＩＲＳＴは、ＩＲＳＴ信号生成回路４０により生成される。
【００７６】
ＩＲＳＴ信号生成回路４０は、ＰＯＲ信号を入力する遅延回路４１と、遅延回路４１の出力に接続するインバータ４２と、インバータ４２の出力及びＰＯＲ信号を入力するＮＡＮＤ回路４３と、ＮＡＮＤ回路４３の出力に接続するインバータ４４とを有する。
【００７７】
ＰＯＲ信号は、所定の期間に亘ってハイ状態を有する信号なので、ＩＲＳＴ信号生成回路４０は、遅延回路４１等を用いて、初期リセットパルスＩＲＳＴを生成する。
【００７８】
ＳＣＫ信号生成回路５０は、システムクロックＣＫ及びＰＯＲ信号を入力するＡＮＤ回路５１と、ＡＮＤ回路５１の出力と初期リセットパルスＩＲＳＴとの論理和を生成して合成クロックＳＣＫを出力するＯＲ回路５２とを有する。
【００７９】
ＡＮＤ回路５１は、ＰＯＲ信号とシステムクロックＣＫとの論理積をとることにより、電源の起動時にシステムクロックＣＫに含まれるノイズＮを除去する。
【００８０】
図６は、半導体装置の動作を説明するタイミングチャートである。
【００８１】
図６に示す例は、判定回路３０がビット列０００００１を入力しており、図３に示す判定回路の動作を説明するものである。
【００８２】
まず、ＰＯＲ信号を入力したＩＲＳＴ信号生成回路４０は、初期リセットパルスＩＲＳＴを生成する。そして、初期リセットパルスＩＲＳＴを入力したＳＣＫ信号生成回路５０は、合成クロックＳＣＫを生成する。初期リセットパルスＩＲＳＴは、合成クロックＳＣＫが出力する最初の合成クロックとなる。
【００８３】
そして、最初の合成クロックＳＣＫを入力したビット列生成回路２０は、所定の動作電圧よりも低く且つノイズを有する電圧が供給されており、入力信号が０から１へ立ち上がるのと共に、固定値を反転したデータである１を出力する状態へ遷移する。ビット列生成回路２０は、ＯＲＳ信号として１ビット目のデータを出力する。
【００８４】
次に、電源の電圧が上昇して動作電圧となり、１番目のシステムクロックＣＫが生成される。システムクロックＣＫを入力したＳＣＫ信号生成回路５０は、システムクロックＣＫを合成クロックＳＣＫとして出力する。
【００８５】
１番目のシステムクロックＣＫを入力したシフトレジスタ３１は、ビット列生成回路２０から入力した１ビット目のデータを保持する。
【００８６】
また、１番目のシステムクロックＣＫを入力したビット列生成回路２０は、所定の動作電圧が供給されているので、固定値である０を出力する状態に遷移する。
【００８７】
所定の動作電圧が供給されているビット列生成回路２０は、合成クロックＳＣＫとしての２番目以降のシステムクロックＣＫを入力しても、固定値である０を出力する状態を維持する。
【００８８】
シフトレジスタ３１が有する６個のＤ型フリップフロップＤＦＦ０〜ＤＦＦ５は、合成クロックＳＣＫと同期して、ビット列生成回路２０からのデータを１ビットずつシフトしていく。
【００８９】
７番目のクロックを入力した３ビットカウンタ３４は、３本のビット線の全てから１をＡＮＤ回路３５に出力する。ＡＮＤ回路３５は、論理積である１を、ＮＡＮＤ回路３６の他方の入力及びＮＡＮＤ回路３７の他方の入力に出力する。
【００９０】
そして、判定回路３０は、フラグＪとして１を出力し、１ビット目のデータＢ１として１を出力し、フラグＢ２として０を出力する。
【００９１】
次に、他のビット列を入力した判定回路３０の例を以下に説明する。
【００９２】
図７は、判定回路３０が、ビット列１１１１１０を入力した例である。
【００９３】
ビット列１１１１１０は、２ビット目以降のデータが一致しており且つ２ビット目以降のデータが１ビット目のデータを反転したデータであるので、期待されたように生成されている。
【００９４】
そこで、判定回路３０は、フラグＪとして１を出力し、１ビット目のデータＢ１として０を出力し、フラグＢ２として０を出力する。
【００９５】
図８は、判定回路３０が、ビット列００００００を入力した例である。
【００９６】
ビット列００００００は、２ビット目以降のデータが一致しているが、２ビット目以降のデータが１ビット目のデータを反転したデータではないので、期待されたように生成されてはいない。即ち、２ビット目以降のデータは、固定値となっているが、１ビット目のデータを反転したデータとはなっていない。１ビット目のデータは、ビット列生成回路２０が所定の動作電圧よりも低く且つノイズを有する電圧が供給されて生成されている。このように、ビット列生成回路２０を形成するトランジスタ等の素子が正常に動作しない場合でも、ビット列生成回路２０が固定値を生成する場合がある。しかし、この情報のみからは、ビット列生成回路２０が不具合を有していることを除外できないので、半導体装置１０は、このようなビット列は期待されたように生成されてはいないと判定する。
【００９７】
そこで、判定回路３０は、フラグＪとして０を出力し、１ビット目のデータＢ１として０を出力し、フラグＢ２として０を出力する。
【００９８】
図９は、判定回路３０が、ビット列１１１１１１を入力した例である。
【００９９】
ビット列１１１１１１は、２ビット目以降のデータが一致しているが、２ビット目以降のデータが１ビット目のデータを反転したデータではないので、期待されたように生成されてはいない。
【０１００】
そこで、判定回路３０は、フラグＪとして０を出力し、１ビット目のデータＢ１として１を出力し、フラグＢ２として０を出力する。
【０１０１】
図１０は、判定回路３０が、ビット列００１００１を入力した例である。
【０１０２】
ビット列００１００１は、２ビット目以降のデータが一致していないので、期待されたように生成されてはいない。即ち、２ビット目以降のデータは、固定値ではない。
【０１０３】
そこで、判定回路３０は、フラグＪとして０を出力し、１ビット目のデータＢ１として１を出力し、フラグＢ２として１を出力する。
【０１０４】
図１１は、判定回路３０が、ビット列１１０１１０を入力した例である。
【０１０５】
ビット列１１０１１０は、２ビット目以降のデータが一致していないので、期待されたように生成されてはいない。即ち、２ビット目以降のデータは、固定値ではない。
【０１０６】
そこで、判定回路３０は、フラグＪとして０を出力し、１ビット目のデータＢ１として０を出力し、フラグＢ２として１を出力する。
【０１０７】
図１２は、判定回路３０が、ビット列００１を入力した例である。
【０１０８】
ビット列は、３個以上のビットを有していれば、６個に限定されるものではない。シフトレジスタ３１は、入力するビット列のビット数に対応して、３個のＤ型フリップフロップＤＦＦ０〜ＤＦＦ２を有する。
【０１０９】
Ｄ型フリップフロップＤＦＦ０、ＤＦＦ１は、保持するデータを端子Ｑ０、Ｑ１からＸＯＲ回路３２に出力する。また、Ｄ型フリップフロップＤＦＦ１，ＤＦＦ２は、保持するデータを端子Ｑ１、Ｑ２からＸＯＲ回路３３に出力する。更に、Ｄ型フリップフロップＤＦＦ２は、保持するデータを端子Ｑ２から１ビット目のデータＢ１として出力する。
【０１１０】
ビット列００１は、２ビット目以降のデータが一致しており且つ２ビット目以降のデータが１ビット目のデータを反転したデータであるので、期待されたように生成されている。
【０１１１】
そこで、判定回路３０は、フラグＪとして１を出力し、１ビット目のデータＢ１として１を出力し、フラグＢ２として０を出力する。
【０１１２】
ビット列のビット数が多い程、２ビット目以降のデータが固定値であること及び１ビット目のデータが乱数であることの信頼性が増す。ビット列のビット数は、乱数又は固定値に対して求められる精度によって決定することが好ましい。
【０１１３】
次に、所定の動作電圧よりも低く且つノイズを有する電圧が供給されたビット列生成回路２０が、１ビット目のデータとして乱数を生成することの説明を以下に述べる。
【０１１４】
まず、電源の起動時の電圧波形にはノイズが含まれることを説明する。
【０１１５】
図１３は、ビット列生成回路に電力を供給する電源の起動時の電圧波形を説明する図である。
【０１１６】
ビット列生成回路２０に電力を供給する電源の電圧は、起動時には時間の経過と共に上昇した後、動作電圧ＶＤＤで一定となるように制御される。
【０１１７】
ここで、起動時の上昇途中の電圧波形Ｌ１を拡大して示すと、実際には上下に変動するノイズを有しており、鎖線で示すようにノイズを有さない波形Ｌ２とは成っていない。ノイズが発生する理由は、起動時における電源の電圧供給能力が変動し、また、起動時におけるビット列生成回路２０内の各負荷が変動することによる。
【０１１８】
このように、動作電圧ＶＤＤよりも低く且つノイズを有する電圧が供給されたビット列生成回路２０は、固定値を反転したデータを生成する確率が高くなる。
【０１１９】
このような観点から、ビット列生成回路２０へ電力を供給する電源の起動時に、動作電圧ＶＤＤよりも低い電圧Ｖ１以上であり且つ動作電圧ＶＤＤよりも低い電圧Ｖ２未満の電圧をビット列生成回路２０に供給して、ビット列生成回路２０に１ビット目のデータを生成させることが好ましい。また、動作電圧ＶＤＤの電圧をビット列生成回路２０に供給して、ビット列生成回路２０に２ビット目以降のデータを生成させることが好ましい。
【０１２０】
動作電圧ＶＤＤは、通常、±１０％程度の変動を有する。また、ＰＯＲ信号は、通常、電源の電圧が、動作電圧ＶＤＤの５０〜７０％程度に上昇した時点で出力される。
【０１２１】
従って、動作電圧ＶＤＤよりも低い電圧Ｖ１としては、動作電圧ＶＤＤの５０〜７０％程度の値とすることができる。また、動作電圧ＶＤＤよりも低い電圧Ｖ２としては、動作電圧ＶＤＤの８０〜９０％程度の値とすることができる。
【０１２２】
次に、動作電圧ＶＤＤよりも低く且つノイズを有する電圧が供給されたビット列生成回路２０が、１又は０の２つの値にランダムに遷移することを説明する。
【０１２３】
図１４は、ＲＳラッチの動作を説明する図である。
【０１２４】
共通に接続されたセット入力及びリセット入力を有するＲＳラッチであるビット列生成回路２０は、２つのＮＡＮＤ回路が相互に接続された構造を有する。ここで、入力Ａ及び入力Ｂを有するＮＡＮＤ回路は、入力Ａが１に固定された時、入力Ｂに対するインバータとし働く。
【０１２５】
従って、１が入力されたビット列生成回路２０は、２つのインバータが相互に接続された構造とみなすことができる。
【０１２６】
図１５は、２つのインバータが相互に接続された構造の回路図である。また、図１５には、ＶＤＤが供給された時の出力電圧Ｖ１及びＶ２の関係が示されている。
【０１２７】
２つのインバータが相互に接続された構造は、２つの安定点Ｓ１、Ｓ２を有しており、１が入力されたビット列生成回路２０の出力状態は、２つの安定点Ｓ１、Ｓ２のどちらかに対応する。具体的には、２つの安定点Ｓ１、Ｓ２は、１又は０の値に対応する。
【０１２８】
一方、０が入力されたビット列生成回路２０の出力状態は、不安定点Ｍに対応する。
【０１２９】
ビット列生成回路２０に電力を供給する電源の起動時には、上述したように、動作電圧ＶＤＤよりも低く且つノイズを有する電圧がビット列生成回路２０に供給される。
【０１３０】
ビット列生成回路２０に動作電圧ＶＤＤよりも低く且つノイズを有する電圧が供給されると、図１５に示すカーブＣは、上下又は左右の方向に変動する。そして、入力が０から１へと変化したビット列生成回路２０の出力状態は、不安定点Ｍから２つの安定点Ｓ１、Ｓ２のどちらかに遷移する。ここで、図１５に示すカーブＣの変動はランダムな性質を有するので、ビット列生成回路２０の出力状態は、不安定点Ｍから２つの安定点Ｓ１、Ｓ２のどちらかにランダムに遷移することになる。以上が、ビット列生成回路２０が、１ビット目のデータとして乱数を生成することの説明である。
【０１３１】
ビット列生成回路２０が１ビット目のデータを生成する際には、ビット列生成回路２０に対してノイズを有する電圧が供給されることが好ましい。一方、ビット列生成回路２０が２ビット目以降のデータを生成する際には、ビット列生成回路２０に対してノイズを有さない電圧が供給されることが好ましい。
【０１３２】
そこで、半導体装置１０は、ビット列生成回路２０と、ビット列生成回路２０へ電力を供給する電源との間に、電源のノイズを除去するフィルタが配置される。
【０１３３】
図１６は、電源電圧のノイズを除去するフィルタを説明する図である。
【０１３４】
電源６０とビット列生成回路ブロック２０Ａとの間には、フィルタ６３が配置される。
【０１３５】
フィルタ６３は、可変抵抗６４とコンデンサ６５とを有する。
【０１３６】
電源６０は、配線６１を用いてビット列生成回路ブロック２０Ａに電力を供給する。また、ビット列生成回路ブロック２０Ａは、配線６２を用いてＶＳＳに接地される。
【０１３７】
可変抵抗６４は、電源６０とコンデンサ６５との間に配置される。
【０１３８】
コンデンサ６５は、配線６１と配線６２との間に配置される。
【０１３９】
電源６０のノイズを除去する観点から、ビット列生成回路２０が２ビット目以降のデータを生成する時に、可変抵抗６４の抵抗値を、ビット列生成回路２０が１ビット目を生成した時よりも大きくすることが好ましい。
【０１４０】
図１７は、可変抵抗を説明する図である。
【０１４１】
可変抵抗６４は、電源６０と配線６１との間に配置されるスイッチング素子Ｔ１、Ｔ２、Ｔｎを有する。スイッチング素子Ｔ１、Ｔ２、Ｔｎとしては、例えば、ＰＭＯＳトランジスタを用いることができる。
【０１４２】
スイッチング素子Ｔ１、Ｔ２、Ｔｎのゲートには、ＡＮＤ回路Ａ１、Ａ２、Ａｎの出力が接続される。
【０１４３】
ＡＮＤ回路Ａ１、Ａ２、Ａｎの一方の入力には、ＰＯＲ信号が入力する。また、ＡＮＤ回路Ａ１、Ａ２、Ａｎの他方の入力には、制御信号ＶＣＴＬ０，ＶＣＴＬ１、ＶＣＴＬｎが入力する。
【０１４４】
スイッチング素子Ｔ１、Ｔ２、Ｔｎは、ＰＯＲ信号を入力するまでは、オン状態となり、電源６０のノイズが、配線６１を介してビット列生成回路ブロック２０Ａに伝わり易い状態にある。
【０１４５】
従って、ビット列生成回路２０が１ビット目を生成する時点では、電源６０のノイズがビット列生成回路ブロック２０Ａに伝わり易い状態にある。
【０１４６】
一方、ＰＯＲ信号が入力されたスイッチング素子Ｔ１、Ｔ２、Ｔｎのスイッチング状態は、制御信号ＶＣＴＬ０，ＶＣＴＬ１、ＶＣＴＬｎによって制御される。制御信号ＶＣＴＬ０，ＶＣＴＬ１、ＶＣＴＬｎがハイ状態のスイッチング素子Ｔ１、Ｔ２、Ｔｎは、オフ状態となり、電源６０のノイズがフィルタ６３により除去されて、配線６１を介してビット列生成回路ブロック２０Ａに伝わることが抑制される。
【０１４７】
従って、ビット列生成回路２０が２ビット目以降のデータを生成する時には、制御信号ＶＣＴＬ０，ＶＣＴＬ１、ＶＣＴＬｎを制御することにより、電源６０のノイズがビット列生成回路ブロック２０Ａに伝わることを抑制することができる。
【０１４８】
上述した本実施形態の半導体装置１０によれば、乱数及び固定値を有するビット列を生成することができる。そして、ビット列が期待されたように生成されたものであることを判定することができる。
【０１４９】
また、半導体装置１０のビット列生成回路２０は、イオン濃度を調整することにより閾値が設定されたトランジスタを有するので、リバースエンジニアリングにより光学的に複製することが防止される。従って、半導体装置１０が生成する固定値を複製することが防止される。
【０１５０】
また、仮にリバースエンジニアリングにより半導体装置１０が光学的に複製された回路は、トランジスタの閾値の設定が複製されていないので、ビット列生成回路が生成したビット列を、判定回路が期待されたように生成されていないと判定することにより、正常に動作することが防止される。
【０１５１】
次に、上述した半導体装置１０の変型例を以下に説明する。
【０１５２】
図１８は、第１実施形態の半導体装置の変型例１を示す図である。
【０１５３】
変型例１の半導体装置は、フィルタ６３とビット列生成回路ブロック２０Ａとの間に、ビット列生成回路２０を駆動する電圧を変動させる電圧変動回路７０を備える。
【０１５４】
電圧変動回路７０は、ビット列生成回路ブロック２０Ａへ電力を供給する電源６０が起動している時に、ビット列生成回路２０に乱数を生成させる際に用いられる。
【０１５５】
電圧変動回路７０は、端子７２ａと、端子７２ｂ又は端子７２ｃとを接続するスイッチング素子７２と、端子７２ａと配線６２との間に配置されるコンデンサ７１とを有する。
【０１５６】
端子７２ｂは、配線６２と接続する。また、端子７２ｃは、配線６１と接続する。
【０１５７】
通常、スイッチング素子７２は、端子７２ａと端子７２ｂとを接続する。
【０１５８】
スイッチング素子７２が、端子７２ａと端子７２ｂとを接続している時には、コンデンサ７１の両端はＶＳＳに接地されており、電圧変動回路７０はビット列生成回路２０を駆動する電圧に影響を与えない。
【０１５９】
一方、電圧変動回路７０がビット列生成回路２０を駆動する電圧を変動させる時には、スイッチング素子７２は、端子７２ａと端子７２ｃとを接続するように切り替えられる。
【０１６０】
図示しない制御回路からのトリガ信号ＴＳがスイッチング素子７２に入力すると、スイッチング素子７２は、端子７２ａと端子７２ｃとを接続するように切り替わる。そして、電源６０の電力がコンデンサ７１を充電するために使用されるので、電源６０の電圧は、図１８に示すように、動作電圧ＶＤＤよりも低い電圧Ｖ２未満の電圧に一時的に低下する。ビット列生成回路２０を駆動する電圧が、電圧Ｖ２未満に低下すると、図１３に示すようなノイズが電圧に発生する。
【０１６１】
従って、半導体装置１０は、ビット列生成回路２０へ電力を供給する電源６０が起動している時に新たに乱数を生成する際には、以下のような動作を行う。
【０１６２】
まず、電圧変動回路７０は、ビット列生成回路２０を駆動する電圧を、動作電圧ＶＤＤよりも低い電圧Ｖ２未満の電圧に低下させて、ビット列生成回路２０に１ビット目のデータを生成させる。
【０１６３】
次に、電圧変動回路７０は、ビット列生成回路２０を駆動する電圧を、動作電圧ＶＤＤに上昇させて、ビット列生成回路２０に２ビット目以降のデータを生成させる。
【０１６４】
ビット列生成回路２０へ電力を供給する電源６０が起動している時に新たに乱数を生成する際には、上述したトリガ信号ＴＳは、３ビットカウンタ３４をリセットする信号としても用いられる。また、トリガ信号ＴＳは、ＰＯＲ信号としても用いられる。
【０１６５】
図１９は、第１実施形態の半導体装置の変型例２を示す図である。
【０１６６】
変型例２の半導体装置も、変型例１と同様に、フィルタ６３とビット列生成回路ブロック２０Ａとの間に、ビット列生成回路２０を駆動する電圧を変動させる電圧変動回路８０を備える。
【０１６７】
電圧変動回路８０は、コンデンサ８１と、コンデンサ８１の一方の端子８２と、コンデンサ８１の他方の端子８３とを有する。
【０１６８】
コンデンサ８１の他方の端子８３は、配線６１と接続する。
【０１６９】
図示しない制御回路からのトリガ信号ＴＳがコンデンサ８１の一方の端子８２に入力すると、電源６０から供給される電圧とトリガ信号ＴＳが容量カップリングして、ビット列生成回路２０を駆動する電圧を変動させる。
【０１７０】
トリガ信号ＴＳとしては、例えば、図１９に示すように、電圧が立ち上がるパルスＰ１又は電圧が立ち下がるパルスＰ２を用いることができる。
【０１７１】
トリガ信号ＴＳとして、パルスＰ１を用いた場合には、ビット列生成回路２０を駆動する電圧の波形は、波形Ｃ１のような変動を示す。一方、トリガ信号ＴＳとして、パルスＰ２を用いた場合には、ビット列生成回路２０を駆動する電圧の波形は、波形Ｃ２のような変動を示す。ビット列生成回路２０を駆動する電圧が、急激に上昇又は低下すると、図１３に示すようなノイズが電圧に発生する。
【０１７２】
従って、半導体装置１０は、ビット列生成回路２０へ電力を供給する電源６０が起動している時に新たに乱数を生成する際には、以下のような動作を行う。
【０１７３】
まず、トリガ信号ＴＳとしてパルスＰ１を用いる場合には、電圧変動回路７０は、ビット列生成回路２０を駆動する電圧を、動作電圧ＶＤＤよりも高い電圧Ｖ３よりも高い電圧に上昇させて、ビット列生成回路２０に１ビット目のデータを生成させる。
【０１７４】
次に、電圧変動回路７０は、ビット列生成回路２０を駆動する電圧を、動作電圧ＶＤＤに低下させて、ビット列生成回路２０に２ビット目以降のデータを生成させる。
【０１７５】
また、トリガ信号ＴＳとしてパルスＰ２を用いる場合には、電圧変動回路７０は、ビット列生成回路２０を駆動する電圧を、動作電圧ＶＤＤよりも低い電圧Ｖ２未満の電圧に低下させて、ビット列生成回路２０に１ビット目のデータを生成させる。
【０１７６】
次に、電圧変動回路７０は、ビット列生成回路２０を駆動する電圧を、動作電圧ＶＤＤに上昇させて、ビット列生成回路２０に２ビット目以降のデータを生成させる。
【０１７７】
ビット列生成回路２０へ電力を供給する電源６０が起動している時に新たに乱数を生成する際には、上述したトリガ信号ＴＳは、３ビットカウンタ３４をリセットする信号としても用いられる。また、トリガ信号ＴＳは、ＰＯＲ信号としても用いられる。
【０１７８】
次に、上述した半導体装置の第２実施形態を、図２０及び図２１を参照しながら以下に説明する。第２実施形態について特に説明しない点については、上述の第１実施形態に関して詳述した説明が適宜適用される。また、同一の構成要素には同一の符号を付してある。
【０１７９】
図２０は、本明細書に開示する半導体装置の第２実施形態を示す図である。
【０１８０】
本実施形態の半導体装置１０は、ビット列生成回路ブロック２０Ａ及び判定回路ブロック３０Ａを有する複数の冗長化ブロック１００と、各冗長化ブロック１００と接続する多数決回路ブロック９０Ａとを有する。
【０１８１】
冗長化ブロック１００のビット列生成回路ブロック２０Ａは、３つのビット列生成回路２０を有する。同じビット列生成回路ブロック２０Ａに配置されるビット列生成回路２０であるＲＳラッチのトランジスタの閾値は、イオン濃度を調整することにより同じように設定されている。
【０１８２】
冗長化ブロック１００の判定回路ブロック３０Ａは、ビット列生成回路ブロック２０Ａの各ビット列生成回路２０に対応する３つの判定回路３０を有する。
【０１８３】
判定回路３０は、対応するビット列生成回路２０からビット列を入力して、ビット列が期待されたように生成されたかを判定した判定結果を多数決回路ブロック９０Ａに出力する。
【０１８４】
具体的には、判定回路３０は、第１実施形態と同様に、ビット列が期待されたように生成されたことを示すフラグＪと、ビット列の内の１ビット目のデータＢ１と、ビット列の内の２ビット目以降のデータが一致していることを示すフラグＢ２を出力する。
【０１８５】
多数決回路ブロック９０Ａは、第１多数決回路９１と、第２多数決回路９２と、第３多数決回路９３と、を有する。
【０１８６】
第１多数決回路９１は、３つの判定回路３０が判定した結果であるフラグＪの多数決に基づいて、フラグＪの多数決による判断を行う。フラグＪの多数決の判断結果が１であることは、ビット列が期待されたように生成されていることを保証する。一方、フラグＪの多数決の判断結果が０であることは、ビット列が期待されたように生成されていないことを意味する。
【０１８７】
図２０に示す上段の多数決回路ブロック９０Ａでは、３つの判定回路３０が出力するフラグＪは１と０と１なので、第１多数決回路９１は、フラグＪの多数決の判断結果として１を出力する。
【０１８８】
第２多数決回路９２は、３つの判定回路３０が判定した結果であるデータＢ１の多数決に基づいて、データＢ１の多数決による判断を行う。データＢ１の多数決の判断結果が１であることは、乱数として１の生成が支配的であることを意味する。一方、データＢ１の多数決の判断結果が０であることは、乱数として０の生成が支配的であることを意味する。
【０１８９】
図２０に示す上段の多数決回路ブロック９０Ａでは、３つの判定回路３０が出力するデータＢ１は１と０と１なので、第２多数決回路９２は、データＢ１のの多数決の判断結果として１を出力する。
【０１９０】
第３多数決回路９３は、３つの判定回路３０が判定した結果であるフラグＢ２の多数決に基づいて、フラグＢ２の多数決による判断を行う。フラグＢ２の多数決の判断結果が０であることは、固定値の生成が支配的であることを意味する。一方、フラグＢ２の多数決の判断結果が１であることは、固定値の生成が支配的でないことを意味する。
【０１９１】
図２０に示す上段の多数決回路ブロック９０Ａでは、３つの判定回路３０が出力するフラグＢ２は０と１と０なので、第３多数決回路９３は、フラグＢ２のの多数決の判断結果として０を出力する。
【０１９２】
上述した説明では、ビット列生成回路ブロック２０Ａは、３つのビット列生成回路２０を有していたが、ビット列生成回路２０の数は２つ以上であれば、求める冗長化に対する要求に応じてビット列生成回路２０の数を適宜変更することができる。
【０１９３】
また、冗長化ブロック１００の数は、生成すべき乱数及び固定値の数に応じて適宜設定される。
【０１９４】
本実施形態によれば、複数のビット列生成回路２０が生成したビット列の判定結果に基づいて、多数決回路が多数決による判断を行うので、１つの多数決回路ブロック９０Ａが出力する判断結果の再現性を向上することができる。
【０１９５】
図２１は、多数決回路を説明する図である。
【０１９６】
図２１は、図２０に示す３入力の多数決回路の回路図を、真理値表と共に示す。
【０１９７】
本実施形態では、多数決回路を用いて多数決の判断を行っているが、多数決回路の代わりにＥｒｒｏｒ  Ｃｈｅｃｋｅｄ  ａｎｄ  Ｃｏｒｒｅｃｔｉｏｎ（ＥＣＣ）回路を用いても良い。
【０１９８】
本発明では、上述した実施形態のデータ生成回路、半導体装置及び判定方法は、本発明の趣旨を逸脱しない限り適宜変更が可能である。また、一の実施形態が有する構成要件は、他の実施形態にも適宜適用することができる。
【０１９９】
例えば、上述した各実施形態では、ビット列生成回路として、イオン濃度を意図的に調整することにより閾値が設定されたトランジスタを有するＲＳラッチを用いていた。しかし、ビット列生成回路が有するトランジスタは、イオン濃度を意図的に調整することにより閾値が設定されていなくても良い。
【０２００】
また、上述した各実施形態では、ビット列生成回路としてＲＳラッチを用いていたが、ビット列生成回路は、ビット列を生成するものであれば、他の回路を用いても良い。
【０２０１】
ここで述べられた全ての例及び条件付きの言葉は、読者が、発明者によって寄与された発明及び概念を技術を深めて理解することを助けるための教育的な目的を意図する。ここで述べられた全ての例及び条件付きの言葉は、そのような具体的に述べられた例及び条件に限定されることなく解釈されるべきである。また、明細書のそのような例示の機構は、本発明の優越性及び劣等性を示すこととは関係しない。本発明の実施形態は詳細に説明されているが、その様々な変更、置き換え又は修正が本発明の精神及び範囲を逸脱しない限り行われ得ることが理解されるべきである。
【０２０２】
以上の上述した各実施形態に関し、更に以下の付記を開示する。
【０２０３】
（付記１）
共通に接続されたセット入力及びリセット入力を有し、前記共通に接続されたセット入力及びリセット入力に所定の入力信号を入力した時に、ビット列を出力するラッチ回路であって、イオン濃度を調整することにより閾値が設定されたトランジスタを有し、前記ラッチ回路を駆動する電圧が動作電圧とは異なる電圧である状態において、前記入力信号に応じて第１の出力状態をラッチして出力し、前記ラッチ回路を駆動する電圧が前記動作電圧である状態において、前記入力信号に応じて前記設定された閾値に基づく第２の出力状態をラッチして出力するラッチ回路と、
前記ラッチ回路が出力する前記ビット列を入力し、１ビット目のデータと２ビット目以降のデータとを比較して、２ビット目以降のデータが一致しており且つ２ビット目以降のデータが１ビット目のデータを反転したデータであるかを判定する判定回路と、
を備え、
前記判定回路の判定結果に基づいて出力データを生成するデータ生成回路。
【０２０４】
（付記２）
前記ラッチ回路を駆動する電圧を変動させる電圧変動回路を備える付記１に記載のデータ生成回路。
【０２０５】
（付記３）
前記電圧変動回路は、前記ラッチ回路を駆動する電圧を、前記動作電圧よりも低い第１電圧未満の電圧に低下させた後、前記動作電圧に変化させる付記２に記載のデータ生成回路。
【０２０６】
（付記４）
前記電圧変動回路は、前記ラッチ回路を駆動する電圧を、動作電圧よりも高い第２電圧よりも高い電圧に上昇させた後、前記動作電圧に変化させる付記２に記載のデータ生成回路。
（付記５）
複数の前記判定回路が判定した結果の多数決に基づいて、多数決による判断を行う多数決回路を備える付記１〜４の何れか一項に記載のデータ生成回路。
【０２０７】
（付記６）
共通に接続されたセット入力及びリセット入力を有し、前記共通に接続されたセット入力及びリセット入力に所定の入力信号を入力した時に、ビット列を出力するラッチ回路であって、イオン濃度を調整することにより閾値が設定されたトランジスタを有し、前記ラッチ回路を駆動する電圧が動作電圧とは異なる電圧である状態において、前記入力信号に応じて第１の出力状態をラッチして出力し、前記ラッチ回路を駆動する電圧が前記動作電圧である状態において、前記入力信号に応じて前記設定された閾値に基づく第２の出力状態をラッチして出力するラッチ回路と、
前記ラッチ回路が出力する前記ビット列を入力し、１ビット目のデータと２ビット目以降のデータとを比較して、２ビット目以降のデータが一致しており且つ２ビット目以降のデータが１ビット目のデータを反転したデータであるかを判定する判定回路と、
を備え、
前記判定回路の判定結果に基づいて出力データを生成するデータ生成回路を備える半導体装置。
【０２０８】
（付記７）
複数の前記判定回路が判定した結果の多数決に基づいて、多数決による判断を行う多数決回路を備える付記６に記載の半導体装置。
【０２０９】
（付記８）
共通に接続されたセット入力及びリセット入力を有するラッチ回路であって、イオン濃度を調整することにより閾値が設定されたトランジスタを有するラッチ回路を用いて、
前記ラッチ回路を駆動する電圧が動作電圧とは異なる電圧である状態において、前記共通に接続されたセット入力及びリセット入力に所定の入力信号を入力して第１の出力状態をラッチさせて１ビット目のデータを出力させ、
続いて前記ラッチ回路を駆動する電圧が前記動作電圧である状態において、前記共通に接続されたセット入力及びリセット入力に所定の入力信号を入力して前記設定された閾値に基づく第２の出力状態をラッチさせて２ビット目以降のデータを出力させ、
前記ラッチ回路が出力する前記１ビット目のデータと前記２ビット目以降のデータとを比較して、２ビット目以降のデータが一致しており且つ２ビット目以降のデータが１ビット目のデータを反転したデータであるかを判定する判定方法。
【０２１０】
（付記９）
前記ラッチ回路へ電力を供給する電源の起動時に、
前記動作電圧よりも低い第３電圧以上であり且つ前記動作電圧よりも低い第４電圧未満の電圧を前記ラッチ回路に供給して、前記ラッチ回路に前記１ビット目のデータを生成させ、
前記動作電圧を前記ラッチ回路に供給して、前記ラッチ回路に前記２ビット目以降のデータを生成させる付記８に記載の判定方法。
【０２１１】
（付記１０）
前記ラッチ回路へ電力を供給する電源が起動している時に、
前記ラッチ回路を駆動する電圧を、前記動作電圧よりも低い第５電圧未満の電圧に低下させて、前記ラッチ回路に前記１ビット目のデータを生成させ、
前記ラッチ回路を駆動する電圧を、前記動作電圧に上昇させて、前記ラッチ回路に前記２ビット目以降のデータを生成させる付記８又は９に記載の判定方法。
【０２１２】
（付記１１）
前記ラッチ回路へ電力を供給する電源が起動している時に、
前記ラッチ回路を駆動する電圧を、前記動作電圧よりも高い第６電圧よりも高い電圧に上昇させて、前記ラッチ回路に前記１ビット目のデータを生成させ、
前記ラッチ回路を駆動する電圧を、前記動作電圧に低下させて、前記ラッチ回路に前記２ビット目以降のデータを生成させる付記８又は９に記載の判定方法。
【０２１３】
（付記１２）
前記ラッチ回路と、前記ラッチ回路へ電力を供給する電源との間に可変抵抗を配置して、前記ラッチ回路が前記２ビット目以降のデータを生成する時に、前記可変抵抗の抵抗値を、前記ラッチ回路が前記１ビット目を生成した時よりも大きくする付記８〜１１の何れか一項に記載の判定方法。
【符号の説明】
【０２１４】
１０    半導体装置
２０Ａ    ビット列生成回路ブロック
２０    ビット列生成回路（ＲＳラッチ）
２１    共通入力
２２    ＮＡＮＤ回路
２３    ＮＡＮＤ回路
２４    非反転出力
２５    反転出力
３０Ａ    判定回路ブロック
３０    判定回路
３１    シフトレジスタ
３２    ＸＯＲ回路
３３    ＸＯＲ回路
３４    ３ビットカウンタ
３５    ＡＮＤ回路
３６    ＮＡＮＤ回路
３７    ＮＡＮＤ回路
３８    インバータ
３９    ＡＮＤ回路
４０    ＩＲＳＴ信号生成回路
４１    遅延回路
４２    インバータ
４３    ＮＡＮＤ回路
４４    インバータ
５０    ＳＣＫ信号生成回路
５１    ＡＮＤ回路
５２    ＯＲ回路
Ｌ１    電源電圧の波形
Ｌ２    ノイズを有さない波形
Ｓ１，Ｓ２    安定点
Ｍ    不安定点
６０    電源
６１    配線
６２    配線
６３    フィルタ
６４    可変抵抗
６５    コンデンサ
Ａ１、Ａ２、Ａｎ    ＡＮＤ回路
Ｔ１、Ｔ２，Ｔｎ    スイッチング素子
７０    電圧変動回路
７１    コンデンサ
７２    スイッチング素子
７２ａ、７２ｂ、７２ｃ    端子
８０    電圧変動回路
８１    コンデンサ
８２    端子
９０Ａ    多数決回路ブロック
９１、９２、９３    多数決回路
１００    冗長化ブロック
【図１】
2014010867.tif 000003
【図２】
2014010867.tif 000004
【図３】
2014010867.tif 000005
【図４】
2014010867.tif 000006
【図５】
2014010867.tif 000007
【図６】
2014010867.tif 000008
【図７】
2014010867.tif 000009
【図８】
2014010867.tif 000010
【図９】
2014010867.tif 000011
【図１０】
2014010867.tif 000012
【図１１】
2014010867.tif 000013
【図１２】
2014010867.tif 000014
【図１３】
2014010867.tif 000015
【図１４】
2014010867.tif 000016
【図１５】
2014010867.tif 000017
【図１６】
2014010867.tif 000018
【図１７】
2014010867.tif 000019
【図１８】
2014010867.tif 000020
【図１９】
2014010867.tif 000021
【図２０】
2014010867.tif 000022
【図２１】
2014010867.tif 000023