(57)【特許請求の範囲】
【請求項１】
第１の記憶装置に記憶されている半導体集積回路における回路素子情報および配線情報を取得する回路情報取得手段と、前記回路素子の配置および配線を行う配置配線手段と、を備えた自動配置配線装置において、
第２の記憶装置に記憶されている、前記回路素子のうち故障検出できない回路素子の情報である未検出故障素子情報を取得する未検出故障素子情報取得手段を備え、
前記配置配線手段が、回路情報取得手段が取得した前記回路素子情報および配線情報と、前記未検出故障素子情報と、に基づいて、同一の配線で接続された複数の前記故障検出できない回路素子間の配線を予め定められている設計制約であるデザインルールを満たす配線長となるように近づけて配置をする
ことを特徴とする自動配置配線装置。
【請求項２】
前記配置配線手段が前記故障検出できない回路素子を前記デザインルールを満たす配線長となるように近づけるように配置できない場合は、当該故障検出できない回路素子を含む回路の変更を行って前記回路素子情報および配線情報を変更する回路変更手段を備えたことを特徴とする請求項１に記載の自動配置配線装置。
【請求項３】
前記回路変更手段が変更した前記回路素子情報および配線情報に基づいて再度前記故障検出できない回路素子を検出する未検出故障素子検出手段と、
前記未検出故障素子検出手段が検出した故障検出できない回路素子に基づいて、前記未検出故障素子情報を更新する未検出故障素子情報更新手段と、
を備えていることを特徴とする請求項２に記載の自動配置配線装置。
【請求項４】
自動配置配線装置によって半導体集積回路における回路素子の配置および配線を行う自動配置配線方法において、
第１の記憶装置に記憶されている前記回路素子情報および配線情報を取得する回路情報取得ステップと、
第２の記憶装置に記憶されている、前記回路素子のうち故障検出できない回路素子の情報である未検出故障素子情報を取得する未検出故障素子情報取得ステップと、
回路情報取得ステップで取得した前記回路素子情報および配線情報と、前記未検出故障素子情報取得ステップで取得した前記未検出故障素子情報と、に基づいて、複数の前記故障検出できない回路素子間の配線を予め定められている設計制約であるデザインルールを満たす配線長となるように近づけて配置をする配置配線ステップと、
を前記自動配置配線装置が順次実行することを特徴とする自動配置配線方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路における回路素子の配置および配線を行う自動配置配線装置および自動配置配線方法に関する。
【背景技術】
【０００２】
近年、半導体集積回路では大規模化が進むとともに高故障検出率の確保が求められている。そこで半導体集積回路設計では広くテスト容易化設計を行い、故障検出率を高めるようにしている。
【０００３】
テスト容易化設計としては、故障検出回路を挿入することで故障検出率を向上させる方法がある。例えば、特許文献１には、故障検出回路としてＢＩＳＴ（Built-In Self Test）を用いた例が記載されている。また、特許文献２には、故障検出回路としてスキャン回路（スキャンパス）を用いた例が記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、テスト容易化設計で故障検出回路を挿入しても制御や観測できない部分が発生してしまい、故障検出できない回路素子(以下、未検出故障素子という)が発生してしまうことがある。
【０００５】
従来の自動配置配線装置では、タイミングや配線の接続性などは考慮されるが未検出故障素子は考慮されない。そのため、同一配線上の未検出故障素子が遠くに配置配線されることがある。その際、要求タイミングや各製造テクノロジで決められているデザインルールなどの設計上の制約を満足できずに、自動配置配線装置が未検出故障部分に回路素子を挿入し要求を満足させることがある。その場合、挿入された回路素子も未検出故障素子となってしまい、未検出故障素子が増加してしまうため半導体集積回路の故障検出率が低下するという問題があった。
【０００６】
本発明はかかる問題を解決することを目的としている。
【０００７】
すなわち、本発明は、当該未検出故障素子を考慮して故障検出率を低下させないようにする自動配置配線装置および自動配置配線方法を提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記に記載された課題を解決するために請求項１に記載された発明は、第１の記憶装置に記憶されている半導体集積回路における回路素子情報および配線情報を取得する回路情報取得手段と、前記回路素子の配置および配線を行う配置配線手段と、を備えた自動配置配線装置において、第２の記憶装置に記憶されている、前記回路素子のうち故障検出できない回路素子の情報である未検出故障素子情報を取得する未検出故障素子情報取得手段を備え、前記配置配線手段が、回路情報取得手段が取得した前記回路素子情報および配線情報と、前記未検出故障素子情報と、に基づいて、同一の配線で接続された複数の前記故障検出できない回路素子間の配線を予め定められている設計制約であるデザインルールを満たす配線長となるように近づけて配置をすることを特徴とする自動配置配線装置である。
【発明の効果】
【０００９】
請求項１に記載の発明によれば、配置配線手段が、回路情報取得手段が取得した回路素子情報および配線情報と、未検出故障素子情報取得手段が取得した未検出故障素子情報と、に基づいて、同一の配線で接続された複数の故障検出できない回路素子をデザインルールを満たす配線長となるように近づけて配置しているので、未検出故障素子間の配線を短くするように配置でき、当該箇所に回路素子の挿入が起こりにくくなり、未検出故障素子の増加を防止して、故障検出率を低下させないようにすることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態にかかる自動配置配線装置の構成図である。
【図２】図１に示された自動配置配線装置の機能的な構成を示した構成図である。
【図３】未検出故障素子を含む論理回路の例を示した回路図である。
【図４】図３に示された論理回路図の配置配線パターンの例を示した説明図である。
【図５】図３に示された論理回路にデザインルールを満たすために回路素子が挿入された例を示した回路図である。
【図６】図５に示された論理回路図の配置配線パターンの例を示した説明図である。
【図７】図３に示された論理回路において、各回路素子を近づけて配置した配置配線パターンの例を示した説明図である。
【図８】本発明の他の実施形態にかかる自動配置配線装置の機能的な構成を示した構成図である。
【発明を実施するための形態】
【００１１】
以下、本発明の一実施形態を、図１乃至図７を参照して説明する。図１は、本発明の一実施形態にかかる自動配置配線装置の構成図である。図２は、図１に示された自動配置配線装置の機能的な構成を示した構成図である。図３は、未検出故障素子を含む論理回路の例を示した回路図である。図４は、図３に示された論理回路図の配置配線パターンの例を示した説明図である。図５は、図３に示された論理回路に設計制約を満たすために回路素子が挿入された例を示した回路図である。図６は、図５に示された論理回路図の配置配線パターンの例を示した説明図である。図７は、図３に示された論理回路において、各回路素子を近づけて配置した配置配線パターンの例を示した説明図である。
【００１２】
図１に示した自動配置配線装置１０は、半導体集積回路に含まれる回路素子の配置配線を行う処理装置１と、処理装置１に対して種々の情報や種々の命令を入力するキーボード２及びマウス３等の入力手段と、データやプログラムを記憶する記憶装置４と、及び、入力画面（例えばＧＵＩ：グラフィカルユーザインタフェース）の表示や処理結果の表示等を行う表示装置５と、を備える。図１から明らかなように、自動配置配線装置１０は、通常のコンピュータ及びその周辺装置で構成される。なお、マウス３の代りに、タブレットやトラックボール等のポインティングデバイスが用いられてもよい。また、記憶装置４には、半導体メモリや、ハードディスク等が任意に用いられ、表示装置５には、例えばＣＲＴや液晶ディスプレイ等が任意に用いられる。
【００１３】
図２に自動配置配線装置１０の機能的な構成を示す。自動配置配線装置１０は、配置部２０と、配置後の最適化部２１と、クロックツリー合成部２２と、クロックツリー後の最適化部２３と、配線部２４と、配線後の最適化部２５と、を備えている。これら配置部２０、配置後の最適化部２１、クロックツリー合成部２２、クロックツリー後の最適化部２３、配線部２４、配線後の最適化部２５は、図１の処理装置１が機能する。
【００１４】
配置部２０は、セルライブラリ、ネットリスト、デザインルール、タイミング制約等の配置配線に必要な情報３０、即ち回路素子情報および配線情報と、故障検出できない回路素子の情報である未検出故障情報３１と、を読み込み、フロアプランを実施し、チップサイズ、Ｉ／Ｏ配置位置、ハードマクロの配置位置などを決定し、セルの配置を行う。なお、配置配線に必要な情報３０と、未検出故障情報３１は、例えば記憶装置４に予め格納されている。即ち、記憶装置４が第１の記憶装置、第２の記憶装置として機能し、配置部２０が、回路情報取得手段、未検出故障素子情報取得手段、配置配線手段として機能している。なお、配置配線に必要な情報３０と、未検出故障情報３１は、それぞれ別の記憶装置に記憶させてもよい。
【００１５】
デザインルールとは、素子の最小寸法や素子間の距離、配線幅や配線間の距離、など回路素子を配置配線設計する上での制約事項であり、タイミング制約とは、当該回路のフリップフロップ間のデータ転送の遅延時間（動作周波数）など許容される遅延時間の制約事項である。また、デザインルール、タイミング制約は特許請求の範囲における設計制約に相当する。
【００１６】
未検出故障情報３１は、未検出故障素子となっている回路素子の種類やユニーク名および結線情報等（未検出故障素子情報）が含まれており、この情報は、例えば図示しない他の装置で故障シミュレーションを行った結果等を用いればよい。勿論本自動配置配線装置１０に故障シミュレーション機能を持たせてネットリスト等を読み込ませて故障シミュレーションを行いその結果から未検出故障情報３１を生成するようにしてもよい。
【００１７】
配置後の最適化部２１は、配置部２０で行われたセルの配置の最適化を行う。
【００１８】
クロックツリー合成部２２は、クロック信号と、ネットリスト内のフリップフロップを認識し、クロック信号と各フリップフロップとを接続するためのクロックツリーを合成する。
【００１９】
クロックツリー後の最適化部２３は、クロックツリー合成部２２で合成されたクロックツリーに基づいて、クロックドライバなどの配置の最適化を行う。
【００２０】
配線部２４は、配置後の最適化部２１やクロックツリー後の最適化部２３で最適化された各回路素子を配線で接続する。即ち、配線部２４が、配置配線手段として機能している。
【００２１】
配線後の最適化部は、配線部２４で行われた配線について、デザインルールやタイミング制約の設計制約に基づいて、それらを満たすように最適化する。
【００２２】
つまり、配置部２０から配線後の最適化部２５まで順次処理を行っていくことで、最終的にレイアウトデータ３２が出力される。レイアウトデータ３２は、例えば記憶装置４に出力される。したがって、図２は機能的な構成を示すと同時に処理の流れ（フロー）も示している。
【００２３】
次に、上述した構成の自動配置配線装置１０における未検出故障素子の配置配線について、図３乃至図７を参照して説明する。
【００２４】
図３は、未検出故障素子となる論理回路の例を示した回路図である。図３の回路図は、２入力ＡＮＤ素子ｃ１１の一方の入力Ｉ１には他の回路素子の出力が接続されているものとする。２入力ＡＮＤ素子ｃ１１の他方の入力Ｉ２はＬｏｗレベル（２進数で“０”）ｎ１２に接続されている。
【００２５】
２入力ＡＮＤ素子ｃ１１の出力Ｏは、ドライバ素子ｃ１２、ｃ１３の入力Ｉに接続されている。ドライバ素子ｃ１２、ｃ１３の出力Ｏは、それぞれ異なる回路素子に接続されているものとする。
【００２６】
図３の論理回路において、２入力ＡＮＤ素子ｃ１１の他方の入力Ｉ２にはＬｏｗレベルｎ１２が接続されているため、２入力ＡＮＤ素子ｃ１１の出力Ｏが接続されている配線ｎ１１は常にＬｏｗレベルになる。そのため、配線ｎ１１に接続されているドライバ素子ｃ１２、ｃ１３はＨｉレベルへの遷移がないため、Ｈｉレベルへ遷移できるか否かの故障検出ができずこれら３つの回路素子は未検出故障素子となる。
【００２７】
図３の論理回路を配置配線した例を図４に示す。配線ｎ１１は、各素子が離れて配置されて設計制約を満足できない長さに配線されてしまう場合がある。
【００２８】
そこで、設計制約を満たすために回路素子が挿入される場合がある。回路素子が挿入された論理回路図を図５に、配置配線図を図６にそれぞれ示す。図５、図６のドライバ素子ｃ２２、ｃ２３が挿入された回路素子である。ドライバ素子ｃ２２は、入力Ｉが配線ｎ１１に接続され出力Ｏが配線ｎ２２に接続される。そして、ドライバｃ１２の入力Ｉが配線ｎ２２に接続される。つまり、ドライバ素子ｃ２２は、２入力ＡＮＤ素子ｃ１１とドライバ素子ｃ１２の間に挿入される。
【００２９】
ドライバ素子ｃ２３は、入力Ｉが配線ｎ１１に接続され出力Ｏが配線ｎ２３に接続される。そして、ドライバ素子ｃ１２の入力Ｉが配線ｎ２３に接続される。つまり、ドライバ素子ｃ２３は、２入力ＡＮＤ素子ｃ１１とドライバ素子ｃ１３の間に挿入される。
【００３０】
図５および図６に示したドライバ素子ｃ２２、ｃ２３の入出力は、未検出故障部分に挿入、接続されるため故障検出できず未検出故障素子となってしまう。結果、未検出故障素子数が増加し故障検出率が悪化してしまう。
【００３１】
そこで、本実施形態では、未検出故障素子を近づけて配置配線する。具体的には、配置部２０などにおいて、未検出故障情報３１に基づいて、未検出故障素子や未検出故障素子が接続されている配線を認識して、当該配線が設計制約を満たす配線長となるように、関連性のある未検出故障素子同士を近づけて配置、配線を行う。図７に図４の配置配線例に対して、関連性のある未検出故障素子同士を近づけて配置、配線した例を示す。即ち、回路素子情報および配線情報と、未検出故障素子情報取得手段が取得した未検出故障素子情報と、に基づいて、同一の配線で接続された複数の故障検出できない回路素子を設計制約を満たす配線長となるように近づけるように配置をしている。
【００３２】
本実施形態によれば、配置部２０が、取得した配置配線に必要な情報３０と、未検出故障情報３１と、に基づいて、複数の故障検出できない回路素子間の配線が設計制約を満たす配線長となるように近づけて配置しているので、未検出故障素子間の配線を短くするように配置でき、当該箇所に回路素子の挿入が起こりにくくなり、未検出故障素子の増加を防止して、故障検出率を低下させないようにすることができる。
【００３３】
つまり、設計制約などの従来から配置配線時に考慮していた情報に加えて未検出故障情報も考慮することで、配置配線時に故障検出率を考慮した処理を行うことができる。
【００３４】
なお、例えば、他の回路素子の配置の都合上、上述したように未検出故障素子を近づけて配置することができない場合がある。この場合は、図５や図６に示したように未検出故障素子の挿入が起こり故障検出率が低下してしまう可能性がある。その場合、未検出故障素子を故障検出できるよう適切な素子の追加や変更（回路の変更）を行い配置配線を実施してもよい。即ち、自動配置配線装置１０が回路変更手段を備えている。この回路変更手段は、単独の機能ブロックとして設けてもよいし、配置部２０などが兼ねてもよい。回路変更した場合は、変更後のネットリストが生成される。
【００３５】
上述した回路変更の例としては、図３では、例えば２入力ＡＮＤ素子ｃ１１の入力Ｉ２を外部端子から直接値（Ｌｏｗレベル）を設定できるようにする。このようにすると、外部端子から値が直接入力できるので、テスト時にのみＨｉレベルを入力Ｉ２に与えることが可能となり故障検出が可能となる。また、２入力ＡＮＤ素子ｃ１１を削除してドライバ素子ｃ１２、ｃ１３に直接Ｌｏｗレベルが入力されるようにしてもよい。この場合、ドライバ素子ｃ１２、ｃ１３は未検出故障素子のままであるが、２入力ＡＮＤ回路ｃ１１が削除されるので、回路素子の挿入が発生しなくなり、故障検出率が低下しない。
【００３６】
また、自動配置配線を行う際は、図２に示した配置部２０から配線後の最適化部２５までの処理を繰り返し行うことが多い。その際に、設計制約を考慮して自動配置配線すると配置配線の要求を満足できるよう論理素子の挿入が起こることがある。この素子の挿入により未検出故障情報３１が当初取得したものと異なってくることがある。そこで、例えば、図８に示すように、配線後の最適化部２５の後に、未検出故障素子再検出部２６で未検出故障素子の再検出を行い、更新が必要な場合は未検出故障素子情報更新部２７で未検出故障情報３１の更新を行ってもよい。
【００３７】
また、図８の例に限らず、例えば配置部２１で発生した情報を未検出故障素子再検出部２６に出力し、更新が必要な場合は未検出故障素子情報更新部２７で未検出故障素子に関する情報の更新を行って配置後の最適化部２１に出力するようにしてもよい。つまり、配置部２１〜配線後の最適化部２５での処理結果をそれぞれ未検出故障素子再検出部２６に出力し、更新が必要な場合は未検出故障素子情報更新部２７で未検出故障素子に関する情報の更新を行って次の処理部（工程）に出力するようにしてもよい。
【００３８】
このようにすることにより、未検出故障素子情報を考慮して配置配線中の回路変更等に対応した処理を行うことができる。即ち、未検出故障素子再検出部２６が未検出故障素子検出手段、未検出故障素子情報更新部２７が未検出故障素子情報更新手段として機能する。
【００３９】
また、自動配置配線装置１０をコンピュータで読み込み動作可能なプログラムとして構成してもよい。この場合図２に示した、配置部２０、配置後の最適化部２１、クロックツリー合成部２２、クロックツリー後の最適化部２３、配線部２４、配線後の最適化部２５といった処理装置１が機能する部分がプログラムとして構成される。即ち、配置部２０が、回路情報取得ステップ、未検出故障素子情報取得ステップ、配置配線ステップとして機能し、配線部２４が、配置配線ステップとして機能する。
【００４０】
なお、本発明は上記実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。
【符号の説明】
【００４１】
１          処理装置
４          記憶装置（第１の記憶装置、第２の記憶装置）
１０        自動配置配線装置
２０        配置部（回路情報取得手段、配置配線手段、未検出故障素子情報取得手段、回路変更手段）
２１        配置後の最適化部
２４        配線部（配置配線手段）
２５        配線後の最適化部（未検出故障素子検出手段）
２７        未検出故障素子情報更新部（未検出故障素子情報更新手段）
３０        配置配線に必要な情報（回路素子情報および配線情報）
３１        未検出故障情報（故障検出できない回路素子の情報）
３２        レイアウトデータ
【先行技術文献】
【特許文献】
【００４２】
【特許文献１】特開２００７−３２８８５２号公報
【特許文献２】特開２００１−８３２１３号公報
【図１】
0006051548.tif 000002
【図２】
0006051548.tif 000003
【図３】
0006051548.tif 000004
【図４】
0006051548.tif 000005
【図５】
0006051548.tif 000006
【図６】
0006051548.tif 000007
【図７】
0006051548.tif 000008
【図８】
0006051548.tif 000009