(57)【特許請求の範囲】
【請求項１】
設定部、実行部、抽出部、グループ化部、及び第１乃至第３作成部を備える回路設計装置を用いて、クロック制御回路及び前記クロック制御回路を介してクロック信号が伝播するリーフを有する半導体集積回路を設計する方法であって、
前記設定部が、ネットリスト及びセルライブラリを用いて、クロック信号が生成されるクロック信号生成ポイント及び動作モードを設定する動作モード設定信号が与えられる動作モード設定ポイントを検出し、
前記設定部が、前記クロック信号生成ポイントにクロック信号及びその名称を設定し、
前記設定部が、前記動作モード設定ポイントに所望の動作モードに応じた動作モード設定信号を設定し、
前記実行部が、前記クロック信号及び前記動作モード設定信号の伝播を行い、
前記抽出部が、前記リーフに伝播している信号を抽出し、
前記リーフに伝播している信号の抽出後に、前記グループ化部が、すべての前記動作モードにおいて伝播している信号が同じリーフをグループ化し、
前記第１作成部が、各グループに伝播している信号の名称又は信号値を前記動作モード別に示すクロック選択論理表を作成し、
前記第２作成部が、前記クロック選択論理表を用いて、前記グループの各々に対応するマルチプレクサをマッピングし、前記マルチプレクサの選択信号入力端子に前記動作モード設定信号が与えられるように接続を行い、前記マルチプレクサに、対応するグループへ供給されるクロック信号又は信号値が与えられるように接続を行い、前記クロック制御回路と論理が等価な改変クロック制御回路を生成し、
前記第３作成部が、前記クロック制御回路を前記改変クロック制御回路に置き換え、前記改変クロック制御回路を有する前記半導体集積回路のネットリストを作成することを特徴とする回路設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路設計方法に関するものである。
【背景技術】
【０００２】
半導体集積回路の設計は、ブロック・ＩＰの設計、ブロックの組み立て、テスト回路の挿入、ネットリスト（論理セルの接続情報）の生成、レイアウトなどの複数の工程からなる。レイアウト工程では、クロック情報に基づく、クロックツリー合成（ＣＴＳ：Clock Tree Synthesis）に必要な情報（重複部分がないようにクロックツリーを分割するための非同期関係やフリップフロップ以外のリーフなど）の抽出などが行われている（例えば特許文献１参照）。
【０００３】
近年のシステムＬＳＩ（大規模集積回路）では、大規模化及び多機能化に伴うクロック系統数の増加や、ブロックや動作モード別での分業設計のために、クロック制御回路（クロック生成ポイントからフリップフロップやメモリ等のクロック供給先となるリーフまでの回路）が複雑になっている。そのため、クロック制御回路の回路構造を解析しクロック系統図の作成等を行ってからクロック制御回路の論理抽出を行うことに膨大な時間がかかり、回路設計期間が増大している。
【０００４】
また、各動作モードで伝播するクロックなどクロック制御回路全体の機能を把握することが困難となり、冗長な回路の削除によるチップ面積の削減やクロックレイテンシの削減等のレイアウト工程前に行うクロック制御回路の最適化が困難になっている。
【特許文献１】特開２００６−８５５９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は半導体集積回路のクロック制御回路の論理抽出を短時間に行い、クロック制御回路を最適化できる回路設計方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様による回路設計方法は、設定部、実行部、抽出部、グループ化部、及び第１乃至第３作成部を備える回路設計装置を用いて、クロック制御回路及び前記クロック制御回路を介してクロック信号が伝播するリーフを有する半導体集積回路を設計する方法であって、前記設定部が、ネットリスト及びセルライブラリを用いて、クロック信号が生成されるクロック信号生成ポイント及び動作モードを設定する動作モード設定信号が与えられる動作モード設定ポイントを検出し、前記設定部が、前記クロック信号生成ポイントにクロック信号及びその名称を設定し、前記設定部が、前記動作モード設定ポイントに所望の動作モードに応じた動作モード設定信号を設定し、前記実行部が、前記クロック信号及び前記動作モード設定信号の伝播を行い、前記抽出部が、前記リーフに伝播している信号を抽出し、前記リーフに伝播している信号の抽出後に、前記グループ化部が、すべての前記動作モードにおいて伝播している信号が同じリーフをグループ化し、前記第１作成部が、各グループに伝播している信号の名称又は信号値を前記動作モード別に示すクロック選択論理表を作成し、前記第２作成部が、前記クロック選択論理表を用いて、前記グループの各々に対応するマルチプレクサをマッピングし、前記マルチプレクサの選択信号入力端子に前記動作モード設定信号が与えられるように接続を行い、前記マルチプレクサに、対応するグループへ供給されるクロック信号又は信号値が与えられるように接続を行い、前記クロック制御回路と論理が等価な改変クロック制御回路を生成し、前記第３作成部が、前記クロック制御回路を前記改変クロック制御回路に置き換え、前記改変クロック制御回路を有する前記半導体集積回路のネットリストを作成するものである。
【発明の効果】
【０００７】
本発明によれば、クロック制御回路の論理抽出を短時間に行い、クロック制御回路を最適化できる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施の形態を図面に基づいて説明する。
【０００９】
（第１の実施形態）図１に本発明の第１の実施形態に係る半導体集積回路の設計装置の概略構成を示す。設計装置１０はネットリスト２１及びセルライブラリ２２が与えられ、伝播クロック表３１及びクロック選択論理表３２を生成して出力する。ネットリスト２１はセル及び配線の接続関係に関する設計情報を格納する。セルライブラリ２２はセルに関する設計情報（論理情報）を格納する。伝播クロック表３１及びクロック選択論理表３２については後述する。
【００１０】
設計装置１０はデータ入力部１１、クロック・動作モード設定部１２、クロック伝播実行部１３、伝播クロック抽出部１４、伝播クロック記憶部１５、リーフグループ化部１６、及びクロック表作成部１７を備える。
【００１１】
データ入力部１１はネットリスト２１及びセルライブラリ２２を受信する。
【００１２】
クロック・動作モード設定部１２はネットリスト２１に基づいてクロック信号が生成されるポイントを検出し、そのポイントにクロック（又は定数）及びそのクロックの名称を設定する。また、動作モード選択信号の設定ポイントを検出し、その設定ポイントに各動作モードに対応する値を設定する。
【００１３】
クロック伝播実行部１３はクロック・動作モード設定部１２により設定されたクロック信号及び動作モード選択信号の伝播を行う。
【００１４】
伝播クロック抽出部１４はクロック信号の到達点であるフリップフロップやメモリなどのリーフへ伝播したクロック（又は定数）を抽出する。伝播クロック抽出部１４は各リーフに伝播したクロックを動作モード毎に抽出し、伝播クロック記憶部１５に格納する。
【００１５】
例えば、図２に示すように、フリップフロップＦＦ１〜ＦＦ６に伝播するクロックを抽出する。フリップフロップＦＦ１〜ＦＦ６はクロック制御回路Ｃを介してクロック信号ＣＬＫ１、ＣＬＫ２又は定数（ゲーティングされる場合等）が与えられる。クロック制御回路Ｃには動作モード選択信号ＳＥＬが与えられ、動作モード選択信号ＳＥＬが０の時が動作モード１、動作モード選択信号ＳＥＬが１の時が動作モード２となる。
【００１６】
リーフグループ化部１６は、伝播クロック記憶部１５に格納された各リーフへの伝播クロックを用いて、同じクロック（又は定数）が伝播するリーフをグループ化する。
【００１７】
クロック表作成部１７は伝播クロック記憶部１５に格納された各リーフへの伝播クロックを用いて、各リーフに伝播するクロック（又は定数）が動作モード別に示された伝播クロック表３１を作成して出力する。
【００１８】
図２に示す回路から抽出されたクロックによる伝播クロック表３１の一例を図３に示す。反転クロックと正転（反転していない）クロックを区別するため、反転クロックにはクロックの名称に“〜”を付している。
【００１９】
また、クロック表作成部１７は、リーフグループ化部１６によるグループ化の結果を用いてクロック選択論理表３２を作成して出力する。クロック選択論理表３２は選択論理が同じリーフをグループ化した表である。
【００２０】
各リーフに伝播するクロックが図３に示すような場合の時のクロック選択論理表３２を図４に示す。フリップフロップＦＦ１〜３は動作モードがモード１及びモード２の時に同じクロックが伝播するので、同じグループにまとめられる。同様にフリップフロップＦＦ３及びＦＦ４が同じグループになる。
【００２１】
このように本実施形態による設計装置１０は、クロック制御回路の回路構造の解析を行わず、リーフへ伝播するクロックを動作モード毎に検出することで、クロック制御回路の論理抽出を短時間に行うことができる。
【００２２】
このような設計装置１０によるクロック制御回路の論理抽出処理を図５に示すフローチャートを用いて説明する。
（ステップＳ５０１）セルライブラリが入力される。
（ステップＳ５０２）ネットリストが入力される。
（ステップＳ５０３）クロック信号が生成されるポイントにクロック（又は定数）及びそのクロックの名称が設定される。また、動作モード選択信号にまだ設定されていない動作モードに対応する値が設定される。
（ステップＳ５０４）クロック信号及び動作モード選択信号が伝播される。
（ステップＳ５０５）各リーフへ伝播したクロック信号が抽出される。
（ステップＳ５０６）動作モード選択信号にすべての動作モードについての値が設定されたか否かが判定される。設定された場合はステップＳ５０７へ進み、設定されていない場合はステップＳ５０３へ戻る。
（ステップＳ５０７）伝播クロック表が作成される。
（ステップＳ５０８）クロック選択論理が同じリーフがグループ化される。
（ステップＳ５０９）クロック選択論理表が作成される。
【００２３】
このように、クロック制御回路の回路構造を解析せずに、各リーフ（クロック到達点）へ伝播するクロックを抽出するため、クロック制御回路の論理情報を短時間に抽出することができる。また、伝播クロック表やクロック選択論理表を用いてクロック制御回路の機能を容易に把握することができる。また、ユーザ（回路設計者）は、この伝播クロック表やクロック選択論理表を参照して、クロック制御回路を簡易な回路構成に再構成することができる。
【００２４】
（第２の実施形態）図６に本発明の第２の実施形態に係る半導体集積回路の設計装置の概略構成を示す。設計装置６０はデータ入力部１１、クロック・動作モード設定部１２、クロック伝播実行部１３、伝播クロック抽出部１４、伝播クロック記憶部１５、リーフグループ化部１６、クロック表作成部１７、回路図作成部６１、及びネットリスト作成部６２を備える。
【００２５】
データ入力部１１、クロック・動作モード設定部１２、クロック伝播実行部１３、伝播クロック抽出部１４、伝播クロック記憶部１５、リーフグループ化部１６、及びクロック表作成部１７の機能は上記第１の実施形態と同様のため、説明を省略する。
【００２６】
回路図作成部６１はクロック表作成部１７から出力されるクロック選択論理表を用いてクロック制御回路の回路図を作成する。まず回路図作成部６１は、クロック選択論理表を参照して、反転クロックが伝播するリーフの有無を検出する。反転クロックが伝播するリーフがある場合はインバータをマッピングする。
【００２７】
そして、クロック選択論理表を用いて、グループ毎にマルチプレクサをマッピングする。マルチプレクサは動作モード設定信号を選択信号とし、動作モードに応じてクロック信号（又は定数）を選択して出力する。
【００２８】
回路図作成部６１による回路図作成処理を図７に示すフローチャートを用いて説明する。ここでは例としてクロック選択論理表に図４に示すクロック選択論理表を用いる。
（ステップＳ７０１）クロック選択論理表が入力される。
（ステップＳ７０２）クロック選択論理表を参照して反転クロックの伝播の有無を検出し、ある場合はインバータをマッピングする。図４に示すクロック選択論理表からフリップフロップＦＦ６からなるグループに反転クロックが伝播していることが分かるので、インバータを１つマッピングする。
（ステップＳ７０３）各グループに対応し、動作モード設定信号を選択信号とするマルチプレクサをマッピングする。図８に示すように、フリップフロップＦＦ１〜３のグループにはマルチプレクサＭＵＸ１、フリップフロップＦＦ４、５のグループにはマルチプレクサＭＵＸ２、フリップフロップＦＦ６にはマルチプレクサＭＵＸ３をマッピングする。インバータｉｎｖ１はステップＳ７０２でマッピングされたインバータである。マルチプレクサＭＵＸ１〜３の選択信号入力端子には選択信号ＳＥＬとして動作モード設定信号が与えられるよう接続される。
（ステップＳ７０４）各マルチプレクサに選択・出力を行うクロック信号が与えられるように接続を行う。ゲーティングなどにより０又は１の定数を伝播する場合は、その定数を入力させる。
【００２９】
例えば図９に示すように、マルチプレクサＭＵＸ１にはクロック信号ＣＬＫ１、ＣＬＫ２を入力させる。また、マルチプレクサＭＵＸ２には定数０及びクロック信号ＣＬＫ２を入力させる。また、マルチプレクサＭＵＸ３にはインバータｉｎｖ１を介したクロック信号ＣＬＫ１及び定数０を入力させる。
【００３０】
マルチプレクサＭＵＸ１〜３に入力される選択信号ＳＥＬが０のとき動作モード１、選択信号ＳＥＬが１のとき動作モード２とすれば、図４に示すクロック選択論理表が表すクロック制御回路と論理が等価な改変クロック制御回路となる。
【００３１】
ネットリスト作成部６２は回路図作成部６１で作成された改変クロック制御回路をＨＤＬ（Hardware Description Language）で記述したネットリストとして出力する。ネットリストはＲＴＬ（Register Transfer Level）でもゲートレベルでもよい。
【００３２】
このように、本実施形態による設計装置は、クロック選択論理表を用いることでデバックし易いクロック制御回路を短時間に作成することができる。
【００３３】
また、上記実施形態により作成された改変クロック制御回路と、設計装置に入力されるネットリスト（図１、図６におけるネットリスト２１）に定義されたクロック制御回路とを置換することで、クロック制御回路を最適化することができる。
【００３４】
このようなクロック制御回路の最適化を行う回路設計方法を図１０に示すフローチャートを用いて説明する。
（ステップＳ１００１）クロック制御回路最適化前のネットリスト及びセルライブラリが入力される。
（ステップＳ１００２）回路内に点在するクロック制御回路を１つにまとめてネットリストから切り出す。
（ステップＳ１００３）クロック制御回路の論理抽出を行い、クロック選択論理表を作成する。論理抽出は上記第１の実施形態（図５に示されるフローチャート）と同様の方法にて行う。
（ステップＳ１００４）クロック選択論理表を用いて改変クロック制御回路を作成する。クロック制御回路の作成は上記第２の実施形態（図７に示されるフローチャート）と同様の方法にて行う。
（ステップＳ１００５）ステップＳ１００２で切り出されたクロック制御回路をステップＳ１００４で作成された改変クロック制御回路に置き換える。
（ステップＳ１００６）改変クロック制御回路を含む回路全体のネットリストを作成して出力する。
【００３５】
このような設計方法によりクロック制御回路に含まれる冗長な回路を削除し、最適化を行うことができる。例えば図１１（ａ）に示すようなクロック制御回路が、図１１（ｂ）に示すように最適化される。
【００３６】
クロック制御回路の最適化を行うにあたり、回路構造の変更を望まない領域を最適化対象外領域としてユーザ（回路設計者）が予め指定できるようにしてもよい。
【００３７】
このように、クロック制御回路の回路構造を解析することなく、クロック到達点（リーフ）へ伝播するクロック信号を抽出することで、クロック制御回路全体の機能を短時間に把握できる。
【００３８】
また、クロック選択論理表を用いてクロック制御回路を再生成することで、冗長な回路が削除される。これにより、チップ面積の削減やクロックレイテンシの削減等のクロック制御回路の最適化を行うことができる。
【００３９】
上述した実施の形態はいずれも一例であって限定的なものではないと考えられるべきである。本発明の技術的範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００４０】
【図１】本発明の第１の実施形態による半導体集積回路の設計装置の概略構成図である。
【図２】クロック信号が伝播するフリップフロップを示す図である。
【図３】伝播クロック表の一例を示す図である。
【図４】クロック選択論理表の一例を示す図である。
【図５】同第１の実施形態によるクロック制御回路の論理抽出方法を示すフローチャートである。
【図６】本発明の第２の実施形態による半導体集積回路の設計装置の概略構成図である。
【図７】同第２の実施形態におけるクロック制御回路の回路図作成方法を示すフローチャートである。
【図８】改変クロック制御回路の回路図作成におけるマルチプレクサのマッピングの一例を示す図である。
【図９】改変クロック制御回路の回路図作成におけるクロック信号線の接続の一例を示す図である。
【図１０】クロック制御回路の最適化を行う回路設計方法を示すフローチャートである。
【図１１】クロック制御回路の最適化の一例を示す図である。
【符号の説明】
【００４１】
１０  設計装置
１１  データ入力部
１２  クロック・動作モード設定部
１３  クロック伝播実行部
１４  伝播クロック抽出部
１５  伝播クロック記憶部
１６  リーフグループ化部
１７  クロック表作成部
２１  ネットリスト
２２  セルライブラリ
３１  伝播クロック表
３２  クロック選択論理表
【図１】
0004901702.tif 000002
【図２】
0004901702.tif 000003
【図３】
0004901702.tif 000004
【図４】
0004901702.tif 000005
【図５】
0004901702.tif 000006
【図６】
0004901702.tif 000007
【図７】
0004901702.tif 000008
【図８】
0004901702.tif 000009
【図９】
0004901702.tif 000010
【図１０】
0004901702.tif 000011
【図１１】
0004901702.tif 000012