(57)【特許請求の範囲】
【請求項１】
ＬＳＩレイアウトの既存スキャンパスに、追加スキャンフリップフロップを追加するスキャンフリップフロップ追加システムであって、
前記既存スキャンパスの始点と終点間の複数のスキャンフリップフロップの接続情報を含む論理接続情報と、
前記追加スキャンフリップフロップと前記論理接続情報で使用される前記複数のスキャンフリップフロップのレイアウト、及び、前記複数のスキャンフリップフロップのそれぞれのスキャンイン端子、スキャンアウト端子とを接続するネットの情報を含むレイアウト情報と、
ネットの単位配線長当たりの遅延時間を計算するためのパラメータの情報を含む遅延ライブラリ情報と、
ネットの遅延を制約する遅延制約情報と、を入力する情報入力手段と、
前記レイアウト情報から、前記既存スキャンパスの複数のスキャンフリップフロップのうち前記追加スキャンフリップフロップから所定距離以内にある第１のスキャンフリップフロップを抽出し、
前記追加スキャンフリップフロップのスキャンイン端子と前記第１のスキャンフリップフロップのスキャンアウト端子間のネットの第１の遅延値を前記遅延ライブラリ情報から見積もり、
前記見積もった第１の遅延値が前記遅延制約情報で制約されない場合、前記論理接続情報から前記第１のスキャンフリップフロップの次段に設定されている第２のスキャンフリップフロップを抽出し、
前記第２のスキャンフリップフロップのスキャンイン端子と前記追加スキャンフリップフロップのスキャンアウト端子間のネットの第２の遅延値を前記遅延ライブラリ情報から見積もり、
前記見積もった第２の遅延値が前記遅延制約情報で制約されない場合、前記追加スキャンフリップフロップの挿入先を前記第１のスキャンフリップフロップと前記第２のスキャンフリップフロップの間と決定する追加先決定手段と、
前記追加先決定手段により決定された内容に従って追加された、前記追加スキャンフリップフロップを、前記既存スキャンパスに挿入するように前記論理接続情報を更新する論理接続情報更新手段と、
前記論理接続情報更新手段により更新された論理接続情報を参照し、接続が変更されたスキャンイン端子、スキャンアウト端子間の配線を行い、前記レイアウト情報を更新する再配線手段と、
前記論理接続情報更新手段により更新された論理接続情報と、前記再配線手段により更新された前記レイアウト情報を出力する情報出力手段と、を有する
スキャンフリップフロップ追加システム。
【請求項２】
ＬＳＩレイアウトの既存スキャンパスに、追加スキャンフリップフロップを追加する、コンピュータによって実行されるスキャンフリップフロップ追加方法であって、
前記既存スキャンパスの始点と終点間の複数のスキャンフリップフロップの接続情報を含む論理接続情報と、
前記追加スキャンフリップフロップと前記論理接続情報で使用される前記複数のスキャンフリップフロップのレイアウト、及び、前記複数のスキャンフリップフロップのそれぞれのスキャンイン端子、スキャンアウト端子とを接続するネットの情報を含むレイアウト情報と、
ネットの単位配線長当たりの遅延時間を計算するためのパラメータの情報を含む遅延ライブラリ情報と、
ネットの遅延を制約する遅延制約情報と、を入力し、
前記レイアウト情報から、前記既存スキャンパスの複数のスキャンフリップフロップのうち前記追加スキャンフリップフロップから所定距離以内にある第１のスキャンフリップフロップを抽出し、
前記追加スキャンフリップフロップのスキャンイン端子と前記第１のスキャンフリップフロップのスキャンアウト端子間のネットの第１の遅延値を前記遅延ライブラリ情報から見積もり、
前記見積もった第１の遅延値が前記遅延制約情報で制約されない場合、前記論理接続情報から前記第１のスキャンフリップフロップの次段に設定されている第２のスキャンフリップフロップを抽出し、
前記第２のスキャンフリップフロップのスキャンイン端子と前記追加スキャンフリップフロップのスキャンアウト端子間のネットの第２の遅延値を前記遅延ライブラリ情報から見積もり、
前記見積もった第２の遅延値が前記遅延制約情報で制約されない場合、前記追加スキャンフリップフロップの挿入先を前記第１のスキャンフリップフロップと前記第２のスキャンフリップフロップの間と決定し、
その追加された前記追加スキャンフリップフロップを、前記既存スキャンパスに挿入するように前記論理接続情報を更新し、
その更新された論理接続情報を参照し、接続が変更されたスキャンイン端子、スキャンアウト端子間の配線を行い、前記レイアウト情報を更新し、
その更新された論理接続情報及び前記レイアウト情報を出力する
スキャンフリップフロップ追加方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャンフリップフロップ追加システム及びスキャンフリップフロップ追加方法に関する。
【背景技術】
【０００２】
大規模な集積回路（例えばＬＳＩ等）のレイアウト設計においては、ＬＳＩレイアウト完了後に論理バグや機能追加の要因でフリップフロップを追加するような事態が存在する。その際スキャンイン、スキャンアウト等のスキャン機能をもたないフリップフロップ（ノーマルフリップフロップ）を追加すると、それらノーマルフリップフロップ周囲の論理回路がスキャンパスには繋がらないため、そのフリップフロップ周辺の回路が活性化されずＬＳＩの故障検出率が低下してしまう。そのためスキャン機能をもったフリップフロップ（スキャンフリップフロップ）を論理回路に追加し既存のスキャンパスに接続することが望ましい。しかし、レイアウト完了後の設計データに対し、スキャンフリップフロップを追加することは容易ではない。
【０００３】
スキャンパスは、それ自身の特徴として、パス中の全てのフリップフロップが一筆書き状に接続されていれば良く、その接続順については特に制約されない。そのため、ノーマルフリップフロップからスキャンフリップフロップへの変換、および、スキャンパスの接続（シフトレジスタとして構成すべくスキャンフリップフロップ同士を直列に接続）はＬＳＩレイアウト前の論理設計工程で論理合成ツールにより自動で決定され、設計者がその接続順を意識することはない。
【０００４】
加えて、ＬＳＩレイアウト中においてはスキャンパスの自動付け替え処理（自動配置処理により確定したフリップフロップの配置位置を参照し、スキャンパスの総配線長が短くなるような接続順の付け替え）が一般的に行われている。さらに付け替えを行ってもスキャンパスの配線長が長くセットアップエラーを起こすような場合の対処として、特許文献１のような技術がある。この特許文献１では、セットアップエラーを起こしている箇所に対してスキャンパスを切断し新たなスキャン用フリップフロップをダミーとして新たに挿入する等の処置が施される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１９６３３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したような処置が施されたデータに対しに新たにスキャンフリップフロップを追加するためには、レイアウトツールで出力されるスキャンパス接続順の情報やレイアウト後のネットリスト、ＬＳＩの配置配線情報等を参照して、設計者がセットアップエラーやホールドエラーを起こさないように、ネットリストを直接人手で修正する。その修正において、スキャンフリップフロップを挿入するか、もしくは論理合成やレイアウトをやり直す必要があり、設計工数の増大や設計の後戻りが発生していた。
【０００７】
尚、そのような事態を回避すべく、ある程度の論理変更を見越してダミーのスキャンフリップフロップを予め複数用意しておき、それらをスキャンパスに繋げてＬＳＩ内の空き領域に配置し、論理変更時に使用することも一般に行われている。しかし、ＬＳＩ中のどの論理回路をどのように修正するかを事前に予想することは困難であるため、結果として所望の機能、性能（動作周波数）を満足する位置にダミーのフリップフロップが配置されているとは限らず、必ずしも有効に活用されない場合がある。
【０００８】
本発明の目的は、ＬＳＩのレイアウト完了後に論理変更などでフリップフロップが追加された場合に、セットアップエラーやホールドエラーを起こさないよう、追加されたフリップフロップを既存のスキャンパスに自動で接続することにより、設計工数の増大や設計の後戻りを防ぐことである。
【課題を解決するための手段】
【０００９】
本発明の一態様は、ＬＳＩレイアウトの既存スキャンパスに、追加スキャンフリップフロップを追加するスキャンフリップフロップ追加システムであって、前記既存スキャンパスの始点と終点間の複数のスキャンフリップフロップの接続情報を含む論理接続情報と、前記追加スキャンフリップフロップと前記論理接続情報で使用される前記複数のスキャンフリップフロップのレイアウト、及び、前記複数のスキャンフリップフロップのそれぞれのスキャンイン端子、スキャンアウト端子とを接続するネットの情報を含むレイアウト情報と、ネットの単位配線長当たりの遅延時間を計算するためのパラメータの情報を含む遅延ライブラリ情報と、ネットの遅延を制約する遅延制約情報と、を入力する情報入力手段と、前記論理接続情報、レイアウト情報、遅延ライブラリ情報、遅延制約情報を参照し、前記追加スキャンフリップフロップについて、前記既存スキャンパスへの挿入先を決定する追加先決定手段と、前記追加先決定手段により決定された内容に従って追加された、前記追加スキャンフリップフロップを、前記既存スキャンパスに挿入するように前記論理接続情報を更新する論理接続情報更新手段と、前記論理接続情報更新手段により更新された論理接続情報を参照し、接続が変更されたスキャンイン端子、スキャンアウト端子間の配線を行い、前記レイアウト情報を更新する再配線手段と、前記論理接続情報更新手段により更新された論理接続情報と、前記再配線手段により更新された前記レイアウト情報を出力する情報出力手段と、を有するスキャンフリップフロップ追加システムである。
【００１０】
本発明の他の態様は、ＬＳＩレイアウトの既存スキャンパスに、追加スキャンフリップフロップを追加するスキャンフリップフロップ追加方法であって、前記既存スキャンパスの始点と終点間の複数のスキャンフリップフロップの接続情報を含む論理接続情報と、前記追加スキャンフリップフロップと前記論理接続情報で使用される前記複数のスキャンフリップフロップのレイアウト、及び、前記複数のスキャンフリップフロップのそれぞれのスキャンイン端子、スキャンアウト端子とを接続するネットの情報を含むレイアウト情報と、ネットの単位配線長当たりの遅延時間を計算するためのパラメータの情報を含む遅延ライブラリ情報と、ネットの遅延を制約する遅延制約情報と、を入力し、前記論理接続情報、レイアウト情報、遅延ライブラリ情報、遅延制約情報を参照し、前記追加スキャンフリップフロップについて、前記既存スキャンパスへの挿入先を決定し、その追加された前記追加スキャンフリップフロップを、前記既存スキャンパスに挿入するように前記論理接続情報を更新し、その更新された論理接続情報を参照し、接続が変更されたスキャンイン端子、スキャンアウト端子間の配線を行い、前記レイアウト情報を更新し、その更新された論理接続情報及び前記レイアウト情報を出力するスキャンフリップフロップ追加方法である。
【発明の効果】
【００１１】
本発明によれば、ＬＳＩのレイアウト完了後に論理変更などでフリップフロップが追加された場合に、セットアップエラーやホールドエラーを起こさないよう、追加されたフリップフロップを既存のスキャンパスに自動で接続することにより、設計工数の増大や設計の後戻りを防ぐことができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態にかかるスキャンフリップフロップ追加システムのブロック図である。
【図２】実施の形態にかかる情報入力部が入力する論理接続情報を説明する模式図である。
【図３】実施の形態にかかる情報入力部が入力するレイアウト情報を説明する模式図である。
【図４】実施の形態にかかる情報入力部が入力する遅延ライブラリ情報の一例を示す表である。
【図５】実施の形態にかかるネットの配線長の一例を示す表である。
【図６】実施の形態にかかる遅延制約情報の一例を示す表である。
【図７】実施の形態にかかるスキャンフリップフロップ追加先決定部の動作を説明するフローチャートである。
【図８】実施の形態にかかるスキャンフリップフロップ追加先決定部の動作を説明する模式図である。
【図９】実施の形態にかかるスキャンフリップフロップ追加先決定部の動作を説明する模式図である。
【図１０】実施の形態にかかるスキャンフリップフロップ追加先決定部の動作を説明する模式図である。
【図１１】実施の形態にかかるスキャンフリップフロップ追加先決定部の動作を説明する模式図である。
【図１２】実施の形態にかかる論理接続情報更新部の動作を説明する模式図である。
【図１３】実施の形態にかかるスキャンパス再配線部の動作を説明する模式図である。
【図１４】実施の形態にかかるスキャンフリップフロップ追加システムの動作フローチャートである。
【図１５】実施の形態にかかるスキャンフリップフロップ追加システムを実現するハードウエア構成の一例である。
【発明を実施するための形態】
【００１３】
発明の実施の形態
【００１４】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。図１に本実施の形態にかかるスキャンフリップフロップ追加システム１００の構成を示すブロック図を示す。
【００１５】
図１に示すように、スキャンフリップフロップ追加システム１００は、情報入力部１０１と、スキャンフリップフロップ追加先決定部１０２と、論理接続情報更新部１０３と、スキャンパス再配線部１０４と、情報出力部１０５とを有する。
【００１６】
情報入力部１０１は、ＬＳＩレイアウトや遅延計算等を行う際に必要な情報である、論理接続情報２０１、レイアウト情報２０２、遅延ライブラリ情報２０３、遅延制約情報２０４等を入力する。
【００１７】
スキャンフリップフロップ追加先決定部１０２は、情報入力部１０１により入力された論理接続情報２０１、レイアウト情報２０２、遅延ライブラリ情報２０３、遅延制約情報２０４を参照し、追加されたフリップフロップについて、既存のスキャンパスへの挿入先を決定する。また、その決定においては、接続先のフリップフロップ間の遅延時間がセットアップエラーやホールドエラーを起こさないような挿入先を選択する。
【００１８】
論理接続情報更新部１０３は、スキャンフリップフロップ追加先決定部１０２により決定された内容に従って、追加されたフリップフロップを既存のスキャンパスに挿入するように論理接続情報２０１を更新する。
【００１９】
スキャンパス再配線部１０４は、論理接続情報更新部１０３により更新された論理接続情報２０１を参照し、接続が変更されたスキャンイン端子ＳＩ−スキャンアウト端子ＳＯ間の再配線を行い、レイアウト情報２０２を更新する。
【００２０】
情報出力部１０５は、論理接続情報更新部１０３により更新された論理接続情報２０１と、スキャンパス再配線部１０４により更新されたレイアウト情報２０２を出力する。
【００２１】
以下に、本実施の形態にかかる動作について説明する。まず、情報入力部１０１は、ＬＳＩレイアウトや遅延計算等を行う際に必要な情報である、論理接続情報２０１、レイアウト情報２０２、遅延ライブラリ情報２０３、遅延制約情報２０４を入力し、各情報を格納する。
【００２２】
ここで、図２に情報入力部１０１で入力した論理接続情報２０１を示す。論理接続情報２０１は、図２に示すように、スキャンイン外部端子ＳＩを始点、スキャンアウト外部端子ＳＯを終点として、その間にスキャンフリップフロップＡ〜Ｇが順に接続された構成の情報を有している。図２に示すように、スキャンフリップフロップＡ〜Ｇは、それぞれ前段スキャンフリップフロップのスキャンアウト端子と自分のスキャンイン端子、自分のスキャンアウト端子と次段スキャンフリップフロップのスキャンイン端子を接続している。
【００２３】
但し、スキャンフリップフロップＡのスキャンイン端子はスキャンイン外部端子ＳＩが接続され、スキャンフリップフロップＧのスキャンアウト端子はスキャンアウト外部端子ＳＯに接続されている。
【００２４】
ここで、スキャンフリップフロップＨは、レイアウト設計が完了した後に追加されるフリップフロップである。このため、スキャンフリップフロップＨのスキャンイン端子、スキャンアウト端子への接続はまだされていない状態である。
【００２５】
なお、スキャンフリップフロップＡ〜Ｇのそれぞれのスキャンイン端子を、ＳＩＡ〜ＳＩＧとし、スキャンフリップフロップＡ〜Ｇのそれぞれのスキャンアウト端子を、ＳＯＡ〜ＳＯＧとする。また、追加されるスキャンフリップフロップＨのスキャンイン端子をＳＩＨ、スキャンアウト端子をＳＯＨとする。
【００２６】
図３に情報入力部１０１でＬＳＩのレイアウト情報２０２を示す。レイアウト情報２０２は、図３に示すように、ＬＳＩの外周にスキャンイン外部端子ＳＩとスキャンアウト外部端子ＳＯが配置され、ＬＳＩの内部領域にスキャンフリップフロップＡ〜Ｈが配置されている。また、それぞれのスキャンフリップフロップのスキャンイン端子とスキャンアウト端子を繋ぐネットＮ１〜Ｎ８までが配線されている。なお、図２同様、スキャンフリップフロップＨのスキャンイン端子ＳＩＨとスキャンアウト端子ＳＯＨへは未だ配線されていない状態である。
【００２７】
尚、実際のＬＳＩレイアウトにおいてはスキャンパス以外のセル（トランジスタ）や端子、それら端子への接続ならびに配線も存在しているが、ここでは説明の簡略化のため省略している。
【００２８】
図４に情報入力部１０１で入力した遅延ライブラリ情報２０３を示す。遅延ライブラリ情報２０３は、図４に示すように、単位配線長当たりの配線抵抗ＲＬ、配線容量ＣＬおよび配線遅延時間の計算式など遅延計算を行う際に必要なパラメータが含まれる。ＬＳＩ回路中の信号が伝播する遅延時間については回路を構成するセル（トランジスタ）およびそれらを繋ぐ配線の抵抗および容量（キャパシタンス）によって決定される。
【００２９】
計算方法については計算時間と計算精度の差異などで異なる手法が存在している。例としては特開２００２−２２２８６３および特開２００３−２８８３７９などで示されるElmore遅延モデルを用いた方法や特開２００３−２８８３７９で示されるモーメントマッチング法などがある。但し、ここでは説明を簡単にするために、図４で示すような配線抵抗と配線容量の積で計算できるものとする。また、フリップフロップなどのセル内部にも配線抵抗、容量となる成分が存在しているが無視する。
【００３０】
また、図５に各スキャンフリップフロップ間に接続されるネットの配線長を示す。これはレイアウト完了後に確定する情報である。
【００３１】
図３、図４、図５を用いて、スキャンフリップフロップＥ〜Ｆまでの遅延計算例を説明する。例えば、図３におけるスキャンフリップフロップＥとスキャンフリップフロップＦの間を接続するネットＮ６の配線長は図５を参照して「８」である。図４によりネットＮ６の配線抵抗は０．５×８＝４、配線容量は１×８＝８と計算され、遅延時間は２×４×８＝６４と求めることができる。
【００３２】
図６に情報入力部１０１で入力した遅延制約情報２０４を示す。ここで、同期式ＬＳＩを所定のクロック周波数で動作させるためには、信号があるフリップフロップの出力ピンから出発して、次段のフリップフロップの入力ピンに到達するまでの時間が、クロック周期を基準とした一定の時間内に収まっている必要がある。到達時間が遅いものをセットアップエラー、速過ぎるものをホールドエラーと呼ぶ。
【００３３】
遅延制約情報２０４にはセットアップ時間の制限値、ホールド時間の制限値が格納されており、例えば、それぞれ１００、１０と定義されている。これはフリップフロップの入力ピンに到達するまでの時間が１００以上であればセットアップエラー、１０未満であればホールドエラーであることを示している。
【００３４】
次に、スキャンフリップフロップ追加先決定部１０２は、上述した情報入力部１０１により入力された、論理接続情報２０１、レイアウト情報２０２、遅延ライブラリ情報２０３、遅延制約情報２０４を参照し、追加されたフリップフロップについて、既存のスキャンパスへの挿入先を決定する。その決定においては、接続先のフリップフロップ間の遅延時間がセットアップエラーやホールドエラーを起こさないような挿入先を選択する。
【００３５】
図７にスキャンフリップフロップ追加先決定部１０２の詳細な手順（フローチャート）を示す。
【００３６】
まず、ステップＳ１０１において、追加されたスキャンフリップフロップから一定距離内に配置されているスキャンフリップフロップを抽出する。この抽出例を図８に示す。ここでは追加されたスキャンフリップフロップＨから一定距離（点線で示す円の半径）内のスキャンフリップフロップＢとＦが抽出される。
【００３７】
次に、ステップＳ１０２において、ステップＳ１０１で抽出されたスキャンフリップフロップのうち、追加されたスキャンフリップフロップＨに近いものから選択する。ここではスキャンフリップフロップＨに一番近いスキャンフリップフロップとしてスキャンフリップフロップＢがまず選択される。
【００３８】
次に、ステップＳ１０４において、追加されたスキャンフリップフロップのスキャンイン端子と、ステップＳ１０２で選択されたフリップフロップのスキャンアウト端子との間を繋いだ場合における遅延時間を見積もる。ここでは、追加されたスキャンフリップフロップＨのスキャンイン端子ＳＩＨと、ステップＳ１０２で選択されたフリップフロップＢのスキャンアウト端子ＳＯＢとの間を繋いだ場合における遅延時間を見積もっている。
【００３９】
具体的には、まず、既存のスキャンイン端子−スキャンアウト端子間に接続されている配線のみを無視した形で端子間を仮配線してその距離を求める。そして、次に前述の遅延計算方法を用いて求めた距離から遅延時間の算出を行う。
【００４０】
例えば、図９に例を示すと、スキャンフリップフロップＢのスキャンアウト端子ＳＯＢからスキャンフリップフロップＨのスキャンイン端子ＳＩＨまでを仮配線する。ここでは長さ「３」で配線されている。この場合の遅延時間は２×０．５×３×１×３＝９と求めることができる。
【００４１】
しかし、図６に示す遅延制約情報２０４により、この値「９」はホールドエラーであるため、ステップＳ１０２に戻り、スキャンフリップフロップＢの次に近いスキャンフリップフロップＦが選択される。
【００４２】
次に、ステップＳ１０４において、スキャンフリップフロップＨのスキャンイン端子ＳＩＨとスキャンフリップフロップＦのスキャンイン端子ＳＯＦ間の遅延を見積もる。上述した場合と同様、既存のスキャンイン端子−スキャンアウト端子間に接続されている配線のみを無視した形で端子間を仮配線してその距離を求める。図１０に例を示すと、ここでは長さ「８」で配線されており、この場合の遅延時間は２×０．５×８×１×８＝６４と求めることができる。この値はセットアップエラーでもホールドエラーでもないので、ステップＳ１０７に進む。仮に、ステップＳ１０４で見積もった値が、ステップＳ１０６で、セットアップエラーであると判断されると、ＥＮＤ２に移行し終了する。
【００４３】
次に、ステップＳ１０７では、論理接続情報２０１を参照し、ステップＳ１０２で選択されたスキャンフリップフロップのスキャンアウト側に接続されているフリップフロップを選択する。本例ではスキャンフリップフロップＧが選択される。
【００４４】
次にステップＳ１０８では、追加されたスキャンフリップフロップのスキャンアウト端子と前記ステップＳ１０７で選択されたスキャンフリップフロップのスキャンイン端子間の遅延時間を見積もる。手法としてはステップＳ１０４と同様、スキャンフリップフロップＧのスキャンイン端子ＳＩＧと追加されたスキャンフリップフロップＨのスキャンアウト端子ＳＯＨとの間を仮配線しての遅延値を見積もる。
【００４５】
図１１に例を示すと、ここでは長さ「８」で配線されており、この場合の遅延時間は２×０．５×８×１×８＝６４と求めることができる。この値はセットアップエラーでもホールドエラーでもないので、ＥＮＤ１に移動し処理を終了する。以上により、スキャンフリップフロップＨをスキャンフリップフロップＦとＧの間に挿入するものとして決定される。仮に、ステップＳ１０８で見積もった値が、ステップＳ１１０で、セットアップエラーであると判断されると、ＥＮＤ２に移行し終了する。
【００４６】
ＥＮＤ２で終了する場合は、セットアップエラーを起こさないスキャンフリップフロップがレイアウト中に存在しないことになる。そのためこの場合は全体処理を終了し、例えば特開２００３−１９６３３４ に示すような、セットアップエラーを起こしている箇所に対してスキャンパスを切断し新たなスキャン用フリップフロップをダミーとして新たに挿入する等の処理が別途必要となる。
【００４７】
また、ステップＳ１０３で、ステップＳ１０１もしくはＳ１０７により抽出されたスキャンフリップフロップを全て選択していると判断された場合、ＥＮＤ３に移行し終了する。ＥＮＤ３で終了する場合は、ホールドエラーを起こさないフリップフロップが範囲内に存在しないことになるので、ステップＳ１０１の探索範囲を広げる形で再度、スキャンフリップフロップ追加先決定部１０２のフローを実施することになる。
【００４８】
次に、論理接続情報更新部１０３は、前述のスキャンフリップフロップ追加先決定部１０２により決定された内容に従って追加されたスキャンフリップフロップを、既存のスキャンパスに挿入するように論理接続情報２０１を更新する。本例ではスキャンフリップフロップＨをスキャンフリップフロップＦとＧの間に挿入するものとして決定されているので、その内容に従って論理接続情報２０１を更新する。
【００４９】
その更新後の論理接続情報を図１２に示す。図１２に示すように、スキャンフリップフロップＦとＧの間にネットＮ９、Ｎ１０を介してスキャンフリップフロップＨが挿入されている。
【００５０】
次に、スキャンパス再配線部１０４は、論理接続情報更新部１０３により更新された論理接続情報２０１を参照し、接続が変更されたスキャンイン端子−スキャンアウト端子間の配線を行い、レイアウト情報２０２を更新する。本例では新たな接続であるネットＮ９、Ｎ１０を配線する。最配線された状態のレイアウト情報２０２を図１３に示す。
【００５１】
次に、情報出力部１０５は、論理接続情報更新部１０３により更新された論理接続情報２０１と、スキャンパス再配線部１０４により更新されたレイアウト情報２０２を出力する。
【００５２】
ここで、上述したスキャンフリップフロップ追加システム１００の全体の処理フローを図１４に示す。但し、このフローに示す各ステップ（Ｓ２０１〜Ｓ２０５）は、上述した情報入力部１０１、スキャンフリップフロップ追加先決定部１０２、論理接続情報更新部１０３、スキャンパス再配線部１０４、情報出力部１０５の処理動作に対応しているため、ここでは簡単に説明する。
【００５３】
図１４に示すように、まず、ステップＳ２０１において、論理接続情報２０１、レイアウト情報２０２、遅延ライブラリ情報２０３、遅延制約情報２０４を入力し、各情報を格納する。次に、ステップＳ２０２において、ステップＳ２０１で、入力された論理接続情報２０１、レイアウト情報２０２、遅延ライブラリ情報２０３、遅延制約情報２０４を参照し、追加されたフリップフロップについて、既存のスキャンパスへの挿入先を決定する。
【００５４】
次に、ステップＳ２０３において、ステップＳ２０２で決定された内容に従って、追加されたフリップフロップを既存のスキャンパスに挿入するように論理接続情報２０１を更新する。次に、ステップＳ２０４において、ステップＳ２０３で更新された論理接続情報２０１を参照し、接続が変更されたスキャンイン端子ＳＩ−スキャンアウト端子ＳＯ間の再配線を行い、レイアウト情報２０２を更新する。次に、ステップＳ２０５において、ステップＳ２０３で更新された論理接続情報２０１と、ステップＳ２０４で更新されたレイアウト情報２０２を出力する。
【００５５】
以上説明したような、実施の形態により、ＬＳＩのレイアウト完了後に論理変更などでスキャンフリップフロップが追加された場合において、セットアップエラーやホールドエラーを起こさないよう、追加されたフリップフロップを既存のスキャンパスに自動で接続することができ、設計工数の増大や設計の後戻りを防ぐことができる。
【００５６】
なお、本発明は上記実施の形態に限られたものでなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述したスキャンフリップフロップ追加システム１００は、図１５に示すようなＰＣ等のコンピュータ３００で実現してもよい。以下、このようなコンピュータ３００で、スキャンフリップフロップ追加システム１００を構成した例を簡単に説明する。図１５に示すようにコンピュータ３００は、ＣＰＵ３０１と、主メモリ３０２と、ＨＤＤ３０３と、ＲＯＭ３０４と、入出力装置３０５と、バス３０６とを有する。
【００５７】
上述した論理接続情報２０１、レイアウト情報２０２、遅延ライブラリ情報２０３、遅延制約情報２０４等の各情報は、コンピュータ３００のＨＤＤ３０３や、ネットワーク内のデータベース３０７等に保存されている。そして、ＣＰＵ３０１は、ＨＤＤ３０３もしくはＲＯＭ３０４に格納されているスキャンフリップフロップ追加システム１００を実現するためのプログラム（以下、処理プログラムと称す）を呼び出し、主メモリ３０２に展開する。
【００５８】
上述した情報入力部１０１、スキャンフリップフロップ追加先決定部１０２、論理接続情報更新部１０３、スキャンパス再配線部１０４、情報出力部１０５は、この処理プログラム内でモジュール化されている。そして、ＣＰＵ３０１により各モジュールプログラムが処理され、上述した各動作を行う。なお、このコンピュータ３００を制御するオペレーティングシステムが各各モジュールプログラムを制御するようにしてもよい。
【００５９】
例えば、情報入力部１０１として動作するプログラムは、論理接続情報２０１、レイアウト情報２０２、遅延ライブラリ情報２０３、遅延制約情報２０４等の各情報をＨＤＤ３０３もしくはネットワーク内のデータベース３０７等から呼び出し、主メモリ３０２にデータとして記憶させる。そして、スキャンフリップフロップ追加先決定部１０２、論理接続情報更新部１０３、スキャンパス再配線部１０４として動作するプログラムにより、上述した処理動作を行い、情報出力部１０５として動作するプログラムによりＨＤＤ３０４や、入出力装置３０５を経由して表示装置（不図示）等に出力される。
【００６０】
また、情報入力部１０１、スキャンフリップフロップ追加先決定部１０２、論理接続情報更新部１０３、スキャンパス再配線部１０４、情報出力部１０５をプログラムではなく、専用のハードウエアで実現してもよい。その際、情報入力部１０１、スキャンフリップフロップ追加先決定部１０２、論理接続情報更新部１０３、スキャンパス再配線部１０４、情報出力部１０５の各動作を制御する制御部を備えるようにしてもよい。
【符号の説明】
【００６１】
１００  スキャンフリップフロップ追加システム
１０１  情報入力部
１０２  スキャンフリップフロップ追加先決定部
１０３  論理接続情報更新部
１０４  スキャンパス再配線部
１０５  情報出力部
２０１  論理接続情報
２０２  レイアウト情報
２０３  遅延ライブラリ情報
２０４  遅延制約情報
【図１】
0005515757.tif 000002
【図２】
0005515757.tif 000003
【図３】
0005515757.tif 000004
【図４】
0005515757.tif 000005
【図５】
0005515757.tif 000006
【図６】
0005515757.tif 000007
【図７】
0005515757.tif 000008
【図８】
0005515757.tif 000009
【図９】
0005515757.tif 000010
【図１０】
0005515757.tif 000011
【図１１】
0005515757.tif 000012
【図１２】
0005515757.tif 000013
【図１３】
0005515757.tif 000014
【図１４】
0005515757.tif 000015
【図１５】
0005515757.tif 000016