(57)【特許請求の範囲】
【請求項１】
コンピュータが、
（ａ）論理設計された第１論理回路に対し、該第１論理回路に含まれる複数のフリップフロップの各々を、第１スキャンフリップフロップのスキャンアウト部にさらにラッチ回路が付加された第２スキャンフリップフロップで置換し、さらに該複数の第２スキャンフリップフロップを縦続接続して第１スキャン回路を形成することにより、第２論理回路を生成し、
（ｂ）該第２論理回路をレイアウト設計し、
（ｃ）該レイアウト設計後の第２論理回路に対し、該第１スキャン回路の各第２スキャンフリップフロップを第１スキャンフリップフロップで置換して得られる第３論理回路の静的タイミング解析を行い、その結果に基づき該第３論理回路に対しタイミング調整を行う、
ことを特徴とする論理設計された集積回路のレイアウト設計及びタイミング調整方法。
【請求項２】
上記ステップ（ｃ）では、該コンピュータが、
（ｃ１）上記第２論理回路のネットリストと上記レイアウト設計により得られたレイアウトとに基づいて、上記第１スキャン回路の各第２スキャンフリップフロップを第１スキャンフリップフロップで置換して得られる第２スキャン回路の、スキャンモード時のセル間の第１信号伝播遅延時間を求め、
（ｃ２）該第１信号伝播遅延時間及び該第１スキャンフリップフロップのセル遅延時間に基づいて、該第２スキャン回路のスキャンモード時の静的タイミング解析を行い、
（ｃ３）該静的タイミング解析により第１スキャンフリップフロップでタイミングエラーが発生した場合には、該エラーが発生した第１スキャンフリップフロップの前段の第１スキャンフリップフロップを第２スキャンフリップフロップで置換して該第２スキャン回路を第３スキャン回路に変更することによりタイミング調整する、
ことを特徴とする請求項１記載の方法。
【請求項３】
上記ステップ（ｃ）ではさらに、該コンピュータが、
（ｃ４）上記第３論理回路に対し上記第２スキャン回路を上記第３スキャン回路で置換した第４論理回路のネットリストと上記レイアウト設計により得られたレイアウトとに基づいて、該第２スキャン回路のセル及び該第２スキャン回路に接続されたセルを含むセル群に関するセル間の第２信号伝播遅延時間を求め、該第２信号伝播遅延時間及び該セル群の各セルのセル遅延時間に基づいて、該第３スキャン回路が通常動作モードである場合及びスキャンモードである場合の静的タイミング解析を行い、
（ｃ５）該第４論理回路の静的タイミング解析により該第３スキャン回路でタイミングエラーが発生した場合には、エラーが発生した第１又は第２スキャンフリップフロップとその前段の第１又は第２スキャンフリップフロップとの間にバッファセルを挿入することによりタイミング調整を行う、
ことを特徴とする請求項２記載の方法。
【請求項４】
論理設計された第１論理回路のデータと、第１スキャンフリップフロップ及び該第１スキャンフリップフロップのスキャンアウト部にラッチ回路が付加されている第２スキャンフリップフロップのデータと、プログラムとが格納される記憶装置と、
該プログラムに従って動作するコンピュータとを有し、該コンピュータは該データを読み出し該プログラムに従って、
（ａ）該第１論理回路に対し、該第１論理回路に含まれる複数のフリップフロップの各々を、該第２スキャンフリップフロップで置換し、さらに該複数の第２スキャンフリップフロップを縦続接続して第１スキャン回路を形成することにより、第２論理回路を生成し、
（ｂ）該第２論理回路をレイアウト設計し、
（ｃ）該レイアウト設計後の第２論理回路に対し、該第１スキャン回路の各第２スキャンフリップフロップを第１スキャンフリップフロップで置換して得られる第３論理回路の静的タイミング解析を行い、その結果に基づき該第３論理回路に対しタイミング調整を行い、
（ｄ）該タイミング調整の結果を出力する、
ことを特徴とする論理設計された集積回路のレイアウト設計及びタイミング調整装置。
【請求項５】
上記コンピュータは上記プログラムに従って、上記ステップ（ｃ）において、
（ｃ１）上記第２論理回路のネットリストと上記レイアウト設計により得られたレイアウトとに基づいて、上記第１スキャン回路の各第２スキャンフリップフロップを第１スキャンフリップフロップで置換して得られる第２スキャン回路の、スキャンモード時のセル間の第１信号伝播遅延時間を求め、
（ｃ２）該第１信号伝播遅延時間及び該第１スキャンフリップフロップのセル遅延時間に基づいて、該第２スキャン回路のスキャンモード時の静的タイミング解析を行い、
（ｃ３）該静的タイミング解析により第１スキャンフリップフロップでタイミングエラーが発生した場合には、該エラーが発生した第１スキャンフリップフロップの前段の第１スキャンフリップフロップを第２スキャンフリップフロップで置換して該第２スキャン回路を第３スキャン回路に変更することによりタイミング調整する、
ことを特徴とする請求項４記載の装置。
【請求項６】
上記コンピュータは上記プログラムに従って、上記ステップ（ｃ）においてさらに、
（ｃ４）上記第３論理回路に対し上記第２スキャン回路を上記第３スキャン回路で置換した第４論理回路のネットリストと上記レイアウト設計により得られたレイアウトとに基づいて、該第２スキャン回路のセル及び該第２スキャン回路に接続されたセルを含むセル群に関するセル間の第２信号伝播遅延時間を求め、該第２信号伝播遅延時間及び該セル群の各セルのセル遅延時間に基づいて、該第３スキャン回路が通常動作モードである場合及びスキャンモードである場合の静的タイミング解析を行い、
（ｃ５）該第４論理回路の静的タイミング解析により該第３スキャン回路でタイミングエラーが発生した場合には、エラーが発生した第１又は第２スキャンフリップフロップとその前段の第１又は第２スキャンフリップフロップとの間にバッファセルを挿入することによりタイミング調整を行う、
ことを特徴とする請求項５記載の装置。
【請求項７】
コンピュータに対し、
（ａ）論理設計された第１論理回路のデータと、第１スキャンフリップフロップ及び該第１スキャンフリップフロップのスキャンアウト部にラッチ回路が付加されている第２スキャンフリップフロップのデータと、プログラムとが格納された記憶装置から、これらのデータを読み出させ、
（ｂ）該第１論理回路に対し、該第１論理回路に含まれる複数のフリップフロップの各々を、該第２スキャンフリップフロップで置換し、さらに該複数の第２スキャンフリップフロップを縦続接続して第１スキャン回路を形成することにより、第２論理回路を生成させ、
（ｃ）該第２論理回路をレイアウト設計させ、
（ｄ）該レイアウト設計後の第２論理回路に対し該第１スキャン回路の各第２スキャンフリップフロップを第１スキャンフリップフロップで置換して得られる第３論理回路の静的タイミング解析を行わせ、その結果に基づき該第３論理回路に対しタイミング調整を行わせ、
（ｅ）該タイミング調整の結果を出力させる、
ことを特徴とするプログラム。
【請求項８】
上記プログラムは上記コンピュータに対し、上記ステップ（ｄ）において、
（ｄ１）上記第２論理回路のネットリストと上記レイアウト設計により得られたレイアウトとに基づいて、上記第１スキャン回路の各第２スキャンフリップフロップを第１スキャンフリップフロップで置換して得られる第２スキャン回路の、スキャンモード時のセル間の第１信号伝播遅延時間を求めさせ、
（ｄ２）該第１信号伝播遅延時間及び該第１スキャンフリップフロップのセル遅延時間に基づいて、該第２スキャン回路のスキャンモード時の静的タイミング解析を行わせ、
（ｄ３）該静的タイミング解析により第１スキャンフリップフロップでタイミングエラーが発生した場合には、該エラーが発生した第１スキャンフリップフロップの前段の第１スキャンフリップフロップを第２スキャンフリップフロップで置換して該第２スキャン回路を第３スキャン回路に変更することによりタイミング調整させる、
ことを特徴とする請求項７記載のプログラム。
【請求項９】
上記プログラムは上記コンピュータに対し、上記ステップ（ｄ）においてさらに、
（ｄ４）上記第３論理回路に対し上記第２スキャン回路を上記第３スキャン回路で置換した第４論理回路のネットリストと上記レイアウト設計により得られたレイアウトとに基づいて、該第２スキャン回路のセル及び該第２スキャン回路に接続されたセルを含むセル群に関するセル間の第２信号伝播遅延時間を求めさせ、該第２信号伝播遅延時間及び該セル群の各セルのセル遅延時間に基づいて、該第３スキャン回路が通常動作モードである場合及びスキャンモードである場合の静的タイミング解析を行わせ、
（ｄ５）該第４論理回路の静的タイミング解析により該第３スキャン回路でタイミングエラーが発生した場合には、エラーが発生した第１又は第２スキャンフリップフロップとその前段の第１又は第２スキャンフリップフロップとの間にバッファセルを挿入することによりタイミング調整を行わせる、
ことを特徴とする請求項８記載のプログラム。
【請求項１０】
請求項７乃至９のいずれか１つに記載のプログラムが記録されていることを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理設計された集積回路、特にコンピュータで自動レイアウトすることが可能なゲートアレイ（ＳＯＧを含む）を用いたＡＳＩＣに対するレイアウト設計及びタイミング調整の方法及び装置並びにこの方法を実行するためのプログラム及びこのプログラムが記録されたコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
半導体集積回路の高集積化及び高機能化に伴い、回路規模が増大して故障検出用テストパターン数が膨大になる。より少ないテストパターン数で高い故障検出率を得るために、半導体集積回路ではスキャンパス方式が採用されている。
【０００３】
この方式では、図３に示すような集積回路１０を論理設計した場合に、組み合わせ回路１１に接続されたフリップフロップ１２〜１５を図５に示すように、通常動作モードとスキャンモードとを有するスキャンフリップフロップ１２Ａ〜１５Ａで置換してこれらを縦続接続することにより、スキャン回路を形成する。スキャンフリップフロップ１２Ａ〜１５Ａは互いに同一構成であり、例えば図６に示すように構成されている。図５では回路構成を簡単化して示しているが、実際にはスキャンフリップフロップが集積回路１０Ａ内に多数散在している。このため、スキャン回路がシフトレジスタとして機能するスキャンモードである場合、タイミングエラーが生じやすい。
【０００４】
静的タイミング解析では、集積回路１０Ａをレイアウト設計し、配線の容量及び抵抗を計算し、セル及びセル間の信号伝播遅延時間を求め、タイミングエラーが発生するかどうかを計算により判定する。あるスキャンフリップフロップでタイミングエラーが発生すると判定された場合には、エラーを解消するためにその前段のスキャンフリップフロップのセルが例えば図６に示すようなＬＵＬ（ロックアップラッチ）付スキャンフリップフロップ１３Ｂのセルで置換される。
【０００５】
ところが、集積回路１０Ａが最適レイアウト設計されていることと、通常のスキャンフリップフロップよりもＬＵＬ付スキャンフリップフロップの方がセル面積が広いことから、セル置換により隣のセルとオーバラップする可能性が大きい。このため、セルの移動及びクロック配線の引き直しをする必要が発生し、これにより新たなタイミングエラーを引き起こす可能性がある。タイミングエラーが発生するとレイアウト設計をやり直す必要があり、その度にタイミング検証及びタイミング調整を行わなければならず、開発期間が増大する原因となる。
【０００６】
この問題は、スキャン回路を最初からＬＵＬ付スキャンフリップフロップのみで構成することにより解決される。
【０００７】
しかし、この場合、回路面積が増大するのみでなく、消費電力が増大するという新たな問題が生ずる。
【０００８】
【発明が解決しようとする課題】
特にＡＳＩＣでは短納期化が要求されており、集積回路の開発期間短縮化を図る必要がある。また、携帯電子機器に用いられる集積回路は、電池長寿命化のために消費電力の低減化を図る必要がある。
【０００９】
本発明の目的は、このような事情に鑑み、トレードオフの関係にある開発期間の短縮化と低消費電力化の両方を達成することが可能な、論理設計された集積回路に対するレイアウト設計及びタイミング調整の方法及び装置並びにこの方法を実行するためのプログラム及びこのプログラムが記録されたコンピュータ読み取り可能な記録媒体を提供することにある。
【００１０】
【課題を解決するための手段及びその作用効果】
本発明による論理設計された集積回路のレイアウト設計及びタイミング調整方法の一態様では、
（ａ）論理設計された第１論理回路に対し、該第１論理回路に含まれる複数のフリップフロップの各々を、第１スキャンフリップフロップのスキャンアウト部にさらにラッチ回路が付加された第２スキャンフリップフロップで置換し、さらに該複数の第２スキャンフリップフロップを縦続接続して第１スキャン回路を形成することにより、第２論理回路を生成し、
（ｂ）該第２論理回路をレイアウト設計し、
（ｃ）第２論理回路に対し、該第１スキャン回路の各第２スキャンフリップフロップを第１スキャンフリップフロップで置換して得られる第３論理回路の静的タイミング解析を行い、その結果に基づきタイミング調整する。
【００１１】
第１スキャンフリップフロップよりも第２スキャンフリップフロップの方がセル面積が広いので、この構成によれば、タイミング調整によりセルの移動やクロック配線の引き直しをする必要がなく、これにより、タイミング調整とレイアウト変更の繰り返し回数が低減され、集積回路の開発期間を短縮することができる。
【００１２】
また、タイミング調整のために必要な部分のみ第２スキャンフリップフロップを用いているので、集積回路の消費電力を低減することができる。
【００１３】
したがって、従来ではトレードオフの関係にあった開発期間の短縮化と低消費電力化の両方を達成することができる。
【００１４】
本発明の他の目的、構成及び効果は以下の説明から明らかになる。
【００１５】
【発明の実施の形態】
以下、図面を参照して本発明の一実施形態を説明する。
【００１６】
図１は、本発明の一実施形態の、論理設計された集積回路に対するレイアウト設計及びタイミング調整装置のハードウェア構成を示す概略ブロック図である。
【００１７】
この集積回路は、コンピュータ１による自動レイアウトが可能なものであり、例えばゲートアレイを用いたＡＳＩＣである。
【００１８】
この装置のハードウエア構成は一般的なコンピュータシステムであり、コンピュータ１に、入力データ及び処理プログラムが格納された記憶装置２と、処理結果であるレイアウトが格納される記憶装置３と、操作者がコンピュータ１に対し指示を与えるための入力装置４と、指示内容や処理進行状況などを表示する表示装置５とが接続されている。
【００１９】
この入力データは、例えば図３に示すような論理設計された集積回路１０のデータ（ネットリストを含む、以下同様）と、セルデータ（セル遅延時間を含む、以下同様）と、レイアウトに基づきゲート間信号伝播遅延時間を計算するのに用いられる配線抵抗率及び配線間容量計算式中の係数値（遅延パラメータ値）を含む。このセルデータは、スキャン回路を構成するセルとこれに接続されるセルのデータであり、図６に示すようなスキャンフリップフロップ１３Ａ及び図７に示すようなＬＵＬ付スキャンフリップフロップ１３Ｂのセルと、タイミング調整用バッファゲートのセルと、スキャン回路に接続された組み合わせ回路１１内のセルのデータを含む。記憶装置２及び３にそれぞれ格納された論理集積回路及びレイアウトのデータは、後述のように更新される。
【００２０】
ここで、図６に示すスキャンフリップフロップ１３Ａについて概説する。
【００２１】
スキャンフリップフロップ１３Ａは、マスタースレーブ型であって、公知の構成であり、スキャンモードＳＭに応じデータ入力端Ｄとスキャンイン端ＳＩの信号の一方を選択して出力するセレクタ２０と、この出力が供給されるマスターラッチ回路２１と、回路２１の出力が供給されるスレーブラッチ回路２２とを備えている。図６中、２３〜２８はＰＭＯＳトランジスタとＮＭＯＳトランジスタとが並列接続された転送ゲートであり、３０〜４０はＣＭＯＳインバータである。
【００２２】
上記構成において、スキャンモードＳＭが高レベルのときには転送ゲート２３及び２４がそれぞれオン及びオフになってスキャンイン端ＳＩの信号が選択され、スキャンモードＳＭが低レベルのときには転送ゲート２３及び２４がそれぞれオフ及びオンになってデータ入力端Ｄの信号が選択される。
【００２３】
クロック入力端Ｃが低レベルのときには、転送ゲート２５〜２８がそれぞれオン、オフ、オフ、及びオンになり、スレーブラッチ回路２２がデータを保持した状態でセレクタ２０の出力がマスターラッチ回路２１に取り込まれる。次にクロック入力端Ｃが高レベルに遷移すると、転送ゲート２５〜２８がそれぞれ前記と逆の状態になって、マスターラッチ回路２１が入力データをラッチすると共にスレーブラッチ回路２２がマスターラッチ回路２１の出力を取り込む。データ出力端Ｑ及びスキャンアウト端ＳＯの論値値は、インバータ３２のそれと同一であり、データ出力端＊Ｑの論理値はデータ出力端Ｑのそれを反転したものである。
【００２４】
図７のＬＵＬ付スキャンフリップフロップ１３Ｂは、図６のインバータ４０をＬＵＬラッチ回路４１で置換した構成であり、ＬＵＬラッチ回路４１は、転送ゲート４２及び４３と、インバータ４４及び４５とを備えている。転送ゲート４２及び４３のオン／オフはそれぞれスレーブラッチ回路２２の転送ゲート２７及び２８のそれと逆であり、スレーブラッチ回路２２がデータを保持している時にはＬＵＬラッチ回路４１はスレーブラッチ回路２２の出力を取り込み、スレーブラッチ回路２２が入力を取り込んでいる時にはＬＵＬラッチ回路４１はデータを保持する。これにより、スキャンアウト端ＳＯの信号はデータ出力端Ｑの信号よりクロックの半周期だけ遅れる。
【００２５】
図２は、上記プログラムによる処理の内容を示す概略フローチャートである。
【００２６】
コンピュータ１は、入力装置４からの指示に基づき記憶装置２に格納されたプログラムをロードしてこれを実行することにより、以下の処理を行う。
【００２７】
（Ｓ１）論理設計された回路のデータを記憶装置２から読み込む。この回路は、例えば図３に示すような集積回路１０であり、組み合わせ回路１１と、フリップフロップ１２〜１５からなる順序回路とを有する。図３では簡単化のために両回路を分離して示しているが、実際には多数のフリップフロップが集積回路１０内に散在している。
【００２８】
（Ｓ２）フリップフロップ１２〜１５をそれぞれ図４に示すようにＬＵＬ付スキャンフリップフロップ１２Ｂ〜１５Ｂで置換し、さらに、ＬＵＬ付スキャンフリップフロップ１２Ｂ〜１５Ｂをそれぞれのスキャンイン端ＳＩ及びスキャンアウト端ＳＯに関し縦続接続することにより、スキャン回路を形成する。このスキャン回路では、初段のＬＵＬ付スキャンフリップフロップ１２Ｂのスキャンイン端ＳＩが集積回路１０Ｂのスキャンイン入力端子ＳＩＮに接続され、最終段のＬＵＬ付スキャンフリップフロップ１５Ｂのスキャンアウト端ＳＯがバッファゲート１６を介して集積回路１０Ｂのスキャンアウト出力端子ＳＯＵＴに接続されている。また、ＬＵＬ付スキャンフリップフロップ１２Ｂ〜１５ＢのスキャンモードＳＭが集積回路１０Ｂのスキャンモード入力端子＊ＳＭに接続されている。ＬＵＬ付スキャンフリップフロップ１２Ｂ〜１５Ｂは互いに同一構成である。
【００２９】
記憶装置２に格納されている論理回路のデータを、この論理回路に対し該スキャン回路が形成されたものに変更することにより、論理回路のデータで更新する。
【００３０】
（Ｓ３）図４の集積回路１０Ｂをレイアウト設計し、その結果を記憶装置３に格納する。
【００３１】
これにより、通常のスキャンフリップフロップよりもサイズが大きいＬＵＬ付スキャンフリップフロップ１２Ｂ〜１５Ｂの配置領域が確保されるので、以下に述べるようにＬＵＬ付スキャンフリップフロップ１２Ｂ〜１５Ｂをそれぞれスキャンフリップフロップ１２Ａ〜１５Ａで置換し、タイミング調整の必要に応じその一部をＬＵＬ付スキャンフリップフロップ１２Ｂで置換しても、後述のステップＳ１３においてセルの移動やクロック配線の引き直しをする必要がなくなる。
【００３２】
（Ｓ４）ＬＵＬ付スキャンフリップフロップ１２Ｂ〜１５Ｂをそれぞれ図５に示すようにスキャンフリップフロップ１２Ａ〜１５Ａで置換したスキャン回路について、スキャンモードＳＭが低レベルである時（スキャンモード時）のセル及びセル間信号伝播遅延時間を含むスタンダードディレイフォーマット（ＳＤＦ）ファイルを作成する。この置換は、記憶装置２に格納されている論理回路に反映される。この場合、セル名が変わるが、セルの入出力ピンの数及び名称は変わらない。セル遅延時間は、記憶装置２に格納さているスキャンフリップフロップのセルデータに含まれているものを読み出すことにより得られる。ゲート間遅延時間は、記憶装置２に格納されている論理回路のネットリストと、そのネットに対応した、ステップＳ３のレイアウト上のネットの形状及び寸法と、記憶装置２に格納されている上記遅延パラメータ値とから求められる。レイアウトをセル置換後のものに更新しないのは、更新の影響が小さく、また、後述のステップＳ１２でレイアウト変更を伴うタイミング調整を行うからである。
【００３３】
（Ｓ５）図５のスキャン回路のスキャンモード時における静的タイミング解析を、スタティックタイミングアナライザ（ＳＴＡルーチン）で行う。
【００３４】
（Ｓ６）この静的タイミング解析によりタイミングエラーが発生した場合にはステップＳ７へ進み、そうでない場合にはステップＳ９へ進む。タイミングエラーは通常、発生する。
【００３５】
図８は、図５のスキャンフリップフロップ１４Ａでタイミングエラーが生ずる場合を示すタイミングチャートであり、スキャンフリップフロップ１３Ａのクロック入力端Ｃ、スキャンイン端ＳＩ及びスキャンアウト端ＳＯでのクロック信号ＣＬＫ１、スキャンデータ信号Ｓ１及びＳ２と、スキャンフリップフロップ１４Ａのクロック入力端Ｃ及びスキャンイン端ＳＩでのクロック信号ＣＬＫ２及びスキャンデータ信号Ｓ２ａを示す。
【００３６】
クロック信号ＣＬＫ１の立ち上がりでスキャンデータ信号Ｓ１がＳ２として保持される。クロック信号ＣＬＫ２はクロック信号ＣＬＫ１よりΔｔだけ遅延している。スキャンデータ信号Ｓ２ａもＳ２に対し遅延している。実際の回路では、プロセスのばらつきや温度変動などによりスキャンデータ信号Ｓ２ａの遅延量がばらつくので（Δｔもばらつくが、簡単化のために図８ではこれが一定であるとしている）、タイミングエラーが発生するかどうかの判断で考慮される。
【００３７】
例えばスキャンフリップフロップ１３Ａがクロック信号ＣＬＫ１の立ち上がりで２値Ｄ１を保持するとき、スキャンフリップフロップ１４Ａはクロック信号ＣＬＫ２の立ち上がりでスキャンデータ信号Ｓ２ａの２値Ｄ０を保持する必要がある。しかし、図８の場合にはこれを保持できない場合があるので、スキャンフリップフロップ１４Ａにおいてタイミングエラー（ホールドエラー）が発生したと判定される。
【００３８】
（Ｓ７）タイミングエラーが発生したスキャンフリップフロップ１４Ａの前段のスキャンフリップフロップ１３Ａを、ＬＵＬ付スキャンフリップフロップ１３Ｂで置換することにより、タイミング調整する。この置換は、ステップＳ４と同様に、記憶装置２に格納されている論理回路に対してのみ反映（回路変更）され、レイアウトには反映されない。
【００３９】
図９は、図５のスキャンフリップフロップ１３ＡをＬＵＬ付スキャンフリップフロップ１３Ｂで置換した集積回路１０Ｃを示す。
【００４０】
図１０は、この置換により図９のスキャンフリップフロップ１４Ａでのタイミングエラーが解消した場合を示すタイミングチャートであり、ＬＵＬ付スキャンフリップフロップ１３Ｂのクロック入力端Ｃ、スキャンイン端ＳＩ及びスキャンアウト端ＳＯでのクロック信号ＣＬＫ１、スキャンデータ信号Ｓ１及びＳ２ｂと、スキャンフリップフロップ１４Ａのクロック入力端Ｃ及びスキャンイン端ＳＩでのクロック信号ＣＬＫ２及びスキャンデータ信号Ｓ２ｃを示す。
【００４１】
ＬＵＬ付スキャンフリップフロップ１３Ｂは、上述のようにクロック信号ＣＬＫ１の立ち下がりでデータをＬＵＬラッチ回路４１に保持するので、スキャンデータ信号Ｓ２ｂは図８の信号Ｓ２よりも半周期遅れ、これにより、スキャンフリップフロップ１４Ａはクロック信号ＣＬＫ２の立ち上がりでスキャンデータ信号Ｓ２ｃを保持することができ、タイミングエラーが解消する。
【００４２】
（Ｓ８）ステップＳ７で変更された後の順序回路（図９のスキャンフリップフロップ１２Ａ、１３Ｂ、１４Ａ及び１５Ａ）及びこれに接続されたセルに関し、ステップＳ４と同様にしてＳＤＦファイルを作成する。
【００４３】
（Ｓ９）この順序回路に関し、スキャンモード入力端子＊ＳＭが高レベル（通常動作モード）である場合について静的タイミング解析を行う。
【００４４】
（Ｓ１０）ステップＳ７で回路が変更されているので、この順序回路に関し、スキャンモードである場合について新たなタイミングエラーが発生する可能性がある。そこで、このスキャン回路に関し、スキャンモード時の静的タイミング解析を行う。
【００４５】
（Ｓ１１）ステップＳ９及びＳ１０でタイミングエラーがなければ処理を終了し、あればステップＳ１２へ進む。
【００４６】
（Ｓ１２）ステップＳ９又はＳ１０でタイミングエラーが生じた場合には、バッファゲートを付加して信号を遅延させることによりタイミング調整する。図１１は、ステップＳ９及びＳ１０でのタイミングエラーに対しそれぞれバッファゲート１７及び１８を付加した場合を示す。バッファゲート１７及び１８はいずれも偶数個のインバータを縦続接続したものである。既にステップＳ７でＬＵＬ付スキャンフリップフロップ１３Ｂを用いてタイミング調整が行われているので、ここでのスキャンモード時のタイミング調整は微調整であり、タイミング調整が必要な場合はバッファゲートの付加で充分である。
【００４７】
（Ｓ１３）この回路変更に対応して、記憶装置２に格納されているバッファセルを用い、レイアウトを変更する。ステップＳ８〜Ｓ１３のループの初回では、ステップＳ４及びステップＳ７での回路変更に対しても、記憶装置２に格納されているスキャンフリップフロップ及びＬＵＬ付スキャンフリップフロップのセルを用いてレイアウトを変更する。次に、ステップＳ８へ戻る。
【００４８】
本実施形態によれば、図４に示すようにＬＵＬ付スキャンフリップフロップでスキャン回路を形成してレイアウト設計した後に該ＬＵＬ付スキャンフリップフロップを通常のスキャンフリップフロップで置換して図５に示す回路に変換し、この回路に対し静的タイミング解析を行い、エラーが生じた場合に、対応するスキャンフリップフロップをＬＵＬ付スキャンフリップフロップで置換しているので、この置換によりセルの移動やクロック配線の引き直しをする必要がなく、これにより、ステップＳ８〜Ｓ１３での繰り返し回数が低減され、集積回路の開発期間を短縮することができる。
【００４９】
また、必要な部分のみＬＵＬ付スキャンフリップフロップを用いているので、集積回路の消費電力を低減することができる。
【００５０】
さらに、ステップＳ４及びＳ７では回路変更をレイアウトに反映させず、ステップＳ１３において反映させるので、回路変更毎にレイアウトを変更する場合よりも処理時間を短縮することができる。
【００５１】
なお、本発明には外にも種々の変形例が含まれる。
【００５２】
例えば、図２のステップＳ４及びＳ７において回路変更をレイアウトに反映させる構成であってもよい。
【００５３】
また、図２のステップ７において、
（ＬＵＬ付スキャンフリップフロップのセル面積）−（通常のスキャンフリップフロップのセル面積）≧（タイミングエラー解消可能な１以上のバッファセルの合計面積）であれば、ＬＵＬ付スキャンフリップフロップの替わりにバッファセルを付加してタイミング調整を行ってもよい。
【００５４】
さらに、本実施形態では集積回路がゲートアレイを用いて形成される場合を説明したが、本発明は、コンピュータによる自動レイアウトが可能なスタンダードセル方式の集積回路やフルカスタム集積回路に対しても適用可能である。
【図面の簡単な説明】
【図１】本発明の一実施形態の、論理設計された集積回路に対するレイアウト設計及びタイミング調整装置のハードウェア構成を示す概略ブロック図である。
【図２】プログラムによる処理手順を示す概略フローチャートである。
【図３】図２のステップＳ１の説明図である。
【図４】図２のステップＳ２の説明図である。
【図５】図２のステップＳ４の説明図である。
【図６】スキャンフリップフロップの回路図である。
【図７】ロックアップラッチ付スキャンフリップフロップの回路図である。
【図８】図５のスキャンフリップフロップ１４Ａでタイミングエラーが生ずる場合を示すタイミングチャートである。
【図９】図２のステップＳ７の説明図である。
【図１０】図９のスキャン回路でタイミングエラーが解消した場合を示すタイミングチャートである。
【図１１】図２のステップＳ１２の説明図である。
【符号の説明】
１  コンピュータ
２、３  記憶装置
４  入力装置
５  表示装置
１０、１０Ａ〜１０Ｄ  集積回路
１１  組み合わせ回路
１２〜１５  フリップフロップ
１２Ａ、１３Ａ、１４Ａ、１５Ａ  スキャンフリップフロップ
１２Ｂ、１３Ｂ、１４Ｂ、１５Ｂ  ＬＵＬ付スキャンフリップフロップ
１６〜１８  バッファゲート
２０  セレクタ
２１  マスターラッチ回路
２２  スレーブラッチ回路
２３〜２８、４２、４３  転送ゲート
３０〜３９、４４、４５  インバータ
Ｃ  クロック入力端
Ｄ  データ入力端
ＳＩ  スキャンイン端
ＳＯ  スキャンアウト端
＊ＳＭ  スキャンモード入力端子
ＳＩＮ  スキャンイン入力端子
ＳＯＵＴ  スキャンアウト出力端子
ＣＬＫ  クロック入力端子
【図１】
0004512934.tif 000002
【図２】
0004512934.tif 000003
【図３】
0004512934.tif 000004
【図４】
0004512934.tif 000005
【図５】
0004512934.tif 000006
【図６】
0004512934.tif 000007
【図７】
0004512934.tif 000008
【図８】
0004512934.tif 000009
【図９】
0004512934.tif 000010
【図１０】
0004512934.tif 000011
【図１１】
0004512934.tif 000012