(57)【要約】【課題】ＬＳＩ等の半導体チップの面積の拡大を防ぎ、又設計期間を短縮しつつ、効率よく消費電力を低減できる自動設計システム、及び自動設計方法を提供することである。【解決手段】ＬＳＩのパターンレイアウトに用いる論理回路の回路情報を入力する入力装置１と、グリッチが発生する回路素子を検索するグリッチ検索部２１と、回路素子の入力端へ信号を出力するフリップフロップ（Ｆ／Ｆ）のクロック入力端に入力されるクロック信号のスキューを算定するスキュー算定部２２と、スキューを第１目標スキューとして設定することにより、グリッチを削減できるか否かを解析する回路情報解析部３１と、グリッチを削減できると解析された場合に、第１目標スキューを設定する第１目標スキュー設定部３２ａと、グリッチを削減できないと解析された場合に、第１ラッチを挿入する第１ラッチ挿入部３３ａとを備える。【選択図】　　　図１
2004133702.tif 000002
【特許請求の範囲】
【請求項１】
ＬＳＩのパターンレイアウトに用いる論理回路の回路情報を入力する入力装置と、
前記論理回路上においてグリッチが発生する回路素子を検索するグリッチ検索部と、
前記回路素子の入力端へ信号を出力するフリップフロップ（Ｆ／Ｆ）のクロック入力端に入力されるクロック信号のスキューを算定するスキュー算定部と、
前記スキューを第１目標スキューとして設定することにより、前記グリッチを削減できるか否かを解析する回路情報解析部と、
前記グリッチを削減できると解析された場合に、前記第１目標スキューを設定する第１目標スキュー設定部と、
前記グリッチを削減できないと解析された場合に、前記回路素子の出力端からの信号伝播経路に、第１ラッチを挿入する第１ラッチ挿入部
とを備えることを特徴とする自動設計システム。
【請求項２】
前記第１目標スキューを設定し、又は前記第１ラッチを挿入した前記論理回路に、半導体チップ領域上にクロック配線を行うクロック配線処理部と、
前記クロック配線後に、前記論理回路が正常に動作するためのタイミング制約を満たすか否かを検証するタイミング検証部と、
前記タイミング制約を満たさないと検証された場合に、前記タイミングを満たすように第２目標スキューを設定する第２目標スキュー設定部
とを更に備えることを特徴とする請求項１に記載の自動設計システム。
【請求項３】
前記第１目標スキューを設定し、又は前記第１ラッチを挿入した前記論理回路に、半導体チップ領域上にクロック配線を行うクロック配線処理部と、
前記クロック配線後に、前記論理回路が正常に動作するためのタイミング制約を満たすか否かを検証するタイミング検証部と、
前記タイミング制約を満たさないと検証された場合に、前記タイミングを満たすように第２ラッチを挿入する第２ラッチ挿入部
とを更に備えることを特徴とする請求項１に記載の自動設計システム。
【請求項４】
前記第１又は第２目標スキューの設定前後で、前記論理回路中のグリッチ消費電力を見積もるグリッチ消費電力見積部と、
前記第１又は第２目標スキューの設定前後で、前記クロック配線、及び前記回路素子の総消費電力を見積もる総消費電力見積部と、
前記グリッチ消費電力の増減と、前記総消費電力の増減を比較する回路消費電力比較部
とを更に備えることを特徴とする請求項１乃至３の何れか１項に記載の自動設計システム。
【請求項５】
ＬＳＩのパターンレイアウトに用いるゲーテッドクロック設計された論理回路の回路情報を入力する入力装置と、
前記論理回路が正常に動作するためのタイミング制約を満たすか否かの検証を行う第１タイミング検証部と、
前記ゲーテッドクロック設計された半導体チップ領域上の論理回路に対し、第１クロック配線をする第１クロック配線処理部と、
前記第１クロック配線処理された後に、前記論理回路が前記タイミング制約を満たすか否かの検証を行う第２タイミング検証部と、
前記第２タイミング検証部で前記タイミング制約を満たさないと検証された場合、前記タイミングを満たさないクリティカルパスのうち最大のスラック値を算定するスラック値算定部と、
前記スラック値が正となるように目標スキューを設定する目標スキュー設定部
とを備えることを特徴とする自動設計システム。
【請求項６】
前記目標スキューの設定後に、前記目標スキューを満たすように第２クロック配線処理を行う第２クロック配線処理部を更に備えることを特徴とする請求項５に記載の自動設計システム。
【請求項７】
ＬＳＩのパターンレイアウトに用いる論理回路の回路情報を入力するステップと、
前記論理回路上においてグリッチが発生する回路素子を検索するステップと、
前記回路素子の入力端へ信号を出力するＦ／Ｆのクロック入力端に入力されるクロック信号のスキューを算定するステップと、
前記スキューを第１目標スキューとして設定することにより、前記グリッチを削減できるか否かを解析するステップと、
前記グリッチを削減できると解析された場合に、前記第１目標スキューを設定するステップと、
前記グリッチを削減できないと解析された場合に、前記回路素子の出力端からの信号伝播経路に、第１ラッチを挿入するステップ
とを備えることを特徴とするコンピュータを用いた自動設計方法。
【請求項８】
前記第１目標スキューを設定し、又は前記第１ラッチを挿入した前記論理回路に、半導体チップ領域上にクロック配線を行うステップと、
前記クロック配線後に、前記論理回路が正常に動作するためのタイミング制約を満たすか否かを検証するステップと、
前記タイミング制約を満たさないと検証された場合に、前記タイミングを満たすように第２目標スキューを設定するステップ
とを更に備えることを特徴とする請求項７に記載の自動設計方法。
【請求項９】
前記第１目標スキューを設定し、又は前記第１ラッチを挿入した前記論理回路に、半導体チップ領域上にクロック配線を行うステップと、
前記クロック配線後に、前記論理回路が正常に動作するためのタイミング制約を満たすか否かを検証するステップと、
前記タイミング制約を満たさないと検証された場合に、前記タイミングを満たすように第２ラッチを挿入するステップ
とを更に備えることを特徴とする請求項７に記載の自動設計方法。
【請求項１０】
前記目標スキューの設定前後で、前記論理回路のグリッチ消費電力を見積もるステップと、
前記目標スキューの設定前後で、配線や回路素子の総消費電力を見積もるステップと、
前記グリッチ消費電力の増減と、前記総消費電力の増減を比較するステップ
とを更に備えることを特徴とする請求項７乃至９の何れか１項に記載の自動設計方法。
【請求項１１】
ＬＳＩのパターンレイアウトに用いるゲーテッドクロック設計された論理回路の回路情報を入力するステップと、
前記論理回路が正常に動作するためのタイミング制約を満たすか否かの検証を行うステップと、
前記ゲーテッドクロック設計された半導体チップ領域上の論理回路に対し、第１クロック配線をするステップと、
前記第１クロック配線処理された後に、前記論理回路が前記タイミング制約を満たすか否かの検証を行うステップと、
前記第１クロック配線処理された後の論理回路が前記タイミング制約を満たさないと検証された場合、前記タイミングを満たさないクリティカルパスのうち最大のスラック値を算定するステップと、
前記スラック値が正となるように目標スキューを設定するステップ
とを備えることを特徴とするコンピュータを用いた自動設計方法。
【請求項１２】
前記目標スキューの設定後に、前記目標スキューを満たすように第２クロック配線処理を行うステップを更に備えることを特徴とする請求項１１に記載の自動設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータを用いたＬＳＩの自動設計技術に関する。
【０００２】
【従来の技術】
近年、ＬＳＩ等の半導体チップは高集積化、大型化する傾向にあり、更にＬＳＩ化された回路に供給されるクロックの周波数は飛躍的に向上している。これに伴い、半導体チップの消費電力も大きくなりつつある。そのため、バッテリーを電源とする携帯機器等にＬＳＩ化された回路を搭載する場合、１回の充電で機器が動作できる時間が短くなり、回路の消費電力の低減が要請されている。
【０００３】
消費電力の低減を実現するための方法の１つに、回路で発生するグリッチの削減がある。例えば、図３（ａ）に示すような回路があった場合、図３（ｂ）のタイムチャートに示すように、入力信号が時刻ｔ０にクロックＡと同期して、Ｆ／Ｆ４０で１→０、Ｆ／Ｆ４１で１→０と出力信号が変化したとする。ここで、Ｆ／Ｆ４０、４１は、立ち上がりエッジトリガータイプのものである。この場合、Ｆ／Ｆ４０の出力信号は配線４０１、インバータ４０３、配線４０２を伝播してＯＲゲート４５に到達する。一方、Ｆ／Ｆ４１の出力信号は配線４０４を伝播してＯＲゲート４５に到達する。信号の伝播の際には、配線や回路素子等による信号の伝播遅延が生じる。図３（ａ）に示す回路において、例えば配線４０１で０．１ｎｓ、バッファ４０３で０．２ｎｓ、配線４０２で０．１ｎｓの伝播遅延が生じたとすると、Ｆ／Ｆ４０の出力信号がＯＲゲートに到達するのは、０．１ｎｓ＋０．２ｎｓ＋０．１ｎｓ＝０．４ｎｓ後の図３（ｂ）に示した時刻ｔ２である。一方、図３（ａ）に示す回路において、例えば配線４０４で０．１ｎｓの伝播遅延が生じたとすると、Ｆ／Ｆ４１の出力信号がＯＲゲート４５に到達するのは、０．１ｎｓ後の図３（ｂ）に示した時刻ｔ１である。よって、ｔ２−ｔ１＝０．３ｎｓの伝播時間のずれを生じて、Ｆ／Ｆ４０及び４１の出力信号がＯＲゲート４５に到達する。更にＯＲゲート４５で０．１ｎｓの伝播遅延が生じたとすると、図３（ｂ）に示すようにＯＲゲート４５の出力信号で、時刻ｔ４に１→０、時刻ｔ５に０→１と２度のスイッチングがあり、グリッチが生じる。しかし、グリッチは、回路が実行するタスクに対して何ら影響を与えない。即ち、グリッチにより消費される電力はまったく無駄なもので、可能な限り低減することが望ましい。
【０００４】
又、グリッチによる消費電力を低減する手法の１つとして、組み合わせ回路部分にラッチを挿入する手法がある（例えば、非特許文献１参照）。例えば図３（ａ）のように、ＯＲゲート４５の出力先にラッチ４２を挿入する。ラッチ４２は、クロックＢが１のときに入力信号を出力信号に伝播して、クロックＢが０のときに入力信号を伝播しない。更に、ラッチ４２のクロック入力信号であるクロックＢは、図３（ｂ）のように、クロックＡよりも位相がｔ３−ｔ６だけずれるように設定する。この場合、ラッチ４２において入力信号を取り込むのは、図３（ｂ）に示した時刻ｔ３であるため、それ以前にラッチ４２へ入力されるグリッチは、ラッチ４２の出力信号に現れない。これにより、ラッチ４２の出力信号で、グリッチが削除できる。この結果、消費電力を低減させることができる。
【０００５】
又、消費電力の低減を実現するための他の方法として、ゲーテッドクロック設計がある（例えば、非特許文献２参照）。これは、各レジスタにクロックが常に供給され、クロック・ツリー全体に常時クロックが供給されることにより消費電力の増加が非常に大きくなるという問題を解決するための手法である。ゲーテッドクロック設計は、例えば図９（ａ）に示すようにクロックＣＬＫとレジスタ群１０４の間に、Ｆ／Ｆ１０５〜１０７、イネーブル回路１０３、ＡＮＤゲート１０１を挿入し、ＡＮＤゲート１０１の一方の入力端にはレジスタ転送条件であるイネーブル回路１０３の出力信号が入力される。そして、レジスタ転送条件が成立しイネーブル回路１０３の出力信号が１のときにのみ、ＡＮＤゲート１０１が導通してクロックがレジスタ群１０４に供給され、レジスタ群１０４で論理回路１０９の出力信号が取り込まれる。これにより、レジスタ転送条件不成立時に現在の値を保持するためのフィードバック・ループはレジスタに不要であり、又クロックがレジスタに供給される回数が少なくなることによりクロック・ツリーの振幅回数を減らすことができ、消費電力を低減させることができる。
【０００６】
ＬＳＩ設計では、先ず論理設計が行われ、各ゲートの配置処理が行われた後、クロック配線が行われる。従って、ゲーテッドクロック設計でも、図８に示すように、先ずステップＳ９０１で論理設計が行われ、ステップＳ９０２でこの論理設計に対応する各ゲートの配置処理が行われた後、ステップＳ９０３で各記憶素子のクロック端子を接続するクロック配線の設計処理が行われる。ここで、「記憶素子」とは、Ｆ／Ｆ、ラッチ、メモリ等の値を保持できる回路素子の総てを指す。クロック配線処理の１つとして、クロックのスキューの最小化を図るためクロック・ツリー合成（ＣＴＳ）処理が用いられる場合がある（例えば、特許文献１参照）。ＣＴＳ処理では、図１０に示すように、ラッチ１１５とラッチ１１６、ラッチ１１７とラッチ１１８、ラッチ１１９とラッチ１２０、ラッチ１２１とラッチ１２２をそれぞれ同じ配線距離ｄで二つのクロック端子を結ぶ。次に配線１２５と配線１２６、配線１２７と配線１２８の中点をそれぞれ同じ配線距離Ｄの配線１３１及び１３２で結ぶ。そして更に、配線１３１及び１３２の中点をそれぞれ同じ配線距離の配線１４１及び１４２で結ぶ。このような配線処理を繰り返すことにより、クロックがクロック端子へ到達する際の伝播遅延を均等にする。この結果、クロックのスキューを最小化させてクロック配線が行うことができる。
【０００７】
【特許文献１】
特開平１１−１１９８５３
【０００８】
【非特許文献１】
Ｖ．Ｔｉｗａｒｉ　ｅｔ　ａｌ．，　”Ｇｕａｒｄｅｄ　Ｅｖａｌｕａｔｉｏｎ：　Ｐｕｓｈｉｎｇ　Ｐｏｗｅｒ　Ｍａｎａｇｅｍｅｎｔｔｏ　Ｌｏｇｉｃ　Ｓｙｎｔｈｅｓｉｓ／Ｄｅｓｉｇｎ”，　Ｐｒｏｃｅｅｄｉｎｇｓ　Ｉｎｔｅｒｎａｔｉｏｎａｌ　Ｓｙｍｐｏｓｉｕｍ　ｏｎ　Ｌｏｗ　Ｐｏｗｅｒ　Ｄｅｓｉｇｎ，　１９９５
【０００９】
【非特許文献２】
Ｔ．Ｋｉｔａｈａｒａ　ｅｔ　ａｌ．，　”Ａ　Ｃｌｏｃｋ−Ｇａｔｉｎｇ　Ｍｅｔｈｏｄ　ｆｏｒ　Ｌｏｗ−Ｐｏｗｅｒ　ＬＳＩ　ｄｅｓｉｇｎ”，　Ｐｒｏｃｅｅｄｉｎｇｓ　Ａｓｉａ　ａｎｄ　Ｓｏｕｔｈ　Ｐａｃｉｆｉｃ　ｄｅｓｉｇｎ　Ａｕｔｏｍａｔｉｏｎ　Ｃｏｎｆｅｒｅｎｃｅ，　１９９８
【００１０】
【発明が解決しようとする課題】
組み合わせ回路部分にラッチを挿入する手法では、グリッチを削減しようとする部分の総てにラッチを挿入するため、ラッチ挿入によりＬＳＩ等の半導体チップの面積が拡大するという問題があった。この結果、消費電力の低減を実現するための障害となっていた。
【００１１】
又、ゲーテッドクロック設計でＣＴＳ処理を用いてクロック配線が行われると、図９（ｂ）に示すゲーテッドクロック設計された論理回路のように、Ｆ／Ｆ１０５〜１０７からイネーブル回路１０３の出力に至るまでの経路はそれぞれ異なることから、クロック配線後にＦ／Ｆ１０５〜１０７の出力信号からレジスタ群１０４ａ、１０４ｂまでのタイミング制約を満たさなくなる場合がある。又、クロックスキューを調整するために、ＡＮＤゲート１０１の出力先にバッファ１１２ａ、１１２ｂがクロック配線処理時に追加されることがある。この場合は、ＡＮＤゲート１０１の出力端からレジスタ群１０４ａ、１０４ｂまでの伝播遅延が増える。このため、Ｆ／Ｆ１０５〜１０７からレジスタ群１０４ａ、１０４ｂの論理回路中に、タイミング制約が満たされないクリティカルパスが生じることがある。この場合、論理設計まで戻ってレジスタにゲーテッドクロック設計を用いないよう論理設計の変更を行い、再度レイアウト処理を実行する必要があった。このようなレイアウトの再実行は、設計期間を増大させるという問題点があった。更に、ゲーテッドクロック設計を用いないため、レジスタ群１０４ａ、１０４ｂにクロックが常に供給され、レジスタ群１０４ａ、１０４ｂの消費電力を低減できないという性能上の影響も生じていた。この結果、消費電力の低減を実現するための障害となっていた。
【００１２】
本発明は、上述のごとき従来の課題を解決するためになされたもので、その目的は、ＬＳＩ等の半導体チップの面積の拡大を防ぎ、又設計期間を短縮しつつ、効率よく消費電力を低減できる自動設計システム、及び自動設計方法を提供することである。
【００１３】
【課題を解決するための手段】
本発明の第１の特徴は、ＬＳＩのパターンレイアウトに用いる論理回路の回路情報を入力する入力装置と、論理回路上においてグリッチが発生する回路素子を検索するグリッチ検索部と、回路素子の入力端へ信号を出力するＦ／Ｆのクロック入力端に入力されるクロック信号のスキューを算定するスキュー算定部と、スキュー算定部で算定されたスキューを第１目標スキューとして設定することにより、グリッチを削減できるか否かを解析する回路情報解析部と、回路情報解析部でグリッチを削減できると解析された場合に、スキュー算定部で算定された第１目標スキューを設定する第１目標スキュー設定部と、回路情報解析部でグリッチを削減できないと解析された場合に、回路素子の出力端からの信号伝播経路に、第１ラッチを挿入する第１ラッチ挿入部とを備える自動設計システムであることを要旨とする。
【００１４】
クロック配線では、誤作動を防止するため、総ての記憶素子のクロック入力端の間におけるスキューを無くすことが望ましい。スキューが無いことを、「ゼロスキュー」という。一方、論理回路中の記憶素子のクロック入力端に目標とするスキューを設定することを、「目標スキューの設定」と定義する。
【００１５】
本発明の第１の特徴によれば、グリッチを削減しようとする部分の総てにラッチを挿入する必要がなくなる。
【００１６】
本発明の第２の特徴は、ＬＳＩのパターンレイアウトに用いるゲーテッドクロック設計された論理回路の回路情報を入力する入力装置と、論理回路が正常に動作するためのタイミング制約を満たすか否かの検証を行う第１タイミング検証部と、ゲーテッドクロック設計された半導体チップ領域上の論理回路に対し、クロック配線をする第１クロック配線処理部と、クロック配線処理された後に、タイミング制約を満たすか否かの検証を行う第２タイミング検証部と、第２タイミング検証部でタイミング制約を満たさないと検証された場合、タイミングを満たさないクリティカルパスのうち最大のスラック値を算定するスラック値算定部と、スラック値が正となるように目標スキューを設定する目標スキュー設定部とを備える自動設計システムであることを要旨とする。
【００１７】
本発明の第２の特徴によれば、クロック配線処理の段階でゲーテッドクロック設計により供給されるクロックを目標スキューに従って調整して、タイミング制約を満たすことができる。
【００１８】
本発明の第３の特徴は、ＬＳＩのパターンレイアウトに用いる論理回路の回路情報を入力するステップと、論理回路上においてグリッチが発生する回路素子を検索するステップと、前記回路素子の入力端へ信号を出力するＦ／Ｆのクロック入力端に入力される信号のスキューを算定するステップと、スキューを第１目標スキューとして設定することにより、グリッチを削減できるか否かを解析するステップと、グリッチを削減できると解析された場合に、クロック配線に第１目標スキューを設定するステップと、グリッチを削減できないと解析された場合に、回路素子の出力端からの信号伝播経路に、第１ラッチを挿入するステップとを備える自動設計方法であることを要旨とする。
【００１９】
本発明の第３の特徴によれば、グリッチを削減しようとする部分の総てにラッチを挿入する必要がなくなる。
【００２０】
本発明の第４の特徴は、ＬＳＩのパターンレイアウトに用いるゲーテッドクロック設計された論理回路の回路情報を入力するステップと、論理回路が正常に動作するためのタイミング制約を満たすか否かの検証を行うステップと、ゲーテッドクロック設計された半導体チップ上の論理回路に対し、第１クロック配線をするステップと、第１クロック配線処理された後に、タイミング制約を満たすか否かの検証を行うステップと、第１クロック配線処理された後の論理回路がタイミング制約を満たさないと検証された場合、タイミングを満たさないクリティカルパスのうち最大のスラック値を算定するステップと、スラック値が正となるように目標スキューを設定するステップとを備える自動設計方法であることを要旨とする。
【００２１】
本発明の第４の特徴によれば、クロック配線処理の段階でゲーテッドクロック設計により供給されるクロックを目標スキューに従って調整して、タイミング制約を満たすことができる。
【００２２】
【発明の実施の形態】
（第１の実施の形態）
図１に示すように、本発明の第１の実施の形態に係る自動設計システムは、入力装置１、テストベクタ情報入力装置７、タイミング制約入力装置６、中央演算処理装置（ＣＰＵ）１００、出力装置１７、インターフェイス１５、ホストコンピュータ１６、共通バス２０、読み出し専用メモリ（ＲＯＭ）１８、随時書き込み読み出しメモリ（ＲＡＭ）１９、及びデータ記憶装置１０を備える。データ記憶装置１０は、回路情報記憶部２、テストベクタ情報記憶部２３、タイミング制約情報記憶部１４、グリッチ消費電力記憶部９、総消費電力記憶部１２、目標スキュー情報記憶部２４、ラッチ情報記憶部２５等のファイルを備える。
【００２３】
入力装置１により、設計しようとする論理回路の回路情報が入力される。テストベクタの設定が行われている場合は、テストベクタ情報入力装置７により、テストベクタ情報が入力される。タイミング制約入力装置６により、論理回路が満たすべきタイミング制約情報が入力される。例えば、タイミング制約入力装置６により、クロック周期、クロック周波数、セットアップ・ホールド時間等が入力される。出力装置１７は、ＣＰＵ１００で処理等されるデータを出力する。ホストコンピュータ１６は、インターフェイス１５を介して、出力装置１７が出力するデータと同様のデータをハードディスク等に保存し、ホストコンピュータ１６に接続されたモニター等に出力する。入力装置１、テストベクタ情報入力装置７、タイミング制約入力装置６、ＣＰＵ１００、出力装置１７、インターフェイス１５、及びデータ記憶装置１０は、共通バス２０を介してデータのやり取りを行う。
【００２４】
ＣＰＵ１００は更に、クロック配線処理部３０、グリッチ検索部２１、スキュー算定部２２、回路情報解析部３１、第１目標スキュー設定部３２ａ、第２目標スキュー設定部３２ｂ、第１ラッチ挿入部３３ａ、第２ラッチ挿入部３３ｂ、タイミング検証部５、グリッチ消費電力見積部８、総消費電力見積部１１、回路消費電力比較部１３を備える。グリッチ検索部２１は、論理回路において、グリッチが発生する回路素子を検索する。テストベクタ情報が入力されている場合は、シミュレーションによりグリッチが発生する回路素子を検索できる。テストベクタ情報が入力されていない場合でも、回路素子の種類、及び配線や回路素子等で生ずる伝播遅延の算定によりグリッチが発生する回路素子を検索できる。スキュー算定部２２は、グリッチ検索部２１で検索されたグリッチが発生する回路素子の入力端へ信号を出力するＦ／Ｆの入力端に入力される信号のスキューを算定する。配線や回路素子等で生ずる伝播遅延の算定によりスキューを算定できる。
【００２５】
回路情報解析部３１は、スキュー算定部２２で算定されたスキューを、第１目標スキューとして設定することにより、グリッチを削減できるか否かを解析する。即ち論理回路によっては、回路情報解析部３１で第１目標スキューを設定してもグリッチを削減できないと解析される場合もある。例えば、図５（ａ）に示すような論理回路において、Ｆ／Ｆ６０５の出力信号は、インバータ６０３及び６０４を経由してＥＸＯＲゲート６０１の端子αに至る経路（第１の経路）と、配線６０６を経由してＥＸＯＲゲート６０１の端子βに至る経路（第２の経路）を伝播する。この場合、図５（ｂ）のタイムチャートに示すように、第１の経路と第２の経路を伝播してＥＸＯＲゲート６０１の端子α及び端子βへ入力される信号で伝播遅延差が生じ、グリッチが発生する。しかし、Ｆ／Ｆ６０５のクロック入力端に、いくら第１目標スキューを設定してスキューを調整しても、第１の経路と第２の経路での信号の伝播遅延差を０にすることはできず、ＥＸＯＲゲート６０１の出力先で生じるグリッチを削減できない。しかしこの場合でも、図５（ａ）に示すように、ＥＸＯＲゲート６０１の出力先に第１ラッチ６０２を挿入すれば、グリッチを削減できる。
【００２６】
第１目標スキュー設定部３２ａは、回路情報解析部３１で第１目標スキューの設定により、グリッチを削減できると解析された場合に、第１目標スキューを設定する。第２目標スキュー設定部３２ｂは、タイミング制約入力装置６に入力されたタイミング制約を満たさないとタイミング検証部５が検証した場合に、このタイミング制約を満たすようにクロック配線上に第２目標スキューを設定する。第１ラッチ挿入部３３ａは、回路情報解析部３１で第１目標スキューの設定により、グリッチを削減できないと解析された場合に、グリッチ検索部２１で検索されたグリッチが発生する回路素子の出力端からの信号伝播経路に第１ラッチを挿入する。第２ラッチ挿入部３３ｂは、タイミング制約入力装置６に入力されたタイミング制約を満たさないとタイミング検証部５が検証した場合に、このタイミング制約を満たすように回路素子の出力端からの信号伝播経路に第２ラッチを挿入する。タイミング検証部５は、第１目標スキュー設定部３２ａにより第１目標スキューが設定された後の論理回路、又は第１ラッチ挿入部３３ａにより第１ラッチが挿入された論理回路に対してクロック配線を行った後に、タイミング制約入力装置６により入力されたタイミング制約を満たすか否かを検証する。一般に、検証方法は静的タイミング解析（ＳＴＡ）により行う。グリッチ消費電力見積部８は、グリッチ検索部２１により検索された回路素子で発生するグリッチの消費電力を算定する。グリッチの消費電力は、グリッチの発生頻度と１回のグリッチによる消費電力の積をとれば求めることができる。グリッチの発生頻度とグリッチが発生する回路素子は、グリッチ検索部２１により決定される。１回のグリッチによる消費電力Ｗは、次のように求められる。消費電力Ｗは、ゲート内部の消費電力ＷＩと、外部配線の消費電力ＷＯからなる。
【００２７】
Ｗ＝ＷＩ＋ＷＯ　・・・・・（１）
ＷＩは、測定により求められる。ＷＯは、配線容量をＣ、電源電圧をＶ、グリッチの発生頻度をｆとすれば、以下の式により求められる。
【００２８】
ＷＯ＝ＣＶ２ｆ／２　・・・・・（２）
総消費電力見積部１１は、クロック配線処理部３０によりクロック配線された論理回路、及び入力装置１から入力された論理回路の総消費電力を算定する。回路消費電力比較部１３は、グリッチ消費電力見積部８で算定されたグリッチ消費電力の増減と、総消費電力見積部１１で算定された論理回路の総消費電力の増減を、第１又は第２目標スキューの設定及び第１又は第２ラッチの挿入の前後で比較する。即ち、第１又は第２目標スキューの設定又は第１又は第２ラッチの挿入により減少したグリッチ消費電力と、バッファの挿入、クロック配線の調整、ラッチの挿入により増加した論理回路の総消費電力を比較する。
【００２９】
グリッチ検索部２１は、テストベクタ入力判定部８１、シミュレーションベースグリッチ解析部８２、確率ベースグリッチ解析部８３を備える。テストベクタ入力判定部８１は、テストベクタ情報入力装置７によってテストベクタ情報が入力されたか否かを判断する。テストベクタ入力判定部８１によりテストベクタ情報が入力されたと判断された場合に、シミュレーションベースグリッチ解析部８２は、入力されたテストベクタ情報を基に、配線や回路素子等で生ずる伝播遅延等の情報を取り入れて論理回路のシミュレーションを行う。具体的には、図３（ａ）及び（ｂ）で説明したように、入力パターンと配線や回路素子等で生ずる信号の伝播遅延を基に、図３（ｂ）に示すようなタイムチャートからグリッチの発生頻度が求められ、グリッチが発生する回路素子を決定できる。テストベクタ入力判定部８１によりテストベクタ情報が入力されなかったと判断された場合に、確率ベースグリッチ解析部８３は、確率計算を用いてグリッチの発生頻度を確率として求め、グリッチが発生する回路素子を決定する。
【００３０】
例えば、図４（ａ）に示すような論理回路があるとする。ＡＮＤゲート５０２の入力（Ｉ３，Ｉ４）がとりうる組み合わせは、（０，０）（０，１）（１，０）（１，１）の４通りである。このうち、ＡＮＤゲート５０２の出力Ｎが０となる組み合わせは、（０，０）（０，１）（１，０）の３通りである。よって、出力Ｎが０となる確率Ｐ（Ｎ＝０）は、以下のようになる。
【００３１】
Ｐ（Ｎ＝０）＝Ｐ（Ｉ３＝０）Ｐ（Ｉ４＝０）＋Ｐ（Ｉ３＝０）Ｐ（Ｉ４＝１）＋Ｐ（Ｉ３＝１）Ｐ（Ｉ４＝０）　・・・・・（３）
同様に、出力Ｎが１となる確率Ｐ（Ｎ＝１）は、以下のようになる。
【００３２】
Ｐ（Ｎ＝１）＝Ｐ（Ｉ３＝１）Ｐ（Ｉ４＝１）　・・・・・（４）
この結果、出力Ｎが０→１と変化する確率Ｐ（Ｎ：０→１）は、変化前がＮ＝０である確率と変化後がＮ＝１である確率との積で表される。即ち：
Ｐ（Ｎ：０→１）＝Ｐ（Ｎ＝０）×Ｐ（Ｎ＝１）　・・・・・（５）
である。この方法で、Ｐ（Ｎ＝０）、Ｐ（Ｎ＝１）、Ｐ（Ｎ：０→１）、Ｐ（Ｎ：１→０）が求まる。このように、回路素子５０２〜５０６の総ての出力信号が変化する確率が求まる。
【００３３】
ここで、図４（ａ）に示す論理回路で、ＡＮＤゲート５０２でグリッチが発生する条件は、（条件１）一方の入力信号Ｉ３が０→１と変化し、他方の入力信号Ｉ４が１→０と変化し、且つＩ３が０→１と変化した時刻Ｔ３より、Ｉ４が１→０と変化する時刻Ｔ４の方が遅い（Ｔ３＜Ｔ４）ことと、（条件２）一方の入力信号Ｉ３が１→０と変化し、他方の入力信号Ｉ４が０→１と変化し、且つＩ３が０→１と変化した時刻Ｔ３より、Ｉ４が１→０と変化する時刻Ｔ４の方が早い（Ｔ３＞Ｔ４）ことである。図４（ｂ）を参照しつつ、（条件１）の場合においてグリッチが発生する確率Ｐ（Ｉ３：０→１，Ｉ４：１→０，Ｔ３＜Ｔ４，Ｎ：ｇｌｉｔｃｈ）を求める。ＡＮＤゲート５０２の入力端α２に至る経路はα３→インバータ５０５→α２の１通りで、ＡＮＤゲート５０２の入力端β２に至る経路は：
α４→ＯＲゲート５０３→β２；
α６→インバータ５０６→α５→ＡＮＤゲート５０４→β４→ＯＲゲート５０３→β２；
β５→ＡＮＤゲート５０４→β４→ＯＲゲート５０３→β２
の３通りである。ここで、α３からα２までの伝播遅延をΔ（α３→α２）と表す。同様に、β２に至るまでの各経路の伝播遅延をΔ（α４→β２）、Δ（α６→β２）、Δ（β５→β２）と表す。各経路の伝播遅延は、配線や回路素子５０２〜５０６等による信号の伝播遅延を基に求めることができる。そしてその結果：
Δ（α３→α２）＞Δ（α４→β２）　・・・・・（６）
Δ（α３→α２）＜Δ（α６→β２）　・・・・・（７）
Δ（α３→α２）＜Δ（β５→β２）　・・・・・（８）
であったとする。この場合、Δ（α４→β２）はＴ３＜Ｔ４の条件を満たさないため、Ｄ４の信号変化によってはグリッチは発生しない。一方、α６→インバータ５０６→α５→ＡＮＤゲート５０４→β４→ＯＲゲート５０３→β２はＴ３＜Ｔ４の条件を満たすため、グリッチが発生する可能性がある。信号Ｄ５が０→１と変化することにより、信号Ｉ４が１→０と変化するためには、Ｄ４＝０、Ｄ６＝１が条件となる。なぜなら、Ｄ４＝１、又はＤ６＝０であれば、信号Ｄ５が０→１と変化してもＯＲゲート５０３の出力信号は変化しないからである。よって、信号Ｄ５が０→１と変化することによりＩ４の信号変化を引き起こす確率Ｐ（Ｄ５：０→１，Ｉ４：１→０）は：
Ｐ（Ｄ５，０→１）×Ｐ（Ｄ４＝０）×Ｐ（Ｄ６＝１）　・・・・・（９）
となる。更に、信号Ｄ３が１→０と信号変化を起こせば、信号Ｉ３が０→１と信号変化を起こし、ＡＮＤゲート５０２の出力信号Ｎでグリッチが発生する。よって、信号Ｄ３とＤ５の信号変化により出力信号Ｎで０→１→０のグリッチが発生する確率Ｐ（Ｄ３，Ｄ５，Ｎ：０→１→０）は：
Ｐ（Ｄ５：０→１）×Ｐ（Ｄ４＝０）×Ｐ（Ｄ６＝１）×Ｐ（Ｄ３：１→０）・・・・・（１０）
となる。出力信号Ｎで１→０→１のグリッチが発生する確率Ｐ（Ｄ３，Ｄ５，Ｎ：１→０→１）も同様に求めることができる。この結果、信号Ｄ３とＤ５の変化により出力信号Ｎでグリッチが発生する確率Ｐ（Ｄ３，Ｄ５，Ｎ：ｇｌｉｔｃｈ）は：
Ｐ（Ｄ３，Ｄ５，Ｎ：ｇｌｉｔｃｈ）＝Ｐ（Ｄ３，Ｄ５，Ｎ：０→１→０）＋Ｐ（Ｄ３，Ｄ５，Ｎ：１→０→１）　・・・・・（１１）
となる。
【００３４】
同様に、信号Ｄ３とＤ６の信号変化により出力信号Ｎでグリッチが発生する確率Ｐ（Ｄ３，Ｄ６，Ｎ：ｇｌｉｔｃｈ）も求めることができる。以上の結果から、（条件１）において出力信号Ｎにグリッチが発生する確率Ｐ（Ｉ３：０→１，Ｉ４：１→０，Ｔ３＜Ｔ４，Ｎ：ｇｌｉｔｃｈ）は、Ｐ（Ｄ３，Ｄ５，Ｎ：ｇｌｉｔｃｈ）＋Ｐ（Ｄ３，Ｄ６，Ｎ：ｇｌｉｔｃｈ）となる。同様に、（条件２）において出力信号Ｎにグリッチが発生する確率Ｐ（Ｉ３：１→０，Ｉ４：０→１，Ｔ３＞Ｔ４，Ｎ：ｇｌｉｔｃｈ）も求めることができ、最終的に（条件１）と（条件２）における出力信号Ｎにグリッチが発生する確率を足せば、出力信号Ｎにグリッチが発生する確率Ｐ（Ｎ：ｇｌｉｔｃｈ）を求めることができる。このように、確率ベースグリッチ解析部８３でグリッチの発生頻度を確率として求めることができ、グリッチが発生する回路素子を決定することができる。
【００３５】
ＲＯＭ１８は、システムを立ち上げる基本入出力システム（ＢＩＯＳ）を格納する。ＲＡＭ１９は、種々の情報、及び演算結果を記憶する。回路情報記憶部２は、入力装置１により入力された回路情報を記憶する。テストベクタ情報記憶部２３は、テストベクタ情報入力装置７により入力されたテストベクタを記憶する。タイミング制約情報記憶部１４は、タイミング制約入力装置６により入力されたタイミング制約情報を記憶する。グリッチ消費電力記憶部９は、グリッチ消費電力見積部８で算定されたグリッチ消費電力を記憶する。総消費電力記憶部１２は、総消費電力見積部１１で見積もられた論理回路の総消費電力を記憶する。目標スキュー情報記憶部２４は、第１目標スキュー設定部３２ａ又は第２目標スキュー設定部３２ｂで設定された第１又は第２スキューを第１又は第２目標スキューとして記憶する。ラッチ情報記憶部２５は、第１ラッチ挿入部３３ａ又は第２ラッチ挿入部３３ｂで挿入された第１又は第２ラッチの位置・数等を記憶する。出力装置１７、ホストコンピュータ１６は、回路情報記憶部２、テストベクタ情報記憶部２３、タイミング制約情報記憶部１４、グリッチ消費電力記憶部９、総消費電力記憶部１２、目標スキュー情報記憶部２４、ラッチ情報記憶部２５に記憶されているデータを出力してもよい。
【００３６】
次に、第１の実施の形態に係る自動設計方法を図２のフローチャートで説明する。
【００３７】
（イ）先ず、ステップＳ２０１において、入力装置１により、設計しようとする論理回路の回路情報が入力される。ステップＳ２０３において、総消費電力見積部１１は、入力装置１により入力された論理回路の総消費電力を算定する。
【００３８】
（ロ）ステップＳ２０４において、テストベクタ入力判定部８１は、テストベクタ情報入力装置７によりテストベクタ情報が入力されたか否かを判断する。テストベクタ情報が入力されている場合は、ステップＳ２０５において、シミュレーションベースグリッチ解析部８２で、そのテストベクタ情報を基に、配置後の伝播遅延などの情報を取り入れて論理回路のシミュレーションを行い、論理回路中におけるグリッチの発生頻度とグリッチが発生する回路素子を決定する。テストベクタ情報が入力されていない場合は、ステップＳ２０６において、確率ベースグリッチ解析部８３で確率計算を行い、論理回路中におけるグリッチの発生頻度とグリッチが発生する回路素子を決定する。
【００３９】
（ハ）ステップＳ２０７において、グリッチ消費電力見積部８で、グリッチ検索部２１により検索された論理回路中の回路素子で発生するグリッチの消費電力を算定する。ステップＳ２０８において、スキュー算定部２２でグリッチが発生する回路素子の入力端にクロックを出力するＦ／Ｆのクロックスキューを算定する。ここで算定されるクロックスキューは、グリッチを除去できる値である。
【００４０】
（ニ）ステップＳ２０９において、ステップＳ２０８で算定されたスキューを目標スキューとして設定することでグリッチを削減できるか回路情報解析部３１で解析する。ステップＳ２０９において目標スキューを設定することでグリッチを削減できると解析された場合は、ステップＳ２１０ａで、ステップＳ２０８で算定されたスキューを設定する。ステップＳ２０９において、目標スキューを設定することでグリッチを削減できないと解析された場合は、ステップＳ２１０ｂにおいて、組み合わせ回路部分に第１ラッチ若しくは第１ラッチ群を第１ラッチ挿入部３３ａで挿入する。
【００４１】
（ホ）ステップＳ２１１において、ステップＳ２１０ａで第１目標スキュー設定部３２ａにより第１目標スキューが設定された後の論理回路、又はステップＳ２１０ｂで第１ラッチ挿入部３３ａにより第１ラッチが挿入された論理回路に対してクロック配線処理部３０によりクロック配線が行われる。ステップＳ２１２において、クロック配線された論理回路がタイミング制約入力装置６により入力されたタイミング制約を満たすか否かを検証する。タイミング制約を満たさないと検証された場合、ステップＳ２１７において、第２目標スキュー設定部３２ｂでタイミング制約を満たすようにクロック配線上に第２スキューを設定し、又は第２ラッチ挿入部３３ｂでタイミング制約を満たすように回路素子の出力端からの信号伝播経路に第２ラッチを挿入する。ステップＳ２１３において、ステップＳ２１０ａで第１目標スキュー設定部３２ａにより第１目標スキューが設定された後の論理回路、又はステップＳ２１０ｂで第１ラッチ挿入部３３ａにより第１ラッチが挿入された論理回路で発生するグリッチの消費電力をグリッチ消費電力見積部８で算定する。タイミング制約を満たさないと検証された場合には、更にステップＳ２１７で第２目標スキュー設定部３２ｂにより第２目標スキューが設定された後の論理回路、又は第２ラッチ挿入部３３ｂにより第２ラッチが挿入された論理回路で発生するグリッチの消費電力をグリッチ消費電力見積部８で算定する。ステップＳ２１４において、第１又は第２目標スキューが設定された後の論理回路、第１又は第２ラッチが挿入された後の論理回路の総消費電力を、総消費電力見積部１１で算定する。
【００４２】
（へ）ステップＳ２１５において、回路消費電力比較部１３は、グリッチ消費電力見積部８で算定されたグリッチ消費電力の増減と、総消費電力見積部１１で算定された論理回路の総消費電力の増減を、第１又は第２目標スキューの設定及び第１又は第２ラッチの挿入の前後で比較する。その結果、論理回路全体の消費電力を低減できたと解析された場合は終了する。又はステップＳ２１５で論理回路全体の消費電力を低減できなかったと解析された場合は、ステップＳ２１６において第１又は第２目標スキューの設定及び第１又は第２ラッチの挿入は行わず終了する。
【００４３】
第１の実施の形態によれば、回路情報解析部３１で目標スキューを設定することによりグリッチを削減できると解析された場合は、目標スキューの設定によりスキューを調整することでグリッチを削減できるため、グリッチを削減しようとする部分の総てにラッチを挿入する必要はなくなり、ラッチ挿入によりＬＳＩ等の半導体チップの面積が拡大するという問題を解決しつつ消費電力の低減を実現することができる。
【００４４】
（第２の実施の形態）
第２の実施の形態に係る自動設計システムを図６により説明する。自動設計システムは、入力装置７１、タイミング制約入力装置７４、ＣＰＵ５００、出力装置６０、インターフェイス６１、ホストコンピュータ６２、共通バス２００、読み出し専用メモリ（ＲＯＭ）１８０、ランダムアクセスメモリ（ＲＡＭ）１９０、データ記憶装置６００を備える。データ記憶装置６００は、回路情報記憶部６５、タイミング制約情報記憶部６６、目標スキュー情報記憶部６７、スラック値情報記憶部６８等のファイルを備える。
【００４５】
入力装置７１により、例えば、図９（ａ）に示すようなゲーテッドクロック設計された論理回路の回路情報が入力される。タイミング制約入力装置７４により、ゲーテッドクロック設計された論理回路が期待通りの動作をするために満たすべきタイミング制約情報が、入力される。例えば、タイミング制約入力装置７４により、クロック周期、クロック周波数、セットアップ・ホールド時間等が入力される。出力装置６０は、ＣＰＵ５００で処理等されるデータを出力する。ホストコンピュータ６２は、インターフェイス６１を介して、出力装置６０が出力するデータと同様のデータをハードディスク等に保存し、ホストコンピュータ６２に接続されたモニター等に出力する。入力装置７１、タイミング制約入力装置７４、ＣＰＵ５００、出力装置６０、インターフェイス６１は、共通バス２００を介してデータのやり取りを行う。
【００４６】
ＣＰＵ５００は、第１タイミング検証部７３、第１クロック配線処理部７５、第２タイミング検証部７９、スラック値算定部９０、目標スキュー設定部７６、第２クロック配線処理部７７を備える。第１タイミング検証部７３は、入力装置７１により入力されたゲーテッドクロック設計におけるイネーブル回路が、タイミング制約入力装置７４に入力されたタイミング制約を満たすか否かを検証する。例えば、図９（ａ）に示すように、Ｆ／Ｆ１０５〜１０７からＡＮＤゲート１０１を通ってレジスタ群１０４に至る回路が、タイミング制約入力装置７４に入力されたタイミング制約を満たすか否かを検証する。第１クロック配線処理部７５は、入力装置７１により入力されたゲーテッドクロック設計された論理回路に対して、クロック配線を行う。例えば、図９（ｂ）に示すゲーテッドクロック設計された論理回路のようにクロックＣＬＫからＦ／Ｆ１０５〜１０７及びレジスタ群１０４ａ、１０４ｂへＣＴＳ処理を行い、ＡＮＤゲート１０１を中間クロックバッファとしてクロック配線を行う。第２タイミング検証部７９は、第１クロック配線処理部７５により配線された後に、タイミング制約入力装置７４に入力されたタイミング制約を満たすか否か検証される。例えば、図９（ｂ）に示すゲーテッドクロック設計された論理回路のように、配線１５０が配線１６０、１７０に比し極端に長い場合は、Ｆ／Ｆ１０５の出力信号がイネーブル回路１０３へ遅れて入力され、タイミング制約入力装置７４に入力されたタイミング制約を満たさなくなる。第２タイミング検証部７９でタイミング制約を満たさないと検証された場合に、スラック値算定部９０は、第２タイミング検証部７９におけるタイミングを満たさないクリティカルパスのうち最大のスラック値を算定する。例えば、図９（ｂ）に示すゲーテッドクロック設計された論理回路では、Ｆ／Ｆ１０５→イネーブル回路１０３→配線１０２→ＡＮＤゲート１０１→バッファ１１２ａ→レジスタ群１０４ａの経路、又はＦ／Ｆ１０５→イネーブル回路１０３→配線１０２→ＡＮＤゲート１０１→バッファ１１２ｂ→レジスタ群１０４ｂの経路がクリティカルパスとなる。「スラック値」とは、タイミング制約値と実際の回路遅延時間値の差をいう。正のスラック値は、タイミング制約を満たしていることを意味し、負のスラック値は、タイミング制約を満たしていないことを意味する。目標スキュー設定部７６は、スラック値算定部９０により算定されたスラック値が正となるように目標スキューを設定する。例えば、図９（ｂ）に示すゲーテッドクロック設計された論理回路で、上述のクリティカルパスのスラック値が−δ（＜０）であったとする。目標スキュー設定部７６は、δに相当する目標スキューをＦ／Ｆ１０５に設定する。第２クロック配線処理部７７は、目標スキューを満たすようにクロック配線処理を行う。この際、バッファの挿入や削除、配線の延長や短絡等によりクロックスキューを調整する。例えば、図９（ｂ）に示すゲーテッドクロック設計された論理回路のように、クリティカルパスのスラック値は−δであり、目標スキュー設定部７６によりδに相当する目標スキューを満たすために、δに相当する遅延時間を生じるバッファ１１１を削除すれば��タイミング制約を満たすことができる。
【００４７】
ＲＯＭ１８０は、システムを立ち上げる基本入出力システム（ＢＩＯＳ）を格納する。ＲＡＭ１９０は、種々の情報、及び演算結果を記憶する。回路情報記憶部６５は、入力装置７１により入力された回路情報を記憶する。タイミング制約情報記憶部６６は、タイミング制約入力装置７４により入力されたタイミング制約情報を記憶する。目標スキュー情報記憶部６７は、目標スキュー設定部７６で設定されたＦ／Ｆに対する目標スキューを記憶する。スラック値情報記憶部６８は、スラック値算定部９０で算定されたクリティカルパスの最大スラック値を記憶する。出力装置６０、ホストコンピュータ６２は、回路情報記憶部６５、タイミング制約情報記憶部６６、目標スキュー情報記憶部６７、スラック値情報記憶部６８に記憶されているデータを出力してもよい。
【００４８】
次に、第２の実施の形態に係る自動設計方法を図７のフローチャートで説明する。
【００４９】
（イ）先ず、ステップＳ８０２において、図９（ａ）に示すような、論理回路１０９及びイネーブル回路１０３を含むゲーテッドクロック設計された論理回路の回路情報を入力装置７１により入力する。ステップＳ８０４において、入力装置７１により入力された論理回路が、タイミング制約入力装置７４に入力されたタイミング制約を満たすか否かの検証を第１タイミング検証部７３が行う。ステップＳ８０４においてタイミング制約の検証を行った結果、タイミング制約を満たすと検証された場合は、ステップＳ８０５において、第１クロック配線処理部７５は、ゲーテッドクロック設計された論理回路に対し、クロック配線を行う。
【００５０】
（ロ）ステップＳ８０７において、クロック配線処理された後の論理回路がタイミング制約入力装置７４により入力されたタイミング制約を満たすか否かの検証を、第２タイミング検証部７９が行う。ステップＳ８０７においてタイミングの検証を行った結果、タイミング制約を満たさないと検証された場合は、ステップＳ８０８において、タイミングを満たさないクリティカルパスのうち最大のスラック値を、スラック値算定部９０が算定する。タイミング制約を満たすか否かの検証を、第２タイミング検証部７９が行った結果、タイミングを満たすと検証された場合は終了する。
【００５１】
（ハ）ステップＳ８０９において、目標スキュー設定部７６は、スラック値算定部９０で算定したスラック値を目標スキューとして設定する。ステップＳ８１０において、第２クロック配線処理部７７は、目標スキューを満たすようにクロック配線処理を行う。そして、再びステップＳ８０７に戻り、タイミング制約を満たすか否かの検証を、第２タイミング検証部７９が行う。
【００５２】
（ニ）ステップＳ８０４において、タイミング制約を満たすか否かの検証を第１タイミング検証部７３が行った結果、タイミング制約を満たさないと検証された場合は、ステップ８０３においてタイミング制約を満たすようにゲーテッドクロック設計された論理回路の設計変更をする。タイミング制約を満たすようにするためには、論理回路構造を変更したり、回路素子の配置を換えたりしてもよい。
【００５３】
第２の実施の形態によれば、クロック配線処理の段階でゲーテッドクロック設計により供給されるクロックを目標スキューに従って調整して、タイミング制約を満たすことができるため、論理設計段階にまで戻ってレジスタにゲーテッドクロック設計を用いないよう論理設計の変更を行い、再度レイアウト処理を実行する必要がなくなり、設計期間を短縮して消費電力の低減を実現することができる。
【００５４】
【発明の効果】
本発明によれば、ＬＳＩ等の半導体チップの面積の拡大を防ぎ、又設計期間を短縮しつつ、効率よく消費電力を低減できる自動設計システム、及び自動設計方法を提供することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係る自動設計システムの概略を示す図である。
【図２】本発明の第１の実施の形態に係る自動設計方法を説明するためのフローチャートである。
【図３】（ａ）は、論理回路でグリッチが発生することを示す回路図である。（ｂ）は、論理回路でグリッチが発生することを示すタイムチャートである。
【図４】（ａ）は、グリッチの発生頻度を確率として求める手法を説明するための回路図である。（ｂ）は、論理回路でグリッチが発生することを示すタイムチャートである。
【図５】（ａ）は、目標スキューを設定することによりグリッチを削減できない論理回路を示す回路図である。（ｂ）は、目標スキューを設定することによりグリッチを削減できないことを示すタイムチャートである。
【図６】本発明の第２の実施の形態に係る自動設計システムの概略を示す図である。
【図７】本発明の第２の実施の形態に係る自動設計方法を説明するためのフローチャートである。
【図８】従来の自動設計方法を説明するためのフローチャートである。
【図９】（ａ）は、ゲーテッドクロック設計の概略を示す図である。（ｂ）は、目標スキューを設定したゲーテッドクロック設計の概略を示す図である。
【図１０】ＣＴＳ処理を示す図である。
【符号の説明】
１，７１　入力装置
２，６５　回路情報記憶部
５　タイミング検証部
６　タイミング制約入力装置
７　テストベクタ情報入力装置
８　グリッチ消費電力見積部
９　グリッチ消費電力記憶部
１０，６００　データ記憶装置
１１　総消費電力見積部
１２　総消費電力記憶部
１３　回路消費電力比較部
１４，６６　タイミング制約情報記憶部
１５，６１　インターフェイス
１６，６２　ホストコンピュータ
１７，６０　出力装置
１８，１８０　ＲＯＭ
１９，１９０　ＲＡＭ
２０，２００　共通バス
１００，５００　ＣＰＵ
２１　グリッチ検索部
２２　スキュー算定部
２３　テストベクタ情報記憶部
２４，６７　目標スキュー情報記憶部
２５　ラッチ情報記憶部
３０　クロック配線処理部
３１　回路情報解析部
３２ａ　第１目標スキュー設定部
３２ｂ　第２目標スキュー設定部
３３ａ　第１ラッチ挿入部
３３ｂ　第２ラッチ挿入部
６８　スラック値情報記憶部
７３　第１タイミング検証部
７４　タイミング制約入力装置
７５　第１クロック配線処理部
７６　目標スキュー設定部
７７　第２クロック配線処理部
７９　第２タイミング検証部
８１　テストベクタ入力判定部
８２　シミュレーションベースグリッチ解析部
８３　確率ベースグリッチ解析部
９０　スラック値算定部
【図１】
2004133702.tif 000003
【図２】
2004133702.tif 000004
【図３】
2004133702.tif 000005
【図４】
2004133702.tif 000006
【図５】
2004133702.tif 000007
【図６】
2004133702.tif 000008
【図７】
2004133702.tif 000009
【図８】
2004133702.tif 000010
【図９】
2004133702.tif 000011
【図１０】
2004133702.tif 000012