(57)【要約】【課題】フリップフロップの切り替え時にデータ処理を停止させることなく、フリップフロップ間でデータを転送することができる半導体集積回路装置を提供する。【解決手段】本実施形態による半導体集積回路装置は、データをラッチする第１のフリップフロップと、第１のラッチ部と等価な論理機能を有し、第１のフリップフロップよりも動作速度が遅い第２のフリップフロップとを備える。転送ゲート回路は、第１のフリップフロップと第２のフリップフロップとの間に接続され、第１のフリップフロップと第２のフリップフロップとの間でデータを転送する。【選択図】図１
2014168139.tif 000002
【特許請求の範囲】
【請求項１】
データをラッチする第１のフリップフロップと、
前記第１のラッチ部と等価な論理機能を有し、前記第１のフリップフロップよりも動作速度が遅い第２のフリップフロップと、
前記第１のフリップフロップと前記第２のフリップフロップとの間に接続され、前記第１のフリップフロップと前記第２のフリップフロップとの間でデータを転送する転送ゲート回路とを備えた半導体集積回路装置。
【請求項２】
前記第１のフリップフロップ、前記第２のフリップフロップおよび前記転送ゲート回路は、それぞれ対応するように複数かつ同数設けられており、
前記複数の転送ゲート回路は、それぞれ対応する前記第１のフリップフロップと対応する前記第２のフリップフロップとの間に接続され、それぞれ対応する前記第１のフリップフロップと対応する前記第２のフリップフロップとの間でデータを並行に転送することを特徴とする請求項１に記載の半導体集積回路装置。
【請求項３】
前記第１のフリップフロップは、入力されたデータをラッチする第１のマスタラッチ回路と、前記第１のマスタラッチ回路にラッチされたデータを出力する第１のスレーブラッチ回路とを含み、
前記第２のフリップフロップは、入力されたデータをラッチする第２のマスタラッチ回路と、前記第２のマスタラッチ回路にラッチされたデータを出力する第２のスレーブラッチ回路とを含み、
前記転送ゲート回路は、前記第１のマスタラッチ回路の出力からのデータを前記第２のスレーブラッチ回路の入力へ転送し、あるいは、前記第２のマスタラッチ回路の出力からのデータを前記第１のスレーブラッチ回路へ転送することを特徴とする請求項１または請求項２に記載の半導体集積回路装置。
【請求項４】
前記第１のフリップフロップは、入力されたデータをラッチする第１のマスタラッチ回路と、前記第１のマスタラッチ回路にラッチされたデータを出力する第１のスレーブラッチ回路とを含み、
前記第２のフリップフロップは、入力されたデータをラッチする第２のマスタラッチ回路と、前記第２のマスタラッチ回路にラッチされたデータを出力する第２のスレーブラッチ回路とを含み、
前記転送ゲート回路は、前記第１のスレーブラッチ回路の入力と前記第２のスレーブラッチ回路の入力との間に接続された第３のトランジスタを含むことを特徴とする請求項１または請求項２に記載の半導体集積回路装置。
【請求項５】
前記第１のフリップフロップは、入力されたデータをラッチする第１のマスタラッチ回路と、前記第１のマスタラッチ回路にラッチされたデータを出力する第１のスレーブラッチ回路とを含み、
前記第２のフリップフロップは、入力されたデータをラッチする第２のマスタラッチ回路と、前記第２のマスタラッチ回路にラッチされたデータを出力する第２のスレーブラッチ回路とを含み、
前記転送ゲート回路は、前記第１のマスタラッチ回路と前記第２のマスタラッチ回路との間に接続された第４のトランジスタを含むことを特徴とする請求項１または請求項２に記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明による実施形態は、半導体集積回路装置に関する。
【背景技術】
【０００２】
高速トランジスタからなる高速フリップフロップと低速トランジスタからなる低速フリップフロップとの両方を備えた半導体装置がある。このような半導体装置は、動作速度に応じて高速フリップフロップと低速フリップフロップとを切り替えて動作させる。高速フリップフロップと低速フリップフロップとの間で動作を切り替える際には、半導体装置は、高速フリップフロップと低速フリップフロップとの間でデータを転送する必要がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−８７６０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
フリップフロップの切り替え時にデータ処理を停止させることなく、フリップフロップ間でデータを転送することができる半導体集積回路装置を提供する。
【課題を解決するための手段】
【０００５】
本実施形態による半導体集積回路装置は、データをラッチする第１のフリップフロップと、第１のラッチ部と等価な論理機能を有し、第１のフリップフロップよりも動作速度が遅い第２のフリップフロップとを備える。転送ゲート回路は、第１のフリップフロップと第２のフリップフロップとの間に接続され、第１のフリップフロップと第２のフリップフロップとの間でデータを転送する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態に従った半導体集積回路装置の構成の一例を示す図。
【図２】第１の実施形態に従った第１のフリップフロップＦＦ１、第２のフリップフロップＦＦ２、および、転送ゲート回路ＴＧの内部構成の一例を示す図。
【図３】スイッチ信号ＳＷ１、ＳＷ２の論理と出力部Ｑ１、Ｑ２から出力されるデータとの関係を示す表。
【図４】第１の実施形態の変形例に従った第１のフリップフロップＦＦ１、第２のフリップフロップＦＦ２、および、転送ゲート回路ＴＧの内部構成の一例を示す図。
【図５】第２の実施形態に従った第１のフリップフロップＦＦ１、第２のフリップフロップＦＦ２、および、転送ゲート回路ＴＧの内部構成の一例を示す図。
【図６】スイッチ信号ＳＷ１、ＳＷ２の論理と出力部Ｑ１＿１、Ｑ２＿１から出力されるデータとの関係を示す表。
【図７】第２の実施形態の変形例に従った第１のフリップフロップＦＦ１、第２のフリップフロップＦＦ２、および、転送ゲート回路ＴＧの内部構成の一例を示す図。
【図８】第３の実施形態に従った第１のフリップフロップＦＦ１、第２のフリップフロップＦＦ２、および、転送ゲート回路ＴＧの内部構成の一例を示す図。
【図９】第４の実施形態に従った第１のフリップフロップＦＦ１、第２のフリップフロップＦＦ２、および、転送ゲート回路ＴＧの内部構成の一例を示す図。
【図１０】第４の実施形態の変形例１に従った第１のフリップフロップＦＦ１、第２のフリップフロップＦＦ２、および、転送ゲート回路ＴＧの内部構成の一例を示す図。
【図１１】第４の実施形態の変形例２に従った第１のフリップフロップＦＦ１、第２のフリップフロップＦＦ２、および、転送ゲート回路ＴＧの内部構成の一例を示す図。
【発明を実施するための形態】
【０００７】
以下、図面を参照して本発明に係る実施形態を説明する。本実施形態は、本発明を限定するものではない。
【０００８】
（第１の実施形態）
図１は、第１の実施形態に従った半導体集積回路装置の構成の一例を示す図である。半導体集積回路装置は、第１のフリップフロップＦＦ１と、第２のフリップフロップＦＦ２と、転送ゲートＴＧとの組を複数備えている。図１では、３組備えた例を示している。本実施形態において、第１のフリップフロップＦＦ１＿１〜ＦＦ１＿３はカスケード状に直列に接続されている。また、第２のフリップフロップＦＦ２＿１〜ＦＦ２＿３もカスケード状に直列に接続されている。
【０００９】
第１のフリップフロップＦＦ１および第２のフリップフロップＦＦ２は、対応するように同数設けられている。また、転送ゲートＴＧも、第１のフリップフロップＦＦ１あるいは第２のフリップフロップＦＦ２と同数設けられている。転送ゲートＴＧは、それぞれに対応する第１のフリップフロップＦＦ１と第２のフリップフロップＦＦ２との間に接続されている。
【００１０】
第１のフリップフロップＦＦ１は、第２のフリップフロップＦＦ２と等価な論理機能を有する。第１のフリップフロップＦＦ１および第２のフリップフロップＦＦ２は、クロックＣＬＫのタイミングに基づいて入力部Ｄ１、Ｄ２から入力されたデータをラッチし、ラッチされた該データを出力部Ｑ１、Ｑ２から出力する。カスケード状に直列接続されたそれぞれの組は、クロックＣＬＫのタイミングに基づいて同様の動作を行う。
【００１１】
第１のフリップフロップＦＦ１は第２のフリップフロップＦＦ２より動作速度が速い。一方、第２のフリップフロップＦＦ２、第１のフリップフロップＦＦ１よりゲートリーク電流（消費電力）が少ない。従って、クロックＣＬＫの周波数が比較的高く所定値を超えている場合、高速動作が要求されるため、第１のフリップフロップＦＦ１が用いられる。一方、クロックＣＬＫの周波数が比較的低く所定値以下である場合、消費電力を低く抑えるために、第２のフリップフロップＦＦ２が用いられる。
【００１２】
第１のフリップフロップＦＦ１は、第１のマスタラッチ回路ＭＬ１を備え、かつ、第１のスレーブラッチ回路ＳＬ１を備えている。第２のフリップフロップＦＦ２は、第２のマスタラッチ回路ＭＬ２を備え、かつ、第２のスレーブラッチ回路ＳＬ２を備えている。
【００１３】
第１のマスタラッチ回路ＭＬ１および第１のスレーブラッチ回路ＳＬ１は、ＣＭＯＳ（Complementary Metal-Oxide Semiconductor）ゲートＣＧ１を介して接続されている。ＣＭＯＳゲートＣＧ１は、互いに並列接続されたＮ型トランジスタおよびＰ型トランジスタを用いて形成されている。ＣＭＯＳゲートＣＧ１は、第１のマスタラッチ回路ＭＬ１にラッチされたデータを、第１のスレーブラッチ回路ＳＬ１へ転送するために設けられている。同様に、第２のマスタラッチ回路ＭＬ２および第２のスレーブラッチ回路ＳＬ２は、ＣＭＯＳゲートＣＧ２を介して接続されている。ＣＭＯＳゲートＣＧ２は、第２のマスタラッチ回路ＭＬ２にラッチされたデータを、第２のスレーブラッチ回路ＳＬ２へ転送するために設けられている。
【００１４】
第１および第２のフリップフロップＦＦ１、ＦＦ２は、それぞれクロックＣＬＫのパルスごとに入力データをラッチし、そのデータを出力する。例えば、クロックＣＬＫが論理ロウ（０）のときに、第１のマスタラッチ回路ＭＬ１は、入力部Ｄ１からデータを入力する。論理ロウ（０）から論理ハイ（１）へ立ち上がるタイミングにおいて、第１のマスタラッチ回路ＭＬ１が入力部Ｄ１から入力されたデータをラッチし、それと同時にＣＭＯＳゲートＣＧ１が第１のマスタラッチ回路ＭＬ１にラッチされたデータを第１のスレーブラッチ回路ＳＬ１へ転送する。このとき、第１のスレーブラッチ回路ＳＬ１は、ＣＭＯＳゲートＣＧ１から受けたデータを出力部Ｑ１から出力し始める。次に、クロックが（１）から（０）へ立ち下がるタイミングにおいて、第１のスレーブラッチ回路ＳＬ１が第１のマスタラッチ回路ＭＬ１から受け取ったデータをそれぞれラッチする。第１のスレーブラッチ回路ＳＬ１がデータをラッチしている期間、第１のスレーブラッチ回路ＳＬ１は、該データを出力部Ｑ１からそれぞれ出力する。このように、第１のフリップフロップＦＦ１は、クロックＣＬＫの１パルスを用いて、データをラッチし、そのデータを出力する。
【００１５】
第２のフリップフロップＦＦ２は、第１のフリップフロップＦＦ１より動作速度において遅いものの、第１のフリップフロップＦＦ１と同じ論理機能を有する。従って、第２のフリップフロップＦＦ２も、クロックＣＬＫの１パルスを用いて、データをラッチし、そのデータを出力する。
【００１６】
図１に示すように、第１のフリップフロップＦＦ１＿１〜ＦＦ１＿３が直列接続されている場合、フリップフロップＦＦ１＿１のデータ入力と、フリップフロップＦＦ１＿１からフリップフロップＦＦ１＿２へのデータ転送と、フリップフロップＦＦ１＿２からフリップフロップＦＦ１＿３へのデータ転送と、フリップフロップＦＦ１＿３からのデータ出力は、クロックＣＬＫの１パルスで並行して実行される。即ち、データは、クロックＣＬＫに従って、上流のフリップフロップＦＦ１＿１から下流のフリップフロップＦＦ１＿３へと受け渡される（リレーされる）。第２のフリップフロップＦＦ２＿１〜ＦＦ２＿３においても同様に、データは、クロックＣＬＫに従って、上流のフリップフロップＦＦ２＿１から下流のフリップフロップＦＦ２＿３へと受け渡される。
【００１７】
転送ゲート回路ＴＧ＿１〜ＴＧ＿３は、クロックＣＬＫの周波数の変化に応じて、第１のフリップフロップＦＦ１＿１〜ＦＦ１＿３と第２のフリップフロップＦＦ２＿１〜ＦＦ２＿３との間においてデータを転送する。例えば、当初、クロックＣＬＫの周波数が所定値より高い場合（例えば、半導体集積回路装置がアクティブ状態の場合）には、半導体集積回路装置は、第１のフリップフロップＦＦ１＿１〜ＦＦ１＿３を用いてデータを処理する。このとき、転送ゲート回路ＴＧ＿１〜ＴＧ＿３は動作していない。
【００１８】
しかし、クロックＣＬＫの周波数が所定値以下になった場合（例えば、半導体集積回路装置がスタンドバイ状態になった場合）、半導体集積回路装置は、第１のフリップフロップＦＦ１＿１〜ＦＦ１＿３に代えて、第２のフリップフロップＦＦ２＿１〜ＦＦ２＿３を用いてデータを処理する。このとき、第１のフリップフロップＦＦ１＿１〜ＦＦ１＿３にラッチされているデータをそれぞれ第２のフリップフロップＦＦ２＿１〜ＦＦ２＿３に転送するために、転送ゲート回路ＴＧ＿１〜ＴＧ＿３が動作する。例えば、転送ゲート回路ＴＧ＿１〜ＴＧ＿３は、クロックＣＬＫの立ち上がりのタイミングにおいて第１のマスタラッチ回路ＭＬ１にラッチされたデータをそれぞれ第２のスレーブラッチ回路ＳＬ２へ転送する。このとき、転送ゲート回路ＴＧ＿１〜ＴＧ＿３は、該クロックＣＬＫの立ち上がりのタイミングで、それぞれほぼ同時に並行してデータを転送する。転送されたデータは、出力部Ｑ２から出力され、クロックＣＬＫの立ち下がりのタイミングにおいて第２のスレーブラッチ回路ＳＬ２にラッチされる。
【００１９】
その後、半導体集積回路装置は、第１のフリップフロップＦＦ１＿１〜ＦＦ１＿３の動作を停止し、第２のフリップフロップＦＦ２＿１〜ＦＦ２＿３を用いてデータを処理する。これにより、本実施形態による半導体集積回路装置は、消費電力を低く抑制した状態でデータを処理することができる。
【００２０】
逆に、当初、クロックＣＬＫの周波数が所定値以下のときには、半導体集積回路装置は、第２のフリップフロップＦＦ２＿１〜ＦＦ２＿３を用いてデコーダを処理する。このとき、転送ゲート回路ＴＧ＿１〜ＴＧ＿３は動作していない。
【００２１】
しかし、クロックＣＬＫの周波数が所定値を超えた場合、半導体集積回路装置は、第２のフリップフロップＦＦ２＿１〜ＦＦ２＿３に代えて、第１のフリップフロップＦＦ１＿１〜ＦＦ１＿３を用いてデータを処理する。このとき、第２のフリップフロップＦＦ２＿１〜ＦＦ２＿３にラッチされているデータをそれぞれ第１のフリップフロップＦＦ１＿１〜ＦＦ１＿３に転送するために、転送ゲート回路ＴＧ＿１〜ＴＧ＿３が動作する。例えば、転送ゲート回路ＴＧ＿１〜ＴＧ＿３は、クロックＣＬＫの立ち上がりのタイミングにおいて、第２のマスタラッチ回路ＭＬ２にラッチされたデータを、第１のスレーブラッチ回路ＳＬ１へ転送する。このとき、転送ゲート回路ＴＧ＿１〜ＴＧ＿３は、該クロックＣＬＫの立ち上がりのタイミングで、それぞれほぼ同時に並行してデータを転送する。転送されたデータは、出力部Ｑ１から出力され、クロックＣＬＫの立ち下がりのタイミングにおいて第１のスレーブラッチ回路ＳＬ１においてラッチされる。
【００２２】
その後、半導体集積回路装置は、第２のフリップフロップＦＦ２＿１〜ＦＦ２＿３の動作を停止し、第１のフリップフロップＦＦ１＿１〜ＦＦ１＿３を用いてデータを処理する。これにより、本実施形態による半導体集積回路装置は、高速でデータを処理することができる。
【００２３】
このように、クロックＣＬＫの周波数に応じて半導体集積回路装置がフリップフロップを切り替えるときに、転送ゲート回路ＴＧ＿１〜ＴＧ＿３は、それぞれ対応する第１および第２のフリップフロップＦＦ１、ＦＦ２の間でデータをほぼ同時かつ並行に転送する役目を果たす。
【００２４】
尚、図１に示す本実施形態では、第１のフリップフロップＦＦ１、第２のフリップフロップＦＦ２および転送ゲート回路ＴＧの組は３つ表示されているが、各組の個数は特に限定しない。従って、第１のフリップフロップ、第２のフリップフロップおよび転送ゲート回路ＴＧの組は、少なくとも１つ以上であってもよい。
【００２５】
図２は、第１の実施形態に従った第１のフリップフロップＦＦ１、第２のフリップフロップＦＦ２、および、転送ゲート回路ＴＧの内部構成の一例を示す図である。第１のフリップフロップＦＦ１＿１〜ＦＦ１＿３、第２のフリップフロップＦＦ２＿１〜ＦＦ２＿３、および、転送ゲート回路ＴＧ＿１〜ＴＧ＿３は、図２に示す内部構成と同様である。
【００２６】
第１のマスタラッチ回路ＭＬ１は、ゲーテッドインバータＧＩ１＿１、ＧＩ１＿２と、ノーマルインバータＩｎ１＿１とを備えている。第１のスレーブラッチ回路ＳＬ１は、ゲーテッドインバータＧＩ１＿３と、ノーマルインバータＩｎ１＿２、Ｉｎ１＿３とを備えている。
【００２７】
ゲーテッドインバータＧＩ１＿１〜ＧＩ１＿３は、クロックＣＬＫに基づいてデータの論理を反転して出力する。例えば、ゲーテッドインバータＧＩ１＿１、ＧＩ１＿３は、クロックＣＬＫが（０）のときに、データの論理を反転して出力する。ゲーテッドインバータＧＩ１＿２は、クロックＣＬＫが（１）のときに、データの論理を反転して出力する。
【００２８】
ゲーテッドインバータＧＩ１＿２およびノーマルインバータＩｎ１＿１は、ラッチ回路を成し、ゲーテッドインバータＧＩ１＿２の出力データをラッチする。ゲーテッドインバータＧＩ１＿３およびノーマルインバータＩｎ１＿３は、ラッチ回路を成し、ゲーテッドインバータＧＩ１＿３の出力データをラッチする。
【００２９】
第２のフリップフロップＦＦ２は、第１のフリップフロップＦＦ１と等価な論理機能を有し、基本的に第１のフリップフロップＦＦ１と同様の構成でよい。第２のマスタラッチ回路ＭＬ２は、ゲーテッドインバータＧＩ２＿１、ＧＩ２＿２と、ノーマルインバータＩｎ２＿１とを備えている。第２のスレーブラッチ回路ＳＬ２は、ゲーテッドインバータＧＩ２＿３と、ノーマルインバータＩｎ２＿２、Ｉｎ２＿３とを備えている。
【００３０】
ゲーテッドインバータＧＩ２＿１〜ＧＩ２＿３は、クロックＣＬＫの論理に基づいて入力データの論理を反転して出力する。例えば、ゲーテッドインバータＧＩ２＿１、ＧＩ２＿３は、クロックＣＬＫが（０）のときに、入力データの論理を反転して出力する。ゲーテッドインバータＧＩ２＿２は、クロックＣＬＫが（１）のときに、入力データの論理を反転して出力する。
【００３１】
ゲーテッドインバータＧＩ２＿２およびノーマルインバータＩｎ２＿１は、ラッチ回路を成し、ゲーテッドインバータＧＩ２＿２の出力データをラッチする。ゲーテッドインバータＧＩ２＿３およびノーマルインバータＩｎ２＿３は、ラッチ回路を成し、ゲーテッドインバータＧＩ２＿３の出力データをラッチする。
【００３２】
ここで、ゲーテッドインバータＧＩ１＿１〜ＧＩ１＿３、ＧＩ２＿１〜ＧＩ２＿３およびノーマルインバータＩｎ１＿１〜Ｉｎ１＿３、Ｉｎ２＿１〜Ｉｎ２＿３は、いずれもトランジスタで形成されている。しかし、第１のフリップフロップＦＦ１は、第２のフリップフロップＦＦ２よりも高速に動作する必要がある。このため、第１のフリップフロップＦＦ１は、第２のフリップフロップＦＦ２よりもトランジスタのゲート絶縁膜が薄く形成されている。また、第１のフリップフロップＦＦ１は、第２のフリップフロップＦＦ２よりもトランジスタの閾値電圧が低い。
【００３３】
近年、半導体集積回路装置の微細化に伴って、トランジスタのゲート絶縁膜の厚さが薄くなっている。ゲート絶縁膜が薄くなると、トランジスタの閾値電圧が低くなり、かつ、ゲートリーク電流が増加する。ゲートリーク電流は、半導体集積回路装置の動作時における消費電力に比べて小さいものの無視できない。閾値電圧の低下によるリーク電流はボディ電圧の制御によって抑制することができるが、ゲートリーク電流はボディ電圧によって抑制することが難しい。従って、第１のフリップフロップＦＦ１は高速動作可能であるが、ゲートリーク電流が大きい。一方、第２のフリップフロップＦＦ２は、第１のフリップフロップＦＦ１と比べて、動作速度は遅いが、ゲートリーク電流は少ない。
【００３４】
そこで、クロックＣＬＫの周波数が所定値より高く、高速動作が要求される場合には、消費電力よりも動作速度を重視し、半導体集積回路装置は、第１のフリップフロップＦＦ１を用いてデータを高速に処理する。一方、クロックＣＬＫの周波数が所定値以下であり、高速動作が要求されない場合には、動作速度よりも消費電力を重視し、半導体集積回路装置は、第２のフリップフロップＦＦ２を用いてデータを処理し、ゲートリーク電流を低く抑制する。これにより、半導体集積回路装置は、高速動作と低消費電力とを両立させることができる。
【００３５】
高速動作から低速動作へ切り替える、あるいは、低速動作から高速動作へ切り替える場合には、ラッチされているデータを切り替え先のフリップフロップへ転送する必要がある。本実施形態では、転送ゲート回路ＴＧが、第１のフリップフロップＦＦ１と第２のフリップフロップＦＦ２との間でデータを転送する。
【００３６】
転送ゲート回路ＴＧは、転送ＣＭＯＳゲートＣＧ３＿１、ＣＧ３＿２を備えている。転送ＣＭＯＳゲートＣＧ３＿１、ＣＧ３＿２は、それぞれ互いに並列接続されたＮ型トランジスタおよびＰ型トランジスタを用いて形成されている。この場合、転送ＣＭＯＳゲートＣＧ３＿１を形成するトランジスタが第１のトランジスタとなり、転送ＣＭＯＳゲートＣＧ３＿２を形成するトランジスタが第２のトランジスタとなる。
【００３７】
転送ＣＭＯＳゲートＣＧ３＿１の一端は第１のマスタラッチ回路ＭＬ１とＣＭＯＳゲートＣＧ１との間の接続点に接続されており、転送ＣＭＯＳゲートＣＧ３＿１の他端はＣＭＯＳゲートＣＧ２と第２のスレーブラッチ回路ＳＬ２との間の接続点に接続されている。また、転送ＣＭＯＳゲートＣＧ３＿２の一端はＣＭＯＳゲートＣＧ１と第１のスレーブラッチ回路ＳＬ１との間の接続点に接続されており、転送ＣＭＯＳゲートＣＧ３＿２の他端は第２のマスタラッチ回路ＭＬ２とＣＭＯＳゲートＣＧ２との間の接続点に接続されている。
【００３８】
転送ＣＭＯＳゲートＣＧ３＿１は、第１のマスタラッチ回路ＭＬ１にラッチされたデータを第２のスレーブラッチ回路ＳＬ２へ転送するために設けられている。転送ＣＭＯＳゲートＣＧ３＿２は、第２のマスタラッチ回路ＭＬ２にラッチされたデータを第１のスレーブラッチ回路ＳＬ１へ転送するために設けられている。
【００３９】
ＣＭＯＳゲートＣＧ１、ＣＧ２および転送ＣＭＯＳゲートＣＧ３＿１、ＣＧ３＿２は、それぞれ制御信号ＣｂＳＷ２、ＣｂＳＷ１、ＣＳＷ１およびＣＳＷ２によって制御される。ＣＭＯＳゲートＣＧ１、ＣＧ２および転送ＣＭＯＳゲートＣＧ３＿１、ＣＧ３＿２は、それぞれ制御信号ＣｂＳＷ２、ＣｂＳＷ１、ＣＳＷ１およびＣＳＷ２が（１）であるときに導通状態となり、（０）であるときに非導通状態となる。
【００４０】
制御信号ＣＳＷ１は、クロックＣＬＫとスイッチ信号ＳＷ１との論理積（ＡＮＤ）を示す信号である。スイッチ信号ＳＷ１は、第１のフリップフロップＦＦ１から第２のフリップフロップＦＦ２へデータを転送するときに活性化される信号である。例えば、第１のフリップフロップＦＦ１から第２のフリップフロップＦＦ２へデータを転送するときに、半導体集積回路装置はスイッチ信号ＳＷ１を１クロックだけ（１）に立ち上げる。
【００４１】
制御信号ＣｂＳＷ１は、クロックＣＬＫとスイッチ信号ｂＳＷ１との論理積を示す信号である。スイッチ信号ｂＳＷ１は、スイッチ信号ＳＷ１の反転信号である。
【００４２】
制御信号ＣＳＷ２は、クロックＣＬＫとスイッチ信号ＳＷ２との論理積である。スイッチ信号ＳＷ２は、第２のフリップフロップＦＦ２から第１のフリップフロップＦＦ１へデータを転送するときに活性化される信号である。例えば、第２のフリップフロップＦＦ２から第１のフリップフロップＦＦ１へデータを転送するときに、半導体集積回路装置はスイッチ信号ＳＷ２を１クロックだけ（１）に立ち上げる。
【００４３】
制御信号ＣｂＳＷ２は、クロックＣＬＫとスイッチ信号ｂＳＷ２との論理積を示す信号である。スイッチ信号ｂＳＷ２は、スイッチ信号ＳＷ２の反転信号である。
【００４４】
尚、制御信号ｂ（ＣｂＳＷ２）、ｂ（ＣｂＳＷ１）、ｂ（ＣＳＷ１）およびｂ（ＣＳＷ２）は、それぞれ制御信号ＣｂＳＷ２、ＣｂＳＷ１、ＣＳＷ１およびＣＳＷ２の反転信号である。
【００４５】
制御信号ＣＳＷ１、ＣＳＷ２、ＣｂＳＷ１およびＣｂＳＷ２は、いずれもクロックＣＬＫとスイッチ信号ＳＷ１、ＳＷ２、ｂＳＷ１またはｂＳＷ２との論理積であるので、スイッチ信号ＳＷ１、ＳＷ２、ｂＳＷ１またはｂＳＷ２が（１）に立ち上がったときにクロックＣＬＫを有効にし、クロックＣＬＫと同相になる。スイッチ信号ＳＷ１、ＳＷ２、ｂＳＷ１またはｂＳＷ２が（０）である場合には、制御信号ＣｂＳＷ２、ＣｂＳＷ１、ＣＳＷ１およびＣＳＷ２は、クロックＣＬＫを無効にし、（０）に維持される。
【００４６】
ＣＭＯＳゲートＣＧ１＿１、ＣＧ２＿１、転送ＣＭＯＳゲートＣＧ３＿１、ＣＧ３＿２は、スイッチ信号ＳＷ１、ＳＷ２、ｂＳＷ１、ｂＳＷ２が（１）に活性化されているときに、クロックＣＬＫに従って動作する。
【００４７】
ＣＭＯＳゲートＣＧ１、ＣＧ２または転送ゲート回路ＴＧは、クロックＣＬＫが（０）から（１）に立ち上がったときに動作する。図３は、クロックＣＬＫが（１）に立ち上がったときの、スイッチ信号ＳＷ１、ＳＷ２の論理と出力部Ｑ１、Ｑ２から出力されるデータとの関係を示す表である。データｄ１は入力部Ｄ１から入力されたデータを示し、データｄ２は入力部Ｄ２から入力されたデータを示す。
【００４８】
（通常動作）
フリップフロップの切り替えが無く、第１のフリップフロップＦＦ１または第２のフリップフロップＦＦ２のいずれかを用いてデータを処理している場合、スイッチ信号ＳＷ１、ＳＷ２はともに（０）である。この場合、制御信号ＣＳＷ１、ＣＳＷ２はともにクロックＣＬＫを無効にし、（０）に維持される。従って、転送ゲート回路ＴＧは動作しない。
【００４９】
一方、制御信号ＣｂＳＷ１、ＣｂＳＷ２はともにクロックＣＬＫを有効にし、クロックＣＬＫと同相となる。従って、ＣＭＯＳゲートＣＧ１、ＣＧ２はクロックＣＬＫに従って動作する。これにより、第１のフリップフロップＦＦ１は、データｄ１を出力部Ｑ１から出力し、第２のフリップフロップＦＦ２は、データｄ２を出力部Ｑ２から出力する。
【００５０】
尚、半導体集積回路装置が第２のフリップフロップＦＦ２を用いている場合、消費電力を抑制するために、第１のフリップフロップＦＦ１の動作は、待機状態または停止状態になっている。
【００５１】
（ＦＦ１からＦＦ２へのデータ転送動作）
クロックＣＬＫの周波数が所定値以下になった場合、第１のフリップフロップＦＦ１から第２のフリップフロップＦＦ２へ切り替える。この場合、スイッチ信号ＳＷ１が（１）になり、スイッチ信号ＳＷ２が（０）を維持する。この場合、制御信号ＣＳＷ２およびＣｂＳＷ１は、ともにクロックＣＬＫを無効にし、（０）に維持される。一方、制御信号ＣＳＷ１およびＣｂＳＷ２は、クロックＣＬＫを有効にし、クロックＣＬＫと同相となる。
【００５２】
従って、転送ＣＭＯＳゲートＣＧ３＿２およびＣＭＯＳゲートＣＧ２は非導通状態のままであるが、転送ＣＭＯＳゲートＣＧ３＿１およびＣＭＯＳゲートＣＧ１がクロックＣＬＫに従って動作する。これにより、転送ＣＭＯＳゲートＣＧ３＿１は、第１のマスタラッチ回路ＭＬ１にラッチされたデータｄ１を第２のスレーブラッチ回路ＳＬ２へ転送することができる。例えば、クロックＣＬＫが（０）になったときに、ゲーテッドインバータＧＩ１＿１が入力部Ｄ１からデータｄ１を反転入力する。
【００５３】
次に、クロックＣＬＫが（１）になったときに、第１のマスタラッチ回路ＭＬ１がデータｄ１をラッチし、転送ＣＭＯＳゲートＣＧ３＿１がデータｄ１を第２のスレーブラッチ回路ＳＬ２へ転送する。このとき、ＣＭＯＳゲートＣＧ２は動作していないので、第２のスレーブラッチ回路ＳＬ２において転送データｄ１は入力データｄ２と衝突しない。また、第２のスレーブラッチ回路ＳＬ２はデータｄ１を出力部Ｑ２から出力する。
【００５４】
次に、クロックＣＬＫが（０）になったときに、第２のスレーブラッチ回路ＳＬ２は、出力部Ｑ２から出力されているデータｄ１をラッチする。このとき、第２のマスタラッチ回路ＭＬ２ではゲーテッドインバータＧＩ２＿１が入力部Ｄ２から入力した次のデータｄ２を反転入力している。このように、第２のフリップフロップＦＦ２は、転送データｄ１を出力した後、入力部Ｄ２から入力したデータｄ２を処理する。  
一方、第１のフリップフロップＦＦ１は、フリップフロップの切り替えがない場合と同様に、データｄ１をそのまま出力部Ｑ１から出力する。  
よって、図３に示すように、出力部Ｑ１およびＱ２は、ともにデータｄ１を出力する。
【００５５】
（ＦＦ２からＦＦ１へのデータ転送動作）
クロックＣＬＫの周波数が所定値より高くなった場合、第２のフリップフロップＦＦ２から第１のフリップフロップＦＦ１へ切り替える。この場合、スイッチ信号ＳＷ１が（０）を維持し、スイッチ信号ＳＷ２が（１）になる。この場合、制御信号ＣＳＷ１およびＣｂＳＷ２はともにクロックＣＬＫを無効にし、（０）に維持される。一方、制御信号ＣＳＷ２およびＣｂＳＷ１は、クロックＣＬＫを有効にし、クロックＣＬＫと同相となる。
【００５６】
従って、転送ＣＭＯＳゲートＣＧ３＿１およびＣＭＯＳゲートＣＧ１は非導通状態のままであるが、転送ＣＭＯＳゲートＣＧ３＿２およびＣＭＯＳゲートＣＧ２がクロックＣＬＫに従って動作する。これにより、転送ＣＭＯＳゲートＣＧ３＿２は、第２のマスタラッチ回路ＭＬ２にラッチされたデータｄ２＿１を第１のスレーブラッチ回路ＳＬ１へ転送することができる。例えば、クロックＣＬＫが（０）になったときに、ゲーテッドインバータＧＩ２＿１が入力部Ｄ２からデータｄ２を反転入力する。
【００５７】
次に、クロックＣＬＫが（１）になったときに、第２のマスタラッチ回路ＭＬ２がデータｄ２をラッチし、転送ＣＭＯＳゲートＣＧ３＿２がデータｄ２を第１のスレーブラッチ回路ＳＬ１へ転送する。このとき、ＣＭＯＳゲートＣＧ１は動作していないので、第１のスレーブラッチ回路ＳＬ１において転送データｄ２は入力データｄ１と衝突しない。また、第１のスレーブラッチ回路ＳＬ１はデータｄ２を出力部Ｑ１から出力する。
【００５８】
次に、クロックＣＬＫが（０）になったときに、第１のスレーブラッチ回路ＳＬ１は、出力部Ｑ１から出力されているデータｄ２をラッチする。このとき、第１のマスタラッチ回路ＭＬ１ではゲーテッドインバータＧＩ１＿１が入力部Ｄ１から入力した次のデータｄ１を反転入力している。このように、第１のフリップフロップＦＦ１は、転送データｄ２を出力した後、入力部Ｄ１から入力したデータｄ１を処理する。  
一方、第２のフリップフロップＦＦ２は、フリップフロップの切り替えがない場合と同様に、データｄ２をそのまま出力部Ｑ２から出力する。  
よって、図３に示すように、出力部Ｑ１およびＱ２は、ともにデータｄ２を出力する。
【００５９】
さらに、図３では、スイッチ信号ＳＷ１およびＳＷ２がともに（１）である場合が示されている。この場合、出力部Ｑ１およびＱ２は、それぞれデータｄ２およびｄ１を出力することになるが、このようなケースは実際には使用しない。従って、このケースの詳細な説明については省略する。
【００６０】
本実施形態によれば、クロックＣＬＫの周波数に応じて、データを処理するフリップフロップを切り替えるときに、転送ゲート回路ＴＧが、第１のフリップフロップＦＦ１と第２のフリップフロップＦＦ２との間でデータを転送する。このとき、転送ゲート回路ＴＧは、第１のマスタラッチ回路ＭＬ１の出力からのデータを第２のスレーブラッチ回路ＳＬ２の入力へ直接転送する、あるいは、第２のマスタラッチ回路ＭＬ２の出力からのデータを第１のスレーブラッチ回路ＳＬ１へ直接転送する。従って、第１のフリップフロップＦＦ１と第２のフリップフロップＦＦ２との間での切り替えがスムーズであり、第１のフリップフロップＦＦ１＿１と第２のフリップフロップＦＦ２＿１との間で動作にタイムラグが生じない。即ち、フリップフロップの切り替え時に、第１のフリップフロップＦＦ１と第２のフリップフロップＦＦ２＿１とをシームレスに連続動作させることができる。
【００６１】
フリップフロップ間でデータを転送する際に、スキャンクロックを用いてデータを転送する手法が考えられる。しかし、この場合、スキャンクロックによってデータを転送するために、少なくとも１クロックパルス必要となる。図１に示すように、複数組のフリップフロップが設けられている場合には、直列接続されているフリップフロップの個数の分だけさらに長い時間（さらに多くのクロックパルス）を必要とする。また、スキャンクロックを用いてフリップフロップ間でデータ転送する手法は、ＤＦＴ（Design For Testability）を複雑化させる。
【００６２】
これに対して、本実施形態によれば、複数組の第１のフリップフロップＦＦ１と第２のフリップフロップＦＦ２間に、それぞれ転送ゲート回路ＴＧが設けられている。複数の転送ゲート回路ＴＧの各々が、データ転送を一括で（並行に、あるいは、同時に）実行することができる。そして、転送ゲート回路ＴＧは、通常のクロックＣＬＫに従って動作し、スキャンクロックを必要としない。従って、本実施形態によれば、フリップフロップの切り替え時にデータ処理を停止させることなく、データを転送することができる。その結果、第１および第２のフリップフロップの個数に関わらず、フリップフロップの切り替え時に、第１のフリップフロップＦＦ１＿１と第２のフリップフロップＦＦ２＿１とをシームレスに連続動作させることができる。
【００６３】
（第１の実施形態の変形例）
図４は、第１の実施形態の変形例を示す図である。本変形例では、転送ゲート回路ＴＧが、ＣＭＯＳゲートではなく、第１のトランジスタＧ３＿１および第２のトランジスタＧ３＿２を用いて形成されている。第１のトランジスタＧ３＿１は、第１のマスタラッチ回路ＭＬ１の出力と第２のスレーブラッチ回路ＳＬ２の入力との間に接続されている。第２のトランジスタＧ３＿２は、第２のマスタラッチ回路ＭＬ２の出力と第１のスレーブラッチ回路ＳＬ１の入力との間に接続されている。本変形例のその他の構成は、第１の実施形態の対応する構成と同様である。
【００６４】
第１および第２のトランジスタＧ３＿１、Ｇ３＿２は、それぞれ制御信号ＣＳＷ１およびＣＳＷ２によって制御されるＮ型トランジスタである。代替的に、第１および第２のトランジスタＧ３＿１、Ｇ３＿２は、それぞれ制御信号ｂ（ＣＳＷ１）およびｂ（ＣＳＷ２）によって制御されるＰ型トランジスタであってもよい。
【００６５】
本変形例による半導体集積回路装置であっても、第１の実施形態と同様に動作し、同様の効果を得ることができる。
【００６６】
（第２の実施形態）
図５は、第２の実施形態に従った第１のフリップフロップＦＦ１、第２のフリップフロップＦＦ２、および、転送ゲート回路ＴＧの内部構成の一例を示す図である。第２の実施形態では、転送ゲート回路ＴＧは、第１のスレーブラッチ回路ＳＬ１の入力と第２のスレーブラッチ回路ＳＬ２の入力との間に接続された転送ＣＭＯＳゲートＣＧ４を含む。転送ＣＭＯＳゲートＣＧ４は、互いに並列接続されたＮ型トランジスタおよびＰ型トランジスタを用いて形成されている。この場合、転送ＣＭＯＳゲートＣＧ４を形成するトランジスタが、第３のトランジスタとなる。
【００６７】
転送ＣＭＯＳゲートＣＧ４は、制御信号ＣＳＷ１２およびｂ（ＣＳＷ１２）によって制御される。制御信号ＣＳＷ１２は、スイッチ信号ＳＷ１とスイッチ信号ＳＷ２との論理和（ＯＲ）の演算結果ＳＷ１２とクロックＣＬＫとの論理積を示す信号である。制御信号ｂ（ＣＳＷ１２）は、制御信号ＣＳＷ１２の反転信号である。
【００６８】
従って、制御信号ＣＳＷ１２は、スイッチ信号ＳＷ１またはＳＷ２のいずれか一方が（１）であるときに、クロックＣＬＫを有効にし、クロックＣＬＫと同相になる。スイッチ信号ＳＷ１およびＳＷ２の両方が（０）である場合には、制御信号ＣＳＷ１２は、クロックＣＬＫを無効にし、（０）に維持される。従って、転送ＣＭＯＳゲートＣＧ４は、スイッチ信号ＳＷ１またはＳＷ２のいずれか一方が（１）であるときに、クロックＣＬＫに従って動作する。  
第２の実施形態のその他の構成および動作は、第１の実施形態の対応する構成および動作と同様である。
【００６９】
ＣＭＯＳゲートＣＧ１、ＣＧ２または転送ゲート回路ＴＧは、クロックＣＬＫが（０）から（１）に立ち上がったときに動作する。図６は、クロックＣＬＫが（１）に立ち上がったときの、スイッチ信号ＳＷ１、ＳＷ２の論理と出力部Ｑ１、Ｑ２から出力されるデータとの関係を示す表である。図６において、データｄ１は入力部Ｄ１から入力されたデータを示し、データｄ２は入力部Ｄ２から入力されたデータを示す。
【００７０】
（通常動作）
フリップフロップの切り替えが無く、第１のフリップフロップＦＦ１または第２のフリップフロップＦＦ２のいずれかを用いてデータを処理している場合、スイッチ信号ＳＷ１、ＳＷ２がともに（０）である。この場合、制御信号ＣＳＷ１２はクロックＣＬＫを無効にし、（０）に維持される。従って、転送ＣＭＯＳゲートＣＧ４は動作しない。
【００７１】
一方、制御信号ＣｂＳＷ１、ＣｂＳＷ２がともにクロックＣＬＫを有効にし、クロックＣＬＫと同相となる。従って、ＣＭＯＳゲートＣＧ１、ＣＧ２はクロックＣＬＫに従って動作する。このとき、第１および第２のフリップフロップＦＦ１、ＦＦ２の動作は、第１の実施形態における通常動作と同様である。
【００７２】
（ＦＦ１からＦＦ２へのデータ転送動作）
クロックＣＬＫの周波数が所定値以下になった場合、第１のフリップフロップＦＦ１から第２のフリップフロップＦＦ２へ切り替える。この場合、スイッチ信号ＳＷ１が（１）になり、スイッチ信号ＳＷ２が（０）を維持する。この場合、制御信号ＣｂＳＷ１がクロックＣＬＫを無効にし、（０）に維持される。一方、制御信号ＣＳＷ１２およびＣｂＳＷ２は、クロックＣＬＫを有効にし、クロックＣＬＫと同相となる。
【００７３】
従って、ＣＭＯＳゲートＣＧ２は非導通状態のままであるが、転送ＣＭＯＳゲートＣＧ４およびＣＭＯＳゲートＣＧ１がクロックＣＬＫに従って動作する。これにより、転送ＣＭＯＳゲートＣＧ４は、第１のマスタラッチ回路ＭＬ１にラッチされたデータｄ１を第２のスレーブラッチ回路ＳＬ２へ転送することができる。例えば、クロックＣＬＫが（０）になったときに、ゲーテッドインバータＧＩ１が入力部Ｄ１からデータｄ１を反転入力する。
【００７４】
次に、クロックＣＬＫが（１）になったときに、第１のマスタラッチ回路ＭＬ１がデータｄ１をラッチし、ＣＭＯＳゲートＣＧ１がデータｄ１を転送ＣＭＯＳゲートＣＧ４へ出力する。転送ＣＭＯＳゲートＣＧ３＿１はデータｄ１を第２のスレーブラッチ回路ＳＬ２へ転送する。このとき、ＣＭＯＳゲートＣＧ２は動作していないので、第２のスレーブラッチ回路ＳＬ２において転送データｄ１は入力データｄ２と衝突しない。また、このとき、第２のスレーブラッチ回路ＳＬ２はデータｄ１を出力部Ｑ２から出力する。
【００７５】
次に、クロックＣＬＫが（０）になったときに、第２のスレーブラッチ回路ＳＬ２は、出力部Ｑ２から出力されているデータｄ１をラッチする。このとき、第２のマスタラッチ回路ＭＬ２ではゲーテッドインバータＧＩ２＿１が入力部Ｄ２から入力した次のデータｄ２を反転入力している。このように、第２のフリップフロップＦＦ２は、転送データｄ１を出力しつつ、入力部Ｄ２から入力データｄ２を取り込む。  
一方、第１のフリップフロップＦＦ１は、フリップフロップの切り替えがない場合と同様に、データｄ１をそのまま出力部Ｑ１から出力する。  
よって、図６に示すように、出力部Ｑ１およびＱ２は、ともにデータｄ１を出力する。
【００７６】
（ＦＦ２からＦＦ１へのデータ転送動作）
クロックＣＬＫの周波数が所定値より高くなった場合、第２のフリップフロップＦＦ２から第１のフリップフロップＦＦ１へ切り替える。この場合、スイッチ信号ＳＷ１が（０）を維持し、スイッチ信号ＳＷ２が（１）になる。この場合、制御信号ＣｂＳＷ２がクロックＣＬＫを無効にし、（０）に維持される。一方、制御信号ＣＳＷ１２およびＣｂＳＷ１は、クロックＣＬＫを有効にし、クロックＣＬＫと同相となる。
【００７７】
従って、ＣＭＯＳゲートＣＧ１は非導通状態のままであるが、転送ＣＭＯＳゲートＣＧ４およびＣＭＯＳゲートＣＧ２はクロックＣＬＫに従って動作する。これにより、転送ＣＭＯＳゲートＣＧ４は、第２のマスタラッチ回路ＭＬ２にラッチされたデータｄ２を第１のスレーブラッチ回路ＳＬ１へ転送することができる。例えば、クロックＣＬＫが（０）になったときに、ゲーテッドインバータＧＩ２＿１が入力部Ｄ２からデータｄ２を反転入力する。
【００７８】
次に、クロックＣＬＫが（１）になったときに、第２のマスタラッチ回路ＭＬ２がデータｄ２をラッチし、転送ＣＭＯＳゲートＣＧ４がデータｄ２を第１のスレーブラッチ回路ＳＬ１へ転送する。このとき、ＣＭＯＳゲートＣＧ１は動作していないので、第１のスレーブラッチ回路ＳＬ１において転送データｄ２は入力データｄ１と衝突しない。また、第１のスレーブラッチ回路ＳＬ１はデータｄ２を出力部Ｑ１から出力する。
【００７９】
次に、クロックＣＬＫが（０）になったときに、第１のスレーブラッチ回路ＳＬ１は、出力部Ｑ１から出力されているデータｄ２をラッチする。このとき、第１のマスタラッチ回路ＭＬ１ではゲーテッドインバータＧＩ１＿１が入力部Ｄ１から入力した次のデータｄ１を反転入力している。このように、第１のフリップフロップＦＦ１は、転送データｄ２を出力しつつ、入力部Ｄ１から入力データｄ１を取り込む。  
一方、第２のフリップフロップＦＦ２は、フリップフロップの切り替えがない場合と同様に、データｄ２をそのまま出力部Ｑ２から出力する。  
よって、図６に示すように、出力部Ｑ１およびＱ２は、ともにデータｄ２を出力する。
【００８０】
以上のように、第２の実施形態による半導体集積回路装置であっても、第１の実施形態と同様に動作し、フリップフロップの切り替え時に、第１のフリップフロップＦＦ１と第２のフリップフロップＦＦ２とをシームレスに連続動作させることができる。従って、第２の実施形態は、第１の実施形態と同様の効果を得ることができる。
【００８１】
（第２の実施形態の変形例）
図７は、第２の実施形態の変形例を示す図である。本変形例では、転送ゲート回路ＴＧが、ＣＭＯＳゲートではなく、第３のトランジスタＧ４を用いて形成されている。第３のトランジスタＧ４は、第１のスレーブラッチ回路ＳＬ１の入力と第２のスレーブラッチ回路ＳＬ２の入力との間に接続されている。本変形例のその他の構成は、第２の実施形態の対応する構成と同様である。
【００８２】
第３のトランジスタＧ４は、制御信号ＣＳＷ１２によって制御されるＮ型トランジスタである。代替的に、第３のトランジスタＧ４は、制御信号ｂ（ＣＳＷ１２）によって制御されるＰ型トランジスタであってもよい。
【００８３】
本変形例による半導体集積回路装置であっても、第２の実施形態と同様に動作し、同様の効果を得ることができる。
【００８４】
（第３の実施形態）
図８は、第３の実施形態に従った第１のフリップフロップＦＦ１、第２のフリップフロップＦＦ２、および、転送ゲート回路ＴＧの内部構成の一例を示す図である。第３の実施形態では、転送ゲート回路ＴＧは、第１のマスタラッチ回路ＭＬ１と第２のマスタラッチ回路ＭＬ２との間に接続された転送ＣＭＯＳゲートＣＧ５を含む。転送ＣＭＯＳゲートＣＧ５を形成するトランジスタが第４のトランジスタとなる。
【００８５】
転送ＣＭＯＳゲートＣＧ５の一端は、ゲーテッドインバータＧＩ１＿１とノーマルインバータＩｎ１＿１との間のノードに接続され、転送ＣＭＯＳゲートＣＧ５の他端は、ゲーテッドインバータＧＩ２＿１とノーマルインバータＩｎ２＿１との間のノードに接続されている。転送ＣＭＯＳゲートＣＧ５は、互いに並列接続されたＮ型トランジスタおよびＰ型トランジスタを用いて形成されている。
【００８６】
転送ＣＭＯＳゲートＣＧ５は、制御信号ｂＣＳＷ１２およびｂ（ｂＣＳＷ１２）によって制御される。制御信号ｂＣＳＷ１２は、スイッチ信号ＳＷ１とスイッチ信号ＳＷ２との論理和の演算結果ＳＷ１２とクロックＣＬＫの反転信号（以下、クロックｂＣＬＫとも言う）との論理積を示す信号である。制御信号ｂ（ｂＣＳＷ１２）は、制御信号ｂＣＳＷ１２の反転信号である。
【００８７】
データ転送する場合、転送ＣＭＯＳゲートＣＧ５は、第１のマスタラッチ回路ＭＬ１または第２のマスタラッチ回路ＭＬ２がデータをラッチする前にデータを転送する。この場合、第１のマスタラッチ回路ＭＬ１または第２のマスタラッチ回路ＭＬ２がラッチするデータは、既に転送済みのデータである。従って、ＣＭＯＳゲートＣＧ１、ＣＧ２はそれぞれ第１および第２のマスタラッチ回路ＭＬ１、ＭＬ２にラッチされたデータをそのまま第１および第２のスレーブラッチ回路ＳＬ１、ＳＬ２へ転送すればよい。よって、ＣＭＯＳゲートＣＧ１、ＣＧ２は、スイッチ信号ＳＷ１、ＳＷ２を用いることなく、単にクロックＣＬＫによって制御され得る。
【００８８】
ゲーテッドインバータＧＩ１＿１、ＧＩ２＿１は、それぞれ制御信号ｂＣｂＳＷ２、ｂＣｂＳＷ１によって制御される。制御信号ｂＣｂＳＷ２は、クロックｂＣＬＫとスイッチ信号ＳＷ２の反転信号（以下、スイッチ信号ｂＳＷ２とも言う）との論理積を示す信号である。制御信号ｂＣｂＳＷ１は、クロックｂＣＬＫとスイッチ信号ＳＷ１の反転信号（以下、スイッチ信号ｂＳＷ１とも言う）との論理積を示す信号である。
【００８９】
データ転送する際には、転送ＣＭＯＳゲートＣＧ５は、第１のマスタラッチ回路ＭＬ１または第２のマスタラッチ回路ＭＬ２がデータをラッチする前にデータを転送する。従って、ゲーテッドインバータＧＩ１＿１、ＧＩ２＿１を単にクロックｂＣＬＫで制御した場合、データ転送先のマスタラッチ回路ＭＬ１またはＭＬ２において、転送データが入力データと衝突してしまう。このようなデータの衝突を回避するために、第３の実施形態においては、ゲーテッドインバータＧＩ１＿１、ＧＩ２＿１は、クロックｂＣＬＫとスイッチ信号ｂＳＷ１またはｂＳＷ２との演算によって得られる制御信号ｂＣｂＳＷ２、ｂＣｂＳＷ１によって制御される。これにより、データ転送する際に、ゲーテッドインバータＧＩ１＿１またはＧＩ２＿１のデータ入力動作を停止することによって、転送データと入力データとの衝突を回避することができる。
【００９０】
第３の実施形態のその他の構成は、第１の実施形態の対応する構成と同様でよい。  
スイッチ信号ＳＷ１、ＳＷ２の論理と出力部Ｑ１＿１、Ｑ２＿１から出力されるデータとの関係は、図６に示す関係と同じである。
【００９１】
（通常動作）
フリップフロップの切り替えが無く、第１のフリップフロップＦＦ１または第２のフリップフロップＦＦ２のいずれかを用いてデータを処理している場合、スイッチ信号ＳＷ１、ＳＷ２がともに（０）である。この場合、制御信号ｂＣＳＷ１２は、クロックＣＬＫを無効にし、（０）に維持される。従って、転送ゲート回路ＴＧは動作しない。
【００９２】
一方、制御信号ｂＣｂＳＷ１、ｂＣｂＳＷ２はともにクロックｂＣＬＫと同相となる。従って、ゲーテッドインバータＧＩ１＿１、ＧＩ２＿１はクロックｂＣＬＫに従って動作する。これにより、第１のフリップフロップＦＦ１は、データｄ１を出力し、第２のフリップフロップＦＦ２は、データｄ２を出力する。
【００９３】
尚、半導体集積回路装置が第２のフリップフロップＦＦ２を用いている場合、消費電力を抑制するために、第１のフリップフロップＦＦ１の動作は、待機状態または停止状態になっている。
【００９４】
（ＦＦ１からＦＦ２へのデータ転送動作）
クロックＣＬＫの周波数が所定値以下になった場合、第１のフリップフロップＦＦ１から第２のフリップフロップＦＦ２へ切り替える。この場合、スイッチ信号ＳＷ１が（１）になり、スイッチ信号ＳＷ２が（０）を維持する。この場合、制御信号ｂＣｂＳＷ１はクロックｂＣＬＫを無効にし、（０）に維持される。一方、制御信号ｂＣＳＷ１２、ｂＣｂＳＷ２は、ともにクロックｂＣＬＫを有効にし、クロックｂＣＬＫと同相となる。
【００９５】
従って、ゲーテッドインバータＧＩ２＿１は動作しないが、転送ＣＭＯＳゲートＣＧ５およびゲーテッドインバータＧＩ１＿１はクロックｂＣＬＫに従って動作する。これにより、第１のフリップフロップＦＦ１は、データｄ１を入力し、転送ＣＭＯＳゲートＣＧ５へ出力することができる。転送ＣＭＯＳゲートＣＧ５がデータｄ１を第２のマスタラッチ回路ＭＬ２へ転送する。
【００９６】
例えば、クロックＣＬＫが（０）になったときに、ゲーテッドインバータＧＩ１＿１が入力部Ｄ１からデータｄ１を反転入力するとともに、転送ＣＭＯＳゲートＣＧ５がデータｄ１を第２のマスタラッチ回路ＭＬ２へ転送する。このとき、ゲーテッドインバータＧＩ２＿１は動作していないので、第２のマスタラッチ回路ＭＬ２において転送データｄ１は入力データｄ２と衝突しない。
【００９７】
次に、クロックＣＬＫが（１）になったときに、第２のマスタラッチ回路ＭＬ２がデータｄ１＿１をラッチし、第２のスレーブラッチ回路ＳＬ２がＣＭＯＳゲートＣＧ２＿１を介してデータｄ１を出力する。
【００９８】
次に、クロックＣＬＫが（０）になったときに、第２のスレーブラッチ回路ＳＬ２は、データｄ１をラッチする。このとき、第２のマスタラッチ回路ＭＬ２では次のデータｄ２を反転入力している。このように、第２のフリップフロップＦＦ２は、転送データｄ１を出力しつつ、入力部Ｄ２から入力データｄ２＿１を取り込む。
【００９９】
一方、第１のフリップフロップＦＦ１は、フリップフロップの切り替えがない場合と同様に、データｄ１をそのまま出力する。
【０１００】
よって、出力部Ｑ１およびＱ２は、ともにデータｄ１を出力する。
【０１０１】
（ＦＦ２からＦＦ１へのデータ転送動作）
クロックＣＬＫの周波数が所定値より高くなった場合、第２のフリップフロップＦＦ２から第１のフリップフロップＦＦ１へ切り替える。この場合、スイッチ信号ＳＷ１が（０）を維持し、スイッチ信号ＳＷ２が（１）になる。スイッチ信号ＳＷ２が（１）になるので、制御信号ｂＣＳＷ１２がクロックｂＣＬＫになる。従って、転送ＣＭＯＳゲートＣＧ５はクロックＣＬＫに従って動作する。
【０１０２】
また、制御信号ｂＣｂＳＷ２は（０）に不活性状態となり、制御信号ｂＣｂＳＷ１はクロックｂＣＬＫとなる。従って、ゲーテッドインバータＧＩ１＿１は動作せず、ゲーテッドインバータＧＩ２＿１がクロックＣＬＫに従って動作する。これにより、第２のフリップフロップＦＦ２は、データｄ２を入力し、転送ＣＭＯＳゲートＣＧ５へ出力することができる。転送ＣＭＯＳゲートＣＧ５は、データｄ２を第１のマスタラッチ回路ＭＬ１へ転送する。
【０１０３】
例えば、クロックＣＬＫが（０）になったときに、ゲーテッドインバータＧＩ２＿１が入力部Ｄ２からデータｄ２を反転入力するとともに、転送ＣＭＯＳゲートＣＧ５がデータｄ２を第１のマスタラッチ回路ＭＬ１へ転送する。このとき、ゲーテッドインバータＧＩ１＿１は動作していないので、第１のマスタラッチ回路ＭＬ１において転送されたデータｄ２は入力データｄ１と衝突しない。
【０１０４】
次に、クロックＣＬＫが（１）になったときに、第１のマスタラッチ回路ＭＬ１がデータｄ２をラッチし、第１のスレーブラッチ回路ＳＬ１がＣＭＯＳゲートＣＧ１＿１を介してデータｄ２を出力する。
【０１０５】
次に、クロックＣＬＫが（０）になったときに、第１のスレーブラッチ回路ＳＬ１は、データｄ２をラッチする。このとき、第１のマスタラッチ回路ＭＬ１では次のデータｄ１＿１を反転入力している。このように、第１のフリップフロップＦＦ１は、転送データｄ２を出力しつつ、入力部Ｄ１から入力データｄ１を取り込む。  
一方、第２のフリップフロップＦＦ２＿１は、フリップフロップの切り替えがない場合と同様に、データｄ２＿１をそのまま処理する。  
よって、出力部Ｑ１およびＱ２は、ともにデータｄ２を出力する。
【０１０６】
以上のように、第３の実施形態による半導体集積回路装置において、転送ゲート回路ＴＧは、データを第１のマスタラッチ回路ＭＬ１から第２のマスタラッチ回路ＭＬ２へ直接転送する、あるいは、第２のマスタラッチ回路ＭＬ２から第１のマスタラッチ回路ＭＬ１へ直接転送する。このとき、転送ゲート回路ＴＧは、通常のクロックＣＬＫに従って動作し、スキャンクロックを必要としない。従って、第３の実施形態は、フリップフロップの切り替え時に、第１のフリップフロップＦＦ１と第２のフリップフロップＦＦ２とをシームレスに連続動作させることができる。よって、第３の実施形態も、第１の実施形態と同様の効果を得ることができる。
【０１０７】
（第４の実施形態）
図９は、第４の実施形態に従った第１のフリップフロップＦＦ１、第２のフリップフロップＦＦ２、および、転送ゲート回路ＴＧの内部構成の一例を示す図である。第４の実施形態では、転送ゲート回路ＴＧは、第１のマスタラッチ回路ＭＬ１と第２のマスタラッチ回路ＭＬ２との間に接続された転送ＣＭＯＳゲートＣＧ６と、第１のスレーブラッチ回路ＳＬ１の入力と第２のマスタラッチ回路ＭＬ２の出力との間に接続された転送ＣＭＯＳゲートＣＧ７とを含む。
【０１０８】
転送ＣＭＯＳゲートＣＧ６は、第１のフリップフロップＦＦ１から第２のフリップフロップＦＦ２へデータｄ１を転送するときに用いられる。転送ＣＭＯＳゲートＣＧ７は、第２のフリップフロップＦＦ２から第１のフリップフロップＦＦ１へデータｄ２を転送するときに用いられる。尚、転送ＣＭＯＳゲートＣＧ７は、第１の実施形態における転送ＣＭＯＳゲートＣＧ３＿２と同様であるので、その詳細な説明を省略する。以下、転送ＣＭＯＳゲートＣＧ６について説明する。また、スイッチ信号ＳＷ１、ＳＷ２の論理と出力部Ｑ１、Ｑ２から出力されるデータとの関係は、図６に示す関係と同じである。
【０１０９】
転送ＣＭＯＳゲートＣＧ６は、制御信号ｂＣＳＷ１およびｂ（ｂＣＳＷ１）によって制御される点で、第３の実施形態における転送ＣＭＯＳゲートＣＧ５と異なる。制御信号ｂＣＳＷ１は、クロックｂＣＬＫとスイッチ信号ＳＷ１との論理積を示す信号である。制御信号ｂ（ｂＣＳＷ１）は、制御信号ｂＣＳＷ１の反転信号である。転送ＣＭＯＳゲートＣＧ６のその他の構成は、転送ＣＭＯＳゲートＣＧ５と同様である。
【０１１０】
第１のフリップフロップＦＦ１から第２のフリップフロップＦＦ２へデータｄ１を転送する際、スイッチ信号ＳＷ１が（１）となり、制御信号ｂＣＳＷ１がクロックｂＣＬＫを有効にし、クロックｂＣＬＫと同相になる。
【０１１１】
尚、データｄ１を転送する際、第２のマスタラッチ回路ＭＬ２において転送されたデータｄ１が入力データｄ２と衝突しないように、ゲーテッドインバータＧＩ２＿１を制御する必要がある。従って、第４の実施形態において、ゲーテッドインバータＧＩ２＿１は、制御信号ｂＣｂＳＷ１によって制御される。
【０１１２】
また、データｄ１を転送する際、転送ＣＭＯＳゲートＣＧ６は、第２のマスタラッチ回路ＭＬ２がデータをラッチする前にデータを転送する。即ち、第２のマスタラッチ回路ＭＬ２がラッチするデータは、既に転送済みのデータである。従って、ＣＭＯＳゲートＣＧ２はラッチされたデータをそのまま第２のスレーブラッチ回路ＳＬ２＿１へ出力すればよい。よって、ＣＭＯＳゲートＣＧ２は、スイッチ信号ＳＷ１、ＳＷ２を用いることなく、単にクロックＣＬＫによって制御され得る。
【０１１３】
一方、第２のフリップフロップＦＦ２＿１から第１のフリップフロップＦＦ１＿１へデータｄ２を転送する際には、スイッチ信号ＳＷ１が（０）となるため、制御信号ｂＣＳＷ１は、クロックｂＣＬＫを無効にし、（０）に維持される。従って、転送ＣＭＯＳゲートＣＧ６は動作しない。この場合、転送ＣＭＯＳゲートＣＧ７が動作し、第２のフリップフロップＦＦ２から第１のフリップフロップＦＦ１へデータｄ２を転送する。この場合の第１および第２のフリップフロップＦＦ１、ＦＦ２の動作は、第１の実施形態と同様であるので、その詳細な説明は省略する。
【０１１４】
第４の実施形態においても、転送ゲート回路ＴＧは、データを第１のマスタラッチ回路ＭＬ１から第２のマスタラッチ回路ＭＬ２へ直接転送する、あるいは、第２のマスタラッチ回路ＭＬ２から第１のマスタラッチ回路ＭＬ１へ直接転送する。このとき、第４の実施形態による転送ゲート回路ＴＧは、通常のクロックＣＬＫに従って動作し、スキャンクロックを必要としない。従って、第４の実施形態も、第１の実施形態と同様の効果を得ることができる。
【０１１５】
（第４の実施形態の変形例１）
図１０は、第４の実施形態の変形例１を示す図である。変形例１では、図９に示す転送ＣＭＯＳゲートＣＧ６に代えて転送ゲーテッドインバータＧＩ３が第１のマスタラッチ回路ＭＬ１と第２のマスタラッチ回路ＭＬ２との間に接続されている。
【０１１６】
転送ゲーテッドインバータＧＩ３は、制御信号ｂＣＳＷ１によって制御される点で、転送ＣＭＯＳゲートＣＧ６と同様である。ただし、転送ゲーテッドインバータＧＩ３は、制御信号ｂＣＳＷ１の反転信号ｂ（ｂＣＳＷ１）を必要としない。データ転送時に、転送ゲーテッドインバータＧＩ３は、データｄ１を第１のフリップフロップＦＦ１から第２のフリップフロップＦＦ２へ転送する。
【０１１７】
尚、転送ゲーテッドインバータＧＩ３は、データｄ１を反転出力するので、転送ゲーテッドインバータＧＩ３の入力は、入力部Ｄ１と第１のマスタラッチ回路ＭＬ１との間のノードに接続される。よって、転送ゲーテッドインバータＧＩ３は、ゲーテッドインバータＧＩ２＿１によって反転される前にデータｄ１を受け取り、データｄ１を反転して第２のマスタラッチ回路ＭＬ２へ転送する。これにより、転送ゲーテッドインバータＧＩ３は、実質的に転送ＣＭＯＳゲートＣＧ６と同じ論理機能を有することができる。
【０１１８】
変形例１は、第４の実施形態の対応する構成および動作と同様であり、同様の効果を得ることができる。
【０１１９】
尚、変形例１と同様に、ＣＭＯＳゲートＣＧ１、ＣＧ２、転送ＣＭＯＳゲートＣＧ３＿１、ＣＧ３＿２、ＣＧ４〜ＣＧ７も、転送ゲーテッドインバータに置換することができる。
【０１２０】
（第４の実施形態の変形例２）
図１１は、第４の実施形態の変形例２を示す図である。変形例２では、図９に示すゲーテッドインバータＧＩ１＿１に代えて、ノーマルインバータＩｎ１＿４およびＣＭＯＳゲートＣＧ８が、第１のマスタラッチ回路ＭＬ１内に設けられている。また、図９に示すゲーテッドインバータＧＩ２＿１に代えて、ノーマルインバータＩｎ２＿４およびＣＭＯＳゲートＣＧ９が、第２のマスタラッチ回路ＭＬ２内に設けられている。
【０１２１】
ＣＭＯＳゲートＣＧ８は、クロックＣＬＫ、ｂＣＬＫによって制御される。ＣＭＯＳゲートＣＧ８は、クロックＣＬＫが（０）のときに導通状態になり、（１）のときに非導通状態となる。ノーマルインバータＩｎ１＿４およびＣＭＯＳゲートＣＧ８は、ゲーテッドインバータＧＩ１＿１と同じ論理機能を有する。
【０１２２】
ＣＭＯＳゲートＣＧ９は、クロックＣＬＫ、ｂＣＬＫによって制御される。ＣＭＯＳゲートＣＧ９は、クロックＣＬＫが（０）のときに導通状態になり、（１）のときに非導通状態となる。ノーマルインバータＩｎ２＿４およびＣＭＯＳゲートＣＧ９は、ゲーテッドインバータＧＩ２＿１と同じ論理機能を有する。
【０１２３】
変形例２は、第４の実施形態の対応する構成および動作と同様であり、同様の効果を得ることができる。また、ノーマルインバータおよびＣＭＯＳゲートに必要なトランジスタ数は、ゲーテッドインバータに必要なトランジスタ数よりも少ない。従って、変形例２は、トランジスタの個数を削減することができる。
【０１２４】
尚、転送ＣＭＯＳゲートＣＧ６の一端がＣＭＯＳゲートＣＧ８とノーマルインバータＩｎ１＿１との間に接続されているが、転送ＣＭＯＳゲートＣＧ６の一端は、ノーマルインバータＩｎ１＿４とＣＭＯＳゲートＣＧ８との間に接続されていてもよい。
【０１２５】
また、転送ＣＭＯＳゲートＣＧ７をゲーテッドインバータ（図示せず）で構成してもよい。この場合、ゲーテッドインバータの入力は、第２のマスタラッチ回路ＭＬ２の出力に接続され、ゲーテッドインバータの出力は、第１のスレーブラッチ回路ＳＬ１の入力に接続される。このゲーテッドインバータは制御信号ＣＳＷ２で制御され得る。
【０１２６】
第４の実施形態の変形例１および変形例２は互いに組み合わせてもよく、また、第１から第３の実施形態のいずれかと組み合わせてもよい。
【０１２７】
さらに、転送ＣＭＯＳゲートＣＧ５〜ＣＧ７は、Ｎ型トランジスタまたはＰ型トランジスタの一方で形成されていてもよい。
【０１２８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１２９】
ＦＦ１＿１〜ＦＦ１＿３・・・第１のフリップフロップ、ＦＦ２＿１〜ＦＦ２＿３・・・第２のフリップフロップ、ＣＧ１＿１〜ＣＧ１＿３、ＣＧ２＿１〜ＣＧ２＿３・・・ＣＭＯＳゲート、ＭＬ１＿１〜ＭＬ１＿３・・・第１のマスタラッチ回路、ＳＬ１＿１〜ＳＬ１＿３・・・第１のスレーブラッチ回路、ＭＬ２＿１〜ＭＬ２＿３・・・第２のマスタラッチ回路、ＳＬ２＿１〜ＳＬ２＿３・・・第２のスレーブラッチ回路、ＴＧ１〜ＴＧ３・・・転送ゲート回路
【図１】
2014168139.tif 000003
【図２】
2014168139.tif 000004
【図３】
2014168139.tif 000005
【図４】
2014168139.tif 000006
【図５】
2014168139.tif 000007
【図６】
2014168139.tif 000008
【図７】
2014168139.tif 000009
【図８】
2014168139.tif 000010
【図９】
2014168139.tif 000011
【図１０】
2014168139.tif 000012
【図１１】
2014168139.tif 000013