(57)【要約】【課題】設計工数の増大を防止するために、簡単な回路構成で故障検出を可能にしたクロックゲーティング回路及びマクロセルを提供すること。【解決手段】本発明に係るクロックゲーティング回路は、入力したクロック信号ＣＬＫ１２に対応するゲーテッドクロック信号ＧＣＬＫ１３の出力をクロックイネーブル信号ＣＥＮ１０に応じて制御するクロックゲーティング回路である。また、ＣＥＮ１０の信号値をクロック信号ＣＬＫ１２に同期してラッチするラッチ５を有する。そして、ＣＬＫ１２を入力し、ラッチ５の出力信号に応じて、ＧＣＬＫ１３の出力を制御するＡＮＤ４を有する。さらに、ラッチ５の出力信号の信号値をクロック信号ＣＬＫ１２に同期してラッチし、ラッチした値を出力するラッチ６を備えることを特徴としている。それにより、簡単な回路構成でスキャン試験を実行することができる。【選択図】図１
2010045483.tif 000002
【特許請求の範囲】
【請求項１】
入力した第１のクロック信号に対応する第２のクロック信号の出力を制御信号に応じて制御するクロックゲーティング回路であって、
前記制御信号の信号値を前記第１のクロック信号に同期してラッチする第１のラッチと、
前記第１のクロック信号を入力し、前記第１のラッチの出力信号に応じて、前記第２のクロック信号の出力を制御する第１のゲートと、
前記第１のラッチの前記出力信号の信号値を前記第１のクロック信号に同期してラッチし、ラッチした値を出力する第２のラッチを備えたクロックゲーティング回路。
【請求項２】
前記第１のラッチと前記第２のラッチが、スキャン試験のためのスキャンパスを形成することを特徴とする請求項１記載のクロックゲーティング回路。
【請求項３】
前記第１のラッチと前記第２のラッチは、互いに異なる前記第１のクロックの信号レベルで入力信号の信号値をラッチすることを特徴とする請求項１又は２記載のクロックゲーティング回路。
【請求項４】
前記第１のクロック信号を入力し、テストイネーブル信号に応じて前記第２のラッチに対する当該第１のクロック信号の出力を制御する第２のゲートをさらに備えたことを特徴とする請求項１〜３記載のクロックゲーティング回路。
【請求項５】
クロック信号の出力を制御するクロックイネーブル信号と、前記第１のラッチの動作観測する場合に入力されるスキャン信号を選択的に前記第１のラッチに供給するセレクタをさらに備えたことを特徴とする請求項１〜４いずれかに記載のクロックゲーティング回路。
【請求項６】
前記クロックゲーティング回路は、マクロセル化されていることを特徴とする請求項１〜５いずれかに記載のクロックゲーティング回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作状況に応じてクロック信号の供給を停止するクロックゲーティング機能を備えたクロックゲーティング回路に関するものであり、特に故障検出技術に関する。
【背景技術】
【０００２】
近年の大規模集積回路（ＬＳＩ）の規模拡大に伴い、低消費電力化は必須技術である。ここで低消費電力化技術の一つとしてクロックゲーティング技術が知られている。クロックゲーティング技術では、アプリケーションの実行中に動作する必要のない回路に対するクロック信号の供給を停止し、信号の遷移を止めることによって消費電力を削減している。また、近年のＬＳＩにおいて自動レイアウトによる設計が一般的に行われるが、クロックゲーティング技術を採用する場合に、クロックゲーティング回路をマクロセルとしてあらかじめ準備し設計を行っている場合がほとんどである。また、一般的にＬＳＩの製造中や製造後に故障が発生しているか否かを検出するためのテストが行われるが、そのテストにおける故障検出率を高めるためのテスト設計技術の一手法として、スキャン設計が知られている。
【０００３】
従来から提案されている一般的なクロックゲーティング回路におけるスキャン設計について、図６に示す例を用いて説明する。クロック信号の供給を制御するクロックゲーティング回路においては、クロック信号のＯＮ／ＯＦＦ（供給する／供給しない）を切り替えるときに、ＯＮ／ＯＦＦ制御信号（クロックイネーブル信号）を切り替えるタイミングによって、その出力クロックにグリッチ（予定しない不定長のパルス）が発生することがある。このグリッチを防止する目的で、図６に示すクロックゲーティング回路１００にはラッチ回路１０４が設けられている。
【０００４】
クロックゲーティング回路１００は、ＯＲゲート（以下、単に「ＯＲ」とする）１０２とＡＮＤゲート（以下、単に「ＡＮＤ」とする）１０３とラッチ１０４にて構成される。テストイネーブル信号であるＴＥＮ１０５とクロックイネーブル信号であるＣＥＮ１０６はＯＲ１０２の入力端子に入力される。ＯＲ１０２から出力された信号はラッチ１０４の入力端子ＬＤに入力される。ラッチ１０４の出力端子ＬＱから出力された信号はＡＮＤ１０３の一方の入力端子に入力される。クロック信号であるＣＬＫ１０７はＡＮＤ１０３の他方の入力端子に入力され、且つラッチ１０４の入力端子ＬＧへ入力される。ＡＮＤ１０３から出力された信号は、ゲーテッドクロック信号ＧＣＬＫ１０８として出力される。
【０００５】
図６に示す回路構成では、クロックゲーティング回路１００に対するスキャン制御はＴＥＮ１０５のみに基づいて実行されている。スキャン試験時には、ＧＣＬＫ１０８から常にその先の回路にクロック信号を供給させるため、本例ではＴＥＮ１０５を"１"に固定してクロック信号を制御している。そのため、ラッチ１０４の出力信号が固定されてしまい、故障検出を困難にしている。
【０００６】
その解決策が非特許文献１に提案されている。図７は、非特許文献１に示されたスキャン設計技術を説明するためのクロックゲーティング回路である。
【０００７】
図７に示す回路は、主としてクロックイネーブル信号の故障検出を可能にすることを目的とした回路構成を採用している。クロックゲーティング回路１３０に加えて、さらにクロックイネーブル観測用フリップフロップ１４７を有するクロックイネーブル観測回路１４０を設けることにより、クロックゲーティング回路１３０内で使用されているクロックイネーブル信号の故障検出を可能にしている。
【０００８】
クロックゲーティング回路１３０は、ＯＲ１３２とＡＮＤ１３３とラッチ１３１を有している。コントロールロジック１１２を経て出力された制御信号がクロックイネーブル信号としてラッチ１３１の入力端子ＬＤに入力される。ラッチ１３１の出力端子ＬＱから出力された信号はＯＲ１３２の一方の入力端子に入力される。ＯＲ１３２の他方の入力端子には、テストイネーブル信号ＴＥＮ１１８が入力される。ＯＲ１３２から出力された信号はＡＮＤ１３３の一方の入力端子に入力される。ＡＮＤ１３３の他方の入力端子とラッチ１３１の入力端子ＬＧにはクロック信号ＣＬＫ１１４が入力される。ＡＮＤ１３３から出力された信号はゲーテッドクロック信号ＧＣＬＫ１１５として出力される。
【０００９】
クロックイネーブル観測回路１４０は、３個のＮＡＮＤ１４１、１４２、１４３、２個のＥＸＯＲゲート（以下、単に「ＥＸＯＲ」とする）１４４、１４５、ＡＮＤ１４６、及びクロックイネーブル観測用フリップフロップ１４７を有している。
【００１０】
ＮＡＮＤ１４１、１４２、１４３の一方の入力端子にはＴＥＮ１１８がそれぞれ入力される。ＮＡＮＤ１４３の他方の入力端子には、クロックゲーティング回路１３０から出力された信号ＥＮＬａ１１９が入力される。なお、ＥＮＬａ１１９は、クロックゲーティング回路１３０内で使用されているラッチ１３１の出力端子ＬＱから出力された信号である。また、ＮＡＮＤ１４１、１４２の他方の入力端子には、ＮＡＮＤ１４３の場合と同様に、他のクロックゲーティング回路から出力された信号ＥＮＬｃ１２１、ＥＮＬｂ１２０がそれぞれ入力される。
【００１１】
ＮＡＮＤ１４２、１４３から出力された信号はＥＸＯＲ１４４の入力端子にそれぞれ入力される。ＥＸＯＲ１４４から出力された信号はＥＸＯＲ１４５の一方の入力端子に入力される。ＥＸＯＲ１４５の他方の入力端子にはＮＡＮＤ１４１から出力された信号が入力される。ＥＸＯＲ１４５から出力された信号は、クロックイネーブル観測用フリップフロップ１４７の入力端子Ｄに入力される。
【００１２】
ＡＮＤ１４６の一方の入力端子にはＣＬＫ１１４が入力される。ＡＮＤ１４６の他方の入力端子にはＴＥＮ１１８が入力される。ＡＮＤ１４６から出力された信号はクロックイネーブル観測用フリップフロップ１４７のクロック端子に入力される。クロックイネーブル観測用フリップフロップ１４７から出力された信号は、スキャン出力信号ＳＯＴ１２２として出力される。
【００１３】
図７に示す回路は、前記の回路のほかにフリップフロップ１１１、１１３を有している。フリップフロップ１１１のクロック端子にはＣＬＫ１１４が入力される。フリップフロップ１１１の出力端子Ｑから出力された信号は、コントロールロジック１１２を経てラッチ１３１の入力端子ＬＤに入力される。
【００１４】
また、フリップフロップ１１３のクロック端子には、ＡＮＤ１１３から出力されたＧＣＬＫ１１５が入力される。フリップフロップ１１３の入力端子Ｄには、他の回路から出力された信号１１７が入力され、出力端子Ｑから信号１１６が出力される。なお、フリップフロップ１１３はクロックゲーティング対象となるフリップフロップを疑似的に表している。
【００１５】
図７に示すクロックゲーティング回路１３０は、図６の一般的なクロックゲーティング回路と比較して、ラッチ１３１の出力信号をＴＥＮ１１８で制御する構成を採用している。したがって、ＴＥＮ１１８の影響を受けることなくラッチ１３１の出力信号を故障検出することが可能である。また、回路規模の増大を防止するために、１個のクロックイネーブル観測回路で３個のクロックゲーティング回路の故障検出を可能にしている。
【００１６】
しかし、図７に示す回路では、１個のクロックイネーブル観測回路１４０で複数のクロックゲーティング回路の故障検出を可能にしているため、回路構成が複雑になり、スキャン試験にかかる検証工数が増大するという問題がある。
【非特許文献１】Synopsys社、「PowerCompiler User Guide Ver. Y-2006.06」、２００６年６月、ｐ．２０８
【発明の開示】
【発明が解決しようとする課題】
【００１７】
上述のように、近年のＬＳＩの規模拡大に伴い低消費電力化対策が求められる中、クロックゲーティング技術の必要性が高まっているが、故障検出率低下の問題があった。そのため、故障検出機能を備えたクロックゲーティング技術が提案されているが、従来のクロックゲーティング技術では、回路構成が複雑になり、スキャン試験にかかる検証工数が増大するという問題があった。
【課題を解決するための手段】
【００１８】
本発明に係るクロックゲーティング回路は、入力した第１のクロック信号（例えば、本発明の実施の形態１におけるクロック信号ＣＬＫ１２）に対応する第２のクロック信号（例えば、本発明の実施の形態１におけるゲーテッドクロック信号ＧＣＬＫ１３）の出力を制御信号（例えば、本発明の実施の形態１におけるクロックイネーブル信号ＣＥＮ１０）に応じて制御するクロックゲーティング回路であって、前記制御信号の信号値を前記第１のクロック信号に同期してラッチする第１のラッチ（例えば、本発明の実施の形態１におけるラッチ５）と、前記第１のクロック信号を入力し、前記第１のラッチの出力信号に応じて、前記第２のクロック信号の出力を制御する第１のゲート（例えば、本発明の実施の形態１におけるＡＮＤ４）と、前記第１のラッチの前記出力信号の信号値を前記第１のクロック信号に同期してラッチし、ラッチした値を出力する第２のラッチ（例えば、本発明の実施の形態１におけるラッチ６）を備えることを特徴とする。それにより、簡単な回路構成でスキャン試験を実行することができる。
【発明の効果】
【００１９】
本発明により、設計工数の増大を防止するために簡単な回路構成で故障検出を可能にしたクロックゲーティング回路及びマクロセルを提供することができる。
【発明を実施するための最良の形態】
【００２０】
発明の実施の形態１
まず、図１を用いて、本発明の実施の形態１にかかるクロックゲーティング回路の構成について説明する。図１に示すクロックゲーティング回路１は、２個のラッチ５、６とＡＮＤ４で構成されており、クロックゲーティング機能を有する。
【００２１】
クロックイネーブル信号ＣＥＮ１０の端子がラッチ５の入力端子ＬＤに接続されている。ラッチ５の出力端子ＬＱは、ＡＮＤ４の一方の入力端子、及びラッチ６の入力端子ＬＤに接続されている。ＡＮＤ４の他方の入力端子、ラッチ５の入力端子ＬＧ、及びラッチ６の入力端子ＬＧには、クロック信号ＣＬＫ１２の端子が接続されている。ＡＮＤ４の出力端子は、ゲーテッドクロック信号ＧＣＬＫ１３の端子に接続されている。ラッチ６の出力端子ＬＱは、スキャン出力信号ＳＯＴ１４の端子に接続されている。
【００２２】
次に、図１を用いて、本発明の実施の形態１にかかるクロックゲーティング回路の動作について説明する。ＣＥＮ１０がラッチ５の入力端子ＬＤに入力される。ラッチ５の出力端子ＬＱから出力された信号は、ＡＮＤ４の一方の入力端子、及びラッチ６の入力端子ＬＤに入力される。ＡＮＤ４の他方の入力端子、ラッチ５の入力端子ＬＧ、及びラッチ６の入力端子ＬＧには、クロック信号ＣＬＫ１２が入力される。ＡＮＤ４から出力された信号は、ＧＣＬＫ１３として出力される。また、ラッチ６の出力端子ＬＱから出力された信号は、ＳＯＴ１４として出力される。
【００２３】
ここで、ラッチ５はネガティブ型ラッチである。つまり、入力端子ＬＧに入力された信号がＬｏｗレベルのとき、入力端子ＬＤに入力された信号が出力端子ＬＱに伝搬して出力される。また、入力端子ＬＧに入力された信号がＨｉｇｈレベルのとき、出力端子ＬＱは直前の信号状態を保持する。
【００２４】
一方、ラッチ６はポジティブ型ラッチである。つまり、入力端子ＬＧに入力された信号がＨｉｇｈレベルのとき、入力端子ＬＤに入力された信号が出力端子ＬＱに伝搬して出力される。また、入力端子ＬＧに入力された信号がＬｏｗレベルのとき、出力端子ＬＱは直前の信号状態を保持する。
【００２５】
図１に示す回路では、ラッチ６の入力端子ＬＧにＣＬＫ１２の伝搬信号が入力される。したがって、ラッチ５とラッチ６がＣＬＫ１２に同期して動作している。このような回路構成を採用することによって、ラッチ５の入力端子ＬＤに入力される信号をＣＬＫ１２の立ち上がりで検出し、ラッチ６の出力端子ＬＱから出力することを可能にしている。すなわち、ＳＯＴ１４の出力信号を観測することにより、ラッチ５の出力端子ＬＱから出力される信号の故障検出を可能にしている。
【００２６】
このように、図１に示す回路は、ＣＬＫ１２に同期したラッチ５とラッチ６を構成することにより、スキャン試験のためのスキャンパスを形成し、ラッチ５の出力端子ＬＱから出力される信号の故障検出を可能にしている。つまり、従来技術よりも簡単な回路構成でクロックゲーティング回路の故障検出を可能にしている。また、回路構成が複雑でスキャン試験にかかる検証工数が増大するという従来技術の問題も解決することもできる。
【００２７】
さらに、図１に示す回路のレイアウト設計を行う場合、従来技術と比較して各セルの配置に余裕ができるため、タイミング調整（クロック入力信号のタイミングのずれを調整）が容易である。
【００２８】
発明の実施の形態２
図２を用いて、本発明の実施の形態２にかかるクロックゲーティング回路の構成について説明する。図２に示すクロックゲーティング回路１は、２個のラッチ５、６のほか、２個のＡＮＤ２、４、ＯＲ３、及びセレクタ７で構成されており、クロックゲーティング機能を有する。
【００２９】
ＣＥＮ１０の端子とスキャン入力信号ＳＩＮ１１の端子がセレクタ７の入力端子に接続されている。スキャンモード信号ＳＭＣ８の端子はセレクタ７の出力制御端子に接続されている。セレクタ７の出力端子はラッチ５の入力端子ＬＤに接続されている。ラッチ５の出力端子ＬＱは、ＯＲ３の一方の入力端子、及びラッチ６の入力端子ＬＤに接続されている。ＯＲ３の他方の入力端子、及びＡＮＤ２の一方の入力端子には、テストイネーブル信号ＴＥＮ９の端子が接続されている。
【００３０】
ＡＮＤ２の他方の入力端子、ラッチ５の入力端子ＬＧ、及びＡＮＤ４の一方の入力端子にはクロック信号ＣＬＫ１２の端子が接続されている。ＡＮＤ４の他方の入力端子には、ＯＲ３の出力端子が接続されている。ＡＮＤ４の出力端子は、ゲーテッドクロック信号ＧＣＬＫ１３の端子に接続されている。ＡＮＤ２の出力端子は、ラッチ６の入力端子ＬＧに接続されている。ラッチ６の出力端子ＬＱはスキャン出力信号ＳＯＴ１４の端子に接続されている。
【００３１】
次に、図２を用いて、本発明の実施の形態２にかかるクロックゲーティング回路の動作について説明する。なお、図２の回路では、ＴＥＮ９＝１のとき、スキャン試験を実行する第１のモードを示している。また、ＴＥＮ９＝０のとき、通常動作を行う第２のモードを示している。
【００３２】
セレクタ７の入力端子にはＣＥＮ１０とＳＩＮ１１がそれぞれ入力される。セレクタ７の出力制御端子には、ＳＭＣ８が入力され、セレクタ７の出力信号が制御される。図２に示す回路では、ＳＭＣ８＝１のとき、ＳＩＮ１１がセレクタ７の出力信号として選択される。そして、ＳＭＣ８＝０のとき、ＣＥＮ１０がセレクタ７の出力信号として選択される。セレクタ７から出力された信号は、ラッチ５の入力端子ＬＤに入力される。ラッチ５の入力端子ＬＧには、ＣＬＫ１２が入力される。
【００３３】
ラッチ５の出力端子ＬＱから出力された信号は、ＯＲ３の一方の入力端子に入力される。ＯＲ３の他方の入力端子にはＴＥＮ９が入力される。ＯＲ３から出力された信号はＡＮＤ４の一方の入力端子に入力される。ＡＮＤ４の他方の入力端子には、ＣＬＫ１２が入力される。ＡＮＤ４から出力された信号は、ＧＣＬＫ１３として出力される。
【００３４】
ＡＮＤ２の一方の入力端子には、ＣＬＫ１２が入力される。ＡＮＤ２の他方の入力端子には、ＴＥＮ９が入力される。ＡＮＤ２から出力された信号は、ラッチ６の入力端子ＬＧに入力される。ラッチ６の入力端子ＬＤには、ラッチ５の出力端子ＬＱから出力された信号が入力される。ラッチ６の出力端子ＬＱから出力された信号は、ＳＯＴ１４として出力される。
【００３５】
ここで、ラッチ５はネガティブ型ラッチである。つまり、入力端子ＬＧに入力された信号がＬｏｗレベルのとき、入力端子ＬＤに入力された信号が出力端子ＬＱに伝搬して出力される。また、入力端子ＬＧに入力された信号がＨｉｇｈレベルのとき、出力端子ＬＱは直前の信号状態を保持する。
【００３６】
一方、ラッチ６はポジティブ型ラッチである。つまり、入力端子ＬＧに入力された信号がＨｉｇｈレベルのとき、入力端子ＬＤに入力された信号が出力端子ＬＱに伝搬して出力される。また、入力端子ＬＧに入力された信号がＬｏｗレベルのとき、出力端子ＬＱは直前の信号状態を保持する。
【００３７】
図３及び図４に、本発明のクロックゲーティング回路１のタイミングチャートを示す。図３は第１のモード、図４は第２のモードのタイミングチャートを示している。
【００３８】
まず、図３を用いて、第１のモードの動作について説明する。第１のモードでは、ＴＥＮ９＝１の状態に保持される。そのため、ＯＲ３の出力端子からは、ラッチ５の出力端子ＬＱから出力された信号状態に関係なく"１"が出力される。つまり、ＡＮＤ４の一方の入力端子には常に"１"が入力される。したがって、ＡＮＤ４の他方の入力端子に入力されたＣＬＫ１２が、ＡＮＤ４の出力端子に伝搬して出力される。すなわち、ＣＬＫ１２の伝搬信号がＧＣＬＫ１３として出力される。
【００３９】
また、ラッチ６の入力端子ＬＤにはラッチ５の出力端子ＬＱが入力される。そして、前記に示したラッチ６の動作を経て、出力端子ＬＱから信号が出力される。このとき、ＡＮＤ２の一方の入力端子には常に"１"が入力される。そのため、ＡＮＤ２の他方の入力端子に入力されたＣＬＫ１２が、ＡＮＤ２の出力端子に伝搬して出力される。つまり、ラッチ６の入力端子ＬＧには、ＣＬＫ１２の伝搬信号が入力される。
【００４０】
図３に示すタイミングチャートでは、動作初期にＳＭＣ８＝０の状態を示し、セレクタ７の出力信号にＣＥＮ１０が選択されている。動作中期にＳＭＣ８＝１の状態を示し、セレクタ７の出力信号にＳＩＮ１１が選択されている。動作終期に再度ＳＭＣ８＝０の状態を示し、セレクタ７の出力信号にＣＥＮ１０が選択されている。セレクタ７から出力された信号は、ラッチ５の入力端子ＬＤに入力される。そして、前記に示したラッチ５の動作を経て出力端子ＬＱから信号が出力されている。
【００４１】
また、ＣＬＫ１２の伝搬信号がＧＣＬＫ１３として出力されている。これは、第１のモードでは、ＧＣＬＫ１３に接続された回路に常にクロック信号を供給するためである。なお、図３のタイミングチャートで示す網掛けの部分は、不定値を表しており以下の説明においても同様である。
【００４２】
前記のように、第１のモードでは、ラッチ６の入力端子ＬＧにＣＬＫ１２の伝搬信号が入力される。したがって、ラッチ５とラッチ６がＣＬＫ１２に同期して動作している。このような回路構成を採用することによって、ラッチ５の入力端子ＬＤに入力される信号をＣＬＫ１２の立ち上がりで検出し、ラッチ６の出力端子ＬＱから出力することを可能にしている。すなわち、ＳＯＴ１４の出力信号を観測することにより、ラッチ５の出力端子ＬＱから出力される信号の故障検出を可能にしている。
【００４３】
次に図４に示すタイミングチャートを用いて、第２のモードの動作について説明する。第２のモードでは、ＴＥＮ９＝０、ＳＭＣ８＝０の状態に保持される。そのため、ラッチ５の入力端子ＬＤには常にＣＥＮ１０の伝搬信号が入力される。また、ＡＮＤ４の一方の入力端子には、ラッチ５の出力端子ＬＱから出力された信号が伝搬して入力される。そして、ＡＮＤ４の他方の入力端子にはＣＬＫ１２が入力される。つまり、グリッチ処理されたスキャンイネーブル信号がＣＬＫ１２の伝搬を制御している。そして、その制御された信号がＧＣＬＫ１３として出力されている。
【００４４】
また、ＴＥＮ９＝０なので、ＡＮＤ２の一方の入力端子には常に"０"が入力される。そのため、ＡＮＤ２の出力端子からは、ＡＮＤ２の他方の入力端子に入力される信号状態に関係なく"０"が出力される。つまり、ラッチ６の入力端子ＬＤには、"０"が入力される。第２のモードでは、ＳＯＴ１４の出力結果を使用しないので、ラッチ６の入力端子ＬＧに入力するクロック信号の供給を停止している。
【００４５】
図４に示すタイミングチャートでは、動作初期においてＣＥＮ１０＝１の状態を示し、動作中期以降はＣＥＮ１０＝０の状態を示している。ＣＥＮ１０＝１のときは、ＧＣＬＫ１３に対してクロック信号を供給している。一方、ＣＥＮ１０＝０のときは、ＧＣＬＫ１３に対してクロック信号の供給を停止している。つまり、クロックゲーティング回路１は、第１のモードにおいて、一般的なクロックゲーティング回路の動作を行っている。
【００４６】
このように、図２に示す回路は、ＣＬＫ１２に同期したラッチ５とラッチ６を構成することにより、スキャン試験のためのスキャンパスを形成し、ラッチ５の出力端子ＬＱから出力される信号の故障検出を可能にしている。つまり、従来技術よりも簡単な回路構成でクロックゲーティング回路の故障検出を可能にしている。また、回路構成が複雑でスキャン試験にかかる検証工数が増大するという従来技術の問題も解決することもできる。
【００４７】
また、図２に示す回路では、ＯＲ３の出力をＴＥＮ１０で制御することにより、故障検出時において、常にＧＣＬＫ１３からクロック信号を供給させている。そのことにより、ＧＣＬＫ１３に接続された回路に対するスキャン試験を容易にしている。さらに、図２に示す回路では、ＣＥＮ１０とＳＩＮ１１をセレクタ７で選択的に供給させている。そのことにより、スキャン試験時に必要な信号を任意に供給することを可能にしている。また、図２に示す回路では、ＡＮＤ２の出力をＴＥＮ１０で制御することにより、故障検出を実行しない場合は、ラッチ６に対してクロック信号の供給を停止している。そのことにより、消費電力の削減を可能にしている。
【００４８】
さらに、図２に示す回路のレイアウト設計を行う場合、従来技術と比較して各セルの配置に余裕ができるため、タイミング調整が容易である。
【００４９】
発明の実施の形態３
発明の実施の形態２では、スキャン入力信号を有する回路構成の例を示した。しかし、そのような対応が不要な回路構成でも応用可能である。まず、図５を用いて、本発明の実施の形態３にかかるクロックゲーティング回路の構成について説明する。図５に示すクロックゲーティング回路１は、２個のラッチ５、６のほか、２個のＡＮＤ２、４、ＯＲ３、及びセレクタ７で構成されており、クロックゲーティング機能を有する。
【００５０】
ＣＥＮ１０の端子はラッチ５の入力端子ＬＤに接続されている。ラッチ５の出力端子ＬＱは、ＯＲ３の一方の入力端子、及びラッチ６の入力端子ＬＤに接続されている。ＯＲ３の他方の入力端子、及びＡＮＤ２の一方の入力端子には、ＴＥＮ９の端子が接続されている。
【００５１】
ＡＮＤ２の他方の入力端子、ラッチ５の入力端子ＬＧ、及びＡＮＤ４の一方の入力端子にはＣＬＫ１２の端子が接続されている。ＡＮＤ４の他方の入力端子には、ＯＲ３の出力端子が接続されている。ＡＮＤ４の出力端子は、ＧＣＬＫ１３の端子に接続されている。ＡＮＤ２の出力端子は、ラッチ６の入力端子ＬＧに接続されている。ラッチ６の出力端子ＬＱはＳＯＴ１４の端子に接続されている。
【００５２】
次に、図５を用いて、本発明の実施の形態２にかかるクロックゲーティング回路の動作について説明する。なお、図５の回路では、ＴＥＮ９＝１のとき、スキャン試験を実行する第１のモードを示している。また、ＴＥＮ９＝０のとき、通常動作を行う第２のモードを示している。
【００５３】
ＣＥＮ１０がラッチ５の入力端子ＬＤに入力される。ラッチ５の入力端子ＬＧには、ＣＬＫ１２が入力される。ラッチ５の出力端子ＬＱから出力された信号は、ＯＲ３の一方の入力端子に入力される。ＯＲ３の他方の入力端子にはＴＥＮ９が入力される。ＯＲ３から出力された信号はＡＮＤ４の一方の入力端子に入力される。ＡＮＤ４の他方の入力端子には、ＣＬＫ１２が入力される。ＡＮＤ４から出力された信号は、ＧＣＬＫ１３として出力される。
【００５４】
ＡＮＤ２の一方の入力端子には、ＣＬＫ１２が入力される。ＡＮＤ２の他方の入力端子には、ＴＥＮ９が入力される。ＡＮＤ２から出力された信号は、ラッチ６の入力端子ＬＧに入力される。ラッチ６の入力端子ＬＤには、ラッチ５の出力端子ＬＱから出力された信号が入力される。ラッチ６の出力端子ＬＱから出力された信号は、ＳＯＴ１４として出力される。
【００５５】
ここで、ラッチ５はネガティブ型ラッチである。つまり、入力端子ＬＧに入力された信号がＬｏｗレベルのとき、入力端子ＬＤに入力された信号が出力端子ＬＱに伝搬して出力される。また、入力端子ＬＧに入力された信号がＨｉｇｈレベルのとき、出力端子ＬＱは直前の信号状態を保持する。
【００５６】
一方、ラッチ６はポジティブ型ラッチである。つまり、入力端子ＬＧに入力された信号がＨｉｇｈレベルのとき、入力端子ＬＤに入力された信号が出力端子ＬＱに伝搬して出力される。また、入力端子ＬＧに入力された信号がＬｏｗレベルのとき、出力端子ＬＱは直前の信号状態を保持する。
【００５７】
図５に示すように、スキャン入力信号が不要な場合は、それに関連する制御信号も不要となるため回路構成が非常に簡単になる。
【００５８】
なお、実施の形態１〜３では、ＧＣＬＫ１３に対してクロック信号の供給を停止している間、ＧＣＬＫ１３の出力信号がＬｏｗレベルに固定される回路構成の例を示している。しかし、ＧＣＬＫ１３に対してクロック信号の供給を停止している間、ＧＣＬＫ１３の出力信号がＨｉｇｈレベルに固定される回路構成でも同様の効果を得られることは明らかである。
【００５９】
発明の実施の形態４
さらに、実施の形態１〜３における、本発明のクロックゲーティング回路を、予めマクロセルとして準備しておけば、設計の任意の場面で利用することが可能である。本発明の実施の形態４では、本発明のクロックゲーティング回路を、予めマクロセルとして準備することの利点について説明する。
【００６０】
近年のレイアウト設計は、一般的に自動レイアウト設計ツールによって行われる。例えば、図６に示す従来技術の回路では、フリップフロップ１１１、１１３及び１４７のそれぞれに入力されるクロック信号は、ほとんどの場合、自動レイアウト設計ツールによって相互にタイミング調整が自動的に実行される。
【００６１】
しかし、本来フリップフロップ１４７は、主としてラッチ１３１の出力信号を故障検出するために設けられたものであるから、フリップフロップ１４７に入力されるクロック信号は、ラッチ１３１の入力端子ＬＧに入力されるクロック信号とタイミング調整する必要があるが、他のフリップフロップに入力されるクロック信号とタイミング調整する必要はない。
【００６２】
したがって、自動レイアウト設計ツールを使用してレイアウト設計を行う場合、フリップフロップ１４７に入力されるクロック信号を、他のフリップフロップに入力されるクロック信号とタイミング調整しないように設定する作業が余分に発生する。さらに、フリップフロップ１４７に入力されるクロック信号を、ラッチ１３１の入力端子ＬＧに入力されるクロック信号とタイミング調整する作業も余分に発生する。
【００６３】
さらに、ラッチ１３１とフリップフロップ１４７との間で動作タイミングを満たすためには、配線遅延をできるだけ小さくする必要がある。したがって、レイアウト設計時に、クロックゲーティング回路１３０とクロックイネーブル観測回路１４０を近傍に配置する必要がある。しかし、図６に示す回路では、１個のクロックイネーブル観測回路１４０に複数のクロックゲーティング回路を接続可能にしている。そのため、すべてのクロックゲーティング回路の近傍にクロックイネーブル観測回路１４０を配置することは極めて困難である。
【００６４】
上述のような問題は、本発明のクロックゲーティング回路を予めマクロセルとして準備しておくことにより解決することができる。例えば、図１に示す回路の場合、ラッチ５、６はマクロセルとして構成されるため、他のフリップフロップとのタイミング調整は実行されない。したがって、図６に示す従来技術のように、フリップフロップ１４７をタイミング調整の対象外とするような余分な作業は発生しない。また、ラッチ５、６をお互いに近傍配置したマクロセルを準備しておくことにより、ラッチ５、６に入力されるクロック信号の遅延差が小さくなり、余分なタイミング調整が不要になる。
【００６５】
このように、実施の形態１〜３における、本発明のクロックゲーティング回路をマクロセルとして準備しておくことにより、タイミングを考慮した設計が容易になり、開発工数の増大を防止することができる。
【図面の簡単な説明】
【００６６】
【図１】本発明による実施の形態１のクロックゲーティング回路である。
【図２】本発明による実施の形態２のクロックゲーティング回路である。
【図３】本発明による実施の形態２のクロックゲーティング回路のタイミングチャート(第１のモード)である。
【図４】本発明による実施の形態２のクロックゲーティング回路のタイミングチャート(第２のモード)である。
【図５】本発明による実施の形態３のクロックゲーティング回路である。
【図６】スキャン設計を考慮した一般的なクロックゲーティング回路である。
【図７】従来技術のスキャン設計技術を用いたクロックゲーティング回路である。
【符号の説明】
【００６７】
１：本発明のクロックゲーティング回路
２、４、１０３、１３３、１４６：ＡＮＤ
３、１０２、１３２：ＯＲ
５、６、１０４、１３１：ラッチ
７：セレクタ回路
８：ＳＭＣ（スキャンモードコントロール信号）
９、１０５、１１８：ＴＥＮ（テストイネーブル信号）
１０、１０６：ＣＥＮ（クロックイネーブル信号）
１１：ＳＩＮ（スキャン入力信号）
１２、１０７、１１４：ＣＬＫ（クロック信号）
１３、１０８、１１５：ＧＣＬＫ（ゲーテッドクロック信号）
１４、１２２：ＳＯＴ（スキャン出力信号）
１００：従来技術のクロックゲーティング回路
１１１、１１３：フリップフロップ
１１２：コントロールロジック
１１６：データ出力
１１７：データ入力
１１９：ＥＮＬａ(信号)
１２０：ＥＮＬｂ(信号)
１２１：ＥＮＬｃ（信号）
１３０：クロックゲーティング回路
１４０：クロックイネーブル観測回路
１４１、１４２、１４３：ＮＡＮＤ
１４４、１４５：ＥＸＯＲ
１４７：クロックイネーブル観測フリップフロップ
【図１】
2010045483.tif 000003
【図２】
2010045483.tif 000004
【図３】
2010045483.tif 000005
【図４】
2010045483.tif 000006
【図５】
2010045483.tif 000007
【図６】
2010045483.tif 000008
【図７】
2010045483.tif 000009