(57)【要約】【課題】スキャンパス方式で設計した半導体集積回路内のフリップフロップ間のパスが通常動作モードおよびテスト動作モードの両モードにおいてホールド違反とならないようにフリップフロップ間のパスの遅延を最適化する半導体集積回路の遅延最適化方法に関し、遅延最適化処理時間の大幅な短縮化を図ることができるようにする。【解決手段】テスト動作モードでのホールド違反値が通常動作モードでのホールド違反値よりも大きい場合、テスト動作モードでのホールド違反値と通常動作モードでのホールド違反値との差分をマージン値とするホールドマージン制約を追加制約として算出して遅延最適化を行う。【選択図】　　図１
2004139201.tif 000002
【特許請求の範囲】
【請求項１】
スキャンパス方式で設計した半導体集積回路内のフリップフロップ間のパスが通常動作モードおよびテスト動作モードの両モードにおいてホールド違反とならないように前記フリップフロップ間のパスの遅延を最適化する半導体集積回路の遅延最適化方法であって、
前記テスト動作モードでのホールド違反値が前記通常動作モードでのホールド違反値よりも大きい場合、前記テスト動作モードでのホールド違反値と前記通常動作モードでのホールド違反値との差分をホールドマージン制約として前記フリップフロップ間のパスの遅延を最適化する工程を有することを特徴とする半導体集積回路の遅延最適化方法。
【請求項２】
スキャンパス方式で設計した半導体集積回路内のフリップフロップ間のパスが通常動作モードおよびテスト動作モードの両モードにおいてホールド違反とならないように前記フリップフロップ間のパスの遅延を最適化する半導体集積回路の遅延最適化装置であって、
前記テスト動作モードでのホールド違反値が前記通常動作モードでのホールド違反値よりも大きい場合、前記テスト動作モードでのホールド違反値と前記通常動作モードでのホールド違反値との差分をホールドマージン制約として前記フリップフロップ間のパスの遅延を最適化する工程を有することを特徴とする半導体集積回路の遅延最適化装置。
【請求項３】
スキャンパス方式で設計した半導体集積回路内のフリップフロップ間のパスが通常動作モードおよびテスト動作モードの両モードにおいてホールド違反とならないように前記フリップフロップ間のパスの遅延を最適化する場合の基準となる前記フリップフロップ間のパスのホールドマージン制約をコンピュータに作成させるプログラムであって、
前記コンピュータを、前記テスト動作モードでのホールド違反値が前記通常動作モードでのホールド違反値よりも大きい場合、前記テスト動作モードでのホールド違反値と前記通常動作モードでのホールド違反値との差分を前記フリップフロップ間のパスのホールドマージン制約として作成する手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スキャンパス方式で設計した半導体集積回路内のフリップフロップ間のパスが通常動作モードおよびテスト動作モードの両モードにおいてホールド違反とならないようにフリップフロップ間のパスの遅延を最適化する半導体集積回路の遅延最適化方法および装置に関する。
【０００２】
【従来の技術】
半導体集積回路をテスト容易化設計手法の１つであるスキャンパス方式で設計する場合、テスト動作モード時におけるフリップフロップへのテストクロックの供給は、クロック制御の容易性や、全フリップフロップを同一タイミングで動作させる必要性などから、クロック入力ピンを介してチップ外部から行い、かつ、通常動作モード時に使用するクロックパス上に存在するＰＬＬ回路や分周回路などのようにクロックの周期を変更する回路をバイパスする経路を設けて行うように設計されることが多い（例えば、特許文献１参照）。
【０００３】
このようにして設計された半導体集積回路では、テスト（スキャンテスト）は、▲１▼スキャンモードにしてフリップフロップへのテストデータの設定、▲２▼スキャンモードを解除してフリップフロップへの１サイクル分のクロックの印加、▲３▼スキャンモードにしてフリップフロップの値をチップ外部にスキャンアウトして観測という手順で実行されるが、▲２▼の工程では、テストクロックによってフリップフロップ間の組合せ回路が動作することになるため、通常動作モードおよびテスト動作モードの２つの動作モードにおいて、フリップフロップ間のパスのセットアップ条件とホールド条件を満たすように回路を設計する必要がある。
【０００４】
ところで、回路設計時に論理合成ツールなどの遅延最適化ツールで回路の遅延最適化を行う場合、現在一般的に使用されている主要な遅延最適化ツールでは、遅延最適化実行時には各フリップフロップへのクロックパスを一意に定めておく必要がある。すなわち、通常動作モード時のクロックパスか、又は、テスト動作モード時のクロックパスに定めておく必要がある。このため、遅延最適化処理を１回実行するだけでは、テスト動作モードでのセットアップ条件およびホールド条件と通常動作モードでのセットアップ条件およびホールド条件とを同時に満足させるような遅延最適化を行うことができない。
【０００５】
ここで、セットアップ条件については、チップ外部からテストクロックを与える場合は、テストクロックの周波数は、通常動作モード時に使用するクロックの周波数より十分に低い場合がかなり多く、そのような場合には、通常動作モードでのセットアップ条件を満足させるような遅延最適化を実行すれば、テスト動作モードでのセットアップ条件を満足させるような遅延最適化は不要になる。
【０００６】
しかし、ホールド条件については、通常動作モード時とテスト動作モード時とでは、クロックパス上のＰＬＬ回路や分周回路などをバイパスしない場合とバイパスした場合の遅延差だけクロックの遅延が異なることになるため、どちらか一方の動作モードで遅延最適化を行なっただけでは、もう一方の動作モードでのホールド条件を満たせるとは限らない。
【０００７】
したがって、また、どちらか一方の動作モードで遅延最適化を行なった後、クロックの遅延制約を切り替えて、もう一方の動作モードで遅延最適化を行なうという方法を採用したとしても、後から実行する遅延最適化で行なわれる回路変更（遅延回路の挿入など）によって、先に遅延最適化を実行した方の動作モードで再びホールド違反が発生するという場合が起こり得る。
【０００８】
そこで、従来では、スキャンパス方式で設計した半導体集積回路の遅延最適化を行う場合において、複数の動作モードに対応する遅延制約を同時に扱うことができない遅延最適化ツールを使用する場合には、動作モードを切り替えて遅延最適化を交互に何度か実行するといった自動遅延最適化の繰り返しによって、ある程度のホールド違反を解消し、それでも取り切れないホールド違反部分については、個別に人手で対処するという方法により行っていた。
【０００９】
【特許文献１】
特開平９−５３９７号公報
【００１０】
【発明が解決しようとする課題】
このように、従来の半導体集積回路の遅延最適化方法では、自動遅延最適化処理を何度か実行する必要があり、また、それでも遅延最適化が収束するとは限らないため、遅延最適化に多大の時間を要する場合があるという問題点があった。
【００１１】
本発明は、かかる点に鑑み、スキャンパス方式で設計した半導体集積回路内のフリップフロップ間のパスが通常動作モードおよびテスト動作モードの両モードにおいてホールド違反とならないようにフリップフロップ間のパスの遅延を最適化する半導体集積回路の遅延最適化方法および装置であって、遅延最適化処理時間の大幅な短縮化を図ることができるようにした半導体集積回路の遅延最適化方法および装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明は、スキャンパス方式で設計した半導体集積回路内のフリップフロップ間のパスが通常動作モードおよびテスト動作モードの両モードにおいてホールド違反とならないようにフリップフロップ間のパスの遅延を最適化する場合、テスト動作モードでのホールド違反値が通常動作モードでのホールド違反値よりも大きい場合、テスト動作モードでのホールド違反値と通常動作モードでのホールド違反値との差分をホールドマージン制約としてフリップフロップ間のパスの遅延を最適化するというものである。
【００１３】
本発明によれば、スキャンパス方式で設計した半導体集積回路について、遅延最適化処理を１回実行するだけで、通常動作モードおよびテスト動作モードの両モードにおいてホールド条件を満たすことができるフリップフロップ間のパスの遅延最適化を図ることができる。
【００１４】
【発明の実施の形態】
図１は本発明の半導体集積回路の遅延最適化装置の一実施形態の概念図である。図１中、１はスキャンパス方式で設計した半導体集積回路の回路データを格納する回路データ格納手段、２は通常動作モード時の遅延制約を格納する通常動作モード遅延制約格納手段、３はテスト動作モード時の遅延制約を格納するテスト動作モード遅延制約格納手段である。
【００１５】
４は回路データ格納手段１に格納されている回路データと、通常動作モード遅延制約格納手段２に格納されている通常動作モード時の遅延制約と、テスト動作モード遅延制約格納手段３に格納されているテスト動作モード時の遅延制約に基づいて、フリップフロップ間のパスが通常動作モードおよびテスト動作モードの両モードにおいてホールド違反とならないようにフリップフロップ間のパスの遅延を最適化する場合の基準となるホールドマージン制約を追加制約として作成する追加制約作成手段である。
【００１６】
５は回路データ格納手段１に格納されている回路データと通常動作モード遅延制約格納手段２に格納されている通常動作モード時の遅延制約に基づいて、通常動作モードでのフリップフロップ間のパスのホールド違反情報（ホールド違反値、パスの両端のフリップフロップのインスタンス名）を取得する通常動作モード・ホールド違反情報取得手段である。
【００１７】
なお、本発明の半導体集積回路の遅延最適化装置の一実施形態では、フリップフロップ間のパスは、始点となるフリップフロップに供給されるクロックと終点となるフリップフロップに供給されるクロックとの間のパスと把握される。この結果、始点となるフリップフロップに供給されるクロックと終点となるフリップフロップに供給されるクロックを決定すれば、２つの動作モードでのホールド違反値の差は、その２つのクロック間のどのパスについても同一となる。
【００１８】
６は回路データ格納手段１に格納されている回路データとテスト動作モード遅延制約格納手段３に格納されているテスト動作モード時の遅延制約に基づいて、通常動作モード・ホールド違反情報取得手段５によって有効なホールド違反情報を取得することができた全パスについて、パスの両端のフリップフロップのインスタンス名を使ってテスト動作モードでのホールド違反値を取得するテスト動作モード・ホールド違反値取得手段である。
【００１９】
７は有効なホールド違反情報を取得することができた全パスについて、通常動作モードでのホールド違反値（通常動作モード・ホールド違反情報取得手段５により取得したホールド違反値）とテスト動作モードでのホールド違反値（テスト動作モード・ホールド違反値取得手段６により取得したホールド違反値）を比較し、テスト動作モードでのホールド違反値が通常動作モードでのホールド違反値よりも大きい場合、テスト動作モードでのホールド違反値と通常動作モードでのホールド違反値との差分をマージン値としたホールドマージン制約を追加制約として算出するホールドマージン制約算出手段である。
【００２０】
８は追加制約作成手段４が作成した追加制約（ホールドマージン制約）を格納する追加制約格納手段、９は回路データ格納手段１に格納されている回路データと、通常動作モード遅延制約格納手段２に格納されている通常動作モード遅延制約と、追加制約格納手段８に格納されている追加制約に基づいて、遅延最適化済み回路データを自動作成する自動遅延最適化手段、１０は自動遅延最適化手段９が作成した遅延最適化済み回路データを格納する遅延最適化済み回路データ格納手段である。
【００２１】
図２は本発明の半導体集積回路の遅延最適化装置の一実施形態で行われる遅延最適化処理手順（本発明の半導体集積回路の遅延最適化方法の一実施形態）を示す流れ図、図３〜図６は本発明の半導体集積回路の遅延最適化装置の一実施形態で行われる遅延最適化処理手順の具体例を示す回路図であり、図３は回路データ格納手段１に格納されている回路データに基づく半導体集積回路の回路図である。
【００２２】
図３中、１１はクロック入力ピン、１２はクロック入力ピン１１から入力するクロックを逓倍するＰＬＬ回路、１３はクロック入力ピン１１から入力するクロック又はＰＬＬ回路１２が出力するクロックを選択するセレクタである。セレクタ１３は、テストモード信号＝“０”の時は、ＰＬＬ回路１２が出力するクロックを選択し、テストモード信号＝“１”の時は、クロック入力ピン１１から入力するクロックを選択する。
【００２３】
１４はセレクタ１３が出力するクロックを分周する分周回路、１５はセレクタ１３が出力するクロック又は分周回路１４が出力するクロックを選択するセレクタである。セレクタ１５は、テストモード信号＝“０”の時は、分周回路１４が出力するクロックを選択し、テストモード信号＝“１”の時は、セレクタ１３が出力するクロックを選択する。
【００２４】
１６はセレクタ１５が出力するクロックを分周する分周回路、１７はセレクタ１５が出力するクロック又は分周回路１６が出力するクロックを選択するセレクタである。セレクタ１７は、テストモード信号＝“０”の時は、分周回路１６が出力するクロックを選択し、テストモード信号＝“１”の時は、セレクタ１５が出力するクロックを選択する。
【００２５】
１８Ａ、１８Ｂ、１８Ｃはフリップフロップ（スキャン・フリップフロップ）、１９Ａ、１９Ｂ、１９Ｃはセレクタ１７、１５、１３が出力するクロックＣＬＫ＿Ａ、ＣＬＫ＿Ｂ、ＣＬＫ＿Ｃをそれぞれフリップフロップ１８Ａ、１８Ｂ、１８Ｃに供給するクロックバッファである。
【００２６】
ここで、テストモード信号は、通常動作モード時には“０”とされ、テスト動作モード時には“１”とされる。したがって、図３に示す半導体集積回路は、通常動作モード時には図４に示す回路と等価となり、テスト動作モード時には図５に示す回路と等価となる。なお、フリップフロップ１８Ａ、１８Ｂ間、フリップフロップ１８Ｂ、１８Ｃ間、フリップフロップ１８Ｃ、１８Ａ間にそれぞれ存在する組合せ回路は、図示を省略している。
【００２７】
また、クロックバッファ１９Ａ、１９Ｂ、１９Ｃは、それぞれ、ツリー構造とされた複数のクロックバッファを説明の都合上、まとめて記載したものであり、クロックバッファ１９Ａ、１９Ｂ、１９Ｃが出力するクロックＣＬＫ＿Ａ、ＣＬＫ＿Ｂ、ＣＬＫ＿Ｃは、それぞれ、フリップフロップ１８Ａ、１８Ｂ、１８Ｃのほか、図示しないフリップフロップに供給されるように構成されている。
【００２８】
また、本例では、ＰＬＬ回路１２および分周回路１４、１６の遅延時間を共に１ｎｓ、クロックバッファ１９Ａ、１９Ｂ、１９Ｃの遅延時間をそれぞれ０．５ｎｓ、１ｎｓ、１．５ｎｓとし、それ以外のパスの遅延はないものとする。また、フリップフロップ１８Ａ、１８Ｂ、１８Ｃのホールド時間（クロックの立ち上がりエッジが到着してから直前のフリップフロップによってＤ入力が変化するまでの許容最小時間）は０ｎｓとする。
【００２９】
本発明の半導体集積回路の遅延最適化装置の一実施形態によって遅延最適化が行われる場合には、まず、回路データ格納手段１に格納されている回路データおよび通常動作モード遅延制約格納手段２に格納されている通常動作モード時の遅延制約が追加制約作成手段４に読み込まれ、設計された半導体集積回路に対して、通常動作モードの遅延制約が設定される（ステップＳ１）。
【００３０】
なお、通常動作モード時の遅延制約の設定は、クロック定義（クロック波形の指定、クロックを印加するピンの指定、クロックのマージンの指定）やクロック経路の指定などによって行われる。図３に示す半導体集積回路では、例えば、ＰＬＬ回路１２が２０００ｐｓ周期のクロックを出力し、分周回路１４がＰＬＬ回路１２の出力を１／２に分周して４０００ｐｓ周期のクロックを出力し、分周回路１６が分周回路１４の出力を１／２に分周して８０００ｐｓ周期のクロックを出力するものである場合には、ＰＬＬ回路１２の出力ピンに、２０００ｐｓ周期のクロック（０ｐｓで立ち上がり、１０００ｐｓで立ち下り、２０００ｐｓで再び立ち上がるクロック）が定義される。
【００３１】
また、分周回路１４の出力ピンに、ＰＬＬ回路１２の出力ピンに定義されたクロックの１番目、３番目、５番目の信号遷移を使って新たに４０００ｐｓ周期のクロック（０ｐｓで立ち上がり、２０００ｐｓで立ち下り、４０００ｐｓで再び立ち上がるクロック）が定義される。
【００３２】
また、分周回路１６の出力ピンに、ＰＬＬ回路１２の出力ピンに定義されたクロックの１番目、５番目、９番目の信号遷移を使って新たに８０００ｐｓ周期のクロック（０ｐｓで立ち上がり、４０００ｐｓで立ち下り、８０００ｐｓで立ち上がるクロック）が定義される。
【００３３】
また、セレクタ１３、１５、１７の選択信号入力ピンにそれぞれ“０”が設定される（テストモード信号＝“０”とされる）。このようにして、図３に示す半導体集積回路は、通常動作モードに設定され、図４に示す回路と等価とされる。この場合、クロック入力ピン１１からフリップフロップ１９Ａ、１９Ｂ、１９Ｃまでのクロックパスの遅延時間はそれぞれ３．５ｎｓ、３．０ｎｓ、２．５ｎｓとなる。
【００３４】
次に、通常動作モード時にフリップフロップに供給される全クロックのうちの２つのクロックの全ての組合せについて、それら２つのクロックを始点、終点とするパスのホールド違反情報（ホールド違反値、両端のフリップフロップのインスタンス名）を取得する（ステップＳ２）。
【００３５】
図３に示す半導体集積回路では、フリップフロップ１８Ａ、１８Ｂ、１８Ｃのホールド時間は０ｎｓとされているので、各クロック対におけるホールド違反値は、クロック入力ピン１１とパスの終点のフリップフロップとの間のクロック遅延時間をＴｔ、クロック入力ピン１１とパスの始点のフリップフロップとの間のクロック遅延時間をＴｓとすると、Ｔｔ−Ｔｓで求めることができる。
【００３６】
したがって、図３に示す半導体集積回路では、フリップフロップ１８Ｘ（但し、Ｘ＝Ａ、Ｂ、Ｃ）からフリップフロップ１８Ｙ（但し、Ｙ＝Ａ、Ｂ、Ｃ）へのパスを（ＣＬＫ＿Ｘ　→　ＣＬＫ＿Ｙ）と表示すると、各クロック対におけるホールド違反値は、数１に示すようになる。
【００３７】
【数１】
2004139201.tif 000003
【００３８】
すなわち、通常動作モードでのホールド違反値は、図４に示すように、フリップフロップ１８Ａからフリップフロップ１８Ｂへのパス２０Ａでは−０．５ｎｓとなり（０．５ｎｓ緩い）、フリップフロップ１８Ｂからフリップフロップ１８Ｃへのパス２０Ｂでは−０．５ｎｓとなり（０．５ｎｓ緩い）、フリップフロップ１８Ｃからフリップフロップ１８Ａへのパス２０Ｃでは１ｎｓとなる（１ｎｓ厳しい）。
【００３９】
次に、テスト動作モード遅延制約格納手段３に格納されているテスト動作モード時のホールド遅延制約が追加制約作成手段４に読み込まれ、設計された半導体集積回路に対してテスト動作モード時の遅延制約が設定され、ステップＳ２の処理で有効なホールド違反情報を取得したパスのテスト動作モードでのホールド違反値が取得される（ステップＳ３）。
【００４０】
図３に示す半導体集積回路の場合、テスト動作モード時の遅延制約の設定は、クロック入力ピン１１に、例えば、２０ｎｓ周期のクロック（０ｎｓで立ち上がり、１０ｎｓで立ち下り、２０ｎｓで再び立ち上がるクロック）が定義され、また、セレクタ１３、１５、１７の選択制御信号入力ピンにそれぞれ“１”が設定される（テストモード信号＝“１”とされる）。
【００４１】
この場合、クロック入力ピン１１からフリップフロップ１８Ａ、１８Ｂ、１８Ｃまでのクロックパスの遅延時間は、図５に示すように、それぞれ、０．５ｎｓ、１ｎｓ、１．５ｎｓとなる。この結果、各クロック対におけるホールド違反値は、数２に示すようになる。
【００４２】
【数２】
2004139201.tif 000004
【００４３】
次に、パスを有する各クロック対について、ステップＳ２で取得したホールド違反値（通常動作モードでのホールド違反値）とステップＳ３で取得したホールド違反値（テスト動作モードでのホールド違反値）を比較し、ステップＳ３で取得したホールド違反値がステップＳ２で取得したホールド違反値よりも大きい場合、ステップＳ３で取得したホールド違反値とステップＳ２で取得したホールド違反値との差分をマージン値としたホールドマージン制約が追加制約として算出される（ステップＳ４）。
【００４４】
図３に示す半導体集積回路では、テスト動作モードでのホールド違反値が通常動作モードでのホールド違反値よりも大きいのは、フリップフロップ１８Ａからフリップフロップ１８Ｂへのパス２０Ａ（ＣＬＫ＿Ａ　→　ＣＬＫ＿Ｂ）と、フリップフロップ１８Ｂからフリップフロップ１８Ｃへのパス２０Ｂ（ＣＬＫ＿Ｂ　→　ＣＬＫ＿Ｃ）の２つであり、ホールド違反値の差分は、数３に示すようになる。
【００４５】
【数３】
2004139201.tif 000005
【００４６】
ここに、フリップフロップ１８Ａからフリップフロップ１８Ｂへのパス２０Ａ（ＣＬＫ＿Ａ　→　ＣＬＫ＿Ｂ）に対する１ｎｓのホールドマージンと、フリップフロップ１８Ｂからフリップフロップ１８Ｃへのパス２０Ｂ（ＣＬＫ＿Ｂ　→　ＣＬＫ＿Ｃ）に対する１ｎｓのホールドマージンが追加制約となり、これら追加制約は追加制約格納手段８に格納される。
【００４７】
次に、回路データ格納手段１に格納されている回路データと、通常動作モード遅延制約格納手段２に格納されている通常動作モードでの遅延制約と、追加制約格納手段８に格納されている追加制約（ホールドマージン制約）に基づいて、自動遅延最適化手段９において、設計した半導体集積回路について自動遅延最適化が行われる（ステップＳ５）。
【００４８】
図３に示す半導体集積回路の場合、パス２０Ａでは、通常動作モードでのホールド違反値（−０．５ｎｓ）＜テスト動作モードでのホールド違反値（０．５ｎｓ）であるから、［追加のホールドマージン制約（１ｎｓ）−テスト動作モードでのホールド違反値（０．５ｎｓ）］＝０．５ｎｓとなり、パス２０Ａには、図６に示すように、遅延時間を０．５ｎｓとする遅延回路２１Ａが挿入されることになる。
【００４９】
また、パス２０Ｂにおいても、通常動作モードでのホールド違反値（−０．５ｎｓ）＜テスト動作モードでのホールド違反値（０．５ｎｓ）＝０．５ｎｓであるから、［追加のホールドマージン制約（１ｎｓ）−テスト動作モードでのホールド違反値（０．５ｎｓ）］＝０．５ｎｓとなり、パス２０Ｂには、遅延時間を０．５ｎｓとする遅延回路２１Ｂが挿入されることになる。
【００５０】
これに対して、パス２０Ｃでは、通常動作モードでのホールド違反値（１ｎｓ）＞テスト動作モードでのホールド違反値（−１ｎｓ）であるから、パス２０Ｃには、遅延時間を通常動作モードでのホールド違反値である１ｎｓとする遅延回路２１Ｃが挿入されることになる。
【００５１】
この結果、パス２０Ａ、２０Ｂ、２０Ｃの通常動作モードでのホールド違反値は、数４に示すようになり、通常動作モードでのホールド条件を満足する遅延最適化が行われていることになる。
【００５２】
【数４】
2004139201.tif 000006
【００５３】
また、パス２０Ａ、２０Ｂ、２０Ｃのテスト動作モードでのホールド違反値は、数５に示すようになり、テスト動作モードでのホールド条件を満足する遅延最適化が行われていることになる。
【００５４】
【数５】
2004139201.tif 000007
【００５５】
このように、本発明の半導体集積回路の遅延最適化装置の一実施形態によれば、追加制約作成手段４を設け、スキャンパス方式で設計した半導体集積回路について、フリップフロップ間のパスの通常動作モードでのホールド違反値とテスト動作モードでのホールド違反値を算出し、これらを比較して、テスト動作モードでのホールド違反値が通常動作モードでのホールド違反値よりも大きい場合には、テスト動作モードでのホールド違反値と通常動作モードでのホールド違反値との差分をマージン値とするホールドマージン制約を追加制約として算出するとしている。
【００５６】
したがって、スキャンパス方式で設計した半導体集積回路について、自動遅延最適化手段９で遅延最適化処理を１回実行するだけで、通常動作モードおよびテスト動作モードの両モードにおいてホールド違反とならないようにフリップフロップ間のパスの遅延を最適化することができ、遅延最適化処理時間の大幅な短縮化を図ることができる。
【００５７】
なお、追加制約作成手段４および自動遅延最適化手段９はソフトウエアで構成することができ、すなわち、図２に示すステップＳ１〜Ｓ５の遅延最適化処理手順はコンピュータを各手順を実行するための手段として機能させるプログラムを使用することによってコンピュータに実行させることができ、このようにする場合には、本発明の半導体集積回路の遅延最適化方法の一実施形態は、複数の動作モードに対応する遅延制約を同時に扱うことができない従来の遅延最適化ツールを利用して実行することができる。
【００５８】
【発明の効果】
以上のように、本発明によれば、スキャンパス方式で設計した半導体集積回路について、遅延最適化処理を１回実行するだけで、通常動作モードおよびテスト動作モードの両モードにおいてホールド違反とならないようにフリップフロップ間のパスの遅延を最適化することができ、遅延最適化処理時間の大幅な短縮化を図ることができる。
【図面の簡単な説明】
【図１】本発明の半導体集積回路の遅延最適化装置の一実施形態の概念図である。
【図２】本発明の半導体集積回路の遅延最適化装置の一実施形態で行われる遅延最適化処理手順（本発明の半導体集積回路の遅延最適化方法の一実施形態）を示す流れ図である。
【図３】本発明の半導体集積回路の遅延最適化装置の一実施形態で行われる遅延最適化処理手順（本発明の半導体集積回路の遅延最適化方法の一実施形態）の具体例を示す回路図である。
【図４】本発明の半導体集積回路の遅延最適化装置の一実施形態で行われる遅延最適化処理手順（本発明の半導体集積回路の遅延最適化方法の一実施形態）の具体例を示す回路図である。
【図５】本発明の半導体集積回路の遅延最適化装置の一実施形態で行われる遅延最適化処理手順（本発明の半導体集積回路の遅延最適化方法の一実施形態）の具体例を示す回路図である。
【図６】本発明の半導体集積回路の遅延最適化装置の一実施形態で行われる遅延最適化処理手順（本発明の半導体集積回路の遅延最適化方法の一実施形態）の具体例を示す回路図である。
【符号の説明】
１…回路データ格納手段
２…通常動作モード遅延制約格納手段
３…テスト動作モード遅延制約格納手段
４…追加制約作成手段
５…通常動作モード・ホールド違反情報取得手段
６…テスト動作モード・ホールド違反値取得手段
７…ホールドマージン制約算出手段
８…追加制約格納手段
９…自動遅延最適化手段
１０…遅延最適化済み回路データ格納手段
１１…クロック入力ピン
１２…ＰＬＬ回路
１３…セレクタ
１４…分周回路
１５…セレクタ
１６…分周回路
１７…セレクタ
１８Ａ、１８Ｂ、１８Ｃ…フリップフロップ
１９Ａ、１９Ｂ、１９Ｃ…クロックバッファ
【図１】
2004139201.tif 000008
【図２】
2004139201.tif 000009
【図３】
2004139201.tif 000010
【図４】
2004139201.tif 000011
【図５】
2004139201.tif 000012
【図６】
2004139201.tif 000013