(57)【特許請求の範囲】
【請求項１】
複数の順序回路を有するシフトレジスタを備える半導体集積回路の設計支援方法であって、
前記半導体集積回路の回路情報ファイルから前記シフトレジスタの記述を抽出することと、
前記シフトレジスタの記述と、レイアウト設計の工程より上流の工程で行われた前記半導体集積回路に対するタイミング解析の結果ファイルと、前記半導体集積回路におけるクロックの特性を示すタイミング制約ファイルとに基づいて、前記シフトレジスタのホールドタイムを算出することと、
前記シフトレジスタのホールドタイムに基づいて前記複数の順序回路間の配置間隔を決定することと、
前記配置間隔に基づいて前記複数の順序回路を配置することと、
を含み、
前記シフトレジスタのホールドタイムを算出することは、前記シフトレジスタが所定のクロックに基づいて所定のデータ信号をラッチした後に、前記所定のデータ信号の状態が所定の状態に維持されるために必要な時間を前記ホールドタイムとして決定することを含む、
設計支援方法。
【請求項２】
前記シフトレジスタのホールドタイムを算出することは、
前記タイミング解析の結果ファイルに基づいて、前記順序回路のホールドタイムを決定することと、
前記タイミング制約ファイルに基づいて、前記シフトレジスタに入力される所定のクロックのホールドタイムを決定することと、
前記順序回路のホールドタイムと、前記所定のクロックのホールドタイムとに基づいて、前記シフトレジスタのホールドタイムを算出することと、
を含み、
前記順序回路のホールドタイムを決定することは、前記順序回路が前記所定のクロックに基づいて前記所定のデータ信号をラッチした後に、前記所定のデータ信号の状態が前記所定の状態に維持されるために必要な時間を決定することを含み、
前記所定のクロックのホールドタイムを決定することは、前記所定のクロックが入力される所定の構成要素が前記所定のクロックに基づいて前記所定のデータ信号をラッチした後に、前記所定のデータ信号の状態が前記所定の状態に維持されるために必要な時間を決定することを含む、
請求項１記載の設計支援方法。
【請求項３】
前記回路情報ファイルは、ＲＴＬファイルである、請求項１記載の設計支援方法。
【請求項４】
前記順序回路間の配置間隔を決定することは、前記順序回路の遅延時間と前記順序回路同士を接続する信号線の遅延時間との合計が前記シフトレジスタのホールドタイムを上回るように前記順序回路間の配置間隔を決定することを含む、請求項１記載の設計支援方法。
【請求項５】
前記順序回路を配置することは、前段の前記順序回路及び後段の前記順序回路の距離が前記配置間隔以上となるように前記順序回路を配置することを含む、請求項１記載の設計支援方法。
【請求項６】
前記順序回路を配置することは、前記シフトレジスタのクロック端子から前記複数の順序回路のそれぞれに至る各クロック線の長さ間の差が所定の閾値以内になるように、前記複数の順序回路を配置することを含む、請求項１記載の設計支援方法。
【請求項７】
複数の順序回路を有するシフトレジスタを備える半導体集積回路の設計を行うための半導体設計支援装置であって、
プロセッサモジュール及びこれに接続されるメモリモジュールを有する実行装置を備え、
前記実行装置は、前記プロセッサモジュールの制御の下、
前記半導体集積回路の回路情報ファイルから前記シフトレジスタの記述を抽出し、
前記シフトレジスタの記述と、レイアウト設計の工程より上流の工程で行われた前記半導体集積回路に対するタイミング解析の結果ファイルと、前記半導体集積回路におけるクロックの特性を示すタイミング制約ファイルとに基づいて、前記シフトレジスタのホールドタイムを算出し、
前記ホールドタイムに基づいて前記複数の順序回路間の配置間隔を算出し、
前記配置間隔に基づいて前記複数の順序回路を配置するように動作し、
前記シフトレジスタのホールドタイムは、前記シフトレジスタが所定のクロックに基づいて所定のデータ信号をラッチした後に、前記所定のデータ信号の状態が所定の状態に維持されるために必要な時間である、
半導体設計支援装置。
【請求項８】
複数の順序回路を有するシフトレジスタを備える半導体集積回路の設計を行うための設計支援プログラムであって、
前記設計支援プログラムは、半導体設計支援装置のプロセッサモジュールに、
前記半導体集積回路の回路情報ファイルから前記シフトレジスタの記述を抽出する機能と、
前記シフトレジスタの記述と、レイアウト設計の工程より上流の工程で行われた前記半導体集積回路に対するタイミング解析の結果ファイルと、前記半導体集積回路におけるクロックの特性を示すタイミング制約ファイルとに基づいて、前記シフトレジスタのホールドタイムを算出する機能と、
前記ホールドタイムに基づいて前記複数の順序回路間の配置間隔を算出する機能と、
前記配置間隔に基づいて前記複数の順序回路を配置する機能と、
を実現させ、
前記シフトレジスタのホールドタイムを算出する機能は、前記シフトレジスタが所定のクロックに基づいて所定のデータ信号をラッチした後に、前記所定のデータ信号の状態が所定の状態に維持されるために必要な時間を前記ホールドタイムとして算出する機能を含む、
設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計支援装置及び設計支援方法に関する。
【背景技術】
【０００２】
半導体集積回路の設計には、設計支援プログラムを実装したＣＡＤシステムやＥＤＡシステムと呼ばれる半導体設計支援装置が用いられる。半導体設計支援装置を用いた半導体集積回路の設計において、設計者は、まず、ＨＤＬ（Hardware description language）を用いて機能設計の工程を行い、論理合成ツールを用いて論理設計の工程を行った後、該論理設計の結果に従って回路設計の工程を行う。続いて、設計者は、該回路設計の結果に対してタイミング解析を行い、該回路設計の結果に従ってレイアウト設計の工程を行う。さらに、設計者は、レイアウト設計の結果に対して再びタイミング解析を行い、各工程でタイミングエラーが検出されない場合、半導体集積回路の設計を終了する。これに対して、タイミングエラーが検出された場合には、設計者は、該エラーを解消するためにエラーが発生した工程より前の工程に戻り、設計をやり直す。
【０００３】
ところで、半導体集積回路の設計において発生するタイミングエラーは、設計コストに大きな影響を及ぼすため、タイミングエラーの発生に対しては適切に対処することが望まれる。とりわけ、半導体集積回路に用いられるシフトレジスタに関わるタイミングエラーは頻繁に発生するため、このようなタイミングエラーに対して低コストで対処することが重要である。
【０００４】
シフトレジスタ及び該シフトレジスタの順序回路に関わるタイミングエラーとしては、シフトレジスタのホールドタイムに起因するタイミングエラー（「ホールドタイムエラー」と呼ばれることもある。）と、セットアップタイムに起因するタイミングエラー（「セットアップタイムエラー」と呼ばれることもある）と、入力クロックのスキューに起因するタイミングエラーとがある。
【０００５】
シフトレジスタのホールドタイムエラーは、シフトレジスタを構成する前後段の順序回路間の遅延が短すぎる場合に発生する。すなわち、シフトレジスタを構成する前段の順序回路と後段の順序回路との間の遅延が短すぎると、後段の順序回路が前段の順序回路の出力をまだ取り込んでいる最中に前段の順序回路の出力が変化してしまうため、シフトレジスタは正常に動作しない。このため、かかる異常動作がレイアウト設計の結果に含まれている場合には、かかる異常動作について、レイアウト設計の工程後のタイミング解析によって、ホールドタイムエラーが検出される。また、逆に前段の順序回路と後段の順序回路との間の遅延が長すぎる場合は、セットアップタイムエラーが検出される。
【０００６】
また、入力クロックのスキューに起因するタイミングエラーは、シフトレジスタのクロック端子から各順序回路に至る各経路の長さ間の差が大きい場合等に発生する。シフトレジスタのクロック端子から各順序回路のそれぞれに至る各経路の長さ間の差が大きいと、各順序回路に入力されるクロックが異なるタイミングで各順序回路に到着するため、シフトレジスタは正常に動作しない。この場合には、レイアウト設計の工程後のタイミング解析によって、かかる異常動作について、入力クロックのスキューに起因するタイミングエラーが検出される。
【０００７】
このようなタイミングエラーに対して低コストで対処するために、下記特許文献１に開示される半導体集積回路の設計方法では、エラーの種類と該エラーの原因に関連する複数の条件に対するチェック結果とからなるエラーリストを生成し、該エラーリストに基づいて該エラーの状況を分類することで問題点を抽出するとともにエラー修正方法を決定し、決定したエラー修正方法に対応する工程に戻って、設計をやり直している。該エラー修正方法は、ネットリスト修正、レイアウト修正、及び論理修正からなる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開１９９９−２８２８９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述した特許文献１に開示されるような半導体集積回路の設計方法では、レイアウト設計の工程が終わるまで、レイアウト設計の結果が反映されたタイミングエラーを検出することができない。したがって、特許文献１に開示されるような半導体集積回路の設計方法では、頻繁に発生し得るシフトレジスタに関するタイミングエラーを解消するために、該エラーがなくなるまでレイアウト設計の工程以前の各工程を繰り返し実行する必要があり、各工程の繰り返しの分だけ設計コストの増加を招いていた。つまり、特許文献１に開示されるような半導体集積回路の設計方法は、シフトレジスタに関するタイミングエラーがそもそも発生しないようにレイアウト設計を行うことによって、各工程の繰り返しに伴って発生する設計コストの増大を抑制することができなかった。
【００１０】
そこで、本発明は、シフトレジスタに関わるタイミングエラーが発生しないようにレイアウト設計を行うことができる半導体設計支援装置及び半導体設計支援方法を提供することを目的とする。
【００１１】
より具体的には、本発明は、シフトレジスタ内の各順序回路に関わるタイミングエラーが発生しないようにシフトレジスタ内の各順序回路の配置を決定することができる半導体設計支援装置及び半導体設計支援方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するための本発明は、以下の技術的特徴乃至は発明特定事項を含んで構成される。
【００１３】
すなわち、ある観点に従う本発明は、複数の順序回路を有するシフトレジスタを備える半導体集積回路の設計支援方法であって、前記半導体集積回路の回路情報ファイルから前記シフトレジスタの記述を抽出することと、前記シフトレジスタの記述と、レイアウト設計の工程より上流の工程で行われた前記半導体集積回路に対するタイミング解析の結果ファイルと、前記半導体集積回路におけるクロックの特性を示すタイミング制約ファイルとに基づいて、前記シフトレジスタのホールドタイムを算出することと、前記シフトレジスタのホールドタイムに基づいて前記複数の順序回路間の配置間隔を決定することと、前記配置間隔に基づいて前記複数の順序回路を配置することと、を含み、前記シフトレジスタのホールドタイムを算出することは、前記シフトレジスタが所定のクロックに基づいて所定のデータ信号をラッチした後に、前記所定のデータ信号の状態が所定の状態に維持されるために必要な時間を前記ホールドタイムとして決定することを含む、設計支援方法である。
【００１４】
これにより、半導体設計支援装置は、回路情報ファイルから抽出されたシフトレジスタの記述と、レイアウト設計の工程より上流の工程で行われるタイミング解析の結果ファイルと、クロックの特性を示すタイミング制約ファイルとに基づいて、シフトレジスタのホールドタイムを算出し、該算出したホールドタイムに基づいて、シフトレジスタの配置を決定するため、シフトレジスタのタイミングエラーが発生しないようにシフトレジスタの配置を行うことができるようになる。
【００１５】
ここで、前記シフトレジスタのホールドタイムを算出することは、前記タイミング解析の結果ファイルに基づいて、前記順序回路のホールドタイムを決定することと、前記タイミング制約ファイルに基づいて、前記シフトレジスタに入力される所定のクロックのホールドタイムを決定することと、前記順序回路のホールドタイムと、前記所定のクロックのホールドタイムとに基づいて、前記シフトレジスタのホールドタイムを算出することと、を含み、前記順序回路のホールドタイムを決定することは、前記順序回路が前記所定のクロックに基づいて前記所定のデータ信号をラッチした後に、前記所定のデータ信号の状態が前記所定の状態に維持されるために必要な時間を決定することを含み、前記所定のクロックのホールドタイムを決定することは、前記所定のクロックが入力される所定の構成要素が前記所定のクロックに基づいて前記所定のデータ信号をラッチした後に、前記所定のデータ信号の状態が前記所定の状態に維持されるために必要な時間を決定することを含んでも良い。
【００１６】
これにより、半導体設計支援装置は、タイミング解析の結果ファイルに基づいて、シフトレジスタの順序回路のホールドタイムを決定し、タイミング制約ファイルに基づいて、シフトレジスタに入力される所定クロックのホールドタイムを決定し、該順序回路のホールドタイムと該所定のクロックのホールドタイムとに基づいて、シフトレジスタのホールドタイムを算出することができるようになる。
【００１７】
また、前記回路情報ファイルは、ＲＴＬファイルであっても良い。
【００１８】
また、前記順序回路間の配置間隔を決定することは、前記順序回路の遅延時間と前記順序回路同士を接続する信号線の遅延時間との合計が前記シフトレジスタのホールドタイムを上回るように前記順序回路の配置間隔を決定することを含んでも良い。
【００１９】
これにより、半導体設計支援装置は、順序回路の遅延時間と、該順序回路同士を接続する信号線の遅延時間との合計がシフトレジスタのホールドタイムを上回るように順序回路の配置間隔を決定するため、シフトレジスタのホールドタイムエラーが発生しないようにシフトレジスタの順序回路の配置間隔を決定することができるようになる。
【００２０】
また、前記順序回路を配置することは、前段の前記順序回路及び後段の前記順序回路の距離が前記配置間隔以上となるように前記順序回路を配置することを含んでも良い。
【００２１】
また、前記順序回路を配置することは、前記シフトレジスタのクロック端子から所定のクロック線を介して前記複数の順序回路のそれぞれに至る各経路の長さ間の差が所定の閾値以内になるように、前記複数の順序回路を配置することを含んでも良い。
【００２２】
これにより、半導体設計支援装置は、順序回路に入力されるクロックスキューに起因するタイミングエラーが発生しないように、順序回路を配置することができるようになる。
【００２３】
さらに、別の観点に従う本発明は、複数の順序回路を有するシフトレジスタを備える半導体集積回路の設計を行うための半導体設計支援装置であって、プロセッサモジュール及びこれに接続されるメモリモジュールを有する実行装置を備え、前記実行装置は、前記プロセッサモジュールの制御の下、前記半導体集積回路の回路情報ファイルから前記シフトレジスタの記述を抽出し、前記シフトレジスタの記述と、レイアウト設計の工程より上流の工程で行われた前記半導体集積回路に対するタイミング解析の結果ファイルと、前記半導体集積回路におけるクロックの特性を示すタイミング制約ファイルとに基づいて、前記シフトレジスタのホールドタイムを算出し、前記ホールドタイムに基づいて前記複数の順序回路間の配置間隔を算出し、前記配置間隔に基づいて前記複数の順序回路を配置するように動作し、前記シフトレジスタのホールドタイムは、前記シフトレジスタが所定のクロックに基づいて所定のデータ信号をラッチした後に、前記所定のデータ信号の状態が所定の状態に維持されるために必要な時間である、半導体設計支援装置である。
【００２４】
これにより、半導体設計支援装置は、回路情報ファイルから抽出されたシフトレジスタの記述と、レイアウト設計の工程より上流の工程で行われるタイミング解析の結果ファイルと、クロックの特性を示すタイミング制約ファイルとに基づいて、シフトレジスタのホールドタイムを算出し、該算出したホールドタイムに基づいて、シフトレジスタの配置を決定するため、シフトレジスタのタイミングエラーが発生しないようにシフトレジスタの配置を行うことができるようになる。
【００２５】
さらに、別の観点に従う本発明は、複数の順序回路を有するシフトレジスタを備える半導体集積回路の設計を行うための設計支援プログラムであって、前記設計支援プログラムは、半導体設計支援装置のプロセッサモジュールに、前記半導体集積回路の回路情報ファイルから前記シフトレジスタの記述を抽出する機能と、前記シフトレジスタの記述と、レイアウト設計の工程より上流の工程で行われた前記半導体集積回路に対するタイミング解析の結果ファイルと、前記半導体集積回路におけるクロックの特性を示すタイミング制約ファイルとに基づいて、前記シフトレジスタのホールドタイムを算出する機能と、前記ホールドタイムに基づいて前記複数の順序回路間の配置間隔を算出する機能と、前記配置間隔に基づいて前記複数の順序回路を配置する機能と、を実現させ、前記シフトレジスタのホールドタイムを算出する機能は、前記シフトレジスタが所定のクロックに基づいて所定のデータ信号をラッチした後に、前記所定のデータ信号の状態が所定の状態に維持されるために必要な時間を前記ホールドタイムとして算出する機能を含む、設計支援プログラムである。
【００２６】
これにより、半導体設計支援装置は、回路情報ファイルから抽出されたシフトレジスタの記述と、レイアウト設計の工程より上流の工程で行われるタイミング解析の結果ファイルと、クロックの特性を示すタイミング制約ファイルとに基づいて、シフトレジスタのホールドタイムを算出し、該算出したホールドタイムに基づいて、シフトレジスタの配置を決定するため、シフトレジスタのタイミングエラーが発生しないようにシフトレジスタの配置を行うことができるようになる。
【００２７】
さらに、別の観点に従う本発明は、複数の順序回路を有するシフトレジスタを備える半導体集積回路の設計を行うための設計支援プログラムを記憶する記憶媒体であって、前記設計支援プログラムは、半導体設計支援装置のプロセッサモジュールに、前記半導体集積回路の回路情報ファイルから前記シフトレジスタの記述を抽出する機能と、前記シフトレジスタの記述と、レイアウト設計の工程より上流の工程で行われた前記半導体集積回路に対するタイミング解析の結果ファイルと、前記半導体集積回路におけるクロックの特性を示すタイミング制約ファイルとに基づいて、前記シフトレジスタのホールドタイムを算出する機能と、前記ホールドタイムに基づいて前記複数の順序回路間の配置間隔を算出する機能と、前記配置間隔に基づいて前記複数の順序回路を配置する機能と、を実現させ、前記シフトレジスタのホールドタイムを算出する機能は、前記シフトレジスタが所定のクロックに基づいて所定のデータ信号をラッチした後に、前記所定のデータ信号の状態が所定の状態に維持されるために必要な時間を前記ホールドタイムとして算出する機能を含む、記憶媒体である。
【００２８】
これにより、半導体設計支援装置は、回路情報ファイルから抽出されたシフトレジスタの記述と、レイアウト設計の工程より上流の工程で行われるタイミング解析の結果ファイルと、クロックの特性を示すタイミング制約ファイルとに基づいて、シフトレジスタのホールドタイムを算出し、該算出したホールドタイムに基づいて、シフトレジスタの配置を決定するため、シフトレジスタのタイミングエラーが発生しないようにシフトレジスタの配置を行うことができるようになる。
【発明の効果】
【００２９】
本発明によれば、半導体設計支援装置は、シフトレジスタのタイミングエラーが発生しないようにシフトレジスタのレイアウト設計をすることができるようになる。
【００３０】
より具体的には、本発明によれば、半導体設計支援装置は、シフトレジスタ内の各順序回路のタイミングエラーが発生しないようにシフトレジスタ内の各順序回路の配置を決定することができるようになる。
【００３１】
また、本発明によれば、半導体設計支援装置は、シフトレジスタのタイミングエラーが発生しないようにシフトレジスタのレイアウト設計をするため、シフトレジスタのタイミングエラーによる後戻り工程に起因する設計コストの増大を抑制することができる。
【００３２】
本発明の他の技術的特徴、目的、及び作用効果乃至は利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施形態に係る半導体設計支援装置を用いてレイアウト設計された半導体集積回路示す平面模式図である。
【図２】本発明の一実施形態に係る半導体集積回路の設計支援方法により得られる半導体集積回路のシフトレジスタを示す平面模式図である。
【図３】本発明の一実施形態に係る半導体設計支援装置の概略構成を示す図である。
【図４】本発明の一実施形態に係る半導体設計支援装置のメモリモジュールの記憶内容の一例を説明するための概念図である。
【図５】本発明の一実施形態に係る半導体設計支援装置の動作を示すフローチャートである。
【図６】本発明の一実施形態に係る半導体集積回路を示すＲＴＬファイルを説明するための図である。
【図７】本発明の一実施形態に係る半導体集積回路に対するタイミング解析結果ファイルを説明するための図である。
【図８】本発明の一実施形態に係る半導体集積回路に対する静的タイミング解析に用いられるタイミング制約ファイルを説明するための図である。
【図９】本発明の他の実施形態に係る半導体集積回路の設計支援方法により得られる半導体集積回路のシフトレジスタを示す平面模式図である。
【発明を実施するための形態】
【００３４】
次に、本発明の実施の形態について、図面を参照しつつ説明する。以下の図の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。図は模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。
【００３５】
図１は、本発明の一実施形態に係る半導体設計支援装置を用いてレイアウト設計された半導体集積回路の一部又は全体を示す平面模式図である。同図に示すように、半導体集積回路１は、例えば、論理回路１０と、シフトレジスタ２０とを含んでいる。
【００３６】
論理回路１０は、半導体集積回路１におけるシフトレジスタ２０以外の構成要素の集合である。論理回路１０は、所定のクロックＣＬＫ及びデータ信号ＤＡＴＡを生成し、該クロックＣＬＫをシフトレジスタ２０のクロック端子ＣＫに出力するとともに、該データ信号ＤＡＴＡをシフトレジスタ２０のデータ端子Ｄに出力する。また、論理回路１０は、シフトレジスタ２０から該シフトレジスタ２０を構成する各順序回路ＦＦ（図２参照）から出力される出力信号ＯＵＴを受信する。また、論理回路１０は、各種の機能を実現するための回路ブロック（ＩＰ：intellectual propertyブロックとも呼ばれる）であるハードマクロ１１を少なくとも１つ以上（本例ではハードマクロ１１（１）乃至１１（３）の３つ）と、ハードマクロ１１やシフトレジスタ２０等の各構成要素間を接続するための論理セル（図示せず）とを含んで構成される。論理回路１０は、半導体集積回路１においてシフトレジスタ２０が配置される領域以外の領域に配置される。
【００３７】
シフトレジスタ２０は、直列に接続された複数の順序回路（図２参照）から構成される。シフトレジスタ２０は、論理回路１０から出力される所定のクロックＣＬＫに基づいて、論理回路１０から出力されるデータ信号ＤＡＴＡが示す値を最前段の順序回路でラッチするとともに、前段の順序回路の出力を次段の順序回路でラッチする。また、シフトレジスタ２０は各順序回路の出力を出力信号ＯＵＴとして論理回路１０に出力する。なお、本例では半導体集積回路１は、１つのシフトレジスタ２０を含んでいるが、これに限られるものではなく、半導体集積回路１は複数のシフトレジスタ２０を含んでいても良い。
【００３８】
図２は、本発明の一実施形態に係る半導体集積回路の設計支援方法により得られる半導体集積回路のシフトレジスタを示す平面模式図である。同図に示すように、本実施形態に係るシフトレジスタ２０は、順序回路ＦＦＡ１乃至ＦＦＡ１０、及びＦＦＢ１乃至ＦＦＢ１０を含んで構成されるが、これに限られるものではなく、必要な数の順序回路ＦＦを含んでいても良い。また、シフトレジスタ２０を構成する順序回路ＦＦは、例えば、Ｄ型フリップフロップであるが、これに限られない。本例において、シフトレジスタ２０の一側端部からこれに対向する他側端部に向かう方向を第１の方向と定義し、該第１の方向に対して平面内で直交する方向を第２の方向と定義する。
【００３９】
まず、シフトレジスタ２０の各順序回路ＦＦの動作について説明する。順序回路ＦＦは、所定のクロックＣＬＫに基づいて、自身に入力されるデータ信号ＤＡＴＡの値をラッチするとともに、該ラッチした値を出力信号ＯＵＴとして次段の順序回路ＦＦと論理回路１０とに出力する。具体的には、順序回路ＦＦＡ１は、論理回路１０から出力される所定のクロックＣＬＫに基づいて、論理回路１０から出力されるデータ信号ＤＡＴＡの値を出力信号ＯＵＴとして次段の順序回路ＦＦＡ２と論理回路１０とに出力する（図示せず）。順序回路ＦＦＡ２は、論理回路１０から出力される所定のクロックＣＬＫに基づいて、前段の順序回路ＦＦＡ１から出力される出力信号ＯＵＴの値を次段の順序回路ＦＦＡ３と論理回路１０とに出力する（図示せず）。同様に、順序回路ＦＦＡ３乃至ＦＦＡ９は、論理回路１０から出力される所定のクロックＣＬＫに基づいて、前段の順序回路ＦＦＡ２乃至ＦＦＡ８から出力される出力信号ＯＵＴの値を次段の順序回路ＦＦＡ４乃至ＦＦＡ１０と論理回路１０とにそれぞれ出力する（図示せず）。そして、順序回路ＦＦＡ１０は、論理回路１０から出力される所定のクロックＣＬＫに基づいて、前段の順序回路ＦＦＡ９から出力される出力信号ＯＵＴの値を次段の順序回路ＦＦＢ１と論理回路１０とに出力する（図示せず）。
【００４０】
また、順序回路ＦＦＢ１は、論理回路１０から出力される所定のクロックＣＬＫに基づいて、前段の順序回路ＦＦＡ１０から出力される出力信号ＯＵＴを次段の順序回路ＦＦＡＢ２と論理回路１０とに出力する（図示せず）。同様に、順序回路ＦＦＢ２乃至ＦＦＢ９は、論理回路１０から出力される所定のクロックＣＬＫに基づいて、前段の順序回路ＦＦＢ１乃至ＦＦＢ８から出力される出力信号ＯＵＴの値を次段の順序回路ＦＦＢ３乃至ＦＦＢ１０と論理回路１０とにそれぞれ出力する（図示せず）。そして、順序回路ＦＦＢ１０は、論理回路１０から出力される所定のクロックＣＬＫに基づいて、前段の順序回路ＦＦＢ９から出力される出力信号ＯＵＴの値を次段の順序回路（図示せず）と論理回路１０とに出力する（図示せず）。
【００４１】
次に、シフトレジスタ２０における順序回路ＦＦの配置位置について説明する。順序回路ＦＦＡ１乃至ＦＦＡ１０は、それぞれ第１の方向に直列に配置される。順序回路ＦＦＡ２は、順序回路ＦＦＡ１の配置位置から順序回路ＦＦのｎ個（本例では５個）分の距離だけ第１の方向に進んだ位置に配置される。また、順序回路ＦＦＡ３は、順序回路ＦＦＡ２の配置位置から順序回路ＦＦのｎ−１個分の距離だけ第１の方向と逆の方向に進んだ位置に配置される。また、順序回路ＦＦＡ４は、順序回路ＦＦＡ３の配置位置から順序回路ＦＦのｎ個分の距離だけ第１の方向に進んだ位置に配置される。このように、偶数番目の順序回路ＦＦは、前段の順序回路ＦＦから順序回路ＦＦのｎ個分の距離だけ第１の方向に進んだ位置に配置され、奇数番目の順序回路ＦＦは、前段の順序回路ＦＦから順序回路ＦＦのｎ−１個分の距離だけ第１の方向の逆の方向に進んだ位置に配置される。順序回路ＦＦＢ１乃至ＦＦＢ１０は、それぞれ順序回路ＦＦＡ１乃至ＦＦＡ１０に対して並列に配置される。
【００４２】
なお、各順序回路ＦＦの配置位置を決定する値ｎは、シフトレジスタ２０のホールドタイムに基づいて決定される。すなわち、値ｎは、順序回路ＦＦ間を接続する信号線の長さｄが、順序回路ＦＦの信号のラッチに前段の順序回路ＦＦの出力の変化の影響が及ばない程度に十分に長くなるように決定される。また、各順序回路ＦＦは、シフトレジスタ２０のクロック端子ＣＫからクロック線Ｗ＿ＣＬＫを介して各順序回路ＦＦに至る経路の長さの各順序回路ＦＦにおける差異が所定の閾値内となるように、できる限り近接して配置される。
【００４３】
以上のように構成されるシフトレジスタ２０は、順序回路ＦＦ間を接続する信号線の長さｄが、順序回路ＦＦの信号のラッチに前段の順序回路ＦＦの出力の変化の影響が及ばない程度に十分に長くなるように、各順序回路ＦＦが配置される。これにより、シフトレジスタ２０は、タイミング解析においてホールドエラーが検出されない構成となる。また、シフトレジスタ２０は、各順序回路ＦＦが近接して配置されるため、各順序回路ＦＦに入力されるクロックのクロックスキューが抑えられた構成となる。
【００４４】
図３は、本発明の一実施形態に係る半導体設計支援装置の概略構成を示す図である。同図に示すように、本実施形態に係る半導体設計支援装置３００は、例えば、プロセッサモジュール３１０と、メモリモジュール３２０と、チップセット３３０と、ストレージデバイス３４０と、入出力装置３５０とを含んで構成される。プロセッサモジュール３１０、メモリモジュール３２０及びチップセット３３０は、実行装置３６０を構成する。
【００４５】
プロセッサモジュール３１０は、例えば、プロセッサコア、マイクロコントローラ、デジタル信号プロセッサ及び／又はこれらの組み合わせを含むが、これらに限られるものではない。ここでは、「プロセッサコア」という用語は、メインプロセッサを意味するプロセッサやＣＰＵ、ＭＰＵ等と同義のものとして扱われる。プロセッサモジュール３１０は、１次又はそれ以上のレベルのキャッシュ機構を含んでも良い。
【００４６】
メモリモジュール３２０は、典型的には、揮発性メモリ（例えばＲＡＭ）、不揮発性メモリ（例えばＲＯＭやフラッシュメモリ等）及び／又はこれらの組み合わせからなり、プロセッサモジュール３１０の１次記憶装置である。メモリモジュール３２０は、例えば、図４に示すように、２次記憶装置としてのストレージデバイス３４０からロードされた、設計支援プログラム３２１、該設計支援プログラム３２１の実行に供される各種のファイル３２２〜３２５、及び該設計支援プログラム３２１の実行により得られる設計結果ファイル３２６の少なくともいくつかを、ファイル全体又はその一部について、記憶する。
【００４７】
設計支援プログラム３２１は、半導体設計支援装置３００に、半導体集積回路１のレイアウト設計支援を実現させるプログラムであり、ＣＡＤプログラムやＥＤＡプログラムが相当する。設計支援プログラム３２１は、例えば、１つのプログラムモジュールから構成されても良いし、複数のプログラムモジュールから構成されても良い。ＲＴＬ（Register Transfer Level）ファイル３２２は、回路情報ファイルの一つであり、半導体集積回路１の動作に関する情報を有するファイルである。ＲＴＬファイル３２２は、半導体集積回路１の記憶素子間の信号の流れと該信号に対する論理演算との組み合わせに基づいて記述される。ネットリストファイル３２３は、回路情報ファイルの一つであり、半導体集積回路１の各構成要素間の電気的接続関係に関する情報を有するファイルである。ネットリストファイル３２３は、典型的にはＲＴＬファイル３２２に対して論理合成を実行することによって得られる。タイミング制約ファイル３２４は、ネットリストファイル３２３に対して静的タイミング解析（ＳＴＡ：Static Timing Analysis）を行う際に用いられるファイルであり、例えば半導体集積回路におけるクロックの特性（例えば、動作周波数、セットアップタイム及びホールドタイム）に関する情報を有する。タイミング制約ファイル３２４の一つとしてＳＤＣ（Synopsys Design Constraints）ファイルがある。タイミング解析結果ファイル３２５は、ネットリストファイル３２３に対して静的タイミング解析を行った結果を示すファイルである。タイミング解析結果ファイル３２５には、静的タイミング解析の結果として、例えばシフトレジスタ２０の各順序回路ＦＦのタイミング特性（例えば、セットアップタイム及びホールドタイム）が記述される。設計結果ファイル３２６は、設計支援プログラム３２１による半導体集積回路１の設計結果を示すファイルである。
【００４８】
図３に戻り、チップセット３３０は、プロセッサモジュール３１０、メモリモジュール３２０、ストレージデバイス３４０及び入出力装置３５０等を接続するバスとのブリッジや、半導体設計支援装置３００を構成するために必要な他のコンポーネントを集積した回路からなる。チップセット３３０は、例えば、プロセッサモジュール３１０によって制御される。
【００４９】
ストレージデバイス３４０は、典型的には、ハードディスクドライブ（ＨＤＤ）や光学式ディスクドライブ、ソリッドステートデバイス（ＳＳＤ）等からなる２次記憶装置である。入出力装置３５０は、各種のペリフェラルインターフェースであり、例えば、キーボードや、マウス、ディスプレイ、印刷装置などである。入出力装置３５０は、例えば、レイアウト設計時に、設計者（ユーザ）に対してインタラクティブな操作環境を提供する。
【００５０】
以上のように構成される半導体設計支援装置３００は、例えば、ユーザの指示に従い、プロセッサモジュール３１０の制御の下、設計支援プログラム３２１を実行し、適宜にインタラクティブな操作を介して、レイアウト設計を行い、半導体集積回路１を作成する。
【００５１】
図５は、本発明の一実施形態に係る半導体設計支援装置の動作を示すフローチャートである。同図に示すように、本実施形態に係る半導体設計支援装置３００は、まず、ユーザの操作に従い、設計支援プログラム３２１を実行し、メモリモジュール３２０上に半導体集積回路のレイアウト設計を行うために必要な各種のファイル３２２乃至３２５を準備する（Ｓ５０１）。例えば、各種のファイル３２２乃至３２５の少なくともいくつかは、ストレージデバイス３４０からロードされ、また、他のいくつかは、新たに生成される。かかる処理は、半導体設計支援装置３００のプロセッサモジュール３１０の制御の下、設計支援プログラム３２１が実行されることにより、実現される。
【００５２】
次に、半導体設計支援装置３００は、所定の条件に従ってＲＴＬファイル３２２からシフトレジスタ２０に関する記述を抽出する。具体的には、半導体設計支援装置３００は、例えば図６に示すようなＲＴＬファイル３２２から、ｍｏｄｕｌｅ文の中でレジスタ宣言されている変数であって、ａｌｗａｙｓ文によってクロックの変化によって動作するように記述されており、“＜＝”によって値が代入されるように記述されている変数をシフトレジスタ２０に関する記述として抽出する（Ｓ５０２）。
【００５３】
次に、半導体設計支援装置３００は、タイミング制約ファイル３２４及びタイミング解析結果ファイル３２５に従って、抽出したシフトレジスタ２０に関する記述に基づいてホールドタイムを算出する（Ｓ５０３）。具体的には、半導体設計支援装置３００は、タイミング解析結果ファイル３２５から、記述が抽出されたシフトレジスタ２０における順序回路ＦＦのホールドタイムの値と、該シフトレジスタ２０に入力されるクロックの記述とを抽出するとともに、記述が抽出されたクロックのホールドタイムの値をタイミング制約ファイル３２４から抽出し、さらに、順序回路ＦＦのホールドタイムの値に該クロックのホールドタイムの値を加算することによって、シフトレジスタ２０のホールドタイムの値を算出する。
【００５４】
なお、シフトレジスタ２０のホールドタイムは、シフトレジスタ２０がクロックＣＬＫに基づいてデータ信号ＤＡＴＡをラッチした後に、データ信号ＤＡＴＡの状態が所定の状態に維持されるために必要な時間である。また、順序回路ＦＦのホールドタイムは、順序回路ＦＦがクロックＣＬＫに基づいて、自身に入力される信号をラッチした後に、該信号の状態が所定の状態に維持されるために必要な時間である。また、クロックＣＬＫのホールドタイムは、クロックＣＬＫが入力される構成要素が該構成要素に入力される信号をラッチした後に、該信号の状態が所定の状態に維持されるために必要な時間である。
【００５５】
半導体設計支援装置３００は、次に、算出したホールドタイムの値からシフトレジスタ２０の各順序回路ＦＦの配置間隔を決定する（Ｓ５０４）。具体的には、半導体設計支援装置３００は、シフトレジスタ２０の各順序回路ＦＦの遅延時間と、各順序回路ＦＦ同士を直列に接続する信号線の遅延時間との合計が、算出したホールドタイムの値より大きくなるように、該信号線の長さを決定し、該信号線の長さに従って各順序回路ＦＦの配置間隔を決定する。
【００５６】
次に、半導体設計支援装置３００は、半導体集積回路１を構成するためのレイアウト領域Ｌ内の所定の位置に、ハードマクロ１１を配置する（Ｓ５０５）。続いて、半導体設計支援装置３００は、レイアウト領域Ｌ内のハードマクロ１１が配置されていない領域にシフトレジスタ２０を配置する（Ｓ５０６）。具体的には、半導体設計支援装置３００は、レイアウト領域Ｌ内の所定の位置に、決定した配置間隔に従って、各順序回路ＦＦを配置し、該順序回路ＦＦ同士を直列に接続する信号線と、該順序回路ＦＦを駆動するためのクロック線とを配置する。なお、半導体設計支援装置３００は、シフトレジスタ２０のクロック端子ＣＫからクロック線Ｗ＿ＣＬＫを介して各順序回路ＦＦに至る各経路の長さ間の差異が所定の閾値内となるように、各順序回路ＦＦができる限り近接して配置する。
【００５７】
半導体設計支援装置３００は、レイアウト領域Ｌ内のハードマクロ１１及びシフトレジスタ２０が配置されていない領域に論理回路１０のハードマクロ１１以外の構成要素（例えば、論理セル）を配置する（Ｓ５０７）。続いて、半導体設計支援装置３００は、クロックツリー合成（ＣＴＳ：Clock Tree Synthesis）を実行することによって、論理回路１０内の各構成要素のクロックスキューを低減するためのバッファの配置などを行う（Ｓ５０８）。そして、半導体設計支援装置３００は、レイアウト設計の結果に対してタイミング解析を行い、論理回路１０に関してセットアップタイムエラー及びホールドタイムエラーの除去を行い（Ｓ５０９）、半導体集積回路の設計を終了する。なお、ステップＳ５０９の処理において、論理回路１０に関するセットアップタイムエラー及びホールドタイムエラーが発生する場合は、半導体設計支援装置３００のユーザは、レイアウト設計の工程以前の対応する工程に戻って該エラーを解消する。
【００５８】
上述したように、半導体設計支援装置３００は、ＲＴＬファイル３２２からシフトレジスタ２０の記述を抽出し、該記述が抽出されたシフトレジスタ２０における順序回路ＦＦのホールドタイムの値と、該順序回路ＦＦに入力されるクロックの記述をタイミング解析結果ファイル３２５から抽出し、該記述が抽出されたクロックのホールドタイムの値をタイミング制約ファイル３２４から抽出し、順序回路ＦＦのホールドタイムの値と該クロックのホールドタイムの値とに基づいてシフトレジスタ２０のホールドタイムの値を算出する。そして、半導体設計支援装置３００は、シフトレジスタ２０のホールドタイムの値に基づいて、順序回路ＦＦの配置間隔を決定する。これにより、半導体設計支援装置３００は、シフトレジスタ２０に関わるタイミングエラーが発生しないように半導体集積回路のレイアウト設計を行うことができる。
【００５９】
図６は、本発明の一実施形態に係る半導体集積回路を示すＲＴＬファイルを説明するための図である。便宜上、ＲＴＬファイル３２２を構成する各行の左端には、行番号を付している。ＲＴＬファイル３２２は、典型的には、モジュールの宣言に関する記述と、該モジュールで使用する入力信号、レジスタ及び出力信号の定義に関する記述と、該レジスタの動作に関する記述とからなる。
【００６０】
同図に示す例では、ＲＴＬファイル３２２の１行目には、シフトレジスタ２０を示すモジュールＸＸＸを宣言することが記述されている。また、ＲＴＬファイル３２２の２行目乃至５行目には、シフトレジスタ２０に用いられる入力信号、レジスタ及び出力信号を定義することが記述されている。具体的には、ＲＴＬファイル３２２の２行目には入力信号として、データ信号ＤＡＴＡとクロックＣＬＫとを定義することが記述され、ＲＴＬファイル３２２の３行目には出力信号として順序回路ＦＦＡ及びＦＦＢの出力を定義することとが記述され、ＲＴＬファイル３２２の４行目及び５行目にはレジスタとして順序回路ＦＦＡ及びＦＦＢを定義することが記述される。
【００６１】
また、ＲＴＬファイル３２２の６行目乃至８行目には、順序回路ＦＦＡが、クロックＣＬＫの立ち上がりタイミングで、前段の順序回路ＦＦＡの出力をラッチすることが記述されている。また、ＲＴＬファイル３２２の６行目乃至８行目には、最前段の順序回路ＦＦＡが、クロックＣＬＫの立ち上がりタイミングで、入力信号ＤＡＴＡをラッチすることが記述されている。また、ＲＴＬファイル３２２の６行目乃至８行目には、順序回路ＦＦＢが、クロックＣＬＫの立ち上がりタイミングで、前段の順序回路ＦＦＢの出力をラッチすることが記述されている。また、ＲＴＬファイル３２２の６行目乃至８行目には、最前段の順序回路ＦＦＢが、クロックＣＬＫの立ち上がりタイミングで、最後段の順序回路ＦＦＡの出力をラッチすることが記述されている。また、ＲＴＬファイル３２２の９行目及び１０行目は、順序回路ＦＦの動作の記述の終了と、モジュール文の終了の記述とが記述されている。
【００６２】
次に、半導体設計支援装置３００がＲＴＬファイル３２２からシフトレジスタ２０に関する記述を抽出する例について説明する。半導体設計支援装置３００は、上述したように、ｍｏｄｕｌｅ文の中でレジスタ宣言（符号３２２１及び３２２２）されている変数（変数ＦＦＡ及びＦＦＢ）であって、ａｌｗａｙｓ文（符号３２２３）によってクロックの変化によって動作する（符号３２２４）ように記述されており、“＜＝”（符号３２２５及び３２２６）によって値が代入されるように記述されている変数をシフトレジスタ２０に関する記述としてＲＴＬファイル３２２から抽出する。
【００６３】
図７は、本発明の一実施形態に係る半導体集積回路に対するタイミング解析結果ファイルを説明するための図である。同図に示すように、タイミング解析結果ファイル３２５には、タイミング解析のために予め定められた２つの解析ポイント（本例では、順序回路ＦＦＡ１及びＦＦＡ２）を信号が伝搬する際の該解析ポイントの各種の特性が記述されている。以下、タイミング解析結果ファイル３２５の記述内容について説明する。
【００６４】
タイミング解析結果ファイル３２５の１行目及び２行目には、タイミング解析のために定められた解析ポイントである順序回路ＦＦＡ１及びＦＦＡ２の動作の特性が記述されている。具体的には、タイミング解析結果ファイル３２５の１行目及び２行目には、順序回路ＦＦＡ１及びＦＦＡ２がクロックＣＬＫの立ち上がりタイミングで動作することが記述されている。
【００６５】
また、タイミング解析結果ファイル３２５の３行目には、所定のクロックＣＬＫのジッタ特性が記述されている（図中のｃｌｏｃｋ  ｕｎｃｅｒｔａｉｎｔｙ）。また、タイミング解析結果ファイル３２５の４行目には、シフトレジスタ２０における順序回路ＦＦＡ２のホールドタイムの値が記述されている（図中のｌｉｂｒａｒｙ  ｈｏｌｄ  ｔｉｍｅ）。また、タイミング解析結果ファイル３２５の５行目には、順序回路ＦＦＡ２の遅延時間が記述されている（図中のｄａｔａ  ｒｅｑｕｉｒｅｄ  ｔｉｍｅ）。
【００６６】
次に、半導体設計支援装置３００が、タイミング解析結果ファイル３２５からシフトレジスタ２０における順序回路ＦＦのホールドタイムの値とシフトレジスタ２０に入力されるクロックＣＬＫに関する記述とを抽出する例について説明する。上述したように、半導体設計支援装置３００は、タイミング解析結果ファイル３２５について、ＲＴＬファイル３２２から抽出したシフトレジスタ２０の記述に対応する記述３２５１及び３２５３を検索し、該検索の結果からシフトレジスタ２０における順序回路ＦＦのホールドタイムのマージン値−０．１００ｎｓ（符号３２５５）と、該シフトレジスタ２０に入力されるクロックに関する記述（符号３２５２及び３２５４）とを抽出する。そして、半導体設計支援装置３００は、抽出した順序回路ＦＦのホールドタイムのマージン値の正負を反転し、順序回路ＦＦのホールドタイムの値とする。
【００６７】
図８は、本発明の一実施形態に係る半導体集積回路に対する静的タイミング解析に用いられるタイミング制約ファイルを説明するための図である。同図に示すように、タイミング制約ファイル３２４は、シフトレジスタ２０に入力されるクロックＣＬＫのホールドタイムの値を示す。なお、半導体設計支援装置３００は、タイミング解析結果ファイル３２５から抽出したクロックＣＬＫの記述に対応する記述（図中の記述３２４２）を検索し、該検索の結果からクロックＣＬＫのホールドタイムの値０．０８ｎｓ（図中の記述３２４１）を抽出する。続いて、半導体設計支援装置３００は、タイミング解析結果ファイル３２５から抽出した順序回路ＦＦのホールドタイムの値０．１００ｎｓに、タイミング制約ファイル３２４から抽出したクロックＣＬＫのホールドタイムの値０．０８０ｎｓを加算した結果である０．１８０ｎｓをシフトレジスタ２０のホールドタイムの値として決定する。さらに、半導体設計支援装置３００は、該決定したシフトレジスタ２０のホールドタイムの値０．１８０ｎｓに従って、順序回路ＦＦの配置間隔を順序回路ＦＦのｍ個（本例では４個）分以上の距離に決定する。
【００６８】
図９は、本発明の他の実施形態に係る半導体集積回路の設計支援方法により得られる半導体集積回路のシフトレジスタを示す平面模式図である。本実施形態に係るシフトレジスタ２０’は、上述した半導体設計支援装置３００による設計支援方法を用いることによって設計されるが、各順序回路ＦＦが千鳥状に（ジクザク状に）配置される点で、シフトレジスタ２０における順序回路ＦＦの配置とは異なっている。
【００６９】
半導体設計支援装置３００は、まず、順序回路ＦＦＡ１をレイアウト領域Ｌの所定の位置に配置する。次に、半導体設計支援装置３００は、順序回路ＦＦＡ１の配置位置から順序回路ＦＦのｎ個（本例では３個）分の距離だけ第２の方向の逆の方向に進んだ位置に順序回路ＦＦＡ２を配置する。続いて、半導体設計支援装置３００は、順序回路ＦＦＡ２の配置位置から順序回路ＦＦの１個分の距離だけ第１の方向に進み、順序回路ＦＦのｎ個分の距離だけ第２の方向に進んだ位置に順序回路ＦＦ３を配置する。このように、半導体設計支援装置３００は、前段の順序回路ＦＦから順序回路ＦＦのｎ個分の距離だけ第２の方向の逆の方向に進んだ位置に偶数番目の順序回路ＦＦを配置する。これに対して、半導体設計支援装置３００は、前段の順序回路ＦＦから順序回路ＦＦの１個分の距離だけ第１の方向に進み、順序回路ＦＦのｎ個分だけ第２の方向に進んだ位置に奇数番目の順序回路ＦＦを配置する。そして、半導体設計支援装置３００は、図５に示したようなステップＳ５０６乃至Ｓ５０８の処理に従って、半導体集積回路１のレイアウト設計を行い、該設計を終了する。
【００７０】
このような設計支援方法により設計されたシフトレジスタ２０’においては、図９に示すように、偶数番目の順序回路ＦＦＡは、前段の順序回路ＦＦＡから順序回路ＦＦＡのｎ個分の距離だけ第２の方向の逆の方向に進んだ位置に配置され、奇数番目の順序回路ＦＦＡは、前段の順序回路ＦＦＡから順序回路ＦＦＡの１個分の距離だけ第１の方向に進み、順序回路ＦＦＡのｎ個分だけ第２の方向に進んだ位置に配置される。順序回路ＦＦＢ１乃至ＦＦＢ１０は、それぞれ順序回路ＦＦＡ１乃至ＦＦＡ１０に続いて、順序回路ＦＦ１乃至ＦＦＡ１０と同様に配置される。そして、順序回路ＦＦＣ１は、順序回路ＦＦＡ１から順序回路ＦＦの１個分の距離だけ第２の方向とは逆の方向に進んだ位置に配置される。順序回路ＦＦＣ１より後段の順序回路ＦＦは、順序回路ＦＦＣ１を基点として順序回路ＦＦＡ２乃至ＦＦＡ１０と同様に配置される。
【００７１】
以上のように、半導体設計支援装置３００は、順序回路ＦＦ間を接続する信号線の長さｄが、順序回路ＦＦの信号のラッチに前段の順序回路ＦＦの出力の変化の影響が及ばない程度に十分に長くなるように、各順序回路ＦＦを配置する。これにより、シフトレジスタ２０’は、レイアウト設計の工程後のタイミング解析においてホールドエラーが検出されない構成となる。また、半導体設計支援装置３００は、各順序回路ＦＦを近接して配置するため、各順序回路に入力されるクロックのクロックスキューを抑制することができる。さらに、半導体設計支援装置３００は、奇数番目の順序回路ＦＦから偶数番目の順序回路ＦＦに至る信号線の長さと、偶数番目の順序回路ＦＦから奇数番目の順序回路ＦＦに至る信号線の長さとの差異が小さくなるように各順序回路ＦＦを配置するため、各順序回路ＦＦが出力する出力信号ＯＵＴの位相差を抑制することができる。
【００７２】
上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。
【００７３】
例えば、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで一つのものとしてもよく、また、他のステップ、動作又は機能を追加してもよい。
【００７４】
また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ（技術的事項）を適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本発明の要旨に含まれる。
【産業上の利用可能性】
【００７５】
本発明は、半導体集積回路の分野に広く利用することができる。
【符号の説明】
【００７６】
１…半導体集積回路
１０…論理回路
１１…ハードマクロ
２０…シフトレジスタ
３００…半導体設計支援装置
３１０…プロセッサモジュール
３２０…メモリモジュール
３２１…設計支援プログラム
３２２…ＲＴＬファイル
３２２１，３２２２，３２２３，３２２４，３２２５，３２２６…記述
３２３…ネットリストファイル
３２４…タイミング制約ファイル
３２４１，３２４２…記述
３２５…タイミング解析結果ファイル
３２５１，３２５２，３２５３，３２５４，３２５５…記述
３２６…設計結果ファイル
３３０…チップセット
３４０…ストレージデバイス
３５０…入出力装置
【図１】
0006559995.tif 000002
【図２】
0006559995.tif 000003
【図３】
0006559995.tif 000004
【図４】
0006559995.tif 000005
【図５】
0006559995.tif 000006
【図６】
0006559995.tif 000007
【図７】
0006559995.tif 000008
【図８】
0006559995.tif 000009
【図９】
0006559995.tif 000010