(57)【要約】【課題】性能の高い半導体集積回路及びその設計方法の提供。【解決手段】入力信号からクロックの有効／無効を示すイネーブル信号を生成する論理回路（第１回路１）と、前記イネーブル信号とクロック信号を入力し、ゲーティングされたクロック信号を出力するクロック・ゲーティング回路（ＡＮＤ回路２０）と、前記クロック信号を入力し、バッファリングされたクロック信号を出力するバッファ回路２１と、前記ゲーティングされたクロック信号を入力する第１のロウ・スルー・ラッチ群（ロウ・スルー・ラッチ１０）と、前記ゲーティングされたクロック信号を入力するハイ・スルー・ラッチ群（ハイ・スルー・ラッチ１２）と、前記バッファリングされたクロック信号を入力する第２のロウ・スルー・ラッチ群（ロウ・スルー・ラッチ１１）と、を含む。【選択図】図１
2010124403.tif 000002
【特許請求の範囲】
【請求項１】
複数のハイ・スルー・ラッチと複数のロウ・スルー・ラッチとを含むパイプラインを備える半導体集積回路において、
前記複数のハイ・スルー・ラッチの全てがクロック・ゲーティングの適用範囲に含まれており、前記複数のロウ・スルー・ラッチの少なくとも一部がクロック・ゲーティングの適用範囲から除外されていることを特徴とする半導体集積回路。
【請求項２】
入力信号からクロックの有効／無効を示すイネーブル信号を生成する論理回路と、前記イネーブル信号とクロック信号を入力し、ゲーティングされたクロック信号を出力するクロック・ゲーティング回路と、前記クロック信号を入力し、バッファリングされたクロック信号を出力するバッファ回路と、前記ゲーティングされたクロック信号を入力する第１のロウ・スルー・ラッチ群と、前記ゲーティングされたクロック信号を入力するハイ・スルー・ラッチ群と、前記バッファリングされたクロック信号を入力する第２のロウ・スルー・ラッチ群と、を含むことを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
予め記憶された設計対象回路のネットリストを入力し、予め記憶されたクロック・ゲーティング範囲指定情報に基づいて、前記ネットリスト内のロウ・スルー・ラッチにクロック・ゲーティング回路を実装し、前記クロック・ゲーティング回路実装後のネットリストを出力することを特徴とする半導体集積回路の設計方法。
【請求項４】
前記クロック・ゲーティング回路実装後のネットリストに基づいてレイアウトを行い、電力・遅延・面積の評価結果に基づいて、前記クロック・ゲーティング範囲指定情報の修正を行うことを特徴とする請求項３に記載の半導体集積回路の設計方法。
【請求項５】
前記レイアウト後の遅延・面積の評価値が予め与えられた制約値を満たさない場合はクロック・ゲーティング範囲を削減し、前記レイアウト後の電力の評価値が予め与えられた制約値を満たさない場合はクロック・ゲーティング範囲を拡大することを特徴とする請求項４に記載の半導体集積回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路及びその設計方法に関し、特に、クロック・ゲーティング手法を用いて設計される半導体集積回路及びその設計方法に関する。
【背景技術】
【０００２】
従来のＬＳＩでは、順序回路を構成するためにフリップフロップ（以下、ＦＦと略す。）が用いられてきた。ＦＦを駆動するためにクロック信号が用いられるが、クロック信号を分配するためには、空間的な分配遅延の不均衡であるスキュー、時間的な揺らぎであるジッタなどのばらつきの要素が一般的に存在する。そして、これらのオーバーヘッドは実効的なサイクルタイムを減少させ、特に高速なＬＳＩに対してはシステム性能の低下という問題を招いている。この問題を解決するために、高速なＬＳＩのパイプライン設計に対してラッチ設計技術が提案されており、例えば、特許文献１や非特許文献１等に詳細に述べられている。
【０００３】
その一方で、近年、ＬＳＩの電力増加が問題となり、特にプロセッサなど高速クロックを用いるＬＳＩでは、クロック信号の生成・分配に費やされる電力も無視できなくなっている。一般的に、ＬＳＩは、論理回路と、順序回路を構成してパイプライン動作を保証するＦＦとから構成される。全てのＦＦにはクロックが分配されるが、その数の多さからＬＳＩの電力に対して大きな割合を占める事となる。その電力を抑制する手段として、クロック・ゲーティング手法がよく用いられている。
【０００４】
クロック・ゲーティング手法では、ＦＦの入力に変化がない、あるいは、出力を保持し続ける、といった状態にあれば、クロック信号を停止させてそのＦＦの動作を停止させることができる。この手法により、ＦＦ内部の信号遷移と、ＦＦの出力に接続される論理回路の信号遷移が抑制されるため、双方の電力削減が実現できる。このクロック・ゲーティング手法は、ラッチで構成されたパイプラインにも適用可能である。以上の技術については、例えば、非特許文献２等に述べられている。
【０００５】
また、全てのＦＦやラッチをゲーティングせず、部分的なゲーティングを行う手法も提案されている。このような技術は、例えば、特許文献２等に述べられているが、これらは、データの有効／無効のみに着目してゲーティング制御を行う技術であり、設計時における、遅延や電力と言った性能に着目した技術ではなかった。
【０００６】
【特許文献１】特開２００１−１５６５９８号公報
【特許文献２】特開２００１−００５６３８号公報
【非特許文献１】Harris, D., et. al., “Skew-Tolerant Domino Logic Circuits,” Digest Papers of the ISSCC1997
【非特許文献２】Neil H.E. Weste, et. al., “CMOS VLSI DESIGN・A Circuits and Systems Perspective”, pp410
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来のラッチ設計技術では、ラッチ設計に好適であるクロック・ゲーティング手法が提供されていなかった。これは、従来のクロック・ゲーティング手法がＦＦを念頭に置いており、本来ゲーティングする必要があるのはハイ・スルー・ラッチのみであるというラッチで構成された回路の特性が考慮されていなかったことに起因する。
【０００８】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、性能の高い半導体集積回路及びその設計方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明は、複数のハイ・スルー・ラッチと複数のロウ・スルー・ラッチとを含むパイプラインを備える半導体集積回路において、前記複数のハイ・スルー・ラッチの全てがクロック・ゲーティングの適用範囲に含まれており、前記複数のロウ・スルー・ラッチの少なくとも一部がクロック・ゲーティングの適用範囲から除外されていることを特徴とする。
【００１０】
また、本発明の半導体集積回路の設計方法は、予め記憶された設計対象回路のネットリストを入力し、予め記憶されたクロック・ゲーティング範囲指定情報に基づいて、前記ネットリスト内のロウ・スルー・ラッチにクロック・ゲーティング回路を実装し、前記クロック・ゲーティング回路実装後のネットリストを出力することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、性能の高い半導体集積回路及びその設計方法を提供することができる。
【００１２】
その理由は、ロウ・スルー・ラッチの一部をクロック・ゲーティングの対象範囲から外すことにより、高速なＬＳＩのパイプライン設計に対してラッチ設計技術を適用しつつ、ロウ・スルー・ラッチにクロック・ゲーティング手法を適用した場合における面積や回路の遅延を改善することができるからである。
【発明を実施するための最良の形態】
【００１３】
背景技術で示したように、高速なＬＳＩのパイプライン設計に対してラッチ設計技術が利用されている。一方、クロック信号の生成・分配に費やされる電力を低減するために、パイプライン動作を保証するＦＦに対してクロック・ゲーティング手法が利用されている。しかしながら、ラッチで構成されるパイプラインに対してクロック・ゲーティング手法を適用した場合、面積や回路の遅延に影響を及ぼすという問題があった。
【００１４】
そこで、本発明では、本来ゲーティングする必要があるのはハイ・スルー・ラッチのみであるというラッチで構成された回路の特性を考慮して、クロック・ゲーティングの必須対象範囲をハイ・スルー・ラッチに限定し、ロウ・スルー・ラッチへのクロック・ゲーティングの実装を任意とした半導体集積回路及びその設計方法を提案する。
【実施例１】
【００１５】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の第１の実施例に係る半導体集積回路及びその設計方法について、図１乃至図３を参照して説明する。図１は、本発明の第１の実施例に係る半導体集積回路の一例を示す回路図であり、図２は、従来の半導体集積回路の一例を示す回路図である。また、図３は、ＦＦ及びラッチを用いた半導体集積回路のクロック・ゲーティング時の動作を示すタイミングチャート図である。
【００１６】
図１に示すように、本実施例の半導体集積回路は、第１回路１、第２回路２、第３回路３、ロウ・スルー・ラッチ１０、１１、ハイ・スルー・ラッチ１２、ＡＮＤ回路２０、バッファ回路２１などにより構成される。
【００１７】
第１回路１は、クロックの有効／無効を示すenable信号を生成する論理回路である。第２回路２及び第３回路３は、ラッチ後のデータを利用する論理回路である。ロウ・スルー・ラッチは、クロックが０（ロウ）の場合にスルーモード、クロックが１（ハイ）の場合に保持モードとなるラッチ回路である。また、ハイ・スルー・ラッチは、クロックが１（ハイ）の場合にスルーモード、クロックが０（ロウ）の場合に保持モードとなるラッチ回路である。ＡＮＤ回路２０は、enable信号とクロック信号を入力し、ゲーティングされたローカルクロック３０を出力するゲーティング回路である。バッファ回路２１は、クロック信号を入力し、バッファリングされたローカルクロック３１を出力する回路である。
【００１８】
上記構成では、第１回路１によりクロック・ゲーティングを制御するenable信号が生成され、ＡＮＤ回路２０（ゲーティング回路）によりクロック信号のゲーティングを行う。ＡＮＤ回路２０の出力であるローカルクロック３０（ゲーティングされたクロック）は、ロウ・スルー・ラッチ１０、ハイ・スルー・ラッチ１２へ入力され、必要に応じてクロック・ゲーティング動作を実行する。一方、バッファ回路２１の出力であるローカルクロック３１（バッファリングされたクロック）は、ロウ・スルー・ラッチ１１へ入力される。この構成では、ロウ・スルー・ラッチ１１はクロック・ゲーティングを行わないため、enable信号を分配する必要がない。
【００１９】
一方、図２は、従来のラッチ回路にクロック・ゲーティングを適用した場合を示している。従来の半導体集積回路は、第１回路１０１、第２回路１０２、第３回路１０３、ロウ・スルー・ラッチ１１１、ハイ・スルー・ラッチ１１２、ＡＮＤ回路１２０などにより構成される。
【００２０】
この構成では、前方のパイプラインステージにおいて生成されたクロックのenable信号を用いて、後方のラッチのクロック・ゲーティングを行う。
【００２１】
本実施例の構成と従来の構成とを比較すると、従来の構成では、全てのロウ・スルー・ラッチ１１１に対してクロック・ゲーティングを行うために、enable信号を全ロウ・スルー・ラッチ１１１に分配している。このため、分配のためのバッファの面積オーバーヘッド、バッファによる回路遅延へのオーバーヘッドが問題となる。一方、本実施例の構成では、ロウ・スルー・ラッチの一部をenable信号の分配範囲から外すことにより、前述の面積と回路遅延のオーバーヘッドを削減した、クロック・ゲーティングを実装したラッチ回路を実現することができる。
【００２２】
次に、本実施例の半導体集積回路が可能となる理由について図３のタイミングチャート図を用いて説明する。
【００２３】
最初にＦＦのクロック・ゲーティングを考える。クロック信号に従って、順次ＦＦからデータ１、データ２が送出されていくが、２サイクル目においてenable信号がLowとなり、それ以降はクロックの遷移が停止する。これ以降、ＦＦはデータ２を保持し続け、一切の信号遷移が停止してゲーティング状態となる。
【００２４】
ここで、ＦＦの構成としては、一般的に、ロウ・スルー・ラッチの出力にハイ・スルー・ラッチが接続された形が良く用いられる点に着目する。ラッチはデータを保持する保持モードと、データを単に通過させるだけのスルーモードの二つがあり、各々クロックのレベルで切り替わる。ＦＦを二つのラッチとして見た場合のタイミングチャートを図３に示す。チャートが、データを保持するモードとスルーさせるモードの二種の期間に分割され、ロウ・スルー・ラッチとハイ・スルー・ラッチで各々交互にモードが切り替わることが分かる。
【００２５】
この時、クロック・ゲーティング状態に着目すると、クロック・ゲーティング状態ではクロックがLowの状態で保持されるため、ロウ・スルー・ラッチはスルーモード、ハイ・スルー・ラッチは保持モードで固定される。クロック・ゲーティング状態でパイプラインの順序動作を保証するためには、パイプラインステージ毎に最低一つのデータを保持する回路が必要となるが、ＦＦで構成されたパイプラインでは、ハイ・スルー・ラッチがデータを保持して、パイプライン動作を保証していることになる。
【００２６】
これに対して、ロウ・スルー・ラッチはクロック・ゲーティング状態では単なるバッファとして振る舞うため、本質的にはクロック・ゲーティングの対象とする必要はないと言える。ラッチで構成されたパイプラインでも同様の動作を期待することができる。すなわち、ハイ・スルー・ラッチはクロック・ゲーティングの対象とすべきであるが、ロウ・スルー・ラッチはクロック・ゲーティングの対象とするかどうかは任意である。
【００２７】
このロウ・スルー・ラッチをクロック・ゲーティングの対象とするかどうかは任意であるという性質を利用し、部分的にゲーティングを行ってenable信号の分配範囲を限定することで、面積と遅延性能へのオーバーヘッドを削減したラッチ回路が提供できる。なお、ゲーティングする範囲は、クロック・ゲーティングを行うことでの電力削減と、面積と遅延性能へのオーバーヘッドの削減がトレードオフとなることから、回路の電力、面積、遅延を評価して適宜決定することができる。
【実施例２】
【００２８】
次に、本発明の第２の実施例に係る半導体集積回路の設計方法について、図４及び図５を参照して説明する。図４は、本発明の第２の実施例に係る半導体集積回路を設計する設計装置の構成を模式的に示すブロック図であり、図５は、本発明の第２の実施例に係る半導体集積回路の設計手順を示すフローチャート図である。
【００２９】
図４に示すように、本実施例の設計システムは、記憶装置４０、制御装置４１、入力装置４２、表示装置４３などを備えている。
【００３０】
記憶装置４０は、ＲＡＭ（Random Access Memory）やハードディスクなどであり、ネットリスト、レイアウト、クロック・ゲーティング範囲指定情報などのデータや各種プログラムを記憶する。制御装置４１は、ＣＰＵ（Central Processing Unit）やＲＯＭ（Read Only Memory）、ＲＡＭなどで構成され、各装置の動作を制御すると共に、上記プログラムの機能に基づいてクロック・ゲーティング回路の実装やレイアウト生成などの処理を行う。入力装置４２は、キーボードやマウスなどであり、回路設計の指示等を行う。表示装置４３は、ＬＣＤ（Liquid Crystal Display）などであり、回路設計に必要な画面を表示する。
【００３１】
以下、上記構成の設計システムを用いた半導体集積回路の設計手法について、図５のフローチャート図を参照して説明する。なお、本実施例の半導体集積回路の設計手法では、回路記述（以下、ネットリストと呼ぶ。）を入力とする。本ネットリストにはラッチは予め含まれている。
【００３２】
まず、ステップＳ１００で、制御装置４１は、記憶装置４０からネットリストを入力し、ステップＳ１０１で、入力されたネットリストに対してクロック・ゲーティング回路を追加し、ステップＳ１０２で、クロック・ゲーティング回路を追加した後のネットリストを出力する。その際、どのラッチをゲーティングすべきか記載された、クロック・ゲーティング範囲指定情報が入力された場合は、その指定に従ってクロック・ゲーティング回路を追加する。
【００３３】
次に、ステップＳ１０３で、制御装置４１は、クロック・ゲーティング回路を追加した後のネットリストに基づいて、ゲートの配置及び信号配線行程等を行い、ステップＳ１０４で、レイアウトを出力する。
【００３４】
次に、ステップＳ１０５で、制御装置４１は、電力、面積、遅延の評価を行い、予め設計者により準備された、電力、面積、遅延の制約値を満たすかどうかを判断する。
【００３５】
そして、面積、遅延の制約値を満たさない場合（ステップＳ１０５のＮｏの場合）は、ステップＳ１０７で、クロック・ゲーティング範囲指定情報を修正してゲーティング範囲を削減し、ステップＳ１０１へ再度入力する。また、電力の制約値を満たさない場合は、ステップＳ１０７で、逆にクロック・ゲーティング範囲指定情報を修正してゲーティング範囲を拡大し、ステップＳ１０１へ再度入力する。
【００３６】
一方、制約値を満たした場合（ステップＳ１０５のＹｅｓの場合）は、ステップＳ１０６で、制御装置４１は、最終レイアウトを出力する。
【００３７】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて適宜変更可能である。例えば、上記実施例では、クロック・ゲーティングをＡＮＤ回路２０で行う構成としたが、クロック信号と同期してイネーブル信号のラッチ動作を行うタッチ回路を設け、ラッチ回路の出力とクロック信号をＡＮＤ回路に入力する構成としてもよい。このような構成とすることにより、ＡＮＤ回路の出力を安定化することができる。
【産業上の利用可能性】
【００３８】
本発明は、ラッチで構成されるパイプラインを含む半導体集積回路及びその半導体集積回路にクロック・ゲーティング手法を適用する設計方法に利用可能である。
【図面の簡単な説明】
【００３９】
【図１】本発明の第１の実施例に係る半導体集積回路の構成例を示す回路図である。
【図２】従来のラッチを用いた半導体集積回路にクロック・ゲーティングを実装した場合の構成例を示す回路図である。
【図３】ＦＦ及びラッチを用いた回路のクロック・ゲーティング時の動作を示すタイミングチャートである。
【図４】本発明の第２の実施例に係る半導体集積回路を設計する設計システムの構成を模式的に示すブロック図である。
【図５】本発明の第２の実施例に係る半導体集積回路の設計手順を示すフローチャート図である。
【符号の説明】
【００４０】
１  第１回路
２  第２回路
３  第３回路
１０  ロウ・スルー・ラッチ
１１  ロウ・スルー・ラッチ
１２  ハイ・スルー・ラッチ
２０  ＡＮＤ回路
２１  バッファ回路
３０  ローカルクロック
３１  ローカルクロック
４０  記憶装置
４１  制御装置
４２  入力装置
４３  表示装置
１０１  第１回路
１０２  第２回路
１０３  第３回路
１１１  ロウ・スルー・ラッチ
１１２  ハイ・スルー・ラッチ
１２０  ＡＮＤ回路
１３０  ローカルクロック
【図１】
2010124403.tif 000003
【図２】
2010124403.tif 000004
【図３】
2010124403.tif 000005
【図４】
2010124403.tif 000006
【図５】
2010124403.tif 000007