(57)【要約】【課題】配線混雑を招いたり、他のセルの配置の障害となることなく、且つタイミングエラーを起こさずに複数のタイミング調整用バッファを駆動させることが可能な半導体集積回路の設計装置及び設計方法を提供することを目的とする。【解決手段】上記課題は、バウンダリスキャン機能を有する半導体集積回路の設計装置であって、複数のタイミング調整用バッファ間の距離を算出する距離算出手段と、前記距離算出手段により算出された距離に基づき、所定期間内にコントロール信号により前記複数のタイミング調整用バッファが駆動するように、複数のバウンダリスキャンレジスタを前記コントロール信号の供給元の後段に挿入する挿入手段と、を有する半導体集積回路の設計装置により達成される。【選択図】図６
2010102636.tif 000002
【特許請求の範囲】
【請求項１】
バウンダリスキャン機能を有する半導体集積回路の設計装置であって、
複数のＩ／Ｏバッファ間の距離を算出する距離算出手段と、
前記距離算出手段により算出された距離に基づき、コントロール信号により前記複数のＩ／Ｏバッファを所定期間内に駆動させるように、複数のバウンダリスキャンレジスタを前記コントロール信号の供給元の後段に挿入する挿入手段と、を有する半導体集積回路の設計装置。
【請求項２】
同一のコントロール信号により制御されるＩ／Ｏバッファを１つのグループにグルーピングするグルーピング手段を有し、
前記挿入手段は、
前記グルーピング手段によりグルーピングされた１つのグループ内に存在するＩ／Ｏバッファを所定期間内に駆動させるようにバウンダリスキャンレジスタを挿入する請求項１記載の半導体集積回路の設計装置。
【請求項３】
挿入候補のバウンダリスキャンレジスタを記述したセル情報が記憶された記憶手段と、
前記挿入候補のバウンダリスキャンレジスタが前記コントロール信号により前記複数のＩ／Ｏバッファを所定期間内に駆動させることが可能か否かを判定する駆動判定手段と、を有し、
前記挿入手段は、前記駆動判定手段により前記複数のＩ／Ｏバッファを所定期間内に駆動させることが可能と判定されたとき、前記挿入候補のバウンダリスキャンレジスタを前記コントロール信号の供給元の後段に挿入する請求項１又は２記載の半導体集積回路の設計装置。
【請求項４】
前記駆動判定手段は、
前記距離算出手段により算出された距離と、前記挿入候補のバウンダリスキャンレジスタの駆動能力及びテスト動作スピードとに基づき判定を行う請求項３記載の半導体集積回路の設計装置。
【請求項５】
バウンダリスキャン機能を有する半導体集積回路の設計方法であって、
複数のＩ／Ｏバッファ間の距離を算出する算出手順と、
前記算出手順により算出された距離に基づき、コントロール信号により前記複数のＩ／Ｏバッファを所定期間内に駆動させるように、複数のバウンダリスキャンレジスタを前記コントロール信号の供給元の後段に挿入する挿入手順と、を有する半導体集積回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バウンダリスキャン機能を有する半導体集積回路の設計装置及び設計方法に関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integration）チップのレイアウト設計におけるＤＦＴ（Design For Testability）技術では、入出力信号をテストするバウンダリスキャンという手法がある。バウンダリスキャンにおいて用いられるバウンダリスキャンレジスタ（Boundary Scan Register，以下ＢＳＲ）には、Ｉ／Ｏ（Input/Output）バッファに送られるデータを保持するデータ用ＢＳＲと、Ｉ／Ｏバッファを駆動させるためのコントロール信号を保持するコントロール用ＢＳＲとがある。
【０００３】
データ用ＢＳＲは、Ｉ／Ｏバッファと１対１となるように挿入される。コントロール用ＢＳＲは、Ｉ／Ｏバッファに送られるコントロール信号の供給元に対して１つ挿入される。したがって１のコントロール信号が複数のＩ／Ｏバッファに供給されている場合には、１のコントロール用ＢＳＲから複数のＩ／Ｏバッファにコントロール信号が送られる。
【０００４】
この場合コントロール用ＢＳＲは、配線混雑を起こしたり、他のセルの配置の障害になったりすることなく、複数のＩ／Ｏバッファをタイミングエラーなく駆動させるように、適切な位置に配置される必要がある。
【特許文献１】特開２００２−２６１２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の技術では、複数のＩ／Ｏバッファに対して１つのコントロール用ＢＳＲを挿入するようにしている。このため、例えば離れた位置に配置されたＩ／Ｏバッファ全てをタイミングエラーなく駆動させるようとした場合、コントロール用ＢＳＲをチップの中心に配置する必要がある。チップの中心に配置されるコントロール用ＢＳＲが多くなると、配線混雑を招いたり他のセルの配置の障害となる可能性がある。
【０００６】
またコントロール用ＢＳＲが配置された後にはコントロール用ＢＳＲをチップ辺に近いＩ／Ｏバッファに近づける引き付け処理が行われる。コントロール用ＢＳＲがチップの中心に配置された場合、引き付け処理によりコントロール用ＢＳＲに引き付けられたＩ／Ｏバッファ以外のＩ／Ｏバッファとの距離が長くなり、タイミングエラーが発生する可能性がある。
【０００７】
よって本発明の目的は、配線混雑を招いたり、他のセルの配置の障害となることなく、且つタイミングエラーを起こさずに複数のＩ／Ｏバッファを駆動させることが可能な半導体集積回路の設計装置及び設計方法を提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、バウンダリスキャン機能を有する半導体集積回路の設計装置であって、複数のＩ／Ｏバッファ間の距離を算出する距離算出手段と、前記距離算出手段により算出された距離に基づき、コントロール信号により前記複数のＩ／Ｏバッファを所定期間内に駆動させるように、複数のバウンダリスキャンレジスタを前記コントロール信号の供給元の後段に挿入する挿入手段と、を有する。
【０００９】
上記手段を機能としてコンピュータに実行させるためのプログラム、そのプログラムを記憶したコンピュータ読み取り可能な記憶媒体とすることもできる。
【発明の効果】
【００１０】
配線混雑を招いたり、他のセルの配置の障害となることなく、且つタイミングエラーを起こさずに複数のＩ／Ｏバッファを駆動させることができる。
【発明を実施するための最良の形態】
【００１１】
本実施形態の半導体集積回路の設計装置は、複数のＩ／Ｏバッファ間の距離に基づき、複数のコントロール用ＢＳＲを挿入する。
【００１２】
以下に図１を参照して本発明における着目点について説明する。図１は、本発明の着目点を説明する図である。
【００１３】
図１に示すチップ１０は、Ｉ／Ｏバッファ２１、２２、２３、Ｉ／Ｏバッファ２１、２２、２３にコントロール信号を送るバッファ２４を有する。またチップ１０は、Ｉ／Ｏバッファ２１、２２、２３へ入力されるデータを保持するデータ用ＢＳＲ３１、３２、３３、バッファ２４からＩ／Ｏバッファ２１、２２、２３に送られるコントロール信号を保持するコントロール用ＢＳＲ３５を有する。
【００１４】
データ用ＢＳＲ３１、３２、３３はＩ／Ｏバッファ２１、２２、２３と１対１となるように挿入されている。コントロール用ＢＳＲ３５はＩ／Ｏバッファ２１、２２、２３に送られるコントロール信号の供給元に対して１つ挿入される。
【００１５】
図１の例では、コントロール信号の供給元はバッファ２４であるから、バッファ２４に対して１つのコントロール用ＢＳＲ３５が挿入されている。また図１の例では、バッファ２１とＩ／Ｏバッファ２２との距離は短いが、Ｉ／Ｏバッファ２１及びＩ／Ｏバッファ２２とＩ／Ｏバッファ２３との距離は長い。そのため図１の例では、コントロール用ＢＳＲ３５をＩ／Ｏバッファ２１、２２を駆動させるタイミングに合わせて配置すると、Ｉ／Ｏバッファ２３を駆動させる際にタイミングエラーが発生する虞がある。
【００１６】
以下に説明する本実施形態の設計装置では、図１の例のように、コントロール用ＢＳＲを１つとした場合にはＩ／Ｏバッファ間の距離が長い場合にタイミングエラーが発生する虞があるという問題に対し、タイミングエラーを起こさずに複数のＩ／Ｏバッファを駆動させるために複数のコントロール用ＢＳＲの挿入を行うものである。
【００１７】
以下、本発明の一実施形態を図面に基づいて説明する。図２は、本実施形態に係る設計装置の機能構成例を示す図である。
【００１８】
図２において、設計装置１００は、回路情報取得部１１０と、座標情報取得部１２０と、グルーピング部１３０と、距離算出部１４０と、駆動判定部１５０と、ＢＳＲ選択部１６０と、ＢＳＲ挿入部１７０と、回路情報出力部１８０と、データ記憶領域２００とを有する。
【００１９】
データ記憶領域２００には、ネットリスト２１０、レイアウトデータ２２０、製造情報２３０が記憶されている。ネットリスト２１０は、設計装置１００により設計される半導体集積回路の接続を示す接続情報が含まれる。レイアウトデータ２２０は、配置されている全てのセル名と、セルの配置を示す位置データとを含む。セルとは、単純なＡＮＤ回路といったものから、複雑なマイクロプロセッサユニットなどのコアセルまでを含む。製造情報２３０には、半導体集積回路のサイズ、端子が設けられるパッドの位置を示す情報等が含まれる。半導体集積回路のサイズとはチップのサイズを意味している。例えばチップが四角形であった場合には、四角形の各辺の長さ（距離）等を示す。
【００２０】
またデータ記憶領域２００には、回路情報出力部１８０により出力された挿入後回路情報２６０が記憶される。
【００２１】
回路情報取得部１１０は、ネットリスト２１０に含まれるＢＳＲ挿入前の回路情報（以下、挿入前回路情報）を取得する。座標情報取得部１２０は、レイアウトデータ２２０から、挿入前回路情報に含まれるＩ／Ｏバッファの座標情報を取得する。グルーピング部１３０は、同一のコントロール信号により制御されるＩ／Ｏバッファを１グループとするグルーピングを行う。
【００２２】
距離算出部１４０は、グルーピングされた１グループ内に存在するＩ／Ｏバッファ同士の距離を算出する。駆動判定部１５０は、距離算出部１４０により算出された距離とコントロール用ＢＳＲの駆動能力等に基づき、１つのコントロール用ＢＳＲで１グループ内のＩ／Ｏバッファ全てをタイミングエラーなく駆動させることが可能か否かを判定する。
【００２３】
ＢＳＲ選択部１６０は、駆動判定部１５０による判定結果に基づき挿入されるコントロール用ＢＳＲを選択する。ＢＳＲ挿入部１７０は、ＢＳＲ選択部１６０により選択されたコントロール用ＢＳＲを挿入前回路情報に挿入する。回路情報出力部１８０は、コントロール用ＢＳＲが挿入された後の回路情報（以下、挿入後回路情報）を出力し、データ記憶領域２００に挿入後回路情報２６０として記憶させる。
【００２４】
図３は、本実施形態の設計装置のハードウェア構成の一例を示す図である。
【００２５】
図３において、設計装置１００は、それぞれバスＢで相互に接続されている入力装置１１、出力装置１２、ドライブ装置１３、補助記憶装置１４、メモリ装置１５、演算処理装置１６およびインターフェース装置１７で構成される。
【００２６】
入力装置１１はキーボードやマウスなどで構成され、各種信号を入力するために用いられる。出力装置１２はディスプレイ装置などで構成され、各種ウインドウやデータ等を表示するために用いられる。インターフェース装置１７は、モデム、ＬＡＮカードなどで構成されており、ネットワークに接続する為に用いられる。
【００２７】
本発明の設計プログラムは、設計装置１００を制御する各種プログラムの少なくとも一部である。設計プログラムは例えば記録媒体１８の配布やネットワークからのダウンロードなどによって提供される。設計プログラムを記録した記録媒体１８は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００２８】
また、設計プログラムを記録した記録媒体１８がドライブ装置１３にセットされると、設計プログラムは記録媒体１８からドライブ装置１３を介して補助記憶装置１４にインストールされる。ネットワークからダウンロードされた設計プログラムは、インターフェース装置１７を介して補助記憶装置１４にインストールされる。
【００２９】
補助記憶装置１４は、インストールされた設計プログラムを格納すると共に、必要なファイル、データ等を格納する。また本実施形態の設計装置１００では、補助記憶装置１４内に後述する記憶領域が設けられており、この記憶領域の中に図２で説明したデータ記憶領域２００が設けられていても良い。メモリ装置１５は、コンピュータの起動時に補助記憶装置１４から設計プログラムを読み出して格納する。そして、演算処理装置１６はメモリ装置１５に格納された設計プログラムに従って、後述するような各部の処理を実現している。
【００３０】
図４は、本実施形態の設計装置の有する補助記憶装置内に設けられた記憶領域を説明するための図である。
【００３１】
本実施形態では、補助記憶装置１４内に記憶領域３００が設けられている。記憶領域３００には、各種データが記憶されるデータ記憶領域２００と、各種プログラムが記憶されるプログラム記憶領域４００とが設けられている。
【００３２】
データ記憶領域２００には、ネットリスト２１０、レイアウトデータ２２０、製造情報２３０、ＢＳＲセル情報２４０が記憶されている。
【００３３】
ネットリスト２１０には、ＢＳＲが挿入される前の挿入前回路情報２１１が含まれる。レイアウトデータ２２０には、Ｉ／Ｏバッファの座標を示す座標情報２２１が含まれる。製造情報２３０は、半導体集積回路がチップとされた際のパッドの位置等を示すパット情報２３１が含まれる。
【００３４】
ＢＳＲセル情報２４０には、挿入前回路情報２１１に挿入されるコントロール用ＢＳＲの候補となるコントロール用ＢＳＲセル情報が含まれる。図４の例では、ＢＳＲセル情報２４０にはコントロール用ＢＳＲセル情報２４１、コントロール用ＢＳＲセル情報２４３が含まれる。コントロール用ＢＳＲセル情報２４１には、コントロール用ＢＳＲセル情報２４１により記述されるコントロール用ＢＳＲセル２４１Ａの駆動能力を示す駆動能力情報２４１ａ、テスト動作スピードを示すテスト動作スピード情報２４３ｂが含まれる。
【００３５】
コントロール用ＢＳＲセル情報２４３も同様に、コントロール用ＢＳＲ２４３Ａの駆動能力情報２４３ａ、コントロール用ＢＳＲ２４３Ａのテスト動作スピード情報２４３ｂが含まれる。
【００３６】
尚本実施形態のＢＳＲセル情報２４０には、標準的な駆動能力とテスト動作スピードを有するコントロール用ＢＳＲのセル情報と、標準よりも駆動能力が大きくテスト動作スピードが速いコントロール用ＢＳＲのセル情報とが含まれることが好ましい。例えば本実施形態では、コントロール用ＢＳＲセル情報２４１が標準的なコントロール用ＢＳＲを示すセル情報であり、コントロール用ＢＳＲセル情報２４３が標準よりも駆動能力が大きくテスト動作スピードが速いコントロール用ＢＳＲを示すセル情報であっても良い。尚標準的な駆動能力とテスト動作スピードは、例えば半導体集積回路の設計時に予め設定されていても良い。
【００３７】
またＢＳＲセル情報２４０には、コントロール用ＢＳＲセル情報２４１により記述されるコントロール用ＢＳＲ２４１Ａよりも駆動能力が小さく、テスト動作スピードが遅いコントロール用ＢＳＲのセル情報が含まれていても良い。
【００３８】
図４の例では、ＢＳＲセル情報２４０に含まれるセル情報として、コントロール用ＢＳＲセル情報２４１とコントロール用ＢＳＲセル情報２４３としたが、これに限定されず、３以上のコントロール用ＢＳＲセル情報が含まれていても良い。
【００３９】
データ記憶領域２００には、一時的にデータが記憶される作業領域２５０が設けられている。作業領域２５０には、挿入後回路情報２６０が記憶される。
【００４０】
本実施形態のプログラム記憶領域４００には、本実施形態の設計装置１００の有する機能を実現する各種プログラムが記憶されている。
【００４１】
プログラム記憶領域４００には、回路情報取得部１１０として機能する回路情報取得プログラム４１０、座標情報取得部１２０とし機能する座標情報取得プログラム４２０、グルーピング部１３０として機能するグルーピングプログラム４３０、距離算出部１４０として機能する距離算出プログラム４４０が記憶されている。またプログラム記憶領域４００には、駆動判定部１５０として機能する駆動判定プログラム４５０、ＢＳＲ選択部１６０として機能するＢＳＲ選択プログラム４６０、ＢＳＲ挿入部１７０として機能するＢＳＲ挿入プログラム４７０、回路情報出力部１８０として機能する回路情報出力プログラム４８０が記憶されている。
【００４２】
次に、図５を参照して本実施形態の設計装置１００の動作の概略を説明する。図５は、本実施形態の設計装置の動作の概略を説明するためのフローチャートである。
【００４３】
本実施形態の設計装置１００は、回路情報取得部１１０により挿入前回路情報２１１が取得されると、ＢＳＲの挿入を行う（ステップＳ５１）。ステップＳ５１で挿入されるＢＳＲは、データ用ＢＳＲとコントロール用ＢＳＲとの両方を含む。データ用ＢＳＲは、挿入前回路情報２１１に含まれるＩ／Ｏバッファと１対１となるように挿入される。コントロール用ＢＳＲは、後述する方法により挿入される。
【００４４】
ステップＳ５１でＢＳＲが挿入されると、設計装置１００はＢＳＲが挿入された後の挿入後回路情報２６０に基づきレイアウトを行う（ステップＳ５２）。設計装置１００は、このときＩ／ＯバッファとＢＳＲとの引き付け処理を行う。引き付け処理とは、信号の受け渡しが発生するセル同士を近づけて配置する処理のことである。引き付け処理を行うことでＩ／ＯバッファとＢＳＲとが引き付けられるため、Ｉ／Ｏバッファの駆動においてタイミングエラーの発生を低減することができる。
【００４５】
ステップＳ５２でレイアウトが完了すると、設計装置１００は、テストパターンを生成する（ステップＳ５３）。テストパターンの生成が完了すると、設計装置１００はバリデーションを行い（ステップＳ５４）、処理を終了する。
【００４６】
次に図６を参照して図５のステップＳ５１におけるコントロール用ＢＳＲの挿入の詳細について説明する。図６は、本実施形態の設計装置１００によるコントロール用ＢＳＲの挿入を説明するためのフローチャートである。尚図６の実線は処理の流れを示し、点線はデータの流れを示す。
【００４７】
本実施形態の設計装置１００は、回路情報取得部１１０により、ネットリスト２１０に含まれる挿入前回路情報２１１を取得する（ステップＳ６０１）。設計装置１００は、座標情報取得部１２０により、レイアウトデータ２２０から挿入前回路情報２１１に含まれるＩ／Ｏバッファの座標情報２２１と、製造情報２３０に含まれるチップのパッド情報２３１を取得する。座標情報取得部１２０は、座標情報２２１とパッド情報２３１とに基づき、チップ上におけるＩ／Ｏバッファの位置を示す座標を取得する（ステップＳ６０２）。パッド情報２３１とは、例えばチップのサイドにおけるパッドの位置を示すパッド番号等である。チップのサイド、パッド番号についての詳細は後述する。
【００４８】
設計装置１００は、グルーピング部１３０により、挿入前回路情報２１１に含まれるＩ／Ｏバッファのうち、同一の供給元からコントロール信号が供給されるＩ／Ｏバッファを１つのグループとしてグルーピングを行う（ステップＳ６０３）。設計装置１００は、距離算出部１４０により、１つのグループ内におけるＩ／Ｏバッファ間の距離を算出する（ステップＳ６０４）。Ｉ／Ｏバッファ間の距離は、ステップＳ６０２で取得された各Ｉ／Ｏバッファの座標を用いて算出される。
【００４９】
設計装置１００は、駆動判定部１５０により、１つの標準的なコントロール用ＢＳＲ（コントロール用ＢＳＲ２４１Ａ）で１つのグループ内の全てのＩ／Ｏバッファを１周期以内にタイミングエラーなく駆動させることができるか否かを判定する（ステップＳ６０５）。本実施形態における標準的なコントロール用ＢＳＲとは、ＢＳＲセル情報２４０に含まれるコントロール用ＢＳＲセル情報２４１で記述されるコントロール用ＢＳＲ２４１Ａを示す。駆動判定部１５０は、ステップＳ６０４で算出したＩ／Ｏバッファ間の距離と、コントロール用ＢＳＲセル情報２４１に含まれる駆動能力情報２４１ａ、テスト動作スピード情報２４１ｂとに基づき、駆動が可能か否かを判定する。尚本実施形態の１周期とは、例えばコントロール信号と同期したクロック信号の１周期等である。
【００５０】
ステップＳ６０５において、１つのコントロール用ＢＳＲ２４１Ａで１グループ内の全てのＩ／Ｏバッファをタイミングエラーなく駆動させることができないと判定された場合、ステップＳ６０６へ進む。ステップＳ６０６において設計装置１００は、駆動判定部１５０により、ＢＳＲセル情報２４０内に１グループ内の全てのＩ／Ｏバッファを１周期以内にタイミングエラーなく駆動させることが可能なコントロール用ＢＳＲが存在するか否かを判定する（ステップＳ６０６）。
【００５１】
例えば駆動判定部１５０は、ＢＳＲセル情報２４０に、コントロール用ＢＳＲ２４１Ａよりも駆動能力が大きく、テスト動作スピードが速いコントロール用ＢＳＲが存在するか否かを確認する。そして駆動判定部１５０は、該当するコントロール用ＢＳＲが存在すると、該当するコントロール用ＢＳＲで１グループ内の全てのＩ／Ｏバッファを１周期以内にタイミングエラーなく駆動させることが可能か否かを判定する。
【００５２】
本実施形態では、駆動判定部１５０は、コントロール用ＢＳＲセル情報２４３により記述されるコントロール用ＢＳＲ２４３Ａの駆動能力とテスト動作スピードが標準以上である。よって駆動判定部１５０は、ステップＳ６０６においてコントロール用ＢＳＲセル情報２４３の駆動能力情報２４３ａと、テスト動作スピード情報２４３ｂと、ステップＳ６０４で算出された距離とに基づき判定を行う。
【００５３】
ステップＳ６０６において、コントロール用ＢＳＲ２４３Ａにより１グループ内の全てのＩ／Ｏバッファをタイミングエラーなく駆動させることができない場合、又はＢＳＲセル情報２４０内に標準的なコントロール用ＢＳＲセル情報しか含まれていない場合、ステップＳ６０７へ進む。ステップＳ６０７において設計装置１００は、グルーピング部１３０により、１周期以内に駆動させることが不可能なＩ／Ｏバッファを別のグループとしてグルーピングする（ステップＳ６０７）。
【００５４】
ステップＳ６０７においてグルーピング部１３０は、コントロール用ＢＳＲ２４１Ａにより１周期以内に駆動させることが不可能なＩ／Ｏバッファを別のグループにグルーピングしても良い。またグルーピング部１３０は、コントロール用ＢＳＲ２４３Ａにより１周期以内に駆動させることが不可能なＩ／Ｏバッファを別のグループにグルーピングしても良い。
【００５５】
ステップＳ６０７においてグルーピングが終了すると、ステップＳ６０４からステップＳ６０６までの処理を繰り返す。
【００５６】
ステップＳ６０５において、１つのコントロール用ＢＳＲ２４１Ａで１グループ内の全てのＩ／Ｏバッファをタイミングエラーなく駆動させることができると判定された場合、設計装置１００はＢＳＲ選択部１６０によりコントロール用ＢＳＲ２４１Ａを選択する。そしてＢＳＲ挿入部１７０により選択されたコントロール用ＢＳＲ２４１Ａを挿入前回路情報２２１に挿入する（ステップＳ６０８）。
【００５７】
ステップＳ６０６において、１つのコントロール用ＢＳＲ２４３Ａで１グループ内の全てのＩ／Ｏバッファをタイミングエラーなく駆動させることができると判定された場合、設計装置１００はＢＳＲ選択部１６０によりコントロール用ＢＳＲ２４３Ａを選択する。そしてＢＳＲ挿入部１７０により選択されたコントロール用ＢＳＲ２４３Ａを挿入前回路情報２２１に挿入する（ステップＳ６０８）。
【００５８】
設計装置１００は、回路情報出力部１８０により、コントロール用ＢＳＲが挿入された後の挿入後回路情報２６０を出力し（ステップＳ６０９）、データ記憶領域２００の作業領域２５０に記憶させて処理を終了する。尚作業領域２５０に記憶された挿入後回路情報２６０は、挿入前回路情報２１１に上書きされてネットリスト２１０に含まれるようにされても良い。
【００５９】
以上の処理により、１つのコントロール用ＢＳＲで１グループ内のＩ／Ｏバッファを１周期以内にタイミングエラーなく駆動させることが不可能な場合には、複数のコントロール用ＢＳＲが挿入されることになる。よって本実施形態の設計装置１００によれば、配線混雑を招いたり、他のセルの配置の障害となることなく、タイミングエラーを起こさずに複数のＩ／Ｏバッファを駆動させることができる。
【００６０】
以下に図７乃至図９を参照して本実施形態によるコントロール用ＢＳＲの配置について例を挙げて説明する。図７は、Ｉ／Ｏバッファの配置の一例を示す図である。
【００６１】
図７に示すチップ７０は、四角形であり４辺を有する。本実施形態では、チップ７０の有する各辺をサイドと呼ぶ。よってチップ７０は、サイドＷ，Ｎ，Ｅ，Ｓを有する。チップ７０の各サイドには、チップ７０を他の回路と接続するための端子が接続されるパッド群Ｐ１〜Ｐ４がサイド毎に設けられており、パッド群Ｐ１〜Ｐ４を構成する各パッドにはパッド番号が設けられている。
【００６２】
チップ７０は、Ｉ／Ｏバッファ７１、７２、７３を有し、Ｉ／Ｏバッファ７１、７２、７３にはバッファ７４から出力されるコントロール信号が供給される。本実施形態の座標情報取得部１２０は、パッド番号とレイアウトデータ２２１に含まれる座標情報２２１とに基づき、Ｉ／Ｏバッファ７１〜７３間の距離を算出するために用いるＩ／Ｏバッファ７１〜７３の座標を取得している。
【００６３】
図７では、座標情報取得部１２０により、Ｉ／Ｏバッファ７１の座標（１００，１）、Ｉ／Ｏバッファ７２の座標（１００，１０）、Ｉ／Ｏバッファ７３の座標（０，９９）が取得された。Ｉ／Ｏバッファ７１〜７３の座標が取得されると、グルーピング部１３０によりグルーピングが行われる。図７の例では、Ｉ／Ｏバッファ７１〜７３は、バッファ７４からコントロール信号が供給される１つのグループとしてグルーピングされる。
【００６４】
グルーピングが行われると、距離算出部１４０によりグループ内のＩ／Ｏバッファ間の距離が算出される。Ｉ／Ｏバッファ７１とＩ／Ｏバッファ７２との距離Ｔ１は、Ｉ／Ｏバッファ７１の座標（１００，１）とＩ／Ｏバッファ７２の座標（１００，１０）に基づき（０，９）と算出される。同様にしてＩ／Ｏバッファ７１とＩ／Ｏバッファ７３との距離Ｔ２は（１００，９８）、Ｉ／Ｏバッファ７２とＩ／Ｏバッファ７３との距離Ｔ３は（１００，８９）と算出される。
【００６５】
Ｉ／Ｏバッファ間の距離Ｔ１〜Ｔ３が算出されると、駆動判定部１５０は、距離Ｔ１〜Ｔ３がバッファ７４の後段に挿入するコントロール用ＢＳＲからコントロール信号を１周期以内に受け取れる距離か否かを判定する。すなわち駆動判定部１５０は、距離Ｔ１〜Ｔ３に基づき、１グループ内の全てのＩ／Ｏバッファを１周期以内に駆動させることが可能か否かを判定する。このとき駆動判定部１５０は、バッファ７４の後段に挿入されるコントロール用ＢＳＲの候補であるコントロール用ＢＳＲ２４１Ａの駆動能力情報２４１ａ、テスト動作スピード情報２４１ｂに基づき判定を行う。
【００６６】
ＢＳＲ選択部１６０は、駆動判定部１５０の判定結果に基づき挿入するコントロール用ＢＳＲを選択し、ＢＳＲ挿入部１７０は選択されたコントロール用ＢＳＲを挿入する。
【００６７】
図８は、コントロール用ＢＳＲが挿入された例を示す図である。
【００６８】
図８には、Ｉ／Ｏバッファ７１〜７３を適切なタイミングで駆動させるために、２つのコントロール用ＢＳＲが挿入された例が示されている。図８において本実施形態の設計装置１００は、Ｉ／Ｏバッファ７１とＩ／Ｏバッファ７２をグループＧ１とした。そしてグループＧ１内の全てのＩ／Ｏバッファ７１、７２を１周期以内で駆動させることが可能なコントロール用ＢＳＲ２４１Ａを挿入した。また設計装置１００は、Ｉ／Ｏバッファ７３をグループＧ２とし、グループＧ２内のＩ／Ｏバッファ７３を１周期以内で駆動させるコントロール用ＢＳＲ２４１Ｂを挿入した。
【００６９】
図９は、コントロール用ＢＳＲが挿入された別の例を示す図である。
【００７０】
図９には、Ｉ／Ｏバッファ７１〜７３を適切なタイミングで駆動させるために３つのコントロール用ＢＳＲが挿入された例が示されている。図９において本実施形態の設計装置１００は、Ｉ／Ｏバッファ７１をグループＧ１とし、グループＧ１内のＩ／Ｏバッファ７１を１周期以内で駆動させるコントロール用ＢＳＲ２４１Ａを挿入した。同様に設計装置１００は、Ｉ／Ｏバッファ７２をグループＧ２、Ｉ／Ｏバッファ７３をグループＧ３とし、グループＧ２内のＩ／Ｏバッファ７２を１周期以内で駆動させるコントロール用ＢＳＲ２４１Ｂを挿入し、グループＧ３内のＩ／Ｏバッファ７３を１周期以内で駆動させるコントロール用ＢＳＲ２４１Ｃを挿入した。
【００７１】
尚図８、図９は、標準的なコントロール用ＢＳＲであるコントロール用ＢＳＲ２４１Ａ〜２４１Ｃを挿入する例を示したが、挿入されるコントロール用ＢＳＲの１つとして標準より駆動能力が大きくテスト動作スピードの速いコントロール用ＢＳＲを挿入しても良い。
【００７２】
次に、図１０乃至図１２を参照して挿入前回路情報２１１と挿入後回路情報２６０の例を説明する。図１０は、本実施形態の挿入前回路情報の一例を示す図である。
【００７３】
図１０において、挿入前回路情報２１１に含まれるＩ／Ｏバッファ７１は、例えば「Ｉ／ＯOUTCELL  a (.EX(A),.A(a_in), .C(S1_out)) ;」と記述される。またＩ／Ｏバッファ７２は、例えば「Ｉ／ＯOUTCELL  b (.EX(B),.A(b_in), .C(S1_out)) ;」と記述される。またＩ／Ｏバッファ７３は、例えば「Ｉ／ＯOUTCELL  c (.EX(C),.A(c_in), .C(S1_out)) ;」と記述される。
【００７４】
図１１は、コントロール用ＢＳＲが２つ挿入された挿入後回路情報の一例を示す図である。図１１は、図８に示すようにコントロール用ＢＳＲ２４１Ａ、２４１Ｂが挿入された後の挿入後回路情報２６０である。挿入後回路情報２６０では、挿入前回路情報２１１に挿入されたコントロール用ＢＳＲ２４１Ａ、２４１Ｂを示す記述が追加されている。図１１では、挿入されたコントロール用ＢＳＲ２４１Ａは、例えば「BSRCNTLCELL  cntlbsr1(… , .XE(cntlbsr1_out), .AE(S1_out), …) ;」と記述される。またコントロール用ＢＳＲ２４１Ｂは、「BSRCNTLCELL cntlbsr2(… , .XE(cntlbsr2_out), .AE(S1_out), …) ;」と記述される。
【００７５】
図１２は、コントロール用ＢＳＲが３つ挿入された挿入後回路情報の一例を示す図である。図１２は、図９に示すようにコントロール用ＢＳＲ２４１Ａ、２４１Ｂ、２４１Ｃが挿入された後の挿入後回路情報２６０である。
【００７６】
図１２では、挿入されたコントロール用ＢＳＲ２４１Ａは、例えば「BSRCNTLCELL  cntlbsr1(… , .XE(cntlbsr1_out), .AE(S1_out), …) ;」と記述される。またコントロール用ＢＳＲ２４１Ｂは、「BSRCNTLCELL  cntlbsr2(… , .XE(cntlbsr2_out), .AE(S1_out), …) ;」と記述される。またコントロール用ＢＳＲ２４１Ｃは、「BSRCNTLCELL  cntlbsr3(… , .XE(cntlbsr3_out), .AE(S1_out), …) ;」と記述される。
【００７７】
以上の説明では、コントロール用ＢＳＲに保持された後に出力されるコントロール信号は、チップ内に配置されたＩ／Ｏバッファに供給されるものとして説明したが、これに限定されない。本実施形態は、１つのチップが１機能単位（モジュール）である場合にも適用することができる。この場合、モジュールの有する複数の外部端子に同一の信号を１周期以内に送ることが可能なコントロール用ＢＳＲが挿入される。尚本実施形態のモジュールとは、ＩＰマクロ、レイアウト階層、理論階層等も含まれる。
【００７８】
図１３は、モジュールの場合にコントロール用ＢＳＲが挿入された例を示す図である。
【００７９】
図１３に示すチップ７０Ａは、外部端子７１Ａ、７２Ａ、７３Ａを有する。外部端子７１Ａ、７２Ａ、７３Ａには、バッファ７４Ａから出力される信号が供給される。すなわち外部端子７１Ａ、７２Ａ、７３Ａには同一の信号が供給される。
【００８０】
このとき本実施形態の設計装置１００は、図６で説明した処理を実行することで、全ての外部端子に１周期以内にタイミングエラーなく信号を送ることができる。図１３の例では、外部端子７１Ａと外部端子７２ＡがグループＧ１Ａとされ、グループＧ１Ａ内の外部端子７１Ａ、７２Ａに１周期以内に信号を送信することが可能なコントロール用ＢＳＲ２４１Ａが挿入されている。また図１３の例では、外部端子７３ＡがグループＧ２Ａとされ、グループＧ２Ａ内の外部端子７３Ａに１周期以内に信号を送信することが可能なコントロール用ＢＳＲ２４１Ｂが挿入されている。
【００８１】
よって図１３に示す例でも、Ｉ／Ｏバッファにコントロール信号を送信する場合と同様に、配線混雑を招いたり、他のセルの配置の障害となることなく、タイミングエラーを起こさずに複数の外部端子へ信号を送信することができる。
【００８２】
本発明の実施形態は、以下に記載する付記のような構成が考えられる。
（付記１）
バウンダリスキャン機能を有する半導体集積回路の設計装置であって、
複数のＩ／Ｏバッファ間の距離を算出する距離算出手段と、
前記距離算出手段により算出された距離に基づき、コントロール信号により前記複数のＩ／Ｏバッファを所定期間内に駆動させるように、複数のバウンダリスキャンレジスタを前記コントロール信号の供給元の後段に挿入する挿入手段と、を有する半導体集積回路の設計装置。
（付記２）
同一のコントロール信号により制御されるＩ／Ｏバッファを１つのグループにグルーピングするグルーピング手段を有し、
前記挿入手段は、
前記グルーピング手段によりグルーピングされた１つのグループ内に存在するＩ／Ｏバッファを所定期間内に駆動させるようにバウンダリスキャンレジスタを挿入する付記１記載の半導体集積回路の設計装置。
（付記３）
挿入候補のバウンダリスキャンレジスタを記述したセル情報が記憶された記憶手段と、
前記挿入候補のバウンダリスキャンレジスタが前記コントロール信号により前記複数のＩ／Ｏバッファを所定期間内に駆動させることが可能か否かを判定する駆動判定手段と、を有し、
前記挿入手段は、前記駆動判定手段により前記複数のＩ／Ｏバッファを所定期間内に駆動させることが可能と判定されたとき、前記挿入候補のバウンダリスキャンレジスタを前記コントロール信号の供給元の後段に挿入する付記１又は２記載の半導体集積回路の設計装置。
（付記４）
前記駆動判定手段は、
前記距離算出手段により算出された距離と、前記挿入候補のバウンダリスキャンレジスタの駆動能力及びテスト動作スピードとに基づき判定を行う付記３記載の半導体集積回路の設計装置。
（付記５）
前記グルーピング手段は、
前記駆動判定手段により、前記挿入候補のバウンダリスキャンレジスタが１つのグループ内に存在するＩ／Ｏバッファを所定期間内に駆動させることが不可能と判定されたとき、
前記挿入候補のバウンダリスキャンレジスタによる所定期間内の駆動が不可能であるＩ／Ｏバッファを別のグループとしてグルーピングする付記３又は４記載の半導体集積回路の設計装置。
（付記６）
前記記憶手段には、第一のバウンダリスキャンレジスタを記述した第一のセル情報と、前記第一のバウンダリスキャンレジスタよりも駆動能力が大きくテスト動作スピードが速い第二のバウンダリスキャンレジスタを記述した第二のセル情報とが記憶されており、
前記駆動判定手段は、
前記第一のバウンダリスキャンレジスタを挿入候補として前記１つのグループ内に存在するＩ／Ｏバッファを所定期間内に駆動させることが可能か否かを判定し、
前記１つのグループ内に存在するＩ／Ｏバッファを所定期間内に駆動させることが不可能と判定されたとき、
前記第二のバウンダリスキャンレジスタを挿入候補として前記１つのグループ内に存在するＩ／Ｏバッファを所定期間内に駆動させることが可能か否かを判定する付記３乃至５の何れか一項に記載の半導体集積回路の設計装置。
（付記７）
前記記憶手段には、前記半導体集積回路のレイアウトデータが記憶されており、
前記レイアウトデータに含まれる座標情報に基づき前記複数のＩ／Ｏバッファの座標情報を取得する座標情報取得手段を有し、
前記距離算出手段は、
前記座標情報取得手段により取得された前記複数のＩ／Ｏバッファの座標情報に基づき前記複数のＩ／Ｏバッファ間の距離を算出する付記３乃至６記載の半導体集積回路の設計装置。
（付記８）
バウンダリスキャン機能を有する半導体集積回路の設計方法であって、
複数のＩ／Ｏバッファ間の距離を算出する算出手順と、
前記算出手順により算出された距離に基づき、コントロール信号により前記複数のＩ／Ｏバッファを所定期間内に駆動させるように、複数のバウンダリスキャンレジスタを前記コントロール信号の供給元の後段に挿入する挿入手順と、を有する半導体集積回路の設計方法。
（付記９）
バウンダリスキャン機能を有する半導体集積回路の設計装置において実行される設計プログラムであって、
前記設計装置に、
複数のＩ／Ｏバッファ間の距離を算出する算出ステップと、
前記算出ステップにより算出された距離に基づき、コントロール信号により前記複数のＩ／Ｏバッファを所定期間内に駆動させるように、複数のバウンダリスキャンレジスタを前記コントロール信号の供給元の後段に挿入する挿入ステップと、を実行させる半導体集積回路の設計プログラム。
【００８３】
本発明の実施形態は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【００８４】
【図１】本発明の着目点を説明する図である。
【図２】本実施形態に係る設計装置の機能構成例を示す図である。
【図３】本実施形態の設計装置のハードウェア構成の一例を示す図である。
【図４】本実施形態の設計装置の有する補助記憶装置内に設けられた記憶領域を説明するための図である。
【図５】本実施形態の設計装置の動作の概略を説明するためのフローチャートである。
【図６】本実施形態の設計装置１００によるコントロール用ＢＳＲの挿入を説明するためのフローチャートである。
【図７】Ｉ／Ｏバッファの配置の一例を示す図である。
【図８】コントロール用ＢＳＲが挿入された例を示す図である。
【図９】コントロール用ＢＳＲが挿入された別の例を示す図である。
【図１０】本実施形態の挿入前回路情報の一例を示す図である。
【図１１】コントロール用ＢＳＲが２つ挿入された挿入後回路情報の一例を示す図である。
【図１２】コントロール用ＢＳＲが３つ挿入された挿入後回路情報の一例を示す図である。
【図１３】モジュールの場合にコントロール用ＢＳＲが挿入された例を示す図である。
【符号の説明】
【００８５】
１００  設計装置
１１０  回路情報取得部
１２０  座標情報取得部
１３０  グルーピング部
１４０  距離算出部
１５０  駆動判定部
１６０  ＢＳＲ選択部
１７０  ＢＳＲ挿入部
１８０  回路情報出力部
２００  データ記憶領域
２１０  ネットリスト
２１１  挿入前回路情報
２２０  レイアウトデータ
２２１  座標情報
２３０  製造情報
２３１  チップのパッド情報
２４０  ＢＳＲセル情報
２４１、２４３  コントロール用ＢＳＲセル情報
２５０  作業領域
２６０  挿入後回路情報
３００  記憶領域
４００  プログラム記憶領域
【図１】
2010102636.tif 000003
【図２】
2010102636.tif 000004
【図３】
2010102636.tif 000005
【図４】
2010102636.tif 000006
【図５】
2010102636.tif 000007
【図６】
2010102636.tif 000008
【図７】
2010102636.tif 000009
【図８】
2010102636.tif 000010
【図９】
2010102636.tif 000011
【図１０】
2010102636.tif 000012
【図１１】
2010102636.tif 000013
【図１２】
2010102636.tif 000014
【図１３】
2010102636.tif 000015