(57)【要約】      （修正有）【課題】ラッチを有する集積回路を設計する方法を提供すること。【解決手段】論理素子およびラッチの論理設計を準備し、次いで、この論理設計に基づいてこれらの論理素子およびラッチを集積回路内に配置することによって物理設計を作成する。物理設計を作成するプロセス中に、同じクロック・サイクル中に遷移しないラッチ、同じ論理機能に関係しないラッチ、同じクロック・ドメイン内にあるラッチ、および互いに所与の物理的な近接範囲内にあるラッチを組み合わせることによって冗長なラッチを削除する。冗長なラッチを削除する上記プロセスは、少なくとも２つのラッチを単一のラッチに置き換えることを含む。冗長なラッチを削除するプロセスで物理設計が修正され、この修正された物理設計のテストを行って、この修正された物理設計が予想どおり動作するかどうかを判定する。【選択図】図２
2006023859.tif 000002
【特許請求の範囲】
【請求項１】
ラッチを有する集積回路を設計する方法であって、
論理素子およびラッチの論理設計を準備することと、
前記論理設計に基づいて前記集積回路内に前記論理素子および前記ラッチを配置することによって物理設計を作成することとを含み、
前記物理設計の前記作成が、同じクロック・サイクル中に遷移せず、同じ論理機能に関係せず、同じクロック・ドメイン内にあり、互いに所与の物理的な近接範囲内にあるラッチを含む冗長なラッチを削除することをさらに含む、方法。
【請求項２】
初期物理設計のシミュレーションを実行し、各クロック・サイクル中に遷移するラッチを記録することによって、ラッチが同じクロック・サイクル中に遷移するかどうかを判定することをさらに含む、請求項１に記載の方法。
【請求項３】
ラッチが同じクロック・サイクル中に遷移するかどうかを判定する前記プロセスが、同じクロック・サイクル中に遷移しないラッチの遷移間に十分なタイミング・スラックが存在するかどうかを判定することをさらに含む、請求項２に記載の方法。
【請求項４】
冗長なラッチを削除する前記プロセスが、少なくとも２つの冗長なラッチを単一のラッチに置き換えることを含む、請求項１に記載の方法。
【請求項５】
冗長なラッチを削除する前記プロセスで、修正された物理設計を作成し、前記プロセスが、前記修正された物理設計のテストを行って、前記修正された物理設計が予想どおり動作するかどうかを判定することをさらに含む、請求項１に記載の方法。
【請求項６】
どのラッチが前記論理設計における各論理機能に関連するかを記録することによって、前記ラッチが同じ論理機能に関係するかどうかを判定することをさらに含む、請求項１に記載の方法。
【請求項７】
どのラッチが前記論理設計における各クロック・ドメインに関連するかを記録することによって、前記ラッチが同じクロック・ドメイン内にあるかどうかを判定することをさらに含む、請求項１に記載の方法。
【請求項８】
ラッチを有する集積回路を設計する方法であって、
論理素子およびラッチの論理設計を準備することと、
前記論理設計に基づいて前記集積回路内に前記論理素子および前記ラッチを配置することによって初期物理設計を作成することと、
初期物理設計のシミュレーションを実行し、各ラッチが遷移するクロック・サイクルを記録することによって、前記ラッチの遷移時間のデータベースを準備することと、
同じクロック・サイクル中に遷移しない冗長なラッチを削除するように前記初期物理設計を変更することとを含む、方法。
【請求項９】
前記初期物理設計の前記変更で、ラッチが同じ論理機能に関係するかどうかと、ラッチが同じクロック・ドメイン内にあるかどうかと、ラッチが互いに所与の物理的な近接範囲内にあるかどうかをさらに検討する、請求項８に記載の方法。
【請求項１０】
前記初期物理設計の前記変更で、同じクロック・サイクル中に遷移しないラッチの遷移間に十分なタイミング・スラックが存在するかどうかをさらに検討する、請求項８に記載の方法。
【請求項１１】
冗長なラッチを削除する前記初期物理設計の前記変更が、少なくとも２つの冗長なラッチを単一のラッチに置き換えることを含む、請求項８に記載の方法。
【請求項１２】
冗長なラッチを削除する前記初期物理設計の前記変更で、修正された物理設計を作成し、前記プロセスが、前記修正された物理設計のテストを行って、前記修正された物理設計が予想どおり動作するかどうかを判定することをさらに含む、請求項８に記載の方法。
【請求項１３】
どのラッチが前記論理設計における各論理機能に関連するかを前記データベース内に記録することによって、前記ラッチが同じ論理機能に関係するかどうかを判定することをさらに含む、請求項８に記載の方法。
【請求項１４】
前記ラッチに連結された選択論理を追加することをさらに含み、前記選択論理が、非アクティブ状態の出力を、別の出力がアクティブ状態のときに、既知の論理状態にロックする、請求項８に記載の方法。
【請求項１５】
ラッチを有する集積回路を設計する方法であって、
論理素子およびラッチの論理設計を準備することと、
前記論理設計に基づいて前記集積回路内に前記論理素子および前記ラッチを配置することによって初期物理設計を作成することと、
初期物理設計のシミュレーションを実行し、各ラッチが遷移するクロック・サイクルを記録することによって、前記ラッチの遷移時間のデータベースを準備することと、
同じクロック・サイクル中に遷移せず、同じ論理機能に関係せず、同じクロック・ドメイン内にあり、互いに所与の物理的な近接範囲内にある冗長なラッチを削除するように前記初期物理設計を変更することとを含む、方法。
【請求項１６】
前記初期物理設計の前記変更で、同じクロック・サイクル中に遷移しないラッチの遷移間に十分なタイミング・スラックが存在するかどうかをさらに検討する、請求項１５に記載の方法。
【請求項１７】
冗長なラッチを削除する前記初期物理設計の前記変更が、少なくとも２つの冗長なラッチを単一のラッチに置き換えることを含む、請求項１５に記載の方法。
【請求項１８】
冗長なラッチを削除する前記初期物理設計の前記変更で、修正された物理設計を作成し、前記プロセスが、前記修正された物理設計のテストを行って、前記修正された物理設計が予想どおり動作するかどうかを判定することをさらに含む、請求項１５に記載の方法。
【請求項１９】
どのラッチが前記論理設計における各論理機能に関連するかを前記データベース内に記録することによって、前記ラッチが同じ論理機能に関係するかどうかを判定することをさらに含む、請求項１５に記載の方法。
【請求項２０】
どのラッチが前記論理設計における各クロック・ドメインに関連するかを前記データベース中に記録することによって、前記ラッチが同じクロック・ドメイン内にあるかどうかを判定することをさらに含む、請求項１５に記載の方法。
【請求項２１】
ラッチを有する集積回路を設計する方法であって、
論理素子およびラッチの論理設計を準備することと、
前記論理設計に基づいて前記集積回路内に前記論理素子および前記ラッチを配置することによって初期物理設計を作成することと、
初期物理設計のシミュレーションを実行し、各ラッチが遷移するクロック・サイクルを記録することによって、前記ラッチの遷移時間のデータベースを準備することと、
どのラッチが前記論理設計における各クロック・ドメインに関連するかを前記データベース内に記録することによって、前記ラッチが同じクロック・ドメイン内にあるかどうかを判定することと、
同じクロック・サイクル中に遷移せず、同じ論理機能に関係せず、同じクロック・ドメイン内にあり、互いに所与の物理的な近接範囲内にある冗長なラッチを削除するように前記初期物理設計を変更することとを含み、
冗長なラッチを削除するように前記初期物理設計を変更する前記プロセスで、修正された物理設計を作成し、前記プロセスが、前記修正された物理設計のテストを行って、前記修正された物理設計が予想どおり動作するかどうかを判定することをさらに含む、方法。
【請求項２２】
前記初期物理設計の前記変更で、同じクロック・サイクル中に遷移しないラッチの遷移間に十分なタイミング・スラックが存在するかどうかをさらに検討する、請求項２１に記載の方法。
【請求項２３】
冗長なラッチを削除する前記初期物理設計の前記変更が、少なくとも２つの冗長なラッチを単一のラッチに置き換えることを含む、請求項２１に記載の方法。
【請求項２４】
ラッチを有する集積回路を設計する方法であって、
論理素子およびラッチの論理設計を準備することと、
前記論理設計に基づいて前記集積回路内に前記論理素子および前記ラッチを配置することによって初期物理設計を作成することと、
前記初期物理設計から冗長なラッチを削除し、修正された物理設計を作成することと、
前記修正された物理設計において前記ラッチに連結された選択論理を追加することとを含み、前記選択論理が、前記初期物理設計におけるラッチの数に等しい数の出力を含み、前記選択論理が、非アクティブ状態の出力を、それに対応する出力がアクティブ状態のときに、既知の論理状態にロックする、方法。
【請求項２５】
前記選択論理の前記追加が、前記ラッチに連結されたインバータおよび論理ＡＮＤ素子を追加して前記出力を相互に排他的にすることを含む、請求項２４に記載の方法。
【請求項２６】
前記選択論理の前記追加により、１つの制御信号が一連の出力を同様に制御することができる、請求項２４に記載の方法。
【請求項２７】
冗長なラッチが、同じクロック・サイクル中に遷移せず、同じ論理機能に関係せず、同じクロック・ドメイン内にあり、互いに所与の物理的な近接範囲内にあるラッチを含む、請求項２４に記載の方法。
【請求項２８】
初期物理設計のシミュレーションを実行し、各クロック・サイクル中に遷移するラッチを記録することによって、ラッチが同じクロック・サイクル中に遷移するかどうかを判定することをさらに含む、請求項２７に記載の方法。
【請求項２９】
ラッチが同じクロック・サイクル中に遷移するかどうかを判定する前記プロセスが、同じクロック・サイクル中に遷移しないラッチの遷移間に十分なタイミング・スラックが存在するかどうかを判定することをさらに含む、請求項２８に記載の方法。
【請求項３０】
冗長なラッチを削除する前記プロセスが、少なくとも２つの冗長なラッチを単一のラッチに置き換えることを含む、請求項２４に記載の方法。
【請求項３１】
前記修正された物理設計のテストを行って、前記修正された物理設計が予想どおり動作するかどうかを判定することをさらに含む、請求項２４に記載の方法。
【請求項３２】
どのラッチが前記論理設計における各論理機能に関連するかを記録することによって、前記ラッチが同じ論理機能に関係するかどうかを判定することをさらに含む、請求項２７に記載の方法。
【請求項３３】
どのラッチが前記論理設計における各クロック・ドメインに関連するかを記録することによって、前記ラッチが同じクロック・ドメイン内にあるかどうかを判定することをさらに含む、請求項２７に記載の方法。
【請求項３４】
ラッチを有する集積回路を設計する方法を実施するマシンによって実行可能な命令のプログラムを確実に実施する、機械可読プログラム・ストレージ装置であって、前記方法が、
論理素子およびラッチの論理設計を準備することと、
前記論理設計に基づいて前記集積回路内に前記論理素子および前記ラッチを配置することによって初期物理設計を作成することと、
初期物理設計のシミュレーションを実行し、各ラッチが遷移するクロック・サイクルを記録することによって、前記ラッチの遷移時間のデータベースを準備することと、
同じクロック・サイクル中に遷移しない冗長なラッチを削除するように前記初期物理設計を変更することとを含む、プログラム・ストレージ装置。
【請求項３５】
前記初期物理設計の前記変更で、ラッチが同じ論理機能に関係するかどうかと、ラッチが同じクロック・ドメイン内にあるかどうかと、ラッチが互いに所与の物理的な近接範囲内にあるかどうかをさらに検討する、請求項３４に記載のプログラム・ストレージ装置。
【請求項３６】
前記初期物理設計の前記変更で、同じクロック・サイクル中に遷移しないラッチの遷移間に十分なタイミング・スラックが存在するかどうかをさらに検討する、請求項３４に記載のプログラム・ストレージ装置。
【請求項３７】
冗長なラッチを削除する前記初期物理設計の前記変更が、少なくとも２つの冗長なラッチを単一のラッチに置き換えることを含む、請求項３４に記載のプログラム・ストレージ装置。
【請求項３８】
冗長なラッチを削除する前記初期物理設計の前記変更で、修正された物理設計を作成し、前記プロセスが、前記修正された物理設計のテストを行って、前記修正された物理設計が予想どおり動作するかどうかを判定することをさらに含む、請求項３４に記載のプログラム・ストレージ装置。
【請求項３９】
前記方法が、どのラッチが前記論理設計における各論理機能に関連するかを前記データベース内に記録することによって、前記ラッチが同じ論理機能に関係するかどうかを判定することをさらに含む、請求項３４に記載のプログラム・ストレージ装置。
【請求項４０】
前記方法が、どのラッチが前記論理設計における各クロック・ドメインに関連するかを前記データベース内に記録することによって、前記ラッチが同じクロック・ドメイン内にあるかどうかを判定することをさらに含む、請求項３４に記載のプログラム・ストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ラッチ（latch）を有する集積回路を設計する方法に関し、より詳細には、ラッチを組み合わせることによって冗長なラッチを削除する方法に関する。
【背景技術】
【０００２】
現在の設計では、その総電力のかなりの部分がラッチおよびクロック・ツリーで消費される。設計者は、ラッチがサイクルごとに設計の状態を保持するように求める。アーキテクチャにある種のクロック・ゲート（clock gating）が付加されると、純然たるラッチの数が、その領域（area）および全体のクロック・ツリー設計に影響を及ぼす。一方、サイクルごとに特定のラッチを実際に使用するのはまれなことが多い。さらに、ラッチのコア全部は、時間領域で重なり合わないことがある。遺憾ながら、設計者は、どのラッチが重なり合わないかを効果的に決定することができない。重なり合うラッチは、設計の様々な領域からのものが多く、設計者が、別の設計者のラッチの実装用途を理解することができないときは特にそうである。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
以下の開示では、ラッチを有する集積回路を設計する方法を示す。本発明は、まず、論理素子（logic device）およびラッチの論理設計を準備し、次いで、この論理設計に基づいてこれらの論理素子およびラッチを集積回路内に配置することによって物理設計を作成する。本発明は、物理設計を作成するプロセス中に、同じクロック・サイクル中に遷移（transition）せず、同じ論理機能（logic function）に関係せず、同じクロック・ドメイン内にあり、互いに所与の物理的な近接範囲内にあるラッチを組み合わせる（結合する）ことによって冗長なラッチを削除する。
【課題を解決するための手段】
【０００４】
本発明では、初期物理設計のシミュレーションを実行し、各クロック・サイクル中に遷移するラッチを記録することによって、ラッチが同じクロック・サイクル中に遷移するかどうかを判定する。本発明では、同じクロック・サイクル中に遷移しないラッチの遷移間に十分なタイミング・スラック（slack：遊び）が存在するかどうかも判定する。
【０００５】
冗長なラッチを削除する上記プロセスは、少なくとも２つのラッチを単一のラッチに置き換えることを含む。冗長なラッチを削除するプロセスで物理設計が修正され、本発明では、この修正された物理設計のテストを行って、この修正された物理設計が予想どおり動作するかどうかを判定する。本発明では、どのラッチが論理設計における各論理機能に関連するかを記録することによって、ラッチが同じ論理機能に関係するかどうかを判定し、さらにどのラッチが論理設計における各クロック・ドメインに関連するかを記録することによって、ラッチが同じクロック・ドメイン内にあるかどうかを判定する。
【０００６】
上記で述べた発明は、好ましい実施形態についての以下の詳細な説明を図面と併せ読めばよりよく理解されよう。
【発明を実施するための最良の形態】
【０００７】
上記で説明したように、設計者は、どのラッチが重なり合わないかを効果的に決定することができない。重なり合うラッチは、設計の様々な領域からのものが多く、設計者が、別の設計者のラッチの実装用途を理解することができないときは特にそうである。本発明は、設計全体を通じてどのラッチを共有することができるかを判定する自動化された手法を提供する。したがって、本発明は、設計の機能に影響を及ぼさずに、その設計内でラッチの数を減らす新規な方法を提供する。
【０００８】
本発明では、シミュレーションによって、機能的に相互に排他的であるラッチを識別し、それらを後方の（backend）物理設計（physical design : ＰＤ）で組み合わせる（結合する）。組み合わせるべき正確なラッチは、物理設計（ＰＤ）まで未知であり、アーキテクチャ定義、あるいはフロント・エンド処理においてさえも決まらない。したがって、本発明は制御論理（control logic）に極めて適している。
【０００９】
ラッチは、設計者が論理設計中に各機能ごとに手作業で作成する。しばしば、複数の論理設計者からなる複数のチームは一緒にマクロに取り組み、複数の設計者によって数万というラッチがコード化される。各設計チームは、自分たちの仕事の範囲に集中し、互いのチームのラッチの使用法について完全に認識することはできない。さらに、１人の設計者は、しばしば３千〜４千個のラッチとともに、５万〜１０万行のコードを受け持つことがある。設計の性質上、設計者は、一度に１つの設計部分に取り組み、その設計者の設計範囲内でどのラッチを他のラッチと共有することができるかを完全に決めるための時間がない。設計者の範囲外で共有することができるラッチを判定するのは、まったく実行不可能である。さらに、共有することができるラッチはブール非関連関数（boolean non-related function）に関するものであり、ラッチが時間的に重なり合うかどうかを検出し、または認識することは人為的には不可能である。
【００１０】
本発明では、シミュレーション・スコアボード（simulation scoreboarding）を用いるが、（完全なシミュレーション・スイート（組）に対して）レジスタ（register）の経時的な使用状況を判定するデータベースを構築する。本質的には、各時間増分ごとに、遷移することが求められるラッチのリストをデータベース中で維持する。このシミュレーションが完了すると、後処理プログラムを実行して、レジスタのマスタ・リストを更新し、かつ可能な候補であるレジスタ１つにつき１つのリストを維持する。このプロセスを簡略化するために、一実施形態では、同じクロック・ドメイン内のラッチだけを組み合わせることができる。ただし、本発明は複数のクロック・ドメインにも同様に適用可能である。
【００１１】
設計が固まり、物理設計フェーズに入いると、２つの追加の基準に基づいてラッチのグループ化を行う。第１は、機能の平面図（floor plan）上の近接度であり、第２は、機能ラッチの自動組合せをサポートするのに十分なスラック（遊び）があるか検査することである。どのラッチを組み合わせるべきかを識別した後で、ゲート・レベルのネット・リストにＥＣＯ（engineering change option ； 技術変更の選択肢）を適用して、この圧縮を実施する。
【００１２】
再組合せ（recombination）は単に２つのラッチに制限されず、本発明では、結合リスト時間ドメイン（linked list time domain）構造を生成し、それによって、各機能が重なり合わずに順次実行される限り、３つ以上のラッチを組み合わせて１つのラッチにすることができる。
【００１３】
設計が修正された後で、変更された設計が元の設計に整合していることを検証するためのいくつかの技術が存在する。１番目に、同じアーキテクチャのテスト・ケースを実行し直して、結果が同じになることを保証することができる。検証により、統合された明示的なレジスタが呼び出された場合、なんらかの修正が必要になることがあり、次に新しい構造要素（等価な段階）を代わりに参照しなければならない。別の検査方法では、正規の標準検証ツールの一部を用いる。これらのツールは、ブール等価（boolean equivalence ）を検証するものであり、設計が厳密に同等であることを保証する最適なツールとなり得る。
【００１４】
図１〜図２に、本発明の動作を概略的に示す。より具体的には、図１では、レジスタ１０〜１３は様々な組合せ論理ユニット１４、１５を使用し、組合せ論理ユニット１４、１５はラッチ１６、１７を使用する。レジスタＢは、組合せ論理１４、１５の組をともに使用することに留意されたい。ただし、レジスタＢは、一度に組合せ論理１４、１５の組の１つしか使用できないので、ラッチ１６および１７が同時に使用されることはない。したがって、論理機能、クロック・ドメイン、物理的な近接度合い（physical proximity）に関係する問題がないと仮定し、かつ十分なタイミング・スラックがあると仮定すると、図２に示すように、ラッチ１６および１７を単一のラッチ２０に置き換えることができる。図２に示す圧縮した例では、組合せ論理１４、１５は単一ユニットとして働き、したがって、単一ユニット２２として示されている。さらに、圧縮前にレジスタＢ  １１が組合せ論理１４を使用したとすると、ラッチ２０が以前のラッチ１６のように働き、圧縮前にレジスタＢ  １１が組合せ論理１５を使用したとすると、ラッチ２０が以前のラッチ１７のように働くように、レジスタＢ  １１を圧縮されたラッチ２０の下流側（downstream）の位置に移動する。したがって、複数のラッチ１６、１７を単一ラッチ２０に置き換えても、それはこの回路の外部のデバイスにはトランスペアレント（transparent）である。というのは、この回路は依然として、同じ方式で同じ情報を出力する２つの別々の出力を維持しているからである。
【００１５】
選択論理（selection logic）２３により、１つ（または複数）の非アクティブ（non-active）出力が、それに対応する出力（例えば、１対（または１組）の出力の他方の１つ（または複数）の出力）がアクティブ状態のときに、既知の論理状態にロック（lock）される。本質的には、インバータ２４により、２つのＡＮＤ素子２５からの出力を相互に排他的にする。ここで、同じ結果を得るための他の論理素子による類似の構成を代わりに用いることができるはずであることが当業者には理解されよう。この選択論理は、ラッチよりも多くの出力を有し、好ましくは、初期物理設計におけるラッチの数に等しい数の出力を含み、それによって、遅延素子２１および選択論理２３が、図１に示す非圧縮例で現れるはずの出力に類似の出力を提供することができる。図２には２つの出力しか示さないが、選択論理２３は、３つ以上の出力を提供することができるはずである（できることはほぼ間違いない）ことが、この開示に照らして当業者には理解されよう。さらに、（選択論理２３内の）ＡＮＤ素子２５と組み合わせたインバータ２４により、１つの制御信号が一連の出力を同様に制御することができる。したがって、単一の制御信号を用いて、階層設計（hierarchical design）において複数の組の圧縮されたラッチを制御することができるはずである。
【００１６】
図３に、流れ図の形式で本発明の処理を示す。ブロック２００で、本発明は、各ラッチの名前およびクロックの位相を記録することによって、データベース内のスコアボード（score board）をあらかじめ処理する。ブロック２０２で、本発明は、（第１のテスト・ケースをロードすることによって）上記で説明したシミュレーションを実施する。ブロック２０４は、１クロック・サイクルのシミュレーションを示し、ブロック２０６で、本発明は、データベース内のスコアボードを更新して、そのサイクル内でどのラッチが状態を変更したかを記録する。決定ブロック２０８により、本発明は、このテスト・ケースが完了するまで、ブロック２０４および２０６を通してループ・バック処理を行うことができる。同様にブロック２１０では、次のテスト・ケース全体を通じてすべてのテスト・ケースが完了するまでループ・バック処理を行う。
【００１７】
すべてのテスト・ケースが完了すると、本発明は、クロック・ドメインおよび論理的な振る舞いに基づいて、データベース内のスコアボードに対して、圧縮を行う候補であるラッチを識別する「後処理」を実施する。ブロック２１６で、本発明は、各ラッチごとにタイミング・スラックに関するスコアボードを更新する。次いで、ブロック２１８に示す物理開発段階で、本発明は、スラック、物理的な分離（physical separation）などに基づいて最終的な圧縮グループの選択を実施する。
【００１８】
したがって、上記で示したように、本発明は、ラッチを有する集積回路を設計する方法を提供する。本発明は、まず、論理素子およびラッチの論理設計を準備し、次いで、この論理設計に基づいてこれらの論理素子およびラッチを集積回路内に配置することによって物理設計を作成する。本発明は、物理設計を作成するプロセス中に、同じクロック・サイクル中に遷移せず、同じ論理機能に関係せず、同じクロック・ドメイン内にあり、互いに所与の物理的な近接範囲内にあるラッチを組み合わせることによって冗長なラッチを削除する。
【００１９】
本発明では、初期物理設計のシミュレーションを実行し、各クロック・サイクル中に遷移するラッチを記録することによって、ラッチが同じクロック・サイクル中に遷移するかどうかを判定する。本発明では、同じクロック・サイクル中に遷移しないラッチの遷移間に十分なタイミング・スラックが存在するかどうかも判定する。冗長なラッチを削除する上記プロセスは、少なくとも２つのラッチを単一のラッチに置き換えることを含む。冗長なラッチを削除するプロセスで物理設計が修正され、本発明では、この修正された物理設計のテストを行って、この修正された物理設計が予想どおり動作する（例えば、非圧縮設計が動作するであろうとおりに動作する）かどうかを判定する。
【００２０】
好ましい実施形態に関して本発明を説明してきたが、特許請求の範囲の趣旨および範囲内で改変を施して本発明を実施することができることが当業者には理解されよう。
【図面の簡単な説明】
【００２１】
【図１】冗長なラッチを削除する前の初期物理設計を示す概略図である。
【図２】冗長なラッチを削除した後の初期物理設計を示す概略図である。
【図３】本発明の好ましい方法を示す流れ図である。
【符号の説明】
【００２２】
１０  レジスタ
１１  レジスタ
１２  レジスタ
１３  レジスタ
１４  組合せ論理ユニット
１５  組合せ論理ユニット
１６  ラッチ
１７  ラッチ
２０  圧縮されたラッチ
２１  遅延素子
２２  単一ユニット
２３  選択論理
２４  インバータ
２５  ＡＮＤ素子
【図１】
2006023859.tif 000003
【図２】
2006023859.tif 000004
【図３】
2006023859.tif 000005