(57)【要約】【課題】集積回路において、複数の回路ブロック間のデータ授受の際に、ホールド時間制約を満足させることができるようにするとともに、集積回路の設計の後戻りや設計工数の増大を招くことがなく、しかも回路規模の増大を防止できるようにする。【解決手段】クロック同期フリップフロップよりも後段に、半周期の遅延を生成する回路を設ける。ブロック５０、５１間での信号の送信側に、半周期遅延生成回路５２、５３、６０を設ける。ネットリスト記述された、ブロック間の送信側のフリップフロップを、半周期遅延セルに置換する。【選択図】      図４
2004186515.tif 000002
【特許請求の範囲】
【請求項１】
クロック同期フリップフロップよりも後段に半周期の遅延を生成する回路を設けた集積回路。
【請求項２】
ブロック間での信号の送信側に半周期遅延生成回路を設けた請求項１記載の集積回路。
【請求項３】
クロック同期フリップフロップよりも後段に設けられた半周期の遅延を生成する回路が、逆相クロックで動作するラッチ回路である請求項１記載の集積回路。
【請求項４】
クロック同期フリップフロップよりも後段に設けられた半周期の遅延を生成する回路が、逆相クロックで動作するクロック同期フリップフロップ回路である請求項１記載の集積回路。
【請求項５】
ネットリスト記述された、ブロック間の送信側のフリップフロップを、半周期遅延セルに置換する置換ステップを有する集積回路設計方法。
【請求項６】
特定のフリップフロップを指定するセル名リストを読み込むステップを有するとともに、前記リストに該当するフリップフロップを半周期遅延セルに置換する置換ステップを有する請求項５記載の集積回路設計方法。
【請求項７】
ブロックを指定するブロック名リストを読み込むステップを有するとともに、前記リストに該当するフリップフロップを半周期遅延セルに置換する置換ステップを有する請求項５記載の集積回路設計方法。
【請求項８】
対をなすブロックどうしを指定するブロック間リストを読み込むステップを有するとともに、前記リストに該当するフリップフロップを半周期遅延セルに置換する置換ステップを有する請求項５記載の集積回路設計方法。
【請求項９】
クロック信号を指定するクロック名リストを読み込むステップを有するとともに、前記リストに該当するクロックで動作するブロック間の送信側のフリップフロップを半周期遅延セルに置換する置換ステップを有する請求項５記載の集積回路設計方法。
【請求項１０】
あるクロック信号とそれとは異なる別のクロック信号との組を指定するクロック対リストを読み込むステップを有するとともに、前記リストに該当するクロックの組で動作するブロック間の送受信信号系において送信側のフリップフロップを半周期遅延セルに置換する置換ステップを有する請求項５記載の集積回路設計方法。
【請求項１１】
ブロック間の信号の送受信がフリップフロップからフリップフロップへのシフトレジスタ構成となっているかどうかを調べるシフトレジスタ調査ステップと、このシフトレジスタ調査ステップの調査結果から、ネットリスト中の送信側のフリップフロップを半周期遅延セルに置換する置換ステップとを有する請求項５記載の集積回路設計方法。
【請求項１２】
ネットリスト記述中にある各クロック同期フリップフロップよりも後段に、前記フリップフロップに入力されているクロックの逆相で動作するラッチないしフリップフロップが接続されているかどうかを調べる逆相クロック接続調査ステップと、この逆相クロック接続調査ステップの調査結果から、ネットリスト中の前記フリップフロップとそれよりも後段にあるラッチないしフリップフロップをまとめて半周期遅延セルに置換する置換ステップとを有する集積回路設計方法。
【請求項１３】
ＲＴＬ記述を読み込むための読み込みステップと、読み込んだＲＴＬ記述から論理を合成するための合成ステップとを有し、この合成ステップにおいて、ブロック間の送信側のフリップフロップとして半周期遅延セルを割付ける集積回路設計方法。
【請求項１４】
ブロックを指定するブロック名リストを読み込むステップを有し、合成ステップにおいて、前記リストに該当するブロックの送信側のフリップフロップとして半周期遅延セルを割付ける請求項１３記載の集積回路設計方法。
【請求項１５】
ブロック間を指定するブロック間リストを読み込むステップを有し、合成ステップにおいて、前記リストに該当するブロック間の送信側のフリップフロップとして半周期遅延セルを割付ける請求項１３記載の集積回路設計方法。
【請求項１６】
クロック信号を指定するクロック名リストを読み込むステップを有し、合成ステップにおいて、前記リストに該当するクロックで動作するブロック間の送信側のフリップフロップとして半周期遅延セルを割付ける請求項１３記載の集積回路設計方法。
【請求項１７】
あるクロック信号とそれとは異なる別のクロック信号との組を指定するクロック対リストを読み込むステップを有し、合成ステップにおいて、前記リストに該当するクロックの組で動作するブロック間の送受信信号系に対し、送信側のフリップフロップとして半周期遅延セルを割付ける請求項１３記載の集積回路設計方法。
【請求項１８】
ＲＴＬ記述を読み込むための読み込みステップと、読み込んだＲＴＬ記述から論理を合成するための合成ステップとを有し、この合成ステップにおいて、ブロック間の信号の送受信が、第１のフリップフロップから第２のフリップフロップへのシフトレジスタ構成となっているかどうかを調べて、該当する送信側のフリップフロップとして半周期遅延セルを割付ける請求項１３記載の集積回路設計方法。
【請求項１９】
ＲＴＬ記述を読み込むための読み込みステップと、読み込んだＲＴＬ記述から論理を合成するための合成ステップとを有し、この合成ステップにおいて、クロック同期フリップフロップよりも後段に、このフリップフロップに入力されているクロックの逆相で動作するラッチないし他のフリップフロップが接続されているかどうかを調べ、該当する前記フリップフロップとそれよりも後段にあるラッチないし他のフリップフロップをまとめて半周期遅延セルとして割付ける集積回路設計方法。
【請求項２０】
ＲＴＬ記述を読み込むための読み込みステップと、読み込んだＲＴＬ記述から論理を合成するための合成ステップと、仮配線遅延を用いて合成結果のタイミングをチェックすることでタイミング違反を検知するためのタイミングチェックステップと、タイミング違反が発生した場合にそれを修正するための修正ステップとを有し、前記修正ステップにおいて、始点のフリップフロップからの全経路で半周期以上のホールド違反を起こしている場合は、前記始点のフリップフロップを半周期遅延セルに置き換える集積回路設計方法。
【請求項２１】
修正ステップにおいて、半周期未満のホールド違反を起こしている経路がある場合に、その始点のフリップフロップからの全経路の最大遅延時間が半周期未満の場合は、前記始点のフリップフロップを半周期遅延セルに置き換える請求項２０記載の集積回路設計方法。
【請求項２２】
ＲＴＬ記述を読み込むための読み込みステップと、合成用ライブラリ内のセルの入力ホールド時間がある閾値以上であるかどうかを判別するためのホールド時間判別ステップと、読み込んだＲＴＬ記述から論理を合成するための合成ステップとを有し、前記ホールド時間判別ステップにおいて閾値以上のセルがあった場合には、そのセルへの入力信号の始点にあるフリップフロップとして、半周期遅延セルを割付けることを特徴とする集積回路設計方法。
【請求項２３】
ＲＴＬ記述を読み込むための読み込みステップと、読み込んだＲＴＬ記述から論理を合成するための合成ステップとを有し、入力ホールド時間がある閾値以上必要なセルについては、合成用ライブラリに半周期遅延セルを割付けることを指示するための属性を与えておき、前記合成ステップにおいて、前記入力ホールド時間がある閾値以上必要なセルを割り付けた場合には、そのセルへの入力信号の始点にあるフリップフロップとして半周期遅延セルを割付ける集積回路設計方法。
【請求項２４】
ＲＴＬ記述を読み込むための読み込みステップと、読み込んだＲＴＬ記述から論理を合成するための合成ステップとを有し、前記読み込みステップにおいて、ＲＴＬ記述に半周期遅延セルを割付けることを指示するための記述を有する部分があった場合には、前記合成ステップにおいて前記記述部分を半周期遅延セルとする集積回路設計方法。
【請求項２５】
半周期遅延セルを割付けることを指示するための記述を、ＲＴＬシミュレーションでは無視されるように記述する請求項２４記載の集積回路設計方法。
【請求項２６】
半周期遅延セルを割付けることを指示するための記述を、合成ライブラリ内に半周期遅延セルが存在しない場合には無視されるように記述する請求項２４記載の集積回路設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は集積回路およびその設計方法に関し、特に複数の回路ブロックから構成される半導体装置において、前記複数の回路ブロック間のデータ授受の際に、ホールド時間制約を満足させるための集積回路、および、その集積回路を構成するための集積回路の設計方法に関する。
【０００２】
【従来の技術】
従来のＬＳＩ設計では、フリップフロップで機能ブロック間の同期を取ることで、データの授受を行っている（例えば、特許文献１）。
【０００３】
一方、ホールド時間の制約を満足させるために、レイアウト後の実遅延シミュレーションでエラー発生した個所に対して、データ入力部を遅延素子をつけたフリップフロップに置き換える（例えば、特許文献２）ものや、逆相のクロックで動作するフリップフロップを該当パスに挿入する（例えば、特許文献３）ものがある。
【０００４】
さらに、シフトレジスタ構成をとるスキャンパス構成部に、スキャン時に逆相のクロックで動作するラッチを設けて、スキャン時に半周期の遅延がつくことを選択する（例えば、特許文献４）ものもある。
【０００５】
【特許文献１】
特開平１１−２６５９１号公報（第５−６項、第２図）
【０００６】
【特許文献２】
特許２７８６０１７号公報（第２項、第１図）
【０００７】
【特許文献３】
特開平７−１９２０４３号公報（第８−９項、第２−４図）
【０００８】
【特許文献４】
特開２０００−３１０６７１号公報（第５−６項、第１図）
【０００９】
【発明が解決しようとする課題】
機能ブロック間をフリップフロップで同期を取り、データの授受を行う場合は、機能ブロック間のクロックの位相差により、ホールド時間制約を満足しにくいことがある。
【００１０】
また、レイアウト後に行う実遅延シミュレーションにおいてホールド制約エラーが発生した部分に対して、遅延素子を有するフリップフロップや逆相のフリップフロップを挿入するものでは、集積回路の微細化や高密度化により挿入するスペースが無いという問題がある。また、配線経路が大きく変わり、周囲の経路の遅延制約を満足させることに対して悪影響を及ぼし、設計完了までの時間を増加させやすく、このため新たに逆相クロックを供給する必要が生じるという問題がある。
【００１１】
さらに、スキャン時に半周期の遅延がつくことを選択する構成のフリップフロップ回路を用いる従来の手法では、全てのフリップフロップの回路規模が大きくなるという問題がある。
【００１２】
そこで本発明は、このような問題点を解決して、集積回路において、複数の回路ブロック間のデータ授受の際に、ホールド時間制約を満足させることができるようにするとともに、集積回路の設計の後戻りや設計工数の増大を招くことがなく、しかも回路規模の増大を防止できるようにすることを目的とする。
【００１３】
【課題を解決するための手段】
これらの課題を解決するために本発明においては、ホールド時間制約を満足させるように、半周期の遅延を有するクロック同期フリップフロップセルを用いることを特徴とする。このような半周期の遅延を有するクロック同期フリップフロップセルを、特にクロックの遅延差が発生しやすいブロック間のデータ授受に用いることで、回路規模の増加を防ぐことができる。
【００１４】
また本発明によると、クロック同期フリップフロップよりも後段に半周期の遅延を生成するために、逆相クロックで動作するラッチやフリップフロップを備え、それらをあらかじめ１つのセルにしてあるので、挿入するスペースがなくなることや配線経路が変化することや逆相クロック配線が増加することなどは発生しなくなる。
【００１５】
本発明の第１の方法は、ネットリスト記述された、ブロック間の送信側のフリップフロップを半周期遅延セルに置換するに際し、ホールド制約を満足しにくいと予想される部分にレイアウトを行う前にあらかじめ遅延を与えておくものである。これにより、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、ブロック間に限定することで、回路規模の増加を防ぐことができる。
【００１６】
さらに、特定のフリップフロップを指定するセル名リストや、ブロックを指定するブロック名リストや、クロック信号を指定するクロック名リストや、あるクロック信号とそれとは異なる別のクロック信号の組を指定するクロック対リストを用いて、あらかじめ半周期遅延セルに置換するセルを選択しても良い。このように置換するセル数を絞り込むことで、回路規模の増加をさらに減少することができる。
【００１７】
本発明の第２の方法は、ネットリスト記述された、ブロック間の信号の送受信がフリップフロップからフリップフロップへのシフトレジスタ構成となっているかどうかを調べ、該当する場合に送信側のフリップフロップを半周期遅延セルに置換するものであって、ホールド制約を満足しにくいと予想される部分にレイアウトを行う前にあらかじめ遅延を与えておくものである。これにより、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、ブロック間に限定することで、回路規模の増加を防ぐことができる。
【００１８】
なお、ネットリスト記述中にある各クロック同期フリップフロップよりも後段に、前記フリップフロップに入力されているクロックの逆相で動作するラッチないし他のフリップフロップが接続されている場合は、ネットリスト中の前記フリップフロップとその後段にあるラッチないし他のフリップフロップをまとめて半周期遅延セルに置換することで、配線数やクロック配線の分岐数を減らすこともできる。
【００１９】
本発明の第３の方法は、ＲＴＬ記述を読み込んで合成する際に、ブロック間の送信側のフリップフロップとして半周期遅延セルを割付けるものであって、ホールド制約を満足しにくいと予想される部分にレイアウトを行う前にあらかじめ遅延を与えておくものである。これにより、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、ブロック間に限定することで、回路規模の増加を防ぐことができる。
【００２０】
さらに、ブロックを指定するブロック名リストや、ブロック間を指定するブロック間リストや、クロック信号を指定するクロック名リストや、あるクロック信号とそれとは異なる別のクロック信号の組を指定するクロック対リストを用いて、半周期遅延セルに割付ける部分をあらかじめ選択しても良い。これにより、割付けするセル数を絞り込むことで、回路規模の増加をさらに減少できる。
【００２１】
本発明の第４の方法は、合成時に、ブロック間の信号の送受信が第１のフリップフロップから第２のフリップフロップへのシフトレジスタ構成となっているかどうかを調べ、該当する送信側のフリップフロップとして半周期遅延セルを割付けるものであって、ホールド制約を満足しにくいと予想される部分にレイアウトを行う前にあらかじめ遅延を与えておくものである。これにより、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、ブロック間に限定することで、回路規模の増加を防ぐことができる。
【００２２】
なお、ＲＴＬ記述中にある各クロック同期フリップフロップよりも後段に、前記フリップフロップに入力されているクロックの逆相で動作するラッチないし他のフリップフロップが接続されている場合は、前記フリップフロップとその後段にあるラッチないし他のフリップフロップをまとめて半周期遅延セルに割付けることで、配線数やクロック配線の分岐数を減らすこともできる。
【００２３】
本発明の第５の方法は、合成結果を仮配線遅延を用いてチェックして、タイミング違反を検知した場合において、始点のフリップフロップからの全経路で、半周期以上のホールド違反を起こしているときには、その始点のフリップフロップを半周期遅延セルに置き換えるものであつて、ホールド制約を満足しにくいと予想される部分にレイアウトを行う前にあらかじめ遅延を与えておくものである。
これにより、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、エラー発生部に限定することで、回路規模の増加を防ぐことができる。
【００２４】
なお、半周期未満のホールド違反を起こしている経路がある場合に、その始点となるフリップフロップからの全経路の最大遅延時間が半周期未満の場合は、前記始点となるフリップフロップを半周期遅延セルに置き換えても遅延制約を満足でき、これにより、レイアウト後に遅延を調整する部分を削減することができる。
【００２５】
本発明の第６の方法は、ＳＲＡＭ等のマクロにおいて、他のセルよりも比較的大きなホールド時間制約をあらかじめ必要としている場合は、合成用ライブラリ内のセルの入力ホールド時間制約を見てそのセルへの入力信号の始点にあるフリップフロップとして半周期遅延セルを割付けるものであり、ホールド制約を満足しにくいと予想される部分にレイアウトを行う前にあらかじめ遅延を与えておくものである。これにより、レイアウト後の遅延変動を減少させることが可能となる。
【００２６】
また、合成用ライブラリ内のセルの入力ホールド時間制約を見る代わりに、合成用ライブラリに半周期遅延セルを割付けることを指示するための属性を与えて、それにより割付けるようにしても良い。
【００２７】
さらに、ＲＴＬ記述に半周期遅延セルを割付けることを指示するための記述をしておき、その記述のあるフリップフロップを割り付けるべき構文に対して、半周期遅延セルを割付けることもできる。
【００２８】
【発明の実施の形態】
本発明の実施の形態について、図１から図２２を用いて説明する。
（実施の形態１）
図１は請求項１に記載の本発明にもとづく半周期遅延セルの構成を示したものである。
【００２９】
図１に示される半周期遅延セル１は、クロック同期フリップフロップ２と、半周期遅延回路３とで構成される。クロック同期フリップフロップ２は、データ入力４の信号を、クロック入力５から与えられるクロック信号の立ち上がりで内部に格納する。格納したデータは、クロック同期フリップフロップ２のデータ出力６から半周期遅延回路３のデータ入力７へ与えられ、半周期遅延回路３でクロック入力５からの信号に対して半周期遅延された後、データ出力８から出力される。
【００３０】
図２は、半周期遅延回路３の一例を示す。この遅延回路３は、逆相クロックで動作するラッチ回路である（請求項３に相当）。
データ入力７はトランスファゲート１０の入力１１に接続される。また、クロック入力５からのクロック信号は、インバータ１２に入力されて、トランスファゲート１０、インバータ１３、トランスファゲート１５に出力される。なお、トランスファゲート１０はクロック信号が”Ｌ”の場合にオンし、トランスファゲート１５はクロック信号が”Ｈ”の場合にオンするように接続されている。インバータ１３の出力は、トランスファゲート１０とトランスファゲート１５のインバータ１２とは逆極性の制御ゲートとに入力される。トランスファゲート１０の出力１４はトランスファゲート１５の出力１６とワイヤードオアされてインバータ１７に入力される。インバータ１７の出力はインバータ２０に入力され、インバータ２０の出力はデータ出力８として半周期遅延回路３の外に出力される。また、インバータ１７の出力はインバータ１８に入力される。インバータ１８の出力はトランスファゲート１５の入力１９に接続される。
【００３１】
次に簡単に動作を説明する。クロック入力５が”Ｈ”の期間は、トランスファゲート１０はオフで、トランスファゲート１５はオンになる。これにより、インバータ１７とインバータ１８のループが形成され、期間中ある一定値を出力する。また、クロック入力５が”Ｌ”になると、トランスファゲート１０はオンで、トランスファゲート１５はオフになる。これによりデータ入力７からのデータがインバータ１７とインバータ２０を通じてデータ出力８から出力される。
【００３２】
以上の動作をする半周期遅延回路３を、図１におけるクロック同期フリップフロップ２の後段に接続することで、クロック入力５の立ち上がりで格納されたデータを、クロック入力５の立下り（”Ｌ”になる最初）からデータ出力８より出力することとなり、半周期遅延セルとして機能する。
【００３３】
図３に、半周期遅延回路３として逆相クロックで動作するクロック同期フリップフロップ回路３０を接続した例を示す（請求項４に相当）。
クロック入力５からのクロック信号をインバータ３１で反転し、クロック同期フリップフロップ３０のクロック入力３２から入力する。また、クロック同期フリップフロップ３０のデータ入力３３は、半周期遅延回路３のデータ入力７と接続し、クロック同期フリップフロップ３０のデータ出力３４はデータ出力８と接続する。
【００３４】
この構成により、クロック入力５の立ち上がりでクロック同期フリップフロップ２に格納されたデータは、次のクロック入力５の立下りでクロック同期フリップフロップ３０に格納され、データ出力８として出力される。これにより、クロック入力５の立ち上がりから半周期遅延してデータが出力される。
【００３５】
図４に、半周期遅延セルをブロック間での信号の送信側に用いた例を示す（請求項２に相当）。
ブロック（Ａ）５０とブロック（Ｂ）５１との間での信号授受において、ブロック（Ａ）５０からブロック（Ｂ）５１へ信号を伝達する信号線５５および信号線５６のうち、信号線５５は半周期遅延セル５２の出力とフリップフロップ５８の入力とに接続され、信号線５６は半周期遅延セル５３の出力とフリップフロップ５９の入力とに接続されている。また逆にブロック（Ｂ）５１からブロック（Ａ）５０へ信号を伝達する信号線５７は、半周期遅延セル６０の出力とフリップフロップ５４の入力とに接続されている。また半周期遅延セル５２、５３とフリップフロップ５４とにはバッファ６２を通じてクロック６１が入力され、フリップフロップ５８、５９と半周期遅延セル６０とにはバッファ６３を通じてクロック６１が入力される。
【００３６】
このような構成をとることで、ブロック（Ａ）５０とブロック（Ｂ）５１との間のデータ授受を行う各フリップフロップ５４、５８、５９と半周期遅延セル５２、５３、６０とにおいて、バッファ６２とバッファ６３を通じて与えられるクロックの到達時刻に差が有った場合でも、送信側に半周期の遅延を有しているので、クロック信号の到達時間に半周期の差が生じない限り、ホールド時間の制約を違反することは無い。
【００３７】
（実施の形態２）
図５は請求項５に記載の本発明の集積回路設計方法のフローを示した図で、ＲＴＬ記述ステップ１００で論理をＲＴＬ記述し、そのＲＴＬ記述を合成ステップ１０１で論理回路に割り付けてネットリストを作成する。次に作成したネットリストに対し、置換ステップ１０２においてブロック間の送信側のフリップフロップを半周期遅延セルに置換する。置換ステップ１０２での置換後にＤＦＴステップ１０３でテスト回路挿入を実施したネットリストを作成し、そのネットリストに基づいてレイアウトステップ１０４でレイアウト作成する。
【００３８】
次に置換ステップ１０２の詳細を説明する。ブロック間の送信側のフリップフロップを半周期遅延セルに置換する場合に、特定のフリップフロップを指定するセル名リスト１１１、ブロックを指定するブロック名リスト１１２、ブロック間を指定するブロック間リスト１１３、クロック信号を指定するクロック名リスト１１４、あるクロック信号とそれとは異なる別のクロック信号の組を指定するクロック対リスト１１５をリスト読み込みステップ１１０で読み込んで、前記複数のリストから半周期遅延セルに置換するブロック間の送信側のフリップフロップを選択し、セル置換ステップ１１６で半周期遅延セルに置換する。
【００３９】
例えば、セル名リスト１１１を読み込んだ場合は、そのセル名と一致したブロック間の送信側のフリップフロップを選択して置換する（請求項６に相当）。
図６はその様子を示したもので、ブロック（Ａ）１２０とブロック（Ｂ）１２１とのブロック間において、クロック１３１からバッファ１３２、バッファ１３３を通じて各フリップフロップにクロックが供給され、ブロック間をブロック（Ａ）１２０からブロック（Ｂ）１２１へと信号線１２５−１２７で信号が伝達される構成の場合に、セル名リストから読み込んだセル名に相当する２つのフリップフロップを半周期遅延セル１２２、１２３に置換し、リストに記載されていない外のフリップフロップ１２４、１２８−１３０はそのままにする。
【００４０】
また例えば、図５においてブロック名リスト１１２を読み込んだ場合は、ブロック名リスト１１２にあるブロックに存在するフリップフロップの内、ブロック間の送信側となるものを選択して置換する（請求項７に相当）。
【００４１】
図７はその様子を示したもので、ブロック（Ａ）１４０とブロック（Ｂ）１４１とのブロック間において、クロック１５１からバッファ１５２、バッファ１５３を通じて各フリップフロップ１４４、１４８−１５０にクロックが供給され、ブロック間をブロック（Ａ）１４０からブロック（Ｂ）１４１へと信号線１４５、１４６で信号が伝達され、ブロック（Ｂ）１４１からブロック（Ａ）１４０へと信号線１４７で信号が伝達される構成の場合において、ブロック名リスト１１２にブロック（Ａ）１４０が記載されているときには、ブロック（Ａ）１４０が送信側となるフリップフロップを半周期遅延セル１４２、１４３に置換し、受け側のフリップフロップ１４４や、リストに記載されていないブロック（Ｂ）のフリップフロップ１４８−１５０はそのままにする。
【００４２】
さらに例えば、図５においてブロック間リスト１１３を読み込んだ場合には、リストに記載された一方のブロックと、それと対をなすブロックとの間のデータ授受を行う信号線の送信側のフリップフロップを選択して置換する（請求項８に相当）。
【００４３】
図８はその様子を示したもので、ブロック（Ａ）１６０とブロック（Ｂ）１６１、ブロック（Ａ）１６０とブロック（Ｃ）１６２とのブロック間において、クロック１７２からバッファ１７３‐１７５を通じて各フリップフロップ１６５、１６９−１７１にクロックが供給され、ブロック間をブロック（Ａ）１６０からブロック（Ｂ）１６１へと信号線１６６、１６７で信号が伝達され、ブロック間をブロック（Ａ）１６０からブロック（Ｃ）１６２へと信号線１６８で信号が伝達される構成の場合において、ブロック間リスト１１３にブロック（Ａ）１６０とブロック（Ｂ）１６１とが記載されているときには、ブロック（Ａ）１６０とブロック（Ｂ）１６１との間の信号線１６６、１６７において、ブロック（Ａ）１６０が送信側となるフリップフロップを半周期遅延セル１６３、１６４に置換し、受け側のフリップフロップ１６９、１７０や、ブロック（Ａ）１６０からブロック（Ｃ）１６２へのフリップフロップ１６５、１７１は、そのままにする。
【００４４】
次に、例えばクロック名リスト１１４を読み込んだ場合は、そのクロックに接続されたフリップフロップの内、ブロック間の送信側となるものを選択して置換する（請求項９に相当）。
【００４５】
図９はその様子を示したもので、ブロック（Ａ）１８０とブロック（Ｂ）１８１とのブロック間において、クロック１９１からバッファ１９２、バッファ１９３を通じて各フリップフロップにクロックが供給され、ブロック間をブロック（Ａ）１８０からブロック（Ｂ）１８１へと信号線１８５、１８６で信号が伝達され、ブロック（Ｂ）１８１からブロック（Ａ）１８０へと信号線１８７で信号が伝達される構成の場合において、クロック名リスト１１４にクロック１９１が記載されているときには、送信側となるフリップフロップを半周期遅延セル１８２、１８３、１９０に置換し、受け側のフリップフロップ１８４、１８８、１８９はそのままにする。
【００４６】
また、例えばクロック対リスト１１５を読み込んだ場合は、リストに記載された一方のクロックに接続されたフリップフロップの内で、それと対をなすクロックに接続されたフリップフロップに対してブロック間での信号送信をしているものを選択して置換する（請求項１０に相当）。
【００４７】
図１０はその様子を示したもので、ブロック（Ａ）２００とブロック（Ｂ）２０１とのブロック間において、クロック２１１からバッファ２１２を通じてブロック（Ａ）２００の各フリップフロップにクロックが供給され、クロック２１３からバッファ２１４を通じてブロック（Ｂ）２０１のフリップフロップ２０８、２０９にクロックが供給され、クロック２１５からバッファ２１６を通じてブロック（Ｂ）２０１のフリップフロップ２１０にクロックが供給され、ブロック間をブロック（Ａ）２００からブロック（Ｂ）２０１へと信号線２０５‐２０７で信号が伝達される構成の場合において、クロック対リスト１１５にクロック２１１とクロック２１３の対が記載されているときには、クロック２１１に接続されているフリップフロップの内で、それと対をなすクロック２１３に接続されているフリップフロップに対してブロック間での信号送信をしているフリップフロップを半周期遅延セル２０２、２０３に置換し、異なるクロック２１５との間で信号送信をしているフリップフロップ２０４や受け側のフリップフロップ２０８−２１０はそのままにする。
【００４８】
（実施の形態３）
図１１は、請求項１１に記載の集積回路設計方法のフローを示したものである。まず、ＲＴＬ記述ステップ３００で論理をＲＴＬ記述し、そのＲＴＬ記述を合成ステップ３０１で論理回路に割り付けてネットリストを作成する。次に、作成したネットリストに対し、シフトレジスタ調査ステップ３０２で、ブロック間の信号の送受信が、フリップフロップからフリップフロップへのシフトレジスタ構成となっているか否かを調べ、置換ステップ３０３においてシフトレジスタ調査ステップ３０２の調査結果を基にブロック間の送信側のフリップフロップを半周期遅延セルに置換する。置換ステップ３０３での置換後にＤＦＴステップ３０４でテスト回路挿入を実施したネットリストを作成し、そのネットリストに基づいてレイアウトステップ３０５でレイアウト作成する。
【００４９】
図１２はその様子を示したもので、ブロック（Ａ）３１０とブロック（Ｂ）３１１とのブロック間において、クロック３２１からバッファ３２２、バッファ３２３を通じて各フリップフロップにクロックが供給され、ブロック間をブロック（Ａ）３１０からブロック（Ｂ）３１１へと信号線３１５、３１６で信号が伝達され、ブロック（Ｂ）３１１からブロック（Ａ）３１０へと信号線３１７で信号が伝達され、信号線３１６はブロック（Ｂ）３１１内のゲート３２５に入力されて信号線３２４と論理和をとった後にフリップフロップ３１９に入力される構成の場合には、シフトレジスタ調査ステップ３０２において、信号線３１５と信号線３１７で接続された２組のフリップフロップ間がシフトレジスタ構成になっていることが判明したときに、置換ステップ３０３では、その結果を受けて、送信側のフリップフロップを半周期遅延セル３１２、３２０に置換し、途中にゲート３２５のあるフリップフロップ３１３や、受信側のフリップフロップ３１４、３１８、３１９はそのままにする。
【００５０】
（実施の形態４）
図１３は、請求項１２に記載の集積回路設計方法のフローを示したものである。まず、ＲＴＬ記述ステップ４００で論理をＲＴＬ記述し、そのＲＴＬ記述を合成ステップ４０１で論理回路に割り付けてネットリストを作成する。次に作成したネットリストに対し、逆相クロック接続調査ステップ４０２で、各クロック同期フリップフロップの後段に、前記フリップフロップに入力されているクロックの逆相で動作するラッチないしフリップフロップが接続されているかどうかを調べ、置換ステップ４０３において逆相クロック接続調査ステップ４０２の調査結果を基にネットリスト中の前記フリップフロップとそれよりも後段にあるラッチないしフリップフロップをまとめて半周期遅延セルに置換する。置換ステップ４０３での置換後にＤＦＴステップ４０４でテスト回路挿入を実施したネットリストを作成し、そのネットリストに基づいてレイアウトステップ４０５でレイアウト作成する。
【００５１】
図１４はその様子を示した図で、（ａ）は合成ステップ４０１で論理回路に割り付けたネットリストの一部である。ここで、信号線５００とクロック５０１がフリップフロップ５０２に入力されている。また、クロック５０１はインバータ５０３を通じてフリップフロップ５０５に供給されている。このとき、フリップフロップ５０５はフリップフロップ５０２に対しクロックの逆相で動作していることになる。フリップフロップ５０２の出力は信号線５０４を通じてフリップフロップ５０５に入力されている。フリップフロップ５０５の出力は信号線５０６を通じて次の回路に接続される。
【００５２】
（ｂ）は置換ステップ４０３で置換処理した後を示したものである。ここでは、逆相クロック接続調査ステップ４０２において、（ａ）のフリップフロップ５０２とフリップフロップ５０５が、クロック同期フリップフロップよりも後段に、このフリップフロップに入力されているクロックの逆相で動作するフリップフロップがある構成になっていることが判明する。そこで、置換ステップ４０３において、インバータ５０３、フリップフロップ５０５、信号線５０４を削除し、フリップフロップ５０２を半周期遅延セル５１０に置換する。
【００５３】
（実施の形態５）
図１５は請求項１３に記載の集積回路設計方法のフローを示したもので、ＲＴＬ記述ステップ６００で論理をＲＴＬ記述し、そのＲＴＬを読み込みステップ６０１で読み込み、読み込んだＲＴＬ記述を合成ステップ６０２で論理回路に割り付けてネットリストを作成する。
【００５４】
次に合成ステップ６０２の詳細を説明する。ブロック間の送信側のフリップフロップを半周期遅延セルに置換する場合に、ブロックを指定するブロック名リスト６１０、ブロック間を指定するブロック間リスト６１１、クロック信号を指定するクロック名リスト６１２、あるクロック信号とそれとは異なる別のクロック信号の組を指定するクロック対リスト６１３をリスト読み込みステップ６１４で読み込む。そして、セル合成ステップ６１５において、論理合成を行う場合に、リストに該当する構成のフリップフロップとして半周期遅延セルを割り付け、ネットリストを作成する。
【００５５】
例えば、ブロック名リスト６１０を読み込んだ場合は、このブロック名リスト６１０にあるブロックの論理を合成するときにおいて、フリップフロップを割り付ける際に、ブロック間の送信側となるものについては半周期遅延セルを割り付ける（請求項１４に相当）。
【００５６】
次に例えば、ブロック間リスト６１１を読み込んだ場合は、このブロック間リスト６１１に記載された第１のブロックと、それと対をなす第２のブロックとの論理を合成するときにおいて、第１のブロックのフリップフロップを割り付ける際に第２のブロックへ信号を出力する場合には半周期遅延セルを割り付け、逆に第２のブロックのフリップフロップを割り付ける際に第１のブロックへ信号を出力する場合には半周期遅延セルを割り付ける（請求項１５に相当）。
【００５７】
また例えば、クロック名リスト６１２を読み込んだ場合は、このクロック名リスト６１２に記載されたクロックに接続されているフリップフロップを割り付ける際に、ブロック間の送信側となるものについては半周期遅延セルを割り付ける（請求項１６に相当）。
【００５８】
さらに例えば、クロック対リスト６１３を読み込んだ場合は、このクロック対リスト６１３に記載された第１のクロックと、それと対をなす第２のクロックに接続されたフリップフロップを割り付ける際に、第１のクロックのフリップフロップから異なるブロック間の第２のクロックに接続されたフリップフロップへの送信がある場合は、第１のクロックのフリップフロップとして半周期遅延セルを割り付け、逆に第２のクロックのフリップフロップから異なるブロック間の第１のクロックに接続されたフリップフロップへの送信がある場合は、第２のクロックのフリップフロップとして半周期遅延セルを割り付ける（請求項１７に相当）。
【００５９】
（実施の形態６）
図１６は、本発明の請求項１８、１９に記載の集積回路設計方法のフローを示したものである。ここでは、ＲＴＬ記述ステップ７００で論理をＲＴＬ記述し、そのＲＴＬを読み込みステップ７０１で読み込み、読み込んだＲＴＬ記述を合成ステップ７０２で論理回路に割り付けてネットリストを作成する。合成ステップ７０２において、例えば図１７に示すようなＲＴＬ記述の割付を行う際に、ＢＬＯＣＫＡのＲＴＬ記述（ＲＴＬ記述７１１）のフリップフロップ（ＲＥＧＡ記述７１２）出力が、ＢＬＯＣＫＢのＲＴＬ記述（ＲＴＬ記述７１３）のフリップフロップ（ＲＥＧＢ）入力に、上位階層のＲＴＬ記述（ＲＴＬ記述７１０）内の配線（ＮＥＴＡ接続記述７１５）で一対一接続される。そして、フリップフロップＢの記述（ＲＥＧＢ記述７１４）がＮＥＴＡからの信号を単にクロック（ＣＬＫＢ）の立ち上がりで格納するものである場合は、フリップフロップＡに半周期遅延セルを割り付けるようにする（請求項１８に相当）。
【００６０】
また、合成ステップ７０２において、例えば図１８に示すようなＲＴＬ記述７５０の割付を行う際に、ＲＴＬ記述７５０内のフリップフロップＡの記述（ＲＥＧＡ記述７５１）の出力（ＯＵＴＡ）がフリップフロップＢの記述（ＲＥＧＢ記述７５２）における一対一接続された入力となり、かつＲＥＧＢ記述７５２がＯＵＴＡからの信号を単にそのクロックで取り込む構成で、なおかつＲＥＧＡ記述７５１のクロック記述とＲＥＧＢ記述７５２のクロック記述が逆相の関係の場合は、ＲＥＧＡ記述７５１とＲＥＧＢ記述７５２とをまとめて、入力（ＩＮＡ）を取り込んで出力（ＯＵＴＢ）する半周期遅延セルを割り付けるようにする（請求項１９に相当）。
【００６１】
（実施の形態７）
図１９は、本発明の請求項２０、２１に記載の集積回路設計方法のフローを示すものである。ＲＴＬ記述ステップ８００で論理をＲＴＬ記述し、そのＲＴＬを読み込みステップ８０１で読み込み、読み込んだＲＴＬ記述を合成ステップ８０２で論理回路に割り付けてネットリストを作成し、作成したネットリストについてタイミングチェックステップ８０３で仮配線遅延を用いて合成結果のタイミングをチェックし、判別ステップ８０４において前記タイミングチェックステップ８０３で違反が無い場合はそのまま終了し、違反がある場合には修正ステップ８０５で修正を施して終了する。
【００６２】
修正ステップ８０５においては、違反個所を修正する場合に、始点のフリップフロップからの全経路で半周期以上のホールド違反を起こしている場合は、その始点フリップフロップを半周期遅延セルに置き換える（請求項２０に相当）。
【００６３】
また始点のフリップフロップからの全経路の内、少なくとも１つの経路が半周期未満のホールド違反を起こしている場合において、始点フリップフロップからの全経路の最大遅延時間が半周期未満であるとき、すなわち半周期遅れても違反が生じないときにも、始点フリップフロップを半周期遅延セルに置き換える（請求項２１に相当）。
【００６４】
（実施の形態８）
図２０は、本発明の請求項２２、２３に記載の集積回路設計方法のフローを示したものである。ここで、ＲＴＬ記述ステップ８５０で論理をＲＴＬ記述し、そのＲＴＬを読み込みステップ８５１で読み込む。次にホールド時間判別ステップ８５３において、セルライブラリ８５２を参照し、読み込んだＲＴＬ内で利用されるライブラリセルのうち、閾値８５４で与えられる値以上のセルがあった場合には、そのライブラリセルにおいて、前記セルの入力に接続される信号線の始点となるフリップフロップを半周期遅延セルとする属性を付加する。合成ステップ８５５では、属性があるライブラリセルの入力に接続される始点のフリップフロップとして半周期遅延セルを割り付けて、ネットリストを作成する（請求項２２に相当）。
【００６５】
なお、セルライブラリ８５２にある、ホールド時間がある閾値以上必要なセルについては、あらかじめ前記セルの入力に接続される信号線の始点となるフリップフロップを半周期遅延セルとする属性を付加することで、ホールド時間判別ステップ８５３を省略することもできる（請求項２３に相当）。
【００６６】
（実施の形態９）
図２１は、請求項２４に記載の集積回路設計方法のフローを示したものであるる。これは、ＲＴＬ記述ステップ８６０で論理をＲＴＬ記述し、そのＲＴＬを読み込みステップ８６１で読み込み、読み込んだＲＴＬ記述を合成ステップ８６２で論理回路に割り付けてネットリストを作成する構成である。ここで、ＲＴＬを読み込むための読み込みステップ８６１は、ＲＴＬ記述の内容を解析し、半周期遅延セルを割付けることを指示するための記述が有るかどうかを調べる。このために読み込みステップ８６１は、記述解析ステップ８７０と、その結果を受けて、該当したフリップフロップに半周期遅延セルを割り付けることを指示する、半周期遅延セル割り付け指示ステップ８７１とからなる。合成ステップ８６２では、半周期遅延セル割り付け指示ステップ８７１で指示されたフリップフロップに半周期遅延セルを割り付ける。
【００６７】
図２２は、ＲＴＬ記述に半周期遅延セルを割付けることを指示するための記述を与える一例を示したもので、ＲＴＬ記述８８０中に半周期遅延セル割り付け記述８８１を記載し、そのすぐ下にあるフリップフロップの記述（ＲＥＧ記述８８２）の部分を図２１の半周期遅延セル割り付け指示ステップ８７１で指定するようにしたものである。
【００６８】
ここで、例えば、半周期遅延セル割り付け記述８８１の先頭に”／／”を記載した場合は、シミュレーションで無視するように取り決めておくこともできる（請求項２５に相当）。
【００６９】
また、たとえ半周期遅延セル割り付け記述８８１が有ったとしても、合成用のライブラリとして半周期遅延セルが存在しない場合には、無視するようにしても良い（請求項２６に相当）。
【００７０】
【発明の効果】
請求項１に記載の本発明によれば、半周期遅延セルを、通常のフリップフロップと置換して用いることで、簡単にホールド時間をクロックサイクルの半周期として確保することができる。
【００７１】
また特にクロックの遅延差が発生しやすいブロック間のデータ授受に用いることで、回路規模の増加を防ぐことができる（請求項２）。
また、半周期遅延セルとして、クロック同期フリップフロップよりも後段に、半周期の遅延を生成する回路として、逆相クロックで動作するラッチ回路や逆相クロックで動作するクロック同期フリップフロップ回路を備えた構成にすることで、それらをあらかじめ１つのセルにしてあることから、挿入するスペースがなくなることや配線経路が変化することや逆相クロック配線が増加することといった問題は発生しなくなる（請求項３、４）。
【００７２】
請求項５に記載の本発明の集積回路設計方法によれば、レイアウトを行う前に、ネットリスト記述されたブロック間の送信側のフリップフロップを半周期遅延セルに置換することで、ホールド制約を満足しにくいと予想される部分にあらかじめ遅延を与えることで、レイアウト後のホールド時間を満足させ、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、ブロック間に限定することで、回路規模の増加を防ぐことができる。
【００７３】
さらに、特定のフリップフロップを指定するセル名リストや、ブロックを指定するブロック名リストや、クロック信号を指定するクロック名リストや、あるクロック信号とそれとは異なる別のクロック信号の組を指定するクロック対リストを用いて、半周期遅延セルに置換するセルをあらかじめ選択しても良い。このようにすると、置換するセル数を絞り込むことで、回路規模の増加をさらに減少できる（請求項６−１０）。
【００７４】
また、請求項１１に記載の本発明の集積回路設計方法によれば、ネットリスト記述されたブロック間の信号の送受信が、フリップフロップからフリップフロップへのシフトレジスタ構成となっているかどうかを調べ、該当する場合に送信側のフリップフロップを半周期遅延セルに置換することで、ホールド制約を満足しにくいと予想される部分にレイアウトを行う前にあらかじめ遅延を与えることで、レイアウト後のホールド時間を満足させ、レイアウト後の遅延変動を減少させることが可能となる。さらに、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、ブロック間に限定することで、回路規模の増加を防ぐことができる。
【００７５】
なお、ネットリスト記述中にある各クロック同期フリップフロップよりも後段に、前記フリップフロップに入力されているクロックの逆相で動作するラッチないし他のフリップフロップが接続されている場合は、ネットリスト中の前記フリップフロップとそれよりも後段にあるラッチないし他のフリップフロップをまとめて半周期遅延セルに置換することで、配線数やクロック配線の分岐数を減らすこともできる（請求項１２）。
【００７６】
さらに、請求項１３に記載の本発明の集積回路設計方法によれば、ＲＴＬ記述を読み込んで合成する際に、ブロック間の送信側のフリップフロップとして半周期遅延セルを割付けて、ホールド制約を満足しにくいとレイアウトを行う前に予想される部分にあらかじめ遅延を与えることで、レイアウト後のホールド時間を満足させ、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、ブロック間に限定することで、回路規模の増加を防ぐことができる。
【００７７】
さらに、ブロックを指定するブロック名リストや、ブロック間を指定するブロック間リストや、クロック信号を指定するクロック名リストや、あるクロック信号とそれとは異なる別のクロック信号の組を指定するクロック対リストを用いて、あらかじめ半周期遅延セルに割付ける部分を選択しても良い。このようにすると、割付けするセル数を絞り込むことで、回路規模の増加をさらに減少することができる（請求項１４‐１７）。
【００７８】
請求項１８に記載の本発明の集積回路設計方法によれば、合成時のブロック間の信号の送受信がフリップフロップからフリップフロップへのシフトレジスタ構成となっているかどうかを調べ、該当する送信側のフリップフロップとして半周期遅延セルを割付けて、ホールド制約を満足しにくいとレイアウトを行う前に予想される部分にあらかじめ遅延を与えることで、レイアウト後のホールド時間を満足させ、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、ブロック間に限定することで、回路規模の増加を防ぐことができる。
【００７９】
なお、ＲＴＬ記述中にある各クロック同期フリップフロップよりも後段に、前記フリップフロップに入力されているクロックの逆相で動作するラッチないし他のフリップフロップが接続されている場合は、前記フリップフロップとその後段にあるラッチないし他のフリップフロップをまとめて半周期遅延セルに割付けることで、配線数やクロック配線の分岐数を減らすこともできる（請求項１９）。
【００８０】
また、請求項２０に記載の本発明の集積回路設計方法によれば、仮配線遅延を用いてタイミング違反を検知することで、半周期遅延セルに置き換えるために、ホールド制約を満足しにくいとレイアウトを行う前に予想される部分にあらかじめ遅延を与えることで、レイアウト後のホールド時間を満足させ、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、エラー発生部に限定することで、回路規模の増加を防ぐことができる。
【００８１】
なお、半周期未満のホールド違反を起こしている経路がある場合に、その始点となるフリップフロップからの全経路の最大遅延時間が半周期未満の場合は、前記始点となるフリップフロップを半周期遅延セルに置き換えても遅延制約を満足でき、これにより、レイアウト後に遅延を調整する部分を削減することができる（請求項２１）。
【００８２】
請求項２２に記載の本発明の集積回路設計方法によれば、ＳＲＡＭ等のマクロにおいて、比較的大きなホールド時間制約をあらかじめ必要とすることが判っている場合に、合成用ライブラリ内のセルの入力ホールド時間制約を見て、そのセルへの入力信号の始点にあるフリップフロップとして半周期遅延セルを割付ける様にして合成し、ホールド制約を満足しにくいとレイアウトを行う前に予想される部分にあらかじめ遅延を与えることで、レイアウト後のホールド時間を満足させ、レイアウト後の遅延変動を減少させることが可能となる。
【００８３】
また、合成用ライブラリ内のセルの入力ホールド時間制約を見る代わりに、合成用ライブラリに半周期遅延セルを割付けることを指示するための属性を与えて、それにより割付けるようにしても良い（請求項２３）。
【００８４】
さらに、ＲＴＬ記述に半周期遅延セルを割付けることを指示するための記述をしておき、その記述のあるフリップフロップを割り付けるべき構文に対して、半周期遅延セルを割付けることもできる（請求項２４）。
【００８５】
なお、半周期遅延セルを割付ける記述は論理シミュレーションで無視されるようにしておくとより良い（請求項２５）。
また、半周期遅延セルを割付ける記述があっても、合成用ライブラリに半周期遅延セルが無い場合には、普通のフリップフロップを割り付けるようにすれば、ＲＴＬ記述を半周期遅延セルの有無に関係なく共通化できる。
【図面の簡単な説明】
【図１】本発明の実施の形態１の集積回路における半周期遅延セルの構成を示した図
【図２】図１における半周期遅延回路の例を示した図
【図３】本発明の実施の形態１の集積回路におけるクロック同期フリップフロップ回路を接続した半周期遅延回路の例を示した図
【図４】本発明にもとづき半周期遅延セルをブロック間での信号の送信側に用いた例を示した図
【図５】本発明の実施の形態２の集積回路設計方法のフローを示した図
【図６】図５におけるセル名リストを用いて半周期遅延セルに置換する様子を示した図
【図７】図５におけるブロック名リストを用いて半周期遅延セルに置換する様子を示した図
【図８】図５におけるブロック間リストを用いて半周期遅延セルに置換する様子を示した図
【図９】図５におけるクロック名リストを用いて半周期遅延セルに置換する様子を示した図
【図１０】図５におけるクロック対リストを用いて半周期遅延セルに置換する様子を示した図
【図１１】本発明の実施の形態３の集積回路設計方法のフローを示した図
【図１２】図１１のフローにおける半周期遅延セルに置換する様子を示した図
【図１３】本発明の実施の形態４の集積回路設計方法のフローを示した図
【図１４】図１３のフローにおける半周期遅延セルに置換する様子を示した図
【図１５】本発明の実施の形態５の集積回路設計方法のフローを示した図
【図１６】本発明の実施の形態６の集積回路設計方法のフローを示した図
【図１７】図１６のフローにおけるＲＴＬ記述の例を示した図
【図１８】図１６のフローにおけるＲＴＬ記述の他の例を示した図
【図１９】本発明の実施の形態７の集積回路設計方法のフローを示した図
【図２０】本発明の実施の形態８の集積回路設計方法のフローを示した図
【図２１】本発明の実施の形態９の集積回路設計方法のフローを示した図
【図２２】図２１のフローにおける半周期遅延セルを割付けることを指示するためのＲＴＬ記述を示した図
【符号の説明】
１    半周期遅延セル
２    クロック同期フリップフロップ
３    半周期遅延回路
４    データ入力
５    クロック入力
８    データ出力
５０  ブロック（Ａ）
５１  ブロック（Ｂ）
５２  半周期遅延セル
５３  半周期遅延セル
５４  フリップフロップ
５８  フリップフロップ
５９  フリップフロップ
６０  半周期遅延セル
６１  クロック
６２  バッファ
６３  バッファ
【図１】
2004186515.tif 000003
【図２】
2004186515.tif 000004
【図３】
2004186515.tif 000005
【図４】
2004186515.tif 000006
【図５】
2004186515.tif 000007
【図６】
2004186515.tif 000008
【図７】
2004186515.tif 000009
【図８】
2004186515.tif 000010
【図９】
2004186515.tif 000011
【図１０】
2004186515.tif 000012
【図１１】
2004186515.tif 000013
【図１２】
2004186515.tif 000014
【図１３】
2004186515.tif 000015
【図１４】
2004186515.tif 000016
【図１５】
2004186515.tif 000017
【図１６】
2004186515.tif 000018
【図１７】
2004186515.tif 000019
【図１８】
2004186515.tif 000020
【図１９】
2004186515.tif 000021
【図２０】
2004186515.tif 000022
【図２１】
2004186515.tif 000023
【図２２】
2004186515.tif 000024