(57)【要約】【課題】少なくとも３つのブロックを有する場合において、消費電力を軽減するためのゲーテッドクロックを簡単に選択することによって、容易に低消費電力の半導体集積回路装置を得ることである。【解決手段】第１のブロックと、第１のブロックで生成された動作制御信号（ＣＴＬ１＿１）により制御される第２のブロックと、第２のブロックで生成された動作制御信号（ＣＴＬ１＿１＿１）により制御される第３のブロックとを有し、第３のブロックに入力されるゲーテッドクロックとして、第１および第２のブロックで生成される前記動作制御信号（ＣＴＬ１＿１、ＣＴＬ＿１＿１＿１）をゲート信号として生成した少なくとも２つのゲーテッドクロック、および、第１のブロックに入力される所定のゲーテッドクロックからなるグループより選択される１つのゲーテッドクロックを用いる。【選択図】図１
2004005724.tif 000002
【特許請求の範囲】
【請求項１】
　第１のブロックと、
　前記第１のブロックで生成された動作制御信号により制御される第２のブロックと、
　前記第２のブロックで生成された動作制御信号により制御される第３のブロックとを有し、
　前記第３のブロックに入力されるゲーテッドクロックとして、第１および第２のブロックで生成される前記動作制御信号をゲート信号として生成した少なくとも２つのゲーテッドクロック、および、第１のブロックに入力される所定のゲーテッドクロックからなるグループより選択される１つのゲーテッドクロックを用いる、半導体集積回路装置。
【請求項２】
　第１のブロックと、
　前記第１のブロックの領域内に形成された第２のブロックと、
　前記第２のブロックの領域内に形成された第３のブロックとを有し、
　前記第２のブロックは、第１のブロックで生成された動作制御信号により制御され、
　前記第３のブロックは、第２のブロックで生成された動作制御信号により制御され、
　前記第３のブロックに入力されるゲーテッドクロックとして、第１および第２のブロックで生成される前記動作制御信号をゲート信号として生成した少なくとも２つのゲーテッドクロック、および、第１のブロックに入力される所定のゲーテッドクロックからなるグループより選択される１つのゲーテッドクロックを用いる、半導体集積回路装置。
【請求項３】
　前記第１のブロックには、ゲーテッドクロックとしてマスタークロックが入力され、
　前記第２のブロックには、ゲーテッドクロックとして、前記第１のブロックで生成した動作制御信号をゲート信号として生成したゲーテッドクロック、および、前記マスタークロックのうちいずれかが入力される、請求項１または２に記載の半導体集積回路装置。
【請求項４】
　前記第３のブロックには、前記グループに含まれる複数のゲーテッドクロックのうち、所定の回路上の制約を満足する１つのゲーテッドクロックが入力される、請求項１〜３のいずれか１つに記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
　この発明は、半導体集積回路装置およびその設計方法に関し、特に、階層構造を有する回路ブロックを含む半導体集積回路装置に関する。
【背景技術】
【０００２】
　近年、電子機器などに用いられる半導体集積回路装置には、小型化、軽量化、省電力化およびコストの削減が要求されている。そして、このような要求を考慮して、メモリや各種の論理回路を１つのチップ上に設けたシステムＬＳＩが開発されている。このようなシステムＬＳＩに対応した設計技術として、従来、ある機能を実現する多くのセルを含む回路ブロック（機能ブロック（ＩＰ）とも呼ばれる）を基本単位として設計を行う設計方法が知られている。また、このような回路ブロックを基本単位として設計を行う方法のうち、回路ブロックを基本単位として階層構造を作ることにより設計を行う設計方法も知られている。
【０００３】
　また、上記した回路ブロックを基本単位として階層構造を作ることにより設計を行う設計方法において、消費電力を削減する設計方法として、たとえば、クロックを必要なときだけオンするゲートを用いたゲーテッドクロックを使用する方法も提案されている（たとえば、非特許文献１参照）。
【０００４】
　また、上記した回路ブロックを基本単位とする半導体集積回路装置の設計方法として、１つの階層内のブロック間で共有できる部分を共有することにより電力を削減する設計方法が開示されている（たとえば、特許文献１参照）。
【非特許文献１】日経マイクロデバイス別冊「低電力ＬＳＩの技術白書」（日経ＢＰ社１９９４年発行）の８０頁
【特許文献１】特開２０００−１２３０５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
　しかしながら、上記公報には、１つの階層内での消費電力削減に関する設計方法のみが開示されており、階層構造を有する場合の消費電力削減に関する設計方法については何ら開示されていない。このため、従来では、階層構造を有する複数の回路ブロックを含む半導体集積回路装置の設計においては、消費電力を軽減するための簡易な設計方法を提供するのは困難であった。特に、３つ以上の階層構造を有する場合には、階層構造が複雑になるので、消費電力削減に関する簡易な設計方法を提供するのは困難であった。このため、従来では、３つ以上の階層構造を有する場合に、低消費電力の半導体集積回路装置を簡単な方法で設計するのは困難であった。
【０００６】
　また、従来、階層構造を有する場合に、消費電力削減のためのゲーテッドクロ
ックを採用しようとすると、ゲーテッドクロックの構成が複雑になるという問題点もあった。特に、３層以上の階層構造を有する場合には、階層構造が複雑になるので、この傾向が著しい。また、従来では、各回路ブロックの組み合わせを変えるような設計変更や階層構造を変更する設計変更を行う場合、１からゲーテッドクロックの構成を設計しなおす必要があった。このため、従来では、設計変更を行う場合に、ゲーテッドクロックの構成を簡単に設計するのは困難であった。
【０００７】
　この発明は上記のような課題を解決するためになされたものであり、この発明の目的は、階層構造を有する場合に、消費電力削減のためのゲーテッドクロックを簡単な手法で選択することによって、容易に、低消費電力の半導体集積回路装置を得ることである。
【課題を解決するための手段】
【０００８】
　請求項１による半導体集積回路装置は、第１のブロックと、第１のブロックで生成された動作制御信号により制御される第２のブロックと、第２のブロックで生成された動作制御信号により制御される第３のブロックとを有し、第３のブロックに入力されるゲーテッドクロックとして、第１および第２のブロックで生成される前記動作制御信号をゲート信号として生成した少なくとも２つのゲーテッドクロック、および、第１のブロックに入力される所定のゲーテッドクロックからなるグループより選択される１つのゲーテッドクロックを用いることを特徴とする。
【０００９】
　請求項１では、上記のように構成することによって、動作制御信号と、第１のブロックに入力される所定のゲーテッドクロックとに基づいて、消費電力を軽減するための複数のゲーテッドクロックが、機械的に簡単に決定される。そして、その複数のゲーテッドクロックの中から所定の回路制約を満足する１つのゲーテッドクロックを選択すれば、容易に、低消費電力の半導体集積回路装置を得ることができる。
【００１０】
　請求項２による半導体集積回路装置は、第１のブロックと、第１のブロックの領域内に形成された第２のブロックと、第２のブロックの領域内に形成された第３のブロックとを有し、第２のブロックは、第１のブロックで生成された動作制御信号により制御され、第３のブロックは、第２のブロックで生成された動作制御信号により制御され、第３のブロックに入力されるゲーテッドクロックとして、第１および第２のブロックで生成される前記動作制御信号をゲート信号として生成した少なくとも２つのゲーテッドクロック、および、第１のブロックに入力される所定のゲーテッドクロックからなるグループより選択される１つのゲーテッドクロックを用いることを特徴とする。
【００１１】
　請求項２では、上記のように構成することによって、動作制御信号と、第１のブロックに入力される所定のゲーテッドクロックとに基づいて、消費電力を軽減するための複数のゲーテッドクロックが、機械的に簡単に決定される。そして、その複数のゲーテッドクロックの中から所定の回路制約を満足する１つのゲーテッドクロックを選択すれば、第２のブロックが第１のブロックの領域内に形成されており、第３のブロックが第２のブロックの領域内に形成されている場合においても、容易に低消費電力の半導体集積回路装置を得ることができる。
【００１２】
　請求項３による半導体集積回路装置は、請求項１または２の構成において、第１のブロックには、ゲーテッドクロックとしてマスタークロックが入力され、第２のブロックには、ゲーテッドクロックとして、第１のブロックで生成した動作制御信号をゲート信号として生成したゲーテッドクロック、および、マスタークロックのうちいずれかが入力されることを特徴とする。請求項３では、このように構成することによって、第１および第２のブロックに入力される消費電力軽減のためのゲーテッドクロックを容易に選択することができる。
【００１３】
　請求項４による半導体集積回路装置は、請求項１〜３のいずれか１つに記載の構成において、第３のブロックには、上記グループに含まれる複数のゲーテッドクロックのうち、所定の回路上の制約を満足する１つのゲーテッドクロックが入力されることを特徴とする。請求項４では、このように構成することによって、第３のブロックには、所定の回路上の制約を満足する１つのゲーテッドクロックが入力されるので、半導体集積回路装置において、簡単に、所定の回路上の制約を満足する最適化されたゲーテッドクロックを供給することができる。
【発明の効果】
【００１４】
　以上のように、本発明によれば、階層構造を有する回路ブロックを含む半導体集積回路装置において、消費電力を軽減するためのゲーテッドクロックを簡単に選択することができるので、容易に、低消費電力の半導体集積回路装置を得ることができる。
【発明を実施するための最良の形態】
【００１５】
　以下、本発明を具体化した実施形態を図面に基づいて説明する。
【００１６】
　図１は、本発明の一実施形態による３つの階層構造を有する半導体集積回路装置の構成を示したブロック図である。また、図２は、図１に示した第３階層の回路ブロックの内部構成および信号を説明するためのブロック図である。図３は、図２に示した第３階層の回路ブロックの内部をブラックボックスとして表した場合のブロック図である。また、図４は、図１に示したゲーテッドクロック生成部の詳細構成を示したブロック図である。図５は、図４のゲーテッドクロック生成部のクロック生成動作を説明するためのタイミング図である。
【００１７】
　まず、図１を参照して、本発明の一実施形態による半導体集積回路装置は、３つの階層構造を有する複数の回路ブロック１〜４を備えている。最上位階層である第１階層の回路ブロック（Ｃｌａｓｓ１）１の下位階層として、第２階層の回路ブロック（Ｃｌａｓｓ１＿２）２と、第２階層の回路ブロック（Ｃｌａｓｓ１＿１）３とが設けられている。また、第２階層の回路ブロック（Ｃｌａｓｓ１＿１）３の下位階層として、第３階層の回路ブロック（Ｃｌａｓｓ１＿１＿１）４が設けられている。
【００１８】
　各回路ブロック１〜４には、ゲーテッドクロック生成部５から１本ずつゲーテッドクロックが供給される。また、第２階層の回路ブロック２には、第１階層の回路ブロック１から動作制御信号ＣＴＬ１＿２が出力される。また、第２階層の回路ブロック３には、第１階層の回路ブロック１から動作制御信号ＣＴＬ１＿１が出力される。また、第３階層の回路ブロック４には、第２階層の回路ブロック３から動作制御信号ＣＴＬ１＿１＿１が出力される。このように、各階層ごとに、上位階層から下位階層に動作制御信号が出力される。これにより、上位階層の回路ブロックが動作中にのみその下位階層の回路ブロックが動作する構造としている。
【００１９】
　最下位階層である第３階層の回路ブロック４は、図２に示すように、データを保持するためのフリップフロップ４２と、動作制御信号に基づいてフリップフロップ４２に新規入力データをラッチするかどうかを選択するためのセレクタ４１とを含んでいる。セレクタ４１には、入力信号と、動作制御信号ＣＴＬ１＿１＿１とが入力される。また、フリップフロップ４２には、セレクタ４１からの信号と、ゲーテッドクロックＣＬＫ１＿１＿１とが入力される。
【００２０】
　動作としては、動作制御信号ＣＴＬ１＿１＿１がオンの場合のみ、入力信号をセレクタ４１によりフリップフロップ４２にラッチさせて保持する。動作制御信号ＣＴＬ１＿１＿１がオフの場合には、フリップフロップ４２は保持している値を出力するだけで良い。本実施形態では、他の回路ブロック１〜３も、図２に示した第３階層の回路ブロック４と同様の構成を有している。
【００２１】
　図２に示した第３階層の回路ブロック４の内部をブラックボックスとして表すと図３に示すようになる。一般に、各階層の回路ブロック１〜４は、図３に示すように表される。
【００２２】
　図２および図３に示した第３階層の回路ブロック４では、上記したように、動作制御信号ＣＴＬ１＿１＿１がオフのときは、フリップフロップ４２は保持している値を出力するだけで良いので、この場合にはクロックを供給をする必要がない。このような場合、電力削減のため、動作に必要なときだけクロックを供給する方法として、本実施形態では、ゲーテッドクロックが用いられる。ゲーテッドクロック生成部５は、図４に示すように、フリップフロップ５１とＡＮＤ回路５２とを含んでいる。
【００２３】
　フリップフロップ５１の一方の入力端には、動作制御信号と等価なゲート信号、または、ゲーテッドクロックとしてのマスタークロックと等価なクロックを出力するためのゲート信号（たとえば、常に「１」の信号）が入力される。また、フリップフロップ５１の他方の入力端には、マスタークロックが入力される。ＡＮＤ回路５２には、マスタークロックと、フリップフロップ５１の出力とが入力される。これにより、ＡＮＤ回路５２からゲーテッドクロックが出力される。図４には、図１に示した第３階層の回路ブロック４に入力されるゲーテッドクロックＣＬＫ１＿１＿１が生成される例が示されている。この場合、ゲート信号としては、動作制御信号ＣＴＬ１＿１＿１と等価なゲート信号ＧＴ１＿１＿１を用いる。たとえば、この時の信号のタイミングは、図５に示すようになる。
【００２４】
　本実施形態の３階層構造を有するブロック構成の場合、図１に示すように、各回路ブロック１〜４ごとに個別にゲーテッドクロックを供給する。このとき、各回路ブロック１〜４につき、１本のゲーテッドクロックを供給する。本実施形態では、各回路ブロック１〜４に供給するゲーテッドクロックが２本ある場合には、回路ブロックを分けることによって、上記１本のゲーテッドクロックのルールを守れるようにする。
【００２５】
　本実施形態では、各回路ブロック１〜４に、以下のようなゲーテッドクロックを供給する。
【００２６】
　まず、最上位階層である第１階層の回路ブロック（Ｃｌａｓｓ１）１には、図１に示すように、ゲーテッドクロックとして、マスタークロック（ＭＣＬＫ）を供給する。また、第１階層の下位階層である第２階層の回路ブロック（Ｃｌａｓｓ１＿２）２には、動作制御信号ＣＴＬ１＿２をゲート信号として生成されるゲーテッドクロックＣＬＫ１＿２、または、マスタークロック（ＭＣＬＫ）を供給する。また、第２階層の回路ブロック（Ｃｌａｓｓ１＿１）３には、動作制御信号ＣＴＬ１＿１をゲート信号として生成されるゲーテッドクロックＣＬＫ１＿１、または、マスタークロック（ＭＣＬＫ）を供給する。
【００２７】
　また、第３階層の回路ブロック（Ｃｌａｓｓ１＿１＿１）４には、動作制御信号ＣＴＬ１＿１＿１をゲート信号として生成されるゲーテッドクロックＣＬＫ１＿１＿１、その上位階層の動作制御信号ＣＴＬ１＿１をゲート信号として生成されるゲーテッドクロックＣＬＫ１＿１、または、マスタークロック（ＭＣＬＫ）を供給する。
【００２８】
　図６は、図１に示した第３階層の回路ブロックに対するゲーテッドクロックを選択する際の方法を説明するための概略図である。図６を参照して、次に、第３階層の回路ブロック４において、上記した３つのゲーテッドクロック（ＣＬＫ１＿１＿１、ＣＬＫ１＿１、ＭＣＬＫ）の中から、１つのゲーテッドクロックを選択する手順について説明する。
【００２９】
　まず、第３階層の回路ブロック４に入力される動作制御信号ＣＴＬ１＿１＿１をゲート信号として生成されるゲーテッドクロックＣＬＫ１＿１＿１が次のような回路上の制約を満足しているかどうかを調べる。たとえば、１つのゲーテッドクロックで動作するフリップフロップが回路制約による所定の数（Ｍ）以上あるかどうかを調べる。上記制約を満たしている場合は、そのゲーテッドクロックＣＬＫ１＿１＿１を、図６に示すように、第３階層の回路ブロック４に接続する。そして、ゲーテッドクロックＣＬＫ１＿１＿１が上記の回路制約を満たしていない場合には、そのゲーテッドクロックＣＬＫ１＿１＿１を、その上位階層のゲーテッドクロックＣＬＫ１＿１に置き換える。
【００３０】
　すなわち、ゲーテッドクロックＣＬＫ１＿１＿１は、本来第３階層の回路ブロック４に供給されるゲーテッドクロックであるが、上記制約に違反している場合は、その上位階層のゲーテッドクロックＣＬＫ１＿１に置き換える。さらに、必要であれば、最上位階層のゲーテッドクロックであるマスタークロック（ＭＣＬＫ）に置き換える。その後、不要となったゲーテッドクロックは抹消する。
【００３１】
　上記のような設計方法を用いることによって、階層構造を有するブロックベースの設計方法において、自動的に回路制約を満たすゲーテッドクロックを生成することができる。
【００３２】
　なお、第２階層の回路ブロック（Ｃｌａｓｓ１＿２）２についても、本来この回路ブロック２に供給されるゲーテッドクロックＣＬＫ１＿２が回路制約を満足するかどうかを調べる。そして、回路制約を満足している場合には、そのゲーテッドクロックＣＬＫ１＿２を第２階層の回路ブロック２に供給する（図１参照）。そのゲーテッドクロックＣＬＫ１＿２が回路制約に違反する場合には、マスタークロック（ＭＣＬＫ）に置き換える。また、第２階層の回路ブロック（Ｃｌａｓｓ１＿１）３についても、本来この回路ブロック３に供給されるゲーテッドクロックＣＬＫ１＿１が回路制約を満足するかどうかを調べる。そして、回路制約を満足している場合には、そのゲーテッドクロックＣＬＫ１＿１を第２階層の回路ブロック３に供給する。そのゲーテッドクロックＣＬＫ１＿１が所定の回路制約を満足していない場合には、マスタークロック（ＭＣＬＫ）に置き換える。
【００３３】
　本実施形態では、上記のように、第３階層の回路ブロック４に入力されるゲーテッドクロックとして、異なる階層に出力される２つの動作制御信号ＣＴＬ１＿１＿１およびＣＴＬ１＿１をゲート信号として生成したゲーテッドクロックおよびマスタークロックのうちのいずれか１つのゲーテッドクロックを用いることによって、消費電力を軽減するための複数のゲーテッドクロックを機械的に簡単に決定することができる。それにより、その複数のゲーテッドクロックの中から所定の回路制約を満足する１つのゲーテッドクロックを選択すれば、容易に、低消費電力の半導体集積回路装置を得ることができる。
【００３４】
　また、最上位階層である第１階層の回路ブロック１には、マスタークロックを供給するとともに、第２階層の回路ブロック２および３には、動作制御信号に対応するゲーテッドクロックまたはマスタークロックを供給することによって、第１階層の回路ブロック１と、第２階層の回路ブロック２および３とに供給する消費電力軽減のためのゲーテッドクロックを容易に選択することができる。
【００３５】
　また、回路ブロックの組み合わせを変更するような設計変更や階層構造を変更するような設計変更を行う場合にも、動作制御信号と最上位階層に入力されるマスタークロックとに基づいて、容易に、各回路ブロック１〜４に入力するゲーテッドクロックを選択することができる。その結果、設計変更を行う場合にも、簡単に対処することができる。
【００３６】
　なお、今回開示された実施形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施形態の説明ではなく特許請求の範囲によって示され、さらに特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれる。
【００３７】
　たとえば、上記実施形態では、３つの階層構造を有する回路ブロックを備えた半導体集積回路装置を例にとって説明したが、本発明はこれに限らず、４つ以上の階層構造を有する場合にも同様に適用可能である。この場合、第１階層から第３階層の回路ブロックについては、上記実施形態と同様のゲーテッドクロックを選択して供給する。そして、第４階層以下のブロックには、その階層に入力される動作制御信号および上位階層の動作制御信号ならびにマスタークロックの中から所定の回路制約を満足するゲーテッドクロックを選択して供給する。なお、第４階層以下の下位階層の回路ブロックについては、上記した第３階層の回路ブロック４の場合と同様の方法を用いて、回路制約を満たすゲーテッドクロックを自動的に選択することができる。
【００３８】
　また、上記実施形態では、１つのゲーテッドクロックで動作するフリップフロップが所定の数（Ｍ）以上あるという回路制約を例にとって説明したが、本発明はこれに限らず、状況に応じて他の回路制約を用いてもよい。たとえば、上記したフリップフロップの数に関する回路制約に加えて、ゲーテッドクロックの種類の総数が所定の数（Ｎ）以下であるという回路制約を加えてもよい。
【００３９】
　また、上記実施形態では、各回路ブロック１〜４に１本ずつのゲーテッドクロックを供給する例を示したが、本発明はこれに限らず、各回路ブロックに複数本のゲーテッドクロックを供給するようにしてもよい。
【００４０】
　また、上記実施形態では、各回路ブロック２〜４に動作制御信号を１つずつ入力する例を示したが、本発明はこれに限らず、各回路ブロックに複数の動作制御信号を入力するようにしてもよい。
【図面の簡単な説明】
【００４１】
【図１】本発明の一実施形態による３つの階層構造を有する回路ブロックを含む半導体集積回路装置の構成を示したブロック図である。
【図２】図１に示した第３階層の回路ブロックの内部構成および信号を説明するためのブロック図である。
【図３】図２に示した第３階層の回路ブロックの内部構成をブラックボックスにした場合のブロック図である。
【図４】図１に示したゲーテッドクロック生成部の詳細構成を示したブロック図である。
【図５】図４に示したゲーテッドクロック生成部の動作を説明するためのタイミング図である。
【図６】図１に示した第３階層の回路ブロックに対するゲーテッドクロックを選択する際の方法を説明するための概略図である。
【符号の説明】
【００４２】
　１　第１階層の回路ブロック（Ｃｌａｓｓ１）
　２　第２階層の回路ブロック（Ｃｌａｓｓ１＿２）
　３　第２階層の回路ブロック（Ｃｌａｓｓ１＿１）
　４　第３階層の回路ブロック（Ｃｌａｓｓ１＿１＿１）
　５　ゲーテッドクロック生成部
　４１　セレクタ
　４２　フリップフロップ
　５１　フリップフロップ
　５２　ＡＮＤ回路
【図１】
2004005724.tif 000003
【図２】
2004005724.tif 000004
【図３】
2004005724.tif 000005
【図４】
2004005724.tif 000006
【図５】
2004005724.tif 000007
【図６】
2004005724.tif 000008