(57)【特許請求の範囲】
【請求項１】
データ処理機能毎に分割され、各々が遅延調整して相互接続されて全体回路を構成する回路ブロックであり、入力される入力データに対し、所定のデータ処理を行う論理回路と、
前記論理回路を初期化するリセット信号が入力されると、設定された期間にわたり、論理回路のリセット状態を保持するリセット調整回路とを有する複数の回路ブロックと、
リセット信号を各回路ブロックへ出力するリセット回路と、
クロックを各回路ブロックへ出力するクロック回路と、
前記回路ブロック毎に、前記リセット回路の前記設定された期間の数値データを記憶している記憶部と、
回路システムを起動する際、前記記憶部から前記設定された期間の数値データを読み出し、対応する各回路ブロックのリセット調整回路へ書き込む回路ブロック制御回路と、
前記リセット信号を、回路ブロック内部の同期処理を行うクロックの立ち上がりエッジ及び立ち下がりエッジのいずれにより取り込むかを設定する正相・逆相選択回路と
を有し、
前記リセット調整回路が、リセット信号が入力されてから、入力信号が前段の他の回路ブロックから入力されるまでの時間を、前記設定された期間として設定している
ことを特徴とする回路システム。
【請求項２】
前記記憶部が、各回路ブロック毎の前記リセット調整回路に設けられた正相・逆相選択回路において、いずれのエッジを選択するかを指定するエッジ情報を記憶し、前記回路ブロック制御回路が、回路システムを起動する際、対応する各回路ブロックの前記正相・逆相選択回路に前記エッジ情報を書き込むことを特徴とする請求項１記載の回路システム。
【請求項３】
前記リセット調整回路の設定された期間の数値データが書き換え可能であることを特徴とする請求項１または請求項２に記載の回路システム。
【請求項４】
複数の入力データ間の入力タイミングを調整して揃える入力タイミング調整回路をさらに有することを特徴とする請求項１から請求項３のいずれか一項に記載の回路システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数信号間のデータ伝播遅延時間差（スキュー）を補正する技術に関し、特にＬＳＩ間やモジュール間における多ビット幅データ信号間の伝播遅延時間差を補正する回路に関する。
【背景技術】
【０００２】
近年、ＣＰＵ、メモリ、ＬＳＩ等の高速化に伴い、ＬＳＩ間や複数のモジュールで構成された装置間においても、高速な信号伝送がますます必要となっている。また、従来からデータ伝送量を大容量とするために、多ビットのデータ伝送路を並列に使用してデータを伝送する方法が一般的に用いられる。
【０００３】
しかし、この多ビットデータ伝送系を用いてデータを伝送する場合に問題となるのは、プリント基板上のトレースの特性や各データの配線長のバラツキにより複数の信号線路（クロック，リセット及びデータなど）間のデータ伝搬速度が異なる事による信号間の伝搬遅延時間差（スキュー）である。このスキューが存在するため、送信側では同一のタイミング で送信した多ビットデータが、受信側では相互に異なるタイミング で受信される。その上、近年のデータ伝送速度の高速化に伴い、データ信号の周期に対し、スキューによるデータバラツキの割合が大きくなり、同時に受信すべき信号を同時に受信できなくなってきている。このため、スキューを補正し、確実に受信側でデータを受信可能にする方法（ｄｅｓｋｅｗ回路）が必要となる。
【０００４】
そのため、特許文献１には、信号伝送中のデスキュー補正を行なうための技術が開示されている。すなわち、この特許文献１には、所定の演算を行う２つの演算回路と、これら演算回路に接続され、前記演算回路の演算の終了を検出する少なくとも２つの演算終了回路と、これらの検出回路の検出した演算終了信号の入力し、前記全ての演算回路の演算の終了を検出する合成器を有している。
そして、同期クロック発生回路は、この合成器が検出した演算の終了に同期させて、各演算回路を動作させるクロックを発生する。したがって、各演算回路にて演算が終了した後に、このクロックにより順次動作が行うことにより、スキューによるデータバラツキを抑制している。
【特許文献１】特開平１０−４００７１公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述した特許文献１は、図６に示すように、入力クロックＣＬＫ及び入力リセットＲＥＳＥＴがそれぞれバッファ回路を用いて複数の演算回路に供給されている。すなわち、特許文献１の同期設計においては、各回路間において入力クロックＣＬＫ及び入力リセットＲＥＳＥＴが同相である必要があり、駆動能力の大きなバッファ回路が必要となる。
しかしながら、特許文献１に示す回路にあっては、リセットやクロックを供給する対象の回路が膨大にあるＬＳＩなどにおいて、上述した同期設計を行おうとすると、信号、特にクロック及びリセットの出力バッファ回路における消費電力が増加することとなる。場合によっては、演算処理などの本来の機能による消費電力より、演算処理を行う回路にクロックやリセットを供給するバッファ回路のほうが大きな消費電力を必要とすることとなる。
【０００６】
本発明は、このような事情に鑑みてなされたもので、機能回路（回路ブロック）単位に部分的な同期設計を行い、相互に接続された各機能回路間のスキュー補正を、的確にかつ低消費電力で行い、システム性能の低下を防止するスキュー補正機能を有する回路ブロックを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の回路ブロックは、データ処理機能毎に分割され、各々が遅延調整して相互接続されて、全体回路を構成する回路ブロックであり、入力される入力データに対し、所定のデータ処理を行う論理回路と、前記論理回路を初期化するリセット信号が入力されると、設定された期間にわたり、論理回路のリセット状態を保持するリセット調整回路（例えば、実施形態における正相／逆相及び遅延選択回路１２）とを有することを特徴とする。
【０００８】
本発明の回路ブロックは、前記リセット調整回路が、リセット信号が入力されてから、前記入力信号が前段の他の回路ブロックから入力されるまでの時間を、前記期間として設定していることを特徴とする。
【０００９】
本発明の回路ブロックは、前記リセット調整回路が、前記リセット信号を、回路ブロック内部の同期処理を行うクロックの立ち上がりエッジ及び立ち下がりエッジのいずれにより取り込むかを設定する正相・逆相選択回路を有することを特徴とする請求項１または請求項２に記載の回路ブロック。
【００１０】
本発明の回路ブロックは、前記リセット調整回路の期間の数値が書き換え可能であることを特徴とする。
【００１１】
本発明の回路ブロックは、複数の入力データ間の入力タイミングを調整して揃える入力タイミング調整回路（例えば、実施形態における正相／逆相及び遅延選択回路１１1〜１１n）をさらに有することを特徴とする。
【００１２】
本発明の回路システムは、上述したいずれかの回路ブロックが相互に接続されて構成される回路システムであり、リセット信号を各回路ブロックへ出力するリセット回路と、クロックを各回路ブロックへ出力するクロック回路と、各回路ブロック毎の期間の数値データを記憶している記憶部と、回路システムを起動する際、記憶部から期間の数値データを読み出し、対応する各回路ブロックのリセット調整回路へ書き込む回路ブロック制御回路とを有することを特徴とする。
【００１３】
本発明の回路システムは、前記記憶部が、各回路ブロック毎の入力タイミング調整回路に設けられた正相・逆送選択回路において、いずれのエッジを選択するかを指定するエッジ情報を記憶し、前記回路ブロック制御回路が、回路システムを起動する際、対応する各回路ブロックの前記正相・逆相選択回路に前記エッジ情報を書き込むことを特徴とする。
【発明の効果】
【００１４】
以上説明したように、本発明によれば、回路ブロック単位に部分的な同期設計を行い、相互に接続された各回路ブロック間のスキュー補正を、簡易な回路で行うために低消費電力化することができ、回路ブロックの処理の開始タイミング自体を制御し、回路システム全体のデータ（入力信号）のタイミング調整が行えるため、容易にシステム性能の低下を防止するスキュー補正機能を実現することができる。
また、本発明によれば、各回路ブロック単位にて、リセット信号が入力されてから、前段の回路ブロックから入力信号（演算処理の対象である）が入力されるまでの時間、リセット状態とし、必要な入力信号が揃うまで、処理を実行させないように制御するため、従来例のように複雑な同期回路を必要とせず、簡易に回路システム内の各回路ブロックの遅延対応処理を行うことができるという効果が得られる。
【発明を実施するための最良の形態】
【００１５】
本発明の技術思想は、回路基板上及びＬＳＩ内部等において形成される回路システムを、演算や論理処理などの単位で分割可能な機能単位にて回路ブロックに分割し、各回路ブロック内においては基準の内部クロックに同期した処理を行うが、各回路ブロック間において、クロックに同期した信号の授受を行わずに動作させ、前段の回路ブロックから入力されるデータ信号（入力信号）の遅延時間に対応させ、各回路ブロックのリセット状態の期間を調整して、各回路ブロック間の遅延時間の調整を行うことにある。
【００１６】
以下、本発明の一実施形態による回路システムを図面を参照して説明する。図１は同実施形態の構成を示すブロック図である。
この図において、回路システム１は、例えば、演算ブロック２，演算ブロック３，演算ブロック４，ＣＰＵ５，ＲＯＭ６，ＲＡＭ７，クロック回路８及びリセット回路９から構成されている。また、図示しないが上記演算ブロック２及び演算ブロック３の前段には、他の演算ブロックが配置されている。
【００１７】
演算ブロック２，３及び４は、回路ブロックであり、回路基板上またはＬＳＩ（大規模集積回路）内部に形成される回路システムを区分可能な処理機能単位に分割してブロック化された回路単位を示している。ここで、処理機能単位としては、加算，減算，乗算，減算，バタフライ演算などの演算処理や、比較や判定等の論理処理であり、特にクロックによる同期処理，計数処理及び順序処理等、データが入力されこのデータをクロックに同期して行われる処理である。
【００１８】
クロック回路８は、回路システム１内で生成または外部から供給されるクロックを、ＣＰＵ５及び演算ブロック２，３，４各々へ供給する。
同様に、リセット回路８は、回路システム１内で生成または外部から供給されるリセットを、演算ブロック２，３，４各々へ供給する（場合によってはＣＰＵ５へも供給する）。
ＣＰＵ５は、ＲＯＭ６に記憶されているプログラムに従い、ＲＯＭ６またはＲＡＭ７に記憶されている制御データを各演算ブロック各々へ出力する。
【００１９】
次に、上記演算ブロック２（または３，４）について説明する。図２は、本実施形態による演算ブロック２（３及び４も同一構成）の構成例を示すブロック図である。
演算ブロック２は、正相／逆相及び遅延選択回路１１1，…，１１nと、正相／逆相及び遅延選択回路１２，クロックバッファ１３及び演算コア１４とを有している。
正相／逆相及び遅延選択回路１１1，…，１１nは、前段の複数の回路ブロックからそれぞれ入力される入力信号Ｉ1〜Ｉn各々の間の入力タイミングが揃うように、それぞれの入力信号毎に設けられ、それぞれの遅延時間を調整している。
すなわち、正相／逆相及び遅延選択回路１１1，…，１１nは、入力信号Ｉ1〜Ｉn各々が遅延により、演算コア１４に入力されるタイミングがずれているため、最も遅く入力される入力信号に対し、他の信号を遅延させ、演算コア１４に入力されるタイミングが短い時間範囲内に収まるように調整する。
【００２０】
正相／逆相及び遅延選択回路１２は、リセット信号が入力されると、入力された時点から、演算コア１４に対して調整リセット信号を供給してリセット状態とし、上記クロックを計数して、計数値が予め設定した設定値となるまで、リセット状態を継続させ、計数が設定値となったことを検出すると、上記調整リセット信号の供給を停止し、演算コア１４に所定の動作を開始させる。
クロックバッファ１３は、クロック回路８から入力されるクロックを波形整形して、内部クロックとして、正相／逆相及び遅延選択回路１１1，…，１１n、正相／逆相及び遅延選択回路１２及び演算コア１４へ出力する。これにより、正相／逆相及び遅延選択回路１１1，…，１１n、正相／逆相及び遅延選択回路１２及び演算コア１４は、回路ブロック内において、上記内部クロックに同期した処理を行う。
【００２１】
次に、図３を参照して上記正相／逆相及び遅延選択回路１２の説明を詳細に行う。図３は、本実施形態における正相／逆相及び遅延選択回路１２の構成例を説明するブロック図である。正相／逆相及び遅延選択回路１２は、正相／逆相選択回路２０と遅延選択回路３０とから構成されている。
また、上記正相／逆相選択回路２０は、ＤＦＦ（ディレィド・フリップフロップ）２１，２２及びセレクタ２３から構成されている。上記ＤＦＦ２１は内部クロックの立ち上がりエッジにてリセット信号を保持してリセット正信号として出力し、一方、ＤＦＦ２２は内部クロックの立ち下がりエッジにてリセット信号を保持してリセット逆信号として出力する。
【００２２】
セレクタ２３は、ＤＦＦ２１及びＤＦＦ２２がそれぞれ出力するリセット正信号・リセット逆信号のいずれかを、設定データＡに基づいて選択し、内部リセット信号として出力する。
この構成により、正相／逆相選択回路２０は、リセット信号とクロックとの位相関係において、リセット信号がクロックに対して同期してリセット回路９から出力されているとしても、回路ブロック２に入力されるリセット信号とクロックとが遅延により同期していないことも考えられ、クロックの立ち上がりエッジまたは立ち下がりエッジのうち、リセット信号が安定的に取り込めるエッジを選択して使用することができ、リセット信号の取り込みを確実に行うことができる。上記設定データＡは、回路ブロックの接続状態において、予めいずれを選択した方が良いかの測定結果により決定され、ＲＯＭ６に書き込まれている。
【００２３】
上記遅延選択回路３０は、ＤＦＦ３１，カウンタホールド回路３２及びリセットバッファ３３から構成されている。
上記ＤＦＦ３１は、セレクタ２３の選択した内部リセット信号（リセット正信号及びリセット逆信号のいずれか一方）を、内部クロックの立ち上がりで取り込み、保持して出力する。
カウンタ・ホールド回路３２は、上記内部リセット信号が入力されると、内部のカウンタが０にリセットされた後、内部クロックのクロック数を計数を開始するとともに、調整リセット信号をリセットバッファ３３を介して演算コア１４へ出力する。これにより、演算コア１４はリセット状態となる。
【００２４】
また、カウンタ・ホールド回路３２は、カウンタの計数値が、予め設定されている設定データＢの示す計数値と一致した場合、カウンタに対してカウント動作を停止させ（ホールド状態）るとともに、調整リセット信号の出力を停止する。これにより、演算コア１４は、リセット状態から稼動状態に遷移し、内部クロックに同期した動作を開始する。以下、リセット信号の遅延とは、各回路ブロックにおいて、リセット信号が入力されてから、調整リセット信号の出力が停止されるまで、すなわちリセット状態の時間を延ばすことを示す。上記設定データＢは、リセット回路９よりリセット信号が入力されてから、回路ブロック２に対し、前段の回路ブロックからの入力データが到達するまでの時間となる計数値に設定されている。この計数値が示す時間は、回路ブロックを接続させた状態で、リセット信号と入力データとの間の遅延時間として測定された結果を用いている。
【００２５】
上述した構成により、カウンタ・ホールド回路３２は、上記設定データＢにより、演算ブロック内の演算処理の開始時間を可変にすることが可能なため、前段の回路ブロックからの入力信号の入力タイミングにあわせて、リセット信号が入力されてから演算処理を開始するまでの遅延時間を調整することができる。また、遅延時間調整のために、クロックをカウンタにより計数して遅延時間を調整するため、回路規模を増大させることなく、従来に比較してより長い遅延時間の調整が可能となる。
また、ＣＰＵ５が外部から入力される上記設定データＡ及び設定データＢをＲＡＭ７に書き込む構成とすることで、各回路ブロックを接続した後、測定結果からＲＡＭ７の設定データを調整することが可能となり、実際の遅延時間に対応した調整がより高い精度で行うことができる。
【００２６】
次に、図４を参照して上記正相／逆相及び遅延選択回路１１1〜１１nの説明を詳細に行う。図４は、本実施形態における正相／逆相及び遅延選択回路１１1〜１１n（以下、代表して正相／逆相及び遅延選択回路１１1）の構成例を説明するブロック図である。正相／逆相及び遅延選択回路１１1は、正相／逆相選択回路４０と遅延選択回路５０とから構成されている。
また、上記正相／逆相選択回路４０は、ＤＦＦ４１，４２及びセレクタ４３から構成されている。上記ＤＦＦ４１は内部クロックの立ち上がりエッジにて入力信号を保持して入力正信号として出力し、一方、ＤＦＦ４２は内部クロックの立ち下がりエッジにて入力信号を保持して入力逆信号として出力する。
セレクタ４３は、ＤＦＦ４１及びＤＦＦ４２がそれぞれ出力する入力正信号・入力逆信号のいずれかを、設定データＣに基づいて選択し、調整入力信号として出力する。
【００２７】
また、遅延選択回路５０は、ＤＦＦ５１，５２，５３，５５及びセレクタ５４から構成されている。
ここで、ＤＦＦ５１，５２及び５３各々は、シフトレジスタを構成しており、内部クロックの１周期分ずつずれて、調整入力信号を出力している。ここで、ＤＦＦ５２がＤＦＦ５１に対して１クロック遅延して調整入力信号を出力し、ＤＦＦ５３がＤＦＦ５２に対して１クロック遅延して調整入力信号を出力している。ここで、３段のＤＦＦによりシフトレジスタで構成しているが、遅延調整に必要な段数に調整しても良い。
セレクタ５４は、設定データＤに基づいて、上記ＤＦＦ５１，５２及び５３の出力する調整入力信号のいずれかを選択して、いずれかの調整入力信号を出力する。すなわち、設定データＤは、遅延の周期を決定するための数値を示す。
ＤＦＦ５５は、セレクタ５４から出力される調整入力信号を内部クロックの立ち上がりエッジにより取り込み、取り込んだ調整入力信号を保持した状態で出力する。
【００２８】
この上述した構成の正相／逆相及び遅延選択回路１１1を、回路ブロックに入力される入力信号毎に設けることにより、前段から入力される各入力信号間の遅延が大きくばらついていたとしても、最も遅延している入力信号が演算コア１４に入力されるタイミングに合わせる（入力タイミングを揃える）ため、それぞれの入力信号の遅延時間を、遅延選択回路５０のいずれのＤＦＦからの出力を調整入力信号とするかにより調整することができる。
また、設定データＡ及び設定データＢと同様に、ＣＰＵ５が外部から入力される上記設定データＣ及び設定データＤをＲＡＭ７に書き込む構成とすることで、各回路ブロックを接続した後、測定結果からＲＡＭ７の設定データを調整することが可能となり、回路ブロック内に入力される複数の入力信号の入力タイミングを、実際の遅延時間に対応させて調整することができる。
【００２９】
次に、図１〜図５を参照して、本願発明の一実施形態による回路システムの動作を説明する。図５は、リセット回路９がリセット信号を出力してから、各回路ブロックにおける動作タイミングを示した概念図である。
上述した回路ブロックからなる回路システム１が動作を開始させる時点において、ＣＰＵ５はＲＯＭ６またはＲＡＭ７から、この回路システム１を構成する各回路ブロック（１１1〜１１n）に対応した、回路ブロック毎の設定データＡ，Ｂ，Ｃ，Ｄを読み出し、対応する回路ブロック内の正相／逆相及び遅延選択回路１１1，…，１１n，１２に対して書き込み、入力信号及びリセット信号を内部クロックの立ち上がりエッジまたは立ち下がりエッジのいずれかで取り込むか、また入力信号及びリセット信号の遅延時間を設定する。
ここで、同一回路ブロック内の各正相／逆相及び遅延選択回路に設定する設定データＣ及びＤは、正相／逆相及び遅延選択回路各々に対して、異なった数値データとしてＲＯＭ６またはＲＡＭ７に記憶されており、設定自体も正相／逆相及び遅延選択回路各々に対して行われる。
【００３０】
このとき、例えば、図５に示すように、リセット回路９がリセット信号を出力し、リセット信号を各回路ブロックに伝達する信号線の配線遅延により、リセット信号が回路ブロック２及び３に時刻ｔ２に到達し、回路ブロック４に時刻ｔ１に到達したとする。また、回路ブロック２は、演算処理を時刻ｔ3に終了し、演算結果の出力信号（回路ブロック４にとっては入力信号）を出力する。ここで、時刻ｔ2〜ｔ3までの時間は、回路ブロック２が演算処理を開始してから処理が終了するまでの時間、すなわち処理遅延時間となる。また、回路ブロック２が出力信号を出力する出力端子から、回路ブロック４が入力信号を入力する入力端子までの配線における遅延を配線遅延とする。
【００３１】
この場合、各回路ブロックは、クロック回路８から入力されるクロックから内部クロックを生成して、この内部クロックに同期して内部の各回路が動作している。このクロックも、上記リセット信号と同様に、クロックを各回路ブロックに伝達する信号線の配線遅延により、各回路ブロックに到達するタイミングはばらつくこととなる。
【００３２】
また、各回路ブロックは、リセット信号により内部の演算セルが動作することとなるため、前段の回路ブロックの出力信号が入力された時点で、リセット信号により初期化されるのが望ましい。すなわち、回路ブロック４が動作を開始するのは、回路ブロック２からの入力信号が入力される時刻ｔ４である必要がある。
しかしながら、図５のタイミング関係において、回路ブロック２より回路ブロック４に対して、早いタイミングにてリセット信号が入力されることとなる。
したがって、ＣＰＵ５は、回路システム１の動作開始時において、ＲＯＭ６またはＲＡＭ７から各設定データを読み出し、回路ブロック４の正相／逆相及び遅延選択回路１２に対して、対応する設定データＢとして書き込む。この設定データＢは、時刻ｔ1から時刻ｔ4までの時間を遅延時間Ｔdとし、この遅延時間Ｔd（≒内部クロック周期×クロック数）に対応するクロックのカウント数である。
【００３３】
すなわち、上記遅延時間Ｔdは、回路ブロック４に対してリセット信号が入力されてから、回路ブロック４に対して入力信号が入力されるまでの時間である。また、この遅延時間Ｔdは、前段の回路ブロック２と注目している回路ブロック４との間におけるリセット信号の入力タイミングのバラツキと、前段の回路ブロック４の処理遅延と、回路ブロック２の出力端子及び回路ブロック４の入力端子間の配線遅延との関係で決定される時間である。
また、前段の回路ブロック２と回路ブロック３との処理遅延が異なる場合、回路ブロック４のリセット信号の遅延を、処理遅延の大きいほうの回路ブロックに対応させ、処理遅延の小さい方に対しては入力信号の遅延を調整して対応し、複数の前段の回路ブロックからの入力信号の入力タイミングを揃える。
【図面の簡単な説明】
【００３４】
【図１】本発明の一実施形態による、リセット信号及び入力信号の遅延時間調整が可能な回路システム１の構成例を示すブロック図である。
【図２】図１における回路システム１を構成している回路ブロックの構成例を示すブロックである。
【図３】図２における正相／逆相及び遅延選択回路１２の構成例を示すブロック図である。
【図４】図２における正相／逆相及び遅延選択回路（１１1〜１１n）の構成例を示すブロック図である。
【図５】図１の回路システム１の動作を説明する概念図である。
【図６】従来例における回路システムの構成を示す図である。
【符号の説明】
【００３５】
１…回路システム
２、３，４…回路ブロック
５…ＣＰＵ
６…ＲＯＭ
７…ＲＡＭ
８…クロック回路
９…リセット回路
１１1，１１n，１２…正相／逆相及び遅延選択回路
１３…クロックバッファ
１４…演算コア
２０，４０…正相／逆相選択回路
２１，２２，３１，４１，４２…ＤＦＦ
２３，４３，５４…セレクタ
３０，５０…遅延選択回路
３３…リセットバッファ
５１，５２，５３，５５…ＤＦＦ
【図１】
0004819493.tif 000002
【図２】
0004819493.tif 000003
【図３】
0004819493.tif 000004
【図４】
0004819493.tif 000005
【図５】
0004819493.tif 000006
【図６】
0004819493.tif 000007