JP7057591B2 - 半導体装置の設計方法及び半導体装置 - Google Patents

半導体装置の設計方法及び半導体装置 Download PDF

Info

Publication number
JP7057591B2
JP7057591B2 JP2018025201A JP2018025201A JP7057591B2 JP 7057591 B2 JP7057591 B2 JP 7057591B2 JP 2018025201 A JP2018025201 A JP 2018025201A JP 2018025201 A JP2018025201 A JP 2018025201A JP 7057591 B2 JP7057591 B2 JP 7057591B2
Authority
JP
Japan
Prior art keywords
clock signal
flip
semiconductor device
flop
buffer group
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.)
Active
Application number
JP2018025201A
Other languages
English (en)
Other versions
JP2019139714A (ja
Inventor
春敏 長友
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
YOSHIKAWASYSTEC CO., LTD.
Original Assignee
YOSHIKAWASYSTEC CO., LTD.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by YOSHIKAWASYSTEC CO., LTD. filed Critical YOSHIKAWASYSTEC CO., LTD.
Priority to JP2018025201A priority Critical patent/JP7057591B2/ja
Publication of JP2019139714A publication Critical patent/JP2019139714A/ja
Application granted granted Critical
Publication of JP7057591B2 publication Critical patent/JP7057591B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、半導体装置の設計方法及び半導体装置に関する。
近年、半導体装置の不当なリバースエンジニアリングが増えてきている。リバースエンジニアリングの手法として、半導体装置が実装されたチップ表面からの光学的解析だけでなく、配線層を1層ずつ剥離して撮影し、得られた画像を重ね合わせ、ソフトウェアツールで配線情報を抽出し回路図を再現する技術も用いられている。
リバースエンジニアリングを防止するための様々な方法が提案されており(例えば、特許文献1~10参照)、リバースエンジニアリングを防ぐために、例えば配線層に工夫を施す方法や、配線層よりも下層にある拡散層やバルクを利用する方法が提案されている。例えば、特許文献1には、酸化膜厚を変えた複数種類のトランジスタから構成され、ゲート遅延を利用して出力の解析を困難にした回路を用いることで、リバースエンジニアリングによって半導体装置を再現することを困難にする技術が提案されている。
米国特許第9479176号明細書 米国特許第9437555号明細書 特開平6-163539号公報 特開平9-92727号公報 米国特許第6117762号明細書 米国特許第6979606号明細書 米国特許第7128271号明細書 米国特許第9337156号明細書 特表2004-518273号公報 特開2014-135386号公報
しかしながら、前述した特許文献1に記載の技術では、酸化膜厚を変えた複数種類のトランジスタを用いるため、プロセスフローの変更が必要になる。また、リバースエンジニアリングを防止する他の方法においても、半導体製造プロセスの変更が必要になり、プロセス開発期間やコストが増加するといった問題がある。本発明の目的は、半導体製造プロセスの変更等を必要とせずに、リバースエンジニアリングでの半導体装置の再設計を困難にすることである。
本発明に係る半導体装置の設計方法は、第1のクロック信号で動作するフリップフロップと前記第1のクロック信号とは位相が異なる第2のクロック信号で動作するフリップフロップとを有するシフトレジスタと、1以上のバッファを有する第1のバッファ群と前記第1のバッファ群の後段に接続される1以上のバッファを有する第2のバッファ群とを有し前記第1のクロック信号を出力するクロックツリーとを含む半導体装置の設計方法であって、コンピュータが、前記第2のバッファ群から前記第1のクロック信号で動作するフリップフロップに前記第1のクロック信号を供給する第1の配線を生成する第1の工程と、前記コンピュータが、前記第1のバッファ群から前記第2のクロック信号で動作するフリップフロップに前記第1のクロック信号を供給する第2の配線を生成する第2の工程とを有することを特徴とする。
本発明によれば、リバースエンジニアリングでの半導体装置の再設計を困難にすることができる。
本発明の実施形態における設計対象の半導体装置の例を示す図である。 本実施形態における半導体装置の設計方法の例を示すフローチャートである。 本実施形態における半導体装置の設計方法を説明する図である。 本実施形態における半導体装置の例を示す図である。 リバースエンジニアリングを説明する図である。 本実施形態における半導体装置の適用例を示す図である。 本実施形態における半導体装置の設計方法を実現可能なコンピュータの構成例を示す図である。
以下、本発明の実施形態を図面に基づいて説明する。
図1を参照して、本発明の実施形態における設計対象の半導体装置の例について説明する。本実施形態における設計対象の半導体装置は、例えば図1に例示した機能を実現するシフトレジスタを含む。図1(A)に示すように、設計対象の半導体装置が有するシフトレジスタは、3つのフリップフロップ(レジスタ)11、12、13を有する。
入力信号SGAが、フリップフロップ11のデータ入力端子(D)に入力され、フリップフロップ11のデータ出力端子(Q)からの出力信号SGBが、フリップフロップ12のデータ入力端子(D)に入力される。また、フリップフロップ12のデータ出力端子(Q)からの出力信号SGCが、フリップフロップ13のデータ入力端子(D)に入力され、フリップフロップ13のデータ出力端子(Q)からの出力が出力信号SGDとして出力される。
フリップフロップ11、13のクロック入力端子には、バッファ14を介してクロック信号CKが入力され、フリップフロップ12のクロック入力端子には、インバータ15を介して、クロック信号CKを反転した反転クロック信号CKBが入力される。フリップフロップ11、12、13のそれぞれは、入力されるクロック信号の立ち上がり時にデータをラッチして出力する。したがって、フリップフロップ12の出力は、フリップフロップ11、13に対してクロック信号CKの半周期早く出力されることになるが、入力信号SGAをシフトして出力信号SGDを得るシフトレジスタの機能が実現される。
例えば、図1(B)に示すように、時刻T11において、入力信号SGAがパルス状にハイレベル(“H”)になると、クロック信号CKが立ち上がる時刻T12において、フリップフロップ11が“H”をラッチして出力信号SGBが“H”となる。続いて、クロック信号CKBが立ち上がる時刻T13において、フリップフロップ12が“H”をラッチして出力信号SGCが“H”となり、その後にクロック信号CKが立ち上がる時刻T14において、フリップフロップ13が“H”をラッチして出力信号SGDが“H”となる。すなわち、図1(A)に示すシフトレジスタは、入力される入力信号SGAをクロック信号CKの2周期後に出力信号SGDとして出力する機能を実現する3段のシフトレジスタである。
次に、本実施形態における半導体装置の設計方法について説明する。図2は、本実施形態における半導体装置の設計方法を説明するフローチャートである。図に示す処理は、例えばレイアウト設計等を行う半導体装置の設計装置により実行される。以下では、図1に示した3段のシフトレジスタを適宜参照して説明するが、本発明は、これに限定されるものではなく、2以上の異なる位相のクロック信号を用いる、任意の複数段のシフトレジスタに対して適用可能である。
まず、ステップS21にて、設計装置は、回路情報に基づいてレイアウト設計を行い、半導体装置における配置配線及びクロックツリーを自動生成する。例えば、図1(A)に示したシフトレジスタについては、図3に示すように配置配線及びクロックツリーが自動で生成される。この図3において、図1(A)に示した構成要素と同一の構成要素には同一の符号を付している。図3において、16、17はバッファ(クロックバッファ)であり、クロック信号CKをそのままの位相で出力する。図3に示すように、フリップフロップ12は反転クロック信号CKBを受けるため、ステップS21での処理後においてはインバータ15が残っている。
次に、ステップS22にて、設計装置は、ステップS21での処理により得られた情報において、反転クロック信号の配線の変更を行う。ステップS22での処理では、反転クロック信号CKBを出力するためのインバータを削除し、反転クロック信号CKBの代わりとして、クロックツリーの上流側のバッファから出力されるクロック信号CKが供給されるようにクロック信号の配線を変更する。
例えば、図1(A)に示したシフトレジスタについては、図4(A)に示すように配線を変更する。反転クロック信号CKBを出力するためのインバータ15を削除する。そして、シフトレジスタ11、13にクロック信号CKを供給するバッファ14よりもクロックツリーにおいて上流側にあるバッファ16から出力されるクロック信号CKXがフリップフロップ12に供給されるようクロック信号の配線を変更する。
このように変更すると、フリップフロップ12におけるデータのラッチタイミングは、反転クロック信号CKBを用いる場合と比較して遅れることになる。しかし、クロック信号CKが立ち上がる前にクロック信号CKXが立ち上がるので、シフトレジスタの出力信号SGDのタイミングには影響を及ぼすことなく、所望の動作が実現できる。
例えば、図4(B)に示すように、時刻T41において、入力信号SGAがパルス状に“H”になると、クロック信号CKが立ち上がる時刻T42において、フリップフロップ11が“H”をラッチして出力信号SGBが“H”となる。続いて、クロック信号CKが次に立ち上がる時刻T44より前の時刻T43において、クロック信号CKXが立ち上がり、フリップフロップ12が“H”をラッチして出力信号SGCが“H”となり、その後にクロック信号CKが立ち上がる時刻T44において、フリップフロップ14が“H”をラッチして出力信号SGDが“H”となる。すなわち、入力信号SGAと出力信号SGDとの関係でみれば、入力される入力信号SGAをクロック信号CKの2周期後に出力信号SGDとして出力する同じ機能が実現される。
図2に戻り、ステップS22での処理を行った後、ステップS23にて、設計装置は、クロック信号の配線を変更したレイアウト情報を出力して処理を終了する。
次に、前述のように設計を行って製造された半導体装置について、リバースエンジニアリングでの半導体装置の再設計が困難であることを説明する。リバースエンジニアリングでは、半導体装置のレイアウトから回路情報を抽出するので、図4(A)に示したように配線が変更された半導体装置のレイアウトからは図5(A)に示すような回路情報が得られることになる。すなわち、フリップフロップ51~53の何れもがクロック信号CKで動作する回路構成が得られる。なお、図5において、フリップフロップ51~53は、それぞれ図4(A)におけるフリップフロップ11~13に対応する。
リバースエンジニアリングを行うエンジニアは、再設計においては配置配線の自動生成を再度実施するため、タイミング情報がまったく異なったものとなり、クロックツリーの自動生成も実施する必要がある。この際、図4(A)に示したようなクロックツリーは一度すべて削除され、新たにクロックツリーの生成を行う。したがって、図5(A)に示したようにフリップフロップ51~53の何れもが同じ位相のクロック信号CKで動作する回路構成では、フリップフロップ51~53に対してクロックタイミング(スキュー)が調整された図5(B)に示すようなクロックツリーが生成される。なお、図5において、バッファ56、57は、それぞれ図4(A)におけるバッファ16、17に対応する。
この場合には、図5(C)に示すように、クロック信号CKが立ち上がる時刻T51、T52、T53、T54において、入力信号SGAがシフトされる。すなわち、クロック信号CKの1周期毎に信号をシフトして、入力される入力信号SGAをクロック信号CKの3周期後に出力信号SGDとして出力することになる。したがって、入力される入力信号SGAをクロック信号CKの2周期後に出力信号SGDとして出力するシフトレジスタの機能を実現することができず、所望の動作を再現することができない。
このように本実施形態によれば、シフトレジスタにおいて、反転クロック信号CKBで動作するフリップフロップに対して、反転クロック信号CKBの代わりにクロックツリーにおける上流側のバッファが出力するクロック信号CKを供給するように配線を変更することで、リバースエンジニアリングの際にクロックツリーの自動生成を実施すると、所望の動作が再現できなくなる。クロックツリーの自動生成で動作が再現できないと、クロックツリーにおけるゲート遅延や配線遅延をも考慮した解析が必要となり、その解析は非常に困難である。したがって、半導体装置のリバースエンジニアリングを困難にし、光学的・破壊的なリバースエンジニアリングによる不正コピーや不正使用目的の回路解析を防止することが可能となる。
図6は、本実施形態における半導体装置の適用例を示す図である。図6において、100は、本実施形態における半導体装置を含む半導体チップである。半導体チップ100において、各種の論理処理を行う論理処理回路部110に対して、前述のようにして設計された1個又は複数個の本実施形態における半導体装置120の出力が接続される。論理処理回路部110は、半導体装置120の出力を用いて一部又は全部の論理処理を行うことで、論理処理回路部110における入力と出力との関係は、半導体装置120の出力状態にも依存する。リバースエンジニアリングにより本実施形態における半導体装置120の出力状態を判明することは困難であり、論理処理回路部110における入力と出力との関係を解析することも困難となり、半導体チップの不正コピー等を防止することが可能となる。
前述した実施形態における半導体装置の設計方法は、例えばCPU又はMPU、RAM、ROM等を有するコンピュータが、記憶部に記憶されたプログラムを実行することで実現でき、前記プログラムは本発明の実施形態に含まれる。また、コンピュータが前記機能を果たすように動作させるプログラムを、例えばCD-ROMのような記録媒体に記録し、コンピュータに読み込ませることによって実現できるものであり、前記プログラムを記録した記録媒体は本発明の実施形態に含まれる。前記プログラムを記録する記録媒体としては、CD-ROM以外に、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。
また、コンピュータがプログラムを実行し処理を行うことにより、前記実施形態の機能が実現されるプログラムプロダクトは、本発明の実施形態に含まれる。前記プログラムプロダクトとしては、前記実施形態の機能を実現するプログラム自体、前記プログラムが読み込まれたコンピュータがある。また、前記プログラムプロダクトとして、ネットワークを介して通信可能に接続されたコンピュータに前記プログラムを提供可能な送信装置、当該送信装置を備えるネットワークシステム等がある。
また、供給されたプログラムがコンピュータにおいて稼動しているOS(オペレーティングシステム)又は他のアプリケーションソフト等と協働して前記実施形態の機能が実現される場合も、かかるプログラムは本発明の実施形態に含まれる。また、供給されたプログラムの処理のすべて又は一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて前記実施形態の機能が実現される場合も、かかるプログラムは本発明の実施形態に含まれる。また、本発明をネットワーク環境で利用するべく、全部又は一部のプログラムが他のコンピュータで実行されるようになっていても良い。
例えば、前述した実施形態における半導体装置の設計方法は、図7に示すようなコンピュータ(設計装置)により実現でき、そのCPU(Central Processing Unit)により前述した実施形態における半導体装置の設計方法の動作が実施される。図7は、本実施形態における半導体装置の設計方法を実現可能なコンピュータの構成例を示す図である。バス201には、CPU202、ROM(Read Only Memory)203、RAM(Random Access Memory)204、ネットワークインターフェース205、入力装置206、出力装置207、及び外部記憶装置208が接続されている。
CPU202は、データの処理や演算を行うとともに、バス201を介して接続された各構成要素を制御するものである。ROM203には、予めブートプログラムが記憶されており、このブートプログラムをCPU202が実行することにより、コンピュータが起動する。外部記憶装置208にコンピュータプログラムが記憶されており、そのコンピュータプログラムがRAM204にコピーされてCPU202により実行することで、例えば前述した半導体装置の設計方法の各処理等が行われる。RAM204は、データの入出力、送受信のためのワークメモリ、各構成要素の制御のための一時記憶として用いられる。
ネットワークインターフェース205は、ネットワークに接続するためのインターフェースである。入力装置206は、例えばキーボードやポインティングデバイス(マウス)等であり、各種指定や入力等を行うことができる。出力装置207は、ディスプレイやプリンタ等であり、表示や印刷等を行うことができる。外部記憶装置208は、例えばハードディスク記憶装置やCD-ROMのような記録媒体等であり、電源を切っても記憶内容が消えない。
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
11、12、13 フリップフロップ
14、16、17 バッファ
15 インバータ
100 半導体チップ
110 論理処理回路部
120 半導体装置
201 バス
202 CPU
203 ROM
204 RAM
205 ネットワークインターフェース
206 入力装置
207 出力装置
208 外部記憶装置

Claims (4)

  1. 第1のクロック信号で動作するフリップフロップと前記第1のクロック信号とは位相が異なる第2のクロック信号で動作するフリップフロップとを有するシフトレジスタと、1以上のバッファを有する第1のバッファ群と前記第1のバッファ群の後段に接続される1以上のバッファを有する第2のバッファ群とを有し前記第1のクロック信号を出力するクロックツリーとを含む半導体装置の設計方法であって、
    コンピュータが、前記第2のバッファ群から前記第1のクロック信号で動作するフリップフロップに前記第1のクロック信号を供給する第1の配線を生成する第1の工程と、
    前記コンピュータが、前記第1のバッファ群から前記第2のクロック信号で動作するフリップフロップに前記第1のクロック信号を供給する第2の配線を生成する第2の工程とを有することを特徴とする半導体装置の設計方法。
  2. 前記第1の工程では、さらに前記第2のクロック信号を前記第2のクロック信号で動作するフリップフロップに供給する第3の配線を生成し、
    前記第2の工程では、前記第1の工程で生成した前記第3の配線を、前記第2の配線に変更することを特徴とする請求項1記載の半導体装置の設計方法。
  3. 前記第2のクロック信号は、前記第1のクロック信号を反転したクロック信号であることを特徴とする請求項1又は2記載の半導体装置の設計方法。
  4. 第1のクロック信号で動作するフリップフロップと前記第1のクロック信号とは位相が異なる第2のクロック信号で動作するフリップフロップとを有するシフトレジスタと、
    前記第1のクロック信号が入力され、1以上のバッファを有する第1のバッファ群と、
    前記第1のバッファ群の後段に接続される1以上のバッファを有する第2のバッファ群と、
    前記第2のバッファ群の出力と前記第1のクロック信号で動作するフリップフロップとを接続し、前記第2のバッファ群から前記第1のクロック信号で動作するフリップフロップに前記第1のクロック信号を供給する第1の配線と、
    前記第1のバッファ群の出力と前記第2のクロック信号で動作するフリップフロップとを接続し、前記第1のバッファ群から前記第2のクロック信号で動作するフリップフロップに前記第1のクロック信号を供給する第2の配線とを有することを特徴とする半導体装置。
JP2018025201A 2018-02-15 2018-02-15 半導体装置の設計方法及び半導体装置 Active JP7057591B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018025201A JP7057591B2 (ja) 2018-02-15 2018-02-15 半導体装置の設計方法及び半導体装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018025201A JP7057591B2 (ja) 2018-02-15 2018-02-15 半導体装置の設計方法及び半導体装置

Publications (2)

Publication Number Publication Date
JP2019139714A JP2019139714A (ja) 2019-08-22
JP7057591B2 true JP7057591B2 (ja) 2022-04-20

Family

ID=67694135

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018025201A Active JP7057591B2 (ja) 2018-02-15 2018-02-15 半導体装置の設計方法及び半導体装置

Country Status (1)

Country Link
JP (1) JP7057591B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004260212A (ja) 2004-05-24 2004-09-16 Sharp Corp 半導体装置
JP2016063061A (ja) 2014-09-18 2016-04-25 富士通セミコンダクター株式会社 集積回路装置の設計方法,集積回路装置の製造方法及びその集積回路装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004260212A (ja) 2004-05-24 2004-09-16 Sharp Corp 半導体装置
JP2016063061A (ja) 2014-09-18 2016-04-25 富士通セミコンダクター株式会社 集積回路装置の設計方法,集積回路装置の製造方法及びその集積回路装置

Also Published As

Publication number Publication date
JP2019139714A (ja) 2019-08-22

Similar Documents

Publication Publication Date Title
US20130305078A1 (en) System on chip (soc), method of operating the soc, and system having the soc
US10699054B2 (en) Standard cell library, integrated circuit including synchronous circuit, and computing system for designing the integrated circuit
CN109462394B (zh) 时序电路
CN108933582A (zh) 用于时序电路的设备
JP2001357090A (ja) 論理合成方法及び論理合成装置
US10586006B2 (en) Build synthesized soft arrays
US6518788B2 (en) Logic circuit design method and logic circuit
JP4437741B2 (ja) 半導体集積回路の設計装置、半導体集積回路および半導体集積回路の設計プログラム
JP7057591B2 (ja) 半導体装置の設計方法及び半導体装置
JPWO2008126207A1 (ja) 半導体集積回路の設計方法
CN111147068B (zh) 全加器集成电路、四输入复用器集成电路及其使用方法
JP2011023941A (ja) フリップフロップおよび半導体回路
US8566763B2 (en) Logic circuit design method, logic design program, and semiconductor integrated circuit
US8984456B2 (en) Macro timing analysis device, macro boundary path timing analysis method and macro boundary path timing analysis program
TW201935289A (zh) 用於單元交換的方法
JP4419633B2 (ja) 論理回路設計システム、論理回路設計方法およびそのプログラム
US6532584B1 (en) Circuit synthesis method
JP7046324B2 (ja) 半導体装置及び半導体装置の設計方法
US10817633B2 (en) Timing model, timing model building method, and related top-level analysis method
KR100595534B1 (ko) 지연셀을 추가한 플립-플롭을 이용한 홀드 바이올레이션교정 방법
US7010072B2 (en) Aligned clock forwarding scheme
CN111722788B (zh) 存储器装置以及存储器的存取方法
TWI821198B (zh) 積體電路、非暫態電腦可讀取媒體及計算系統
JP2011164988A (ja) 設計装置
US10371749B1 (en) Removal of over-masking in an on product multiple input signature register (OPMISR) test

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180327

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220308

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220322

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220329

R150 Certificate of patent or registration of utility model

Ref document number: 7057591

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150