次に本発明の実施の形態について図面を参照して詳細に説明する。
図1は、本発明の実施の形態における半導体集積回路100の一例を示す図である。この半導体集積回路100は、nビット(nは1以上の整数)の入力データを入力端子IN0〜INn−1から供給され、nビットの出力データを出力端子OUT0〜OUTn−1から出力する半導体集積回路である。この半導体集積回路100は、同期動作するためのクロックをクロック端子CKから供給される。また、この半導体集積回路100は、クロックの供給を有効にするためのイネーブル信号をイネーブル端子ENから供給される。なお、この例では入力および出力ともにnビットとしているが、両者は異なるビット数であってもよい。
半導体集積回路100は、少なくとも1段のnビットのダブルエッジトリガフリップフロップ110を備える。このダブルエッジトリガフリップフロップ110は、自身に入力されるクロックの立上りエッジ(rise edge)および立下りエッジ(fall edge)の両エッジをトリガとして、自身に入力されるデータを保持するフリップフロップである。なお、この例ではダブルエッジトリガフリップフロップ110のビット数を入力および出力に合わせてnビットとしているが、これはnビット以外であってもよい。
第1段目のダブルエッジトリガフリップフロップ110の入力側には、入力端子IN0〜INn−1が接続される。これにより、第1段目のダブルエッジトリガフリップフロップ110は、外部からの入力データを保持する。
ダブルエッジトリガフリップフロップ110の出力側には、組合せ回路120が接続され得る。この組合せ回路120の出力側にさらにnビットのダブルエッジトリガフリップフロップ110を接続することにより、多段パイプラインを構成することができる。
最終段のダブルエッジトリガフリップフロップ110の出力側には、出力データを出力する出力端子OUT0〜OUTn−1が接続される。これにより、最終段のダブルエッジトリガフリップフロップ110に保持されたデータが外部に出力される。
また、半導体集積回路100は、さらにクロックイネーブラ200を備える。このクロックイネーブラ200は、ダブルエッジトリガ動作のためのクロックイネーブラであり、クロックをダブルエッジトリガフリップフロップ110に分配するか否かを制御するものである。このクロックイネーブラ200には、イネーブル信号がイネーブル端子ENから供給される。クロックイネーブラ200は、イネーブル信号が「有効」に設定されるとダブルエッジトリガフリップフロップ110にクロックを分配し、イネーブル信号が「無効」に設定されると分配を停止する。クロックを動作させる必要がない期間にはイネーブル信号を「無効」に設定しておくことにより、不要なクロックの分配を抑止して消費電力の低減を図ることができる。このクロックイネーブラ200は、バッファ180を介してダブルエッジトリガフリップフロップ110のクロック端子にクロックを供給する。
バッファ180は、回路の電気特性に応じて適宜設けられるものであり、必要に応じてクロックイネーブラ200の前にも設けられ得る。
図2は、半導体集積回路100におけるダブルエッジトリガフリップフロップ110の一構成例を示す図である。このダブルエッジトリガフリップフロップ110は、入力データを入力端子から供給され、出力端子に出力データを出力するフリップフロップである。このダブルエッジトリガフリップフロップ110は、クロックイネーブラ200からのクロックをクロック端子において供給され、このクロックの立上りエッジおよび立下りエッジの両エッジをトリガとして入力データを保持する。
クロック端子には、インバータ301および302が直列に接続される。インバータ301は反転のクロック信号を分配し、インバータ302は正転のクロック信号を分配する。
入力端子にはインバータ303が接続される。このインバータ303は入力データの反転信号を供給する。一方、出力端子にはインバータ331および332が直列に接続される。インバータ331および332は出力バッファとして設けられるものであり、論理的には特別な処理が施されるわけではない。
ダブルエッジトリガフリップフロップ110には、2つの保持要素が存在する。その1つは、トランスミッションゲート311および314と、クロックドインバータ312と、インバータ313とから構成される。他の1つは、トランスミッションゲート321および324と、クロックドインバータ322と、インバータ323とから構成される。
トランスミッションゲート311は、インバータ303からの信号(入力データの反転信号)を出力側に通すか否かを制御するものである。このトランスミッションゲート311は、クロックが論理L(Low)であればインバータ303からの信号を通し、クロックが論理H(High)であれば出力をハイインピーダンスとする。
クロックドインバータ312は、インバータ313の出力を反転してインバータ313の入力側に戻すか否かを制御するものである。このクロックドインバータ312は、クロックが論理Hであればインバータ313の出力を反転してインバータ313の入力側に戻し、クロックが論理Lであれば出力をハイインピーダンスとする。
インバータ313は、トランスミッションゲート311またはクロックドインバータ312の出力を反転するインバータである。インバータ313の入力側にはトランスミッションゲート311およびクロックドインバータ312の出力がワイヤードオア(wired OR)の状態で接続されており、クロックが論理Lであればトランスミッションゲート311の出力が接続し、クロックが論理Hであればクロックドインバータ312の出力が接続される。
トランスミッションゲート314は、インバータ313からの信号を出力側に通すか否かを制御するものである。このトランスミッションゲート314は、クロックが論理Hであればインバータ313からの信号を通し、クロックが論理Lであれば出力をハイインピーダンスとする。
したがって、クロックが論理Lの期間にはインバータ303からの信号(入力データの反転信号)の反転信号(すなわち、入力データの正転信号)がインバータ313の出力まで到達する。一方、クロックが論理Hの期間にはインバータ303からの信号は入力されなくなり、その直前にインバータ313の出力に到達していた信号がクロックの立上りエッジをトリガとしてクロックドインバータ312およびインバータ313のループに保持され、トランスミッションゲート314から出力される。
トランスミッションゲート321、324およびクロックドインバータ322についても同様に動作するが、クロックの周期は反対になる。すなわち、クロックが論理Hの期間にはインバータ303からの信号(入力データの反転信号)の反転信号(すなわち、入力データの正転信号)がインバータ323の出力まで到達する。一方、クロックが論理Lの期間にはインバータ303からの信号は入力されなくなり、その直前にインバータ323の出力に到達していた信号がクロックの立下りエッジをトリガとしてクロックドインバータ322およびインバータ323のループに保持され、トランスミッションゲート324から出力される。
インバータ331の入力側にはトランスミッションゲート314および324の出力がワイヤードオアの状態で接続されており、クロックが論理Lであればトランスミッションゲート324の出力が接続し、クロックが論理Hであればトランスミッションゲート314の出力が接続される。これにより、ダブルエッジトリガフリップフロップ110は、クロックの立上りエッジおよび立下りエッジの両エッジをトリガとして入力データを保持する。
図3は、半導体集積回路100におけるクロックイネーブラ200の第1の動作タイミング例を示す図である。このクロックイネーブラ200には、クロック端子CKにクロック(システムクロック)が供給され、イネーブル端子ENにイネーブル信号が供給される。そして、イネーブル信号が無効状態(論理L)から有効状態(論理H)に遷移すると、クロックイネーブラ200は、その直後のクロック信号の変化をトリガとして、出力端子Xに有効クロックを出力するようになる。この場合のクロック信号の変化には、立上りエッジおよび立下りエッジの両者が含まれる。
例えば、クロックが論理Lの状態でイネーブル信号が無効状態から有効状態に遷移した場合には、クロックの立上りエッジに同期して有効クロックの出力が開始する(ケース1)。一方、クロックが論理Hの状態でイネーブル信号が無効状態から有効状態に遷移した場合には、クロックの立下りエッジに同期して有効クロックの出力が開始する(ケース2)。
また、イネーブル信号が無効状態にある間は、出力端子Xの出力は論理Lまたは論理Hの何れかの状態になっている。これは、それ以前に出力されていた有効クロックの停止したタイミングに左右される。例えば、出力端子Xの出力が論理Lで停止していた場合には(L停止)、イネーブル信号が有効状態に遷移するとその直後のクロック信号の変化をトリガとして、出力端子Xの出力は論理Lから論理Hに変化し、以降はクロック信号の変化に同期して論理Hおよび論理Lが繰り返し出力される。一方、出力端子Xの出力が論理Hで停止していた場合には(H停止)、イネーブル信号が有効状態に遷移するとその直後のクロック信号の変化をトリガとして、出力端子Xの出力は論理Hから論理Lに変化し、以降はクロック信号の変化に同期して論理Lおよび論理Hが繰り返し出力される。したがって、立上りエッジおよび立下りエッジのタイミングが合ってさえいれば、クロック端子CKのクロックと出力端子Xの有効クロックとの間で位相が180度ずれていても問題とはならない。
図4は、半導体集積回路100におけるクロックイネーブラ200の第2の動作タイミング例を示す図である。イネーブル信号が有効状態(論理H)から無効状態(論理L)に遷移すると、クロックイネーブラ200は、その直後に出力端子Xの有効クロックを停止させる。
例えば、クロックが論理Hの状態でイネーブル信号が有効状態から無効状態に遷移した場合には、イネーブル信号の立下りエッジに同期して有効クロックの出力が停止する(ケース1)。一方、クロックが論理Lの状態でイネーブル信号が有効状態から無効状態に遷移した場合には、イネーブル信号の立下りエッジに同期して有効クロックの出力が停止する(ケース2)。
この停止のタイミングによって、出力端子Xの出力は論理Hで停止した状態(H停止)か、論理Lで停止した状態(L停止)となる。
なお、上述のように、立上りエッジおよび立下りエッジのタイミングが合ってさえいれば、クロック端子CKのクロックと出力端子Xの有効クロックとの間で位相が180度ずれていても問題とはならない。
図5は、半導体集積回路100におけるクロックイネーブラ200の一構成例を示す図である。このクロックイネーブラ200は、インバータ210と、選択器220と、排他的論理和(XOR)ゲート230と、ラッチ240と、否定論理和(NOR)ゲート250と、インバータ260と、ラッチ270と、バッファ280とを備えている。
インバータ210は、クロック端子CKから供給されたクロック(システムクロック)の反転信号を出力するものである。選択器220は、クロック端子CKから供給されたクロックまたはインバータ210によって反転された反転クロックの何れか一方をクロック候補信号として選択するものである。この選択器220における選択に用いられる選択信号はラッチ240から供給される。
排他的論理和ゲート230は、クロック端子CKから供給されたクロックとラッチ270の出力との間の排他的論理和を生成するものである。排他的論理和とは、不一致を検出する論理演算である。したがって、クロック端子CKから供給されたクロックとラッチ270の出力とが一致していれば排他的論理和ゲート230の出力は論理Lになり、クロック端子CKから供給されたクロックとラッチ270の出力とが一致していなければ排他的論理和ゲート230の出力は論理Hになる。
否定論理和ゲート250は、イネーブル端子ENから供給されたイネーブル信号とテスト端子Tから供給されたスキャンテストイネーブル信号との間の否定論理和を生成するものである。否定論理和とは、論理和の否定論理を生成する論理演算である。ここで、通常動作時にはテスト端子Tは論理Lに固定されることを前提とすると、否定論理和ゲート250はイネーブル信号の反転信号を出力することになる。
ラッチ240は、否定論理和ゲート250の出力をゲート信号として、排他的論理和ゲート230の出力を保持またはスルーした上で選択信号CSとして選択器220に供給するものである。このラッチ240は、イネーブル信号が論理L(無効状態)であれば排他的論理和ゲート230の出力をそのまま選択信号として出力する(スルー)。また、ラッチ240は、イネーブル信号が論理L(無効状態)から論理H(有効状態)に遷移すると、遷移の直前の排他的論理和ゲート230の出力を保持して、再びイネーブル信号が論理L(無効状態)に遷移するまでの間は、その保持した値を選択信号として出力する。
このラッチ240から出力された選択信号は選択器220に供給される。選択器220は、選択信号が論理Lであればクロック端子CKから供給されたクロックを選択し、選択信号が論理Hであればインバータ210によって反転された反転クロックを選択する。すなわち、クロック端子CKから供給されたクロックとラッチ270の出力とが一致していればクロックが出力され、クロック端子CKから供給されたクロックとラッチ270の出力とが一致していなければ反転クロックが出力される。但し、上述のラッチ240の保持機能により、イネーブル信号が論理H(有効状態)である間は、選択信号は変化しない。
インバータ260は、否定論理和ゲート250の出力の反転信号を出力するものである。否定論理和ゲート250の出力はクロック端子CKから供給されたクロックの反転信号であるため、結果としてこのインバータ260はクロックの正転信号を出力する。
ラッチ270は、インバータ260の出力をゲート信号として、選択器220の出力を保持またはスルーした上で信号XHとして出力するものである。このラッチ270は、イネーブル信号が論理H(有効状態)であれば選択器220の出力をそのまま出力する(スルー)。また、ラッチ270は、イネーブル信号が論理H(有効状態)から論理L(無効状態)に遷移すると、遷移の直前の選択器220の出力を保持して、再びイネーブル信号が論理H(有効状態)に遷移するまでの間は、その保持した値を選択信号として出力する。
このラッチ270の保持機能により、イネーブル信号が論理L(無効状態)である間は信号XHが変化しないため、選択器220に供給される選択信号CSは、クロック端子CKから供給されたクロックの変化に応じて、変化することになる。これにより、信号XHとクロックの同期合わせが実現される。例えば、信号XHが論理Lの場合、クロックが論理Lであれば選択器220においてクロックの正転信号が選択され、クロックが論理Hであれば選択器220においてクロックの反転信号が選択される。
その後、イネーブル信号が論理H(有効状態)に遷移すると、選択器220に供給される選択信号CSは、その遷移の直前のクロックの状態に応じた値を保持した状態となり、これに応じてクロックの正転信号または反転信号が選択される。これにより、信号XHはクロックと同じレベルに同期され、この信号レベルを再起点として有効クロックを出力することになる。
バッファ280は、ラッチ270の出力信号XHを出力端子Xに有効クロックとして出力するものである。このバッファ280は、回路の電気特性に応じて適宜設けられるものであり、論理信号に対する処理を行わない。
図6は、半導体集積回路100におけるクロックイネーブラ200の真理値表の第1の例を示す図である。この真理値表は、イネーブル信号が論理L(無効状態)から論理H(有効状態)に遷移する際の、排他的論理和ゲート230に着目した関係を示している。
イネーブル信号が論理L(無効状態)の状態で、クロック端子CKから供給されたクロックとラッチ270の出力信号XHとが一致していれば選択信号CSは論理Lになり、一致していなければ選択信号CSは論理Hになる。選択信号CSが論理Lであれば選択器220においてクロックの正転信号が選択され、選択信号CSが論理Hであれば選択器220においてクロックの反転信号(CKb)が選択される。
そして、イネーブル信号が論理H(有効状態)に遷移すると、選択器220において選択されたクロックの正転信号または反転信号が、ラッチ270の出力信号XHとして出力されるようになる。
図7は、半導体集積回路100におけるクロックイネーブラ200の真理値表の第2の例を示す図である。この真理値表は、イネーブル信号が論理H(有効状態)から論理L(無効状態)に遷移する際の、バッファ280に着目した関係を示している。上述の通り、バッファ280は論理信号に対する処理を行わないため、出力端子Xの値はクロックの値にかかわらず出力信号XHと一致する。
図8は、半導体集積回路100におけるクロックイネーブラ200の真理値表の第3の例を示す図である。この真理値表は、選択器220およびラッチ270に着目した関係を示している。
イネーブル信号が論理H(有効状態)の場合、選択信号CSが論理Lであれば選択器220においてクロックの正転信号が選択され、ラッチ270およびバッファ280を介して出力端子Xにクロックの正転信号が出力される。また、この場合、選択信号CSが論理Hであれば選択器220においてクロックの反転信号が選択され、ラッチ270およびバッファ280を介して出力端子Xにクロックの反転信号が出力される。
一方、イネーブル信号が論理L(無効状態)の場合、選択信号CSにかかわらずラッチ270の値は変化しなくなり、有効クロックの出力は停止する。
このように、図5に示したクロックイネーブラ200は、図3および4に示したダブルエッジトリガ動作のためのクロックイネーブラの動作仕様を満たすことが分かる。
図9は、半導体集積回路100におけるクロックイネーブラ200のゲートレベルの第1の実施例を示す図である。このクロックイネーブラ200は、インバータ211および212と、クロックドインバータ221および222と、クロックドインバータ231および232と、トランスミッションゲート241と、クロックドインバータ242と、インバータ243と、否定論理和ゲート251と、インバータ261と、トランスミッションゲート271と、クロックドインバータ272と、インバータ273と、バッファ281とを備えている。
インバータ211は、インバータ210に相当するものであり、クロック端子CKから供給されたクロックの反転信号を出力する。また、インバータ212は、クロック端子CKから供給されたクロックの正転信号を出力するものである。
クロックドインバータ221および222は、選択器220に相当するものであり、クロックの正転信号または反転信号の何れか一方を選択するものである。但し、クロックドインバータ221および222から出力される信号CKsの論理レベルは、選択器220の出力とは反転している。
クロックドインバータ231および232は、排他的論理和ゲート230に相当するものであり、クロック端子CKから供給されたクロックとラッチ270の出力との間の排他的論理和を生成する。但し、クロックドインバータ231および232から出力される信号STの論理レベルは、排他的論理和ゲート230とは反転している。したがって、正確には、クロックドインバータ231および232は排他的論理和の否定(XNOR)を生成することになる。
トランスミッションゲート241、クロックドインバータ242およびインバータ243は、ラッチ240に相当するものであり、否定論理和ゲート251の出力をゲート信号として、クロックドインバータ231および232から出力される信号STを反転させて保持またはスルーした上で、選択信号CSとしてクロックドインバータ221および222に供給する。
否定論理和ゲート251は、否定論理和ゲート250に相当するものであり、イネーブル端子ENから供給されたイネーブル信号とテスト端子Tから供給されたスキャンテストイネーブル信号との間の否定論理和を生成するものである。なお、上述のように、通常動作時にはテスト端子Tは論理Lに固定されることを前提とすると、否定論理和ゲート251はイネーブル信号の反転信号を出力することになる。
インバータ261は、インバータ260に相当するものであり、否定論理和ゲート251の出力の反転信号、すなわちクロックの正転信号を出力する。
トランスミッションゲート271、クロックドインバータ272およびインバータ273は、ラッチ270に相当するものであり、インバータ261の出力をゲート信号として、クロックドインバータ221および222から出力される信号CKsを反転させて保持またはスルーした上で、出力信号Xhdとしてバッファ281に供給する。なお、出力信号Xhdは、ラッチ270の出力信号XHと同じである。
バッファ281は、バッファ280に相当するものであり、出力信号Xhdを出力端子Xに出力するものである。
図10乃至17は、半導体集積回路100におけるクロックイネーブラ200のゲートレベルの第1の実施例による動作波形例を示す図である。
図10は、選択信号CSが論理Lの状態において、クロックが論理Lのタイミングでイネーブル信号が有効状態から無効状態に遷移し、クロックが論理Lのタイミングでイネーブル信号が無効状態から有効状態に遷移した場合の動作波形例を示す図である。
この例では、クロック端子CKのクロックと出力端子Xの有効クロックの位相が合致しており、論理Lで停止した有効クロックが再びクロックと同期して出力される様子を示している。
図11は、選択信号CSが論理Hの状態において、クロックが論理Lのタイミングでイネーブル信号が有効状態から無効状態に遷移し、クロックが論理Lのタイミングでイネーブル信号が無効状態から有効状態に遷移した場合の動作波形例を示す図である。
この例では、クロック端子CKのクロックと出力端子Xの有効クロックの位相が180度ずれており、論理Hで停止した有効クロックが再びクロックと同期して出力される様子を示している。
図12は、選択信号CSが論理Lの状態において、クロックが論理Lのタイミングでイネーブル信号が有効状態から無効状態に遷移し、クロックが論理Hのタイミングでイネーブル信号が無効状態から有効状態に遷移した場合の動作波形例を示す図である。
この例では、当初はクロック端子CKのクロックと出力端子Xの有効クロックの位相が合致しているが、論理Lで停止した有効クロックが再びクロックと同期して出力される際には位相が180度ずれる様子を示している。
図13は、選択信号CSが論理Hの状態において、クロックが論理Lのタイミングでイネーブル信号が有効状態から無効状態に遷移し、クロックが論理Hのタイミングでイネーブル信号が無効状態から有効状態に遷移した場合の動作波形例を示す図である。
この例では、当初はクロック端子CKのクロックと出力端子Xの有効クロックの位相が180度ずれているが、論理Hで停止した有効クロックが再びクロックと同期して出力される際には位相が合致する様子を示している。
図14は、選択信号CSが論理Lの状態において、クロックが論理Hのタイミングでイネーブル信号が有効状態から無効状態に遷移し、クロックが論理Lのタイミングでイネーブル信号が無効状態から有効状態に遷移した場合の動作波形例を示す図である。
この例では、当初はクロック端子CKのクロックと出力端子Xの有効クロックの位相が合致しているが、論理Hで停止した有効クロックが再びクロックと同期して出力される際には位相が180度ずれる様子を示している。
図15は、選択信号CSが論理Hの状態において、クロックが論理Hのタイミングでイネーブル信号が有効状態から無効状態に遷移し、クロックが論理Lのタイミングでイネーブル信号が無効状態から有効状態に遷移した場合の動作波形例を示す図である。
この例では、当初はクロック端子CKのクロックと出力端子Xの有効クロックの位相が180度ずれているが、論理Lで停止した有効クロックが再びクロックと同期して出力される際には位相が合致する様子を示している。
図16は、選択信号CSが論理Lの状態において、クロックが論理Hのタイミングでイネーブル信号が有効状態から無効状態に遷移し、クロックが論理Hのタイミングでイネーブル信号が無効状態から有効状態に遷移した場合の動作波形例を示す図である。
この例では、クロック端子CKのクロックと出力端子Xの有効クロックの位相が合致しており、論理Hで停止した有効クロックが再びクロックと同期して出力される様子を示している。
図17は、選択信号CSが論理Hの状態において、クロックが論理Hのタイミングでイネーブル信号が有効状態から無効状態に遷移し、クロックが論理Hのタイミングでイネーブル信号が無効状態から有効状態に遷移した場合の動作波形例を示す図である。
この例では、クロック端子CKのクロックと出力端子Xの有効クロックの位相が180度ずれており、論理Lで停止した有効クロックが再びクロックと同期して出力される様子を示している。
これらの動作波形例から、図9に示したクロックイネーブラ200の第1の実施例は、図3および4に示したダブルエッジトリガ動作のためのクロックイネーブラの動作仕様を満たすことが分かる。
図18は、半導体集積回路100におけるクロックイネーブラ200のゲートレベルの第2の実施例を示す図である。ここでは、第1の実施例におけるクロックドインバータ231および232に代えて、トランスミッションゲート233、PMOSトランジスタ234およびNMOSトランジスタ235を備えている。これは、低消費電力化を目的としたものである。
図19は、半導体集積回路100におけるクロックイネーブラ200のゲートレベルの第3の実施例を示す図である。ここでは、第2の実施例におけるトランスミッションゲート241に代えて、クロックドインバータ244を備えている。これは、イネーブル信号のセットアップを改善して、高速動作を行うことを目的としたものである。なお、クロックドインバータ244に入力される信号は、第2の実施例におけるトランスミッションゲート241の入力信号STとは反転した信号になっている。
図20は、半導体集積回路100におけるクロックイネーブラ200のゲートレベルの第4の実施例を示す図である。ここでは、第2の実施例におけるクロックドインバータ221および222に代えてトランスミッションゲート223および224を備え、第2の実施例におけるトランスミッションゲート271に代えてクロックドインバータ274を備えている。これは、低消費電力化を目的としたものである。なお、クロックドインバータ274に入力される信号は、第2の実施例におけるトランスミッションゲート271の入力信号CKsとは反転した信号になっている。
図21は、半導体集積回路100におけるクロックイネーブラ200のゲートレベルの第5の実施例を示す図である。ここでは、第4の実施例におけるトランスミッションゲート241に代えてクロックドインバータ244を備えている。これは、イネーブル信号のセットアップを改善して、高速動作を行うことを目的としたものである。なお、クロックドインバータ244に入力される信号は、第4の実施例におけるトランスミッションゲート241の入力信号STとは反転した信号になっている。
図22は、半導体集積回路100におけるクロックイネーブラ200のゲートレベルの第6の実施例を示す図である。ここでは、第1の実施例におけるクロックドインバータ231および232に代えて、トランスミッションゲート233、PMOSトランジスタ234およびNMOSトランジスタ235を備え、さらに、第1の実施例におけるクロックドインバータ221および222に代えて、トランスミッションゲート225、PMOSトランジスタ226およびNMOSトランジスタ227を備えている。これは、低消費電力化を目的としたものである。
図23は、半導体集積回路100におけるクロックイネーブラ200のゲートレベルの第7の実施例を示す図である。ここでは、第6の実施例におけるトランスミッションゲート241に代えてクロックドインバータ244を備えている。これは、イネーブル信号のセットアップを改善して、高速動作を行うことを目的としたものである。なお、クロックドインバータ244に入力される信号は、第6の実施例におけるトランスミッションゲート241の入力信号STとは反転した信号になっている。
図24は、半導体集積回路100におけるクロックイネーブラ200のゲートレベルの第8の実施例を示す図である。ここでは、第6の実施例におけるトランスミッションゲート271に代えてクロックドインバータ274を備えている。これは、イネーブル信号のセットアップを改善して、高速動作を行うことを目的としたものである。なお、クロックドインバータ274に入力される信号は、第6の実施例におけるトランスミッションゲート271の入力信号CKsとは反転した信号になっている。
図25は、半導体集積回路100におけるクロックイネーブラ200のゲートレベルの第9の実施例を示す図である。ここでは、第6の実施例におけるトランスミッションゲート241に代えてクロックドインバータ244を備え、第6の実施例におけるトランスミッションゲート271に代えてクロックドインバータ274を備えている。これは、イネーブル信号のセットアップを改善して、高速動作を行うことを目的としたものである。なお、クロックドインバータ274に入力される信号は、第6の実施例におけるトランスミッションゲート271の入力信号CKsとは反転した信号になっている。
図26は、半導体集積回路100におけるクロックイネーブラ200のゲートレベルの第10の実施例を示す図である。ここでは、第1の実施例におけるクロックドインバータ221および222に代えて、トランスミッションゲート225、PMOSトランジスタ226およびNMOSトランジスタ227を備えている。これは、低消費電力化を目的としたものである。
図27は、半導体集積回路100におけるクロックイネーブラ200のゲートレベルの第11の実施例を示す図である。ここでは、第10の実施例におけるクロックドインバータ231および232に代えてトランスミッションゲート236および237を備え、第10の実施例におけるトランスミッションゲート241に代えてクロックドインバータ244を備えている。これは、低消費電力化を目的としたものである。なお、クロックドインバータ244に入力される信号は、第10の実施例におけるトランスミッションゲート241の入力信号STとは反転した信号になっている。
図28は、半導体集積回路100におけるクロックイネーブラ200のゲートレベルの第12の実施例を示す図である。ここでは、第10の実施例におけるトランスミッションゲート241に代えてクロックドインバータ244を備えている。これは、イネーブル信号のセットアップを改善して、高速動作を行うことを目的としたものである。なお、クロックドインバータ244に入力される信号は、第10の実施例におけるトランスミッションゲート241の入力信号STとは反転した信号になっている。
図29は、半導体集積回路100におけるクロックイネーブラ200のゲートレベルの第13の実施例を示す図である。ここでは、第10の実施例におけるトランスミッションゲート271に代えてクロックドインバータ274を備えている。これは、イネーブル信号のセットアップを改善して、高速動作を行うことを目的としたものである。なお、クロックドインバータ274に入力される信号は、第10の実施例におけるトランスミッションゲート271の入力信号CKsとは反転した信号になっている。
図30は、半導体集積回路100におけるクロックイネーブラ200のゲートレベルの第14の実施例を示す図である。ここでは、第11の実施例におけるトランスミッションゲート271に代えてクロックドインバータ274を備えている。これは、イネーブル信号のセットアップを改善して、高速動作を行うことを目的としたものである。なお、クロックドインバータ274に入力される信号は、第11の実施例におけるトランスミッションゲート271の入力信号CKsとは反転した信号になっている。
図31は、半導体集積回路100におけるクロックイネーブラ200のゲートレベルの第15の実施例を示す図である。ここでは、第13の実施例におけるトランスミッションゲート241に代えてクロックドインバータ244を備えている。これは、イネーブル信号のセットアップを改善して、高速動作を行うことを目的としたものである。なお、クロックドインバータ244に入力される信号は、第13の実施例におけるトランスミッションゲート241の入力信号とは反転した信号STになっている。
これらクロックイネーブラ200の第2乃至15の実施例は、クロックイネーブラ200の第1の実施例と論理的に同等であることから、それぞれの動作も第1の実施例と基本的に同じ動作を行うことが容易に理解できる。但し、一部の内部ノードの信号は反転動作する。これにより、これら第2乃至15の実施例もダブルエッジトリガ動作のためのクロックイネーブラの動作仕様を満たすことが分かる。
このように、本発明の実施の形態によれば、クロック端子CKから供給されるクロックの正転信号および反転信号のうち、出力信号XHと位相の一致する方を選択器220により選択しておいて、イネーブル信号が有効状態に遷移する際に選択器220により選択された方を再起点としてクロック出力を再開することにより、ダブルエッジトリガ動作のためのクロックイネーブラを実現することができる。
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、以下に示すように特許請求の範囲における発明特定事項とそれぞれ対応関係を有するが、これに限定されるものではなく本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
また、請求項1において、クロック制御回路は例えばクロックイネーブラ200に対応する。また、一致検出手段は例えば排他的論理和ゲート230に対応する。また、選択信号出力手段は例えばラッチ240に対応する。また、選択手段は例えば選択器220に対応する。また、クロック信号出力手段は例えばラッチ270に対応する。
また、請求項2において、保持手段は例えばダブルエッジトリガフリップフロップ110に対応する。クロック制御回路は例えばクロックイネーブラ200に対応する。また、一致検出手段は例えば排他的論理和ゲート230に対応する。また、選択信号出力手段は例えばラッチ240に対応する。また、選択手段は例えば選択器220に対応する。また、クロック信号出力手段は例えばラッチ270に対応する。