(57)【要約】【課題】半導体装置のリバースエンジニアリングを困難にする半導体装置を提供する。【解決手段】フリップフロップと、入力が入力信号線に接続された第１のバッファ及び第２のバッファと、入力が第１のバッファの出力に接続され、出力がフリップフロップのデータ入力に接続されたインバータと、入力が第２のバッファの出力に接続され、出力がフリップフロップのクロック入力に接続された第３のバッファとを有する半導体装置にて、インバータに係る入力の配線と出力の配線とを並行に配置するようにして、並行に配置した配線により発生する寄生容量を利用し、リバースエンジニアリングでの正常な動作の再現を困難にする。【選択図】図１
2019140355.tif 000002
【特許請求の範囲】
【請求項１】
フリップフロップと、
入力が入力信号線に接続された第１のバッファ及び第２のバッファと、
入力が前記第１のバッファの出力に接続され、出力が前記フリップフロップのデータ入力又はクロック入力の一方に接続されたインバータと、
入力が前記第２のバッファの出力に接続され、出力が前記フリップフロップのデータ入力又はクロック入力の他方に接続された第３のバッファとを有し、
前記インバータに係る入力の配線と出力の配線とが並行に配置されていることを特徴とする半導体装置。
【請求項２】
前記インバータによる信号の遅延時間が、前記第３のバッファによる信号の遅延時間よりも大きいことを特徴とする請求項１記載の半導体装置。
【請求項３】
前記インバータの出力が前記フリップフロップのデータ入力に接続され、前記第３のバッファの出力が前記フリップフロップのクロック入力に接続されていることを特徴とする請求項１又は２記載の半導体装置。
【請求項４】
前記インバータの出力が前記フリップフロップのクロック入力に接続され、前記第３のバッファの出力が前記フリップフロップのデータ入力に接続されていることを特徴とする請求項１又は２記載の半導体装置。
【請求項５】
フリップフロップと、入力が入力信号線に接続される第１のバッファ及び第２のバッファと、入力が前記第１のバッファの出力に接続され、出力が前記フリップフロップのデータ入力又はクロック入力の一方に接続されるインバータと、入力が前記第２のバッファの出力に接続され、出力が前記フリップフロップのデータ入力又はクロック入力の他方に接続される第３のバッファとを有する半導体装置の設計方法であって、
回路情報に基づいて、前記フリップフロップ、前記第１のバッファ、前記第２のバッファ、前記第３のバッファ、及び前記インバータを接続する配線を含むレイアウト設計を行う工程と、
前記レイアウト設計により得られた情報に対して、配線を追加あるいは修正して前記インバータに係る入力の配線と出力の配線とを並行に配置する工程とを有することを特徴とする半導体装置の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及び半導体装置の設計方法に関する。
【背景技術】
【０００２】
近年、半導体装置の不当なリバースエンジニアリングが増えてきている。リバースエンジニアリングの手法として、半導体装置が実装されたチップ表面からの光学的解析だけでなく、配線層を１層ずつ剥離して撮影し、得られた画像を重ね合わせ、ソフトウェアツールで配線情報を抽出し回路図を再現する技術も用いられている。
【０００３】
リバースエンジニアリングを防止するための様々な方法が提案されており（例えば、特許文献１〜９参照）、リバースエンジニアリングを防ぐために、例えば配線層に工夫を施す方法や、配線層よりも下層にある拡散層やバルクを利用する方法が提案されている。例えば、特許文献１には、ゲートをフローティング状態にしたトランジスタの特性を寄生容量及び寄生抵抗により異ならせ、リバースエンジニアリングによって半導体装置を再現することを困難にする技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第９４３７５５５号明細書
【特許文献２】特開平６−１６３５３９号公報
【特許文献３】特開平９−９２７２７号公報
【特許文献４】米国特許第６１１７７６２号明細書
【特許文献５】米国特許第６９７９６０６号明細書
【特許文献６】米国特許第７１２８２７１号明細書
【特許文献７】米国特許第９３３７１５６号明細書
【特許文献８】特表２００４−５１８２７３号公報
【特許文献９】特開２０１４−１３５３８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、前述した特許文献１に記載の技術では、以下のような問題がある。ゲートがフローティング状態であるために、電源電圧からグランドへ無駄な消費電流が流れるとともに、クロストーク等でノイズが入ると電圧変動が起こって動作や消費電流が安定しない。また、複数のトランジスタによって発生する出力電圧は、２値化された電圧ではなく連続したアナログ量になるため、それを受けるコンパレータには高精度のアナログ特性が要求され、消費電流やサイズが大きくなる。このような消費電流やサイズの制約によって、１チップ上に搭載できる個数に制約が発生する。また、リバースエンジニアリングを防止する他の方法においては、半導体製造プロセスの変更が必要になり、プロセス開発期間やコストが増加するといった問題がある。本発明の目的は、半導体製造プロセスの変更等を行うことなく、半導体装置のリバースエンジニアリングを困難にする半導体装置を提供することである。
【課題を解決するための手段】
【０００６】
本発明に係る半導体装置は、フリップフロップと、入力が入力信号線に接続された第１のバッファ及び第２のバッファと、入力が前記第１のバッファの出力に接続され、出力が前記フリップフロップのデータ入力又はクロック入力の一方に接続されたインバータと、入力が前記第２のバッファの出力に接続され、出力が前記フリップフロップのデータ入力又はクロック入力の他方に接続された第３のバッファとを有し、前記インバータに係る入力の配線と出力の配線とが並行に配置されていることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、半導体装置のリバースエンジニアリングを困難にする半導体装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態における半導体装置の構成例を示す図である。
【図２】本実施形態におけるバッファ及びインバータの回路構成例を示す図である。
【図３】本実施形態における半導体装置の動作を説明するタイミングチャートである。
【図４】本実施形態における半導体装置の設計方法の例を示すフローチャートである。
【図５】本実施形態における半導体装置の他の構成例を示す図である。
【図６】本実施形態における半導体装置の適用例を示す図である。
【図７】本実施形態における半導体装置の設計方法を実現可能なコンピュータの構成例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態を図面に基づいて説明する。
【００１０】
図１は、本発明の実施形態における半導体装置の構成例を示す図である。本実施形態における半導体装置１０は、バッファ１１、１３、１４、インバータ１２、及びフリップフロップ１５を有する。バッファ１１、１３には、入力信号ＳＩＮが入力される。バッファ１１の出力がインバータ１２に入力され、インバータ１２の出力がフリップフロップ１５のデータ入力端子（Ｄ）に入力される。また、バッファ１３の出力がバッファ１４に入力され、バッファ１４の出力がフリップフロップ１５のクロック入力端子（ＣＫ）に入力される。フリップフロップ１５のデータ出力端子（Ｑ）からの出力が出力信号ＳＯＵＴとして出力される。
【００１１】
バッファ１１、１３、１４は、例えば図２（Ａ）に示すように構成される。Ｐチャネル型トランジスタＴＲ２１、ＴＲ２３のソースが電源電圧（ＶＤＤ）に接続され、Ｎチャネル型トランジスタＴＲ２２、ＴＲ２４のソースが基準電位（例えばグランド）に接続される。トランジスタＴＲ２１、ＴＲ２２は、ゲートに入力信号ＩＮが入力され、ドレインが相互に接続されている。また、トランジスタＴＲ２３、ＴＲ２４は、ゲートがトランジスタＴＲ２１、ＴＲ２２のドレインの相互接続点に接続され、ドレインが相互に接続されている。トランジスタＴＲ２３、ＴＲ２４のドレインの相互接続点の電位が出力信号ＯＵＴとして出力される。
【００１２】
つまり、バッファ１１、１３、１４は、Ｐチャネル型トランジスタＴＲ２１及びＮチャネル型トランジスタＴＲ２２により構成されるインバータと、Ｐチャネル型トランジスタＴＲ２３及びＮチャネル型トランジスタＴＲ２４により構成されるインバータとが直列接続されている。
【００１３】
また、インバータ１２は、例えば図２（Ｂ）に示すように構成される。Ｐチャネル型トランジスタＴＲ２５のソースが電源電圧（ＶＤＤ）に接続され、Ｎチャネル型トランジスタＴＲ２６のソースが基準電位（例えばグランド）に接続される。トランジスタＴＲ２５、ＴＲ２６は、ゲートに入力信号ＩＮが入力され、ドレインが相互に接続されている。トランジスタＴＲ２５、ＴＲ２６のドレインの相互接続点の電位が出力信号ＯＵＴとして出力される。
【００１４】
図１に示したように、本実施形態における半導体装置１０において、フリップフロップ１５のデータ入力端子（Ｄ）には、バッファ１１及びインバータ１２を介して、入力信号ＳＩＮが反転して入力される。また、フリップフロップ１５のクロック入力端子（ＣＫ）には、バッファ１３及びバッファ１４を介して、入力信号ＳＩＮが反転されずに入力される。また、本実施形態における半導体装置１０では、インバータ１２に係る入力の配線ＷＩと出力の配線ＷＯとが並行に配置されている。
【００１５】
このようにインバータ１２に係る入力の配線ＷＩと出力の配線ＷＯとを配置することで、並行に配置された配線ＷＩと配線ＷＯとによる寄生容量ＰＣは、ミラー効果により、通常出力に付く場合の寄生容量よりも大きくなり、インバータ１２の遅延時間は大きくなる。なお、本実施形態において、配線ＷＩと配線ＷＯとによる寄生容量ＰＣがある場合のインバータ１２の遅延時間は、バッファ１１、１３、１４の遅延時間よりも大きくなるものとする。例えば配線ＷＩと配線ＷＯとを５０μｍ程度の長さで並行に配置することで、バッファ１１、１３、１４の遅延時間よりもインバータ１２の遅延時間が大きくなるような寄生容量ＰＣを発生させることが可能である。
【００１６】
ここで、配線ＷＩと配線ＷＯとによる寄生容量ＰＣがない場合、入力信号ＳＩＮは、バッファ１１及びインバータ１２を介してフリップフロップ１５のデータ入力端子（Ｄ）に入力されるとともに、バッファ１３及びバッファ１４を介してフリップフロップ１５のクロック入力端子（ＣＫ）に入力される。バッファ１４は２段の直列接続されたインバータで構成されるため、入力信号ＳＩＮは、フリップフロップ１５においてクロック入力端子（ＣＫ）よりもデータ入力端子（Ｄ）に早く到達する。
【００１７】
例えば、図３に信号Ｄ−Ａとして示すように、時刻Ｔ３１において、入力信号ＳＩＮがローレベル（“Ｌ”）からハイレベル（“Ｈ”）に変化すると、クロック入力端子（ＣＫ）への入力信号が変化する時刻Ｔ３３よりも前の時刻Ｔ３２において、データ入力端子（Ｄ）への入力信号が“Ｈ”から“Ｌ”に変化する。したがって、時刻Ｔ３３において、クロック入力端子（ＣＫ）への入力信号が“Ｌ”から“Ｈ”に立ち上がると、フリップフロップ１５は“Ｌ”をラッチし、フリップフロップ１５の出力信号は、信号ＳＯＵＴ−Ａとして示すように“Ｌ”となる。
【００１８】
それに対して、本実施形態では、配線ＷＩと配線ＷＯとによる寄生容量ＰＣにより、インバータ１２の遅延時間がバッファ１１、１３、１４の遅延時間よりも大きくなるため、入力信号ＳＩＮは、フリップフロップ１５においてクロック入力端子（ＣＫ）よりもデータ入力端子（Ｄ）に遅く到達する。
【００１９】
例えば、図３に信号Ｄ−Ｂとして示すように、クロック入力端子（ＣＫ）への入力信号が変化する時刻Ｔ３３よりも後の時刻Ｔ３４において、データ入力端子（Ｄ）への入力信号が“Ｈ”から“Ｌ”に変化する。したがって、時刻Ｔ３３において、クロック入力端子（ＣＫ）への入力信号が“Ｌ”から“Ｈ”に立ち上がると、フリップフロップ１５は“Ｈ”をラッチし、フリップフロップ１５の出力信号は、信号ＳＯＵＴ−Ｂとして示すように“Ｈ”となる。
【００２０】
このように本実施形態における半導体装置１０は、インバータ１２に係る入力の配線ＷＩと出力の配線ＷＯとを並行に配置することにより発生する寄生容量ＰＣを利用することで、トランジスタ、抵抗、容量等の実際の素子とそれらの接続のみを抽出して再現した場合とは異なる動作を示す。すなわち、レイアウトから回路図を読み取るだけでは正常動作（同じ動作）を再現することができず、配線に付く寄生容量もレイアウトから読み取らないと、リバースエンジニアリングにより動作を再現することができない。実際の半導体装置において、寄生容量に関する情報量は膨大であるため、その解析は非常に困難である。したがって、半導体装置のリバースエンジニアリングを困難にし、光学的・破壊的なリバースエンジニアリングによる不正コピーや不正使用目的の回路解析を防止することが可能となる。
【００２１】
また、並行に配置する配線は、通常の配線の作成工程で作成すればよいので、半導体製造プロセスの変更もない。なお、並行に配置する配線の一方は、素子が接続されない（フローティング状態の）ダミーの配線であってもよいし、素子が接続される実配線であってもよい。
【００２２】
図４は、本実施形態における半導体装置の設計方法の例を示すフローチャートである。図４に示す処理は、例えばレイアウト設計等を行う半導体装置の設計装置により実行される。まず、ステップＳ４１にて、設計装置は、回路情報に基づいてレイアウト設計を行い、半導体装置１０における各素子に係る配置配線を行う。
【００２３】
次に、ステップＳ４２にて、設計装置は、ステップＳ４１でのレイアウト設計により得られた情報に対し配線を追加あるいは修正することにより、図１に示したインバータ１２のような対象とするインバータに係る入力の配線と出力の配線とを並行に配置する。そして、ステップＳ４３にて、設計装置は、対象とするインバータに係る入力の配線と出力の配線とを並行に配置するように変更したレイアウト情報を出力して処理を終了する。
【００２４】
なお、前述した例では、入力信号ＳＩＮが、バッファ１１及びインバータ１２を介してフリップフロップ１５のデータ入力端子（Ｄ）に入力され、バッファ１３及びバッファ１４を介してフリップフロップ１５のクロック入力端子（ＣＫ）に入力される例を示したがこれに限定されるものではない。例えば、図５に示す半導体装置５０のように、入力信号ＳＩＮが、バッファ５１及びバッファ５２を介してフリップフロップ５５のデータ入力端子（Ｄ）に入力され、バッファ５３及びインバータ５４を介してフリップフロップ５５のクロック入力端子（ＣＫ）に入力されるようにしてもよい。インバータ５４に係る入力の配線ＷＩと出力の配線ＷＯとを並行に配置して寄生容量ＰＣを発生させることで、寄生容量ＰＣがない場合と異なる動作を行うようにすることが可能である。
【００２５】
図６は、本実施形態における半導体装置の適用例を示す図である。図６において、１００は、本実施形態における半導体装置を含む半導体チップである。半導体チップ１００において、各種の論理処理を行う論理処理回路部１１０に対して、１個又は複数個の本実施形態における半導体装置１２０の出力が接続される。論理処理回路部１１０は、半導体装置１２０の出力を用いて一部又は全部の論理処理を行うことで、論理処理回路部１１０における入力と出力との関係は、半導体装置１２０の出力状態にも依存する。前述したように、リバースエンジニアリングにより本実施形態における半導体装置１２０の出力状態を判明することは困難であり、論理処理回路部１１０における入力と出力との関係を解析することも困難となり、半導体チップの不正コピー等を防止することが可能となる。
【００２６】
前述した実施形態における半導体装置の設計方法は、例えばＣＰＵ又はＭＰＵ、ＲＡＭ、ＲＯＭ等を有するコンピュータが、記憶部に記憶されたプログラムを実行することで実現でき、前記プログラムは本発明の実施形態に含まれる。また、コンピュータが前記機能を果たすように動作させるプログラムを、例えばＣＤ−ＲＯＭのような記録媒体に記録し、コンピュータに読み込ませることによって実現できるものであり、前記プログラムを記録した記録媒体は本発明の実施形態に含まれる。前記プログラムを記録する記録媒体としては、ＣＤ−ＲＯＭ以外に、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。
【００２７】
また、コンピュータがプログラムを実行し処理を行うことにより、前記実施形態の機能が実現されるプログラムプロダクトは、本発明の実施形態に含まれる。前記プログラムプロダクトとしては、前記実施形態の機能を実現するプログラム自体、前記プログラムが読み込まれたコンピュータがある。また、前記プログラムプロダクトとして、ネットワークを介して通信可能に接続されたコンピュータに前記プログラムを提供可能な送信装置、当該送信装置を備えるネットワークシステム等がある。
【００２８】
また、供給されたプログラムがコンピュータにおいて稼動しているＯＳ（オペレーティングシステム）又は他のアプリケーションソフト等と協働して前記実施形態の機能が実現される場合も、かかるプログラムは本発明の実施形態に含まれる。また、供給されたプログラムの処理のすべて又は一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて前記実施形態の機能が実現される場合も、かかるプログラムは本発明の実施形態に含まれる。また、本発明をネットワーク環境で利用するべく、全部又は一部のプログラムが他のコンピュータで実行されるようになっていても良い。
【００２９】
例えば、前述した実施形態における半導体装置の設計方法は、図７に示すようなコンピュータ（設計装置）により実現でき、そのＣＰＵ（Central Processing Unit）により前述した実施形態における半導体装置の設計方法の動作が実施される。図７は、本実施形態における半導体装置の設計方法を実現可能なコンピュータの構成例を示す図である。バス２０１には、ＣＰＵ２０２、ＲＯＭ（Read Only Memory）２０３、ＲＡＭ（Random Access Memory）２０４、ネットワークインターフェース２０５、入力装置２０６、出力装置２０７、及び外部記憶装置２０８が接続されている。
【００３０】
ＣＰＵ２０２は、データの処理や演算を行うとともに、バス２０１を介して接続された各構成要素を制御するものである。ＲＯＭ２０３には、予めブートプログラムが記憶されており、このブートプログラムをＣＰＵ２０２が実行することにより、コンピュータが起動する。外部記憶装置２０８にコンピュータプログラムが記憶されており、そのコンピュータプログラムがＲＡＭ２０４にコピーされてＣＰＵ２０２により実行することで、例えば前述した半導体装置の設計方法の各処理等が行われる。ＲＡＭ２０４は、データの入出力、送受信のためのワークメモリ、各構成要素の制御のための一時記憶として用いられる。
【００３１】
ネットワークインターフェース２０５は、ネットワークに接続するためのインターフェースである。入力装置２０６は、例えばキーボードやポインティングデバイス（マウス）等であり、各種指定や入力等を行うことができる。出力装置２０７は、ディスプレイやプリンタ等であり、表示や印刷等を行うことができる。外部記憶装置２０８は、例えばハードディスク記憶装置やＣＤ−ＲＯＭのような記録媒体等であり、電源を切っても記憶内容が消えない。
【００３２】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００３３】
１１、１３、１４、５１、５２、５３  バッファ
１２、５４  インバータ
１５、５５  フリップフロップ
１００  半導体チップ
１１０  論理処理回路部
１２０  半導体装置
ＳＩＮ  入力信号
ＳＯＵＴ  出力信号
【図１】
2019140355.tif 000003
【図２】
2019140355.tif 000004
【図３】
2019140355.tif 000005
【図４】
2019140355.tif 000006
【図５】
2019140355.tif 000007
【図６】
2019140355.tif 000008
【図７】
2019140355.tif 000009