(57)【要約】【課題】半導体集積回路において、遅延故障の発生を低減できる技術を提供する。【解決手段】本発明の半導体回路の設計支援装置は、被検査回路の属性情報を取得する属性情報取得部と、前記属性情報取得部で取得された属性情報に基づいて、前記被検査回路において遅延故障が発生しやすい遅延故障発生部分を特定する遅延故障特定部と、前記遅延故障特定部によって特定された遅延故障発生部分に対し、遅延故障の発生を低減させる措置を施す遅延防止部と、を備える。【選択図】図１
2008287342.tif 000002
【特許請求の範囲】
【請求項１】
被検査回路の属性情報を取得する属性情報取得部と、
前記属性情報取得部で取得された属性情報に基づいて、前記被検査回路において遅延故障が発生しやすい遅延故障発生部分を特定する遅延故障特定部と、
前記遅延故障特定部によって特定された遅延故障発生部分に対し、遅延故障の発生を低減させる措置を施す遅延防止部と、
を備える半導体回路の設計支援装置。
【請求項２】
前記属性情報には、クロック信号に先立ち所定のデータを確定保持する規定時間に関するセットアップタイム情報が含まれ、
前記遅延故障特定部は、予め規定された基準セットアップタイムを下回るセットアップタイムを有する回路部分を前記被試験回路内から抽出することで、前記遅延故障発生部分を特定する、
請求項１に記載の半導体回路の設計支援装置。
【請求項３】
前記属性情報には、前記被検査回路が動作可能な周波数に関する周波数情報が含まれ、
前記遅延故障特定部は、予め規定された基準周波数を上回る周波数で動作する回路部分を前記被試験回路内から抽出することで、前記遅延故障発生部分を特定する、請求項１に記載の半導体回路の設計支援装置。
【請求項４】
前記遅延防止部は、前記遅延故障特定部によって特定された遅延故障発生部分に関連する前記被検査回路の層間接続部分に対し、該層間接続部分における上層配線の一部と該上層配線とラップする下層配線の一部を斜め配線として接続することで、遅延故障の発生を低減させる、請求項１から請求項３のいずれかに記載の半導体回路の設計支援装置。
【請求項５】
コンピュータが、
被検査回路の属性情報を取得する属性情報取得ステップと、
前記属性情報取得部で取得された属性情報に基づいて、前記被検査回路において遅延故障が発生しやすい遅延故障発生部分を特定する遅延故障特定ステップと、
前記遅延故障特定部によって特定された遅延故障発生部分に対し、遅延故障の発生を低減させる措置を施す遅延防止ステップと、
を実行する半導体回路の設計支援方法。
【請求項６】
被検査回路の属性情報を取得する属性情報取得ステップと、
前記属性情報取得部で取得された属性情報に基づいて、前記被検査回路において遅延故障が発生しやすい遅延故障発生部分を特定する遅延故障特定ステップと、
前記遅延故障特定部によって特定された遅延故障発生部分に対し、遅延故障の発生を低減させる措置を施す遅延防止ステップと、
をコンピュータに実行させる半導体回路の設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の遅延故障製造流出率を低減するための、半導体回路の設計支援装置、半導体回路の設計支援方法及び半導体回路の設計支援プログラムの技術に関するものである。
【背景技術】
【０００２】
近年の電子機器や情報機器類には、半導体集積回路が搭載されている。そして半導体集積回路の設計・製造は、高度なＣＡＤ技術・半導体製造技術の下で進められている。例えば、特許文献１に開示の技術では、多層配線構造での電流集中を緩和あるいは阻止する多層配線構造が開示されている。また、例えば特許文献２に開示の技術では、少ない計算量で効率的に斜め配線の終端レイアウトを設計する方法が開示されている。
【０００３】
一方、設計された半導体集積回路の中には、正常動作しない回路も存在する。断線やショートなど物理破損の影響により電流が流れず、例えば連続するビットの状態が０になることで発生する固定故障やスタック故障等の場合、比較的発生場所や要因が特定しやすい。しかし、設計通りの速度で動作しないことで発生する遅延故障やトランジション故障の場合、ショートといった動作の故障が現れない。従って、遅延故障等は、固定故障等を検出する検査方法では故障の判別が困難とされていた。
【特許文献１】特開平１１−２２００２０号公報
【特許文献２】特開２００１−１４２９３１号公報
【特許文献３】特開平９−４５７７８号公報
【特許文献４】特開昭６２−１５５５９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
固定故障のように物理的破損の影響による故障の場合、故障の発生場所や要因の特定が比較的容易である。これに対し、遅延故障やトランジション故障の場合、ショートといった動作の故障が現れないことから、故障の発生場所や要因の特定が困難とされていた。また、遅延故障を試験で特定する場合、実際に試験パターンの速度を上げる手法が考えられる。しかし、この場合、試験装置の性能が試験対象である集積回路の性能を下回っている（試験装置の速度が試験対象である集積回路の速度を下回っている）場合、遅延故障を検出することができないといった問題もある。
【０００５】
本発明では、上述した問題に鑑み、半導体集積回路において、遅延故障の発生を低減できる技術を提供することを課題とする。
【課題を解決するための手段】
【０００６】
本発明は前記課題を解決するために、被検査回路の属性情報に基づいて遅延故障の要因を特定し、特定した要因に対して冗長化措置、すなわち遅延故障の発生を低減させる措置を施すこととした。これにより、本発明によれば、遅延故障の要因となる回路部分を冗長化することができるので、半導体回路の遅延故障の発生を低減することができる。
【０００７】
より詳細には、本発明は、被検査回路の属性情報を取得する属性情報取得部と、前記属性情報取得部で取得された属性情報に基づいて、前記被検査回路において遅延故障が発生しやすい遅延故障発生部分を特定する遅延故障特定部と、前記遅延故障特定部によって特定された前記遅延故障発生部分に対し、遅延故障の発生を低減させる措置を施す遅延防止
部と、を備える。
【０００８】
属性情報取得部は、被検査回路の属性情報を取得する。被検査回路とは、検査対象となる回路であり、半導体集積回路が例示される。属性情報には、被検査回路を構成する層に関する情報、層と層とを接続する層間接続部分に関する情報、被検査回路を構成する配線（経路）に関する情報等、被検査回路を特定する様々な情報が含まれる。なお、このような属性情報、換言するとスペック情報は、被検査回路の設計時において該被検査回路に対して与えられている情報である。従って、属性情報取得部は、設計時を基準として属性情報を取得すればよい。
【０００９】
遅延故障特定部は、遅延故障が発生し易い部分、すなわち遅延故障の発生リスクが高い回路部分を特定する。本発明では、この遅延故障特定部によって特定された回路部分を遅延故障発生部分と称する。遅延故障発生部分の特定は、属性情報取得部によって取得された被検査回路の属性情報に基づいて行うことができる。遅延故障発生部分の特定は、例えば、遅延故障が発生し易い回路部分に共通するデータを予め実験等によって求め、これを数値化して基準値として設定し、取得された属性情報と基準値とを比較判定することで行うことができる。
【００１０】
遅延防止部は、遅延故障発生部分に対し、遅延故障の発生を低減させる措置を施す。ここで、遅延故障発生の要因は様々であるが、遅延故障発生の要因は、層と層との接続部分（層間接続部分）における不具合によるものが比較的多い。そこで、本発明では、遅延故障特定部で特定された遅延故障発生部分を層間接続部分に関連付け、この層間接続部分に対して冗長化、すなわち遅延故障の発生を低減させる措置を施すことで、遅延故障の発生事態を低減することとした。遅延故障の発生を低減させる措置とは、例えば層間接続部分のビアホール（via hole）数を増やすといったように、遅延故障発生部分に対して冗長化処理を行うことを意味する。ビアホールとは、半導体回路の多層配線構造で、配線間を上下方向に電気的に接続するために層間絶縁膜に設けられた開口部である。ビアホールは、複数配置するように設計することで、一のビアホールに不具合が発生した場合でも他のビアホールでこの不具合をカバーすることができる。従って、ビアホールの数を増やすことで遅延故障の発生を低減させることができる。
【００１１】
以上説明した本発明によれば、遅延故障特定部を備えることで、属性情報取得部によって取得された属性情報に基づいて遅延故障発生部分を特定することができる。また、本発明によれば、遅延防止部を備えることで、遅延故障特定部によって特定された遅延故障発生部分に対し、遅延故障の発生を低減させる措置を施すことができる。すなわち、本発明によれば、半導体回路の遅延故障の発生リスクの高い回路部分を特定すると共に、遅延故障の発生を低減させる対策を施すことができるので、半導体回路における遅延故障の発生を低減させることができる。
【００１２】
ここで、上述した本発明において、前記属性情報には、クロック信号に先立ち所定のデータを確定保持する規定時間に関するセットアップタイム情報が含まれ、前記遅延故障特定部は、予め規定された基準セットアップタイムを下回るセットアップタイムを有する回路部分を前記被試験回路内から抽出することで、前記遅延故障発生部分を特定するようにしてもよい。
【００１３】
本発明は、遅延故障発生部分を特定する際の基準としてセットアップタイムに着目したものである。半導体回路では、所定のデータ（所定のデータは、半導体回路で扱われる種々のデータを含むものであり、特に限定されるものではない。）を取り込むために、このデータを取り込むためのデータ信号と、データを取り込むためのタイミングを計るためのクロック信号が必要とされる。従って、半導体回路では、データ信号がクロック信号に先
立ってデータを確定保持し、更にデータが取り込まれてクロック信号が与えられた後も一定時間その状態を保持するように設計されている。このクロック信号に先立ってデータを確定保持する規定時間がセットアップタイムである。一方クロック信号が与えられた後において一定時間データを保持している時間がホールド時間である。そして、セットアップタイムが短い回路部分は、タイミングマージンが少ないことから、回路の状態が不安定になり易く、遅延故障を発生し易いといった特性を有している。また、このようにセットアップタイムが短い回路部分に関連する層間接続部分に不具合が発生した場合、タイミングマージンが少ないことから遅延故障の影響を受け易い。そこで、本発明では、この点に着目して、基準セットアップタイムを下回るセットアップタイムを有する回路部分を抽出し、抽出された部分に関連する層間接続部分に対して遅延故障の発生を低減させる措置を施すこととした。なお、セットアップタイムは、半導体回路を構成する配線毎に設定されているものである。従って、基準セットアップタイムを下回るセットアップタイムを有する回路部分は、配線毎に特定することが可能となる。また、基準セットアップタイムは、遅延故障を発生し易いセットアップタイムを実験等によって予め求めることで適宜設定すればよい。
【００１４】
また、本発明において、前記属性情報には、前記被検査回路が動作可能な周波数に関する周波数情報が含まれ、前記遅延故障特定部は、予め規定された基準周波数を下回る周波数で動作する回路部分を前記被試験回路内から抽出することで、前記遅延故障発生部分を特定するようにしてもよい。
【００１５】
本発明は、遅延故障発生部分を特定する際の基準として周波数に着目したものである。すなわち、半導体回路は、所定の周波数の下で動作しているが、正常に動作可能な周波数は、半導体回路内の配線等によって異なる。また、動作可能な周波数は、設計時において半導体回路内の配線毎によって設定されている。そして、動作周波数が高くなると、回路への負担が大きくなり、回路の状態が不安定となり易い。その結果、遅延故障の影響を受け易いと考えられる。そこで、本発明では、この点に着目して、基準周波数を上回る周波数で動作する回路部分を抽出し、抽出された回路部分に関連する層間接続部分に対して遅延故障の発生を低減させる措置を施すこととした。
【００１６】
また、本発明において、前記属性情報には、前記被検査回路の層間接続部分に関する層間接続情報が含まれ、前記遅延故障特定部は、予め規定された基準層間接続部数を上回る層間接続部数を有する回路部分を前記被試験回路内から抽出することで、前記遅延故障発生部分を特定するようにしてもよい。
【００１７】
本発明は、遅延故障発生部分を特定する際の基準として層間接続部数に着目したものである。多層配線構造を有する被検査回路の所定の回路に着目した場合、その所定回路は、複数層に跨って配線されている。すなわち、所定の回路は、基端から終端に向けて複数の層を渡り歩いている。そして、上述したように遅延故障が層間接続部において発生し易いことを考慮すると、このように複数層に跨って配線されている回路部分は、特に遅延故障の影響を受け易いと考えられる。そこで、本発明では、この点に着目して、基準層間接続部数を上回る層間接続部数を有する回路部分を抽出し、抽出された回路部分に関連する層間接続部分に対して遅延故障の発生を低減させる措置を施すこととした。
【００１８】
なお、遅延故障発生部分の特定は、上述したセットアップタイム情報、周波数情報及び層間接続情報のうち少なくともいずれか一つに基づいて特定するようにしてもよい。なお、全ての情報を考慮して遅延故障発生部分を特定する場合には、これらの情報に対して（１）セットアップタイム情報、（２）周波数情報、（３）層間接続情報といったように優先順位を設けてもよい。
【００１９】
また、本発明において、前記遅延防止部は、前記遅延故障特定部によって特定された遅延故障発生部分に関連する前記被検査回路の層間接続部分に対し、該層間接続部分における上層配線の一部と該上層配線とラップする下層配線の一部を斜め配線として接続することで、遅延故障の発生を低減させるようにしてもよい。
【００２０】
上層配線と下層配線とがラップする部分を斜め配線として接続することで配線長を短縮することができ、遅延を低減させることができる。斜め配線は、直線状の配線の一部を所定の角度に曲げることで形成することができる。なお、斜め配線上に複数のビアホールを設けることで、より効果的に遅延故障の発生を低減させることができる。
なお、本発明は、上述した半導体回路の設計支援装置を搭載した設計支援システム、及び上述した半導体回路の設計支援装置によって設計支援されることで製造された半導体回路としてもよい。また、本発明は、上述したいずれかの機能を実現させる方法、プログラム、又はプログラムを記録した記録媒体であってもよい。
【発明の効果】
【００２１】
本発明によれば、半導体集積回路において、遅延故障の発生を低減できる技術を提供することができる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して本発明の半導体回路の設計支援装置（以下、単に設計支援装置という。）の実施形態について説明する。なお、以下の説明においては設計支援装置が搭載された設計支援システムを例に説明するものとする。また、以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
【００２３】
＜設計支援装置の概略構成＞
次に、本実施形態の設計支援システム１について説明する。図１は、本実施形態の設計支援システム１の機能ブロック図を示す。同図に示すように、本実施形態の設計支援システム１は、制御装置１０と、設計者等の指示を受け付けて制御装置１０を操作する操作部１２と、制御装置１０で行われた処理結果等を表示可能な表示部１３と、設計支援システム１のＯＳによって管理され、半導体回路２の属性情報等を記録可能な記憶部１４と、を備えている。なお、制御装置１０は、ＣＰＵ、メモリ等を含むコンピュータとコンピュータ上で実行されるプログラムによって実現することができる。
【００２４】
制御装置１０には、半導体回路２の配置配線を行う回路設計部２１、回路設計部２１によって設計された半導体回路２の動作確認を行う動作確認部２２、半導体回路２の属性情報に基づいて故障発生部分を特定し遅延防止措置を施す設計支援装置１１（本発明の半導体回路の設計支援装置に相当する。）が設けられている。
【００２５】
回路設計部２１は、半導体回路２の初期配置配線設計を行う。回路設計部２１は、ＣＰＵ上で実行されるコンピュータプログラムとして構成することができる。そして、コンピュータプログラムには、公知のプログラムを用いることができる。なお、半導体回路２の設計において必要な条件等の入力は、操作部１２を介して行うことができる。
【００２６】
動作確認部２２は、回路設計部２１によって設計された半導体回路２の動作確認（タイミング検証）を行う。動作確認部２２は、例えば、半導体回路２内のフリップフロップ回路間に所定のデータを流し、遅延時間、セットアップタイム、ホールドタイム等を確認する。ここで、図２は、半導体回路２の回路構成の一部を示す。同図に示すように、半導体回路２は、例えばフリップフロップ回路Ａ（ＦＦ−Ａ）とフリップフロップ回路Ｂ（ＦＦ−Ｂ）と、これら両フリップフロップ回路間に設けられたデータパス５１、それぞれのフリップフロップ回路にクロック信号を供給するクロックパス５２、によって構成されてい
る。そして、半導体回路２には、図２に示すような回路構成が複数設けられている。動作確認部２２は、このような半導体回路２にデータを流し、データパス１、データパス２、データパス３、といったようにフリップフロップ間のデータパスにおけるセットアップタイム等を確認する。
【００２７】
図３は、図２に示す回路のタイミングチャートを示す。同図は、上から順に、クロック信号のタイミングチャート、フリップフロップ回路Ａの出力のタイミングチャート、フリップフロップ回路Ｂの入力のタイミングチャート（データパス１の場合）、フリップフロップ回路Ｂの入力のタイミングチャート（データパス２の場合）、フリップフロップ回路Ｂの入力のタイミングチャート（データパス３の場合）を示す。同図に示すようにクロック信号のある立ち上がり点Ｐを基準とした場合、データパス１は、セットアップタイムが０．５ｎｓｅｃ、データパス２は、セットアップタイムが３．０ｎｓｅｃ、データパス３は、セットアップタイムが２．０ｎｓｅｃとなっている。このように動作確認部２２は、半導体回路２から、上記のようなデータパス毎のデータを取得することができる。なお、動作確認部２２は、ＣＰＵ上で実行されるコンピュータプログラム、例えば公知のタイミング検証ツール（プログラム）によって構成することができる。なお、検証結果は、表示部１３によって確認することができる。
【００２８】
ここで、設計支援装置１１には、半導体回路２の属性情報を取得する属性情報取得部２３、取得した属性情報を記録する属性情報記録部２４、遅延故障が発生し易い遅延故障発生部分を特定するための条件を設定する条件設定部２５、遅延故障発生部分を特定する遅延故障特定部２６、特定された遅延発生部分に対して遅延故障の発生を低減させる措置（以下、遅延故障防止措置という。）を施す遅延防止部２７、遅延防止部２７によって遅延防止措置を施す必要があるか否かを判断する措置実行有無判断部２８、措置が施された否かを確認する措置確認部２９が設けられている。
【００２９】
属性情報取得部２３は、半導体回路２の属性情報として、半導体回路２を構成するデータパスのセットアップタイム（セットアップマージン）を取得する。セットアップタイムは、動作確認部２２によって確認されたセットアップタイムを用いることができる。すなわち、動作確認部２２によって確認された各データパスのセットアップタイムをセットアップデータとして例えば記憶部１４に記録しておけばよく、これにより属性情報取得部２３は、各データパスのセットアップタイムを取得することが可能となる。なお、属性情報取得部２３は、ＣＰＵ上で実行されるコンピュータプログラムとして構成することができる。また、属性情報取得部２３は、専用のプロセッサとして構成してもよい。属性情報取得部２３は、例えば、半導体回路２のＣＡＤデータからこれらの情報を取得することができる。
【００３０】
属性情報記録部２４は、取得した各データパスのセットアップタイムを例えば記憶部１４等に記録する。ここで、図４は、各データパスのセットアップタイムが記録されたテーブル例（以下、セットアップタイムテーブルという。）を示す。このテーブル例では、データパス１はセットアップタイムが０．５ｎｓｅｃ、データパス２はセットアップタイムが３．０ｎｓｅｃ、データパス３はセットアップタイムが２．０ｎｓｅｃといったように、データパス毎のセットアップタイムが記録されている。なお、属性情報記録部２４は、ＣＰＵ上で実行されるコンピュータプログラムとして構成することができる。
【００３１】
条件設定部２５は、遅延故障が発生し易い遅延故障発生部分を特定するための条件を設定する。例えば、セットアップタイムがセットアップタイム基準値を下回る場合に遅延防止措置が必要と判断させる場合、セットアップタイム基準値として１．０ｎｓｅｃが設定される。この設定は、例えば操作部１２を介して入力される設計者等の指示に基づいて設定される。なお、条件設定部２５は、ＣＰＵ上で実行されるコンピュータプログラムとし
て構成することができる。
【００３２】
遅延故障特定部２６は、遅延故障発生部分を特定する。例えば、データパスのセットアップタイムに基づいて遅延故障発生部分を特定する場合、遅延故障特定部２６は、セットアップタイムテーブルを参照し、セットアップタイム基準値として設定された１．０ｎｓｅｃを下回るデータパスを抽出する。セットアップタイムが短い回路部分は、タイミングマージンが少ないことから、回路の状態が不安定になり易く、遅延故障を発生し易いといった特性を有している。また、このようにセットアップタイムが短い回路部分に関連する層間接続部分に不具合が発生した場合、タイミングマージンが少ないことから遅延故障の影響を受け易い。そこで、本実施形態では、この点に着目して、基準セットアップタイム（１．０ｎｓｅｃ）を下回るセットアップタイムを有するデータパスを抽出し、抽出されたデータパスに関連する層間接続部分に対して遅延故障の発生を低減させる措置を施すこととした。なお、データパスに関連する層間接続部分とは、換言すると抽出されたデータパスを有する回路上の層間接続部分である。つまり、半導体回路２は複数の回路によって構成され、それぞれの回路についてみると、それぞれの回路が複数層に跨って配置されているが、データパスに関連する接続部分とは、抽出されたデータパスが存在する回路上の層間接続部分を意味する。
【００３３】
なお、本実施形態では、データパス１（セットアップタイム：０．５ｎｓｅｃ）が遅延故障発生部分として特定される。すなわち、遅延故障特定部２６は、各データパスのセットアップタイムとセットアップタイム基準値とを比較することで、遅延故障の発生を低減させる措置が必要な回路部分としての遅延故障発生部分を特定する。なお、遅延故障特定部２６は、ＣＰＵ上で実行されるコンピュータプログラムとして構成することができる。
【００３４】
措置実行有無判断部２８は、遅延防止部２７によって遅延防止措置を施す必要があるか否かを判断する。すなわち、遅延故障特定部２６によって、遅延故障発生部分が特定された場合、措置実行有無判断部２８は、遅延防止措置を施す必要があると判断する。一方、遅延故障特定部２６によって、遅延故障発生部分が特定されなかった場合、措置実行有無判断部２８は、遅延防止措置を施す必要がないと判断する。なお、措置実行有無判断部２８は、ＣＰＵ上で実行されるコンピュータプログラムとして構成することができる。
【００３５】
遅延防止部２７は、特定された遅延発生部分、より詳細には特定されたデータパスに関連する層間接続部分に対して遅延故障防止措置を施す。遅延故障防止措置とは、例えばビアホール数を増加させる措置である。なお、ビアホールとは、半導体回路の多層配線構造で、配線間を上下方向に電気的に接続するために層間絶縁膜に設けられた開口部を意味する。また、ビアホール数を増加させるとは、一つの接続部分に対してのビアホール数を増加させることを意味する。つまり、所定の回路に着目した場合、この回路は複数の層に跨って配線されている。従って、一つの回路に対して複数の層間接続部分が存在するが、本実施形態におけるビアホール数を増加させるとは、層間接続部分毎にビアホール数を増加させることを意味する。
【００３６】
遅延故障の要因は、層間接続部分の不具合（不良）によるものが多い。従って、ビアホール数を増加させることで、例え一のビアホールに不具合が合った場合でも他のビアホールによって回路の正常動作を確保することができる。その結果、遅延防止を実現することができる。ここで、図５は、ビアホール６１が一つの場合の層間接続部分を示す。また、図６は、ビアホール６１が三つの場合の層間接続部分を示す。図５では、上層配線６２と下層配線６３が一つのビアホール６１によって接続されている。このような場合には、ビアホール６１に不具合が生じた場合、上層配線６２と下層配線６３との電気的な接続状態を保つことができないので、半導体回路が正常に動作しなくなってしまう。すなわち、遅延故障が発生する虞が高い。一方、図６のように、上層配線６２と下層配線６３が三つの
ビアホール６１によって接続されている場合、例えば紙面左側のビアホール６１に不具合が発生しても、残りのビアホール６１によって上層配線６２と下層配線６３との電気的な接続状態は確保される。すなわち、半導体回路２の正常動作が確保されるので、遅延故障の発生を低減させることができる。そこで、本実施形態では、遅延防止措置の一例として、図６に示すようにビアホール数を増加させる措置を施すことができる。なお、遅延防止部２７がビアホール数を増加させる場合における増加数は特に限定されない。遅延防止部２７は、少なくとも遅延防止措置を施す前のビアホール数よりも多くするようにすればよい。
【００３７】
また、図７は、斜め配線を用いる場合の層間接続部分を示す。同図に示すように、この層間接続部分は、上層配線６２と下層配線６３のラップ部分Ｍを斜め配線としている。これにより、上層配線６２と下層配線６３とを直行させる場合よりも、配線の長さを短くすることができる。その結果、遅延防止を図ることができる。また、ラップ部分Ｍには、三つのビアホール６１が設けられている。従って、一のビアホール６１に不具合が発生した場合であっても、他のビアホール６１により上層配線６２と下層配線６３との電気的な接続状態を保つことができる。その結果、半導体回路２の正常動作を確保することができるので、遅延故障の発生を低減させることができる。そこで、本実施形態では、遅延防止措置の一例として、図７に示すように斜め配線や斜め配線に複数のビアホールを設ける措置を施すことができる。なお、遅延防止部２７は、ＣＰＵ上で実行されるコンピュータプログラムとして構成することができる。
【００３８】
措置確認部２９は、遅延防止措置が施された否かを確認する。すなわち、措置確認部２９は、遅延故障発生部分の措置前の状態と措置後の状態とを比較する。これにより、遅延防止措置が確実に施された否かを確認することができ、遅延故障の発生率をより確実に低減させることができる。
【００３９】
次に、本実施形態の設計支援システム１の構成例について説明する。ここで、図８は、本実施形態の設計支援システム１の構成例を示す。同図に示すように、設計支援システム１は、コンピュータプログラムを実行し、設計支援装置１１を制御するＣＰＵ３０と、ＣＰＵ３０で実行されるコンピュータプログラム、あるいはＣＰＵ３０が処理するデータを記憶するメモリ３１と、ＣＰＵ３０を各種の装置に接続するインターフェース３２と、インターフェース３２を通じて接続されるハードディスク駆動装置（記憶部）１４、操作部１２、表示部１３とを有している。
【００４０】
ここで、ＣＰＵ３０は、コンピュータプログラムを実行し、設計支援装置１１の各部を制御し、設計支援システム１の機能を提供する。メモリ３１は、ＣＰＵ３０で実行されるプログラム、及びＣＰＵ３０で処理されるデータを記憶する。メモリ３１は、揮発性のＲＡＭ（Random Access Memory）と、不揮発性のＲＯＭ（Read Only Memory）を含む。ＲＯＭには、フラッシュメモリ、ＥＰＲＯＭ（Erasable Programmable Read-Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）のような書き
換え可能な半導体メモリを含む。
【００４１】
インターフェース３２は、ＵＳＢ等のシリアルインターフェース、あるいは、ＰＣＩ（Peripheral Component Interconnect）、ＩＳＡ（Industry Standard Architecture ）、ＥＩＳＡ（Extended ISA）、ＡＴＡ（AT Attachment）、ＩＤＥ（Integrated Drive Electronics）、ＩＥＥＥ１３９４、ＳＣＳＩ（Small Computer System Interface）等のパラレルインターフェースのいずれでもよい。
ハードディスク駆動装置（記憶部）１４は、メモリ３１にロードされるプログラムを格納する。さらに、ハードディスク駆動装置１４は、属性情報取得部２３と連動し、取得された属性情報を記録する。
【００４２】
操作部１２は、コンピュータの入力装置、例えば、キーボード、ポインティングデバイス等が含まれる。表示部１３は、例えば、液晶表示装置、プラズマディスプレイパネル、ＣＲＴ（Cathode Ray Tube）、エレクトロルミネッセンスパネル等である。
【００４３】
＜処理フロー＞
次に、本実施形態の設計支援システム１の処理フローについて説明する。図９は、設計支援システム１の処理フローを示す。以下で説明する処理は、コンピュータがプログラムを実行することによって実現される。まず、ステップＳ０１では、半導体回路２の初期配置配線設計が行われる。初期配置配線設計は、ＣＰＵ３０が例えば公知の回路設計プログラムを実行することで実現される。半導体回路２の初期配置配線設計が完了すると次のステップへ進む。
【００４４】
ステップＳ０２では、第一タイミング検証（動作確認）が行われる。すなわち、ステップＳ０１において設計された半導体回路２の動作確認が行われる。具体的には、ＣＰＵ３０は、例えば、半導体回路２内のフリップフロップ回路間に所定のデータを流し、セットアップタイム等を取得する。取得されたセットアップタイム等の半導体回路２の属性情報は、例えば記憶部１４へ記録される。記録する際、図４に示すようにデータパス毎にセットアップタイムを関連付けるようにテーブル化して記録することが好ましい。第一タイミング検証が完了すると次のステップへ進む。
【００４５】
ステップＳ０３では、第一タイミング検証の判定が行われる。すなわち、取得したセットアップタイム等に基づいて、半導体回路２が正常動作するか否かが判定される。なお、ステップＳ０２、ステップＳ０３における処理は、例えば、ＣＰＵ３０が公知のタイミング検証プログラムを実行することで実現される。第一タイミング検証においてＮＧとの判定がされた場合（正常動作しないと判定された場合）、再度ステップＳ０１の処理が実行される。一方、第一タイミング検証においてＯＫとの判定がされた場合（正常動作すると判定された場合）、ステップＳ０４へ進む。
【００４６】
ステップＳ０４では、遅延故障発生部分を特定するための条件が設定される。すなわち、セットアップタイム基準値として１．０ｎｓｅｃが設定される。なお、ステップＳ０４における処理は、例えば、ＣＰＵ３０が、操作部１２から入力される値を読み込み、これをコンピュータプログラムに基づいて基準値として設定することで実現することができる。遅延故障発生部分を特定するための条件設定が完了すると次のステップへ進む。
【００４７】
ステップＳ０５では、遅延故障発生部分、換言すると遅延故障対策措置が必要な回路部分が特定される。具体的には、ＣＰＵ３０は、記憶部１４のセットアップテーブル（図４参照）にアクセスし、ステップＳ０４において設定された条件に基づいて遅延故障発生部分を抽出する。すなわち、ＣＰＵ３０は、セットアップタイム基準値として設定された１．０ｎｓｅｃとセットアップタイムテーブルの各データパスのセットアップタイムとを比較し、セットアップタイム基準値を下回るセットアップタイムを有するデータパスを抽出する。これにより、本実施形態では、データパス１が遅延故障発生部分として特定される。遅延故障発生部分の特定が完了すると次のステップへ進む。
【００４８】
ステップＳ０６では、遅延故障対策措置を施す必要があるか否か判定される。具体的には、ＣＰＵ３０は、ステップＳ０５において遅延故障発生部分が特定されたか否かを判定する。本実施形態では、データパス１が遅延故障発生部分として特定されているので、遅延故障対策措置を施す必要があると判定される。遅延故障対策措置を施すが必要がある判定された場合、ステップＳ０７へ進む。一方、遅延故障対策措置を施す必要が無いと判定された場合、処理が終了する。
【００４９】
ステップＳ０７では、遅延故障対策措置が実行される。すなわち、ＣＰＵ３０は、半導体回路２の層間接続部分のビアホール数を増加させる（図６参照）、半導体回路２の層間接続部分に斜め配線を設ける（図７参照）といった措置を施す。どのような措置を施すかについては、例えば、予め設計者等に選択させておき、選択された措置を自動的に実行するようにすればよい。また、遅延故障対策措置を施す際に、設計者等に対して確認を求めるようにしてもよい。遅延故障対策措置の実行が完了すると次のステップへ進む。
【００５０】
ステップＳ０８では、遅延防止措置が施されたか否かの確認が行われる。すなわち、ＣＰＵ３０は、遅延故障発生部分の措置前の状態と措置後の状態とを比較する。本実施形態では、データパス１が遅延故障発生部分として特定されていることから、このデータパスに関連する層間接続部分について、遅延防止措置が確実に施されたか否かの確認が行われる。遅延防止措置が施されていると確認された場合、ステップＳ０９へ進む。一方、遅延防止措置が施されていると確認されなかった場合、再度ステップＳ０７の処理を実行する。
【００５１】
ステップＳ０９では、第二タイミング検証（動作確認）が行われる。すなわち、ステップＳ０４からステップＳ０８の処理が実行されることで遅延防止措置が施された半導体回路２の動作確認が再度行われる。動作確認の方法は、基本的にはステップＳ０２と同様に行うことができる。第二タイミング検証が完了すると次のステップへ進む。
【００５２】
ステップＳ１０では、第二タイミング検証の判定が行われる。すなわち、取得したセットアップタイム等に基づいて、半導体回路２が正常動作するか否かが判定される。なお、ここでのタイミング検証は、換言すると遅延防止措置が施された半導体回路２の最終的な総合判断ということができる。なお、ステップＳ０９、ステップＳ１０における処理は、ステップ０２、０３と同じく、例えば、ＣＰＵ３０が公知のタイミング検証プログラムを実行することで実現される。第二タイミング検証においてＮＧとの判定がされた場合（正常動作しないと判定された場合）、ステップＳ１１へ進む。一方、第二タイミング検証においてＯＫとの判定がされた場合（正常動作すると判定された場合）、処理が終了する。
【００５３】
ステップＳ１１では、半導体回路２の配置配線設計が行われる。この配置配線設計は、ステップＳ１０で行われた第二タイミング検証のＮＧ対策として実行されるものである。なお、配置配線設計は、ＣＰＵ３０が回路設計プログラムを実行することで実現される。なお、この回路設計プログラムは公知のプログラムを用いることができる。ステップＳ１１における配置配線設計が完了すると、再度ステップＳ０５の処理が行われる。
【００５４】
＜変形例１＞
上述した実施形態では、遅延故障発生部分を特定する際の基準としてセットアップタイム基準値を例に説明した。しかし、これに限定されるわけではなく、基準周波数に基づいて遅延故障発生部分を特定してもよい。ここで、図１０、図１１は、基準周波数に基づいて遅延故障発生部分を特定する際に対象とする半導体回路２を示す。図１０は、解析する際のクロック周波数として２０ＭＨｚが設計パラメータとして設定された回路を示す。図１１は、解析する際のクロック周波数として１００ＭＨｚが設計パラメータとして設定された回路を示す。
【００５５】
図１０に示す半導体回路２は、フリップフロップ回路Ａ（ＦＦ−Ａ）とフリップフロップ回路Ｂ（ＦＦ−Ｂ）と、これら両フリップフロップ回路間に設けられたデータパス５１（パス１、パス２、パス３）と、一端がフリップフロップ回路Ａの入力に接続されるパス４と、一端がフリップフロップ回路Ｂの出力に接続されるパス５によって構成されている。また、図１１に示す半導体回路２は、フリップフロップ回路Ａ（ＦＦ−Ａ）とフリップ
フロップ回路Ｂ（ＦＦ−Ｂ）と、これら両フリップフロップ回路間に設けられたデータパス５１（パス６、パス７、パス８）と、一端がフリップフロップ回路Ａの入力に接続されるパス９と、一端がフリップフロップ回路Ｂの出力に接続されるパス１０によって構成されている。
【００５６】
そして、上記の回路についてタイミング検証を実行することで、属性情報取得部２３は、属性情報としてパス毎の動作周波数を取得することができる。取得したパス毎の動作周波数は、属性情報記録部２４により記憶部１４に記録することができる。図１２は、各パス毎の動作周波数が記録された動作周波数テーブルを示す。同図に示すように、動作周波数テーブルには、パス１からパス５について動作周波数が２０ＭＨｚ、パス１からパス５について動作周波数が１００ＭＨｚといったパス毎の動作周波数が記録されている。
【００５７】
そして、変形例１では、この動作周波数テーブルに基づいて遅延故障発生部分を特定することができる。なお、変形例１においても、基本的には、上述した設計支援システム１の処理フローにおける処理を実行すればよい。相違点について説明すると、ステップＳ０４に相当する処理として、遅延故障発生部分を特定するための条件を設定する必要がある。基準動作周波数は、例えば５０ＭＨｚとすることができる。このように設定した場合、上述したステップＳ０５に相当する処理として、ＣＰＵ３０は、動作周波数テーブル（図１２参照）にアクセスし、基準動作周波数（５０ＭＨｚ）を上回るパスを抽出する。なお、動作周波数が高くなると、回路への負担が大きくなり、回路の状態が不安定となり易い。その結果、遅延故障の影響を受け易いと考えられる。そこで、変形例１では、この点に着目して、基準動作周波数を上回る周波数で動作するパスを抽出することとした。なお、本変形例１では、パス６からパス１０が遅延故障発生部分として特定されることになる。従って、これらのパスに関連する層間接続部分に対して、遅延故障対策措置を施せばよい。
【００５８】
＜変形例２＞
上述した実施形態では、遅延故障発生部分を特定する際の基準としてセットアップ基準値又は基準動作周波数を用いたが、遅延故障発生部分の特定は、層間接続部数に基づいて行ってもよい。層間接続部数とは、半導体回路２を構成する複数の回路のうちの一の回路における層間接続部数を意味する。すなわち、半導体回路２は、多層配線構造によって構成されており、半導体回路２を構成する回路は、通常複数層に跨って配線されている。ここで図１３は、多層配線構造の回路の断面を示す。同図に示す回路は、上から順に層７１、層７２、層７３、層７４、層７５の５層により形成されている。そして、例えばパス１は、紙面左側を基端とした場合、層７１から層７２へ、層７２から層７１へ、更に層７１から層７２へ、といったように３度層間を跨っている。すなわち、パス１は、３つの層間接続部を有している。一方、パス２は、同じく紙面左側を基端とした場合、層７５から層７４へ、層７４から層７３へ、層７３から層７２へ、層７２から層７３へ、層７３から層７４へ、といったように５度層間を跨っている。すなわち、パス２は、５つの層間接続部を有している。
【００５９】
なお、遅延故障が層間接続部において発生し易いことを考慮すると、層間接続部数の多い回路ほど、遅延故障の影響を受け易いと考えられる。そこで、変形例２では、基準層間接続部数を上回る層間接続部数を有する回路部分を抽出し、抽出された回路部分に関連する層間接続部分に対して遅延故障の発生を低減させる措置を施すこととした。
【００６０】
ここで、図１４は、層間接続部数テーブルの一例を示す。このような層間部数に関するデータは、例えばＣＡＤデータから取得することができる。なお、変形例２においても、基本的には、上述した設計支援システム１の処理フローにおける処理を実行することで、層間接続部数テーブルに基づく遅延故障発生部分の特定が可能である。すなわち、遅延故
障発生部分を特定するための条件として、例えば基準層間接続部数として６つを設定する。この場合、ＣＰＵ３０は、層間接続部数テーブル（図１４参照）にアクセスし、基準層間接続部数（６つ）を上回るパスを抽出する。その結果、本変形例２では、パス３が遅延故障発生部分として特定されることになる。従って、これらのパスに関連する層間接続部分に対して、遅延故障対策措置を施せばよい。
【００６１】
＜その他の変形例＞
なお、上述した実施形態の設計支援システム１では、制御装置１０の内部構成をＣＰＵ３０で実行されるプログラムで実現する例を示した。しかし、このような構成に代えて、制御装置１０の内部構成のいずれか１以上をＣＰＵ３０とは異なるプロセッサ、ハードウェア回路等によって実現してもよい。すなわち、ＣＰＵ３０の処理能力と、処理量によっては、図１のそれぞれの構成要素を異なるプロセッサ、あるいは、デジタル回路で構成すればよい。ＣＰＵ３０以外のプロセッサあるいはデジタル回路を含む場合であっても、それらの処理手順は、図９に示したもの同様である。すなわち、本実施形態の設計支援システム１は、ＣＰＵ３０のプログラムとして、あるいは、専用プロセッサによって、さらには、専用のデジタル回路によって実現できる。
【００６２】
＜実施形態の効果＞
以上述べたように、本実施形態の設計支援システム１によれば、遅延故障発生部分をコンピュータによって自動的に特定し、特定された回路部分に対して遅延故障の発生を低減させる措置を施すことができる。従って、本実施形態の設計支援システム１によれば、半導体回路２の遅延故障の発生リスクの高い回路部分を特定すると共に、遅延故障の発生を低減させる対策を施すことができるので、半導体回路２における遅延故障の発生を低減させることができる。
【００６３】
＜コンピュータ読み取り可能な記録媒体＞
コンピュータその他の機械、装置（以下、コンピュータ等）に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、又は化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ＤＡＴ、８ｍｍテープ、メモリカード等がある。
また、コンピュータ等に固定された記録媒体としてハードディスクやＲＯＭ（Read Only Memory）等がある。
【００６４】
（付記１）
被検査回路の属性情報を取得する属性情報取得部と、
前記属性情報取得部で取得された属性情報に基づいて、前記被検査回路において遅延故障が発生しやすい遅延故障発生部分を特定する遅延故障特定部と、
前記遅延故障特定部によって特定された遅延故障発生部分に対し、遅延故障の発生を低減させる措置を施す遅延防止部と、
を備える半導体回路の設計支援装置。（１）
（付記２）
前記属性情報には、クロック信号に先立ち所定のデータを確定保持する規定時間に関するセットアップタイム情報が含まれ、
前記遅延故障特定部は、予め規定された基準セットアップタイムを下回るセットアップタイムを有する回路部分を前記被試験回路内から抽出することで、前記遅延故障発生部分
を特定する、
付記１に記載の半導体回路の設計支援装置。（２）
（付記３）
前記属性情報には、前記被検査回路が動作可能な周波数に関する周波数情報が含まれ、
前記遅延故障特定部は、予め規定された基準周波数を上回る周波数で動作する回路部分を前記被試験回路内から抽出することで、前記遅延故障発生部分を特定する、付記１に記載の半導体回路の設計支援装置。（３）
（付記４）
前記属性情報には、前記被検査回路の層間接続部分に関する層間接続情報が含まれ、
前記遅延故障特定部は、予め規定された基準層間接続部数を上回る層間接続部数を有する回路部分を前記被試験回路内から抽出することで、前記遅延故障発生部分を特定する、付記１に記載の半導体回路の設計支援装置。
（付記５）
前記遅延防止部は、前記遅延故障特定部によって特定された遅延故障発生部分に関連する前記被検査回路の層間接続部分に対し、該層間接続部分における上層配線の一部と該上層配線とラップする下層配線の一部を斜め配線として接続することで、遅延故障の発生を低減させる、付記１から付記５のいずれかに記載の半導体回路の設計支援装置。（４）
（付記６）
コンピュータが、
被検査回路の属性情報を取得する属性情報取得ステップと、
前記属性情報取得部で取得された属性情報に基づいて、前記被検査回路において遅延故障が発生しやすい遅延故障発生部分を特定する遅延故障特定ステップと、
前記遅延故障特定部によって特定された遅延故障発生部分に対し、遅延故障の発生を低減させる措置を施す遅延防止ステップと、
を実行する半導体回路の設計支援方法。（５）
（付記７）
前記属性情報には、クロック信号に先立ち所定のデータを確定保持する規定時間に関するセットアップタイム情報が含まれ、
前記遅延故障特定ステップでは、予め規定された基準セットアップタイムを下回るセットアップタイムを有する回路部分を前記被試験回路内から抽出することで、前記遅延故障発生部分を特定する、
付記６に記載の半導体回路の設計支援方法。
（付記８）
前記属性情報には、前記被検査回路が動作可能な周波数に関する周波数情報が含まれ、
前記遅延故障特定ステップでは、予め規定された基準周波数を上回る周波数で動作する回路部分を前記被試験回路内から抽出することで、前記遅延故障発生部分を特定する、付記６に記載の半導体回路の設計支援方法。
（付記９）
前記属性情報には、前記被検査回路の層間接続部分におけるビアホール数に関する層間接続情報が含まれ、
前記遅延故障特定ステップでは、予め規定された基準層間接続部数を上回る層間接続部数を有する回路部分を前記被試験回路内から抽出することで、前記遅延故障発生部分を特定する、付記６に記載の半導体回路の設計支援方法。
（付記１０）
前記遅延防止ステップでは、前記遅延故障特定部によって特定された遅延故障発生部分に関連する前記被検査回路の層間接続部分に対し、該層間接続部分における上層配線の一部と該上層配線とラップする下層配線の一部を斜め配線として接続することで、遅延故障の発生を低減させる、付記６から付記９のいずれかに記載の半導体回路の設計支援方法。（付記１１）
被検査回路の属性情報を取得する属性情報取得ステップと、
前記属性情報取得部で取得された属性情報に基づいて、前記被検査回路において遅延故障が発生しやすい遅延故障発生部分を特定する遅延故障特定ステップと、
前記遅延故障特定部によって特定された遅延故障発生部分に対し、遅延故障の発生を低減させる措置を施す遅延防止ステップと、
をコンピュータに実行させる半導体回路の設計支援プログラム。（６）
（付記１２）
前記属性情報には、クロック信号に先立ち所定のデータを確定保持する規定時間に関するセットアップタイム情報が含まれ、
前記遅延故障特定ステップでは、予め規定された基準セットアップタイムを下回るセットアップタイムを有する回路部分を前記被試験回路内から抽出することで、前記遅延故障発生部分を特定する、
付記１１に記載の半導体回路の設計支援プログラム。
（付記１３）
前記属性情報には、前記被検査回路が動作可能な周波数に関する周波数情報が含まれ、
前記遅延故障特定ステップでは、予め規定された基準周波数を上回る周波数で動作する回路部分を前記被試験回路内から抽出することで、前記遅延故障発生部分を特定する、付記１１に記載の半導体回路の設計支援プログラム。
（付記１４）
前記属性情報には、前記被検査回路の層間接続部分におけるビアホール数に関する層間接続情報が含まれ、
前記遅延故障特定ステップでは、予め規定された基準層間接続部数を上回る層間接続部数を有する回路部分を前記被試験回路内から抽出することで、前記遅延故障発生部分を特定する、付記１１に記載の半導体回路の設計支援プログラム。
（付記１５）
前記遅延防止ステップでは、前記遅延故障特定部によって特定された遅延故障発生部分に関連する前記被検査回路の層間接続部分に対し、該層間接続部分における上層配線の一部と該上層配線とラップする下層配線の一部を斜め配線として接続することで、遅延故障の発生を低減させる、付記１１から付記１４のいずれかに記載の半導体回路の設計支援プログラム。
【図面の簡単な説明】
【００６５】
【図１】設計支援システムの機能ブロック図を示す。
【図２】半導体回路の回路構成の一部を示す。
【図３】図２に示す回路のタイミングチャートを示す。
【図４】セットアップタイムテーブルの一例を示す。
【図５】ビアホールが一つの場合の層間接続部分を示す。
【図６】ビアホールが三つの場合の層間説部分を示す。
【図７】斜め配線を用いる場合の層間接続部分を示す。
【図８】設計支援システムの構成例を示す。
【図９】設計支援システムの処理フローを示す。
【図１０】解析する際のクロック周波数として２０ＭＨｚが設計パラメータとして設定された回路を示す。
【図１１】解析する際のクロック周波数として１００ＭＨｚが設計パラメータとして設定された回路を示す。
【図１２】各パス毎の動作周波数が記録された動作周波数テーブルを示す。
【図１３】多層配線構造の回路の断面を示す。
【図１４】層間接続部数テーブルの一例を示す。
【符号の説明】
【００６６】
１・・・設計支援システム
２・・・半導体回路
１０・・・制御装置
１１・・・設計支援装置
１２・・・操作部
１３・・・表示部
１４・・・記憶部
２１・・・回路設計部
２２・・・動作確認部
２３・・・属性情報取得部
２４・・・属性情報記録部
２５・・・条件設定部
２６・・・遅延故障特定部
２７・・・遅延防止部
２８・・・措置実行有無判断部
２９・・・措置確認部
６１・・・ビアホール
６２・・・上層配線
６３・・・下層配線
【図１】
2008287342.tif 000003
【図２】
2008287342.tif 000004
【図３】
2008287342.tif 000005
【図４】
2008287342.tif 000006
【図５】
2008287342.tif 000007
【図６】
2008287342.tif 000008
【図７】
2008287342.tif 000009
【図８】
2008287342.tif 000010
【図９】
2008287342.tif 000011
【図１０】
2008287342.tif 000012
【図１１】
2008287342.tif 000013
【図１２】
2008287342.tif 000014
【図１３】
2008287342.tif 000015
【図１４】
2008287342.tif 000016