(57)【要約】【課題】  電源電圧が独立に制御される複数のブロックを有する半導体集積回路においてブロック間データ転送を効率よく正確に実施する。【解決手段】  第１および第２中継フリップフロップは、第１クロックと同一の周波数を有する第３クロックの第１および第２遷移エッジに同期して送信フリップフロップの出力データを取り込んで出力する。第１選択回路は、第１および第２中継フリップフロップの出力データの一方を選択して受信フリップフロップに出力する。第１試験フリップフロップは、第１クロックの第１遷移エッジに同期して出力データを反転させる。第２および第３試験フリップフロップは、第３クロックの第１および第２遷移エッジに同期して第１試験フリップフロップの出力データを取り込んで出力する。第１選択制御回路は、第２および第３試験フリップフロップの出力データに基づいて第１選択回路を制御する。【選択図】    図１
2008228077.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一方が可変である第１および第２電源電圧がそれぞれ供給される第１および第２ブロックを有し、前記第１ブロック内の第１クロックの第１遷移エッジに同期して動作する送信フリップフロップから前記第２ブロック内の第２クロックの第１遷移エッジに同期して動作する受信フリップフロップへのデータ転送が実施される半導体集積回路であって、
前記第１クロックと同一の周波数を有する前記第２ブロック内の第３クロックの第１遷移エッジに同期して前記送信フリップフロップの出力データを取り込んで出力する第１中継フリップフロップと、
前記第３クロックの第２遷移エッジに同期して前記送信フリップフロップの出力データを取り込んで出力する第２中継フリップフロップと、
前記第１および第２中継フリップフロップの出力データの一方を選択して前記受信フリップフロップに出力する第１選択回路と、
前記第１クロックの第１遷移エッジに同期して出力データを反転させる第１試験フリップフロップと、
前記第３クロックの第１遷移エッジに同期して前記第１試験フリップフロップの出力データを取り込んで出力する第２試験フリップフロップと、
前記第３クロックの第２遷移エッジに同期して前記第１試験フリップフロップの出力データを取り込んで出力する第３試験フリップフロップと、
前記第２および第３試験フリップフロップの出力データに基づいて前記第１選択回路を制御する第１選択制御回路とを備えることを特徴とする半導体集積回路。
【請求項２】
少なくとも一方が可変である第１および第２電源電圧がそれぞれ供給される第１および第２ブロックを有し、前記第１ブロック内の第１クロックの第１遷移エッジに同期して動作する送信フリップフロップから前記第２ブロック内の第２クロックの第１遷移エッジに同期して動作する受信フリップフロップへのデータ転送が実施される半導体集積回路であって、
前記第１クロックの２倍の周波数を有する前記第２ブロック内の第３クロックの第１遷移エッジに同期して前記送信フリップフロップの出力データを取り込んで出力する第１中継フリップフロップと、
前記第３クロックの第１遷移エッジに同期して前記第１中継フリップフロップの出力データを取り込んで出力する第２中継フリップフロップと、
前記第１および第２中継フリップフロップの出力データの一方を選択して前記受信フリップフロップに出力する第１選択回路と、
前記第１クロックの第１遷移エッジに同期して出力データを反転させる第１試験フリップフロップと、
前記第３クロックの第１遷移エッジに同期して前記第１試験フリップフロップの出力データを取り込んで出力する第２試験フリップフロップと、
前記第３クロックの第１遷移エッジに同期して前記第２試験フリップフロップの出力データを取り込んで出力する第３試験フリップフロップと、
前記第２および第３試験フリップフロップの出力データに基づいて前記第１選択回路を制御する第１選択制御回路とを備えることを特徴とする半導体集積回路。
【請求項３】
請求項１または請求項２に記載の半導体集積回路において、
前記第２および第３試験フリップフロップの出力データの論理値が期待値と一致しない場合にエラー信号を出力するエラー検出回路と、
前記エラー検出回路による前記エラー信号の出力に伴って半導体集積回路の動作を停止させるための動作停止要求信号を出力する動作制御回路とを備えることを特徴とする半導体集積回路。
【請求項４】
請求項１または請求項２に記載の半導体集積回路において、
前記送信フリップフロップおよび前記第１選択回路の出力データの一方を選択して前記受信フリップフロップに出力する第２選択回路と、
前記第１および第２電源電圧が同じ電位に設定される場合に前記第２選択回路に前記送信フリップフロップの出力データを選択させ、前記第１および前記第２電源電圧が異なる電位に設定される場合に前記第２選択回路に前記第１選択回路の出力データを選択させる第２選択制御回路とを備えることを特徴とする半導体集積回路。
【請求項５】
請求項１または請求項２に記載の半導体集積回路において、
前記第１選択制御回路は、前記第１および第２電源電圧の少なくとも一方が変動状態である場合にのみ、前記第１選択回路の制御動作を実施することを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関し、より詳細には、電源電圧が独立に制御される複数のブロックを有する半導体集積回路のブロック間データ転送に関する。
【背景技術】
【０００２】
近時、携帯電話機などの携帯型電子機器においては、音声や動画を再生するシステムが普及してきている。このような携帯型電子機器では、電池の寿命を長くするために、電子機器に搭載される半導体集積回路の消費電力を低減させることが必要になってきている。半導体集積回路の消費電力は、動作周波数（クロック周波数）に比例し、動作電圧（電源電圧）の２乗に比例する。そこで、音声や動画の再生などのアプリケーションで使用される半導体集積回路について、ＤＶＦＳ（Dynamic Voltage Frequency Scaling）と称される技術が適用される場合がある。ＤＶＦＳが適用される場合、半導体集積回路に供給されるクロック信号がアプリケーションにて必要な処理を実行可能な範囲で最低の周波数に設定されるとともに、半導体集積回路に供給される電源電圧がそのクロック周波数での正常な回路動作を保証可能な範囲で最低の電位に設定される。
【０００３】
例えば、携帯電話機などに搭載されるアプリケーションプロセッサでは、動画再生時にはプロセッサコアのクロック周波数および電源電圧が最高値に設定され、音声のみの再生時にはプロセッサコアのクロック周波数および電源電圧が低く設定されて消費電力の低減が図られる。一般に、アプリケーションプロセッサにはプロセッサコアの他に周辺回路も搭載されており、周辺回路のクロック周波数および電源電圧は動画再生時および音声再生時のいずれにおいても固定である。従って、アプリケーションプロセッサには、クロック周波数および電源電圧が変動するプロセッサコアとクロック周波数および電源電圧が固定である周辺回路との２種類の回路が搭載されている。
【０００４】
図１２は、ＤＶＦＳ適用システムの構成例を示している。例えば、携帯電話機におけるＤＶＦＳ適用システムは、ＬＳＩ（Large Scale Integration）１００および電源回路２００を備えて構成されている。ＬＳＩ１００は、ブロック１１０、１２０およびＰＬＬ（Phase Locked Loop）回路１３０を備えて構成されている。例えば、ＬＳＩ１００はアプリケーションプロセッサであり、ブロック１１０、１２０はプロセッサコアおよび周辺回路にそれぞれ相当する。
【０００５】
ブロック１１０は、電源電圧ＶＤ１により駆動されるブロックであり、フリップフロップ（ＦＦ）１１１、１１５、受信データ処理回路１１２、内部処理回路１１３および送信データ生成回路１１４を備えて構成されている。フリップフロップ１１１は、クロック信号ＣＫ１の立ち上がりエッジに同期してブロック１２０内のフリップフロップ１２７の出力データ信号を取り込んで出力する。受信データ処理回路１１２は、フリップフロップ１１１の出力データ信号から内部処理用のデータ信号を生成して出力する。内部処理回路１１３は、受信データ処理回路１１２の出力データ信号を受けて各種処理を実施し、処理結果のデータ信号を出力する。送信データ生成回路１１４は、内部処理回路１１３の出力データ信号から送信用のデータ信号を生成して出力する。フリップフロップ１１５は、クロック信号ＣＫ１の立ち上がりエッジに同期して送信データ生成回路１１４の出力データ信号を取り込んでブロック１２０内のフリップフロップ１２３に出力する。
【０００６】
ブロック１２０は、電源電圧ＶＤ２により駆動されるブロックであり、分周器１２１、１２２、フリップフロップ（ＦＦ）１２３、１２７、受信データ処理回路１２４、内部処理回路１２５、送信データ生成回路１２６、入出力回路１２８および電圧周波数制御回路１２９を備えて構成されている。分周器１２１は、電圧周波数制御回路１２９からの指示に応じて分周比が１／ｍに設定される可変分周器である。分周器１２１の出力クロック信号は、ブロック１１０においてクロックバッファを介してクロック信号ＣＫ１としてフリップフロップ１１１、１１５に供給される。分周器１２２は、分周比が１／ｎに固定された分周器である。例えば、ｎは２であるものとする。分周器１２２の出力クロック信号は、ブロック１２０においてクロックバッファを介してクロック信号ＣＫ２としてフリップフロップ１２３、１２７に供給される。
【０００７】
フリップフロップ１２３は、クロック信号ＣＫ２の立ち上がりエッジに同期してブロック１１０内のフリップフロップ１１５の出力データ信号を取り込んで出力する。受信データ処理回路１２４は、フリップフロップ１２３の出力データ信号から内部処理用のデータ信号を生成して出力する。内部処理回路１２５は、入出力回路１２８の出力データ信号を受け、ブロック１１０内の内部処理回路１１３により処理されるべきデータ信号については送信データ生成回路１２６に出力し、自身により処理されるべきデータ信号については各種処理を実施して処理結果のデータ信号を入出力回路１２８に出力する。また、内部処理回路１２５は、受信データ処理回路１２４の出力データ信号を受けて入出力回路１２８に出力する。送信データ生成回路１２６は、内部処理回路１２５の出力データ信号から送信用のデータ信号を生成して出力する。フリップフロップ１２７は、クロック信号ＣＫ２の立ち上がりエッジに同期して送信データ生成回路１２６の出力データ信号を取り込んでブロック１１０内のフリップフロップ１１１に出力する。入出力回路１２８は、内部処理回路１２５と外部装置とのインタフェース回路として機能する。
【０００８】
電圧周波数制御回路１２９は、ブロック１１０の動作状況に応じてクロック信号ＣＫ１の必要周波数を導出し、その周波数に基づいて分周器１２１の分周比を指示するとともに電源回路２００から供給される電源電圧ＶＤ１の電位を指示する。電源回路２００は、電池などから供給される電圧ＶＤ（例えば５．０Ｖ）から電源電圧ＶＤ１、ＶＤ２を生成してＬＳＩ１００に供給する。電源回路２００は、電源電圧ＶＤ１をＬＳＩ１００（電圧周波数制御回路１２９）から指示される電位（例えば、０．６〜１．２Ｖ）に設定し、電源電圧ＶＤ２を所定電位（例えば、１．２Ｖ）に設定する。
【０００９】
図１３は、ＤＶＦＳの概要を示している。ここでは、図１３（ａ）に示すように、図１２に示したＬＳＩ１００におけるＰＬＬ回路１３０からフリップフロップ１１５、１２３までのクロックパスＰ１、Ｐ２に着目する。なお、ＬＳＩ１００は、電源電圧ＶＤ１の電位と電源電圧ＶＤ２の電位とが等しい場合に伝播遅延時間ｔＣＫ１（ＰＬＬ回路１３０から出力されたクロック信号ＣＫ０が分周器１２１などを経由してフリップフロップ１１５に到達するまでの時間）と伝播遅延時間ｔＣＫ２（ＰＬＬ１３０から出力されたクロック信号ＣＫ０が分周器１２２などを経由してフリップフロップ１２３に到達するまでの時間）とが等しくなるように設計されているものとする。
【００１０】
図１３（ｂ）において、時刻ｔ１以前の期間では、ブロック１１０（プロセッサコア）にて多くの処理が実施される必要があり、分周器１２１の分周比が１（ｍ＝１）に設定され、ブロック１１０内のクロック信号ＣＫ１が高い周波数に設定されている。なお、ブロック１２０（周辺回路）内のクロック信号ＣＫ２の周波数は低くてもよいため、分周器１２２の分周比は１／２（ｎ＝２）に固定されている。また、電源電圧ＶＤ１は電源電圧ＶＤ２と同様に高い電位に設定されており、伝播遅延時間ｔＣＫ１、ｔＣＫ２が等しくなっている。
【００１１】
時刻ｔ１において、ブロック１１０にて実施されるべき処理が少なくなると、分周器１２１の分周器１２１の分周比が１／２（ｎ＝２）に設定され、クロック信号ＣＫ１の周波数が下げられる。続いて、時刻ｔ２において、電源電圧ＶＤ１の電位が下げられる。これに伴って、伝播遅延時間ｔＣＫ１が増加して伝播遅延時間ｔＣｋ２より長くなる。この後、時刻ｔ５において、ブロック１１０にて実施されるべき処理が再び多くなるものとすると、時刻ｔ５より前の時刻ｔ３において、電源電圧ＶＤ１の電位が時刻ｔ２以前の電位（即ち、電源電圧ＶＤ２の電位）まで上げられる。これに伴って、伝播遅延時間ｔＣＫ１が減少して伝播遅延時間ｔＣｋ２と等しくなる。続いて、時刻ｔ５より前の時刻ｔ４において、分周器１２１の分周比が１（ｍ＝１）に設定され、クロック信号ＣＫ１の周波数が時刻ｔ１以前の周波数まで上げられる。このように、ＤＶＦＳの適用時には、時刻ｔ２から時刻ｔ３までの期間のように、伝播遅延時間ｔＣＫ１が伝播遅延時間ｔＣＫ２より長くなる。
【００１２】
図１４は、ＤＶＦＳ適用時の問題点を示している。ここでは、図１４（ａ）に示すように、図１２に示したＬＳＩ１００におけるＰＬＬ回路１３０からフリップフロップ１１５、１２３までのクロックパスＰ１、Ｐ２と送信データ生成回路１１４から受信データ処理回路１２４までのデータパスＰ３とに着目する。
ＬＳＩ１００は、電源電圧ＶＤ１の電位と電源電圧ＶＤ２の電位とが等しい場合（図１３（ｂ）における時刻ｔ１以前の期間または時刻ｔ４以降の期間）、即ち、伝播遅延時間ｔＣＫ１、ｔＣＫ２が等しい場合にフリップフロップ１１５からフリップフロップ１２３へのデータ転送が正しく実施されるように設計されている。従って、ＬＳＩ１００は、図１４（ｂ）に示すように、時刻ｔ１で発生するクロック信号ＣＫ１の立ち上がりエッジに同期してフリップフロップ１１５から送信されたデータ信号が時刻ｔ２で発生するクロック信号ＣＫ２の立ち上がりエッジに同期してフリップフロップ１２３に受信されるように設計されている。即ち、受信データ処理回路１２４は、時刻ｔ１で発生するクロック信号ＣＫ１の立ち上がりエッジに同期してフリップフロップ１１５から送信されたデータ信号が時刻ｔ２で発生するクロック信号ＣＫ２の立ち上がりエッジに同期してフリップフロップ１２３から供給されることを想定して構成されている。
【００１３】
ところが、ＤＶＦＳの適用に伴って電源電圧ＶＤ１の電位が電源電圧ＶＤ２の電位より低く設定されている場合（図１３（ｂ）における時刻ｔ２から時刻ｔ３までの期間）、伝播遅延時間ｔＣＫ１が伝播遅延時間ｔＣＫ２より長くなるため、図１４（ｃ）に示すように、クロック信号ＣＫ１の立ち上がりエッジの発生タイミングが遅くなり、フリップフロップ１１５からフリップフロップ１２３へのデータ転送が正しく実施されなくなる可能性がある。
【００１４】
なお、電源電圧ＶＤ１が可変であり、電源電圧ＶＤ２が固定である場合について述べてきたが、電源電圧ＶＤ１、ＶＤ２の双方が可変である場合でも、電源電圧ＶＤ１の電位と電源電圧ＶＤ２の電位とが異なるときに、伝播遅延時間ｔＣＫ１、ｔＣＫ２の時間差がクロック信号ＣＫ２の１サイクル以上になり、フリップフロップ１１５からフリップフロップ１２３へのデータ転送が正しく実施されなくなる可能性がある。
【００１５】
図１５は、ＤＶＦＳ適用時の問題点を解決するための従来技術を示している。前述のようなＤＶＦＳ適用時の問題点を解決する従来技術としては、非同期ＦＩＦＯを利用する方法が知られている（例えば、非特許文献１参照）。図１５（ａ）に示すＬＳＩ１００ａは、図１２に示したＬＳＩ１００に非特許文献１の技術を適用したものに相当する。ＬＳＩ１００ａでは、ブロック１２０ａにおけるフリップフロップ１２３の前段に非同期ＦＩＦＯ１５０が設けられることで、クロック信号ＣＫ１、ＣＫ２の位相関係（即ち、伝播遅延時間ｔＣＫ１、ｔＣＫ２の大小関係）に拘わらず、フリップフロップ１１５からフリップフロップ１２３へのデータ転送が確実に実施される。
【００１６】
また、ＤＶＦＳ適用時の問題点を解決するための別の従来技術としては、クロック信号の位相調整（遅延調整）を実施する方法が知られている（例えば、特許文献１あるいは非特許文献２参照）。図１５（ｂ）に示すＬＳＩ１００ｂは、図１２に示したＬＳＩ１００に非特許文献２の技術を適用したものに相当する。ＬＳＩ１００ｂでは、位相比較器１６０によりクロック信号ＣＫ１、ＣＫ２の位相差が検出され、位相調整回路１６１によりクロック信号ＣＫ１、ＣＫ２の位相が一致するように位相比較器１６０の検出結果に基づいてクロック信号ＣＫ１の位相が調整される。これにより、電源電圧ＶＤ１の電位が電源電圧ＶＤ２の電位より低い場合でも、クロック信号ＣＫ１、ＣＫ２の位相が揃うため、フリップフロップ１１１からフリップフロップ１２３へのデータ転送が正しく実施される。なお、ＬＳＩ１００ｂは、２つのＰＬＬ回路（クロック信号ＣＫ０ａを生成するＰＬＬ回路１３０ａおよびクロック信号ＣＫ０ｂを生成するＰＬＬ回路１３０ｂ）を用いて構成されているが、１つのＰＬＬ回路を用いて構成される場合もある。
【特許文献１】特開２００５−１０９９５５号公報（図１）
【非特許文献１】K. Nose et al.,“Deterministic Inter-Core Synchronization with Periodically All-in-Phase Clocking for Low-Power Multi-core SoCs,”ISSCC Dig. Tech. Papers, pp. 296-297, 2005.
【非特許文献２】T. Fujiyoshi et al.,“An H.264/MPEG-4 Audio/Visual Codec LSI with Module-Wise Dynamic Voltage/Frequency Scaling,”ISSCC Dig. Tech. Papers, pp. 132-133, 2005.
【発明の開示】
【発明が解決しようとする課題】
【００１７】
非特許文献１の技術を採用した場合、送信側フリップフロップの出力データ信号は非同期ＦＩＦＯにおける複数段のバッファを経由して受信側フリップフロップに供給されるため、送信側フリップフロップから受信側フリップフロップへのデータ転送に要する時間が２サイクル以上長くなってしまう。また、非同期ＦＩＦＯに対するデータリクエスト信号およびデータアクノレッジ信号の授受が必要であるため、データスループットが低下してしまう。非特許文献１（Figure 16.3.7）には、クロック位相を制御しない場合にデータスループットが５０％低下する旨が記載されている。このデータスループットの低下がＬＳＩの処理性能にそのまま影響するのであれば、ＬＳＩの処理性能を維持するためには、クロック周波数を２倍にする必要があり、その結果、ＬＳＩの消費電力が２倍に増大してしまう。
【００１８】
また、非特許文献２の技術を採用した場合、クロック信号の位相調整（遅延調整）が実施されるため、クロック信号のジッタ量が増加する。例えば、クロック信号の位相調整に用いられる遅延ゲート１段の遅延時間が１００ｐｓであるものとすると、ＬＳＩの動作中に遅延ゲート段数の増減の繰り返しによりクロッ信号の位相が調整されるため、クロック信号のジッタ量が１００ｐｓ増加することになる。例えば、クロック位相を制御しない場合に周波数が２００ＭＨｚのクロック信号を用いて動作するＬＳＩでは、クロックジッタ量がクロック周波数の５％に相当するため、クロック周波数を５％低くする必要がある。また、クロック周波数を維持するためには、電源電圧を５％高くして回路の動作速度を上げる必要があり、その結果、ＬＳＩの消費電力が１０％程度増加してしまう。
【００１９】
本発明の目的は、電源電圧が独立に制御される複数のブロックを有する半導体集積回路においてブロック間データ転送を効率よく正確に実施することにある。
【課題を解決するための手段】
【００２０】
本発明の第１形態では、半導体集積回路は、少なくとも一方が可変である第１および第２電源電圧がそれぞれ供給される第１および第２ブロックを有し、第１ブロック内の第１クロックの第１遷移エッジに同期して動作する送信フリップフロップから第２ブロック内の第２クロックの第１遷移エッジに同期して動作する受信フリップフロップへのデータ転送が実施される半導体集積回路であって、第１および第２中継フリップフロップと、第１選択回路と、第１〜第３試験フリップフロップと、第１選択制御回路とを備えて構成される。
【００２１】
第１中継フリップフロップは、第１クロックと同一の周波数を有する第２ブロック内の第３クロックの第１遷移エッジに同期して送信フリップフロップの出力データを取り込んで出力する。第２中継フリップフロップは、第３クロックの第２遷移エッジに同期して送信フリップフロップの出力データを取り込んで出力する。第１選択回路は、第１および第２中継フリップフロップの出力データの一方を選択して受信フリップフロップに出力する。第１試験フリップフロップは、第１クロックの第１遷移エッジに同期して出力データを反転させる。第２試験フリップフロップは、第３クロックの第１遷移エッジに同期して第１試験フリップフロップの出力データを取り込んで出力する。第３試験フリップフロップは、第３クロックの第２遷移エッジに同期して第１試験フリップフロップの出力データを取り込んで出力する。第１選択制御回路は、第２および第３試験フリップフロップの出力データに基づいて第１選択回路を制御する。
【００２２】
以上のような第１形態では、第１および第２電源電圧の変動に起因して第１および第２クロックの位相差が変化した場合でも、データスループットを低下させることなく、レイテンシの増加を最小限に抑えて、クロックジッタ量を増加させることなく、第１ブロック内の送信フリップフロップから第２ブロック内の受信フリップフロップへのデータ転送を正確に実施することができる。また、第１および第２クロックの位相を直接比較する場合に比べて、半導体集積回路の設計時に送信フリップフロップから受信フリップフロップへのデータ転送の遅延時間を厳密に調整することが不要になるため、半導体集積回路の設計容易化に寄与でき、半導体集積回路の設計期間の短縮が可能になる。
【００２３】
本発明の第２形態では、半導体集積回路は、少なくとも一方が可変である第１および第２電源電圧がそれぞれ供給される第１および第２ブロックを有し、第１ブロック内の第１クロックの第１遷移エッジに同期して動作する送信フリップフロップから第２ブロック内の第２クロックの第１遷移エッジに同期して動作する受信フリップフロップへのデータ転送が実施される半導体集積回路であって、第１および第２中継フリップフロップと、第１選択回路と、第１〜第３試験フリップフロップと、第１選択制御回路とを備えて構成される。
【００２４】
第１中継フリップフロップは、第１クロックの２倍の周波数を有する第２ブロック内の第３クロックの第１遷移エッジに同期して送信フリップフロップの出力データを取り込んで出力する。第２中継フリップフロップは、第３クロックの第１遷移エッジに同期して第１中継フリップフロップの出力データを取り込んで出力する。第１選択回路は、第１および第２中継フリップフロップの出力データの一方を選択して受信フリップフロップに出力する。第１試験フリップフロップは、第１クロックの第１遷移エッジに同期して出力データを反転させる。第２試験フリップフロップは、第３クロックの第１遷移エッジに同期して第１試験フリップフロップの出力データを取り込んで出力する。第３試験フリップフロップは、第３クロックの第１遷移エッジに同期して第２試験フリップフロップの出力データを取り込んで出力する。第１選択制御回路は、第２および第３試験フリップフロップの出力データに基づいて第１選択回路を制御する。
【００２５】
以上のような第２形態では、第３クロックの周波数が第１ブロックの周波数の２倍であるため、第１および第２中継フリップフロップの出力データの関係と第２および第３試験フリップフロップの出力データの関係とは第１形態と同様になり、第１形態と同様の効果が得られる。また、第３クロックの第１遷移エッジに同期して動作する第２中継フリップフロップおよび第３試験フリップフロップを用いることで、半導体集積回路のタイミング設計が容易になり、半導体集積回路の設計期間の短縮に寄与できる。
【発明の効果】
【００２６】
本発明によれば、電源電圧が独立に制御される複数のブロックを有する半導体集積回路においてブロック間データ転送を効率よく正確に実施することができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施形態について図面を用いて説明する。図１は、本発明の第１実施形態を示している。第１実施形態の半導体集積回路ＩＣは、電源回路ＰＷ、クロック発生回路ＣＫＧおよびブロックＢＬＫＡ、ＢＬＫＢを備えて構成されている。電源回路ＰＷは、ＤＣ−ＤＣコンバータなどを用いて構成され、外部電源電圧ＶＤから内部電源電圧ＶＤＡ、ＶＤＢを生成してブロックＢＬＫＡ、ＢＬＫＢに供給する。電源回路ＰＷは、電圧制御信号ＶＤ＿ＳＥＴが“０”に設定されている場合に電源電圧ＶＤＡを所定電位Ｖ０に設定し、電圧制御信号ＶＤ＿ＳＥＴが“１”に設定されている場合に電源電圧ＶＤＡを所定電位Ｖ０より低い所定電圧Ｖ１に設定する。また、電源回路ＰＷは、電圧制御信号ＶＤ＿ＳＥＴの論理値とは無関係に電源電圧ＶＤＢを所定電位Ｖ０に設定する。また、電源回路ＰＷは、電源電圧ＶＤＡが変動状態である場合に電圧状態信号ＶＤ＿ＲＤＹを“０”に設定し、電源電圧ＶＤＡが安定状態である場合に電圧状態信号ＶＤ＿ＲＤＹを“１”に設定する。なお、電源回路ＰＷは、半導体集積回路ＩＣの内部に設けられる必要はなく、半導体集積回路ＩＣの外部に設けられてもよい。クロック発生回路ＣＫＧは、ＰＬＬ回路などを用いて構成され、クロック信号ＣＫを生成してブロックＢＬＫＢに供給する。
【００２８】
ブロックＢＬＫＡは、電源電圧ＶＤＡにより駆動されるブロックであり、送信データ生成回路ＴＤＧ、フリップフロップＦＴ０〜ＦＴｋ、ＦＤＴ０、ＦＤＴ１、データバッファＢ０〜Ｂｋ、ＢＤを備えて構成されている。送信データ生成回路ＴＤＧは、ｋ＋１ビットのデータ信号を生成して出力する。フリップフロップＦＴ０〜ＦＴｋは、クロック信号ＣＫＡの立ち上がりエッジに同期して送信データ生成回路ＴＤＧの出力データ信号を取り込んで出力する。フリップフロップＦＴ０〜ＦＴｋの出力データ信号は、データバッファＢ０〜Ｂｋを介してデータ信号Ｄ０〜ＤｋとしてブロックＢＬＫＢに供給される。
【００２９】
フリップフロップＦＤＴ０、ＦＤＴ１は、クロック信号ＣＫＡの立ち上がりエッジに同期して自身の出力データ信号を反転させたデータ信号を取り込んで出力する。従って、フリップフロップＦＤＴ０、ＦＤＴ１の出力データ信号は、クロック信号ＣＫＡの立ち上がりエッジが発生する度に反転する。また、フリップフロップＦＤＴ０、ＦＤＴ１の出力データ信号は、リセット信号ＲＥＳＥＴの立ち上がりエッジに応答して“０”に初期化される。なお、リセット信号ＲＥＳＥＴは、半導体集積回路ＩＣのチップ全体の動作を制御するチップ制御回路（図示せず）から供給される制御信号であり、半導体集積回路ＩＣのリセット投入に伴って“１”に設定され、半導体集積回路ＩＣのリセット解除に伴って“０”に設定される。フリップフロップＦＤＴ０の出力データ信号は、データバッファを介すことなくデータ信号ＤＤ０としてブロックＢＬＫＢに供給される。フリップフロップＦＤＴ１の出力データ信号は、データバッファＢＤを介してデータ信号ＤＤ１としてブロックＢＬＫＢに供給される。なお、データバッファＢＤは、データバッファＢ０〜Ｂｋの遅延時間より大きい遅延時間を有している。
【００３０】
ブロックＢＬＫＢは、電源電圧ＶＤＢにより駆動されるブロックであり、分周器ＤＩＶＡ、ＤＩＶＢ、フリップフロップＦＰ０〜ＦＰｋ、ＦＮ０〜ＦＮｋ、ＦＲ０〜ＦＲｋ、ＦＤＰ０、ＦＤＰ１、ＦＤＮ０、ＦＤＮ１、セレクタＭＵＸＡ０〜ＭＵＸＡｋ、ＭＵＸＢ０〜ＭＵＸＢｋ、受信データ処理回路ＲＤＰ、セレクタ制御回路ＳＣおよび電圧周波数制御回路ＶＦＣを備えて構成されている。分周器ＤＩＶＡは、周波数制御信号ＦＲ＿ＳＥＴが“０”に設定されている場合に分周比が１（ｍ＝１）に設定され、周波数制御信号ＦＲ＿ＳＥＴが“１”に設定されている場合に分周比が１／２（ｍ＝２）に設定される可変分周器である。従って、分周器ＤＩＶＡの出力クロック信号の周波数は、周波数制御信号ＦＲ＿ＳＥＴが“０”に設定されている場合にクロック信号ＣＫの周波数に設定され、周波数制御信号ＦＲ＿ＳＥＴが“１”に設定されている場合にクロック信号ＣＫの周波数の１／２に設定される。分周器ＤＩＶＡの出力クロック信号は、ブロックＢＬＫＡにおいてクロックバッファ（図示せず）を介してクロック信号ＣＫＡとしてフリップフロップＦＴ０〜ＦＴｋ、ＦＤＴ０、ＦＤＴ１に供給されるとともに、ブロックＢＬＫＢにおいてクロックバッファ（図示せず）を介してクロック信号ＣＫＣとしてフリップフロップＦＰ０〜ＦＰｋ、ＦＮ０〜ＦＮｋ、ＦＤＰ０、ＦＤＰ１、ＦＤＮ０、ＦＤＮ１に供給される。分周器ＤＩＶＢは、分周比が１／２（ｎ＝２）に固定された分周器である。従って、分周器ＤＩＶＢの出力クロック信号の周波数は、クロック信号ＣＫの周波数の１／２に設定される。分周器ＤＩＶＢの出力クロック信号は、ブロックＢＬＫＢにおいてクロックバッファ（図示せず）を介してクロック信号ＣＫＢとしてフリップフロップＦＲ０〜ＦＲｋに供給される。
【００３１】
フリップフロップＦＰ０〜ＦＰｋは、クロック信号ＣＫＣの立ち上がりエッジに同期してデータ信号Ｄ０〜Ｄｋを取り込んでデータ信号ＤＰ０〜ＤＰｋとして出力する。フリップフロップＦＮ０〜ＦＮｋは、クロック信号ＣＫＣの立ち下がりエッジに同期してデータ信号Ｄ０〜Ｄｋを取り込んでデータ信号ＤＮ０〜ＤＮｋとして出力する。セレクタＭＵＸＡ０〜ＭＵＸＡｋは、セレクタ制御信号ＳＥＬＡが“０”に設定されている場合にデータ信号ＤＰ０〜ＤＰｋを選択してデータ信号ＤＭ０〜ＤＭｋとして出力し、セレクタ制御信号ＳＥＬＡが“１”に設定されている場合にデータ信号ＤＮ０〜ＤＮｋを選択してデータ信号ＤＭ０〜ＤＭｋとして出力する。セレクタＭＵＸＢ０〜ＭＵＸＢｋは、セレクタ制御信号ＳＥＬＢが“０”に設定されている場合にデータ信号Ｄ０〜Ｄｋを選択して出力し、セレクタ制御信号ＳＥＬＢが“１”に設定されている場合にデータ信号ＤＭ０〜ＤＭｋを選択して出力する。フリップフロップＦＲ０〜ＦＲｋは、クロック信号ＣＫＢの立ち上がりエッジに同期してセレクタＭＵＸＢ０〜ＭＵＸＢｋの出力データ信号を取り込んで出力する。受信データ処理回路ＲＤＰは、フリップフロップＦＲ０〜ＦＲｋの出力データ信号を受けてデータ処理を実施する。
【００３２】
フリップフロップＦＤＰ０、ＦＤＰ１は、クロック信号ＣＫＣの立ち上がりエッジに同期してデータ信号ＤＤ０、ＤＤ１を取り込んでデータ信号ＤＤＰ０、ＤＤＰ１として出力する。フリップフロップＦＤＮ０、ＦＤＮ１は、クロック信号ＣＫＣの立ち下がりエッジに同期してデータ信号ＤＤ０、ＤＤ１を取り込んでデータ信号ＤＤＮ０、ＤＤＮ１として出力する。セレクタ制御回路ＳＣは、データ信号ＤＤＰ０、ＤＤＮ０、ＤＤＰ１、ＤＤＮ１、エラーリセット信号ＥＲＲ＿ＲＳＴおよびクロック信号ＣＫＣに基づいて、セレクタ制御信号ＳＥＬＡおよび４ビットのエラーコード信号ＥＲＲ＿ＣＯＤＥを生成する。セレクタ制御回路ＳＣの詳細動作については、図２を用いて後述する。
【００３３】
電圧周波数制御回路ＶＦＣは、モード制御信号ＭＯＤＥおよびエラーコード信号ＥＲＲ＿ＣＯＤＥに基づいて、セレクタ制御信号ＳＥＬＢ、周波数制御信号ＦＲ＿ＳＥＴ、電圧制御信号ＶＤ＿ＳＥＴおよび割り込み信号ＩＮＴＲＰＴを生成する。電圧周波数制御回路ＶＦＣの詳細動作については、図３を用いて後述する。なお、モード制御信号ＭＯＤＥは、チップ制御回路から供給される制御信号であり、ＤＶＦＳの適用を許可する場合に“１”に設定され、ＤＶＦＳの適用を禁止する場合に“０”に設定される。また、割り込み信号ＩＮＴＲＰＴは、チップ制御回路に供給される制御信号である。チップ制御回路は、割り込み信号ＩＮＴＲＰＴの立ち上がりエッジに応答して半導体集積回路ＩＣのチップ全体の動作を停止させ、割り込み信号ＩＮＴＲＰＴの立ち下がりエッジに応答して半導体集積回路ＩＣのチップ全体の動作を再開させる。
【００３４】
図２は、セレクタ制御回路ＳＣ（図１）の動作フローを示している。セレクタ制御回路ＳＣは、半導体集積回路ＩＣのリセット投入に伴って、セレクタ制御信号ＳＥＬＡを“０”に初期化するとともに、４ビットのエラーコード信号ＥＲＲ＿ＣＯＤＥを“００００”に初期化する。この後、半導体集積回路ＩＣのリセット解除に伴って、セレクタ制御回路ＳＣの動作はステップＳ１０１に移行する。
【００３５】
ステップＳ１０１において、セレクタ制御回路ＳＣは、クロック信号ＣＫＣの立ち下がりエッジの検出に伴って、データ信号ＤＤＰ０の論理値とデータ信号ＤＤＰ１の論理値とが一致するか否かを判定する。データ信号ＤＤＰ０の論理値とデータ信号ＤＤＰ１の論理値とが一致する場合、セレクタ制御回路ＳＣの動作はステップＳ１０２に移行する。一方、データ信号ＤＤＰ０の論理値とデータ信号ＤＤＰ１の論理値とが一致しない場合、セレクタ制御回路ＳＣの動作はステップＳ１０３に移行する。
【００３６】
ステップＳ１０２において、セレクタ制御回路ＳＣは、セレクタＭＵＸＡ０〜ＭＵＸＡｋにデータ信号ＤＰ０〜ＤＰｋを選択させるべくセレクタ制御信号ＳＥＬＡを“０”に設定する。この後、セレクタ制御回路ＳＣの動作はステップＳ１０１に移行する。
ステップＳ１０３において、セレクタ制御回路ＳＣは、データ信号ＤＤＮ０の論理値とデータ信号ＤＤＮ１の論理値とが一致するか否かを判定する。データ信号ＤＤＮ０の論理値とデータ信号ＤＤＮ１の論理値とが一致する場合、セレクタ制御回路ＳＣの動作はステップＳ１０４に移行する。一方、データ信号ＤＤＮ０の論理値とデータ信号ＤＤＮ１の論理値とが一致しない場合、セレクタ制御回路ＳＣの動作はステップＳ１０５に移行する。
【００３７】
ステップＳ１０４において、セレクタ制御回路ＳＣは、セレクタＭＵＸＡ０〜ＭＵＸＡｋにデータ信号ＤＮ０〜ＤＮｋを選択させるべくセレクタ制御信号ＳＥＬＡを“１”に設定する。この後、セレクタ制御回路ＳＣの動作はステップＳ１０１に移行する。
ステップＳ１０５において、セレクタ制御回路ＳＣは、４ビットのエラーコード信号ＥＲＲ＿ＣＯＤＥをデータ信号ＤＤＰ０、ＤＤＰ１、ＤＤＮ０、ＤＤＮ１の論理値に設定する。この後、セレクタ制御回路ＳＣの動作はステップＳ１０６に移行する。
【００３８】
ステップＳ１０６において、セレクタ制御回路ＳＣは、エラーリセット信号ＥＲＲ＿ＲＳＴが“１”に設定されているか否かを判定する。エラーリセット信号ＥＲＲ＿ＲＳＴが“１”に設定されている場合、セレクタ制御回路ＳＣの動作はステップＳ１０７に移行する。一方、エラーリセット信号ＥＲＲ＿ＲＳＴが“１”に設定されていない場合、セレクタ制御回路ＳＣの動作はステップＳ１０６に再度移行する。
【００３９】
ステップＳ１０７において、セレクタ制御回路ＳＣは、エラーコード信号ＥＲＲ＿ＣＯＤＥを“００００”に設定する。この後、セレクタ制御回路ＳＣの動作はステップＳ１０１に移行する。
図３は、電圧周波数制御回路ＶＦＣ（図１）の動作フローを示している。電圧周波数制御回路ＶＦＣは、半導体集積回路ＩＣのリセット投入に伴って、セレクタ制御信号ＳＥＬＢ、周波数制御信号ＦＲ＿ＳＥＴ、電圧制御信号ＶＤ＿ＳＥＴおよび割り込み信号ＩＮＴＲＰＴを“０”に初期化する。この後、半導体集積回路ＩＣのリセット解除に伴って、電圧周波数制御回路ＶＦＣの動作はステップＳ２０１に移行する。
【００４０】
ステップＳ２０１において、電圧周波数制御回路ＶＦＣは、モード制御信号ＭＯＤＥが“０”に設定されているか否かを判定する。モード制御信号ＭＯＤＥが“０”に設定されている場合（即ち、ＤＶＦＳの適用が禁止されている場合）、電圧周波数制御回路ＶＦＣの動作はステップＳ２０１に再度移行する。一方、モード制御信号ＭＯＤＥが“０”に設定されていない場合（即ち、ＤＶＦＳの適用が許可されている場合）、電圧周波数制御回路ＶＦＣの動作はステップＳ２０２に移行する。
【００４１】
ステップＳ２０２において、電圧周波数制御回路ＶＦＣは、チップ制御回路に半導体集積回路ＩＣのチップ全体の動作を停止させるべく割り込み信号ＩＮＴＲＰＴを“１”に設定する。この後、電圧周波数制御回路ＶＦＣの動作はステップＳ２０３に移行する。
ステップＳ２０３において、電圧周波数制御回路ＶＦＣは、分周器ＤＩＶＡに分周比を１／２（ｍ＝２）に設定させるべく周波数制御信号ＦＲ＿ＳＥＴを“１”に設定する。この後、電圧周波数制御回路ＶＦＣの動作はステップＳ２０４に移行する。
【００４２】
ステップＳ２０４において、電圧周波数制御回路ＶＦＣは、電源回路ＰＷに電源電圧ＶＤＡを所定電位Ｖ１に設定させるべく電圧制御信号ＶＤ＿ＳＥＴを“１”に設定する。この後、電圧周波数制御回路ＶＦＣの動作はステップＳ２０５に移行する。
ステップＳ２０５において、電圧周波数制御回路ＶＦＣは、セレクタＭＵＸＢ０〜ＭＵＸＢｋにデータ信号ＤＭ０〜ＤＭｋを選択させるべくセレクタ制御信号ＳＥＬＢを“１”に設定する。この後、電圧周波数制御回路ＶＦＣの動作はステップＳ２０６に移行する。
【００４３】
ステップＳ２０６において、電圧周波数制御回路ＶＦＣは、チップ制御回路に半導体集積回路ＩＣのチップ全体の動作を再開させるべく割り込み信号ＩＮＴＲＰＴを“０”に設定する。この後、電圧周波数制御回路ＶＦＣの動作はステップＳ２０７に移行する。
ステップＳ２０７において、電圧周波数制御回路ＶＦＣは、エラーコード信号ＥＲＲ＿ＣＯＤＥが“００００”に設定されているか否かを判定する。エラーコード信号ＥＲＲ＿ＣＯＤＥが“００００”に設定されている場合、電圧周波数制御回路ＶＦＣの動作はステップＳ２１２に移行する。一方、エラーコード信号ＥＲＲ＿ＣＯＤＥが“００００”に設定されていない場合、電圧周波数制御回路ＶＦＣの動作はステップＳ２０８に移行する。
【００４４】
ステップＳ２０８において、電圧周波数制御回路ＶＦＣは、チップ制御回路に半導体集積回路ＩＣのチップ全体の動作を停止させるべく割り込み信号ＩＮＴＲＰＴを“１”に設定する。この後、電圧周波数制御回路ＶＦＣの動作はステップＳ２０９に移行する。
ステップＳ２０９において、電圧周波数制御回路ＶＦＣは、電源回路ＰＷに電源電圧ＶＤＡを所定電位Ｖ０に設定させるべく電圧制御信号ＶＤ＿ＳＥＴを“０”に設定する。この後、電圧周波数制御回路ＶＦＣの動作はステップＳ２１０に移行する。
【００４５】
ステップＳ２１０において、電圧周波数制御回路ＶＦＣは、セレクタ制御回路ＳＣにエラーコード信号ＥＲＲ＿ＣＯＤＥを“００００”に設定させるべくエラーリセット信号ＥＲＲ＿ＲＳＴを“１”に設定する。この後、電圧周波数制御回路ＶＦＣの動作はステップＳ２１１に移行する。
ステップＳ２１１において、電圧周波数制御回路ＶＦＣは、エラーリセット信号ＥＲＲ＿ＲＳＴを“０”に設定するとともに、チップ制御回路に半導体集積回路ＩＣのチップ全体の動作を再開させるべく割り込み信号ＩＮＴＲＰＴを“０”に設定する。この後、電圧周波数制御回路ＶＦＣの動作はステップＳ２０７に移行する。
【００４６】
ステップＳ２１２において、電圧周波数制御回路ＶＦＣは、モード制御信号ＭＯＤＥが“１”に設定されているか否かを判定する。モード制御信号ＭＯＤＥが“１”に設定されている場合、電圧周波数制御回路ＶＦＣの動作はステップＳ２０７に移行する。一方、モード制御信号ＭＯＤＥが“１”に設定されていない場合、電圧周波数制御回路ＶＦＣの動作はステップＳ２１３に移行する。
【００４７】
ステップＳ２１３において、電圧周波数制御回路ＶＦＣは、チップ制御回路に半導体集積回路ＩＣのチップ全体の動作を停止させるべく割り込み信号ＩＮＴＲＰＴを“１”に設定する。この後、電圧周波数制御回路ＶＦＣの動作はステップＳ２１４に移行する。
ステップＳ２１４において、電圧周波数制御回路ＶＦＣは、電源回路ＰＷに電源電圧ＶＤＡを所定電圧Ｖ０に設定させるべく電圧制御信号ＶＤ＿ＳＥＴを“０”に設定する。この後、電圧周波数制御回路ＶＦＣの動作はステップＳ２１５に移行する。
【００４８】
ステップＳ２１５において、電圧周波数制御回路ＶＦＣは、分周器ＤＩＶＡに分周比を１（ｍ＝１）に設定させるべく周波数制御信号ＦＲ＿ＳＥＴを“０”に設定する。この後、電圧周波数制御回路ＶＦＣの動作はステップＳ２１６に移行する。
ステップＳ２１６において、電圧周波数制御回路ＶＦＣは、セレクタＭＵＸＢ０〜ＭＵＸＢｋにデータ信号Ｄ０〜Ｄｋを選択させるべくセレクタ制御信号ＳＥＬＢを“０”に設定する。この後、電圧周波数制御回路ＶＦＣの動作はステップＳ２１７に移行する。
【００４９】
ステップＳ２１７において、電圧周波数制御回路ＶＦＣは、チップ制御回路に半導体集積回路ＩＣのチップ全体の動作を再開させるべく割り込み信号ＩＮＴＲＰＴを“０”に設定する。この後、電圧周波数制御回路ＶＦＣの動作はステップＳ２０１に移行する。
図４は、半導体集積回路ＩＣ（図１）におけるブロック間データ転送の動作タイミング（その１）を示している。なお、図４に示す動作例では、モード制御信号ＭＯＤＥが“１”に設定されており、その結果、セレクタ制御信号ＳＥＬＢ、周波数制御信号ＦＲ＿ＳＥＴおよび電圧制御信号ＶＤ＿ＳＥＴが“１”に設定されているものとする。
【００５０】
クロック発生回路ＣＫＧから出力されるクロック信号ＣＫは、分周器ＤＩＶＡにより１／２分周されて伝播遅延時間ｔＣＫＡの経過後にフリップフロップＦＴ０〜ＦＴｋ、ＦＤＴ０、ＦＤＴ１に到達する。また、クロック信号ＣＫは、分周器ＤＩＶＡにより１／２分周されて伝播遅延時間ｔＣＫＣ（ｔＣＫＣ＜ｔＣＫＡ）の経過後にフリップフロップＦＰ０〜ＦＰｋ、ＦＮ０〜ＦＮｋ、ＦＤＰ０、ＦＤＰ１、ＦＤＮ０、ＦＤＮ１に到達する。更に、クロック信号ＣＫは、分周器ＤＩＶＢにより１／２分周されて伝播遅延時間ｔＣＫＢ（ｔＣＫＢ＝ｔＣＫＣ）の経過後にクロック信号ＣＫＢとしてフリップフロップＦＲ０〜ＦＲｋに到達する。
【００５１】
また、データ信号Ｄ０〜ＤｋはフリップフロップＦＴ０〜ＦＴｋからデータバッファＢ０〜Ｂｋを介して供給されるが、データ信号ＤＤ０はフリップフロップＦＤＴ０からデータバッファを介すことなく供給されるため、データ信号ＤＤ０の遷移エッジの発生タイミングはデータ信号Ｄ０〜Ｄｋの遷移エッジの発生タイミングより早くなる。一方、データ信号ＤＤ１はフリップフロップＦＤＴ１からデータバッファＢ０〜Ｂｋの遅延時間より大きい遅延時間を有するデータバッファＢＤを介して供給されるため、データ信号ＤＤ１の遷移エッジの発生タイミングはデータ信号Ｄ０〜Ｄｋの遷移エッジの発生タイミングより遅くなる。
【００５２】
図４に示す動作例では、クロック信号ＣＫＣの立ち上がりエッジの発生タイミングｔ１（ｔ３、ｔ５）において、データ信号Ｄ０〜Ｄｋが確定状態であるため、データ信号ＤＰ０〜ＤＰｋは、データ信号Ｄ０〜Ｄｋの論理値ｄ００〜ｄｋ０（ｄ０１〜ｄｋ１、ｄ０２〜ｄｋ２）に設定される。一方、クロック信号ＣＫＣの立ち下がりエッジの発生タイミングｔ２（ｔ４、ｔ６）において、データ信号Ｄ０〜Ｄｋが遷移状態であるため、データ信号ＤＮ０〜ＤＮｋは、データ信号Ｄ０〜Ｄｋの遷移前の論理値に設定されることもあれば、データ信号Ｄ０〜Ｄｋの遷移後の論理値に設定されることもあり、更に、メタステーブル状態になることもある（データ信号ＤＮ０〜ＤＮｋの論理値を“Ｘ”として表記）。
【００５３】
また、クロック信号ＣＫＣの立ち下がりエッジの発生タイミングｔ２（ｔ４、ｔ６）において、データ信号ＤＤＰ０、ＤＤＰ１が同一の論理値に設定されているため、セレクタ制御回路ＳＣにより、データ信号ＤＰ０〜ＤＰｋが正しい論理値ｄ００〜ｄｋ０（ｄ０１〜ｄｋ１、ｄ０２〜ｄｋ２）に設定されているものと判断され、セレクタ制御信号ＳＥＬＡが“０”に設定される。従って、セレクタＭＵＸＡ０〜ＭＵＸＡｋによりデータ信号ＤＰ０〜ＤＰｋが選択され、データ信号ＤＭ０〜ＤＭｋがデータ信号ＤＰ０〜ＤＰｋの論理値ｄ００〜ｄｋ０（ｄ０１〜ｄｋ１、ｄ０２〜ｄｋ２）に設定される。セレクタＭＵＸＢ０〜ＭＵＸＢｋによりデータ信号ＤＭ０〜ＤＭｋが選択されているため、クロック信号ＣＫＢの立ち上がりエッジの発生タイミングｔ３（ｔ５、ｔ７）において、受信データ処理回路ＲＤＰに供給されるフリップフロップＦＲ０〜ＦＲｋの出力データ信号が正しい論理値ｄ００〜ｄｋ０（ｄ０１〜ｄｋ１、ｄ０２〜ｄｋ２）に設定される。
【００５４】
図５は、半導体集積回路ＩＣ（図１）におけるブロック間データ転送の動作タイミング（その２）を示している。なお、図４に示した動作例と同様に、図５に示す動作例では、モード制御信号ＭＯＤＥが“１”に設定されており、その結果、セレクタ制御信号ＳＥＬＢ、周波数制御信号ＦＲ＿ＳＥＴおよび電圧制御信号ＶＤ＿ＳＥＴが“１”に設定されているものとする。図５に示す動作例は、図４に示した動作例に比べて伝播遅延時間ｔＣＫＡが大きく、その結果、データ信号ＤＤ１の遷移エッジの発生タイミングがクロック信号ＣＫＣの立ち上がりエッジの発生タイミングより遅くなる場合の動作例である。
【００５５】
図５に示す動作例では、クロック信号ＣＫＣの立ち上がりエッジの発生タイミングｔ１（ｔ３、ｔ５）において、データ信号Ｄ０〜Ｄｋは遷移状態であるため、データ信号ＤＰ０〜ＤＰｋは、データ信号Ｄ０〜Ｄｋの遷移前の論理値に設定されることもあれば、データ信号Ｄ０〜Ｄｋの遷移後の論理値に設定されることもあり、更に、メタステーブル状態になることもある（データ信号ＤＰ０〜ＤＰｋの論理値を“Ｘ”として表記）。一方、クロック信号ＣＫＣの立ち下がりエッジの発生タイミングｔ２（ｔ４、ｔ６）において、データ信号Ｄ０〜Ｄｋは確定状態であるため、データ信号ＤＮ０〜ＤＮｋは、データ信号Ｄ０〜Ｄｋの論理値ｄ００〜ｄｋ０（ｄ０１〜ｄｋ１、ｄ０２〜ｄｋ２）に設定される。
【００５６】
また、クロック信号ＣＫＣの立ち下がりエッジの発生タイミングｔ２（ｔ４、ｔ６）において、データ信号ＤＤＮ０、ＤＤＮ１が同一の論理値に設定されているため、セレクタ制御回路ＳＣにより、データ信号ＤＮ０〜ＤＮｋが正しい論理値ｄ００〜ｄｋ０（ｄ０１〜ｄｋ１、ｄ０２〜ｄｋ２）に設定されているものと判断され、セレクタ制御信号ＳＥＬＡが“１”に設定される。従って、セレクタＭＵＸＡ０〜ＭＵＸＡｋによりデータ信号ＤＮ０〜ＤＮｋが選択され、データ信号ＤＭ０〜ＤＭｋがデータ信号ＤＮ０〜ＤＮｋの論理値ｄ００〜ｄｋ０（ｄ０１〜ｄｋ１、ｄ０２〜ｄｋ２）に設定される。セレクタＭＵＸＢ０〜ＭＵＸＢｋによりデータ信号ＤＭ０〜ＤＭｋが選択されているため、クロック信号ＣＫＢの立ち上がりエッジの発生タイミングｔ３（ｔ５、ｔ７）において、受信データ処理回路ＲＤＰに供給されるフリップフロップＦＲ０〜ＦＲｋの出力データ信号が正しい論理値ｄ００〜ｄｋ０（ｄ０１〜ｄｋ１、ｄ０２〜ｄｋ２）に設定される。
【００５７】
以上のような第１実施形態では、電源電圧ＶＤＡの変動に起因してクロック信号ＣＫＡ、ＣＫＢの位相差が変化した場合でも、データスループットを低下させることなく、レイテンシの増加を１に抑えて、クロックジッタ量を増加させることなく、ブロックＢＬＫＡ内のフリップフロップＦＴ０〜ＦＴｋからブロックＢＬＫＢ内のフリップフロップＦＲ０〜ＦＲｋへのデータ転送を正確に実施することができる。これにより、非同期ＦＩＦＯを利用する従来技術に比べてデータスループットを２倍に改善でき、クロック信号の位相調整（遅延調整）を実施する従来技術に比べてクロック周波数の５％向上あるいは消費電力の１０％低減を実現することができる。
【００５８】
また、クロック信号ＣＫＡ、ＣＫＢの位相を直接比較する場合に比べて、半導体集積回路ＩＣの設計時にフリップフロップＦＴ０〜ＦＴｋからフリップフロップＦＲ０〜ＦＲｋへのデータ転送の遅延時間を厳密に調整することが不要になるため、半導体集積回路ＩＣの設計が容易になり、半導体集積回路ＩＣの設計期間の短縮が可能になる。更に、モード制御信号ＭＯＤＥが“０”に設定されている場合（即ち、ＤＶＦＳの適用が禁止されている場合）、電圧周波数制御回路ＶＦＣによりセレクタ制御信号ＳＥＬＢが“０”に設定され、セレクタＭＵＸＢ０〜ＭＵＸＢｋによりデータ信号Ｄ０〜Ｄｋが選択されるため、レイテンシが無駄に増加することを回避できる。
【００５９】
また、データ信号ＤＤＰ０、ＤＤＰ１の論理値が一致せず、且つデータ信号ＤＤＮ０、ＤＤＮ１の論理値が一致しない場合には、セレクタ制御回路ＳＣにより４ビットのエラーコード信号ＥＲＲ＿ＣＯＤＥがデータ信号ＤＤＰ０、ＤＤＰ１、ＤＤＮ０、ＤＤＮ１の論理値に設定される。これに伴って、電圧周波数制御回路ＶＦＣにより割り込み信号ＩＮＴＲＰＴが“１”に設定された後に電圧制御信号ＶＤ＿ＳＥＴが“０”に設定される。このため、クロック信号ＣＫＡ、ＣＫＢの位相差が想定範囲を超えてフリップフロップＦＴ０〜ＦＴｋからフリップフロップＦＲ０〜ＦＲｋへのデータ転送が正しく実施されなくなることを防止できる。
【００６０】
図６は、本発明の第２実施形態を示している。なお、第２実施形態（図６）を説明するにあたって、第１実施形態（図１）で説明した要素と同一の要素については、第１実施形態で使用した符号と同一の符号を使用し、詳細な説明を省略する。第２実施形態の半導体集積回路ＩＣａは、第１実施形態の半導体集積回路ＩＣにおいてブロックＢＬＫＡ、ＢＬＫＢをブロックＢＬＫＡａ、ＢＬＫＢａに置き換えて構成されている。
【００６１】
ブロックＢＬＫＡａは、電源電圧ＶＤＡにより駆動されるブロックであり、フリップフロップＦＰ０〜ＦＰｋ、ＦＮ０〜ＦＮｋ、ＦＲ０〜ＦＲｋ、ＦＤＰ０、ＦＤＰ１、ＦＤＮ０、ＦＮＤ１、セレクタＭＵＸＡ０〜ＭＵＸＡｋ、ＭＵＸＢ０〜ＭＵＸＢｋ、受信データ処理回路ＲＤＰおよびセレクタ制御回路ＳＣを備えて構成されている。ブロックＢＬＫＢａは、電源電圧ＶＤＢにより駆動されるブロックであり、分周器ＤＩＶＡ、ＤＩＶＢ、送信データ生成回路ＴＤＧ、フリップフロップＦＴ０〜ＦＴｋ、ＦＤＴ０、ＦＤＴ１、データバッファＢ０〜Ｂｋ、ＢＤおよび電圧周波数制御回路ＶＦＣを備えて構成されている。なお、分周器ＤＩＶＡの出力クロック信号は、ブロックＢＬＫＡａにおいてクロックバッファ（図示せず）を介してクロック信号ＣＫＢとしてフリップフロップＦＲ０〜ＦＲｋに供給される。また、分周器ＤＩＶＢの出力クロック信号は、クロックＢＬＫＡａにおいてクロックバッファ（図示せず）を介してクロック信号ＣＫＣとしてフリップフロップＦＰ０〜ＦＰｋ、ＦＮ０〜ＦＮｋ、ＦＤＰ０、ＦＤＰ１、ＦＤＮ０、ＦＤＮ１に供給されるとともに、ブロックＢＬＫＢａにおいてクロックバッファ（図示せず）を介してクロック信号ＣＫＡとしてフリップフロップＦＴ０〜ＦＴｋ、ＦＤＴ０、ＦＤＴ１に供給される。
【００６２】
図７は、半導体装置ＩＣａ（図６）におけるブロック間データ転送の動作タイミング（その１）を示している。なお、図７に示す動作例では、モード制御信号ＭＯＤＥが“１”に設定されており、その結果、セレクタ制御信号ＳＥＬＢ、周波数制御信号ＦＲ＿ＳＥＴおよび電圧制御信号ＶＤ＿ＳＥＴが“１”に設定されているものとする。
クロック発生回路ＣＫＧから出力されるクロック信号ＣＫは、分周器ＤＩＶＢにより１／２分周されて伝播遅延時間ｔＣＫＡの経過後にフリップフロップＦＴ０〜ＦＴｋ、ＦＤＴ０、ＦＤＴ１に到達する。また、クロック信号ＣＫは、分周器ＤＩＶＢにより１／２分周されて伝播遅延時間ｔＣＫＣ（ｔＣＫＣ＞ｔＣＫＡ）の経過後にフリップフロップＦＰ０〜ＦＰｋ、ＦＮ０〜ＦＮｋ、ＦＤＰ０、ＦＤＰ１、ＦＤＮ０、ＦＤＮ１に到達する。更に、クロック信号ＣＫは、分周器ＤＩＶＡにより１／２分周されて伝播遅延時間ｔＣＫＢ（ｔＣＫＢ＝ｔＣＫＣ）の経過後にクロック信号ＣＫＢとしてフリップフロップＦＲ０〜ＦＲｋに到達する。
【００６３】
また、データ信号Ｄ０〜ＤｋはフリップフロップＦＴ０〜ＦＴｋからデータバッファＢ０〜Ｂｋを介して供給されるが、データ信号ＤＤ０はフリップフロップＦＤＴ０からデータバッファを介すことなく供給されるため、データ信号ＤＤ０の遷移エッジの発生タイミングはデータ信号Ｄ０〜Ｄｋの遷移エッジの発生タイミングより早くなる。一方、データ信号ＤＤ１はフリップフロップＦＤＴ１からデータバッファＢ０〜Ｂｋの遅延時間より大きい遅延時間を有するデータバッファＢｋ介して供給されるため、データ信号ＤＤ１の遷移エッジの発生タイミングはデータ信号Ｄ０〜Ｄｋの遷移エッジの発生タイミングより遅くなる。
【００６４】
図７に示す動作例では、クロック信号ＣＫＣの立ち上がりエッジの発生タイミングｔ１（ｔ３、ｔ５）において、データ信号Ｄ０〜Ｄｋは遷移状態であるため、データ信号ＤＰ０〜ＤＰｋは、データ信号Ｄ０〜Ｄｋの遷移前の論理値に設定されることもあれば、データ信号Ｄ０〜Ｄｋの遷移後の論理値に設定されることもあり、更に、メタステーブル状態になることもある（データ信号ＤＰ０〜ＤＰｋの論理値を“Ｘ”として表記）。一方、クロック信号ＣＫＣの立ち下がりエッジの発生タイミングｔ２（ｔ４、ｔ６）において、データ信号Ｄ０〜Ｄｋは確定状態であるため、データ信号ＤＮ０〜ＤＮｋは、データ信号Ｄ０〜Ｄｋの論理値ｄ００〜ｄｋ０（ｄ０１〜ｄｋ１、ｄ０２〜ｄｋ２）に設定される。
【００６５】
また、クロック信号ＣＫＣの立ち下がりエッジの発生タイミングｔ２（ｔ４、ｔ６）において、データ信号ＤＤＮ０、ＤＤＮ１が同一の論理値に設定されているため、セレクタ制御回路ＳＣにより、データ信号ＤＮ０〜ＤＮｋが正しい論理値ｄ００〜ｄｋ０（ｄ０１〜ｄｋ１、ｄ０２〜ｄｋ２）に設定されているものと判断され、セレクタ制御信号ＳＥＬＡが“１”に設定される。従って、セレクタＭＵＸＡ０〜ＭＵＸＡｋによりデータ信号ＤＮ０〜ＤＮｋが選択され、データ信号ＤＭ０〜ＤＭｋがデータ信号ＤＮ０〜ＤＮｋの論理値ｄ００〜ｄｋ０（ｄ０１〜ｄｋ１、ｄ０２〜ｄｋ２）に設定される。セレクタＭＵＸＢ０〜ＭＵＸＢｋによりデータ信号ＤＭ０〜ＤＭｋが選択されているため、クロック信号ＣＫＢの立ち上がりエッジの発生タイミングｔ３（ｔ５、ｔ７）において、受信データ処理回路ＲＤＰに供給されるフリップフロップＦＲ０〜ＦＲｋの出力データ信号が正しい論理値ｄ００〜ｄｋ０（ｄ０１〜ｄｋ１、ｄ０２〜ｄｋ２）に設定される。
【００６６】
図８は、半導体装置ＩＣａ（図６）におけるブロック間データ転送の動作タイミング（その２）を示している。なお、図７に示した動作例と同様に、図８に示す動作例では、モード制御信号ＭＯＤＥが“１”に設定されており、その結果、セレクタ制御信号ＳＥＬＢ、周波数制御信号ＦＲ＿ＳＥＴおよび電圧制御信号ＶＤ＿ＳＥＴが“１”に設定されているものとする。図８に示す動作例は、図７に示した動作例に比べて伝播遅延時間ｔＣＫＢ、ｔＣＫＣが大きく、その結果、データ信号ＤＤ１の遷移エッジの発生タイミングがクロック信号ＣＫＣの立ち上がりエッジの発生タイミングより早くなる場合の動作例である。
【００６７】
図８に示す動作例では、クロック信号ＣＫＣの立ち上がりエッジの発生タイミングｔ１（ｔ３、ｔ５）において、データ信号Ｄ０〜Ｄｋが確定状態であるため、データ信号ＤＰ０〜ＤＰｋは、データ信号Ｄ０〜Ｄｋの論理値ｄ００〜ｄｋ０（ｄ０１〜ｄｋ１、ｄ０２〜ｄｋ２）に設定される。一方、クロック信号ＣＫＣの立ち下がりエッジの発生タイミングｔ２（ｔ４、ｔ６）において、データ信号Ｄ０〜Ｄｋが遷移状態であるため、データ信号ＤＮ０〜ＤＮｋは、データ信号Ｄ０〜Ｄｋの遷移前の論理値に設定されることもあれば、データ信号Ｄ０〜Ｄｋの遷移後の論理値に設定されることもあり、更に、メタステーブル状態になることもある（データ信号ＤＮ０〜ＤＮｋの論理値を“Ｘ”として表記）。
【００６８】
また、クロック信号ＣＫＣの立ち下がりエッジの発生タイミングｔ２（ｔ４、ｔ６）において、データ信号ＤＤＰ０、ＤＤＰ１が同一の論理値に設定されているため、セレクタ制御回路ＳＣにより、データ信号ＤＰ０〜ＤＰｋが正しい論理値ｄ００〜ｄｋ０（ｄ０１〜ｄｋ１、ｄ０２〜ｄｋ２）に設定されているものと判断され、セレクタ制御信号ＳＥＬＡが“０”に設定される。従って、セレクタＭＵＸＡ０〜ＭＵＸＡｋによりデータ信号ＤＰ０〜ＤＰｋが選択され、データ信号ＤＭ０〜ＤＭｋがデータ信号ＤＰ０〜ＤＰｋの論理値ｄ００〜ｄｋ０（ｄ０１〜ｄｋ１、ｄ０２〜ｄｋ２）に設定される。セレクタＭＵＸＢ０〜ＭＵＸＢｋによりデータ信号ＤＭ０〜ＤＭｋが選択されているため、クロック信号ＣＫＢの立ち上がりエッジの発生タイミングｔ３（ｔ５、ｔ７）において、受信データ処理回路ＲＤＰに供給されるフリップフロップＦＲ０〜ＦＲｋの出力データ信号が正しい論理値ｄ００〜ｄｋ０（ｄ０１〜ｄｋ１、ｄ０２〜ｄｋ２）に設定される。
【００６９】
以上のような第２実施形態では、電源電圧が可変であるブロックＢＬＫＡａに受信データ処理回路ＲＤＰおよびフリップフロップＦＲ０〜ＦＲｋが設けられており、電源電圧が固定であるブロックＢＬＫＢａに送信データ生成回路ＴＤＧおよびフリップフロップＦＴ０〜ＦＴｋが設けられているが、このような場合でも、第１実施形態と同様の回路構成を適用することで、第１実施形態と同様の効果が得られる。
【００７０】
図９は、本発明の第３実施形態を示している。なお、第３実施形態（図９）を説明するにあたって、第１実施形態（図１）で説明した要素と同一の要素については、第１実施形態で使用した符号と同一の符号を使用し、詳細な説明を省略する。第３実施形態の半導体集積回路ＩＣｂは、第１実施形態の半導体集積回路ＩＣにおいてブロックＢＬＫＢをブロックＢＬＫＢｂに置き換えて構成されている。
【００７１】
ブロックＢＬＫＢｂは、ブロックＢＬＫＢにおいてフリップフロップＦＰ０ａ〜ＦＰｋａ、ＦＤＰ０ａ、ＦＤＰ１ａを追加するとともにフリップフロップＦＮ０〜ＦＮｋ、ＦＤＮ０、ＦＤＮ１をフリップフロップＦＮ０ａ〜ＦＮｋａ、ＦＤＮ０ａ、ＦＤＮ１ａに置き換えて構成されている。なお、クロック発生回路ＣＫＧから出力されるクロック信号ＣＫは、ブロックＢＬＫＢｂにおいてクロックバッファ（図示せず）を介してクロック信号ＣＫＣとしてフリップフロップＦＰ０〜ＦＰｋ、ＦＰ０ａ〜ＦＰｋａ、ＦＮ０ａ〜ＦＮｋａ、ＦＤＰ０、ＦＤＰ１、ＦＤＰ０ａ、ＦＤＰ１ａ、ＦＤＮ０ａ、ＦＤＮ１ａに供給される。
【００７２】
フリップフロップＦＰ０ａ〜ＦＰｋａは、クロック信号ＣＫＣの立ち上がりエッジに同期してフリップフロップＦＰ０〜ＦＰｋの出力データ信号を取り込んでデータ信号ＤＰ０〜ＤＰｋとして出力する。フリップフロップＦＮ０ａ〜ＦＮｋａは、クロック信号ＣＫＣの立ち上がりエッジに同期してデータ信号Ｄ０〜Ｄｋを取り込んでデータ信号ＤＮ０〜ＤＮｋとして出力する。フリップフロップＦＤＰ０ａ、ＦＤＰ１ａは、クロック信号ＣＫＣの立ち上がりエッジに同期してフリップフロップＦＤＰ０、ＦＤＰ１の出力データ信号を取り込んでデータ信号ＤＤＰ０、ＤＤＰ１として出力する。フリップフロップＦＤＮ０ａ、ＦＤＮ１ａは、クロック信号ＣＫＣの立ち上がりエッジに同期してデータ信号ＤＤ０、ＤＤ１を取り込んでデータ信号ＤＤＮ０、ＤＤＮ１として出力する。
【００７３】
以上のような第３実施形態では、周波数制御信号ＦＲ＿ＳＥＴが“１”に設定されている場合、クロック信号ＣＫＣの周波数はクロック信号ＣＫＡの周波数の２倍であるため、フリップフロップＦＰ０ａ〜ＦＰｋａの出力データ信号ＤＰ０〜ＤＰｋとフリップフロップＦＮ０ａ〜ＦＮｋａの出力データ信号ＤＮ０〜ＤＮｋとの関係およびフリップフロップＦＤＰ０ａ、ＦＤＰ１ａの出力データ信号ＤＤＰ０、ＤＤＰ１とフリップフロップＦＤＮ０ａ、ＦＮＰ１ａの出力データ信号ＤＤＮ０、ＤＤＮ１との関係は第１実施形態と同様になる。従って、第３実施形態でも、第１実施形態と同様の効果を得ることができる。また、クロック信号ＣＫＣの立ち上がりエッジに同期して動作するフリップフロップＦＰ０ａ〜ＦＰｋａ、ＦＮ０ａ〜ＦＮｋａ、ＦＤＰ０ａ、ＦＤＰ１ａ、ＦＤＮ０ａ、ＦＤＮ０ａを用いることで、半導体集積回路ＩＣｂのタイミング設計が容易になり、半導体集積回路ＩＣｂの設計期間の短縮が可能になる。
【００７４】
なお、第３実施形態では、フリップフロップＦＮ０ａ〜ＦＮｋａの出力データ信号がデータ信号ＤＮ０〜ＤＮｋとしてセレクタＭＵＸＡ０〜ＭＵＸＡｋに供給され、フリップフロップＦＤＮ０ａ、ＦＤＮ１ａの出力データ信号がデータ信号ＤＤＮ０、ＤＤＮ１としてセレクタ制御回路ＳＣに供給される例について述べたが、本発明はかかる実施形態に限定されるものではない。例えば、フリップフロップＦＰ０〜ＦＰｋの出力データ信号がデータ信号ＤＮ０〜ＤＮｋとしてセレクタＭＵＸＡ０〜ＭＵＸＡｋに供給され、フリップフロップＦＤＰ０、ＦＤＰ１の出力データ信号がデータ信号ＤＤＮ０、ＤＤＮ１として供給されるようにしてもよく、その場合、フリップフロップＦＮ０ａ〜ＦＮ０ｋ、ＦＤＮ０ａ、ＦＤＮ１ａが不要になり、半導体集積回路ＩＣｂの回路規模を低減できる。また、第３実施形態では、半導体集積回路ＩＣ（第１実施形態）を変形させて半導体集積回路ＩＣｂが構成される例について説明したが、本発明はかかる実施形態に限定されるものではなく、半導体集積回路ＩＣａ（第２実施形態）に対しても同様の変形を適用可能である。
【００７５】
図１０は、本発明の第４実施形態を示している。なお、第４実施形態（図１０）を説明するにあたって、第１実施形態（図１）で説明した要素と同一の要素については、第１実施形態で使用した符号と同一の符号を使用し、詳細な説明を省略する。第４実施形態の半導体集積回路ＩＣｃは、第１実施形態の半導体集積回路ＩＣにおいてブロックＢＬＫＢをブロックＢＬＫＢｃに置き換えて構成されている。
【００７６】
ブロックＢＬＫＢｃは、ブロックＢＬＫＢにおいてセレクタ制御回路ＳＣをセレクタ制御回路ＳＣａに置き換えて構成されている。セレクタ制御回路ＳＣａは、データ信号ＤＤＰ０、ＤＤＰ１、ＤＤＮ０、ＤＤＮ１、エラーリセット信号ＥＲＲ＿ＲＳＴおよびクロック信号ＣＫＣに加えて電圧状態信号ＶＤ＿ＲＤＹにも基づいて、セレクタ制御信号ＳＥＬＡおよび４ビットのエラーコード信号ＥＲＲ＿ＣＯＤＥを生成する。
【００７７】
図１１は、セレクタ制御回路ＳＣａ（図１０）の動作フローを示している。セレクタ制御回路ＳＣａは、半導体集積回路ＩＣｃのリセット投入に伴って、セレクタ制御信号ＳＥＬＡを“０”に初期化するとともに、４ビットのエラーコード信号ＥＲＲ＿ＣＯＤＥを“００００”に初期化する。この後、半導体集積回路ＩＣｃのリセット解除に伴って、セレクタ制御回路ＳＣａの動作はステップＳ３００に移行する。
【００７８】
ステップＳ３００において、セレクタ制御回路ＳＣａは、電圧状態信号ＶＤ＿ＲＤＹが“０”に設定されているか否かを判定する。電圧状態信号ＶＤ＿ＲＤＹが“０”に設定されている場合（即ち、電源電圧ＶＤＡが変動状態である場合）、セレクタ制御回路ＳＣａの動作はステップＳ３０１に移行する。一方、電圧状態信号ＶＤ＿ＲＤＹが“０”に設定されていない場合（即ち、電源電圧ＶＤＡが安定状態である場合）、セレクタ制御回路ＳＣａの動作はステップＳ３００に再度移行する。
【００７９】
ステップＳ３０１において、セレクタ制御回路ＳＣａは、クロック信号ＣＫＣの立ち下がりエッジの検出に伴って、データ信号ＤＤＰ０の論理値とデータ信号ＤＤＰ１の論理値とが一致するか否かを判定する。データ信号ＤＤＰ０の論理値とデータ信号ＤＤＰ１の論理値とが一致する場合、セレクタ制御回路ＳＣａの動作はステップＳ３０２に移行する。一方、データ信号ＤＤＰ０の論理値とデータ信号ＤＤＰ１の論理値とが一致しない場合、セレクタ制御回路ＳＣａの動作はステップＳ３０３に移行する。
【００８０】
ステップＳ３０２において、セレクタ制御回路ＳＣａは、セレクタＭＵＸＡ０〜ＭＵＸＡｋにデータ信号ＤＰ０〜ＤＰｋを選択させるべくセレクタ制御信号ＳＥＬＡを“０”に設定する。この後、セレクタ制御回路ＳＣａの動作はステップＳ３００に移行する。
ステップＳ３０３において、セレクタ制御回路ＳＣａは、データ信号ＤＤＮ０の論理値とデータ信号ＤＤＮ１の論理値とが一致するか否かを判定する。データ信号ＤＤＮ０の論理値とデータ信号ＤＤＮ１の論理値とが一致する場合、セレクタ制御回路ＳＣａの動作はステップＳ３０４に移行する。一方、データ信号ＤＤＮ０の論理値とデータ信号ＤＤＮ１の論理値とが一致しない場合、セレクタ制御回路ＳＣａの動作はステップＳ３０５に移行する。
【００８１】
ステップＳ３０４において、セレクタ制御回路ＳＣａは、セレクタＭＵＸＡ０〜ＭＵＸＡｋにデータ信号ＤＮ０〜ＤＮｋを選択させるべくセレクタ制御信号ＳＥＬＡを“１”に設定する。この後、セレクタ制御回路ＳＣａの動作はステップＳ３００に移行する。
ステップＳ３０５において、セレクタ制御回路ＳＣａは、４ビットのエラーコード信号ＥＲＲ＿ＣＯＤＥをデータ信号ＤＤＰ０、ＤＤＰ１、ＤＤＮ０、ＤＤＮ１の論理値に設定する。この後、セレクタ制御回路ＳＣａの動作はステップＳ３０６に移行する。
【００８２】
ステップＳ３０６において、セレクタ制御回路ＳＣａは、エラーリセット信号ＥＲＲ＿ＲＳＴが“１”に設定されているか否かを判定する。エラーリセット信号ＥＲＲ＿ＲＳＴが“１”に設定されている場合、セレクタ制御回路ＳＣａの動作はステップＳ３０７に移行する。一方、エラーリセット信号ＥＲＲ＿ＲＳＴが“１”に設定されていない場合、セレクタ制御回路ＳＣａの動作はステップＳ３０６に再度移行する。
【００８３】
ステップＳ３０７において、セレクタ制御回路ＳＣａは、４ビットのエラーコード信号ＥＲＲ＿ＣＯＤＥを“００００”に設定する。この後、セレクタ制御回路ＳＣａの動作はステップＳ３００に移行する。
以上のような第４実施形態では、電源電圧ＶＤＡが安定状態である場合にはセレクタＭＵＸＡ０〜ＭＵＸＡｋの制御動作が実施される必要はないことを考慮して、電源電圧ＶＤＡが変動状態である場合（即ち、電圧状態信号ＶＤ＿ＲＤＹが“０”に設定されている場合）にのみ、セレクタＭＵＸＡ０〜ＭＵＸＡｋの制御動作が実施される。従って、セレクタＭＵＸＡ０〜ＭＵＸＡｋの制御動作が無駄に実施されることを回避できる。
【００８４】
なお、第４実施形態では、半導体集積回路ＩＣ（第１実施形態）を変形させて半導体集積回路ＩＣｃが構成される例について説明したが、本発明はかかる実施形態に限定されるものではなく、半導体集積回路ＩＣａ（第２実施形態）あるいは半導体集積回路ＩＣｂ（第３実施形態）に対しても同様の変形を適用可能である。
また、第１〜第４実施形態では、電源電圧ＶＤＡが可変であり、電源電圧ＶＤＢが固定である例について述べたが、本発明はかかる実施形態に限定されるものではない。電源電圧ＶＤＡ、ＶＤＢの双方が可変である場合でも、第１〜第４実施形態と同様に、電源電圧ＶＤＡ、ＶＤＢが異なる電位に設定されているときに、セレクタ制御信号ＳＥＬＢが“１”に設定されるとともにセレクタ制御信号ＳＥＬＡの論理値がデータ信号ＤＤＰ０、ＤＤＰ１、ＤＤＮ０、ＤＤＮ１の論理値に基づいて設定され、電源電圧ＶＤＡ、ＶＤＢが同じ電位に設定されているときに、セレクタ制御信号ＳＥＬＢが“０”に設定されるようにすることで、第１〜第４実施形態と同様の効果が得られる。
【００８５】
以上、本発明について詳細に説明してきたが、前述の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれらに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【図面の簡単な説明】
【００８６】
【図１】本発明の第１実施形態を示す説明図である。
【図２】図１のセレクタ制御回路の動作フローを示す説明図である。
【図３】図１の電圧周波数制御回路の動作フローを示す説明図である。
【図４】図１の半導体集積回路におけるブロック間データ転送の動作タイミング（その１）を示す説明図である。
【図５】図１の半導体集積回路におけるブロック間データ転送の動作タイミング（その２）を示す説明図である。
【図６】本発明の第２実施形態を示す説明図である。
【図７】図６の半導体集積回路におけるブロック間データ転送の動作タイミング（その１）を示す説明図である。
【図８】図６の半導体集積回路におけるブロック間データ転送の動作タイミング（その２）を示す説明図である。
【図９】本発明の第３実施形態を示す説明図である。
【図１０】本発明の第４実施形態を示す説明図である。
【図１１】図１０のセレクタ制御回路の動作フローを示す説明図である。
【図１２】ＤＶＦＳ適用システムの構成例を示す説明図である。
【図１３】ＤＶＦＳの概要を示す説明図である。
【図１４】ＤＶＦＳ適用時の問題点を示す説明図である。
【図１５】ＤＶＦＳ適用時の問題点を解決するための従来技術を示す説明図である。
【符号の説明】
【００８７】
Ｂ０〜Ｂｋ、ＢＤ‥データバッファ；ＢＬＫＡ、ＢＬＫＡａ、ＢＬＫＢ、ＢＬＫＢａ、ＢＬＫＢｂ、ＢＬＫＢｃ‥ブロック；ＣＫＧ‥クロック発生回路；ＤＩＶＡ、ＤＩＶＢ‥分周器；ＦＤＮ０、ＦＤＮ１、ＦＤＮ０ａ、ＦＤＮ１ａ、ＦＤＰ０、ＦＤＰ１、ＦＤＰ０ａ、ＦＤＰ１ａ、ＦＤＴ０、ＦＤＴ１、ＦＮ０〜ＦＮｋ、ＦＮ０ａ〜ＦＮｋａ、ＦＰ０〜ＦＰｋ、ＦＰ０ａ〜ＦＰ０ｋａ、ＦＲ０〜ＦＲｋ、ＦＴ０〜ＦＴｋ‥フリップフロップ；ＩＣ、ＩＣａ、ＩＣｂ、ＩＣｃ‥半導体集積回路；ＭＵＸＡ０〜ＭＵＸＡｋ、ＭＵＸＢ０〜ＭＵＸＢｋ‥セレクタ；ＰＷ‥電源回路；ＲＤＰ‥受信データ処理回路；ＳＣ、ＳＣａ‥セレクタ制御回路；ＴＤＧ‥送信データ生成回路；ＶＦＣ‥電圧周波数制御回路
【図１】
2008228077.tif 000003
【図２】
2008228077.tif 000004
【図３】
2008228077.tif 000005
【図４】
2008228077.tif 000006
【図５】
2008228077.tif 000007
【図６】
2008228077.tif 000008
【図７】
2008228077.tif 000009
【図８】
2008228077.tif 000010
【図９】
2008228077.tif 000011
【図１０】
2008228077.tif 000012
【図１１】
2008228077.tif 000013
【図１２】
2008228077.tif 000014
【図１３】
2008228077.tif 000015
【図１４】
2008228077.tif 000016
【図１５】
2008228077.tif 000017