(57)【要約】【課題】特にタイミング制約違反を解消するために挿入する遅延素子の数を抑制できる回路設計装置及び回路設計方法を提供する。【解決手段】回路設計装置は、回路設計に使用する論理素子間の接続情報を含むネットリスト及び当該論理素子の遅延時間の情報を有する回路情報に基づき、論理素子を配置・配線してレイアウトを生成するレイアウト部１０と、回路情報１４と、レイアウト情報１８を参照して、レイアウトにおけるタイミング制約違反の有無を検出するタイミング解析部１１と、検出したタイミング制約違反パスの終点から始点に遡りながら、回路情報を参照して配置する追加遅延素子を選択する選択部１２と、タイミング制約違反が発生している複数のパスにおいて共通に前記選択した追加遅延素子が使用できると判断した場合に、複数のパスを統合して当該選択した追加遅延素子を配置する論理素子修正部１３とを有する。【選択図】図２
2011164740.tif 000002
【特許請求の範囲】
【請求項１】
回路設計に使用する論理素子間の接続情報を含むネットリスト及び当該論理素子の遅延時間の情報を有する回路情報に基づき、当該論理素子を配置・配線してレイアウトを生成し、当該論理素子の配置情報と当該論理素子間の配線情報を格納するレイアウト部と、
前記回路情報と前記レイアウトにおける配置情報・配線情報を参照して、タイミング制約違反の有無を検出するタイミング解析部と、
検出したタイミング制約違反パスの終点から始点に遡りながら、前記回路情報を参照して配置する追加遅延素子を選択する選択部と、
前記タイミング制約違反が発生している複数のパスにおいて共通に前記選択した追加遅延素子が使用できると判断した場合に、当該複数のパスを統合して当該選択した追加遅延素子を配置する論理素子修正部とを有する、回路設計装置。
【請求項２】
前記回路情報は、前記論理素子間の接続に関する情報、前記論理素子の遅延時間、セットアップタイム、及びホールドタイムを含むライブラリ情報を有する請求項１記載の回路設計装置。
【請求項３】
前記論理素子は、フリップフロップを含み、
前記回路情報は、回路が使用する動作周波数、及びフリップフロップ間のクロック周期を含むタイミング制約情報を有する請求項１又は２記載の回路設計装置。
【請求項４】
回路設計に使用する論理素子は、複数のフリップフロップを含み、
前記タイミング解析部は、前記フリップフロップを含む論理回路の遅延時間、複数のフリップフロップのセットアップタイム及びホールドタイムを含むライブラリ情報を参照し、タイミング制約違反の有無を検出する請求項１乃至３のいずれか１項記載の回路設計装置。
【請求項５】
回路設計に使用する論理素子は、複数のフリップフロップを含み、
前記タイミング制約違反パスの終点がフリップフロップである場合、
前記選択部は、前記フリップフロップを含む論理回路の遅延時間、複数のフリップフロップのセットアップタイム及びホールドタイムを含むライブラリ情報を参照し、前記タイミング違反パスの終点のフリップフロップを解析対象として当該タイミング違反を修正するために必要な遅延時間から前記追加遅延素子を選択し追加遅延素子数を決定する、請求項４記載の回路設計装置。
【請求項６】
回路設計に使用する論理素子は、複数のフリップフロップを含み、
前記論素子修正部は、回路が使用する動作周波数、及びフリップフロップ間のクロック周期を含むタイミング制約情報、及び前記フリップフロップを含む論理回路の遅延時間、複数のフリップのセットアップタイム及びホールドタイムを含むライブラリ情報を参照し、
クロック周波数≧（タイミング制約違反パスの遅延時間＋追加遅延時間）＋解析対象のフリップフロップのセットアップタイム
タイミング制約違反パスの遅延時間＋追加遅延時間≧解析対象のフリップフロップのホールドタイム
のいずれか一方が成立しない場合に、解析対象を現在の解析対象の前段の論理素子に変更し、
前記タイミング解析部及び選択部は、再度タイミング制約違反の有無を検出し、追加遅延素子を選択する、請求項５記載の回路設計装置。
【請求項７】
前記選択部は、前記変更された解析対象素子が複数の入力端子を有するか否かを判定し、
１＜タイミング制約違反がある入力端子数
タイミング制約違反がある入力端子数＜解析対象素子の入力端子数
の両方を満たす場合、当該複数のタイミング制約違反パスを共通化し、追加遅延素子を配置する、請求項６記載の回路設計装置。
【請求項８】
前記選択部は、前記解析対象素子の論理が同一となるよう、前記共通化のために追加する追加論理素子を選択して追加する、請求項７記載の回路設計装置。
【請求項９】
前記論理修正部は、前記複数の入力端子に繋がるパスを共通化して浮いた入力端子は、当該論理素子が論理積回路（ＡＮＤ）又は否定論理積回路（ＮＡＮＤ）の場合はプルアップ処理又は他の入力端子とショートし、当該論理素子が論理和回路（ＯＲ）又は否定論理和回路（ＮＯＲ）の場合はプルダウン処理又は他の入力端子とショートする、請求項８記載の回路設計装置。
【請求項１０】
前記選択部は、前記変更された解析対象素子が複数の入力端子を有するか否かを判定し、
タイミング制約違反がある入力端子数＝１
を満たす場合、前記追加遅延素子を当該解析対象素子と前段の論理素子との間に挿入する請求項６記載の回路設計装置。
【請求項１１】
前記選択部は、前記変更された解析対象素子が複数の入力端子を有するか否かを判定し、
入力端子数＝タイミング制約違反がある入力端子数
を満たす場合、前記追加遅延素子を当該解析対象素子と後段の論理素子との間に挿入する請求項６記載の回路設計装置。
【請求項１２】
回路設計に使用する論理素子間の接続情報を含むネットリスト及び当該論理素子の遅延時間の情報を有する回路情報に基づき、当該論理素子を配置・配線してレイアウトを生成し、
前記回路情報を参照して、前記レイアウトにおけるタイミング制約違反の有無を検出し、
検出したタイミング制約違反パスの終点から始点に遡りながら、前記回路情報を参照して配置する追加遅延素子を選択し、
前記タイミング制約違反が発生している複数のパスにおいて共通に前記選択した追加遅延素子が使用できると判断した場合に、当該複数のパスを統合して当該選択した追加遅延素子を配置する、回路設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体集積回路およびその設計方法に関し、特にタイミング制約違反を修正する回路設計装置及び回路設計方法に関する。
【背景技術】
【０００２】
近年の半導体集積回路のタイミング設計分野においては、回路規模の増大や、動作周波数の高速化、および回路の複雑化により、複雑なタイミング制約を満足させることが要求されている。このタイミング制約を満足させるために追加する遅延素子の増加に伴う面積増加およびタイミング収束期間の増加が問題になってきており、面積削減とタイミング収束期間の短縮要求（必要性）が高まってきた。
【０００３】
上述した背景を鑑み、タイミング制約違反を回路設計段階の解析でブール式の分配法則を使用して論理構成を変換する技術が特許文献１に記載されている。特許文献１には、共通項を論理構造に変換して因数として括り出す技術が記載されている。
【０００４】
図２２は、従来技術にかかる論理ＩＣの最適化装置および方法のフローチャートを示す図である。
【０００５】
要因解析部１００１は、タイミング制約違反パス指定データ１０１５およびタイミング制約データ１０１６を算出する。また、要因解析部１００１は、初期レイアウト結果の論理ゲート配置データ１０１７、初期レイアウト結果の論理ゲート配線データ１０１８および論理ゲートの論理、形状および特性を表す論理ゲートライブラリ情報１０１９を入力として、パス毎の全体遅延における配線遅延および論理ゲート遅延の比率、始点−終点フリップフロップ（以下、ＦＦと表記する）間の最短長（図２３の配置・配線禁止領域１６５の迂回を考慮した長さ）および実際の配線長の比率を算出する。
【０００６】
要因解析部１００１は、この算出結果に基づき、タイミング制約違反の要因のうち論理ゲート段数に起因している要因と配線長に起因している要因との比率を判定する。この判定結果に基づき、論理合成における論理平坦化、論理構造化、中継バッファ挿入の強度を表すタイミング修正アルゴリズムを立案する。
【０００７】
ここで、タイミング修正アルゴリズムに従った論理ゲート修正部１００３の動作について図２３を参照して説明する。図２３は、修正前のＩＣ６００の構成を示す図である。ＩＣ６００は、ＦＦ１５０〜１５８および１６３と、ＡＮＤの論理ゲート（以下ＡＮＤという）１５９〜１６２と、バッファ１６４とを有している。ＦＦ１５０〜１５８の論理値をそれぞれ[FF155]〜[FF158]、ＡＮＤ１５９〜１６１の論理値を[AND159]〜[AND161]、ＦＦ１６３のデータ入力の論理値を[FF163din]とすると、[FF163din]の論理値は、下記の（１）式で与えられる。
【０００８】
[FF163din]=[FF158][AND161][AND160][FF157]
=[FF158]([AND159][FF151][FF154])([FF152][FF153][FF155])[FF157]
=[FF158]([FF150][FF156])[FF151][FF154])([FF152][FF153][FF155])[FF157]…（１）
次に、論理平坦化部１００４では、論理構造を除去し、ブール式の分配法則を使用して論理式の括弧を除去する。この際、ＦＦ１５０〜１５８の初期レイアウト座標を考慮し、近接した論理ゲート毎に並べ替える。この時、タイミング制約違反の要因が、配線遅延が支配的な場合には、タイミング修正アルゴリズムでの論理平坦化の強度を高くして、下記の（２）式の如く全ての括弧を除去する。一方、配線遅延が支配的でない場合には、論理平坦化の強度を低くする（尚、（２）式は、配線遅延が支配的な場合である）。
【０００９】
FF[163din]
=[FF158]([FF150][FF156])[FF151][FF154])([FF152][FF153][FF155])[FF157]
=[FF150][FF151][FF152][FF153][FF154][FF155][FF156][FF157][FF158]…（２）
ここで、配線遅延が支配的であるか否かは、下記の（３）式で与えられるＸの大小による。
【００１０】
Ｘ={delay(wire)/(α×delay(gate))}…（３）
αはデバイス依存係数、delay(wire)は配線遅延およびdelay(gate)は論理ゲート遅延である。また、タイミング制約違反の要因が、配線遅延がやや支配的である場合には、タイミング修正アルゴリズムは、論理平坦化の強度を（３）式の場合より低く設定して、下記の（４）式の如く初期レイアウト結果の回路構造の一部を維持する。
【００１１】
[FF163din]
=[FF158]([FF150][FF156])[FF151][FF154])([FF152][FF153][FF155])[FF157]
=[FF158]([FF150][FF151][FF152][FF153][FF154][FF155][FF156])[FF157]…（４）
論理構造化部１００５では、論理平坦化部１００４で平坦化された論理に対して因数として括れる共通項を検索し、回路の縮小および遅延最小に最も効果的な共通項を論理構造に変換して、因数として括り出す。このとき、タイミング制約違反の要因が、配線遅延が支配的な場合には、タイミング修正アルゴリズムでの論理構造化の強度を低く設定する。反対に、論理ゲート遅延が支配的な場合には、タイミング修正アルゴリズムでの論理構造化の強度を高く設定する。論理構造化強度が低い場合を下記の（５）式に、論理構造化強度が高い場合を（６）式に示す。
【００１２】
[FF163din]
=[FF150][FF151][FF152][FF153][FF154][FF155][FF156][FF157][FF158]
=([FF150][FF151][FF152][FF153])([FF154][FF155][FF156][FF157][FF158])…（５）
[FF163din]
=[FF150][FF151][FF152][FF153][FF154][FF155][FF156][FF157][FF158]
=(([FF150][FF151])([FF152][FF153]))([FF154][FF155])([FF156][FF157])[FF158]…（６）
更に、図２４のＡＮＤ１７０〜１７２、１７４、１７８および１７９の論理値をそれぞれ[AND170]〜[AND172]、[AND174]、[AND178]、[AND179]とすると、下記の（７）式で与えられる。
【００１３】
[FF163din]
=(([FF150][FF151])([FF152][FF153]))([FF154][FF155])([FF156][FF157])[FF158]
=([AND170][AND171])[AND174][AND178][FF158]
=[AND172][AND174][AND178][FF158]…（７）
次に、中継バッファ挿入部１００６では、上記（７）式で示される論理ゲート間の配線を分割するよう、多段にバッファ／インバータを挿入して配線遅延を補正する。このとき、タイミング制約違反の要因が、配線遅延が支配的な場合には、中継バッファ挿入強度を高く設定し、反対に論理ゲート遅延が支配的な場合には、中継バッファ挿入強度を低く設定する。そして、変更された論理ゲートのみ配置・概略配線１００７で予測レイアウトを行い、その配置・配線から遅延を見積もりタイミング制約判定部１００８でタイミング制約を満足したか否かを判定する。満足していない場合には、要因解析部１００１で修正タイミング修正アルゴリズムを立案し、再度論理構造の変更を行う。
【００１４】
タイミング制約を満足している場合には、修正結果出力部１００９へ進む。図２４は、論理ゲート修正部１００３によるタイミング制約違反修正後のＩＣの構成を示す図である。図２４は、修正前の図２３に比べて、ＦＦ１５２および１５３を始点とするパスの論理構造が変更され、終点のＦＦ１６３の間に細かく配置されている。さらに、ＦＦ１５４、１５５および１５６を始点とする配線の迂回がなくなっている。以上より、論理ゲート修正部１００３においてタイミング制約を満足する回路になっていることが分かる。
【００１５】
次に、修正結果出力部１００９は、論理ゲート修正部１００３の結果として、修正ネットリスト１０２１、修正論理ゲート概略配線データ１０２２および修正論理ゲート配置データ１０２３を出力し、再レイアウト部１０１３で変更部分のみの実配置・実配線を行う。実配置・実配線の結果を、タイミング制約判定部１０１４でタイミング制約を満足したか否かを判定する。タイミング制約を満足していない場合には、要因解析部１００１で新たなタイミング修正アルゴリズムを立案し再度論理構造の変更を行う。満足している場合には、修正作業を終了する。
【００１６】
特許文献１に記載の技術は、タイミング制約違反パスの論理素子をタイミング制約違反の無いパスを含めてブール式の分配法則を使用して論理式を展開し、回路の縮小に最も効果的な共通項を括り出すことで論理素子の変更や論理圧縮が行われる。論理圧縮が行われることで、タイミング制約違反パスの効率の悪い論理素子を含んだパスの論理段数が圧縮される。論理段数が圧縮されることで論理素子の遅延時間と論理素子間の配線遅延時間が削減される。
【００１７】
特許文献１に記載の技術は、セットアップタイムやエレクトロマイグレーションにかかわるタイミング制約違反に対して効果がある。
【００１８】
次に、ホールドタイムにかかわるタイミング制約違反分の遅延素子を挿入する一般的な方法を説明する。図１２は、タイミング制約違反パスのある回路６０を示す。
【００１９】
回路６０は、ＦＦ６１〜６４と、複数の論理素子の集まりである組み合わせ回路６５と、３入力ＡＮＤ６６を有している。各論理素子の間は、ネットＡ０、ネットＢ０、ネットＣ０、ネットＤ０、ネットＥ０で接続されている。
【００２０】
ＦＦ６１の出力端子Ｑと３入力ＡＮＤ６６の入力端子Ａの間は、ネットＡ０で接続されている。ＦＦ６２の出力端子Ｑと３入力ＡＮＤ６６の入力端子Ｂの間は、ネットＢ０で接続されている。ＦＦ６３の出力端子Ｑと複数の論理素子の集まりである組み合わせ回路６５の入力端子Ａの間は、ネットＥ０で接続されている。組み合わせ回路６５の出力端子Ｙと３入力ＡＮＤ６６の入力端子Ｃの間は、ネットＣ０で接続されている。３入力ＡＮＤ６６の出力端子ＹとＦＦ６４の入力端子Ｄの間は、ネットＤ０で接続されている。
【００２１】
図１２において、ＦＦ６１の出力端子ＱからＦＦ６４の入力端子Ｄのパスに、タイミング制約違反のホールドタイミング違反３ｎｓがある。また、ＦＦ６２の出力端子ＱからＦＦ６４の入力端子Ｄのパスにタイミング制約違反のホールドタイミング違反２ｎｓがある。ホールドタイムにかかわるタイミング制約違反分の遅延素子を挿入する一般的な方法を、図１６を用いて説明する。図１６は、従来の方法で設計した回路７４を示す図である。ＦＦ６１の出力端子ＱからＦＦ６４の入力端子Ｄのパスにタイミング制約違反を解消するために３ｎｓの遅延時間分として、ＦＦ６１の出力端子Ｑと３入力ＡＮＤ６６の入力端子Ａの間に、２ｎｓの遅延素子６９と１ｎｓの遅延素子７０を挿入する。さらにＦＦ６２の出力端子Ｑと３入力ＡＮＤ６６の入力端子Ｂの間に、２ｎｓの遅延素子６９ａを挿入する。これにより図１２に示したタイミング制約違反は解消される。
【先行技術文献】
【特許文献】
【００２２】
【特許文献１】特開２００２−０７６１２８号公報
【発明の概要】
【発明が解決しようとする課題】
【００２３】
しかしながら、上記のように、タイミング制約違反パスそれぞれに、タイミング制約違反を解消するための遅延素子を挿入する方法では、挿入する遅延素子の個数が多くなるという問題がある。
【課題を解決するための手段】
【００２４】
本発明にかかる回路設計装置は、回路設計に使用する論理素子間の接続情報を含むネットリスト及び当該論理素子の遅延時間情報を有する回路情報に基づき、当該論理素子を配置・配線してレイアウトを生成し、レイアウト情報である当該論理素子の配置情報と当該論理素子間の配線情報を格納するレイアウト部と、レイアウト情報と回路情報であるネットリストとライブラリ情報とタイミング制約情報とを参照してタイミング制約違反の有無を検出するタイミング解析部と、検出したタイミング制約違反パスの終点から始点に遡りながら、回路情報を参照して配置する追加遅延素子を選択する選択部と、タイミング制約違反が発生している複数のパスにおいて追加遅延素子が共通に使用できると判断した場合に、当該複数のパスを統合して当該追加遅延素子を配置する論理素子修正部とを有する。
【００２５】
本発明にかかる回路設計方法は、回路設計に使用する論理素子間の接続情報を含むネットリスト及び当該論理素子の遅延時間情報を有する回路情報に基づき、当該論理素子を配置・配線してレイアウトを生成し、前記回路情報と、前記レイアウト情報を参照して、タイミング制約違反の有無を検出し、検出したタイミング制約違反パスの終点から始点に遡りながら、前記回路情報を参照して配置する追加遅延素子を選択し、前記タイミング制約違反が発生している複数のパスにおいて共通に前記選択した追加遅延素子が使用できると判断した場合に、当該複数のパスを統合して当該選択した追加遅延素子を配置するものである。
【００２６】
本発明においては、タイミング解析部が検出したタイミング制約違反パスが複数あって、かつこれらのパスに対し、追加遅延素子が共通に使用できると判断した場合、複数のタイミング制約違反パスについて、共通の追加遅延素子を使用するため、追加する遅延素子の個数を抑制することができる。
【発明の効果】
【００２７】
本発明によれば、特にタイミング制約違反を解消するために挿入する遅延素子の数を抑制できる回路設計装置及び回路設計方法を提供することができる。
【図面の簡単な説明】
【００２８】
【図１】実施の形態１にかかる回路設計装置を示す図である。
【図２】実施の形態１にかかる回路設計プログラムを示す図である。
【図３】実施の形態１にかかる回路設計の全体を示すフローチャートである。
【図４】実施の形態１にかかるライブラリ情報を示す表１である。
【図５】実施の形態１にかかる回路３０ａを示す図である。
【図６】実施の形態１にかかる回路３０ｂを示す図である。
【図７】実施の形態１にかかるＦＦ間を示す回路５０〜５３とのクロック周期を示す波形５０Ｃ〜５３Ｃの図である。
【図８】実施の形態１にかかるクロック信号の立ち上がりに同期して動作するＤ−ＦＦの回路を示す図である。
【図９】実施の形態１にかかるクロック信号の立ち下がりに同期して動作するＤ−ＦＦの回路を示す図である。
【図１０】実施の形態１にかかるＦＦのタイミング制約を説明した表２とタイミングチャートである。
【図１１】実施の形態１にかかるＦＦを解析対象とした際のＦＦ間のクロック周期およびタイミング制約を示すタイミングチャートである。
【図１２】実施の形態１にかかるタイミング制約違反パスを有する回路６０の図である。
【図１３】実施の形態１にかかるステップＳ２５を示すフローチャートである。
【図１４】実施の形態１にかかるライブラリ情報に記憶された追加する共通の論理素子の情報を示す表３である。
【図１５】実施の形態１にかかる設計後の回路８５を示す図である。
【図１６】実施の形態１にかかる従来の方法で設計した回路７４を示す図ある。
【図１７】実施の形態２にかかる回路設計プログラムを示す図である。
【図１８】実施の形態２にかかるステップＳ２５の詳細を示すフローチャートである。
【図１９】実施の形態２にかかるテーブル情報７５を示す図である。
【図２０】実施の形態３にかかるステップＳ２５の詳細な動作を示すフローチャートである。
【図２１】実施の形態３にかかる回路９５を示す図である。
【図２２】従来技術にかかる論理ＩＣの最適化装置および方法のフローチャートを示す図である。
【図２３】従来の修正前のＩＣ６００の構成を示す図である。
【図２４】従来の修正後のＩＣ６０１の構成を示す図である。
【発明を実施するための形態】
【００２９】
実施の形態１
以下、図面を参照しながら、本発明にかかる実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。また、以下の図面に示す各装置の構成は、例えば記憶装置に読み込まれたプログラムをコンピュータ（ＰＣや携帯端末装置等）上で実行することにより実現される。また、これらのプログラムは、ＣＤ−ＲＯＭや光ディスク等の情報記憶媒体に記憶され、もしくはインターネット等のネットワークを介して配布され、コンピュータにインストールされることになる。
【００３０】
図１は本実施の形態にかかる回路設計装置１を示す図である。本実施の形態にかかる回路設計装置１は、コンピュータ装置２と、サーバ３と、記憶媒体４と、ネットワーク５とを有する。サーバ３は、インターネットなどのネットワーク５を介してエンジニアリングワークステーションなどのコンピュータ装置２に接続される。
【００３１】
記憶媒体４は、実行プログラムの提供に供されるサーバ３に保持されている。記憶媒体４は、本実施の形態にかかる回路設計装置１としての回路設計プログラム６を格納している。
【００３２】
回路設計プログラム６は、ネットワーク５を介してコンピュータ装置２にダウンロードされる。ダウンロードされた回路設計プログラム６はコンピュータ装置２のローカルハードディスク（不図示）またはメモリ（不図示）にストアされて実行処理を行う。
【００３３】
コンピュータ装置２は、ダウンロードされた回路設計プログラム６の実行処理に必要なデータを記憶媒体４にネットワーク５を介してアクセスする。図２は回路設計プログラム６を示す図である。回路設計プログラム６は、回路の設計を行うためのデータベースとして、レイアウト部１０と、タイミング解析部１１と、選択部１２と、論理素子修正部１３と、回路情報１４と、レイアウト情報１８を有する。
【００３４】
レイアウト部１０は、回路情報１４に格納されているネットリスト１５と、ライブラリ情報１６と、タイミング制約情報１７、に基づき、当該論理素子を配置・配線してレイアウトを生成し、当該論理素子の配置情報１９と当該論理素子間の配線情報２０をレイアウト情報１８に格納する。
【００３５】
タイミング解析部１１は、回路情報１４とレイアウト情報１８を参照して、レイアウトにおけるタイミング制約違反の有無を検出する。
【００３６】
選択部１２は、タイミング解析部１１が検出したタイミング制約違反パスの終点から始点に遡りながら、回路情報１４を参照して配置する追加遅延素子を選択する。
【００３７】
論理素子修正部１３は、タイミング制約違反が発生している複数のパスにおいて、選択した追加遅延素子が共通に使用できると判断した場合に、当該複数のパスを統合して当該選択した追加遅延素子を配置する。
【００３８】
回路情報１４は、論理素子間の接続情報を有するネットリスト１５を有する。
【００３９】
回路情報１４は、回路設計に使用する際に基本となる論理素子の遅延時間、セットアップタイムおよびホールドタイムなどの情報を有するライブラリ情報１６を有する。
【００４０】
回路設計に使用する論理素子は、複数のフリップフロップを含み、回路情報１４は、回路が使用する動作周波数、及びフリップフロップ間のクロック周期を含むタイミング制約情報１７を有する。
【００４１】
タイミング解析部１１は、回路情報１４とレイアウト情報１８を参照し、論理素子毎に、現在の信号の入力されるタイミングと、解析対象の論理素子（以下、解析対象素子という。）が必要とするセットアップタイム及びホールドタイムのタイミングを解析し、結果を記憶し、タイミング制約違反の有無を検出する。
【００４２】
本実施の形態によれば、タイミング制約違反パスが発生している複数のパスを統合して追加遅延素子を配置することができる。
【００４３】
次に、本実施の形態についてさらに詳細に説明する。図３は、本実施の形態に係る回路設計の全体を示すフローチャートである。先ず、ネットリスト１５とライブラリ情報１６とタイミング制約情報１７をもとに回路の論理素子の配置と配線を実施し、回路情報１４に配置情報１９と配線情報２０から生成された論理素子の遅延と配線遅延の情報などを記憶する（ステップＳ２１）。
【００４４】
次に、ネットリスト１５とライブラリ情報１６とタイミング制約情報１７をもとにＦＦの論理素子の間のセットアップタイムおよびホールドタイムのタイミングの解析を実施し、タイミング解析部１１にその結果であるパスの各論理素子の遅延時間、基点、終点およびタイミング制約などの条件を記憶する（ステップＳ２２）。
【００４５】
次に、タイミング解析部１１に記憶されている結果情報にタイミング制約違反の有無を判定する（ステップＳ２３）。
【００４６】
タイミング制約違反がない場合は、処理を終了する（ステップＳ２３：無）。
【００４７】
タイミング制約違反がある場合（ステップＳ２３：有）は、要因解析（ステップＳ２４）において、タイミング解析部１１に記憶されている結果情報から対象となる論理素子を抽出する。
【００４８】
次に、遅延素子の挿入箇所を共通化するための論理解析と論理素子を挿入する（ステップＳ２５）。
【００４９】
次に、タイミング解析部１１に記憶されている結果情報のホールドタイムなどすべてのタイミング制約違反パスを修正したか判定する（ステップＳ２６）。
【００５０】
すべてのタイミング制約違反パスが修正できていない場合は、要因解析（ステップＳ２４）からの処理を繰り返す（ステップＳ２６：有）。
【００５１】
すべてのタイミング制約違反パスを修正できた場合は、レイアウト（ステップＳ２１）からの処理を繰り返す（ステップＳ２６：無）。
【００５２】
タイミング制約違反パスと当該パスの遅延情報を元に、遅延が必要なパスを共通化することができるため、半導体集積装置の面積の増加を抑制しながらタイミング制約違反パスを修正することができる。
【００５３】
ここで、各ステップの動作についてさらに詳細に説明する。
【００５４】
まず、ステップＳ２１について説明する。ライブラリ情報１６は、論理素子の遅延時間に関する情報を有する。図４は、ライブラリ情報１６を示す表１である。表１は、回路設計に使用する際、基本となる論理素子の遅延時間、セットアップタイム、ホールドタイムなどの情報を、論理素子の種類ごとに整理して有している。
【００５５】
ネットリスト１５は、回路の論理素子間の接続情報を有する。例として、図５に示す回路３０ａについて説明する。図５は、本実施の形態にかかる回路３０ａを示す図である。回路３０ａは、入力端子ＩＮ、出力端子ＯＵＴ、インバータ３１、ＦＦ３２〜３６、ＯＲの論理ゲート（以下ＯＲという）２入力ＯＲ３７、ＮＡＮＤの論理ゲート（以下ＮＡＮＤという）２入力ＮＡＮＤ３８、２入力ＡＮＤ３９とを有する。それぞれ、インバータの入力端子をＡ、出力端子をＹとし、ＦＦ３２〜３６の入力端子をＤ、出力端子をＱとする。２入力ＯＲ３７、２入力ＮＡＮＤ３８および２入力ＡＮＤ３９のそれぞれの入力端子をＡ又はＢ、出力端子をＹとする。また、各素子の間は、ネット４１〜４８で接続されている。回路３０ａの接続情報は、以下のようになる。
【００５６】
入力端子ＩＮの接続先：インバータ３１の入力端子ＡとＦＦ３３の入力端子Ｄ
インバータ３１の出力端子Ｙの接続先：ＦＦ３２の入力端子Ｄ
ＦＦ３２の出力端子Ｑの接続先：２入力ＯＲ３７の入力端子Ａ
ＦＦ３３の出力端子Ｑの接続先：２入力ＯＲ３７の入力端子ＢとＦＦ３４の入力端子Ｄ
２入力ＯＲ３７の出力端子Ｙの接続先：ＦＦ３５の入力端子Ｄと２入力ＮＡＮＤ３８の入力端子Ａ
ＦＦ３５の出力端子Ｑの接続先：２入力ＡＮＤ３９の入力端子Ａ
ＦＦ３４の出力端子Ｑの接続先：２入力ＮＡＮＤ３８の入力端子Ｂ
２入力ＮＡＮＤ３８の出力端子Ｙの接続先：２入力ＡＮＤ３９の入力端子Ｂ
２入力ＡＮＤ３９の出力端子Ｙの接続先：ＦＦ３６の入力端子Ｄ
ＦＦ３６の出力端子Ｑの接続先：出力端子ＯＵＴ
以上の接続情報は、ネットリスト１５に、具体的には以下のような形式で記憶される。一番左の項は、ライブラリ情報１６に登録されている論理素子名であり次の項は、ネットリスト１５内でのアドレスに値する固有名称であり、括弧内はネット名を示す。論理素子の種類を、インバータは、ＩＮＶｘ１。２入力ＯＲは、ＯＲ２ｘ１。ＦＦは、ＤＦＦｘ１。２入力ＮＡＮＤは、ＮＡＮＤ２ｘ１。２入力ＡＮＤは、ＡＮＤ２ｘ１として記載する。
【００５７】
ＩＮＶｘ１      ＢＬ３１    （ｎｅｔ４１、ＩＮ）
ＯＲ２ｘ１      ＢＬ３７    （ｎｅｔ４５、ｎｅｔ４２、ｎｅｔ４３）
ＮＡＮＤ２ｘ１  ＢＬ３８    （ｎｅｔ４６、ｎｅｔ４４、ｎｅｔ４５）
ＡＮＤ２ｘ１    ＢＬ３９    （ｎｅｔ４９、ｎｅｔ４６、ｎｅｔ４７）
ＤＦＦｘ１      ＢＬ３２    （ｎｅｔ４３、ｃｌｋ、ｎｅｔ４１）
ＤＦＦｘ１      ＢＬ３３    （ｎｅｔ４２、ｃｌｋ、ＩＮ）
ＤＦＦｘ１      ＢＬ３４    （ｎｅｔ４４、ｃｌｋ、ｎｅｔ４２）
ＤＦＦｘ１      ＢＬ３５    （ｎｅｔ４７、ｃｌｋ、ｎｅｔ４５）
ＤＦＦｘ１      ＢＬ３６    （ＯＵＴ、ｃｌｋ、ｎｅｔ４８）
回路３０ａは、ネットリスト１５に記憶された情報をもとに、配置および配線された回路である。論理素子が配置され、配線されることで、各素子間を接続するネット４１〜４８配線の長さが決定される。また、ネット４１〜４８の配線長さは、配線情報２０に記憶される。
【００５８】
ネットリスト１５に記憶されたネット４１〜４８の配線長さ（Ｌ）と、ライブラリ情報１６に記憶された基本遅延時間（ｔＬＤ０）と、入力端子の容量（Ｃｉｎ）および出力端子の遅延係数（ｔ１）から、各論理素子の遅延時間（ｔＰＤ）が式（１）を用いて求められる。
【００５９】
ｔＰＤ＝ｔＬＤ０＋（ΣＣｉｎ＋Ｌ×０．２３４）×ｔ１              …式（１）
タイミング解析部１１は、式（１）により求められた遅延の情報を記憶する。
【００６０】
次に、ステップＳ２２について説明する。回路３０ａにおいて、出力端子ＯＵＴが正しくデータを出力するためには、出力端子ＯＵＴに接続されたＦＦ３６に適切なタイミングで信号を入力する必要がある。よって、出力端子ＯＵＴに注目した場合、解析対象素子をＦＦ３６とし、解析対象素子に接続されているネットをパスとして抽出する。抽出する範囲は、当該解析対象素子の前段のＦＦから、当該解析対象素子の後段のＦＦまでである。ただし、解析対象素子がＦＦである場合は、解析対象のＦＦまで抽出する。もし解析対象素子の前段にＦＦ又は他の論理素子が接続されていない場合は、回路の入力端子まで抽出する。
【００６１】
図６は、回路３０ｂを示す図である。回路３０ｂにおいて、ＦＦ３６を解析対象素子とした場合、抽出されるパスは、
（１）ＢＬ３２、ＢＬ３７、ＢＬ３８、ＢＬ３９を通るパス９０
（２）ＢＬ３３、ＢＬ３７、ＢＬ３８、ＢＬ３９を通るパス９１
（３）ＢＬ３５、ＢＬ３９を通るパス９２
（４）ＢＬ３４、ＢＬ３８、ＢＬ３９を通るパス９３
の４通りである。パスを抽出することで、解析対象のＦＦと、その前段のＦＦを判別することができ、ＦＦ間のクロック周期、セットアップタイムおよびホールドタイムについてタイミングの解析が実施できるようになる。
【００６２】
タイミング解析部１１は、抽出されたパスのＦＦ間のクロック周期、セットアップタイムおよびホールドタイムの情報を、解析対象の素子とともに記憶する。
【００６３】
ここで、ＦＦ間のクロック周期について説明する。ＦＦ間のクロック周期とは、解析対象としているＦＦとその前段のＦＦの出力が変化する基準となるタイミングの間の時間のことである。
【００６４】
図７はＦＦ間のクロック周期を示す図である。回路５０〜５３は、共通のクロック信号に同期して動作するＦＦ回路を示す。５０ｃ、５１ｃ、５２ｃ、５３ｃはそれぞれ、回路５０〜５３が同期するタイミングを示す。ＦＦ５０ａ、ＦＦ５０ｂ、ＦＦ５２ｂ、ＦＦ５３ａはクロック信号の立ち上がりに同期するＦＦ回路であり、ＦＦ５１ａ、ＦＦ５１ｂ、ＦＦ５２ａ、ＦＦ５３ｂはそれぞれクロック信号の立下りに同期するＦＦ回路である。回路５０〜５３に供給されるクロック信号は、周期が１０ｎｓであり、Ｄｕｔｙ比が５０％である。クロック信号の情報は、タイミング制約情報１７に記憶されている。
【００６５】
回路５０は、ＦＦ５０ａおよびＦＦ５０ｂがクロック信号の立ち上がりに同期するため、ＦＦ間のクロック周期はクロック信号が立ち上がるタイミングから、当該クロック信号の１周期分となる。
【００６６】
回路５１は、ＦＦ５１ａおよびＦＦ５１ｂがクロック信号の立ち下がりに同期するため、ＦＦ間のクロック周期はクロック信号が立ち下がるタイミングから、当該クロック信号の１周期分となる。
【００６７】
回路５２は、ＦＦ５２ａがクロック信号の立ち下がりに同期し、ＦＦ５２ｂがクロック信号の立ち上がりに同期するため、ＦＦ間のクロック周期はクロック信号が立ち下がるタイミングから、当該クロック信号の半周期分となる。
【００６８】
回路５３は、ＦＦ５３ａがクロック信号の立ち上がりに同期し、ＦＦ５３ｂがクロック信号の立ちさがりに同期するため、ＦＦ間のクロック周期はクロック信号が立ち上がるタイミングから、当該クロック信号の半周期分となる。
【００６９】
ＦＦ回路には、リセットセットＦＦ、トグルＦＦ、ＪＫＦＦ、リセットトグルＦＦ、データＦＦ（以下Ｄ−ＦＦという）などの種類があるが、本実施の形態ではＤ−ＦＦを回路に使用する。
【００７０】
図８はクロック信号の立ち上がりに同期して動作するＤ−ＦＦの回路を示す図である。ＦＦ５４はＦＦシンボル図を示し、回路５５はＦＦ５４の内部回路を示す。ＦＦ５４は、入力端子Ｄ５４、出力端子Ｑ５４およびＦＦ５４をコントロールするクロック入力端子ＣＬＫ５４がある。タイミングチャート５６ａは、ＦＦ５４の基本動作を示すタイミングチャートである。ＦＦ５４は、ＣＬＫ５４がＬＯＷレベルからＨＩＧＨレベルに変化したタイミングｔ１およびｔ２で、入力端子Ｄ５４からの入力データが出力端子Ｑ５４に伝達される。タイミングｔ１およびタイミングｔ２以外の時間は、以前のデータ出力を保持する。
【００７１】
図９はクロック信号の立ち下がりに同期して動作するＤ−ＦＦの回路を示す図である。ＦＦ５７はＦＦのシンボル図を示し、回路５８はＦＦ５７の内部回路を示す。ＦＦ５７は、入力端子Ｄ５７、出力端子Ｑ５７およびＦＦ５７をコントロールするクロック入力端子ＣＬＫ５７がある。ＦＦ５７は、ＣＬＫ５７がＨＩＧＨレベルからＬＯＷレベルに変化したタイミングｔ１およびｔ２で、入力端子Ｄ５７からの入力データが出力端子Ｑ５７に伝達される。タイミングチャート５９は、ＦＦ５７の基本動作を示すタイミングチャートである。タイミングｔ１およびタイミングｔ２以外の時間は、以前のデータ出力を保持する。
【００７２】
さらに、ＦＦに信号を入力するタイミング制約について説明する。ＦＦには入力端子Ｄにデータを出力端子Ｑに伝達するために、サイクルタイム、セットアップタイム、ホールドタイムおよびアクセスタイムなどのタイミング制約がある。図１０は、ＦＦのタイミング制約を説明した表２とタイミングチャート５６ｂである。表２は、ＦＦのタイミング制約についてまとめた表である。タイミングチャート５６ｂは、ＦＦ５４のクロック周期、セットアップタイム、ホールドタイム及びアクセスタイムを示すタイミングチャートである。クロック入力信号がＬＯＷレベルからＨＩＧＨレベルに変化する前後の一定時間内は、入力端子Ｄのデータを保持する必要がある。よって、ＦＦに正しいデータを出力させるためには、セットアップタイムおよびホールドタイムのタイミング制約を満たさなければならない。
【００７３】
次に、図３のステップＳ２３について説明する。タイミング解析部１１は、ステップＳ２１において算出された論理素子の遅延と配線遅延の情報を、ステップＳ２２で抽出されたパス毎に加算し、パス毎の総遅延時間を算出する。そしてタイミング解析部１１は、ステップＳ２２で記憶したＦＦ間のクロック周期、セットアップタイムおよびホールドタイムの情報を参照して、レイアウトにおけるタイミング制約違反の有無を検出する。そして、タイミング解析部１１は、タイミング制約違反の有無を検出し、検出した結果を、パスの各論理素子の遅延時間、基点、終点およびタイミング制約などの条件と共に記憶する。
【００７４】
図１１は図５のＦＦ３６を解析対象とした際のＦＦ間のクロック周期およびタイミング制約を示すタイミングチャートである。ＦＦ３６のＦＦ間のクロック周期は１０ｎｓ、セットアップタイムは２ｎｓ、ホールドタイムは１ｎｓおよびアクセスタイムは１ｎｓである。
【００７５】
ＦＦ３６にデータが入力される遅延時間の基準は、ＦＦ３６の前段に接続されたＦＦ（ＦＦ３２〜３５）のデータ変化のタイミング、ＦＦ間のクロック周期の１周期前となる。
【００７６】
ＦＦ３６の入力端子Ｄのセットアップタイム（ｔＳ）を満足させるためには、データパスの最大遅延時間とＦＦ３６のセットアップタイム（ｔＳ）とを加算した値がＦＦ間のクロック周期より小さければよい。ＦＦ３６の入力端子Ｄにデータが伝達されるまでの時間である、簡単のために、図６の回路３０ｂのパス９０〜９３の遅延時間はそれぞれ、４ｎｓ、４ｎｓ、２ｎｓ、３ｎｓであるとする。ＦＦ３６がセットアップタイムの制約を満たすためには、以下の式を満足させる必要がある。
【００７７】
"クロック周期"≧"最大遅延時間＋ＦＦ３６のセットアップタイム"    …式（１）
ここで、ＦＦ間のクロック周期は１０ｎｓ、最大遅延時間は４ｎｓ、ＦＦ３６のセットアップタイムは２ｎｓとなるため、
１０ｎｓ≧４ｎｓ＋２ｎｓ
となり、ＦＦのセットアップタイムの制約を満たす。
【００７８】
また、ＦＦ３６のホールドタイムの制約を満たすためには、パス最小遅延時間がホールドタイムより大きければよい。よって、以下の式を満足させる必要がある。
【００７９】
"最小遅延時間"≧"ＦＦのホールドタイム"      …式（２）
ここで、最小遅延時間は２ｎｓ、ＦＦ３６のホールドタイムは１ｎｓとなるため、
２ｎｓ≧１ｎｓ
となり、ＦＦ３６のパスはホールドタイムの制約を満たす。ＦＦ３６のパスはタイミング制約を満たすため、処理は終了となる。
【００８０】
次に、ステップＳ２４について説明する。ステップＳ２３において、解析対象のＦＦに接続されたパスがタイミング制約を満たさなかった場合、すなわち式（１）及び式（２）を満たさなかった場合には、タイミング解析部１１を参照し、タイミング制約違反パスの終点であるＦＦと、その前段に接続された論理素子を、解析対象の素子として抽出する。図１２は、タイミング制約違反パスを有する回路６０の図である。回路６０はＦＦ６１〜６４と、組み合わせ回路６５と、３入力ＡＮＤ６６とを有している。ＦＦ６１および６２の出力端子Ｑは３入力ＡＮＤの入力端子ＡおよびＢに接続されている。ＦＦ６３の出力端子Ｑは組み合わせ回路６５の入力端子Ａに接続され、組み合わせ回路６５の出力端子Ｙは３入力ＡＮＤ６６の入力端子Ｃに接続されている。３入力ＡＮＤ６６の出力端子ＹはＦＦ６４の入力端子Ｄに接続されている。
【００８１】
タイミング違反パスがＦＦ６１からＦＦ６４のパス６７と、ＦＦ６２からＦＦ６４のパス６８である場合を説明する。この場合、ＦＦ６４と、その前段に接続されている３入力ＡＮＤ６６を解析対象素子として抽出する。
【００８２】
次に、ステップＳ２５について説明する。図１３は本実施の形態にかかるステップＳ２５を示すフローチャートである。
【００８３】
まず、タイミング解析部１１は、解析対象のＦＦ６４の入力端子Ｄに関するタイミング情報と、パス毎に算出した総遅延時間とを参照して、タイミング制約違反を修正する為に必要な遅延時間を算出する。そして、ライブラリ情報１６を参照し、算出したタイミング制約違反を解消するのに必要な遅延素子、遅延素子数および実際に追加される追加遅延時間を求める。（ステップＳ２５０）。タイミング情報とは、タイミング制約違反パスおよびそのパスに含まれる各論理素子の遅延時間、セットアップタイム、ホールドタイムおよび遅延素子の遅延時間などの情報である。
【００８４】
上記で求めたタイミング制約違反を修正する為に必要な遅延時間から求めた遅延素子と遅延素子数を以下、追加遅延素子、追加遅延素子数ともいう。遅延時間は、式（３）で求める。
【００８５】
"追加遅延時間"＝"遅延素子の遅延時間×遅延素子数"      …式（３）
複数の遅延素子を使用する場合は、各遅延素子の遅延時間の総和を追加遅延時間とする。追加遅延時間は、タイミング制約違反を修正する為に必要な遅延時間より大きくなければならない。よって式（４）で遅延時間が追加遅延時間より長いかどうか判定する。
【００８６】
"追加遅延時間"≧"遅延時間"      …式（４）
例えば、２ｎｓ分の遅延素子ＧＬ２Ｎ０  １個と１ｎｓ分の遅延素子ＧＬ１Ｎ０  １個を用いて各々遅延時間の総和である遅延時間３ｎｓが追加の遅延素子の遅延時間として求まる。
【００８７】
追加遅延素子を挿入する際、最低限追加しなければならない遅延時間は、タイミング制約違反の時間３ｎｓである。この３ｎｓを追加するために、ライブラリ情報１６に登録されている遅延素子を組み合わせて挿入する。よって、実際に追加される遅延素子の総遅延時間は、３ｎｓに一致しない。本実施の形態では、予め登録されたライブラリ情報１６に３ｎｓの遅延時間を有する遅延素子が存在せず、遅延時間２ｎｓの遅延素子６９および遅延時間１ｎｓの遅延素子７０がライブラリ情報１６に登録されていることとする。
【００８８】
追加遅延素子は、タイミング制約違反を解消するために必要な遅延時間ごとに、適正な遅延時間を持つ遅延素子を設計し使用することも可能であるが、設計期間が大幅に増加する為、予め使用する論理素子および遅延素子をライブラリ情報１６に記憶して設計する。なお、３ｎｓの遅延時間を持つ遅延素子がライブラリ情報１６に登録されている場合は、１個の遅延素子で回路を構成してもよい。
【００８９】
また、ステップＳ２５０で求めた遅延時間の回路は、まだレイアウトを実施していない為、正確な配線の遅延を見積もることができない。したがって、ステップＳ２５０では、配線の遅延時間を考慮していない遅延素子の基本遅延時間又は、予めチップの大きさから求めたレイアウトの配線長を用いて計算した遅延時間を用いる。
【００９０】
次に、ステップＳ２５０で入手した情報をもとに、追加遅延時間を挿入しても新たなタイミング制約違反が発生しないかを判定する（ステップＳ２５１）。ステップＳ２５１は、タイミング解析部１１で求めた解析対象のＦＦ６４の入力端子Ｄに関するタイミング情報と、パス毎に算出した総遅延時間と、ステップＳ２５０で求めた遅延素子の回路構成による遅延時間から、セットアップタイムおよびホールドタイムの制約に違反していないか判定する。
【００９１】
セットアップタイム側のタイミング制約違反の判定は、式（５）で行う。ホールドタイム側のタイミング制約違反の判定は、式（６）行う。
【００９２】
"クロック周波数"≧"（タイミング制約違反パスの遅延時間＋追加遅延時間）＋論理素子のセットアップタイム" …式（５）
"タイミング制約違反パスの遅延時間＋追加遅延時間"≧"論理素子のホールドタイム" …式（６）
式（５）および（６）の判定でどちらか一方でも成立しない場合（ステップＳ２５１：否）は、タイミング制約違反パスの遅延素子の挿入箇所を現在の解析対象素子の入力端子から前段の論理素子の入力端子に解析対象を変更（例えば、ＦＦ６４の入力端子Ｄから、前段の３入力ＡＮＤ６６の入力端子Ａへ変更する）し、ステップＳ２５０からの処理を繰り返す（ステップＳ２６６）。
【００９３】
上述したように、ＦＦのホールドタイムは、ＦＦの入力データを正しくＦＦの出力端子に伝達するために入力データを保持していなければならない最小の時間である。ＦＦは、この時間以上データを保持していれば回路は正しく動作する。"タイミング制約違反の時間＝追加の遅延時間"となることがタイミングおよび回路規模の増加がベストの状態であるが、本実施の形態では、ステップＳ２５０で説明したように、予めに登録されているライブラリ情報の遅延素子を使用するため、"タイミング制約違反の時間＝追加の遅延時間"にすることは、極めて困難である。よって、できるだけタイミング制約違反の時間より追加の遅延時間が大きく"タイミング制約違反の時間＝追加の遅延時間"に近い値で調整する。
【００９４】
式（５）および（６）がどちらも成立した場合（ステップＳ２５１：可）は、解析対象素子３入力ＡＮＤ６６が複数の入力端子を持つ論理素子かをライブラリ情報１６を参照して判定する（ステップＳ２５２）。入力端子数の判定は、式（７）で求める。
【００９５】
"入力端子数"＞１      …式（７）
式（７）の判定で成立しない場合（ステップＳ２５２：Ｎｏ）は、ネットリスト１５に記憶した情報を参照して解析対象素子と前段の論理素子の間、あるいは、解析対象素子と後段の論理素子の間にステップＳ２５０で求めた追加遅延素子を挿入する（ステップＳ２６２）。
【００９６】
式（７）の判定が成立する場合（ステップＳ２５２：Ｙｅｓ）は、３入力ＡＮＤ６６のすべての入力端子に関するタイミング情報を入手する（ステップＳ２５３）。ステップＳ２２と同様に、３入力ＡＮＤ６６のすべての入力端子に接続されるパスの各論理素子の遅延時間、セットアップタイム、ホールドタイムおよび遅延素子の遅延時間情報をネットリスト１５、ライブラリ情報１６、タイミング制約情報１７、およびタイミング解析部１１から入手する。ステップＳ２５３で新たに抽出されたタイミング制約違反パスのタイミング制約違反を修正するために必要な遅延時間から、ステップＳ２５０と同様にして、遅延素子、遅延素子数および実際に追加される追加遅延時間を求める。
【００９７】
ここで、具体的には、ＦＦ６１の出力端子ＱからＦＦ６４の入力端子Ｄのパスにタイミング制約違反時間である３ｎｓの遅延時間分として、２ｎｓの遅延素子６９と１ｎｓの遅延素子７０とＦＦ６２の出力端子ＱからＦＦ６４の入力端子Ｄのパスにタイミング制約違反分の遅延時間である２ｎｓの遅延時間分として、２ｎｓの遅延素子６９ａが求まる。
【００９８】
次に、ステップＳ２５３で入手した情報をもとに解析対象素子３入力ＡＮＤ６６のすべての入力端子でホールドタイムのタイミング制約違反パスが複数あるかを判定する（ステップＳ２５４）。判定式を、式（８）、式（９）、式（１０）に示す。タイミング制約違反パスが２パス以上あり、入力端子の数よりも少ない場合は、パスを共通化する。
"タイミング制約違反パス数"≦"１"       …式（８）
"１"＜"タイミング制約違反パス数"＜"入力端子数" …式（９）
"タイミング制約違反パス数"＝"入力端子数"       …式（１０）
【００９９】
式（８）の判定が成立する場合、解析対象素子と前段の論理素子の間にステップＳ２５０で求めた追加遅延素子を挿入する（ステップＳ２６３）。
【０１００】
式（１０）の判定が成立する場合、ステップＳ２６３で解析対象素子と後段の論理素子の間にステップＳ２５０で求めた追加遅延素子を挿入する（ステップＳ２６４）。
【０１０１】
式（９）の判定が成立する場合、共通化のために追加する論理素子と解析対象素子を含めの同一論理となる論理素子をライブラリ情報１６から選択する。まず、解析対象素子のタイミング制約違反のある入力端子（以下、解析対象端子という）数から追加する論理素子の入力端子数を決定する。（ステップＳ２６５）
【０１０２】
図１４はライブラリ情報１６に記憶された正論理（例えば、ＡＮＤの論理素子、ＯＲの論理素子など）と不論理（例えば、ＮＡＮＤの論理素子、ＮＯＲの論理素子など）の論理素子対応を示す表３である。解析対象素子が正論理である場合（ステップＳ２５５：正論理）、解析対象素子の論理を、追加する論理素子の論理に適応する（ステップＳ２５６）。例えば、３入力ＡＮＤ６６の場合、ＡＮＤを選択する。
【０１０３】
具体的には、図１２に示す３入力ＡＮＤ６６の場合は、タイミング制約違反のある入力端子の数が２本であることが判断できるため、解析対象端子の数は２本となり、図１４に示す２入力ＡＮＤを追加の論理素子として選択する。
【０１０４】
解析対象素子が負論理であった場合（ステップＳ２５５：負論理）、解析対象素子の論理を反転した論理を追加の論理素子の論理として適応するか又は、解析対象素子の論理と反転論理で構成した論理構成を選択する（ステップＳ２５７）。
【０１０５】
解析対象素子の論理で構成した論理構成を適応する場合について説明する。例えば、解析対象素子がＮＡＮＤの論理素子の場合は、ＡＮＤの論理素子で追加の論理を適用する。解析対象素子がＮＯＲの論理素子の場合は、ＯＲの論理素子で追加の論理素子を選択する。
【０１０６】
追加の論理素子の選択方法について、予めライブラリ情報１６に登録している論理素子を使用するため、必ず反転論理の素子を対で準備していない場合があり、この場合、インバータの論理素子を使用して論理を構成する必要がある。解析対象素子の論理と反転論理で構成した論理構成を適応する場合について説明する。例えば、解析対象素子がＮＡＮＤの論理素子の場合は、ＮＡＮＤの論理素子とインバータの論理素子で追加の論理を適用する。解析対象素子がＮＯＲの論理素子の場合は、ＮＯＲの論理素子とインバータの論理素子を適用する。
【０１０７】
具体的には、図１４に示す４入力ＮＡＮＤ７２の場合は、解析対象素子の論理と同じ論理の論理素子４入力ＮＡＮＤ７３ａおよびインバータ７３ｂを追加する回路７３として適応する。
【０１０８】
ステップＳ２５６またはステップＳ２５７で追加の論理素子を選択した後、次に追加した論理素子の遅延時間を考慮して、解析対象素子の入力端子においてすべてのタイミング制約違反パスで新たなタイミング制約違反が発生しないかを判定する（ステップＳ２５８）。
【０１０９】
セットアップタイム側のタイミング制約違反の判定は、式（１１）で求める。
"クロック周波数"≧"（タイミング制約違反パスの遅延時間＋追加遅延時間＋追加の論理素子の遅延時間）"＋"セットアップタイム"…式（１１）
【０１１０】
ホールドタイム側のタイミング制約違反の判定は、式（１２）で求める。
"タイミング制約違反パスの遅延時間＋追加遅延時間＋追加の論理素子の遅延時間"≧"素子のホールドタイム"      …式（１２）
すべての入力端子で式（１１）、式（１２）のどちらか一方でも成立しない場合（ステップＳ２５８：否）は、解析対象素子と前段の論理素子の間にステップＳ２５０で求めた追加の遅延素子を挿入する（ステップＳ２６３）。
【０１１１】
ここでは、ステップＳ２５６およびＳ２５７で選択した論理素子と、ステップＳ２５０で求めた追加の遅延素子を挿入する為、タイミング制約違反分より遅延時間がステップＳ２５６またはＳ２５７で選択した論理素子の遅延時間分増加する。
【０１１２】
式（１１）および式（１２）の両方が成立した場合（ステップＳ２５８：可）は、論理素子修正部１３で、タイミング制約違反パスの接続を新たに追加する論理素子の入力端子に変更する。これにより、複数のタイミング制約違反パスを３入力ＡＮＤ６６と２入力ＡＮＤ７１の間で共通化する（ステップＳ２５９）。
【０１１３】
具体的には、論理素子修正部１３は、ネットリスト１５に記憶した３入力ＡＮＤ６６の入力端子ＡおよびＢの接続を切断し、２入力ＡＮＤ７１の入力端子ＡおよびＢに接続する。
【０１１４】
次に、新たに追加した論理素子を含め論理回路全体の論理が等価になるようにオープンになっている１つあるいは複数の解析対象端子をプルアップ／プルダウン／ショートの処理を行う。ここで、タイミング制約違反がないパスの状態を保持するため配線は変更しない（ステップＳ２６０）。
【０１１５】
具体的には、図１２に示す３入力ＡＮＤ６６の入力端子Ａおよび入力端子Ｂに接続されていたネットのどちらか一方のオープンになっている入力端子をプルアップ処理する。
【０１１６】
論理素子のオープンになっている入力端子の処理について、解析対象素子がＡＮＤまたはＮＡＮＤである場合は、プルアップ処理または他の入力端子とショートし、解析対象素子がＯＲまたはＮＯＲである場合は、プルダウン処理または他の入力端子とショートする。
【０１１７】
次に、解析対象素子の入力端子と追加論理素子の出力端子の間にステップＳ２５０で求めた追加の遅延素子を挿入する（ステップＳ２６１）。
【０１１８】
具体的には、３入力ＡＮＤ６６の入力端子Ａと２入力ＡＮＤ７１の出力端子Ｙの間に、タイミング制約違反分の遅延時間分として遅延素子６９および７０を接続する。
【０１１９】
上記の処理により、論理素子を配置および配線したレイアウトでタイミング制約違反パスに挿入する遅延素子の個数が削減でき、結果として面積削減が可能となる。図１５は本実施の形態にかかる設計後の回路８５を示す図であり、図１６は従来の方法で設計した回路７４を示す図である。
【０１２０】
さらに、修正箇所をタイミング制約違反パスのネットリストの配置と配線のみにすることが可能となる。
【０１２１】
なお、２入力ＡＮＤ７１の入力端子Ａと入力端子Ｂに接続するネットは、入れ換えて接続されてもよい。また、３入力ＡＮＤ６６の入力端子Ａと入力端子Ｂに接続されるネットと、一方の端子のプルアップ処理は、入れ換えて接続されてもよい。また、３入力ＡＮＤ６６の入力端子Ａと入力端子Ｂとをショートして接続してもよい。遅延素子６９と７０の順序は、入れ換えてもよい。
【０１２２】
図１２の回路６０で、パス６７にホールドタイムのタイミング制約違反が３ｎｓあり、パス６８にホールドタイムのタイミング制約違反が２ｎｓ存在するとして、従来例と本発明と対比して本発明の効果を説明する。以下の説明文で使用しているＧｒｉｄとは、レイアウトで使用する最小面積単位である。一例として、１Ｇｒｉｄ＝1．５ｕｍ×１．５ｕｍ２とする。
【０１２３】
使用する遅延素子ＧＬＡの遅延時間ＧＬＡＮＳが０．３４８ｎｓ、Ｇｒｉｄ ＧＬＡＧＲが１３Ｇｒｉｄとする。また、使用する遅延素子ＧＬＢの遅延時間ＧＬＢＮＳが０．２１７ｎｓ、Ｇｒｉｄ ＧＬＢＧＲが１２Ｇｒｉｄとしてタイミング制約違反の時間分の遅延時間と面積を求める。
【０１２４】
３ｎｓ分の遅延素子ＧＬ３Ｎの遅延時間ＧＬ３ＮＳおよび面積ＧＬ３ＵＭは、以下のように２ｎｓ分の遅延素子ＧＬ２Ｎ０と１ｎｓ分の遅延素子ＧＬ１Ｎ０を加算したものになる。
【０１２５】
３ｎｓ分の遅延素子の遅延時間ＧＬ３ＮＳは、
ＧＬ３ＮＳ＝ＧＬ２ＮＳ０＋ＧＬ１ＮＳ０
＝（０．３４８ｎｓ×８個）＋（０．２１７ｎｓ×１個）
＝  ３．００１ｎｓ                          …式ａ１
遅延素子の個数：９個
３ｎｓ分の遅延素子ＧＬ３ＮのＧｒｉｄ ＧＬ３ＧＲは、
ＧＬ３ＧＲ＝ＧＬ２ＮＳ０＋ＧＬ１ＮＳ０
＝（１３Ｇｒｉｄ×８個）＋（１２Ｇｒｉｄ×１個）
＝１１６Ｇｒｉｄ                            …式ａ２
３ｎｓ分の遅延素子ＧＬ３Ｎの面積ＧＬ３ＵＭは、
ＧＬ３ＵＭ＝ＧＬ３ＧＲ×１．５ｕｍ×１．５ｕｍ
＝１１６Ｇｒｉｄ×１．５ｕｍ×１．５ｕｍ
＝２６１ｕｍ２                                …式ａ３
２ｎｓ分の遅延素子ＧＬ２Ｎ1の遅延時間ＧＬ２ＮＳおよび面積ＧＬ２ＵＭは、以下のようになる。
【０１２６】
２ｎｓ分の遅延素子ＧＬ２Ｎ1の遅延時間ＧＬ２ＮＳは、
ＧＬ２ＮＳ＝０．３４８ｎｓ×６個＝２．０８８ｎｓ  …式ａ４
遅延素子の個数：６個
２ｎｓ分の遅延素子ＧＬ２Ｎ1のＧｒｉｄ ＧＬ２ＧＲは、
ＧＬ２ＧＲ＝１３Ｇｒｉｄ×６個＝７８Ｇｒｉｄ  …式ａ５
２ｎｓ分の遅延素子ＧＬ２Ｎ1の面積ＧＬ２ＵＭは、
ＧＬ２ＵＭ＝ＧＬ２ＧＲ×１．５ｕｍ×１．５ｕｍ
＝７８Ｇｒｉｄ×１．５ｕｍ×１．５ｕｍ
＝１７５．５ｕｍ２                          …式ａ６
従来技術でタイミング制約違反を修正した場合、図１６のように３ｎｓ分の遅延素子ＧＬ３Ｎ(ＧＬ２Ｎ０+ＧＬ１Ｎ０)と２ｎｓ分の遅延素子ＧＬ２Ｎ１が並列で挿入されるため、増加する面積Ｓ１は、式ａ３と式ａ６の合計となる。
Ｓ１＝ＧＬ３ＵＭ＋ＧＬ２ＵＭ
＝２６１ｕｍ２＋１７５．５ｕｍ２＝４３６．５ｕｍ２  …式ａ７
増加素子の個数：１５個
本実施の形態の方法でタイミング制約違反を修正した場合、図３のように３ｎｓ分の遅延素子ＧＬ３Ｎ(ＧＬ２Ｎ０+ＧＬ１Ｎ０)が２ｎｓ分の遅延素子ＧＬ２Ｎ１と共通の遅延素子として挿入されるため、増加する面積Ｓ２は、追加の２入力ＡＮＤの論理素子ＧＡ２の面積ＧＡ２ＵＭと遅延素子ＧＬ３Ｎの面積ＧＬ３ＵＭの合計となる。
２入力ＡＮＤの論理素子ＧＡ２の面積ＧＡ２ＵＭは、
２入力ＡＮＤの論理素子ＧＡ２のＧｒｉｄが６Ｇｒｉｄである為
ＧＡ２ＵＭ＝６Ｇｒｉｄ×１．５ｕｍ×１．５ｕｍ＝１３．５ｕｍ２…式ａ８
増加する面積Ｓ２は、
Ｓ２＝ＧＬ３ＵＭ＋ＧＡ２ＵＭ
＝２６１ｕｍ２＋１３．５ｕｍ２＝２７４．５ｕｍ２              …式ａ９
増加素子の個数：１０個
本発明による面積削減効果は、式ａ７と式ａ９の差分で表され
４３６．５ｕｍ２−２７４．５ｕｍ２＝１６２ｕｍ２
となる。
【０１２７】
本発明の設計方法の実施後の遅延素子数は、下の計算で示す通り１５個から１０個になり、タイミング制約違反修正のための遅延素子の挿入個数が削減され、面積は、７２Ｇｒｉｄ（１６２ｕｍ２）の削減が可能である。
【０１２８】
本発明の実施の形態２
以下、図面を参照して本実施の形態について説明する。図１７は、本実施の形態にかかる回路設計装置１としての回路設計プログラム７を示す図である。図１８は、本実施の形態にかかるステップＳ２５の詳細を示すフローチャートである。本実施の形態にかかる回路設計プログラム７は、実施の形態１の回路設計プログラム６に加え、テーブル情報７５を有している。テーブル情報７５は、テーブル毎に、解析対象素子、解析対象端子の数および解析対象端子がタイミング制約違反を解消する為に必要とする遅延時間から、新たに追加する論理素子、追加する論理素子および遅延素子の挿入する場所、新たな配線および元の解析対象素子でオープンとなる端子の処理方法を記憶している。
【０１２９】
図１９は、テーブル情報７５を示す図である。テーブル１は、解析対象素子の３入力ＡＮＤ７６の入力端子ＡおよびＢがタイミング制約違反の入力端子である場合に、３入力ＡＮＤ７６の入力端子Ａと追加する２入力ＡＮＤ７７の出力端子Ｙとを接続する情報を有する。そして、当該新しく接続した３入力ＡＮＤ７６の入力端子Ａと、追加する２入力ＡＮＤ７７の出力端子Ｙの間を、タイミング制約違反分の遅延素子を挿入する位置Ｌ１１の情報を有する。さらに、３入力ＡＮＤ７６の入力端子ＢをＨＩＧＨに接続してプルアップ処理する情報を有する。
【０１３０】
テーブル２は、解析対象素子の４入力ＡＮＤの７８の入力端子ＡおよびＢがタイミング制約違反の入力端子である場合に、４入力ＡＮＤ７８の入力端子Ａと追加する２入力ＡＮＤ７９の出力端子Ｙとを接続する情報を有する。そして、当該新しく接続した４入力ＡＮＤ７８の入力端子Ａと、追加する２入力ＡＮＤ７９の出力端子Ｙの間を、タイミング制約違反分の遅延素子を挿入する位置Ｌ２１の情報を有する。さらに、４入力ＡＮＤ７８の入力端子ＢをＨＩＧＨに接続してプルアップ処理する情報を有する。
【０１３１】
テーブル３は、解析対象素子の５入力ＮＯＲ８０の入力端子Ｂ、ＣおよびＥがタイミング制約違反の入力端子である場合に、５入力ＮＯＲ８０の入力端子Ｂと追加した３入力ＮＯＲ８１の出力端子Ｙを接続する情報を有する。そして、当該新しく接続した５入力ＮＯＲ８０の入力端子Ｂと、追加した３入力ＮＯＲ８１の出力端子Ｙの間を、タイミング制約違反分の遅延素子を挿入する位置Ｌ３１の情報を有する。さらに、５入力ＮＯＲ８０の入力端子ＣおよびＥをプルダウン処理する情報を有する。
【０１３２】
次に、実施の形態２の動作について説明する。図１８において、図１３と同一の符号は、同一の処理及び情報を示す。ステップＳ２１からステップＳ２５４までの動作は、実施の形態１と同様である。
【０１３３】
まず、レイアウトステップＳ２１からタイミング制約違反数確認ステップＳ２５４まで処理を行う。タイミング制約違反数確認ステップＳ２５４で、図１２に示す解析対象素子３入力ＡＮＤ６６で式（９）が成立する場合について説明する。
【０１３４】
実施の形態１と異なり、実施の形態２では、ステップＳ２５５ではなく、図１９のテーブル情報７５の有する情報から、解析対象素子の３入力ＡＮＤ６６と同じテーブル１の変換後の論理構成の情報を入手する（ステップＳ２７０）。
【０１３５】
次に、テーブル１から求めた新たに追加する論理素子および遅延素子の情報をもとに配線を変換する（ステップＳ２５８〜２６１）。追加の論理素子と入力端子の制御方法の選択を予めテーブルに記憶させていることで、処理を容易にすることが可能である。
【０１３６】
また、本実施の形態においては、解析対象端子の数が増加しても挿入する遅延素子の数を抑制し、それにより回路面積の増加を抑制することができる。解析対象端子の数が２本よりも多い場合、たとえば３本、４本と増えた場合にも適用することができる。なぜなら、複数のタイミング制約違反パスを共通化する場合も、共通化する前の回路と論理等価となるように追加する論理構成を構築できるからである。
【０１３７】
一例として、図１９のテーブル３で、３本の入力端子を共通化する場合について説明する。
【０１３８】
実施の形態２において、ステップＳ２７０で、図１９のテーブル３を選択した場合に、入力端子Ｂ３、Ｃ３、Ｅ３〜出力端子Ｙ３を経由したパスで、タイミング違反がそれぞれ２ｎｓであったとする。遅延時間と論理素子の増加は以下のようになる。
【０１３９】
３入力ＯＲの面積：２０．２５ｕｍ２
２ｎｓの遅延素子の面積：１７５．５ｕｍ２
（ｉ）共通化しない場合
２ｎｓの遅延素子が３箇所に必要となり、増加する面積は、
１７５．５ｕｍ２×３箇所＝５２６．５ｕｍ２
（ｉｉ）共通化する場合
共通化のための論理素子の３入力ＯＲと２ｎｓの遅延素子が１箇所に必要となり、増加する面積は、
２０．２５ｕｍ２＋１７５．５ｕｍ２×１箇所＝１９５．７５ｕｍ２
共通化することで、３３０．７５ｕｍ２の削減が可能となる。
【０１４０】
解析対象端子が４本である場合でも、共通化するための論理素子が大きくなるが、基本的に追加する論理素子の入力端子を増加することで対応できる。解析対象端子を共通化すための論理素子は大きくなるが、遅延素子が共通化されることにより、全体として論理素子の増加を抑制することができる。
【０１４１】
実施の形態３
本実施の形態では、解析対象端子が複数あり、かつタイミングの遅延時間の大きさが端子によって異なる場合に、挿入可能となるまで遅延素子の遅延時間を変更し、挿入可能となった場合に、追加の論理素子の入力端子と出力端子に遅延素子を分割して挿入する。
【０１４２】
共通の遅延素子では追加の遅延時間が不十分な場合には、不足する遅延時間を補うため、さらに遅延素子を挿入する。
【０１４３】
実施の形態３の全体を示すフローチャートは、実施の形態１と同様である。図２０は、実施の形態３にかかるステップＳ２５の詳細な動作を示すフローチャートである。
【０１４４】
図２０において、図１３と同一の符号は、同一の処理及び情報を示す。実施の形態３ではステップＳ２６５とステップＳ２５０からステップＳ２５７まで実施の形態１と同様の動作を行う。
【０１４５】
ステップＳ２５８では、すべての解析対象端子で、式（１１）および式（１２）のどちらか一方でも成立しない場合は、実施の形態１と異なり、すべての解析対象端子に挿入する遅延時間と出力側に挿入する遅延時間を分割する処理を行う（ステップＳ２９０〜ステップＳ２９１）。
【０１４６】
すべての解析対象端子の遅延時間を分割する処理が終了していない場合（ステップＳ２９０：Ｎｏ）、解析対象端子の数だけ、遅延時間を分割する処理を行う（ステップＳ２９１）。ステップＳ２９１は、タイミング制約違反を解消する為に挿入する遅延時間を分割し、解析対象素子の入力端子側に共通に挿入することができる共通遅延時間を算出する。共通遅延時間は、ステップＳ２５０で求めた追加遅延時間とステップＳ２５３で求めた追加遅延時間の大きい方から選択をする。
【０１４７】
遅延時間の分割を行い（ステップＳ２９１）、共通遅延時間と解析対象素子のタイミング制約違反パスのタイミング制約違反を解消する為に必要な遅延時間との差分（以下、差分遅延時間）を新たな追加遅延時間とする（ステップＳ２５８）。
【０１４８】
具体的には、解析対象素子のタイミング制約違反を修正する為に必要な遅延時間と共通遅延時間の差分からタイミング情報入手１ステップＳ２５０と同様、遅延素子と遅延素子数と実際に追加される差分遅延時間を求める。
【０１４９】
上記で求めたタイミング制約違反を修正するために必要な共通遅延時間から求めた遅延素子と遅延素子数を以下、共通遅延素子と呼ぶ。また、タイミング制約違反を修正するために必要な差分遅延時間から求めた遅延素子と遅延素子数を以下、差分遅延素子と呼ぶ。上記で求めた差分遅延時間と追加論理素子の遅延時間の総和で新たなタイミング制約違反が発生しない場合、（ステップＳ２５８：可）、共通の論理素子を挿入する（ステップＳ２５９）。
【０１５０】
ここで、すべての解析対象素子に対し、全てのパスに対して遅延時間を分割しても新たに論理素子又は遅延素子を挿入できない場合（ステップＳ２５８：否）であって、すべての解析対象端子の数だけ処理が終了した場合（ステップＳ２９０：Ｙｅｓ）は、ステップＳ２６３を行い、ステップＳ２５０で求めた遅延素子を挿入する。
【０１５１】
すべての解析対象端子で式（１１）、式（１２）が成立した場合は、実施の形態１同様に、論理素子を挿入する（ステップＳ２５９）。次に、ステップＳ２６０で入力端子の処理を行った後、差分遅延素子を挿入する（ステップＳ２９２）。
【０１５２】
図２１は本実施の形態にかかる回路９５を示す図である。ステップＳ２９２において、差分遅延素子９６と共通遅延素子９７を挿入する。図に示すように、解析対象の３入力ＡＮＤ６６の入力端子ＡとステップＳ２５９で挿入した２入力ＡＮＤ７１の出力端子Ｙの間に、ステップＳ２９１で求めた遅延時間分の共通遅延素子９７を挿入する。さらに差分遅延素子９６を追加の２入力ＡＮＤ７１の入力端子Ａに接続する。
【０１５３】
追加の論理素子の遅延時間とタイミング制約違反を解消する為に必要な遅延時間を一箇所に挿入した場合では遅延素子の共有ができない場合でもタイミング制約違反を解消する為に必要な遅延時間を共通化する論理素子の入力端子に挿入する遅延時間と出力側に挿入する遅延時間に分割することで、共通に挿入できる遅延時間を求めることができ、さらに面積を削減できる。
【０１５４】
本実施の形態においては、解析対象素子を通るパスをタイミング制約違反パスとタイミング制約違反のないパスとに分離し、タイミング制約違反分の遅延素子の挿入箇所を共通化することで遅延素子の挿入数の削減が可能となる。よって、タイミング制約違反修正の遅延素子挿入の面積削減をすることができる。
【０１５５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【０１５６】
１  回路設計装置
２  コンピュータ装置
３  サーバ
４  記憶媒体
５  ネットワーク
６  回路設計プログラム
７  回路設計プログラム
１０  レイアウト部
１１  タイミング解析部
１２  選択部
１３  論理素子修正部
１４  回路情報
１５  ネットリスト
１６  ライブラリ情報
１７  タイミング制約情報
１８  レイアウト情報
１９  配置情報
２０  配線情報
３０ａ、３０ｂ  回路
３１  インバータ
３２〜３６  ＦＦ
３７  ２入力ＯＲ
３８  ２入力ＮＡＮＤゲート
３９  ２入力ＡＮＤゲート
４１〜４８  ネット
５０ａ〜５３ａ  ＦＦ
５０ｂ〜５３ｂ  ＦＦ
５０ｃ〜５３ｃ  ＦＦ間のタイミングチャート
５４  ＦＦシンボル図
５５  ＦＦの回路図
５６ａ  ＦＦのタイミングチャート
５７  ＦＦシンボル図
５８  ＦＦの回路図
５９ａ  ＦＦのタイミングチャート
６０  回路図
６１〜６４  ＦＦ
６５  組み合わせ回路
６６  ３入力ＡＮＤ
６７、６８  パス
６９、６９ａ、７０  遅延素子
７１  ２入力ＡＮＤ
７２  ４入力ＮＡＮＤ
７３  回路
７３ａ  ４入力ＮＡＮＤ
７３ｂ  インバータ
７４  回路
７５  テーブル情報
７６  ３入力ＡＮＤ
７７  ２入力ＡＮＤ
７８  ４入力ＡＮＤ
７９  ２入力ＡＮＤ
８０  ５入力ＮＯＲ
８１  ３入力ＯＲ
８５  回路
９０〜９３  パス
９５  回路
９６  差分遅延素子
９７  共通遅延素子
Ｌ１１〜Ｌ３１  遅延素子挿入位置
１５０〜１５８、１６３  ＦＦ
１５９、１６０、１６１、１６２、１７０〜１７２、１７４、１７８、１７９  ＡＮＤ
１６４、１７３、１７５〜１７７  バッファ
【図１】
2011164740.tif 000003
【図２】
2011164740.tif 000004
【図３】
2011164740.tif 000005
【図４】
2011164740.tif 000006
【図５】
2011164740.tif 000007
【図６】
2011164740.tif 000008
【図７】
2011164740.tif 000009
【図８】
2011164740.tif 000010
【図９】
2011164740.tif 000011
【図１０】
2011164740.tif 000012
【図１１】
2011164740.tif 000013
【図１２】
2011164740.tif 000014
【図１３】
2011164740.tif 000015
【図１４】
2011164740.tif 000016
【図１５】
2011164740.tif 000017
【図１６】
2011164740.tif 000018
【図１７】
2011164740.tif 000019
【図１８】
2011164740.tif 000020
【図１９】
2011164740.tif 000021
【図２０】
2011164740.tif 000022
【図２１】
2011164740.tif 000023
【図２２】
2011164740.tif 000024
【図２３】
2011164740.tif 000025
【図２４】
2011164740.tif 000026