(57)【要約】【課題】クロックゲーティング手法を用いた半導体集積回路の設計効率を向上させること。【解決手段】本発明に係る半導体集積回路の設計方法は、（Ａ）半導体集積回路のＲＴＬ記述を示すＲＴＬデータ２１を読み込むステップと、（Ｂ）クロックゲーティングを行うゲーティングセルＧＣを設けながら、上記ＲＴＬ記述の論理合成を行うステップと、を有する。そのゲーティングセルＧＣは、クロックゲーティングの対象を活性化させるイネーブル信号をクロック信号に同期してラッチするラッチ回路を備える。上記（Ｂ）ステップにおいて、ゲーティングセルＧＣは、タイミング例外パスから隔離されて設けられる。【選択図】図４
2008065457.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを用いた半導体集積回路の設計方法であって、
（Ａ）前記半導体集積回路のＲＴＬ記述を示すＲＴＬデータを読み込むステップと、
（Ｂ）クロックゲーティングを行うゲーティングセルを設けながら、前記ＲＴＬ記述の論理合成を行うステップと
を有し、
前記ゲーティングセルは、前記クロックゲーティングの対象を活性化させるイネーブル信号をクロック信号に同期してラッチするラッチ回路を備え、
前記（Ｂ）ステップにおいて、前記ゲーティングセルは、タイミング例外パスから隔離されて設けられる
半導体集積回路の設計方法。
【請求項２】
請求項１に記載の半導体集積回路の設計方法であって、
前記（Ｂ）ステップは、
（Ｂ１）前記ＲＴＬ記述を解析し、前記ＲＴＬ記述と論理的に等価な論理回路を生成するステップと、ここで、前記論理回路は、フリップフロップとセレクタとを含み、
（Ｂ２）タイミング例外を指定するタイミング例外指定データを読み込むステップと、
（Ｂ３）前記セレクタに入力されるセレクト信号を解析し、前記セレクト信号が前記タイミング例外に関連しない場合、前記セレクタを対象セレクタとして設定するステップと、
（Ｂ４）前記イネーブル信号が前記対象セレクタに入力される前記セレクト信号だけから生成されるように、前記ゲーティングセルを設けるステップと
を有する
半導体集積回路の設計方法。
【請求項３】
請求項２に記載の半導体集積回路の設計方法であって、
前記（Ｂ３）ステップは、前記フリップフロップのファンインセルを処理対象としてトレース処理を実行するステップを有し、
前記トレース処理は、
（ａ）前記処理対象がセレクタではない場合、前記トレース処理を終了させるステップと、
（ｂ）前記処理対象がセレクタである場合、前記処理対象のセレクタに入力されるセレクト信号をトレースすることによって前記セレクト信号の供給元を取得するステップと、
（ｃ）前記供給元が前記タイミング例外として指定されている場合、前記トレース処理を終了させるステップと、
（ｄ）前記供給元が前記タイミング例外として指定されていない場合、前記処理対象のセレクタを前記対象セレクタとして設定するステップと
を含む
半導体集積回路の設計方法。
【請求項４】
請求項３に記載の半導体集積回路の設計方法であって、
前記トレース処理は、更に、（ｅ）前記処理対象のセレクタの入力端子のうち前記セレクト信号以外の信号が入力される入力端子に接続されたファンインセルに対して、前記トレース処理を再帰的に実行するステップを含む
半導体集積回路の設計方法。
【請求項５】
請求項１乃至４のいずれかに記載の半導体集積回路の設計方法を前記コンピュータに実行させるための設計プログラム。
【請求項６】
半導体集積回路のＲＴＬ記述を示すＲＴＬデータが格納される記憶装置と、
前記記憶装置から前記ＲＴＬデータを読み出し、前記ＲＴＬ記述の論理合成を行うデータ処理装置と
を備え、
前記論理合成において、前記データ処理装置は、クロックゲーティングを行うゲーティングセルを設け、
前記ゲーティングセルは、イネーブル信号とクロック信号が入力されるラッチ回路を備え、タイミング例外パスから隔離されて設けられる
半導体集積回路の設計システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計技術に関する。特に、本発明は、クロックゲーティング手法を用いた半導体集積回路の設計技術に関する。
【背景技術】
【０００２】
ＬＳＩが所望のクロック周波数で正常に動作するためには、「タイミング制約（timing constraint）」を満たす必要がある。タイミング制約として、「ホールド制約」と「セットアップ制約」が挙げられる。例えば、第１フリップフロップから出力された信号が、第２フリップフロップに入力される場合を考える。このとき、その信号が第２フリップフロップに到達するタイミングは、現クロックの入力後であり、且つ、次クロックの入力前である必要がある。前者に関する制約がホールド制約であり、後者に関する制約がセットアップ制約である。
【０００３】
ＬＳＩ設計においては、上記タイミング制約が満たされるようにタイミングの設計・最適化を行う必要がある。そのために、タイミング解析は重要である。タイミング解析においては、回路遅延が見積もられ、各パスにおいて各信号がタイミング制約を満たすかどうかの検証が行われる。但し、設計対象の回路中のパスのなかには、通常のタイミング制約を満たさなくてもよいパスも存在する。そのようなパスは、「タイミング例外パス（timing exception path）」と呼ばれる。タイミング例外パスとして、「フォールスパス（false path）」と「マルチサイクルパス（multi-cycle path）」が挙げられる。
【０００４】
フォールスパスとは、論理的に信号が伝播しないパスである。例えば、ＬＳＩの実動作において、あるＡＮＤゲートの１つの入力が論理値“０”に固定される場合、他方の入力が変化しても、その変化は後段には伝わらない。従って、そのＡＮＤゲートの出力パスはフォールスパスである。このようなフォールスパスは、タイミング解析において無視することができる。
【０００５】
マルチサイクルパスとは、信号が２クロックサイクル以上かかって伝搬してもよいパスである（特許文献１参照）。例えば、あるパスを信号が３クロックサイクルで伝搬してもＬＳＩが正常に動作する場合、そのパスは「３サイクルのマルチサイクルパス」と呼ばれる。通常は、組み合わせ回路部分のパスにおける遅延を１クロックサイクル以内に収める必要がある。しかし、ｎサイクル（ｎは２以上の整数）のマルチサイクルパスに関しては、タイミング制約をｎクロックサイクルまで緩和することが可能である。
【０００６】
近年、ＬＳＩの高速化・微細化に伴い、タイミング制約はより厳しくなってきている。このことは、タイミング設計に要する時間、すなわち、ＬＳＩ設計に要する時間の増大を招く。タイミング設計においてタイミング例外に関する情報を活用できれば、タイミング制約が緩和され、無駄なタイミング最適化処理を省くことができる。そのために、通常パスに関する通常のタイミング制約の他に、タイミング例外パス用の制約（以下、「タイミング例外制約」と参照される）が追加的に与えられるとよい。タイミング例外制約を与えることによって、タイミング制約が全体として緩和される。タイミング例外を考慮することは、ＬＳＩ設計の効率化の観点から重要である。
【０００７】
また、ＬＳＩの分野において、消費電力の削減に貢献する「クロックゲーティング（Clock Gating）」と呼ばれる技術が知られている（例えば、特許文献２、特許文献３参照）。クロックゲーティングによれば、クロックに基づいて動作する回路が動作する必要がない期間、その回路に対するクロックの供給が遮断される。例えば、あるレジスタの値を書き換える必要がない期間、そのレジスタへのクロック供給が遮断される。これにより、その期間中信号の遷移が停止し、消費電力が削減される。
【０００８】
クロックゲーティングを行うためには、「ゲーティングセル（Gating Cell）」が用いられる。図１は、周知のゲーティングセルＧＣの構成を示している（例えば、特許文献３の図６参照）。図１に示されるゲーティングセルＧＣは、ＡＮＤゲートとラッチ回路を備えている。ラッチ回路は、クロック信号ｃｌｋに同期してイネーブル信号ｅｎのラッチ動作を行う。ＡＮＤゲートには、ラッチ回路の出力とクロック信号ｃｌｋが入力される。イネーブル信号ｅｎは、クロックゲーティングの対象である対象回路（フリップフロップ等）を活性化するための信号であり、所定のイネーブル論理によって生成される。
【０００９】
このようなゲーティングセルＧＣが、クロックライン上に設けられる。つまり、ＡＮＤゲートの出力が対象回路に接続され、その対象回路へのクロック信号ｃｌｋの供給が、ゲーティングセルＧＣによって制御される。イネーブル信号ｅｎが活性化された場合、ゲーティングセルＧＣは、クロック信号ｃｌｋを対象回路に供給する。一方、イネーブル信号ｅｎが非活性化された場合、ゲーティングセルＧＣは、対象回路へのクロック信号ｃｌｋの供給を遮断する。これにより、消費電力が削減される。
【００１０】
尚、クロックゲーティングは、イネーブル信号ｅｎとクロック信号ｃｌｋとのＡＮＤ論理だけも実現可能である。図１に示されるゲーティングセルＧＣにラッチ回路が付加されている理由は、次の通りである。イネーブル信号が不安定であると、必要なクロックパルスが１つであるべき場合に複数のクロックパルス（グリッジ）が生成される等の問題が発生する。そのような問題を回避するために、ラッチ回路が挿入されている。ラッチ回路は、イネーブル信号ｅｎの状態をキャプチャし、クロックパルスが完全に生成されるまでその状態を保持する。その結果、ＡＮＤゲートの出力が安定化する。このようなゲーティングセルＧＣは、「ラッチベースゲーティングセル」と呼ばれている。
【００１１】
【特許文献１】特開２００４−１７１１４９号公報
【特許文献２】特開平１１−１４９４９６号公報
【特許文献３】特開２００２−１９０５２８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
ゲーティングセルは、論理合成（logic synthesis）時に、論理合成ツールによって自動的に挿入される。その論理合成時には、上述のタイミング解析が行われる。ここで、図１で示されたゲーティングセルＧＣ（ラッチベースゲーティングセル）が用いられる場合を考える。この場合、ラッチ回路はクロック信号ｃｌｋに基づいて動作する順序素子であるため、ゲーティングセルＧＣに関してもタイミング解析が行われる。イネーブル信号ｅｎがタイミング例外パスの信号である場合は、そのゲーティングセルＧＣに対して「タイミング例外制約」を追加的に与えることが、タイミング制約の緩和の観点からは好ましい。
【００１３】
しかしながら、本来レジスタやフリップフロップにだけ与えればよかったタイミング例外制約を、ゲーティングセルＧＣにも与えるという作業は、煩雑である。それは、ゲーティングセルＧＣが、タイミング解析が行われる論理合成の最中に、論理合成ツールによって自動的に生成されるからである。論理合成の前に、ゲーティングセルＧＣにタイミング例外制約を与えるためには、そのゲーティングセルＧＣにどのような名前（インスタンス名）が付与されるか予測する必要がある。しかし、その予測は明らかに困難である。
【００１４】
このように、ゲーティングセルＧＣにタイミング例外制約を与えるという作業は、設計者にとって、困難であり煩雑である。このことは、タイミング制約の緩和による効果を相殺し、結局は設計効率の低下を招く。
【課題を解決するための手段】
【００１５】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を用いて、［課題を解決するための手段］を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１６】
本発明の第１の観点において、コンピュータを用いた半導体集積回路の設計方法が提供される。その設計方法は、（Ａ）半導体集積回路のＲＴＬ記述を示すＲＴＬデータ（２１）を読み込むステップと、（Ｂ）クロックゲーティングを行うゲーティングセル（ＧＣ）を設けながら、上記ＲＴＬ記述の論理合成を行うステップと、を有する。そのゲーティングセル（ＧＣ）は、クロックゲーティングの対象を活性化させるイネーブル信号をクロック信号に同期してラッチするラッチ回路を備える。上記（Ｂ）ステップにおいて、ゲーティングセル（ＧＣ）は、タイミング例外パスから隔離される。
【００１７】
このように、本発明によれば、論理合成において、ゲーティングセル（ＧＣ）は、タイミング例外パスにつながらないように設けられる。従って、ゲーティングセル（ＧＣ）にタイミング例外制約を与える必要はない。タイミング例外制約は、レジスタやフリップフロップにだけ与えればよい。本発明によれば、ゲーティングセル（ＧＣ）にタイミング例外制約を与えるという煩雑な作業が省略される。その結果、設計効率が向上し、半導体集積回路の設計に要する時間が短縮される。
【００１８】
本発明の第２の観点において、上述の設計方法をコンピュータに実行させる設計プログラムが提供される。
【００１９】
本発明の第３の観点において、半導体集積回路の設計システムが提供される。その設計システムは、記憶装置（２）とデータ処理装置（３，４）とを備える。記憶装置（２）には、半導体集積回路のＲＴＬ記述を示すＲＴＬデータ（２１）が格納される。データ処理装置（３，４）は、記憶装置（２）からＲＴＬデータ（２１）を読み出し、ＲＴＬ記述の論理合成を行う。その論理合成において、データ処理装置（３，４）は、クロックゲーティングを行うゲーティングセル（ＧＣ）を設ける。ゲーティングセル（ＧＣ）は、イネーブル信号とクロック信号が入力されるラッチ回路を備えており、タイミング例外パスから隔離されて設けられる。
【発明の効果】
【００２０】
本発明によれば、クロックゲーティング手法を用いた設計において、ゲーティングセルにタイミング例外制約を与えるという煩雑な作業が省略される。その結果、設計効率が向上し、半導体集積回路の設計に要する時間が短縮される。
【発明を実施するための最良の形態】
【００２１】
添付図面を参照して、本発明の実施の形態に係る半導体集積回路の設計方法及び設計システムを説明する。
【００２２】
１．構成
図２は、本発明の実施の形態に係るＬＳＩ設計システム１の構成を示すブロック図である。ＬＳＩ設計システム１は、半導体集積回路の設計を行うためのコンピュータシステムであり、記憶装置２、ＣＰＵ３、論理合成ツール４、入力装置５、及び表示装置６を備えている。記憶装置２としては、ＲＡＭ（Random Access Memory）やハードディスクが例示される。ＣＰＵ３は、各装置にアクセス可能である。論理合成ツール４は、ＣＰＵ３によって実行されるソフトウェア・プロダクトであり、ＣＰＵ３は、論理合成ツール４を実行することによって後述の論理合成処理を行う。入力装置５としては、キーボードやマウスが例示される。設計者は、表示装置６に表示される情報を参照しながら、入力装置５を用いることによって各種コマンドやデータを入力することができる。
【００２３】
記憶装置２には、ＲＴＬデータ２１、タイミング例外指定データ２２、制約データ２３、ネットリスト４０が格納される。
【００２４】
ＲＴＬデータ２１は、設計対象のＬＳＩのＲＴＬ（Register Transfer Level）記述であり、そのＬＳＩの論理設計を示す。そのＲＴＬデータ２１は、ＶｅｒｉｌｏｇやＶＨＤＬといったハードウェア記述言語（HDL: Hardware Description Language）で記述される。
【００２５】
タイミング例外指定データ２２は、設計対象のＬＳＩ中の「タイミング例外」を指定するデータ（設定コマンド）である。タイミング例外として、フォールスパスやマルチサイクルパスといったタイミング例外パスが指定されてもよい。あるいは、タイミング例外として、タイミング例外パス上の信号（以下、「タイミング例外信号」と参照される）が指定されてもよい。あるいは、タイミング例外として、タイミング例外信号の供給元（外部ポートなど）が指定されてもよい。つまり、タイミング例外は、タイミング例外パス、タイミング例外信号、及びタイミング例外信号の供給元のうち少なくとも１つを含んでいる。タイミング例外指定データ２２は、例えば、Ｓｙｎｏｐｓｙｓ社（登録商標）提唱のＳＤＣフォーマットで記述される。
【００２６】
制約データ２３は、論理合成処理において考慮される各種制約を示すデータである。具体的には、制約データ２３は、タイミング制約、上記タイミング例外に関するタイミング例外制約、面積制約、デザインルール制約などを含む。
【００２７】
２．論理合成処理
図２に示されたＬＳＩ設計システム１は、論理合成処理を行う。論理合成処理の入力は、ＲＴＬデータ２１であり、その出力はネットリスト４０である。つまり、論理合成処理においては、ＲＴＬ記述が解析され、そのＲＴＬ記述が示す論理設計に応じた回路が構築され、その回路構成が最適化され、結果としてＲＴＬ記述に応じたネットリスト４０が作成される。また、本実施の形態によれば、論理合成処理の最中に、クロックゲーティングを実現するためのゲーティングセルＧＣ（図１参照）の挿入も自動的に行われる。
【００２８】
図３は、論理合成処理におけるＬＳＩ設計システム１の構成を概念的に示しており、また、その論理合成処理の流れを要約的に示している。図３において、データ処理装置１０は、ＣＰＵ３と論理合成ツール４との協働により実現される。このデータ処理装置１０は、記憶装置２とデータのやりとりを行うことによって論理合成処理を実行する。より詳細には、データ処理装置１０は、ＲＴＬ解析部１１、ＣＧ対象マーキング部１２、クロックゲーティング部１３、及び論理最適化部１４を有している。
【００２９】
図４は、本実施の形態に係る論理合成処理を示すフローチャートである。図３及び図４を参照して、本実施の形態に係る論理合成処理の概略を説明する。
【００３０】
ステップＳ１：
ＲＴＬ解析部１１は、記憶装置２からＲＴＬデータ２１を読み出し、ＲＴＬデータ２１が示すＲＴＬ記述の解析を行う。より詳細には、ＲＴＬ解析部１１は、ＲＴＬ記述を、そのＲＴＬ記述と論理的に等価な論理回路モデルに変換する。この変換方法に関しては、例えば、“ＢｏｏｌｅＤｏｚｅｒ：Ｌｏｇｉｃ  ｓｙｎｔｈｅｓｉｓ  ｆｏｒ  ＡＳＩＣｓ，  Ａ．  Ｊ．  Ｓｕｌｌｉａｖａｎら著”を参考されたい。変換により生成された論理回路モデルは、一般的な論理ゲート（ＡＮＤゲート，ＯＲゲート，インバータ等）、イネーブル論理、フリップフロップ、ポート、ネットなどによって構成される。内部データベース３１は、その論理回路モデルを示すデータであり、回路の論理的な接続を示している。生成された内部データベース３１は、記憶装置２に格納される。
【００３１】
ステップＳ２：
次に、ＣＧ対象マーキング部１２は、記憶装置２から内部データベース３１及びタイミング例外指定データ２２を読み込む。ＣＧ対象マーキング部１２は、内部データベース３１が示す論理回路モデルを参照し、フリップフロップに関するイネーブル信号ｅｎを生成するイネーブル論理（ライトイネーブル論理）の解析を行う。ここで、ＣＧ対象マーキング部１２は、タイミング例外指定データ２２が示すタイミング例外を参照し、イネーブル論理のうちタイミング例外と関連しない部分を抽出する。そして、ＣＧ対象マーキング部１２は、抽出された部分を、次処理（ステップＳ３）の対象としてマーキングする。
【００３２】
より詳細には、論理回路モデル中のイネーブル論理は、セレクタ群を含んでいる。各セレクタにはセレクト信号が入力され、上記イネーブル信号ｅｎは、セレクタ群に入力されるセレクト信号群に基づいて生成される。よって、ＣＧ対象マーキング部１２は、セレクタ群に入力されるセレクト信号群を解析する。あるセレクト信号が、指定されたタイミング例外に関連している場合、ＣＧ対象マーキング部１２は、そのセレクト信号が入力されるセレクタを、次処理の対象から外す。一方、あるセレクト信号が、指定されたタイミング例外に関連していない場合、ＣＧ対象マーキング部１２は、そのセレクト信号が入力されるセレクタを、次処理の対象としてマーキングする。そのマーキングされたセレクタは、「対象セレクタ」と参照される。
【００３３】
言い換えれば、あるセレクト信号がタイミング例外信号である場合、ＣＧ対象マーキング部１２は、そのタイミング例外信号が入力されるセレクタを、対象セレクタとして設定しない。一方、あるセレクト信号がタイミング例外信号ではない場合、ＣＧ対象マーキング部１２は、そのセレクト信号が入力されるセレクタを、対象セレクタとして設定する。このように、ＣＧ対象マーキング部１２は、タイミング例外指定データ２２を参照し、対象セレクタのマーキング処理を行う。そのマーキング処理が反映された内部データベースが、マーキング済内部データベース３２として記憶装置２に格納される。
【００３４】
ステップＳ３：
次に、クロックゲーティング部１３は、記憶装置２からマーキング済内部データベース３２を読み込む。クロックゲーティング部１３は、クロックゲーティングのためのゲーティングセルＧＣ（図１参照）を、マーキング済内部データベース３２が示す論理回路モデルに挿入する。そのゲーティングセルＧＣは、ライトイネーブル論理とフリップフロップとの間に設けられる。ここで、本実施の形態によれば、ゲーティングセルＧＣは、タイミング例外パスから隔離されて設けられる。
【００３５】
具体的には、ゲーティングセルＧＣの挿入において、クロックゲーティング部１３は、マーキングされた上述の対象セレクタを考慮する。その対象セレクタは、タイミング例外と関連していない。よって、クロックゲーティング部１３は、上記イネーブル信号ｅｎが対象セレクタに入力されるセレクト信号だけから生成されるように、ゲーティングセルＧＣを設ける。結果として、ゲーティングセルＧＣは、タイミング例外パスから隔離されて設けられることになる。ゲーティングセルＧＣの挿入処理が完了した内部データベースが、ＣＧ済内部データベース３３として記憶装置２に格納される。
【００３６】
ステップＳ４：
次に、論理最適化部１４は、記憶装置２からＣＧ済内部データベース３３及び制約データ２３を読み込む。論理最適化部１４は、ＣＧ済内部データベース３３が示す論理回路モデルを、制約データ２３が示す各種制約（タイミング制約、タイミング例外制約、面積制約、デザインルール制約など）の下で最適化する。結果として、ＲＴＬ記述に応じた回路接続を示すネットリスト４０が生成される。このネットリスト４０が示す回路構成は、タイミング例外信号を除いてクロックゲーティングされていることが保障されている。
【００３７】
以上に説明されたように、本実施の形態によれば、論理合成処理において、ゲーティングセルＧＣは、タイミング例外パスにつながらないように設けられる。よって、ゲーティングセルＧＣにタイミング例外制約を予め与える必要はない。タイミング例外制約は、通常通りレジスタやフリップフロップにだけ与えればよい。このように、ゲーティングセルＧＣにタイミング例外制約を与えるという煩雑な作業が省略される。その結果、設計効率が向上し、ＬＳＩ設計に要する時間が短縮される。
【００３８】
３．論理合成処理の一例
次に、具体的な例を１つ挙げて、本実施の形態に係る論理合成処理の流れを説明する。図５は、Ｖｅｒｉｌｏｇで記述されたＲＴＬデータ２１の一例を示している。また、図６は、ＳＤＣフォーマットで記述されたタイミング例外指定データ２２の一例を示している。図６において、外部ポート“ｍｕｌ”がタイミング例外として指定されており、その外部ポート“ｍｕｌ”からのパスが、３サイクルのマルチサイクルパスとして設定されている。以下、外部ポート“ｍｕｌ”から供給される信号は、タイミング例外信号ｍｕｌと参照される。
【００３９】
３−１．ステップＳ１
ＲＴＬ解析部１１は、図５で示されたＲＴＬデータ２１を読み込み、図７で示されるような内部データベース２３を生成する。生成された内部データベース２３は、ＲＴＬ記述と論理的に等価な論理回路モデルを示している。
【００４０】
図７に示されるように、論理回路モデルは、フリップフロップＦＦ、セレクタｓｅｌ１、ｓｅｌ２、ｓｅｌ３、ｓｅｌ４、ＡＮＤゲートＡ１、Ａ２、入力ポートｃｌｋ、ｄａｔａ、ｅｎ１、ｅｎ２、ｅｎ３、ａ、ｍｕｌ、ｓ１、ｓ２、及び出力ポートｏｕｔを有している。フリップフロップＦＦの出力は、出力ポートｏｕｔに接続されている。フリップフロップＦＦには、入力ポートｃｌｋからクロック信号ｃｌｋが入力される。また、フリップフロップＦＦには、イネーブル論理の出力が入力される。
【００４１】
イネーブル論理は、セレクタｓｅｌ１、ｓｅｌ２、ｓｅｌ３、ｓｅｌ４やＡＮＤゲートＡ１、Ａ２から構成されている。セレクタｓｅｌ１、ｓｅｌ３、ｓｅｌ４の入力は、フリップフロップＦＦの出力に接続されている。また、セレクタｓｅｌ１、ｓｅｌ２、ｓｅｌ３には、入力ポートｅｎ１、ｅｎ２、ｅｎ３のそれぞれからセレクト信号ｅｎ１、ｅｎ２、ｅｎ３が入力される。例えば、セレクタｓｅｌ１は、図５中の記述“ｉｆ（ｅｎ１）”から推定されるセレクタである。セレクト信号ｅｎ１が“１”の場合はフリップフロップＦＦの出力がフィードバックされ、“０”の場合は“ｅｌｓｅ”以降の論理が参照される。更に、セレクタｓｅｌ４には、ＡＮＤゲートＡ２の出力がセレクト信号ｅｎ４として入力される。セレクト信号ｅｎ４は、信号ａとタイミング例外信号ｍｕｌとの論理積である。
【００４２】
図７に示される論理回路モデルに、通常の手法でゲーティングセルＧＣが挿入されると、図８に示されるような構成が得られる。図８において、ゲーティングセルＧＣは、イネーブル論理の出力とフリップフロップＦＦとの間に設けられており、そのゲーティングセルＧＣにはイネーブル信号とクロック信号ｃｌｋが入力されている。通常の手法では、イネーブル信号が全てのセレクト信号ｅｎ１、ｅｎ２、ｅｎ３、ｅｎ４に依存していることがわかる。
【００４３】
ここで問題となるのは、セレクト信号ｅｎ４が、タイミング例外信号ｍｕｌに依存していることである。ゲーティングセルＧＣが図１に示されるようにラッチ回路を有している場合、そのゲーティングセルＧＣも、タイミング例外制約の終点となるべきポイントとなる。従って、タイミング例外信号ｍｕｌが３サイクルのマルチサイクルパスに関連付けられているのであれば、ゲーティングセルＧＣにも３サイクルのタイミング例外制約を与えなければならない。しかしながら、ゲーティングセルＧＣにタイミング例外制約を与えるためには、論理合成においてそのゲーティングセルＧＣにどのような実体名（インスタンス名）が付与されるか予測する必要がある。設計者にとって、その予測は困難である。つまり、ゲーティングセルＧＣにタイミング例外制約を与えるという作業は煩雑であり、設計効率の低下を招く。
【００４４】
本発明によれば、ゲーティングセルＧＣにタイミング例外制約を与える必要がないように論理合成が行われる。そのため、ゲーティングセルＧＣの挿入処理前に、以下に示される処理が実行される。
【００４５】
３−２．ステップＳ２
図９は、ＣＧ対象マーキング部１２が提供する処理のアルゴリズム（擬似コード）を概念的に示している。
【００４６】
（メイン処理）
まず、内部データベース３１が示す論理回路モデル中に存在する全てのフリップフロップが取得される。取得されたフリップフロップは、“ｆｆ”という変数に格納される。そして、各フリップフロップｆｆに関してループ処理が実行される（ステップＡ１）。ループ処理において、各フリップフロップｆｆの入力ピンに接続された「ファンインセル」が全て取得される。取得されたファンインセルは、“ｃｅｌｌ”という変数に格納される（ステップＡ２）。そして、各ファンインセルｃｅｌｌを引数として、“ｔｒａｃｅ”というサブルーチンが呼び出される（ステップＡ３）。そのサブルーチンｔｒａｃｅにおいては、ファンインセルｃｅｌｌを処理対象として「トレース処理」が実行される。
【００４７】
（トレース処理）
まず、処理対象であるファンインセルｃｅｌｌがセレクタであるかどうかの判定が行われる（ステップＡ４）。ファンインセルｃｅｌｌがセレクタではない場合、サブルーチンｔｒａｃｅは終了し、処理はサブルーチンｔｒａｃｅを呼び出した元処理に戻る（ステップＡ１０）。ファンインセルｃｅｌｌがセレクタの場合、その処理対象のセレクタに入力されるセレクト信号の解析が行われる。具体的には、セレクト信号をフリップフロップや外部ポートに達するまでトレースすることによって、そのセレクト信号のソース（供給元）が取得される（ステップＡ５）。取得されたセレクト信号の全てのソースは、リスト“ｅｎｄ＿ｐｏｉｎｔｓ＿ｌｉｓｔ”に格納される。
【００４８】
次に、リストｅｎｄ＿ｐｏｉｎｔｓ＿ｌｉｓｔに示される全てのフリップフロップや外部ポートが調べられる。タイミング例外として指定されているポイントが１つでも存在すれば、トレース処理は終了する（ステップＡ６）。つまり、セレクト信号のソースの１つでもタイミング例外として指定されている場合、当該セレクタｃｅｌｌは対象セレクタとして設定されず、サブルーチンｔｒａｃｅは終了する。
【００４９】
一方、セレクト信号のソースのいずれもタイミング例外として指定されていない場合、当該セレクタｃｅｌｌは、対象セレクタとしてマーキングされる（ステップＡ７）。更に、当該セレクタｃｅｌｌの入力端子のうちセレクト信号以外の信号が入力される入力端子に接続された「ファンインセル」が全て取得される。取得されたファンインセルは、“ｘ”という変数に格納される（ステップＡ８）。そして、各ファンインセルｘを引数として、サブルーチンｔｒａｃｅが再帰的に呼び出される。つまり、当該セレクタｃｅｌｌのファンインセルｘを処理対象として、上述のトレース処理が再帰的に実行される（ステップＡ９）。
【００５０】
以上に説明されたアルゴリズムに基づいて、ＣＧ対象マーキング部１２は、図７で示された内部データベース３１に対してマーキング処理を行う。
【００５１】
まず、図７中のフリップフロップＦＦが取得され、変数ｆｆに格納される（ステップＡ１）。次に、フリップフロップＦＦのファンインセルが全て取得される。ここでは、ファンインセルは、セレクタｓｅｌ１だけである。従って、変数ｃｅｌｌには、セレクタｓｅｌ１が格納される（ステップＡ２）。そして、セレクタｓｅｌ１に対してトレース処理が実行される（ステップＡ３）。
【００５２】
まず、変数ｃｅｌｌはセレクタｓｅｌ１であるので（ステップＡ４；Ｙｅｓ）、セレクタｓｅｌ１に入力されるセレクト信号ｅｎ１のトレースが行われる。その結果、セレクト信号ｅｎ１のソースとして外部ポートｅｎ１がリストｅｎｄ＿ｐｏｉｎｔｓ＿ｌｉｓｔに格納される（ステップＡ５）。ステップＡ６において、その外部ポートｅｎ１はタイミング例外（“ｍｕｌ”）として指定されていない。従って、当該セレクタｓｅｌ１は、対象セレクタとしてマーキングされる（ステップＡ７）。
【００５３】
次に、ステップＡ８において、セレクタｓｅｌ１のセレクト信号ｅｎ１以外のファンインセルが全て取得される。ここでは、フリップフロップＦＦとセレクタｓｅｌ２がファンインセルとして取得され、変数ｘに順番に格納される。そして、それらフリップフロップＦＦとセレクタｓｅｌ２のそれぞれに対して、トレース処理が再帰的に実行される（ステップＡ９）。
【００５４】
まず、フリップフロップＦＦを引数としてサブルーチンｔｒａｃｅが呼び出される。この場合、変数ｘはセレクタではないので（ステップＡ４；Ｎｏ）、処理は元処理に戻る（ステップＡ１０）。次に、セレクタｓｅｌ２を引数としてサブルーチンｔｒａｎｃｅが呼び出される。この場合、変数ｘはセレクタであるので（ステップＡ４；Ｙｅｓ）、セレクタｓｅｌ２に入力されるセレクト信号ｅｎ２のトレースが行われる。その結果、セレクト信号ｅｎ２のソースとして外部ポートｅｎ２がリストｅｎｄ＿ｐｏｉｎｔｓ＿ｌｉｓｔに格納される（ステップＡ５）。ステップＡ６において、その外部ポートｅｎ２はタイミング例外（“ｍｕｌ”）として指定されていない。従って、当該セレクタｓｅｌ２は、対象セレクタとしてマーキングされる（ステップＡ７）。
【００５５】
次に、ステップＡ８において、セレクタｓｅｌ２のセレクト信号ｅｎ２以外のファンインセルが全て取得される。ここでは、ＡＮＤゲートＡ１とセレクタｓｅｌ３がファンインセルとして取得され、変数ｘに順番に格納される。そして、それらＡＮＤゲートＡ１とセレクタｓｅｌ３のそれぞれに対して、トレース処理が再帰的に実行される（ステップＡ９）。
【００５６】
まず、ＡＮＤゲートＡ１を引数としてサブルーチンｔｒａｃｅが呼び出される。この場合、変数ｘはセレクタではないので（ステップＡ４；Ｎｏ）、処理は元処理に戻る（ステップＡ１０）。次に、セレクタｓｅｌ３を引数としてサブルーチンｔｒａｎｃｅが呼び出される。この場合、変数ｘはセレクタであるので（ステップＡ４；Ｙｅｓ）、セレクタｓｅｌ３に入力されるセレクト信号ｅｎ３のトレースが行われる。その結果、セレクト信号ｅｎ３のソースとして外部ポートｅｎ３がリストｅｎｄ＿ｐｏｉｎｔｓ＿ｌｉｓｔに格納される（ステップＡ５）。ステップＡ６において、その外部ポートｅｎ３はタイミング例外（“ｍｕｌ”）として指定されていない。従って、当該セレクタｓｅｌ３は、対象セレクタとしてマーキングされる（ステップＡ７）。
【００５７】
次に、ステップＡ８において、セレクタｓｅｌ３のセレクト信号ｅｎ３以外のファンインセルが全て取得される。ここでは、フリップフロップＦＦとセレクタｓｅｌ４がファンインセルとして取得され、変数ｘに順番に格納される。そして、それらフリップフロップＦＦとセレクタｓｅｌ４のそれぞれに対して、トレース処理が再帰的に実行される（ステップＡ９）。
【００５８】
まず、フリップフロップＦＦを引数としてサブルーチンｔｒａｃｅが呼び出される。この場合、変数ｘはセレクタではないので（ステップＡ４；Ｎｏ）、処理は元処理に戻る（ステップＡ１０）。次に、セレクタｓｅｌ４を引数としてサブルーチンｔｒａｎｃｅが呼び出される。この場合、変数ｘはセレクタであるので（ステップＡ４；Ｙｅｓ）、セレクタｓｅｌ４に入力されるセレクト信号ｅｎ４のトレースが行われる。その結果、セレクト信号ｅｎ２のソースとして、外部ポート“ｍｕｌ”及び“ａ”がリストｅｎｄ＿ｐｏｉｎｔｓ＿ｌｉｓｔに格納される（ステップＡ５）。この場合、リストｅｎｄ＿ｐｏｉｎｔｓ＿ｌｉｓｔには、タイミング例外として指定されたポート“ｍｕｌ”が含まれている。従って、当該セレクタｓｅｌ４は、対象セレクタとしてマーキングされず、サブルーチンｔｒａｃｅは終了する（ステップＡ６）。
【００５９】
このようなマーキング処理の結果得られるマーキング済内部データベース３２が、図１０に示されている。図１０において、マーキングされた対象セレクタ（ｓｅｌ１、ｓｅｌ２、ｓｅｌ３）には、符号“＊”が付されている。このように、フリップフロップＦＦから入力側方向にセレクタを辿っていき、セレクト信号にタイミング例外信号が含まれているかどうか判定することによって、対象セレクタが設定される。
【００６０】
３−３．ステップＳ３
クロックゲーティング部１３は、マーキング済内部データベース３２を参照し、ゲーティングセルＧＣを自動的に挿入する。その結果、図１１に示されるようなＣＧ済内部データベース３３が生成される。
【００６１】
図１１において、ゲーティングセルＧＣは、イネーブル論理の出力とフリップフロップＦＦとの間に設けられており、そのゲーティングセルＧＣにはイネーブル信号とクロック信号ｃｌｋが入力されている。イネーブル論理は、インバータＩ１、Ｉ２、ＡＮＤゲートＡ３、ＮＯＲゲートＯ１、入力ポートｅｎ１、ｅｎ２、ｅｎ３から構成されており、タイミング例外信号ｍｕｌには依存していない。すなわち、イネーブル信号は対象セレクタに入力されるセレクト信号ｅｎ１、ｅｎ２、ｅｎ３だけから生成され、イネーブル信号ｅｎ４には依存していない。このように、本実施の形態によれば、ゲーティングセルＧＣは、タイミング例外パスから隔離されて設けられる。
【００６２】
３−４．ステップＳ４
論理最適化部１４は、ＣＧ済内部データベース３３が示す論理回路モデルを、制約データ２３が示す各種制約（タイミング制約、タイミング例外制約、面積制約、デザインルール制約など）の下で最適化する。結果として、ＲＴＬ記述に応じた回路接続を示すネットリスト４０が生成される。図１２は、生成されるネットリスト４０の一例を概念的に示している。図１２において、各論理素子には、インスタンス名（Ｕ０、Ｕ１、Ｕ２、Ｕ３、Ｕ４、Ｕ５、Ｕ６）が付与されている。
【００６３】
４．効果
以上に説明されたように、本発明によれば、論理合成において、ゲーティングセルＧＣは、タイミング例外パスにつながらないように設けられる。よって、ゲーティングセルＧＣにタイミング例外制約を与える必要はない。タイミング例外制約は、レジスタやフリップフロップにだけ与えればよい。このように、ゲーティングセルＧＣにタイミング例外制約を与えるという煩雑な作業が省略される。その結果、設計効率が向上し、半導体集積回路の設計に要する時間が短縮される。
【図面の簡単な説明】
【００６４】
【図１】図１は、クロックゲーティングに用いられるゲーティングセルの構成を示すブロック図である。
【図２】図２は、本発明の実施の形態に係るＬＳＩ設計システムの構成を示すブロック図である。
【図３】図３は、本発明の実施の形態に係る論理合成処理の流れを概念的に示すブロック図である。
【図４】図４は、本発明の実施の形態に係る論理合成処理を示すフローチャートである。
【図５】図５は、ＲＴＬデータの一例を示す図である。
【図６】図６は、タイミング例外指定データの一例を示す図である。
【図７】図７は、ＲＴＬデータと論理的に等価な内部データベースの一例を示す概念図である。
【図８】図８は、図７に示された内部データベースに対して従来の手法によりゲーティングセルが挿入された場合の、ＣＧ済内部データベースを示す概念図である。
【図９】図９は、本発明の実施の形態に係るＣＧ対象マーキング部のアルゴリズム（擬似コード）を示す概念図である。
【図１０】図１０は、図７に示された内部データベースに対してマーキング処理が実行された場合の、マーキング済内部データベースを示す概念図である。
【図１１】図１１は、図１０に示されたマーキング済内部データベースに対してゲーティングセルが挿入された場合の、ＣＧ済内部データベースを示す概念図である。
【図１２】図１２は、図１１に示されたＣＧ済内部データベースを最適化することによって得られるネットリストを示す概念図である。
【符号の説明】
【００６５】
１    ＬＳＩ設計システム
２    記憶装置
３    ＣＰＵ
４    論理合成ツール
５    入力装置
６    表示装置
１０    データ処理装置
１１    ＲＴＬ解析部
１２    ＣＧ対象マーキング部
１３    クロックゲーティング部
１４    論理最適化部
２１    ＲＴＬデータ
２２    タイミング例外指定データ
２３    制約データ
３１    内部データベース
３２    マーキング済内部データベース
３３    ＣＧ済内部データベース
４０    ネットリスト
ＧＣ    ゲーティングセル
【図１】
2008065457.tif 000003
【図２】
2008065457.tif 000004
【図３】
2008065457.tif 000005
【図４】
2008065457.tif 000006
【図５】
2008065457.tif 000007
【図６】
2008065457.tif 000008
【図７】
2008065457.tif 000009
【図８】
2008065457.tif 000010
【図９】
2008065457.tif 000011
【図１０】
2008065457.tif 000012
【図１１】
2008065457.tif 000013
【図１２】
2008065457.tif 000014