(57)【要約】【課題】複数のデータ信号列の各々に対する演算結果を１クロックサイクル期間内に取得することを、１つの論理演算回路を用いて行う。【解決手段】セレクタは、複数のデータ信号列の各々に属するデータ信号の各々を、クロック信号の１クロックサイクル期間内において順次選択して出力する。演算回路は、セレクタから順次出力されるデータ信号の各々に対する演算を順次行い、得られた演算結果の各々を順次出力する。複数の出力段保持回路は、複数のデータ信号列の各々に対応して設けられ、各々が演算回路から順次出力される演算結果のうち対応するデータ信号列に関する演算結果を１クロックサイクル期間保持して出力する。【選択図】図１
2015191485.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ信号列の各々に属するデータ信号の各々を、クロック信号の１クロックサイクル期間内において順次選択して出力するセレクタと、
前記セレクタから順次出力されるデータ信号の各々に対する演算を順次行い、得られた演算結果の各々を順次出力する単一の演算回路と、
前記複数のデータ信号列の各々に対応して設けられ、各々が前記演算回路から順次出力される演算結果のうち対応するデータ信号列に関する演算結果を１クロックサイクル期間保持して出力する複数の出力段保持回路と、
を含むデータ処理回路。
【請求項２】
前記複数の出力段保持回路は、
２つのデータ信号列のうちの一方に属するデータ信号に対する演算結果を、前記クロック信号としての第１のクロック信号に基づくタイミングで保持して出力する第１の出力段フリップフロップと、
前記２つのデータ信号列のうちの他方に属するデータ信号に対する演算結果を、前記第１のクロック信号に対して位相反転された第２のクロック信号に基づくタイミングで保持して出力する第２の出力段フリップフロップと、
を含む請求項１に記載のデータ処理回路。
【請求項３】
前記セレクタは、前記第１のクロック信号または前記第２のクロック信号に同期して選択するデータ信号を切り替える
請求項２に記載のデータ処理回路。
【請求項４】
前記第１のクロック信号を位相反転させて前記第２のクロック信号生成する反転回路を更に含む
請求項２または請求項３に記載のデータ処理回路。
【請求項５】
前記セレクタに入力されるｎ個のデータ信号列の各々に属するｎ個のデータ信号の選択タイミングを制御する制御信号を生成する制御回路を更に含み、
前記セレクタは、前記制御信号に基づいて１クロックサイクル期間をｎ個に分割した各期間を、前記ｎ個のデータ信号の各々の選択期間として割り当てる
請求項１に記載のデータ処理回路。
【請求項６】
前記制御回路は、前記セレクタに入力される前記ｎ個のデータ信号の各々の選択期間が１クロックサイクル期間をｎ等分した期間となるように前記制御信号を生成する
請求項５に記載のデータ処理回路。
【請求項７】
前記複数の出力段保持回路は、前記演算回路から順次出力される演算結果のうち対応するデータ信号列に関する演算結果を、ｎ分の１クロックサイクル期間ずつ位相がずれたｎ個のクロック信号のうち対応するクロック信号に基づくタイミングで保持して出力するｎ個の出力段フリップフロップを含む
請求項５または請求項６に記載のデータ処理回路。
【請求項８】
前記演算回路から順次出力される演算結果に対して互いに異なる複数の遅延時間を付与することにより、前記ｎ個のデータ信号列の各々に関する演算結果の、対応する出力段保持回路への供給タイミングを揃える複数の遅延回路を更に含み、
前記複数の出力段保持回路は、前記演算回路または前記遅延回路から供給される演算結果のうち対応するデータ信号列に関する演算結果を、共通のクロック信号に基づくタイミングで保持して出力するｎ個の出力段フリップフロップを含む
請求項５または請求項６に記載のデータ処理回路。
【請求項９】
複数のデータ信号列の各々に属するデータ信号の各々を、クロック信号の１クロックサイクル期間内において順次選択し、
選択した前記データ信号の各々に対する演算結果を単一の演算回路から順次取得し、
取得した前記演算結果の各々を前記データ信号列毎に１クロックサイクル期間保持して出力する
データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、データ処理回路およびデータ処理方法に関する。
【背景技術】
【０００２】
集積回路が記述された集積回路記述を記述変更によって最適化する最適化処理をコンピュータに実行させる技術が知られている。集積回路記述には、複数の組合せ回路と、複数の組合せ回路からの出力信号を保持条件に基づいて保持する複数のフリップフロップとが記述されている。最適化処理は、集積回路記述から、論理等価な組合せ回路であって対応するフリップフロップの保持条件が排他関係にある第１、２の組合せ回路を検出する重複回路検出工程と、集積回路記述の重複回路圧縮工程とを有する。重複回路圧縮工程は、第１、２の組合せ回路と論理等価な共有組合せ回路に第１、２の組合せ回路を置き換える。重複回路圧縮工程は、第１、２の組合せ回路の第１、２の入力信号を、それぞれ対応する第１、２のフリップフロップの第１、２の保持条件に応じて選択し、共有組合せ回路に出力するセレクタ回路の記述を集積回路記述に追加する工程を含む。重複回路圧縮工程は、第１、２の入力信号に基づく共有組合せ回路の出力信号をそれぞれ第１、２のフリップフロップに接続する記述を集積回路記述に追加する工程を含む。重複回路圧縮工程は、第１、２の組合せ回路の記述を集積回路記述から削除する工程を含む。
【０００３】
また、半導体集積回路において、スキャンパス専用のコントロール信号線を設けることなく、スキャンパス回路の制御を行う技術が知られている。この半導体集積回路は、複数のフリップフロップを直列に接続し、予め定められたテスト用データを上記フリップフロップに記憶させるスキャンテストモードを備えている。半導体集積回路は、フリップフロップに接続されたスキャン信号伝達線と、スキャン信号伝達線に接続されたスキャン信号入力端子とを有する。半導体集積回路は、スキャン信号伝達線と他の回路ブロックからの通常データ入力線に接続された選択回路を有する。選択回路は、スキャン信号伝達線に入力するスキャン制御信号に応じて、スキャン信号伝達線と通常データ入力線のどちらかをフリップフロップの入力データとして選択する。半導体集積回路は、記スキャン信号伝達線に接続された出力回路を有する。出力回路は、クロックに同期して前半周期では、スキャン信号入力端子から入力されるスキャン制御信号をスキャン信号伝達線に出力するとともに、後半周期ではフリップフロップの出力データをスキャン信号伝達線に出力する。
【０００４】
また、伝送すべき第１及び第２の信号を第１及び第２の信号線を用いて伝送する信号伝送回路において、配線数の増加を招かずに差動伝送を可能にする技術が知られている。この信号伝送回路は、第１の信号とは時間的に一致しない第１の不一致信号を生成する第１の信号生成手段と、第２の信号とは時間的に一致しない第２の不一致信号を生成する第２の信号生成手段と、を有する。また、信号伝送回路は、第１及び第２の信号並びに第１及び第２の信号生成手段により生成された第１及び第２の不一致信号を受け、第１の信号及び第１の不一致信号の組、及び第２の信号及び第２の不一致信号の組の何れか一方を選択する選択手段を有する。選択手段は、選択した組を構成する２つの信号を差動信号として第１及び第２の信号線に伝送する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１２７７５１号公報
【特許文献２】特開平０６−３２４１１３号公報
【特許文献３】特開平０９−０９１０７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＳｏＣ（System on a Chip）の高性能化により、回路規模は増加の一途をたどり、それに伴って消費電力も増大している。論理演算回路の削減は、消費電力の削減を実現する上で有効である。
【０００７】
ここで、複数のデータ信号列の各々に対する論理演算結果を１クロックサイクル期間内において取得することが必要とされる回路においては、複数の論理演算回路が設けられている。すなわち、複数の論理演算回路の各々は、対応するデータ信号列に対する論理演算を１クロックサイクル期間内において行うことを要するので、論理的には排他動作を行うことができない。従って、複数の論理演算回路が、互いに論理的に等価であったとしても、複数の論理演算回路を統合して回路規模を縮小することは困難であった。
【０００８】
開示の技術は、複数のデータ信号列の各々に対する演算結果を１クロックサイクル期間内に取得することを、１つの演算回路を用いて行うことを目的とする。
【課題を解決するための手段】
【０００９】
データ処理回路は、複数のデータ信号列の各々に属するデータ信号の各々を、クロック信号の１クロックサイクル期間内において順次選択して出力するセレクタを含む。データ処理回路は、前記セレクタから順次出力されるデータ信号の各々に対する演算を順次行い、得られた演算結果の各々を順次出力する単一の演算回路を含む。データ処理回路は、前記複数のデータ信号列の各々に対応して設けられ、各々が前記演算回路から順次出力される演算結果のうち対応するデータ信号列に関する演算結果を１クロックサイクル期間保持して出力する複数の出力段保持回路を含む。
【発明の効果】
【００１０】
開示の技術によれば、複数のデータ信号列の各々に対する演算結果を１クロックサイクル期間内に取得することを、１つの演算回路を用いて行うことが可能となる。
【図面の簡単な説明】
【００１１】
【図１】開示の技術の実施形態に係るデータ処理回路の構成を示す回路ブロック図である。
【図２】開示の技術の実施形態に係るデータ処理回路の動作を示すタイムチャートである。
【図３】開示の実施形態に係るデータ処理回路の動作を示すタイムチャートである。
【図４】開示の技術の実施形態に係るデータ処理回路の構成を示す回路ブロック図である。
【図５】比較例に係るデータ処理回路の構成を示す回路ブロック図である。
【図６】比較例に係るデータ処理回路の動作を示すタイムチャートである。
【図７】開示の技術の実施形態に係るデータ処理回路の構成を示す回路ブロック図である。
【図８】開示の技術の実施形態に係るデータ処理回路の構成を示す回路ブロック図である。
【図９】比較例に係るデータ処理回路の構成を示す回路ブロック図である。
【図１０】開示の技術の実施形態に係るデータ処理回路の構成を示すブロック図である。
【図１１】開示の技術の実施形態に係るデータ処理回路の動作を示すタイムチャートである。
【図１２】開示の技術の実施形態に係るデータ処理回路の構成を示す回路ブロック図である。
【図１３】開示の技術の実施形態に係るデータ処理回路の構成を示す回路ブロック図である。
【図１４】開示の技術の実施形態に係るデータ処理回路の構成を示す回路ブロック図である。
【図１５】開示の技術の実施形態に係るデータ処理回路の動作を示すタイムチャートである。
【発明を実施するための形態】
【００１２】
以下、開示の技術の実施形態の一例を、図面を参照しつつ説明する。
【００１３】
［第１の実施形態］
図１は、開示の技術の第１の実施形態に係るデータ処理回路１０の構成を示す回路ブロック図である。データ処理回路１０は、第１の入力段フリップフロップ２１、第２の入力段フリップフロップ２２、セレクタ３０、論理演算回路４０、第１の出力段フリップフロップ５１および第２の出力段フリップフロップ５２を含む。なお、データ処理回路１０は、開示の技術のデータ処理回路の一例である。セレクタ３０は、開示の技術のセレクタの一例である。論理演算回路４０は、開示の技術の演算回路の一例である。第１の出力段フリップフロップ５１は、開示の技術の出力段保持回路および第１の出力段フリップフロップの一例である。第２の出力段フリップフロップ５２は、開示の技術の出力段保持回路および第２の出力段フリップフロップの一例である。
【００１４】
第１の入力段フリップフロップ２１（以下、第１の入力段ＦＦ２１と表記する）は、入力端子Ｄに入力されるデータ信号列ａに属するデータ信号を、第１のクロック信号ＣＬＫ１に基づくタイミングで保持して出力端子Ｑから出力するＤフリップフロップである。第２の入力段フリップフロップ２２（以下、第２の入力段ＦＦ２２と表記する）は、入力端子Ｄに入力されるデータ信号列ｂに属するデータ信号を、第２のクロック信号ＣＬＫ２に基づくタイミングで保持して出力端子Ｑから出力するＤフリップフロップである。第２のクロック信号ＣＬＫ２は、第１のクロック信号ＣＬＫ１に対して位相反転されている。第１の入力段ＦＦ２１の出力端子Ｑは、セレクタ３０の第１の入力端子Ｓ１に接続されており、第２の入力段ＦＦ２２の出力端子Ｑは、セレクタ３０の第２の入力端子Ｓ２に接続されている。
【００１５】
セレクタ３０は、第１の入力端子Ｓ１に入力されたデータ信号および第２の入力端子Ｓ２に入力されたデータ信号のいずれか一方を、制御端子Ｃに入力される制御信号に応じて選択して出力端子Ｐから出力する。本実施形態においては、セレクタ３０の制御信号として第１のクロック信号ＣＬＫ１が用いられている。セレクタ３０は、第１のクロック信号ＣＬＫ１が、例えばハイレベルを呈する期間において、第１の入力端子Ｓ１に入力されたデータ信号を選択して出力する。また、セレクタ３０は、第１のクロック信号ＣＬＫ１が例えばローレベルを呈する期間において、第２の入力端子Ｓ２に入力されたデータ信号を選択して出力する。すなわち、セレクタ３０は、第１の入力端子Ｓ１および第２の入力端子Ｓ２にそれぞれ供給されたデータ信号を、第１のクロック信号ＣＬＫ１に同期して順次選択して出力する。なお、セレクタ３０の制御端子Ｃに供給される制御信号として第２のクロック信号ＣＬＫ２を用いることも可能である。この場合、セレクタ３０は、第２のクロック信号ＣＬＫ２が例えばローレベルを呈する期間において、第１の入力端子Ｓ１に入力されたデータ信号を選択して出力する。またセレクタ３０は、第２のクロック信号ＣＬＫ２が例えばハイレベルを呈する期間において、第２の入力端子Ｓ２に入力されたデータ信号を選択して出力する。セレクタ３０の出力端子Ｐは、論理演算回路４０の入力端子Ｉに接続されており、セレクタ３０によって順次選択されたデータ信号は、論理演算回路４０に順次入力される。
【００１６】
論理演算回路４０は、入力端子Ｉに入力されたデータ信号に応じて出力が定まる組み合わせ回路である。論理演算回路４０は、セレクタ３０から順次出力されるデータ信号の各々に対して所定の論理演算を順次行い、論理演算結果を出力端子Ｏから順次出力する。なお、論理演算回路４０は、複数の入力端子を有していてもよく、セレクタ３０から出力されるデータ信号とともに複数のデータ信号が複数の入力端子を介して入力され得る。この場合、論理演算回路４０は、入力された複数のデータ信号の組み合わせに対する論理演算を行う。
【００１７】
論理演算回路４０の出力端子Ｏは、第１の出力段フリップフロップ５１（以下、第１の出力段ＦＦ５１と表記する）および第２の出力段フリップフロップ５２（以下、第２の出力段ＦＦ５２と表記する）の入力端子Ｄに接続されている。第１の出力段ＦＦ５１は、論理演算回路４０から出力され、入力端子Ｄに入力される論理演算結果を、第１のクロック信号ＣＬＫ１に基づくタイミングで保持し出力端子Ｑから出力するＤフリップフロップである。第２の出力段ＦＦ５２は、論理演算回路４０から出力され、入力端子Ｄに入力されるデータ信号を、第２のクロック信号ＣＬＫ２に基づくタイミングで保持し出力端子Ｑから出力するＤフリップフロップである。
【００１８】
以下に、データ処理回路１０の動作について説明する。図２は、データ処理回路１０の動作を示すタイムチャートである。
【００１９】
第１の入力段ＦＦ２１は、入力端子Ｄに入力されるデータ信号列ａに属するデータ信号を、第１のクロック信号ＣＬＫ１の立ち上がりのタイミングで保持して出力端子Ｑから出力する。第１の入力段ＦＦ２１は、時刻ｔ１から時刻ｔ３までの１クロックサイクル期間に亘りデータ信号ａ１を出力し、時刻ｔ３から時刻ｔ５までの１クロックサイクル期間に亘りデータ信号ａ２を出力する。また、第１の入力段ＦＦ２１は、時刻ｔ５から時刻ｔ７までの１クロックサイクル期間に亘りデータ信号ａ３を出力し、時刻ｔ７から時刻ｔ９までの１クロックサイクル期間に亘りデータ信号ａ４を出力する。第１の入力段ＦＦ２１から順次出力されるデータ信号ａ１〜ａ４は、セレクタ３０の第１の入力端子Ｓ１に順次入力される。
【００２０】
第２の入力段ＦＦ２２は、入力端子Ｄに入力されるデータ信号列ｂに属するデータ信号を、第１のクロック信号ＣＬＫ１に対して位相反転された第２のクロック信号ＣＬＫ２の立ち上がりのタイミングで保持し出力端子Ｑから出力する。第２の入力段ＦＦ２２は、時刻ｔ２から時刻ｔ４までの１クロックサイクル期間に亘りデータ信号ｂ１を出力し、時刻ｔ４から時刻ｔ６までの１クロックサイクル期間に亘りデータ信号ｂ２を出力する。また、第２の入力段ＦＦ２２は、時刻ｔ６から時刻ｔ８までの１クロックサイクル期間に亘りデータ信号ｂ３を出力し、時刻ｔ８から時刻ｔ１０までの１クロックサイクル期間に亘りデータ信号ｂ４を出力する。第２の入力段ＦＦ２２から順次出力されるデータ信号ｂ１〜ｂ４は、セレクタ３０の第２の入力端子Ｓ２に順次入力される。
【００２１】
セレクタ３０は、第１のクロック信号ＣＬＫ１がハイレベルを呈する期間において、第１の入力端子Ｓ１に入力されたデータ信号を選択して出力端子Ｐから出力する。また、セレクタ３０は、第１のクロック信号ＣＬＫ１がローレベルを呈する期間において、第２の入力端子Ｓ２に入力されたデータ信号を選択して出力端子Ｐから出力する。すなわち、セレクタ３０は、時刻ｔ１から時刻ｔ２までの２分の１クロックサイクル期間内に入力端子Ｓ１に入力されたデータ信号ａ１を選択して出力する。また、セレクタ３０は、時刻ｔ２から時刻ｔ３までの２分の１クロックサイクル期間内に入力端子Ｓ２に入力されたデータ信号ｂ１を選択して出力する。セレクタ３０は、以降同様に、第１のクロック信号ＣＬＫ１の立ち上がりエッジおよび立ち下りエッジが生じる毎に（すなわち２分の１クロックサイクル毎に）、データ信号ａ２、ｂ２、ａ３、ｂ３、ａ４、ｂ４を順次選択して出力する。このように、セレクタ３０は、データ信号列ａに属するデータ信号およびデータ信号列ｂに属するデータ信号を２分の１クロックサイクル期間毎に交互に選択して出力する。
【００２２】
論理演算回路４０は、セレクタ３０から順次出力されるデータ信号を入力データとして所定の論理演算を順次行う。論理演算回路４０は、時刻ｔ１から時刻ｔ２までの期間内にセレクタ３０から出力されたデータ信号ａ１に対して論理演算を行うことにより、論理演算結果Ｄａ１を導出し、これを出力端子Ｏから出力する。続いて、論理演算回路４０は、時刻ｔ２から時刻ｔ３の期間内にセレクタ３０から出力されたデータ信号ｂ１に対して論理演算を行うことにより、論理演算結果Ｄｂ１を導出し、これを出力端子Ｏから出力する。論理演算回路４０は、以降同様に、データ信号ａ２、ｂ２、ａ３、ｂ３、ａ４、ｂ４に対する論理演算結果Ｄａ２、Ｄｂ２、Ｄａ３、Ｄｂ３、Ｄａ４、Ｄｂ４を順次導出して出力する。すなわち、論理演算回路４０は、データ信号列ａに属するデータ信号に対する論理演算結果と、データ信号列ｂに属するデータ信号に対する論理演算結果を２分の１クロックサイクル毎に交互に出力する。なお、論理演算回路４０は、入力端子Ｉにデータ信号が入力されてから出力端子Ｏに論理演算結果を出力するまでに所定の時間を要する。従って、図２に示すように、論理演算結果の出力タイミングは、セレクタ３０におけるデータ信号の出力タイミングに対して遅延している。論理演算回路４０から順次出力される論理演算結果Ｄａ１、Ｄｂ１、Ｄａ２、Ｄｂ２、Ｄａ３、Ｄｂ３、Ｄａ４、Ｄｂ４は、第１の出力段ＦＦ５１および第２の出力段ＦＦ５２にそれぞれ供給される。
【００２３】
第１の出力段ＦＦ５１は、入力端子Ｄに入力された論理演算結果Ｄａ１を、第１のクロック信号ＣＬＫ１の時刻ｔ３における立ち上がりのタイミングで取り込み、時刻ｔ３から時刻ｔ５までの１クロックサイクル期間に亘り出力する。第１の出力段ＦＦ５１は、以降同様に、入力端子Ｄに順次入力される論理演算結果のうち、データ信号列ａに関する論理演算結果Ｄａ２、Ｄａ３、Ｄａ４を第１のクロック信号ＣＬＫ１の立ち上がりエッジが生じるタイミングで順次取り込む。
【００２４】
第２の出力段ＦＦ５２は、入力端子Ｄに入力された論理演算結果Ｄｂ１を、第２のクロック信号ＣＬＫ２の時刻ｔ４における立ち上がりのタイミングで取り込み、時刻ｔ４から時刻ｔ６までの１クロックサイクル期間に亘り出力する。第２の出力段ＦＦ５２は、以降同様に、入力端子Ｄに順次入力される論理演算結果のうち、データ信号列ｂに関する論理演算結果Ｄｂ２、Ｄｂ３、Ｄｂ４を第２のクロック信号ＣＬＫ２の立ち上がりエッジが生じるタイミングで順次取り込む。
【００２５】
なお、第１および第２の出力段ＦＦ５１、５２が、それぞれ、第１および第２のクロック信号ＣＬＫ１、ＣＬＫ２の立ち上がりエッジで論理演算結果Ｄａ１〜Ｄａ４、Ｄｂ１〜Ｄｂ４を保持し得るように論理演算結果の出力タイミングを調整してもよい。論理演算結果の出力タイミングの調整は、例えば、論理演算回路４０における論理演算結果を遅延回路を通して出力するなどの方法が挙げられる。なお、論理演算回路４０からの論理演算結果の出力タイミングを調整するのではなく、第１、第２のクロック信号ＣＬＫ１、ＣＬＫ２に対して位相をシフトさせたクロック信号を生成してこれらを第１、第２の出力段ＦＦ５１、５２にそれぞれ供給してもよい。また、第１、第２のクロック信号ＣＬＫ１、ＣＬＫ２に対して位相を反転させたクロック信号を第１、第２の出力段ＦＦ５１、５２にそれぞれ供給してもよい。すなわち、第２のクロック信号ＣＬＫ２を第１の出力段ＦＦ５１に供給し、第１のクロック信号ＣＬＫ１を第２の出力段ＦＦ５２に供給して論理演算結果を取り込むタイミングを調整してもよい。
【００２６】
図３は、第１のクロック信号ＣＬＫ１と、論理演算回路４０から出力される論理演算結果Ｄａ１の出力タイミングの一例を示すタイムチャートである。Ｔｃは、第１のクロック信号ＣＬＫ１のクロックサイクル期間である。Ｔ_ｈｓは、論理演算回路４０において論理演算結果Ｄａ１の出力を開始する時間であるデータ保持開始時間である。Ｔ_ｈｅは、論理演算回路４０において論理演算結果Ｄａ１の出力を終了する時間であるデータ保持終了時間である。Ｔ_ｏは、第１の出力段ＦＦ５１におけるデータ所有期間である。データ所有期間Ｔ_ｏは、セレクタ３０におけるデータ信号ａ１（図３において図示せず）の選択期間（２分の１クロックサイクル）に相当する。
【００２７】
下記の（１）を満たす場合、第１の出力段ＦＦ５１は、第１のクロック信号ＣＬＫ１の２回目の立ち上がりエッジが生じるタイミングで論理演算結果Ｄａ１を取り込むことができる。
Ｔ_ｈｓ＜Ｔ_ｃ＜Ｔ_ｈｅ  ・・・（１）
データ保持開始時間Ｔ_ｈｓは、下記の（２）式によってあらわすことができ、データ保持終了時間Ｔ_ｈｅは、下記の（３）式によってあらわすことができる。
Ｔ_ｈｓ＝Ｔ_ａ＋［Cell Setup］・・・（２）
Ｔ_ｈｅ＝Ｔ_ａ＋Ｔ_ｏ−［Cell Hold］ ・・・（３）。
Ｔ_ａは、第１のクロック信号ＣＬＫ１の立ち上がり時点から論理演算結果Ｄａ１が第１の出力段ＦＦ５１の入力端子Ｄに到達するまでのデータ到達時間である。[Cell Setup]は、第１の出力段ＦＦ５１におけるセットアップタイムであり、クロックエッジに対する入力データを用意する時間である。［Cell Hold］は、第１の出力段ＦＦ５１におけるホールドタイムであり、クロックエッジに対して入力データの保持に要する時間である。
【００２８】
データ所有期間（すなわちセレクタ３０における選択期間）Ｔ_ｏは、常に第１の出力段ＦＦ５１におけるセットアップタイム［Cell Setup］と、ホールドタイム［Cell Hold］と、を合計した期間よりも長い期間であることを要する。また、（１）式を満たすためには、データ到達時間Ｔ_ａが所定範囲内であることが必要となる。すなわち、データ到達時間Ｔ_ａが短すぎたり長すぎたりした場合には、（１）式を満たすことができず、第１の出力段ＦＦ５１において第１のクロック信号ＣＬＫ１の２回目の立ち上がりエッジでＤａ１の取り込みができなくなる。データ到達時間Ｔ_ａの調整は、上記したように、遅延回路を用いて論理演算回路４０における論理演算結果の出力タイミングを調整することにより行うことができる。このような調整を行うことができず、（１）式を満たすことができない場合には、例えば、第１のクロック信号ＣＬＫ１に対して位相をシフトさせた新たなクロック信号を生成して第１の出力段ＦＦ５１に供給して、論理演算結果の取り込みを行ってもよい。なお、第２のクロック信号ＣＬＫ２と、論理演算回路４０から出力される論理演算結果Ｄａ２の出力タイミングとの関係についても同様である。
【００２９】
以上のように、本実施形態に係るデータ処理回路１０において、データ信号列ａに属するデータ信号が、第１の入力段ＦＦを介してセレクタ３０の第１の入力端子Ｓ１に入力される。また、データ信号列ｂに属するデータ信号が、第２の入力段ＦＦ２２を介してセレクタ３０の第２の入力端子Ｓ２に入力される。セレクタ３０は、１クロックサイクル期間内において、データ信号列ａに属するデータ信号およびデータ信号列ｂに属するデータ信号を順次選択して出力する。具体的には、セレクタ３０は、データ信号列ａに属するデータ信号およびデータ信号列ｂに属するデータ信号を２分の１クロックサイクル毎に交互に選択して出力する。
【００３０】
論理演算回路４０は、セレクタ３０から順次出力されるデータ信号の各々に対する論理演算を順次行い、得られた論理演算結果の各々を順次出力する。すなわち、論理演算回路４０は、データ信号列ａに冠する論理演算と、データ信号列ｂに関する論理演算を２分の１クロックサイクル毎に交互に行い、得られた論理演算結果を順次出力する。
【００３１】
第１の出力段ＦＦ５１は、論理演算回路４０から順次出力される論理演算結果を第１のクロック信号に同期して取り込むことで、データ信号列ａに関する論理演算結果の各々を１クロックサイクル期間に亘り順次保持して出力する。第２の出力段ＦＦ５２は、論理演算回路４０から順次出力される論理演算結果を第２のクロック信号に同期して取り込むことで、データ信号列ｂに関する論理演算結果の各々を１クロックサイクル期間に亘り順次保持して出力する。
【００３２】
このように、データ処理回路１０において、データ信号列ａおよびデータ信号列ｂは、セレクタ３０によって２分の１クロックサイクルに相当する時間で時分割され、１つの論理演算回路４０に交互に供給される。そして、データ信号列ａに関する論理演算結果が第１の出力段ＦＦ５１において保持され、データ信号列ｂに関する論理演算結果が第２の出力段ＦＦ５２において保持される。従って、データ処理回路１０によれば、複数のデータ信号列の各々に対する論理演算結果を１クロックサイクル期間内に取得することを、１つの論理演算回路を用いて行うことが可能となる。
【００３３】
また、データ処理回路１０において、セレクタ３０における選択動作を制御するための制御信号として、クロック信号を用いている。これにより、制御信号を生成するための回路を別途設けることなく、１クロックサイクル期間を均等に分割した期間をデータ信号列ａおよびデータ信号列ｂのそれぞれの選択期間として割り当てる動作を実現することができる。
【００３４】
なお、セレクタ３０は、図４に示すように、第１の入力段ＦＦ２１から出力されたデータ信号とともに論理演算回路４０における論理演算処理に供される１つ以上のデータ信号を入力端子群Ｓ１１において入力してもよい。同様に、セレクタ３０は、第２の入力段ＦＦ２２から出力されたデータ信号とともに論理演算回路４０における論理演算処理に供される１つ以上のデータ信号を入力端子群Ｓ１２において入力してもよい。この場合、セレクタ３０は、制御端子Ｃに入力される制御信号に応じて、入力端子群Ｓ１１に入力された一群のデータ信号および入力端子群Ｓ１２に入力された一群のデータ信号を群単位で選択して出力端子群Ｐから出力する。論理演算回路４０は、セレクタ３０から出力された一群のデータ信号に対して論理演算を行う。
【００３５】
図５は、比較例に係るデータ処理回路１０Ａの構成を示す回路ブロック図である。図５において、上記した開示の技術に係るデータ処理回路１０と同一または対応する構成要素については、同一の参照符号を付与し、詳細な説明は省略する。
【００３６】
比較例に係るデータ処理回路１０Ａは、第１の入力段ＦＦ２１、第２の入力段ＦＦ２２、論理演算回路４０Ａおよび４０Ｂ、第１の出力段ＦＦ５１および第２の出力段ＦＦ５２を含む。第１の入力段ＦＦ２１の出力端子Ｑは、論理演算回路４０Ａの入力端子Ｉに接続され、論理演算回路４０Ａの出力端子Ｏは、第１の出力段ＦＦ５１の入力端子Ｄに接続されている。同様に、第２の入力段ＦＦ２２の出力端子Ｑは、論理演算回路４０Ｂの入力端子Ｉに接続され、論理演算回路４０Ｂの出力端子Ｏは、第２の出力段ＦＦ５２の入力端子Ｄに接続されている。すなわち、比較例に係るデータ処理回路１０Ａは、入力されるデータ信号列ａおよびデータ信号列ｂのそれぞれに対応する２つの論理演算回路４０Ａおよび４０Ｂを有している。２つの論理演算回路４０Ａおよび４０Ｂは、論理的に等価であるものとする。第１のクロック信号ＣＬＫ１は、第１の入力段ＦＦ２１、第１の出力段ＦＦ５１に供給され、第１のクロック信号ＣＬＫ１に対して位相反転された第２のクロック信号ＣＬＫ２は、第２の入力段ＦＦ２１および第２の出力段ＦＦ５２にそれぞれ供給される。すなわち、比較例に係るデータ処理回路１０Ａは、クロック信号の位相が互いに異なる２つのクロックドメインでデータ伝送を行う伝送路に論理等価な２つの論理演算回路４０Ａおよび４０Ｂを有する。
【００３７】
図６は、比較例に係るデータ処理回路１０Ａの動作を示すタイムチャートである。第１の入力段ＦＦ２１は、入力端子Ｄに入力されるデータ信号列ａに属するデータ信号を、第１のクロック信号ＣＬＫ１の立ち上がりのタイミングで保持して出力端子Ｑから出力する。第１の入力段ＦＦ２１は、時刻ｔ１から時刻ｔ３までの１クロックサイクル期間に亘りデータ信号ａ１を出力し、時刻ｔ３から時刻ｔ５までの１クロックサイクル期間に亘りデータ信号ａ２を出力する。また、第１の入力段ＦＦ２１は、時刻ｔ５から時刻ｔ７までの１クロックサイクル期間に亘りデータ信号ａ３を出力し、時刻ｔ７から時刻ｔ９までの１クロックサイクル期間に亘りデータ信号ａ４を出力する。第１の入力段ＦＦ２１から順次出力されるデータ信号ａ１〜ａ４は、論理演算回路４０Ａに順次入力される。
【００３８】
第２の入力段ＦＦ２２は、入力端子Ｄに入力されるデータ信号列ｂに属するデータ信号を、第１のクロック信号ＣＬＫ１に対して位相反転された第２のクロック信号ＣＬＫ２の立ち上がりのタイミングで保持して出力端子Ｑから出力する。第２の入力段ＦＦ２２は、時刻ｔ２から時刻ｔ４までの１クロックサイクル期間に亘りデータ信号ｂ１を出力し、時刻ｔ４から時刻ｔ６までの１クロックサイクル期間に亘りデータ信号ｂ２を出力する。また、第２の入力段ＦＦ２２は、時刻ｔ６から時刻ｔ８までの１クロックサイクル期間に亘りデータ信号ｂ３を出力し、時刻ｔ８から時刻ｔ１０までの１クロックサイクル期間に亘りデータ信号ｂ４を出力する。第２の入力段ＦＦ２２から出力されるデータ信号ｂ１〜ｂ４は、論理演算回路４０Ｂに順次入力される。
【００３９】
論理演算回路４０Ａは、第１の入力段ＦＦ２１から順次出力されたデータ信号ａ１〜ａ４の各々に対する論理演算を順次行い、得られた論理演算結果Ｄａ１〜Ｄａ４を順次出力する。論理演算回路４０Ｂは、第２の入力段ＦＦ２２から順次出力されたデータ信号ｂ１〜ｂ４の各々に対する論理演算を順次行い、得られた論理演算結果Ｄｂ１〜Ｄｂ４を順次出力する。
【００４０】
第１の出力段ＦＦ５１は、入力端子Ｄに入力された論理演算結果Ｄａ１を、第１のクロック信号ＣＬＫ１の時刻ｔ３における立ち上がりのタイミングで取り込み、時刻ｔ３から時刻ｔ５までの１クロックサイクル期間に亘り出力する。第１の出力段ＦＦ５１は、以降同様に、入力端子Ｄに順次入力されるデータ信号列ａに関する論理演算結果Ｄａ２、Ｄａ３、Ｄａ４を第１のクロック信号ＣＬＫ１に基づいて順次取り込み、それぞれ１クロックサイクル期間に亘り出力する。
【００４１】
第２の出力段ＦＦ５２は、入力端子Ｄに入力された論理演算結果Ｄｂ１を、第２のクロック信号ＣＬＫ２の時刻ｔ４における立ち上がりのタイミングで取り込み、時刻ｔ４から時刻ｔ６までの１クロックサイクル期間に亘り出力する。第２の出力段ＦＦ５２は、以降同様に、入力端子Ｄに順次入力されるデータ信号列ｂに関する論理演算結果Ｄｂ２、Ｄｂ３、Ｄｂ４を第２のクロック信号ＣＬＫ２に基づいて順次取り込み、それぞれ１クロックサイクル期間に亘り出力する。
【００４２】
図２と図６とを比較して明らかなように、最終的に第１の出力段ＦＦ５１および第２の出力段ＦＦ５２から出力されるデータ信号は、開示の技術に係るデータ処理回路１０と比較例に係るデータ処理回路１０Ａとで同一である。すなわち、開示の技術に係るデータ処理回路１０は、データ信号列ａおよびｂに関する論理演算を行う論理演算回路が１つであるにもかかわらず、２つの論理演算回路４０Ａおよび４０Ｂを有する比較例に係るデータ処理回路１０Ａと同じ機能を有する。開示の技術に係るデータ処理回路１０は、比較例に係るデータ処理回路１０Ａに対して論理演算回路が削減されているので、データ処理回路１０Ａよりも消費電力を小さくすることが可能となる。このように、第１の実施形態に係るデータ処理回路１０は、クロック信号の位相が互いに異なる２つのクロックドメインでデータ伝送を行う伝送路に論理等価な２つの論理演算回路が存在する場合における論理演算回路の削減を実現する。
【００４３】
[第２の実施形態]
図７は、開示の技術の第２の実施形態に係るデータ処理回路１１の構成を示す回路ブロック図である。図７において、上記した第１の実施形態に係るデータ処理回路１０と同一または対応する構成要素については、同一の参照符号を付与し、詳細な説明は省略する。
【００４４】
第１の実施形態に係るデータ処理回路１０は、図５に示すデータ処理回路１０Ａのように、２つのクロックドメインでデータ伝送を行う伝送路に論理等価な２つの論理演算回路が存在する場合における論理演算回路の削減を実現するものであった。これに対して、第２の実施形態に係るデータ処理回路１０は、１つのクロックドメインでデータ伝送を行う伝送路に論理等価な２つの倫理演算回路が存在する場合における論理演算回路の削減を実現するものである。
【００４５】
データ処理回路１１は、第１の実施形態に係るデータ処理回路１０と同様、第１の入力段ＦＦ２１、第２の入力段ＦＦ２２、セレクタ３０、論理演算回路４０、第１の出力段ＦＦ５１および第２の出力段ＦＦ５２を含む。これらの各構成要素間の接続関係は、第１の実施形態に係るデータ処理回路１０と同じである。データ処理回路１１は、第１のクロック信号ＣＬＫ１を入力し、第１のクロック信号ＣＬＫ１に対して位相反転された第２のクロック信号ＣＬＫ２を生成する反転回路６０を更に含む。第１のクロック信号ＣＬＫ１は、第１の入力段ＦＦ２１、セレクタ３０および第１の出力段ＦＦ５１にそれぞれ供給される。反転回路６０によって生成された第２のクロック信号ＣＬＫ２は、第２の入力段ＦＦ２２および第２の出力段ＦＦ５２に供給される。データ処理回路１１の動作は、第１の実施形態に係るデータ処理回路１０と同じであり、図２に示すタイムチャートに示される態様で動作する。
【００４６】
データ処理回路１１によれば、第１の実施形態に係るデータ処理回路１０と同様、複数のデータ信号列の各々に対する論理演算結果を１クロックサイクル期間内に取得することを、１つの論理演算回路を用いて行うことが可能となる。
【００４７】
なお、セレクタ３０は、図８に示すように、第１の入力段ＦＦ２１から出力されたデータ信号とともに論理演算回路４０における論理演算処理に供される１つ以上のデータ信号を入力端子群Ｓ１１において入力してもよい。同様に、セレクタ３０は、第２の入力段ＦＦ２２から出力されたデータ信号とともに論理演算回路４０における論理演算処理に供される１つ以上のデータ信号を入力端子群Ｓ１２において入力してもよい。この場合、セレクタ３０は、制御端子Ｃに入力される制御信号に応じて、入力端子群Ｓ１１に入力された一群のデータ信号および入力端子群Ｓ１２に入力された一群のデータ信号を群単位で選択して出力端子群Ｐから出力する。論理演算回路４０は、セレクタ３０から出力された一群のデータ信号に対して論理演算を行う。
【００４８】
図９は、比較例に係るデータ処理回路１１Ａの構成を示す回路ブロック図である。図９において、データ処理回路１１と同一または対応する構成要素については、同一の参照符号を付与し、詳細な説明は省略する。
【００４９】
比較例に係るデータ処理回路１１Ａは、第１の入力段ＦＦ２１、第２の入力段ＦＦ２２、論理演算回路４０Ａおよび４０Ｂ、第１の出力段ＦＦ５１および第２の出力段ＦＦ５２を含む。すなわち、比較例に係るデータ処理回路１１Ａは、入力されるデータ信号列ａおよびデータ信号列ｂのそれぞれに対応する２つの論理演算回路４０Ａおよび４０Ｂを有している。２つの論理演算回路４０Ａおよび４０Ｂは、論理的に等価であるものとする。第１のクロック信号ＣＬＫ１は、第１の入力段ＦＦ２１、第２の入力段ＦＦ２２、第１の出力段ＦＦ５１および第２の出力段ＦＦ５２にそれぞれ供給される。すなわち、比較例に係るデータ処理回路１１Ａは、１つのクロックドメインでデータ伝送を行う伝送路に論理等価な２つの倫理演算回路４０Ａおよび４０Ｂを有する。
【００５０】
比較例に係るデータ処理回路１１Ａにおいて、最終的に第１の出力段ＦＦ５１および第２の出力段ＦＦ５２から出力される論理演算結果は、これらの出力タイミング揃う点を除き、第２の実施形態に係るデータ処理回路１１と同じである。すなわち、第２の実施形態に係るデータ処理回路１１は、データ信号列ａおよびｂに関する論理演算を行う論理演算回路が１つであるにもかかわらず、２つの論理演算回路４０Ａおよび４０Ｂを有する比較例に係るデータ処理回路１１Ａと同じ機能を有する。データ処理回路１１は、比較例に係るデータ処理回路１１Ａに対して論理演算回路が削減されているので、比較例に係るデータ処理回路１１Ａよりも消費電力を小さくすることが可能となる。このように、第２の実施形態に係るデータ処理回路１１は、１つのクロックドメインでデータ伝送を行う伝送路に論理等価な２つの倫理演算回路が存在する場合における論理演算回路の削減を実現する。
【００５１】
［第３の実施形態］
上記した第１の実施形態に係るデータ処理回路１０および第２の実施形態に係るデータ処理回路１１は、１クロックサイクル期間内に２つのデータ信号列ａおよびデータ信号列ｂに対して論理演算を行うものであった。これに対して第３の実施形態に係るデータ処理回路は、１クロックサイクル期間内に２つ以上のデータ信号列に対する論理演算を行う。
【００５２】
図１０は、開示の技術の第３の実施形態に係るデータ処理回路１２の構成を示す回路ブロック図である。データ処理回路１２は、一例として、１クロックサイクル期間内に４つのデータ信号列ａ、ｂ、ｃ、ｄに対する論理演算を行う構成を有する。データ処理回路１２は、第１〜第４の入力段フリップフロップ２１〜２４、セレクタ３０、論理演算回路４０、第１〜第４の出力段フリップフロップ５１〜５４および制御回路９０を含む。制御回路９０は、開示の技術の制御回路の一例である。
【００５３】
第１の入力段フリップフロップ２１（以下、第１の入力段ＦＦ２１と表記する）は、入力端子Ｄに入力されるデータ信号列ａに属するデータ信号を、クロック信号ＣＬＫに基づくタイミングで保持して出力端子Ｑから出力するＤフリップフロップである。第２の入力段フリップフロップ２２（以下、第２の入力段ＦＦ２２と表記する）は、入力端子Ｄに入力されるデータ信号列ｂに属するデータ信号を、クロック信号ＣＬＫに基づくタイミングで保持して出力端子Ｑから出力するＤフリップフロップである。第３の入力段フリップフロップ２３（以下、第３の入力段ＦＦ２３と表記する）は、入力端子Ｄに入力されるデータ信号列ｃに属するデータ信号を、クロック信号ＣＬＫに基づくタイミングで保持して出力端子Ｑから出力するＤフリップフロップである。第４の入力段フリップフロップ２４（以下、第４の入力段ＦＦ２４と表記する）は、入力端子Ｄに入力されるデータ信号列ｄに属するデータ信号を、クロック信号ＣＬＫに基づくタイミングで保持して出力端子Ｑから出力するＤフリップフロップである。
【００５４】
第１の入力段ＦＦ２１の出力端子Ｑは、セレクタ３０の第１の入力端子Ｓ１に接続されており、第２の入力段ＦＦ２２の出力端子Ｑは、セレクタ３０の第２の入力端子Ｓ２に接続されている。第３の入力段ＦＦ２３の出力端子Ｑは、セレクタ３０の第３の入力端子Ｓ３に接続されており、第４の入力段ＦＦ２４の出力端子Ｑは、セレクタ３０の第４の入力端子Ｓ４に接続されている。
【００５５】
セレクタ３０は、第１〜第４の入力端子Ｓ１〜Ｓ４に入力されたデータ信号のいずれかを、制御回路９０から出力され制御端子Ｃに入力される制御信号ＳＣに応じて選択し出力端子Ｐから出力する。セレクタ３０は、制御信号ＳＣに基づいて選択動作を行うことにより、第１〜第４の入力端子Ｓ１〜Ｓ４にそれぞれ供給されるデータ信号をクロック信号ＣＬＫにおける１クロックサイクル期間内において順次選択して出力する。
【００５６】
セレクタ３０の出力端子Ｐは、論理演算回路４０の入力端子Ｉに接続されており、セレクタ３０によって順次選択され出力されたデータ信号が、論理演算回路４０に順次に入力される。論理演算回路４０は、セレクタ３０から順次出力されるデータ信号の各々に対して所定の論理演算を順次行い、論理演算結果の各々を出力端子Ｏから順次出力する。なお、論理演算回路４０は、複数の入力端子を有していてもよく、セレクタ３０から出力されるデータ信号とともに複数のデータ信号が複数の入力端子を介して入力され得る。この場合、論理演算回路４０は、入力された複数のデータ信号に対する論理演算を行う。
【００５７】
論理演算回路４０の出力端子Ｏは、第１〜第４の出力段フリップフロップ５１〜５４の入力端子Ｄに接続されている。以下において、第１の出力段フリップフロップ５１を第１の出力段ＦＦ５１と表記し、第２の出力段フリップフロップ５２を第２の出力段ＦＦ５２と表記する。また、第３の出力段フリップフロップ５３を第３の出力段ＦＦ５３と表記し、第４の出力段フリップフロップ５４を第４の出力段ＦＦ５４と表記する。
【００５８】
第１の出力段ＦＦ５１は、論理演算回路４０から出力され、入力端子Ｄに入力される論理演算結果を、制御回路９０から供給されるクロック信号ＣＬＫ＿Ｍ１に基づくタイミングで保持して出力端子Ｑから出力するＤフリップフロップである。第２の出力段ＦＦ５２は、論理演算回路４０から出力され、入力端子Ｄに入力される論理演算結果を、制御回路９０から供給されるクロック信号ＣＬＫ＿Ｍ２に基づくタイミングで保持して出力端子Ｑから出力するＤフリップフロップである。第３の出力段ＦＦ５３は、論理演算回路４０から出力され、入力端子Ｄに入力される論理演算結果を、制御回路９０から供給されるクロック信号ＣＬＫ＿Ｍ３に基づくタイミングで保持して出力端子Ｑから出力するＤフリップフロップである。第４の出力段ＦＦ５４は、論理演算回路４０から出力され、入力端子Ｄに入力される論理演算結果を、制御回路９０から供給されるクロック信号ＣＬＫ＿Ｍ４に基づくタイミングで保持して出力端子Ｑから出力するＤフリップフロップである。
【００５９】
制御回路９０は、クロック信号ＣＬＫと、データ処理回路１２に対して入力されるデータ信号列の数ｎ（本実施形態の場合ｎ＝４）を示す信号列数情報Ｈと、に基づいてセレクタ３０における選択動作を制御する制御信号ＳＣを生成してセレクタ３０に供給する。制御回路９０は、例えば、クロック信号ＣＬＫの１サイクルを、データ信号列の数ｎ（本実施形態の場合ｎ＝４）で均等に分割した期間をセレクタ３０に入力される各データ信号の選択期間として割り当てるべく制御信号ＳＣを生成する。例えば、クロック信号ＣＬＫのサイクル開始時点（立ち上がり時点）から４分の１サイクル経過時点までの期間がセレクタ３０の第１の入力端子Ｓ１に入力されたデータ信号の選択期間とされる。また、クロック信号ＣＬＫの４分の１サイクル経過時点から４分の２サイクル経過時点までの期間がセレクタ３０の第２の入力端子Ｓ２に入力されたデータ信号の選択期間とされる。また、クロック信号ＣＬＫの４分の２サイクル経過時点から４分の３サイクル経過時点までの期間がセレクタ３０の第３の入力端子Ｓ３に入力されたデータ信号の選択期間とされる。また、クロック信号ＣＬＫの４分の３サイクル経過時点から１サイクル終了時点までの期間がセレクタ３０の第４の入力端子Ｓ４に入力されたデータ信号の選択期間とされる。
【００６０】
また、制御回路９０は、クロック信号ＣＬＫと、入力されるデータ信号列の数ｎを示す信号列数情報Ｈと、に基づいてクロック信号ＣＬＫ＿Ｍ１〜ＣＬＫ＿Ｍ４を生成し、それぞれ、第１〜第４の出力段ＦＦ５１〜５４に供給する。クロック信号ＣＬＫ＿Ｍ１〜ＣＬＫ＿Ｍ４は、第１〜第４の入力段フリップフロップ２１〜２４に入力されるクロック信号ＣＬＫと同一の周期を有し且つ４分の１周期ずつ位相がずれている。本実施形態において、クロック信号ＣＬＫ＿Ｍ１は、クロック信号ＣＬＫと同位相であり、クロック信号ＣＬＫ＿Ｍ２は、クロック信号ＣＬＫ＿Ｍ１に対して４分の１周期位相が遅れている。クロック信号ＣＬＫ＿Ｍ３は、クロック信号ＣＬＫ＿Ｍ２に対して４分の１周期位相が遅れており、クロック信号ＣＬＫ＿Ｍ４は、クロック信号ＣＬＫ＿Ｍ３に対して４分の１周期位相が遅れている。
【００６１】
以下に、データ処理回路１２の動作について説明する。図１１は、データ処理回路１２の動作を示すタイムチャートである。
【００６２】
第１の入力段ＦＦ２１は、入力端子Ｄに入力されるデータ信号列ａに属するデータ信号をクロック信号ＣＬＫの立ち上がりのタイミングで保持して出力端子Ｑから出力する。第１の入力段ＦＦ２１は、時刻ｔ１から時刻ｔ３までの１クロックサイクル期間に亘りデータ信号ａ１を出力する。第１の入力段ＦＦ２１から出力されるデータ信号ａ１は、セレクタ３０の第１の入力端子Ｓ１に供給される。
【００６３】
第２の入力段ＦＦ２２は、入力端子Ｄに入力されるデータ信号列ｂに属するデータ信号をクロック信号ＣＬＫの立ち上がりのタイミングで保持して出力端子Ｑから出力する。第２の入力段ＦＦ２２は、時刻ｔ１から時刻ｔ３までの１クロックサイクル期間に亘りデータ信号ｂ１を出力する。第２の入力段ＦＦ２２から出力されるデータ信号ｂ１は、セレクタ３０の第２の入力端子Ｓ２に供給される。
【００６４】
第３の入力段ＦＦ２３は、入力端子Ｄに入力されるデータ信号列ｃに属するデータ信号をクロック信号ＣＬＫの立ち上がりのタイミングで保持して出力端子Ｑから出力する。第３の入力段ＦＦ２３は、時刻ｔ１から時刻ｔ３までの１クロックサイクル期間に亘りデータ信号ｃ１を出力する。第３の入力段ＦＦ２３から出力されるデータ信号ｃ１は、セレクタ３０の第３の入力端子Ｓ３に供給される。
【００６５】
第４の入力段ＦＦ２４は、入力端子Ｄに入力されるデータ信号列ｄに属するデータ信号をクロック信号ＣＬＫの立ち上がりのタイミングで保持して出力端子Ｑから出力する。第４の入力段ＦＦ２４は、時刻ｔ１から時刻ｔ３までの１クロックサイクル期間に亘りデータ信号ｄ１を出力する。第４の入力段ＦＦ２４から出力されるデータ信号ｄ１は、セレクタ３０の第４の入力端子Ｓ４に供給される。
【００６６】
セレクタ３０は、制御回路９０から供給される制御信号ＳＣに基づいて、クロック信号ＣＬＫの立ち上がり時点から４分の１サイクル経過時点までの期間において第１の入力端子Ｓ１に入力されたデータ信号ａ１を選択して出力する。また、セレクタ３０は、クロック信号ＣＬＫの４分の１サイクル経過時点から４分の２サイクル経過時点までの期間において第２の入力端子Ｓ２に入力されたデータ信号ｂ１を選択して出力する。また、セレクタ３０は、クロック信号ＣＬＫの４分の２サイクル経過時点から４分の３サイクル経過時点までの期間において第３の入力端子Ｓ３に入力されたデータ信号ｃ１を選択して出力する。また、セレクタ３０は、クロック信号ＣＬＫの４分の３サイクル経過時点から１サイクル経過時点までの期間において第４の入力端子Ｓ４に入力されたデータ信号ｄ１を選択して出力する。このようにセレクタ３０は、データ信号列ａ〜ｄに属するデータ信号を４分の１クロックサイクル毎に順次選択して出力する。
【００６７】
論理演算回路４０は、セレクタ３０から順次出力されるデータ信号を入力データとして所定の論理演算を順次行う。論理演算回路４０は、セレクタ３０から出力されたデータ信号ａ１に対して論理演算を行うことにより、論理演算結果Ｄａ１を導出して出力する。続いて、論理演算回路４０は、セレクタ３０から出力されたデータ信号ｂ１に対して論理演算を行うことにより、論理演算結果Ｄｂ１を導出して出力する。続いて、論理演算回路４０は、セレクタ３０から出力されたデータ信号ｃ１に対して論理演算を行うことにより、論理演算結果Ｄｃ１を導出して出力する。続いて、論理演算回路４０は、セレクタ３０から出力されたデータ信号ｄ１に対して論理演算を行うことにより、論理演算結果Ｄｄ１を導出して出力する。このように、論理演算回路４０は、セレクタ３０から順次出力されるデータ信号列ａ〜ｄに関する論理演算結果を、クロック信号ＣＬＫの４分の１サイクル毎に順次出力する。なお、論理演算回路４０は、入力端子Ｉにデータ信号が入力されてから出力端子Ｏに論理演算結果を出力するまでに所定の時間を要する。従って、図１１に示すように、論理演算結果の出力タイミングは、セレクタ３０におけるデータ信号の出力タイミングに対して遅延している。論理演算回路４０から順次出力される論理演算結果Ｄａ１、Ｄｂ１、Ｄｃ１、Ｄｄ１は、第１〜第４の出力段ＦＦ５１〜５４にそれぞれ入力される。
【００６８】
制御回路９０は、クロック信号ＣＬＫと同一の周期を有し且つ４分の１周期ずつ位相がずれたクロック信号ＣＬＫ＿Ｍ１〜ＣＬＫ＿Ｍ４を生成する。
【００６９】
第１の出力段ＦＦ５１は、入力端子Ｄに入力された論理演算結果Ｄａ１を、クロック信号ＣＬＫ＿Ｍ１の立ち上がりのタイミングで取り込み、１クロックサイクル期間に亘り出力する。すなわち、第１の出力段ＦＦ５１は、データ信号列ａに関する論理演算結果を出力する。
【００７０】
第２の出力段ＦＦ５２は、入力端子Ｄに入力された論理演算結果Ｄｂ１を、クロック信号ＣＬＫ＿Ｍ２の立ち上がりのタイミングで取り込み、１クロックサイクル期間に亘り出力する。すなわち、第２の出力段ＦＦ５２は、データ信号列ｂに関する論理演算結果を出力する。
【００７１】
第３の出力段ＦＦ５３は、入力端子Ｄに入力された論理演算結果Ｄｃ１を、クロック信号ＣＬＫ＿Ｍ３の立ち上がりのタイミングで取り込み、１クロックサイクル期間に亘り出力する。すなわち、第３の出力段ＦＦ５３は、データ信号列ｃに関する論理演算結果を出力する。
【００７２】
第４の出力段ＦＦ５４は、入力端子Ｄに入力された論理演算結果Ｄｄ１を、クロック信号ＣＬＫ＿Ｍ４の立ち上がりのタイミングで取り込み、１クロックサイクル期間に亘り出力する。すなわち、第４の出力段ＦＦ５４は、データ信号列ｄに関する論理演算結果を出力する。
【００７３】
なお、第１の出力段ＦＦ５１がクロック信号ＣＬＫ１と同位相のクロック信号ＣＬＫ＿Ｍ１の立ち上がりエッジで論理演算結果Ｄａ１を保持し得るように、論理演算回路４０からの論理演算結果の出力タイミングを調整してもよい。論理演算結果の出力タイミングの調整は、例えば、論理演算回路４０における論理演算結果を遅延回路を通して出力するなどの方法が挙げられる。なお、論理演算回路４０からの論理演算結果の出力タイミングを調整するのではなく、クロック信号ＣＬＫ＿Ｍ１〜ＣＬＫ＿Ｍ４の位相をシフトさせてもよい。
【００７４】
このように、第３の実施形態に係るデータ処理回路１２において、データ信号列ａ〜ｄは、セレクタ３０によって４分の１クロックサイクルに相当する時間で時分割され、１つの論理演算回路４０に順次に供給される。従って、データ処理回路１２によれば、複数のデータ信号列の各々に対する論理演算結果を１クロックサイクル期間内に取得することを、１つの論理演算回路を用いて行うことが可能となる。また、データ処理回路１２によれば、１クロックサイクル期間内に２つ以上のデータ信号列に対する論理演算を行うことも可能となる。
【００７５】
なお、セレクタ３０は、図１２に示すように、第１〜第４の入力段ＦＦ２１〜２４から出力されたデータ信号とともに論理演算回路４０における論理演算処理に供される１つ以上のデータ信号を第１〜第４の入力端子群Ｓ１１〜Ｓ１４において入力してもよい。この場合、セレクタ３０は、制御端子Ｃに入力される制御信号ＳＣに応じて、第１〜第４の入力端子群Ｓ１１〜Ｓ１４にそれぞれ入力された一群のデータ信号を群単位で選択して出力端子群Ｐから出力する。論理演算回路４０は、セレクタ３０から出力された一群のデータ信号に対して論理演算を行う。
【００７６】
なお、第３の実施形態では、データ処理回路１２に４つのデータ信号列ａ〜ｄが入力される場合を例示したが、これに限定されるものではない。図１３に示すように、ｎ個のデータ信号列ａ〜ｘに対する論理演算を行う場合には、各データ信号列に対応するｎ個の入力段フリップフロップ２１〜２ｎおよびｎ個の出力段フリップフロップ５１〜５ｎを設け、セレクタ３０の入力端子数をｎ個またはｎ組とする。また、１クロックサイクルをｎ等分した期間をセレクタ３０における１つのデータ信号の選択期間とし、セレクタ３０において各入力段フリップフロップから出力されるｎ個のデータ信号を１クロックサイクル期間内において順次選択する。制御回路９０は、ｎ分の１周期ずつ位相がずれたｎ個のクロック信号ＣＬＫ＿Ｍ１〜ＣＬＫ＿Ｍｎを生成して、対応する出力段フリップフロップに供給する。各出力段フリップフロップは、クロック信号ＣＬＫ＿Ｍ１〜ＣＬＫ＿Ｍに基づいて論理演算回路４０から順次出力される論理演算結果を保持する。これにより、１クロックサイクル期間内において取得された、ｎ個のデータ信号列に関する論理演算結果が、対応する出力段フリップフロップにおいて出力される。
【００７７】
図１４は、変形例に係るデータ処理回路１３の構成を示す回路ブロック図である。図１４において、上記のデータ処理回路１２と同一または対応する構成要素については、同一の参照符号を付与し、詳細な説明は省略する。データ処理回路１３は、論理演算回路４０と第１〜第３の出力段ＦＦ５１〜５３との間に第１の遅延回路９１、第２の遅延回路９２および第３の遅延回路９３が設けられている。また、データ処理回路１３において、第１〜第４の出力段ＦＦ５１〜５４には、制御回路９０から共通のクロック信号ＣＬＫ＿Ｍが入力される。これら以外の構成は、図１０に示すデータ処理回路１２と同様である。
【００７８】
第１の遅延回路９１は、入力信号に対して４分の３クロックサイクル期間に相当する遅延時間を付与する回路であり、論理演算回路４０の出力端子Ｏと第１の出力段ＦＦ５１の入力端子Ｄとの間に設けられている。第２の遅延回路９２は、入力信号に対して４分の２クロックサイクル期間に相当する遅延時間を付与する回路であり、論理演算回路４０の出力端子Ｏと第２の出力段ＦＦ５２の入力端子Ｄとの間に設けられている。第３の遅延回路９３は、入力信号に対して４分の１クロックサイクル期間に相当する遅延時間を付与する回路であり、論理演算回路４０の出力端子Ｏと第３の出力段ＦＦ５３の入力端子Ｄとの間に設けられている。論理演算回路４０の出力端子Ｏと第４の出力段ＦＦ５４の入力端子Ｄとの間には、遅延回路を設けられていない。なお、第１〜第３の遅延回路９１〜９３は、開示の技術の複数の遅延回路の一例である。
【００７９】
制御回路９０は、クロック信号ＣＬＫと同一の周期を有し且つクロック信号ＣＬＫに対して位相がずれたクロック信号ＣＬＫ＿Ｍを生成し、これを第１〜第４の出力段ＦＦ５１〜５４に供給する。
【００８０】
図１５は、データ処理回路１３の動作を示すタイムチャートである。第１の遅延回路９１は、論理演算回路４０から順次出力される論理演算結果を４分の３クロックサイクル期間に相当する時間だけ遅延させる。これにより、論理演算結果Ｄｄ１が、第４の出力段ＦＦ５４の入力端子Ｄに入力されるタイミングと、論理演算結果Ｄａ１が、第１の出力段ＦＦ５１の入力端子Ｄに入力されるタイミングと、が一致する。第２の遅延回路９２は、論理演算回路４０から順次出力される論理演算結果を４分の２クロックサイクルに相当する時間だけ遅延させて出力する。これにより、論理演算結果Ｄｄ１が、第４の出力段ＦＦ５４の入力端子Ｄに入力されるタイミングと、論理演算結果Ｄｂ１が、第２の出力段ＦＦ５２の入力端子Ｄに入力されるタイミングと、が一致する。第３の遅延回路９３は、論理演算回路４０から順次出力される論理演算結果を４分の１クロックサイクルに相当する時間だけ遅延させて出力する。これにより、論理演算結果Ｄｄ１が、第４の出力段ＦＦ５４の入力端子Ｄに入力されるタイミングと、論理演算結果Ｄｃ１が、第３の出力段ＦＦ５３の入力端子Ｄに入力されるタイミングと、が一致する。すなわち、図１５において破線で囲まれている部分において示されているように、論理演算結果Ｄａ１、Ｄｂ１、Ｄｃ１、Ｄｄ１がそれぞれ、第１〜第４の出力段ＦＦ５１〜５４の入力端子Ｄに入力されるタイミングが揃う。
【００８１】
第１〜第４の出力段ＦＦ５１〜５４は、それぞれの入力端子Ｄに同じタイミングで入力された論理演算結果Ｄａ１〜Ｄｄ１を、クロック信号ＣＬＫ＿Ｍの立ち上がりのタイミングで取り込み、１クロックサイクル期間に亘り出力する。すなわち、第１の出力段ＦＦ５１は、データ信号列ａに関する論理演算結果を保持し、第２の出力段ＦＦ５２は、データ信号列ｂに関する論理演算結果を保持する。第３の出力段ＦＦ５３は、データ信号列ｃに属するデータ信号に対する論理演算結果を保持し、第４の出力段ＦＦ５４は、データ信号列ｄに属するデータ信号に対する論理演算結果を保持する。
【００８２】
このように、データ処理回路１３によれば、遅延回路９１〜９３よって論理演算回路４０から順次出力される論理演算結果が第１〜第４の出力段ＦＦ５１〜５４に入力されるタイミングが揃うように調整される。これにより、第１〜第４の出力段ＦＦ５１〜５４におけるデータ信号列ａ〜ｄに関する論理演算結果の取り込みを、共通のクロック信号ＣＬＫ＿Ｍによって行うことが可能となる。すなわち、上記したデータ処理回路１２のように、互いに位相が異なる複数のクロック信号ＣＬＫ＿Ｍ１〜ＣＬＫ＿Ｍ４を生成することを要しない。
【００８３】
以上の第１〜第３の実施形態に関し、更に以下の付記を開示する。
【００８４】
（付記１）
複数のデータ信号列の各々に属するデータ信号の各々を、クロック信号の１クロックサイクル期間内において順次選択して出力するセレクタと、
前記セレクタから順次出力されるデータ信号の各々に対する演算を順次行い、得られた演算結果の各々を順次出力する単一の演算回路と、
前記複数のデータ信号列の各々に対応して設けられ、各々が前記演算回路から順次出力される演算結果のうち対応するデータ信号列に関する演算結果を１クロックサイクル期間保持して出力する複数の出力段保持回路と、
を含むデータ処理回路。
【００８５】
（付記２）
前記複数のデータ信号列の各々に対応して設けられ、各々が対応するデータ信号列に属するデータ信号を、１クロックサイクル期間保持して出力する複数の入力段保持回路を更に含み、
前記セレクタは、前記複数の入力段保持回路の各々から出力されるデータ信号を順次選択して出力する
付記１に記載のデータ処理回路。
【００８６】
（付記３）
前記複数の出力段保持回路は、
２つのデータ信号列のうちの一方に属するデータ信号に対する演算結果を、前記クロック信号としての第１のクロック信号に基づくタイミングで保持して出力する第１の出力段フリップフロップと、
前記２つのデータ信号列のうちの他方に属するデータ信号に対する演算結果を、前記第１のクロック信号に対して位相反転された第２のクロック信号に基づくタイミングで保持して出力する第２の出力段フリップフロップと、
を含む付記１または付記２に記載のデータ処理回路。
【００８７】
（付記４）
前記複数の入力段保持回路は、
前記２つのデータ信号列のうちの一方に属するデータ信号を、前記第１のクロック信号に基づくタイミングで保持して出力する第１の入力段フリップフロップと、
前記２つのデータ信号列のうちの他方に属するデータ信号を、前記第２のクロック信号に基づくタイミングで保持して出力する第２の入力段フリップフロップと、
を含む付記３に記載のデータ処理回路。
【００８８】
（付記５）
前記セレクタは、前記第１のクロック信号または前記第２のクロック信号に同期して選択するデータ信号を切り替える
付記３または付記４に記載のデータ処理回路。
【００８９】
（付記６）
前記セレクタにおける、前記２つのデータ信号列のうちの一方に属するデータ信号の選択期間および前記２つのデータ信号列のうちの他方に属するデータ信号の選択期間は、それぞれ前記第１のクロック信号または前記第２のクロック信号の２分の１クロックサイクル期間に相当する期間である
付記５に記載のデータ処理回路。
【００９０】
（付記７）
前記第１のクロック信号を位相反転させて前記第２のクロック信号生成する反転回路を更に含む
付記３から付記６のいずれか１つに記載のデータ処理回路。
【００９１】
（付記８）
前記セレクタに入力されるｎ個のデータ信号列の各々に属するｎ個のデータ信号の選択タイミングを制御する制御信号を生成する制御回路を更に含み、
前記セレクタは、前記制御信号に基づいて１クロックサイクル期間をｎ個に分割した各期間を、前記ｎ個のデータ信号の各々の選択期間として割り当てる
付記１または付記２に記載のデータ処理回路。
【００９２】
（付記９）
前記制御回路は、前記セレクタに入力される前記ｎ個のデータ信号の各々の選択期間が１クロックサイクル期間をｎ等分した期間となるように前記制御信号を生成する
付記８に記載のデータ処理回路。
【００９３】
（付記１０）
前記複数の出力段保持回路は、前記演算回路から順次出力される演算結果のうち対応するデータ信号列に関する演算結果を、ｎ分の１クロックサイクル期間ずつ位相がずれたｎ個のクロック信号のうち対応するクロック信号に基づくタイミングで保持して出力するｎ個の出力段フリップフロップを含む
付記８または付記９に記載のデータ処理回路。
【００９４】
（付記１１）
前記演算回路から順次出力される演算結果に対して互いに異なる複数の遅延時間を付与することにより、前記ｎ個のデータ信号列の各々に関する演算結果の対応する出力段保持回路への供給タイミングを揃える複数の遅延回路を更に含み、
前記複数の出力段保持回路は、前記演算回路または前記遅延回路から供給される演算結果のうち対応するデータ信号列に関する演算結果を、共通のクロック信号に基づくタイミングで保持して出力するｎ個の出力段フリップフロップを含む
付記８または付記９に記載のデータ処理回路。
【００９５】
（付記１２）
複数のデータ信号列の各々に属するデータ信号の各々を、クロック信号の１クロックサイクル期間内において順次選択し、
選択した前記データ信号の各々に対する演算結果を単一の演算回路から順次取得し、
取得した前記演算結果の各々を前記データ信号列毎に１クロックサイクル期間保持して出力する
データ処理方法。
【００９６】
（付記１３）
２つのデータ信号列のうちの一方に属するデータ信号の選択期間および前記２つのデータ信号列のうちの他方に属するデータ信号の選択期間をそれぞれ２分の１クロックサイクル期間に相当する期間とし、
前記２つのデータ信号列のうちの一方に関する演算結果を、前記クロック信号としての第１のクロック信号に基づくタイミングで保持して出力し、
前記２つのデータ信号列のうちの他方に関する演算結果を、前記第１のクロック信号に対して位相反転された第２のクロック信号に基づくタイミングで保持して出力する
付記１２に記載のデータ処理方法。
【００９７】
（付記１４）
ｎ個のデータ信号列の各々に属するデータ信号の各々の選択期間を、１クロックサイクル期間をｎ等分した期間とする
付記１２に記載のデータ処理方法。
【００９８】
（付記１５）
前記ｎ個のデータ信号列の各々に関して順次取得された演算結果を、ｎ分の１クロックサイクル期間ずつ位相がずれたｎ個のクロック信号の各々に基づくタイミングで保持して出力する
付記１４に記載のデータ処理方法。
【００９９】
（付記１６）
前記ｎ個のデータ信号列の各々に関して順次取得した演算結果に対して互いに異なる複数の遅延時間を付与することにより、前記ｎ個のデータ信号列の各々に関する演算結果の出力タイミングを揃え、
前記ｎ個のデータ信号列の各々に関する演算結果を共通のクロック信号に基づくタイミングで保持して出力する
付記１４に記載のデータ処理方法。
【符号の説明】
【０１００】
１１〜１３  データ処理回路
２１  第１の入力段フリップフロップ
２２  第２の入力段フリップフロップ
３０  セレクタ
４０  論理演算回路
５１  第１の出力段フリップフロップ
５２  第２の出力段フリップフロップ
９０  制御回路
９１  第１の遅延回路
９２  第２の遅延回路
９３  第３の遅延回路
【図１】
2015191485.tif 000003
【図２】
2015191485.tif 000004
【図３】
2015191485.tif 000005
【図４】
2015191485.tif 000006
【図５】
2015191485.tif 000007
【図６】
2015191485.tif 000008
【図７】
2015191485.tif 000009
【図８】
2015191485.tif 000010
【図９】
2015191485.tif 000011
【図１０】
2015191485.tif 000012
【図１１】
2015191485.tif 000013
【図１２】
2015191485.tif 000014
【図１３】
2015191485.tif 000015
【図１４】
2015191485.tif 000016
【図１５】
2015191485.tif 000017