以下、本発明の実施形態の例を、図面を参照して具体的に説明する。参照される各図において、同一の部分には同一の符号を付し、同一の部分に関する重複する説明を原則として省略する。尚、本明細書では、記述の簡略化上、情報、信号、物理量、素子又は部位等を参照する記号又は符号を記すことによって、該記号又は符号に対応する情報、信号、物理量、素子又は部位等の名称を省略又は略記することがある。例えば、後述の“SEL”によって参照される出力選択信号は(図2参照)、出力選択信号SELと表記されることもあるし、信号SELと略記されることもあり得るが、それらは全て同じものを指す。
まず、本発明の実施形態の記述にて用いられる幾つかの用語について説明を設ける。本発明の実施形態において、ICとは集積回路(Integrated Circuit)の略称である。レベルとは電位のレベルを指し、任意の信号又は電圧についてハイレベルはローレベルよりも高い電位を有する。或る任意の注目した信号について、注目した信号がハイレベルであるとき、当該注目した信号の反転信号はローレベルをとり、注目した信号がローレベルであるとき、当該注目した信号の反転信号はハイレベルをとる。任意の信号又は電圧において、ローレベルからハイレベルへの切り替わりをアップエッジと称し、ハイレベルからローレベルへの切り替わりをダウンエッジと称する。
<<第1実施形態>>
本発明の第1実施形態を説明する。図1は、本発明の第1実施形態に係るデータ処理装置1の構成図である。データ処理装置1は半導体集積回路として構成される。データ処理装置1は、デジタル処理回路2、ステート制御回路3、前段回路4、後段回路5、タイミング制御回路6及びクロック信号生成回路7を備える。尚、ここでは、データ処理装置1の構成要素の内、本発明に関連する要部のみに注目しており、符号2~7によって参照される構成要素とは異なる他の構成要素もデータ処理装置1には含まれうるが、他の構成要素の図示及び説明は省略する。
クロック信号生成回路7はクロック信号CLKを生成及び出力する。クロック信号CLKは所定の周波数(例えば2MHz)を有する矩形波信号であり、故にクロック信号CLKの信号レベルは周期的にローレベル及びハイレベル間で切り替わる。デジタル処理回路2及びステート制御回路3はクロック信号CLKに同期して動作する。前段回路4、後段回路5及びタイミング制御回路6は、クロック信号CLKに同期して動作して良いし、クロック信号CLKとは別のクロック信号に同期して動作しても良い。
前段回路4は、データDA[1]~DA[MA]をデジタル処理回路2に供給する。ここで、MAは2以上の任意の整数である。データDA[1]~DA[MA]は、前段回路4及びデジタル処理回路2間に設けられたMA本の配線を介して同時にデジタル処理回路2に入力される。
デジタル処理回路2はフリップフロップ回路を複数個備える。デジタル処理回路2に設けられた各フリップフロップ回路は、マスタラッチ回路及びスレーブラッチ回路を備えたマスタスレーブ型のフリップフロップ回路である。但し、デジタル処理回路2に設けられた各フリップフロップ回路にはスレーブラッチ回路が複数個備えられている。スレーブラッチ回路が複数個設けられたフリップフロップ回路を、特にマルチスレーブ型のフリップフロップ回路と称し、以下、“MSFF”と表記する。“MSFF”は “Multi-Slave Flip-Flop”の略称である。
具体的には、デジタル処理回路2は、ロジック回路20と、ロジック回路20の前段側に配置された計MA個のMSFF10と、ロジック回路20の後段側に配置された計MB個のMSFF30と、を備える。MBは2以上の任意の整数である。MA及びMBは互いに一致する値を有していても良いし、互いに異なる値を有していても良い。MA個のMSFF10を互いに区別する必要がある場合、MA個のMSFF10を符号“10[1]~10[MA]”によって参照する。MB個のMSFF30を互いに区別する必要がある場合、MB個のMSFF30を符号“30[1]~30[MB]”によって参照する。MSFF10[1]~10[MA]及びMSFF30[1]~30[MB]は、互いに同じ構成を有する。
デジタル処理回路2は、入力されたデータDA[1]~DA[MA]に対し所定の信号処理(論理演算)を行い、その信号処理の結果を示すデータを出力する。
ステート制御回路3は、タイミング制御回路6によるタイミング制御の下、デジタル処理回路2内の全てのMSFF10及び30に対して出力選択信号SEL及びクロック選択信号SELCを供給する。
図2に、1つのMSFF100における、データ及び信号の入出力に関わる構成を示す。MSFF100を、MSFF10[1]~10[MA]及びMSFF30[1]~30[MB]の夫々として用いることができる。
MSFF100は、MSFF100の外部からの入力データDを受けるデータ入力部101と、MSFF100の出力データQが現れるデータ出力部102と、クロック信号CLKの入力を受けるクロック信号入力部103と、クロック選択信号SELCの入力を受けるクロック選択信号入力部104と、出力選択信号SELの入力を受ける出力選択信号入力部105と、を備える。更に、MSFF100には、セット信号SETの入力を受けるセット信号入力部106及びリセット信号RSTの入力を受けるリセット信号入力部107が設けられ得る。MSFF100に入力部106及び107が設けられる場合、セット信号SET及びリセット信号RSTは、ステート制御回路3又はそれ以外の回路からMSFF100に供給される。MSFF100に入力部106及び107が設けられないこともある。
図1のデータ処理装置1において、MSFF10[1]~10[MA]にとっての入力データDは夫々データDA[1]~DA[MA]であり、MSFF10[1]~10[MA]にとっての出力データQは夫々データQA[1]~QA[MA]である。図1のデータ処理装置1において、MSFF30[1]~30[MB]にとっての入力データDは夫々データDB[1]~DB[MB]であり、MSFF30[1]~30[MB]にとっての出力データQは夫々データQB[1]~QB[MB]である。データDA[1]~DA[MA]、QA[1]~QA[MA]、DB[1]~DB[MB]及びQB[1]~QB[MB]の夫々は1ビットのデジタルデータである。
ロジック回路20に対してMSFF10[1]~10[MA]の出力データQA[1]~QA[MA]が入力される。ロジック回路20は、組み合わせ回路を含み、出力データQA[1]~QA[MA]に基づく所定の信号処理(論理演算)を行って、その信号処理の結果をデータDB[1]~DB[MB]として出力する。ロジック回路20からのデータDB[1]~DB[MB]が夫々MSFF30[1]~30[MB]に入力される。
MSFF30[1]~30[MB]の出力データQB[1]~QB[MB]は後段回路5に供給される。後段回路5は、自身に供給されたデータに基づいて所定の処理を実行する。尚、デジタル処理回路2においてMSFF30[1]~30[MB]の出力データQB[1]~QB[MB]に対し更に他の信号処理を施し、これによって得られるデータを後段回路5に供給するようにしても良い。
第1実施形態は、以下の実施例EX1_1~EX1_3を含む。実施例EX1_1~EX1_3にて、データ処理装置1(特にMSFF10及び30)の具体的な構成例や動作例を説明する。尚、実施例EX1_1~EX1_3の内、任意の実施例に記載した事項を、他の任意の実施例に適用することもできる(即ち複数の実施例の内の任意の2以上の実施例を組み合わせることも可能である)。
―――実施例EX1_1―――
実施例EX1_1を説明する。実施例EX1_1では、図2の入力部106及び107がMSFF100に設けられていないことを想定する。
図3は、実施例EX1_1に係るMSFF100であるMSFF100aの内部構成図である。MSFF100aは、制御信号生成回路110、インバータ回路120、マスタラッチ回路130、2つのスレーブラッチ回路140、出力選択回路150、及び、インバータ回路160を備える。MSFF100aは、所謂マスタスレーブ型のフリップフロップ回路として構成されているが、マスタラッチ回路130の後段側に、マスタラッチ回路130に対して並列に2つのスレーブラッチ回路140が設けられている。2つのスレーブラッチ回路140を互いに区別する必要がある場合、2つのスレーブラッチ回路140の内の一方を符号“140_1”によって参照し、他方を符号“140_2”によって参照する。
制御信号生成回路110に対し、クロック信号CP及びクロック選択信号SELCが入力される。クロック信号CPはMSFF100の内部で参照される内部クロック信号である。クロック信号CPはクロック信号CLKと等価なものであり、クロック信号CLKと同じものを指すと考えて良い。実施例EX1_1において、クロック選択信号SELCは1ビットのデジタル信号であり、ハイレベル又はローレベルの信号レベルをとる。
制御信号生成回路110は、信号CP及びSELCに基づき制御信号CP1及びCP2を生成する。具体的には、回路110はAND回路111及び112を備える。AND回路111は信号CPと信号SELCの反転信号との論理積信号を制御信号CP1として出力する。AND回路112は信号CPと信号SELCとの論理積信号を制御信号CP2として出力する。故に、クロック選択信号SELCがローレベルであるときには、制御信号CP1がクロック信号CPと等価な信号となって、制御信号CP1の信号レベルがクロック信号CPに同期してローレベル及びハイレベル間で変化する一方で、制御信号CP2の信号レベルはローレベルで固定される。逆に、クロック選択信号SELCがハイレベルであるときには、制御信号CP2がクロック信号CPと等価な信号となって、制御信号CP2の信号レベルがクロック信号CPに同期してローレベル及びハイレベル間で変化する一方で、制御信号CP1の信号レベルはローレベルで固定される。
このように、制御信号CP1及びCP2の内、何れか一方がクロック信号CPと等価となる。そして、制御信号CP1、CP2は、夫々、スレーブラッチ回路140_1、140_2に供給される。故に、クロック選択信号SELCは、スレーブラッチ回路140_1及び140_2のどちらに対してクロック信号CPを供給するのかを選択する信号として機能する。制御信号CP1及びCP2を第1及び第2クロック信号と読み替えても良く、この場合、クロック信号CLK及びCPは基準クロック信号と称され得る。
インバータ回路120の入力端には入力データDを示す信号が供給され、インバータ回路120の出力端からは入力データDを示す信号の反転信号が出力される。インバータ回路120の出力信号(即ち入力データDを示す信号の反転信号)は、マスタ入力データDMを示す信号として機能する。マスタ入力データDMを示す信号はマスタラッチ回路130の入力端に供給され、マスタ入力データDMに応じたマスタ出力データQMを示す信号がマスタラッチ回路130の出力端から出力される。マスタ出力データQMを示す信号はスレーブ入力データDSを示す信号として各スレーブラッチ回路140の入力端に供給される。各スレーブラッチ回路140は、スレーブ入力データDSに応じたスレーブ出力データQSを生成してスレーブ出力データQSを示す信号を自身の出力端から出力する。出力選択回路150は、出力選択信号SELに基づき、2つのスレーブラッチ回路140からの2つのスレーブ出力データQSの何れか一方を選択し、選択したスレーブ出力データQSを示す信号を出力する。インバータ回路160は、出力選択回路150にて選択及び出力されたスレーブ出力データQSを示す信号の反転信号を、出力データQを示す信号として生成する。出力データQを示す信号はデータ出力部102から出力される。
入力データDを示す信号、マスタ入力データDMを示す信号、マスタ出力データQMを示す信号、スレーブ入力データDSを示す信号、スレーブ出力データQSを示す信号、及び、出力データQを示す信号は、夫々に、ローレベル又はハイレベルの信号レベルをとる1ビットのデジタル信号である。
ここでは、入力データD、マスタ出力データQM、スレーブ入力データDS及び出力データQは正論理にて定義され、マスタ入力データDM及びスレーブ出力データQSは負論理にて定義されるものとする。即ち、データD、QM、DS又はQである注目データを示す信号の信号レベルがハイレベル、ローレベルであるとき、当該注目データは、夫々、“1”、“0”の論理値を有するものとする。逆に、データDM又はQSである注目データを示す信号の信号レベルがハイレベル、ローレベルであるとき、当該注目データは、夫々、“0”、“1”の論理値を有するものとする。
任意のラッチ回路又は選択回路について、或るデータを示す信号の当該回路への入力は、或るデータの当該回路への入力と同義であり、或るデータを示す信号の当該回路からの出力は、或るデータの当該回路からの出力と同義である。故に、以下では例えば、マスタラッチ回路130に対してマスタ入力データDMを示す信号が入力されることを、マスタラッチ回路130に対するマスタ入力データDMの入力と表現したり、マスタラッチ回路130からマスタ出力データQMを示す信号が出力されることを、マスタラッチ回路130からのマスタ出力データQMの出力と表現したりすることがある(後述の他の実施例及び後述の他の実施形態においても同様)。
マスタラッチ回路130は、クロック信号CPに同期して動作し、クロック信号CPにおける所定のレベル変化に応答してデータDMの取り込み及び保持(ラッチ)を行う。マスタラッチ回路130の保持データがマスタ出力データQMとなる。スレーブラッチ回路140_1は、制御信号CP1に同期して動作し、制御信号CP1における所定のレベル変化に応答してデータQMと一致するデータDSの取り込み及び保持(ラッチ)を行う。スレーブラッチ回路140_2は、制御信号CP2に同期して動作し、制御信号CP2における所定のレベル変化に応答してデータQMと一致するデータDSの取り込み及び保持(ラッチ)を行う。
マスタラッチ回路130、スレーブラッチ回路140及び出力選択回路150の構成及び動作について詳説する。
マスタラッチ回路130は、スイッチ131及び132と、インバータ回路133及び134と、を備える。スイッチ131及び132を含む任意のスイッチは、双方向スイッチとしてのアナログスイッチであり、例えば、CMOS(Complementary Metal-Oxide-Semiconductor)の電界効果トランジスタを用いて構成されたトランスミッションゲートであって良い。スイッチ131及び132を含む任意のスイッチは、第1端、第2端及び制御端を有し、制御端に供給される信号のレベルに応じて、第1端及び第2端が導通状態又は非導通状態(遮断状態)となる。第1端及び第2端が導通状態となることをオン状態と称し、第1端及び第2端が非導通状態(遮断状態)となることをオフ状態と称する。ここでは、スイッチ131及び132を含む任意のスイッチについて、制御端への信号のレベルがハイレベルであるときに当該スイッチはオン状態となり、制御端への信号のレベルがローレベルであるときに当該スイッチはオフ状態となるものとする。
スイッチ131の第1端にはインバータ回路120からマスタ入力データDMを示す信号が入力され、スイッチ131の第2端はノード135に接続される。インバータ回路133の入力端はノード135に接続される。インバータ回路133は自身の入力端に加わる信号の反転信号を自身の出力端から出力する。インバータ回路133の出力信号がマスタ出力データQMを示す信号となる。インバータ回路133の出力端はインバータ回路134の入力端に接続される。インバータ回路134は自身の入力端に加わる信号の反転信号を自身の出力端から出力する。故に、マスタ出力データQMを示す信号の反転信号がインバータ回路134の出力端から出力される。スイッチ132の第1端はインバータ回路134の出力端に接続され、スイッチ132の第2端はノード135に接続される。
スイッチ132の制御端にはクロック信号CPが入力され、スイッチ131の制御端にはクロック信号CPの反転信号CPBが入力される。このため、クロック信号CPがローレベルであるときには、スイッチ131がオン状態且つスイッチ132がオフ状態となることでマスタラッチ回路130はスルー状態(マスタスルー状態)となり、クロック信号CPがハイレベルであるときには、スイッチ131がオフ状態且つスイッチ132がオン状態となることでマスタラッチ回路130はホールド状態(マスタホールド状態)となる。図4(a)、(b)に、マスタラッチ回路130のスルー状態、ホールド状態を模式的に示す。
マスタラッチ回路130は、マスタ入力データDMに応じたマスタ出力データQMを出力可能なマスタ出力回路、及び、マスタ出力データQMをマスタ出力回路の入力側に帰還可能なマスタ帰還回路を備えている、と考えることができる。図3のマスタラッチ回路130において、マスタ出力回路は、インバータ回路133により或いはスイッチ131及びインバータ回路133により構成され、マスタ帰還回路は、インバータ回路134により或いはスイッチ132及びインバータ回路134により構成される。マスタ帰還回路による帰還とは、マスタ出力データQMに基づくインバータ回路134の出力信号をノード135に供給することを意味する。
マスタラッチ回路130において、スルー状態(マスタスルー状態)では、マスタ帰還回路による帰還が行われることなく現在のマスタ入力データDMに基づき現在のマスタ出力データQM(インバータ回路133の出力データ)が生成される。即ち、マスタラッチ回路130において、スルー状態(マスタスルー状態)では、マスタ入力データDMそのものがマスタ出力データQMとなる。
マスタラッチ回路130において、ホールド状態(マスタホールド状態)では、現在のマスタ入力データDMに関係なくマスタ帰還回路による帰還データ(インバータ回路134の出力データ)に基づき現在のマスタ出力データQMが生成される。即ち、マスタラッチ回路130において、ホールド状態(マスタホールド状態)では、マスタ帰還回路によりラッチされた過去のマスタ出力データQMに基づき現在のマスタ出力データQMが生成される。
2つのスレーブラッチ回路140であるスレーブラッチ回路140_1及び140_2は互いに同じ構成を有し、各スレーブラッチ回路140は、スイッチ141及び142と、インバータ回路143及び144と、を備える。スレーブラッチ回路140_1及び140_2の夫々において、スイッチ141の第1端には、マスタラッチ回路130からのマスタ出力データQMを示す信号がスレーブ入力データDSを示す信号として入力される。
各スレーブラッチ回路140において、スイッチ141の第2端はノード145に接続され、インバータ回路143の入力端はノード145に接続される。インバータ回路143は自身の入力端に加わる信号の反転信号を自身の出力端から出力する。インバータ回路143の出力信号がスレーブ出力データQSを示す信号となる。各スレーブラッチ回路140において、インバータ回路143の出力端はインバータ回路144の入力端に接続される。インバータ回路144は自身の入力端に加わる信号の反転信号を自身の出力端から出力する。故に、各スレーブラッチ回路140において、スレーブ出力データQSを示す信号の反転信号がインバータ回路144の出力端から出力される。各スレーブラッチ回路140において、スイッチ142の第1端はインバータ回路144の出力端に接続され、スイッチ142の第2端はノード145に接続される。
各スレーブラッチ回路140において、スイッチ141の制御端には制御信号が入力され、スイッチ142の制御端には制御信号の反転信号が入力される。ここで、スレーブラッチ回路140_1における制御信号は制御信号CP1であり、スレーブラッチ回路140_2における制御信号は制御信号CP2である。故に、スレーブラッチ回路140_1において、スイッチ141の制御端には制御信号CP1が入力される一方でスイッチ142の制御端には制御信号CP1の反転信号CP1Bが入力される。スレーブラッチ回路140_2において、スイッチ141の制御端には制御信号CP2が入力される一方でスイッチ142の制御端には制御信号CP2の反転信号CP2Bが入力される。
このため、制御信号CP1がハイレベルであるときには、スレーブラッチ回路140_1においてスイッチ141がオン状態且つスイッチ142がオフ状態となることでスレーブラッチ回路140_1はスルー状態(スレーブスルー状態)となる。制御信号CP1がローレベルであるときには、スレーブラッチ回路140_1においてスイッチ141がオフ状態且つスイッチ142がオン状態となることでスレーブラッチ回路140_1はホールド状態(スレーブホールド状態)となる。
これに類似し、制御信号CP2がハイレベルであるときには、スレーブラッチ回路140_2においてスイッチ141がオン状態且つスイッチ142がオフ状態となることでスレーブラッチ回路140_2はスルー状態(スレーブスルー状態)となる。制御信号CP2がローレベルであるときには、スレーブラッチ回路140_2においてスイッチ141がオフ状態且つスイッチ142がオン状態となることでスレーブラッチ回路140_2はホールド状態(スレーブホールド状態)となる。
図5(a)、(b)に、1つのスレーブラッチ回路140のスルー状態、ホールド状態を模式的に示す。
スレーブラッチ回路140_1及び140_2の夫々は、スレーブ入力データDSに応じたスレーブ出力データQSを出力可能なスレーブ出力回路、及び、スレーブ出力データQSをスレーブ出力回路の入力側に帰還可能なスレーブ帰還回路を備えている、と考えることができる。図3の各スレーブラッチ回路140において、スレーブ出力回路は、インバータ回路143により或いはスイッチ141及びインバータ回路143により構成され、スレーブ帰還回路は、インバータ回路144により或いはスイッチ142及びインバータ回路144により構成される。スレーブ帰還回路による帰還とは、スレーブ出力データQSに基づくインバータ回路144の出力信号をノード145に供給することを意味する。
各スレーブラッチ回路140において、スルー状態(スレーブスルー状態)では、スレーブ帰還回路による帰還が行われることなく現在のスレーブ入力データDSに基づき現在のスレーブ出力データQS(インバータ回路143の出力データ)が生成される。即ち、各スレーブラッチ回路140において、スルー状態(スレーブスルー状態)では、スレーブ入力データDSそのものがスレーブ出力データQSとなる。
各スレーブラッチ回路140において、ホールド状態(スレーブホールド状態)では、現在のスレーブ入力データDSに関係なくスレーブ帰還回路による帰還データ(インバータ回路144の出力データ)に基づき現在のスレーブ出力データQSが生成される。即ち、各スレーブラッチ回路140において、ホールド状態(スレーブホールド状態)では、スレーブ帰還回路によりラッチされた過去のスレーブ出力データQSに基づき現在のスレーブ出力データQSが生成される。
制御信号CP1及びCP2の内、クロック信号CPと同期して信号レベルが変化する制御信号を特定制御信号と称することができ、信号レベルが所定レベル(ここではローレベル)で固定される制御信号を非特定制御信号と称することができる。制御信号生成回路110は、クロック選択信号SELCに基づき、制御信号CP1及びCP2の何れか一方を特定制御信号とし、他方を非特定制御信号とする回路であると考えることができる。
マスタラッチ回路130の状態は、クロック信号CPのレベルに応じ、スルー状態及びホールド状態間で切り替えられる。クロック信号CPがローレベルであるときにマスタ入力データDMがマスタラッチ回路130に取り込まれ、取り込まれたデータがクロック信号CPのアップエッジに同期してマスタラッチ回路130にラッチ(保持)される。
これと同様に、特定制御信号に対応するスレーブラッチ回路140(以下、特定スレーブラッチ回路と称する)の状態は、特定制御信号のレベルに応じ、スルー状態及びホールド状態間で切り替えられる。特定制御信号がハイレベルであるときにマスタ出力データQMがスレーブ入力データDSとして特定スレーブラッチ回路に取り込まれ、取り込まれたデータが特定制御信号のダウンエッジに同期して特定スレーブラッチ回路にラッチ(保持)される。
これに対し、非特定制御信号に対応するスレーブラッチ回路140(以下、非特定スレーブラッチ回路と称する)の状態は、非特定制御信号に基づき、ホールド状態で固定されることになる。非特定スレーブラッチ回路ではマスタ出力データQMが取り込まれず、非特定スレーブラッチ回路でラッチ(保持)されるデータに変化は生じない。
以下、必要に応じ、スレーブラッチ回路140_1、140_2により保持及び出力されるスレーブ出力データQSを、夫々、符号“QS_1”、“QS_2”により参照する。
出力選択回路150は、スイッチ151及び152を備える。スイッチ151の第1端はスレーブラッチ回路140_1の出力端に接続される一方で、スイッチ152の第1端はスレーブラッチ回路140_2の出力端に接続される。故に、スイッチ151の第1端にはスレーブラッチ回路140_1からのスレーブ出力データQS_1を示す信号が入力され、スイッチ152の第1端にはスレーブラッチ回路140_2からのスレーブ出力データQS_2を示す信号が入力される。スイッチ151及び152の各第2端は出力選択回路150の出力端に相当するノード153にて共通接続される。出力選択回路150の出力端(即ちノード153)はインバータ回路160の入力端に接続される。
実施例EX1_1において、出力選択信号SELは1ビットのデジタル信号であり、ハイレベル又はローレベルの信号レベルをとる。出力選択回路150は、出力選択信号SELに基づき、スレーブ出力データQS_1及びQS_2の何れか一方を選択する。選択されたデータはインバータ回路160を通じ、出力データQとしてデータ出力部102から出力される。
スイッチ152の制御端には出力選択信号SELが入力され、スイッチ151の制御端には出力選択信号SELの反転信号SELBが入力される。このため、出力選択信号SELがローレベルであるときには、スイッチ151がオン状態且つスイッチ152がオフ状態となってスレーブ出力データQS_1が出力選択回路150にて選択されることになり、結果、スレーブ出力データQS_1を示す信号の反転信号がインバータ回路160の出力端から出力される(つまり、スレーブ出力データQS_1が出力データQとなる)。一方、出力選択信号SELがハイレベルであるときには、スイッチ151がオフ状態且つスイッチ152がオン状態となってスレーブ出力データQS_2が出力選択回路150にて選択されることになり、結果、スレーブ出力データQS_2を示す信号の反転信号がインバータ回路160の出力端から出力される(つまり、スレーブ出力データQS_2が出力データQとなる)。
図6に、MSFF100aの動作例を示すタイミングチャートを示す。図6において、上方から下方に向けて並ぶ領域711~723には、夫々、当該動作例に係る、クロック信号CP、入力データD(換言すればマスタ入力データDM)、マスタラッチ回路130の状態に相当するマスタ状態、マスタ出力データQM、出力選択信号SEL、クロック選択信号SELC、制御信号CP1、スレーブラッチ回路140_1の状態に相当する第1スレーブ状態、スレーブ出力データQS_1、制御信号CP2、スレーブラッチ回路140_2の状態に相当する第2スレーブ状態、スレーブ出力データQS_2、及び、出力データQの時系列変化が示されている。
尚、図6では、マスタ状態、第1スレーブ状態又は第2スレーブ状態におけるスルー状態は、記号“T”にて表現され、マスタ状態、第1スレーブ状態又は第2スレーブ状態におけるホールド状態は、記号“H”にて表現されている。図6において、A1~A4及びB1~B4の夫々は、MSFF100aの入出力データ又は内部データを表している。個の内、データA1~A4はスレーブラッチ回路140_1にて順次ラッチされるべきデータを表しており、データB1~B4はスレーブラッチ回路140_2にて順次ラッチされるべきデータを表している。
説明の具体化のため区間P1~P16に注目して図6のタイミングチャートを説明する。区間P1~P16の夫々は、クロック信号CPの周期の1/2の長さを有する。任意の整数iに関し、区間Pi+1は、区間Piよりも、クロック信号CPの周期の1/2だけ後の区間である。整数iが奇数であるときの区間Piにおいて、当該区間Piの開始タイミング直後にクロック信号CPのアップエッジが生じ、その後のクロック信号CPの信号レベルはハイレベルとなる。故に、整数iが奇数であるときの区間Piにおいて、マスタ状態はホールド状態である。整数iが偶数であるときの区間Piにおいて、当該区間Piの開始タイミング直後にクロック信号CPのダウンエッジが生じ、その後のクロック信号CPの信号レベルはローレベルとなる。故に、整数iが偶数であるときの区間Piにおいて、マスタ状態はスルー状態である。
区間P1及びP2における入力データD、区間P3及びP4における入力データD、区間P5及びP6における入力データD、区間P7及びP8における入力データD、区間P9及びP10における入力データD、区間P11及びP12における入力データD、区間P13及びP14における入力データD、区間P15及びP16における入力データDは、夫々、データA1、B1、A2、B2、A3、B3、A4、B4である。そうすると、クロック信号CPのアップエッジから始まるクロック信号CPの1周期中において、前半区間(例えばP1)にマスタ状態がホールド状態となり、後半区間(例えばP2)にマスタ状態がスルー状態となる。故に、マスタ出力データQMは、区間P2及びP3にてデータA1となり、区間P4及びP5にてデータB1となり、区間P6及びP7にてデータA2となり、区間P8及びP9にてデータB2となり、区間P10及びP11にてデータA3となり、区間P12及びP13にてデータB3となり、区間P14及びP15にてデータA4となり、区間P16にてデータB4となる。
図6の動作例において、クロック選択信号SELCはクロック信号CPの2倍の周期を有する矩形波信号である。また、区間P2の開始タイミングにてクロック選択信号SELCにダウンエッジが生じる。故に、クロック選択信号SELCの信号レベルは、マスタ出力データQMがデータA1、A2、A3又はA4となる区間(即ち、区間P2、P3、P6、P7、P10、P11、P14及びP15)においてローレベルとなり、マスタ出力データQMがデータB1、B2、B3又はB4となる区間(即ち、区間P4、P5、P8、P9、P12、P13及びP16)においてハイレベルとなる。
図6の動作例において、区間P1~P16にのみ注目した場合、制御信号CP1は、クロック信号CP及びクロック選択信号SELCに基づき、区間P3、P7、P11及びP15においてのみハイレベルとなり、他の区間ではローレベルとなる。故に、区間P1~P16にのみ注目した場合、第1スレーブ状態は、区間P3、P7、P11及びP15においてのみスルー状態となり、他の区間ではホールド状態となる。結果、区間P3において、マスタ出力データQMであるデータA1がスレーブラッチ回路140_1に伝達されてラッチされ、区間P3~P6におけるスレーブ出力データQS_1はデータA1となる。同様に、区間P7において、マスタ出力データQMであるデータA2がスレーブラッチ回路140_1に伝達されてラッチされ、区間P7~P10におけるスレーブ出力データQS_1はデータA2となる。同様に、区間P11~P14におけるスレーブ出力データQS_1はデータA3となり、区間P15から始まるクロック信号CPの2周期分の区間ではスレーブ出力データQS_1はデータA4となる。
図6の動作例において、区間P1~P16にのみ注目した場合、制御信号CP2は、クロック信号CP及びクロック選択信号SELCに基づき、区間P1、P5、P9及びP13においてのみハイレベルとなり、他の区間ではローレベルとなる。故に、区間P1~P16にのみ注目した場合、第2スレーブ状態は、区間P1、P5、P9及びP13においてのみスルー状態となり、他の区間ではホールド状態となる。結果、区間P5において、マスタ出力データQMであるデータB1がスレーブラッチ回路140_2に伝達されてラッチされ、区間P5~P8におけるスレーブ出力データQS_2はデータB1となる。同様に、区間P9において、マスタ出力データQMであるデータB2がスレーブラッチ回路140_2に伝達されてラッチされ、区間P9~P12におけるスレーブ出力データQS_2はデータB2となる。同様に、区間P13~P16におけるスレーブ出力データQS_2はデータB3となる。図6には示されていないが、区間P16の終了直後から始まるクロック信号CPの2周期分の区間において、スレーブ出力データQS_2はデータB4となる。
図6の動作例において、出力選択信号SELも、クロック選択信号SELCと同様に、クロック信号CPの2倍の周期を有する矩形波信号である。但し、区間P1の開始タイミングにて出力選択信号SELにダウンエッジが生じる。故に、出力選択信号SELは、区間P1、P2、P5、P6、P9、P10、P13及びP14においてローレベルとなり、区間P3、P4、P7、P8、P11、P12、P15及びP16においてハイレベルとなる。
出力選択回路150において、出力選択信号SELがローレベルであるときにはスレーブ出力データQS_1が選択され、出力選択信号SELがハイレベルであるときにはスレーブ出力データQS_2が選択されるので(図3参照)、出力データQは、区間P5及びP6にてデータA1となり、区間P7及びP8にてデータB1となり、区間P9及びP10にてデータA2となり、区間P11及びP12にてデータB2となり、区間P13及びP14にてデータA3となり、区間P15及びP16にてデータB3となる。
このように、MSFF100aにおいて、第1タイミングでのマスタ入力データDM(ここでは入力データDと一致)はスレーブラッチ回路140_1にて取り込まれて保持され、第2タイミングでのマスタ入力データDM(ここでは入力データDと一致)はスレーブラッチ回路140_2に取り込まれて保持される。これが実現されるよう、ステート制御回路3はクロック選択信号SELCをMSFF100aに供給する。第1及び第2タイミングは互いに異なるタイミングである。詳細には、第1タイミングは、マスタ入力データDMがデータA1、A2、A3又はA4となるタイミングに相当し、第2タイミングは、マスタ入力データDMがデータB1、B2、B3又はB4となるタイミングに相当する。そして、ステート制御回路3は、MSFF100aに対する出力選択信号SELのレベルを制御することで、スレーブラッチ回路140_1の保持データ及びスレーブラッチ回路140_2の保持データ(例えばデータA1とデータB1)を、別々のタイミングにデータ出力部102から出力データQとして出力させる。
上述の説明から理解されるよう、MSFF100aでは、2つのスレーブラッチ回路140に対して単一のマスタラッチ回路130が兼用されている。或る区間では、マスタラッチ回路130をスレーブラッチ回路140_1に対するマスタラッチ回路として機能させる。これにより、マスタラッチ回路130及びスレーブラッチ回路140_1から成るマスタスレーブ型の第1フリップフロップ回路としてMSFF100aを動作させる。別の区間では、マスタラッチ回路130をスレーブラッチ回路140_2に対するマスタラッチ回路として機能させる。これにより、マスタラッチ回路130及びスレーブラッチ回路140_2から成るマスタスレーブ型の第2フリップフロップ回路としてMSFF100aを動作させる。
このようなMSFF100aを用いれば、図1のロジック回路20にて、第1処理用データに基づく第1信号処理と、第2処理用データに基づく第2信号処理と、を並列実行させることができる。第1処理用データは、データA1~A4の何れかを指す又はデータA1~A4の総称である。第2処理用データは、データB1~B4の何れかを指す又はデータB1~B4の総称である。第1処理用データ(A1~A4)と第2処理用データ(B1~B4)は互いに異なるデータである。但し、偶然、それらの値が一致することもありえる。
MSFF100aとして構成される図1の各MSFF10に対して図6の動作例を当てはめた場合、データA1~A4及びB1~B4は各MSFF10の入出力データあって、この内、データA1~A4は各MSFF10の入出力データの一部である第1処理用データに相当し、データB1~B4は各MSFF10の入出力データの他の一部である第2処理用データに相当する。
ロジック回路20は、各MSFF10から自身に対し第1処理用データ(A1~A4)が入力されている区間では、第1処理用データに基づく第1信号処理を行って第1信号処理の結果を示すデータ(以下、第1処理結果データと称する)を各MSFF30に出力する。ロジック回路20は、各MSFF10から自身に対し第2処理用データ(B1~B4)が入力されている区間では、第2処理用データに基づく第2信号処理を行って第2信号処理の結果を示すデータ(以下、第2処理結果データと称する)を各MSFF30に出力する。
MSFF100aとして構成される図1の各MSFF30に対して図6の動作例を当てはめた場合、データA1~A4及びB1~B4は各MSFF30の入出力データあって、この内、データA1~A4は各MSFF30の入出力データの一部である第1処理結果データに相当し、データB1~B4は各MSFF30の入出力データの他の一部である第2処理結果データに相当する。各MSFF30から第1処理結果データが後段回路50に供給されている区間において、後段回路50は第1処理結果データに基づく所定の処理を実行できる。各MSFF30から第2処理結果データが後段回路50に供給されている区間において、後段回路50は第2処理結果データに基づく所定の処理を実行できる。
本実施例に係る技術的な有益性について、図7を再度参照しつつ説明する。上述したように、参考装置900では、第1処理用データに基づく第1信号処理と第2処理用データに基づく第2信号処理とを並列して実行する必要がある(換言すれば同時に実行する必要がある)。第1及び第2信号処理における処理の内容自体は、第1及び第2信号処理間で共通であるが、並列実行の必要性から、2つのデジタル処理回路910が用意される。そして、第1デジタル処理回路910に対して第1処理用データを入力することで第1デジタル処理回路910にて第1信号処理を実行させ、第2デジタル処理回路910に対して第2処理用データを入力することで第2デジタル処理回路910にて第2信号処理を実行させる。このように、図7の参考装置900では、共通の構成を有するロジック回路912を2つ設ける必要があり、その分、回路面積が大型化する。
これに対し、実施例EX1_1に係るMSFF100aを利用してデータ処理装置1(図1参照)を構成すれば、第1処理用データに基づく第1信号処理と第2処理用データに基づく第2信号処理を単一のロジック回路20に行わせることが可能であり、夫々の信号処理の結果を各MSFF30を通じて取得することができる。このため、参考装置900との比較において、回路面積を削減することが可能となる。
但し、実施例EX1_1に係るMSFF100aを用いたデータ処理装置1では、参考装置900との比較において、クロック信号の周波数を2倍にする必要がある。例えば、図7の参考装置900において各デジタル処理回路910へのクロック信号CLK’の周波数が100kHzである場合を考える。この場合、MSFF100aを用いたデータ処理装置1において参考装置900と同様の速度にて第1及び第2信号処理を行って第1及び第2処理結果データを得るためには、データ処理装置1のクロック信号CLKの周波数を200kHzにする必要がある。データ処理装置1のクロック信号CLKの周波数を200kHzにすることで、データA1~A4が100kHzの逆数の間隔で出力データQとして得られると共にデータB1~B4が100kHzの逆数の間隔で出力データQとして得られるからである。
参考装置900での各信号処理及びデータ処理装置1での各信号処理が、通信(例えばI2C通信)を行うために必要な処理(通信処理)である場合を考える。この場合、第1信号処理及び第2信号処理を第1通信処理及び第2通信処理と読み替えることができる。参考装置900においてもデータ処理装置1においても、各通信処理による通信速度を100kHz相当にする必要があるとする。そして、第1及び第2通信処理は並列実行される必要があるとする。第1通信処理及び第2通信処理の夫々は、必要な時間(例えば10ミリ秒)だけ100kHz相当の通信速度で継続実行される必要があるとする。
そうすると、参考装置900では、図8の上段に示す如く、通信区間において第1通信処理及び第2通信処理が2つのデジタル処理回路910を用いてクロック信号CLK’に基づき100kHz相当の速度で並列実行される。これに対し、データ処理装置1では、図8の下段に示す如く、通信区間において第1通信処理及び第2通信処理が1つのデジタル処理回路2を用いて並列実行される。この際、デジタル処理回路2では、第1通信処理を構成する1クロック分の処理と第2通信処理を構成する1クロック分の処理とがクロック信号CLKに基づき200kHzの逆数の間隔で交互に実行され、全体として、第1通信処理が100kHz相当の速度で実行されると共に第2通信処理が100kHz相当の速度で実行されることになり、必要とされる通信は実現される。
このように、実施例EX1_1に係る構成は、使用されるクロック信号の周波数が2倍となることから、速度要求の高くない回路に対して特に好適である。例えば、20MHzの原クロック信号にて動作するCPU(Central Processing Unit)と、CPUに対し100kHzの逆数の間隔で第1割り込み要求を発生させる第1タイマと、CPUに対し200kHzの逆数の間隔で第2割り込み要求を発生させる第2タイマと、が必要とされる装置を考える(全て図示せず)。当該装置では、例えば、原クロック信号を1/10分周して2MHzの分周クロック信号を生成し、分周クロック信号をカウントする機能を第1及び第2タイマに持たせることで、所望の第1及び第2割り込み要求を発生させることができる。
この際、第1及び第2タイマによるカウントを並列実行させる必要があるが、このような装置に対して実施例EX1_1に係る構成を適用すれば、単一の統合タイマにて、第1及び第2タイマの機能(即ち、100kHzの逆数の間隔で第1割り込み要求を発生させる機能と、200kHzの逆数の間隔で第2割り込み要求を発生させる機能)を実現することができる。この場合であっても、上記の統合タイマに対して2MHzの分周クロック信号を与えれば足る。つまり、第1及び第2タイマを別々に設ける場合と、統合タイマを1つだけ設ける場合とで、割り込み要求の発生のトリガとなるカウント値が相違するだけであって、それらのタイマに必要なクロック周波数は2MHzで十分であり、本発明の適用に当たって弊害は生じない。尚、各タイマは、例えば、分周クロック信号のクロック数(例えば分周クロック信号でのアップエッジの発生数)をカウントする加算器をロジック回路として持つ。
―――実施例EX1_2―――
実施例EX1_2を説明する。実施例EX1_2では、図2の入力部106及び107がMSFF100に設けられていることを想定する。
図9は、実施例EX1_2に係るMSFF100であるMSFF100bの内部構成図である。MSFF100bは、制御信号生成回路110、インバータ回路120、マスタラッチ回路130b、2つのスレーブラッチ回路140b、出力選択回路150、及び、インバータ回路160を備える。即ち、図3のMSFF100aを基準に、マスタラッチ回路130及び2つのスレーブラッチ回路140をマスタラッチ回路130b及び2つのスレーブラッチ回路140bに置換することで、MSFF100bが得られる。2つのスレーブラッチ回路140bを互いに区別する必要がある場合、2つのスレーブラッチ回路140bの内の一方を符号“140b_1”によって参照し、他方を符号“140b_2”によって参照する。
上記の置換を除き、図9のMSFF100bは図3のMSFF100aと同様である。以下、MSFF100aから見たMSFF100bの相違点に注目し、特に記述無き事項については、実施例EX1_1の記載が実施例EX1_2にも適用されて良い。但し、この適用の際、実施例EX1_1の記載における符号“100a”、“130”、“140”、“140_1”、“140_2”は、実施例EX1_2において、夫々、符号“100b”、“130b”、“140b”、“140b_1”、“140b_2”に読み替えられる。
マスタ入力データDMを示す信号はマスタラッチ回路130bの入力端に供給され、マスタ入力データDMに応じたマスタ出力データQMを示す信号がマスタラッチ回路130bの出力端から出力される。マスタ出力データQMを示す信号はスレーブ入力データDSを示す信号として各スレーブラッチ回路140bの入力端に供給される。各スレーブラッチ回路140bは、スレーブ入力データDSに応じたスレーブ出力データQSを生成してスレーブ出力データQSを示す信号を自身の出力端から出力する。出力選択回路150は、出力選択信号SELに基づき、2つのスレーブラッチ回路140bからの2つのスレーブ出力データQSの何れか一方を選択し、選択したスレーブ出力データQSを示す信号を出力する。
MSFF100bに対するセット信号SET(図2参照)はセット信号SN1及びSN2から成り、MSFF100bに対するリセット信号RST(図2参照)はリセット信号RN1及びRN2から成る。セット信号SN1及びSN2並びにRN1及びRN2は、夫々に、ローレベル又はハイレベルの信号レベルをとる1ビットのデジタル信号である。
マスタラッチ回路130bは、スイッチ131及び132と、NAND回路133b及び134bと、を備える。即ち、図3のマスタラッチ回路130を基準として、インバータ回路133及び134をNAND回路133b及び134bに置換することで、図9のマスタラッチ回路130bが得られる。NAND回路133b及び134bの夫々は、第1~第3入力端と出力端を備え、第1~第3入力端に加わる3つの信号の否定論理積信号を出力端から出力する。
スイッチ131の第1端にはインバータ回路120からマスタ入力データDMを示す信号が入力され、スイッチ131の第2端はノード135に接続される。NAND回路133bの第1及び第2入力端には夫々セット信号SN1及びSN2が入力され、NAND回路133bの第3入力端はノード135に接続される。故に、NAND回路133bは、セット信号SN1及びSN2とノード135の信号が全てハイレベルであるときに限り、自身の出力端からローレベルの信号を出力し、そうでない場合、ハイレベルの信号を出力する。NAND回路133bの出力信号がマスタ出力データQMを示す信号となる。
NAND回路133bの出力端はNAND回路134bの第1入力端に接続される。NAND回路134bの第2及び第3入力端には夫々リセット信号RN1及びRN2が入力される。故に、NAND回路134bは、NAND回路133bの出力信号とリセット信号RN1及びRN2とが全てハイレベルであるときに限り、自身の出力端からローレベルの信号を出力し、そうでない場合、ハイレベルの信号を出力する。スイッチ132の第1端はNAND回路134bの出力端に接続され、スイッチ132の第2端はノード135に接続される。
スイッチ132の制御端にクロック信号CPが入力され且つスイッチ131の制御端にクロック信号CPの反転信号CPBが入力される点は、実施例EX1_1と同様である。故に、クロック信号CPがローレベルであるときにはマスタラッチ回路130bはスルー状態(マスタスルー状態)となり、クロック信号CPがハイレベルであるときにはマスタラッチ回路130bはホールド状態(マスタホールド状態)となる。
マスタラッチ回路130bは、マスタ入力データDMに応じたマスタ出力データQMを出力可能なマスタ出力回路、及び、マスタ出力データQMをマスタ出力回路の入力側に帰還可能なマスタ帰還回路を備えている、と考えることができる。図9のマスタラッチ回路130bにおいて、マスタ出力回路は、NAND回路133bにより或いはスイッチ131及びNAND回路133bにより構成され、マスタ帰還回路は、NAND回路134bにより或いはスイッチ132及びNAND回路134bにより構成される。マスタ帰還回路による帰還とは、マスタ出力データQMに基づくNAND回路134bの出力信号をノード135に供給することを意味する。
マスタラッチ回路130bにおいて、スルー状態(マスタスルー状態)では、マスタ帰還回路による帰還が行われることなく現在のマスタ入力データDMに基づき現在のマスタ出力データQM(NAND回路133bの出力データ)が生成され、ホールド状態(マスタホールド状態)では、現在のマスタ入力データDMに関係なくマスタ帰還回路による帰還データ(NAND回路134bの出力データ)に基づき現在のマスタ出力データQMが生成される。
但し、マスタラッチ回路130bでは、スルー状態及びホールド状態の夫々において、セット信号SN1及びSN2をも参照してマスタ出力データQMが生成されることになり、ホールド状態において、リセット信号RN1及びRN2をも参照してマスタ出力データQMが生成されることになる。
2つのスレーブラッチ回路140bであるスレーブラッチ回路140b_1及び140b_2は互いに同じ構成を有し、各スレーブラッチ回路140bは、スイッチ141及び142と、NAND回路143b及び144bと、を備える。即ち、図3の各スレーブラッチ回路140を基準として、インバータ回路143及び144をNAND回路143b及び144bに置換することで、図9の各スレーブラッチ回路140bが得られる。NAND回路143b及び144bの夫々は、第1及び第2入力端と出力端を備え、第1及び第2入力端に加わる2つの信号の否定論理積信号を出力端から出力する。スレーブラッチ回路140b_1及び140b_2の夫々において、スイッチ141の第1端には、マスタラッチ回路130bからのマスタ出力データQMを示す信号がスレーブ入力データDSを示す信号として入力される。
各スレーブラッチ回路140bにおいて、スイッチ141の第2端はノード145に接続される。NAND回路143bの第1入力端にはリセット信号が入力され、NAND回路143bの第2入力端はノード145に接続される。但し、スレーブラッチ回路140b_1、140b_2に対するリセット信号は、夫々、リセット信号RN1、RN2である。故に、スレーブラッチ回路140b_1において、NAND回路143bは、リセット信号RN1とノード145の信号が全てハイレベルであるときに限り、自身の出力端からローレベルの信号を出力し、そうでない場合、ハイレベルの信号を出力する。スレーブラッチ回路140b_2において、NAND回路143bは、リセット信号RN2とノード145の信号が全てハイレベルであるときに限り、自身の出力端からローレベルの信号を出力し、そうでない場合、ハイレベルの信号を出力する。各スレーブラッチ回路140bにおいて、NAND回路143bの出力信号がスレーブ出力データQSを示す信号となる。スレーブラッチ回路140b_1、140b_2により生成及び出力されるスレーブ出力データQSは、夫々、符号“QS_1”、“QS_2”にて参照され得る。
各スレーブラッチ回路140bにおいて、NAND回路143bの出力端はNAND回路144bの第1入力端に接続され、NAND回路144bの第2入力端にセット信号が入力される。但し、スレーブラッチ回路140b_1、140b_2に対するセット信号は、夫々、セット信号SN1、SN2である。故に、スレーブラッチ回路140b_1において、NAND回路144bは、セット信号SN1とNAND回路143bの出力信号(QS_1)の双方がハイレベルであるときに限り、自身の出力端からローレベルの信号を出力し、そうでない場合、ハイレベルの信号を出力する。スレーブラッチ回路140b_2において、NAND回路144bは、セット信号SN2とNAND回路143bの出力信号(QS_2)の双方がハイレベルであるときに限り、自身の出力端からローレベルの信号を出力し、そうでない場合、ハイレベルの信号を出力する。各スレーブラッチ回路140bにおいて、スイッチ142の第1端はNAND回路144bの出力端に接続され、スイッチ142の第2端はノード145に接続される。
実施例EX1_1と同様に、スレーブラッチ回路140b_1において、スイッチ141の制御端には制御信号CP1が入力される一方でスイッチ142の制御端には制御信号CP1の反転信号CP1Bが入力され、且つ、スレーブラッチ回路140b_2において、スイッチ141の制御端には制御信号CP2が入力される一方でスイッチ142の制御端には制御信号CP2の反転信号CP2Bが入力される。
このため、スレーブラッチ回路140b_1は、制御信号CP1がハイレベルであるときにスルー状態(スレーブスルー状態)となり、制御信号CP1がローレベルであるときにホールド状態(スレーブホールド状態)となる。これに対し、スレーブラッチ回路140b_2は、制御信号CP2がハイレベルであるときにスルー状態(スレーブスルー状態)となり、制御信号CP2がローレベルであるときにホールド状態(スレーブホールド状態)となる。
スレーブラッチ回路140b_1及び140b_2の夫々は、スレーブ入力データDSに応じたスレーブ出力データQSを出力可能なスレーブ出力回路、及び、スレーブ出力データQSをスレーブ出力回路の入力側に帰還可能なスレーブ帰還回路を備えている、と考えることができる。図9の各スレーブラッチ回路140bにおいて、スレーブ出力回路は、NAND回路143bにより或いはスイッチ141及びNAND回路143bにより構成され、スレーブ帰還回路は、NAND回路144bにより或いはスイッチ142及びNAND回路144bにより構成される。スレーブ帰還回路による帰還とは、スレーブ出力データQSに基づくNAND回路144bの出力信号をノード145に供給することを意味する。
各スレーブラッチ回路140bにおいて、スルー状態(スレーブスルー状態)では、スレーブ帰還回路による帰還が行われることなく現在のスレーブ入力データDSに基づき現在のスレーブ出力データQS(NAND回路143bの出力データ)が生成され、ホールド状態(スレーブホールド状態)では、現在のスレーブ入力データDSに関係なくスレーブ帰還回路による帰還データ(NAND回路144bの出力データ)に基づき現在のスレーブ出力データQSが生成される。
但し、スレーブラッチ回路140b_1では、ホールド状態において、セット信号SN1をも参照してスレーブ出力データQS(QS_1)が生成されることになり、スルー状態及びホールド状態の夫々において、リセット信号RN1をも参照してスレーブ出力データQS(QS_1)が生成されることになる。同様に、スレーブラッチ回路140b_2では、ホールド状態において、セット信号SN2をも参照してスレーブ出力データQS(QS_2)が生成されることになり、スルー状態及びホールド状態の夫々において、リセット信号RN2をも参照してスレーブ出力データQS(QS_2)が生成されることになる。
セット信号(SN1、SN2)は負論理の信号であって、ローレベルのセット信号(SN1、SN2)は、出力データQを示す信号をハイレベルとするための信号(即ち出力データQに“1”を設定するための信号)として機能する。リセット信号(RN1、RN2)は負論理の信号であって、ローレベルのリセット信号(RN1、RN2)は、出力データQを示す信号をローレベルとするための信号(即ち出力データQに“0”を設定するための信号)として機能する。
―――実施例EX1_3―――
実施例EX1_3を説明する。実施例EX1_1及びEX1_2では、1つのマスタラッチ回路に対して2つのスレーブラッチ回路を並列に設ける構成を説明したが、1つのマスタラッチ回路に対してN個のスレーブラッチ回路を並列に設けることができ、Nを2以上の任意の整数とすることができる。
“N=4”とする場合のMSFFの構成例を図10に示す。図10は、実施例EX1_3に係るMSFF100であるMSFF100cの内部構成図である。MSFF100cは、制御信号生成回路110c、インバータ回路120、マスタラッチ回路130c、4つのスレーブラッチ回路140c、出力選択回路150c、及び、インバータ回路160を備える。4つのスレーブラッチ回路140cを互いに区別する必要がある場合、4つのスレーブラッチ回路140cを、符号“140c_1”、“140c_2”、“140c_3”、“140c_4”によって参照する。
以下、実施例EX1_1に係るMSFF100a又は実施例EX1_2に係るMSFF100bから見たMSFF100cの相違点に注目し、特に記述無き事項については、実施例EX1_1又はEX1_2の記載が実施例EX1_3にも適用されて良い。但し、この適用の際、実施例EX1_1の記載における符号“100a”、“130”、“140”、又は、実施例EX1_2の記載における符号“100b”、 “130b”、“140b”は、実施例EX1_3において、夫々、符号“100c”、“130c”、“140c”に読み替えられる。尚、実施例EX1_3では、図2の入力部106及び107がMSFF100cに設けられていることを想定する。
実施例EX1_3において、クロック選択信号SELCはクロック選択信号SELC1及びSELC2から成る。クロック選択信号SELC1及びSELC2の夫々は、1ビットのデジタル信号であり、ハイレベル又はローレベルの信号レベルをとる。制御信号生成回路110cに対し、クロック信号CP及びクロック選択信号SELC1及びSELC2が入力される。
制御信号生成回路110cは、信号SELC1、SELC2及びCPに基づき制御信号CP1~CP4を生成する。具体的には、回路110cはAND回路113~116を備える。AND回路113は、信号SELC1の反転信号と信号SELC2の反転信号と信号CPとの論理積信号を、制御信号CP1として出力する。AND回路114は、信号SELC1の反転信号と信号SELC2と信号CPとの論理積信号を、制御信号CP2として出力する。AND回路115は、信号SELC1と信号SELC2の反転信号と信号CPとの論理積信号を、制御信号CP3として出力する。AND回路116は、信号SELC1と信号SELC2と信号CPとの論理積信号を、制御信号CP4として出力する。
故に、クロック選択信号SELC1及びSELC2が共にローレベルであるときには、制御信号CP1が特定制御信号となり且つ制御信号CP2~CP4が非特定制御信号となる。クロック選択信号SELC1、SELC2が夫々ローレベル、ハイレベルであるときには、制御信号CP2が特定制御信号となり且つ制御信号CP1、CP3及びCP4が非特定制御信号となる。クロック選択信号SELC1、SELC2が夫々ハイレベル、ローレベルであるときには、制御信号CP3が特定制御信号となり且つ制御信号CP1、CP2及びCP4が非特定制御信号となる。クロック選択信号SELC1及びSELC2が共にハイレベルであるときには、制御信号CP4が特定制御信号となり且つ制御信号CP1~CP3が非特定制御信号となる。上述したように、特定制御信号はクロック信号CPと同期して信号レベルが変化する制御信号を意味し、非特定制御信号は信号レベルが所定レベル(ここではローレベル)で固定される制御信号を意味する。制御信号生成回路110cは、クロック選択信号SELC1及びSELC2に基づき、制御信号CP1~CP4の何れか1つを特定制御信号とし、残りの3つを非特定制御信号とする回路であると言える。
このように、制御信号CP1~CP4の内、何れか1つがクロック信号CPと等価となる。そして、制御信号CP1、CP2、CP3、CP4は、夫々、スレーブラッチ回路140c_1、140c_2、140c_3、140c_4に供給される。故に、クロック選択信号SELC1及びSELC2は、4つのスレーブラッチ回路140cの何れに対してクロック信号CPを供給するのかを選択する信号として機能する。制御信号CP1~CP4を第1~第4クロック信号と読み替えても良く、この場合、クロック信号CLK及びCPは基準クロック信号と称され得る。
インバータ回路120の入力端には入力データDを示す信号が供給され、インバータ回路120の出力端からは入力データDを示す信号の反転信号が出力される。インバータ回路120の出力信号(即ち入力データDを示す信号の反転信号)は、マスタ入力データDMを示す信号として機能する。マスタ入力データDMを示す信号はマスタラッチ回路130cの入力端に供給され、マスタ入力データDMに応じたマスタ出力データQMを示す信号がマスタラッチ回路130cの出力端から出力される。マスタ出力データQMを示す信号はスレーブ入力データDSを示す信号として各スレーブラッチ回路140cの入力端に供給される。各スレーブラッチ回路140cは、スレーブ入力データDSに応じたスレーブ出力データQSを生成してスレーブ出力データQSを示す信号を自身の出力端から出力する。出力選択回路150cは、出力選択信号SELに基づき、4つのスレーブラッチ回路140cからの4つのスレーブ出力データQSの何れか1つを選択し、選択したスレーブ出力データQSを示す信号を出力する。インバータ回路160は、出力選択回路150cにて選択及び出力されたスレーブ出力データQSを示す信号の反転信号を、出力データQを示す信号として生成する。出力データQを示す信号はデータ出力部102から出力される。
マスタラッチ回路130cは、クロック信号CPに同期して動作し、クロック信号CPにおける所定のレベル変化に応答してデータDMの取り込み及び保持(ラッチ)を行う。マスタラッチ回路130cの保持データがマスタ出力データQMとなる。スレーブラッチ回路140c_iは、制御信号CPiに同期して動作し、制御信号CPiにおける所定のレベル変化に応答してデータQMと一致するデータDSの取り込み及び保持(ラッチ)を行う(ここにおける“i”は1、2、3又は4)。
MSFF100cに対するセット信号SET(図2参照)はセット信号SN1~SN4から成り、MSFF100cに対するリセット信号RST(図2参照)はリセット信号RN1~RN4から成る。セット信号SN1~SN4並びにRN1~RN4は、夫々に、ローレベル又はハイレベルの信号レベルをとる1ビットのデジタル信号である。
マスタラッチ回路130cは、スイッチ131及び132と、NAND回路133c及び134cと、を備える。即ち、図3のマスタラッチ回路130を基準として、インバータ回路133及び134をNAND回路133c及び134cに置換することで、図10のマスタラッチ回路130cが得られる。NAND回路133c及び134cの夫々は、第1~第5入力端と出力端を備え、第1~第5入力端に加わる5つの信号の否定論理積信号を出力端から出力する。
スイッチ131の第1端にはインバータ回路120からマスタ入力データDMを示す信号が入力され、スイッチ131の第2端はノード135に接続される。NAND回路133cの第1~第4入力端には夫々セット信号SN1~SN4が入力され、NAND回路133cの第5入力端はノード135に接続される。故に、NAND回路133cは、セット信号SN1~SN4とノード135の信号が全てハイレベルであるときに限り、自身の出力端からローレベルの信号を出力し、そうでない場合、ハイレベルの信号を出力する。NAND回路133cの出力信号がマスタ出力データQMを示す信号となる。
NAND回路133cの出力端はNAND回路134cの第1入力端に接続される。NAND回路134cの第2~第5入力端には夫々リセット信号RN1~RN4が入力される。故に、NAND回路134cは、NAND回路133cの出力信号とリセット信号RN1~RN4とが全てハイレベルであるときに限り、自身の出力端からローレベルの信号を出力し、そうでない場合、ハイレベルの信号を出力する。スイッチ132の第1端はNAND回路134cの出力端に接続され、スイッチ132の第2端はノード135に接続される。
スイッチ132の制御端にクロック信号CPが入力され且つスイッチ131の制御端にクロック信号CPの反転信号CPBが入力される点は、実施例EX1_1と同様である。故に、クロック信号CPがローレベルであるときにはマスタラッチ回路130cはスルー状態(マスタスルー状態)となり、クロック信号CPがハイレベルであるときにはマスタラッチ回路130cはホールド状態(マスタホールド状態)となる。
マスタラッチ回路130cは、マスタ入力データDMに応じたマスタ出力データQMを出力可能なマスタ出力回路、及び、マスタ出力データQMをマスタ出力回路の入力側に帰還可能なマスタ帰還回路を備えている、と考えることができる。図10のマスタラッチ回路130cにおいて、マスタ出力回路は、NAND回路133cにより或いはスイッチ131及びNAND回路133cにより構成され、マスタ帰還回路は、NAND回路134cにより或いはスイッチ132及びNAND回路134cにより構成される。マスタ帰還回路による帰還とは、マスタ出力データQMに基づくNAND回路134cの出力信号をノード135に供給することを意味する。
マスタラッチ回路130cにおいて、スルー状態(マスタスルー状態)では、マスタ帰還回路による帰還が行われることなく現在のマスタ入力データDMに基づき現在のマスタ出力データQM(NAND回路133cの出力データ)が生成され、ホールド状態(マスタホールド状態)では、現在のマスタ入力データDMに関係なくマスタ帰還回路による帰還データ(NAND回路134cの出力データ)に基づき現在のマスタ出力データQMが生成される。
但し、マスタラッチ回路130cでは、スルー状態及びホールド状態の夫々において、セット信号SN1~SN4をも参照してマスタ出力データQMが生成されることになり、ホールド状態において、リセット信号RN1~RN4をも参照してマスタ出力データQMが生成されることになる。
図11に、MSFF100cに設けられたスレーブラッチ回路140c_1~140c_4の構成を示す。スレーブラッチ回路140c_1~140c_4は互いに同じ構成を有し、各スレーブラッチ回路140cは、スイッチ141及び142と、NAND回路143c及び144と、を備える。即ち、図3の各スレーブラッチ回路140を基準として、インバータ回路143及び144をNAND回路143c及び144cに置換することで、図11の各スレーブラッチ回路140cが得られる。NAND回路143c及び144cの夫々は、第1及び第2入力端と出力端を備え、第1及び第2入力端に加わる2つの信号の否定論理積信号を出力端から出力する。スレーブラッチ回路140c_1~140c_4の夫々において、スイッチ141の第1端には、マスタラッチ回路130cからのマスタ出力データQMを示す信号がスレーブ入力データDSを示す信号として入力される。
各スレーブラッチ回路140cにおいて、スイッチ141の第2端はノード145に接続される。NAND回路143cの第1入力端にはリセット信号が入力され、NAND回路143cの第2入力端はノード145に接続される。但し、スレーブラッチ回路140c_1、140c_2、140c_3、140c_4に対するリセット信号は、夫々、リセット信号RN1、RN2、RN3、RN4である。故に、スレーブラッチ回路140c_1において、NAND回路143cは、リセット信号RN1とノード145の信号が共にハイレベルであるときに限り、自身の出力端からローレベルの信号を出力し、そうでない場合、ハイレベルの信号を出力する。同様に、スレーブラッチ回路140c_2において、NAND回路143cは、リセット信号RN2とノード145の信号が共にハイレベルであるときに限り、自身の出力端からローレベルの信号を出力し、そうでない場合、ハイレベルの信号を出力する。スレーブラッチ回路140c_3及び140c_4についても同様である。各スレーブラッチ回路140cにおいて、NAND回路143cの出力信号がスレーブ出力データQSを示す信号となる。スレーブラッチ回路140c_1、140c_2、140c_3、140c_4により生成及び出力されるスレーブ出力データQSは、夫々、符号“QS_1”、“QS_2”、“QS_3”、“QS_4”にて参照され得る。
各スレーブラッチ回路140cにおいて、NAND回路143cの出力端はNAND回路144cの第1入力端に接続され、NAND回路144cの第2入力端にセット信号が入力される。但し、スレーブラッチ回路140c_1、140c_2、140c_3、140c_4に対するセット信号は、夫々、セット信号SN1、SN2、SN3、SN4である。故に、スレーブラッチ回路140c_1において、NAND回路144cは、セット信号SN1とNAND回路143cの出力信号(QS_1)の双方がハイレベルであるときに限り、自身の出力端からローレベルの信号を出力し、そうでない場合、ハイレベルの信号を出力する。スレーブラッチ回路140c_2において、NAND回路144cは、セット信号SN2とNAND回路143cの出力信号(QS_2)の双方がハイレベルであるときに限り、自身の出力端からローレベルの信号を出力し、そうでない場合、ハイレベルの信号を出力する。スレーブラッチ回路140c_3及び140c_4についても同様である。各スレーブラッチ回路140cにおいて、スイッチ142の第1端はNAND回路144cの出力端に接続され、スイッチ142の第2端はノード145に接続される。
実施例EX1_1と同様に、スレーブラッチ回路140c_1において、スイッチ141の制御端には制御信号CP1が入力される一方でスイッチ142の制御端には制御信号CP1の反転信号CP1Bが入力され、且つ、スレーブラッチ回路140c_2において、スイッチ141の制御端には制御信号CP2が入力される一方でスイッチ142の制御端には制御信号CP2の反転信号CP2Bが入力される。更に、スレーブラッチ回路140c_3において、スイッチ141の制御端には制御信号CP3が入力される一方でスイッチ142の制御端には制御信号CP3の反転信号CP3Bが入力され、且つ、スレーブラッチ回路140c_4において、スイッチ141の制御端には制御信号CP4が入力される一方でスイッチ142の制御端には制御信号CP4の反転信号CP4Bが入力される。このため、
スレーブラッチ回路140c_1は、制御信号CP1がハイレベルであるときにスルー状態(スレーブスルー状態)となり、制御信号CP1がローレベルであるときにホールド状態(スレーブホールド状態)となる。
スレーブラッチ回路140c_2は、制御信号CP2がハイレベルであるときにスルー状態(スレーブスルー状態)となり、制御信号CP2がローレベルであるときにホールド状態(スレーブホールド状態)となる。
スレーブラッチ回路140c_3は、制御信号CP3がハイレベルであるときにスルー状態(スレーブスルー状態)となり、制御信号CP3がローレベルであるときにホールド状態(スレーブホールド状態)となる。
スレーブラッチ回路140c_4は、制御信号CP4がハイレベルであるときにスルー状態(スレーブスルー状態)となり、制御信号CP4がローレベルであるときにホールド状態(スレーブホールド状態)となる。
スレーブラッチ回路140c_1~140c_4の夫々は、スレーブ入力データDSに応じたスレーブ出力データQSを出力可能なスレーブ出力回路、及び、スレーブ出力データQSをスレーブ出力回路の入力側に帰還可能なスレーブ帰還回路を備えている、と考えることができる。図11の各スレーブラッチ回路140cにおいて、スレーブ出力回路は、NAND回路143cにより或いはスイッチ141及びNAND回路143cにより構成され、スレーブ帰還回路は、NAND回路144cにより或いはスイッチ142及びNAND回路144cにより構成される。スレーブ帰還回路による帰還とは、スレーブ出力データQSに基づくNAND回路144cの出力信号をノード145に供給することを意味する。
各スレーブラッチ回路140cにおいて、スルー状態(スレーブスルー状態)では、スレーブ帰還回路による帰還が行われることなく現在のスレーブ入力データDSに基づき現在のスレーブ出力データQS(NAND回路143cの出力データ)が生成され、ホールド状態(スレーブホールド状態)では、現在のスレーブ入力データDSに関係なくスレーブ帰還回路による帰還データ(NAND回路144cの出力データ)に基づき現在のスレーブ出力データQSが生成される。
但し、スレーブラッチ回路140c_1では、ホールド状態において、セット信号SN1をも参照してスレーブ出力データQS(QS_1)が生成されることになり、スルー状態及びホールド状態の夫々において、リセット信号RN1をも参照してスレーブ出力データQS(QS_1)が生成されることになる。
同様に、スレーブラッチ回路140c_2では、ホールド状態において、セット信号SN2をも参照してスレーブ出力データQS(QS_2)が生成されることになり、スルー状態及びホールド状態の夫々において、リセット信号RN2をも参照してスレーブ出力データQS(QS_2)が生成されることになる。
スレーブラッチ回路140c_3及び140c_4についても同様である。
セット信号(SN1~SN4)は負論理の信号であって、ローレベルのセット信号(SN1~SN4)は、出力データQを示す信号をハイレベルとするための信号(即ち出力データQに“1”を設定するための信号)として機能する。リセット信号(RN1~RN4)は負論理の信号であって、ローレベルのリセット信号(RN1~RN4)は、出力データQを示す信号をローレベルとするための信号(即ち出力データQに“0”を設定するための信号)として機能する。
図10を再度参照する。出力選択回路150cは、出力選択信号SELに基づき、スレーブラッチ回路140c_1~140c_4からのスレーブ出力データQS_1~QS_4の内の1つを選択し、選択したデータをインバータ回路160に対して出力する。実施例EX1_3において、出力選択信号SELは出力選択信号SEL1及びSEL2から成る。出力選択信号SEL1及びSEL2の夫々は、1ビットのデジタル信号であり、ハイレベル又はローレベルの信号レベルをとる。
具体的には、出力選択回路150cはスイッチ153~158を備える。スイッチ153~156の第1端には、夫々、スレーブ出力データQS_1~QS_4を示す信号が加わる。スイッチ153及び154の各第2端とスイッチ157の第1端は互いに共通接続され、スイッチ155及び156の各第2端とスイッチ158の第1端は互いに共通接続される。更に、スイッチ157及び158の各第2端は出力選択回路150cの出力端にて互いに共通接続される。出力選択回路150cの出力端はインバータ回路160の入力端に接続される。
スイッチ154及び156の各制御端には信号SEL1が入力され、スイッチ153及び155の各制御端には信号SEL1の反転信号SEL1Bが入力される。スイッチ158の制御端には信号SEL2が入力され、スイッチ157の制御端には信号SEL2の反転信号SEL2Bが入力される。このため、信号SEL1及びSEL2におけるローレベル及びハイレベルの組み合わせに応じて、スレーブ出力データQS_1~QS_4の何れか1つが選択され、選択されたデータを示す信号が出力選択回路150cから出力される。選択されたデータはインバータ回路160を通じ、出力データQとしてデータ出力部102から出力される。
MSFF100cに対しても、図6の動作例と同様の動作を適用できる。但し、MSFF100cには4つのスレーブラッチ回路140cが設けられているので、クロック信号CLK(=CP)の1周期が経過するごとに、順次、データA1、B1、C1、D1、A2、B2、C2、D2、A3、B3、C3、D3、A4、B4、C4、D4・・・を、この順番で、入力データDとして、MSFF100cに供給すれば良い。
この際、データA1~A4がスレーブラッチ回路140c_1にて順次ラッチされ、且つ、データB1~B4がスレーブラッチ回路140c_2にて順次ラッチされ、且つ、データC1~C4がスレーブラッチ回路140c_3にて順次ラッチされ、且つ、データD1~D4がスレーブラッチ回路140c_4にて順次ラッチされるように、クロック選択信号SELC1及びSELC2をMSFF100cに供給すれば良く、加えて、データA1、B1、C1、D1、A2、B2、C2、D2、A3、B3、C3、D3、A4、B4、C4、D4・・・が、この順番でMSFF100cから出力データQとして出力されるよう、出力選択信号SEL1及びSEL2をMSFF100cに供給すれば良い。
つまり、MSFF100cにおいて、第1、第2、第3、第4タイミングでのマスタ入力データDM(ここでは入力データDと一致)が、夫々、スレーブラッチ回路140c_1、140c_2、140c_3、140c_4にて取り込まれて保持されるよう、ステート制御回路3はクロック選択信号SELC(SELC1、SELC2)をMSFF100cに供給すると良い。第1~第4タイミングは互いに異なるタイミングである。詳細には、第1タイミングは、マスタ入力データDMがデータA1、A2、A3又はA4となるタイミングに相当し、第2タイミングは、マスタ入力データDMがデータB1、B2、B3又はB4となるタイミングに相当し、第3タイミングは、マスタ入力データDMがデータC1、C2、C3又はC4となるタイミングに相当し、第4タイミングは、マスタ入力データDMがデータD1、D2、D3又はD4となるタイミングに相当する。そして、ステート制御回路3は、MSFF100cに対する出力選択信号SEL(SEL1、SEL2)のレベルを制御することで、スレーブラッチ回路140c_1、140c_2、140c_3、140c_4の保持データ(例えばデータA1、B1、C1、D1)を、別々のタイミングにデータ出力部102から出力データQとして出力させると良い。
MSFF100cを用いれば、図1のロジック回路20にて、第1処理用データに基づく第1信号処理と、第2処理用データに基づく第2信号処理と、第3処理用データに基づく第3信号処理と、第4処理用データに基づく第4信号処理と、を並列実行させることができる。第1処理用データは、データA1~A4の何れかを指す又はデータA1~A4の総称である。第2処理用データは、データB1~B4の何れかを指す又はデータB1~B4の総称である。第3処理用データは、データC1~C4の何れかを指す又はデータC1~C4の総称である。第4処理用データは、データD1~D4の何れかを指す又はデータD1~D4の総称である。第1処理用データ(A1~A4)と第2処理用データ(B1~B4)と第3処理用データ(C1~C4)と第4処理用データ(D1~D4)とは互いに異なるデータである。但し、偶然、それらの値が一致することもありえる。
図1の各MSFF10がMSFF100cとして構成される場合、データA1~A4、B1~B4、C1~C4及びD1~D4は各MSFF10の入出力データあって、この内、データA1~A4は各MSFF10の入出力データの一部である第1処理用データに相当し、データB1~B4は各MSFF10の入出力データの他の一部である第2処理用データに相当し、データC1~C4は各MSFF10の入出力データの更に他の一部である第3処理用データに相当し、データD1~D4は各MSFF10の入出力データの更に他の一部である第4処理用データに相当する。
ロジック回路20は、各MSFF10から自身に対し第1処理用データ(A1~A4)が入力されている区間では、第1処理用データに基づく第1信号処理を行って第1信号処理の結果を示すデータを第1処理結果データとして各MSFF30に出力する。ロジック回路20は、各MSFF10から自身に対し第2処理用データ(B1~B4)が入力されている区間では、第2処理用データに基づく第2信号処理を行って第2信号処理の結果を示すデータを第2処理結果データとして各MSFF30に出力する。ロジック回路20は、各MSFF10から自身に対し第3処理用データ(C1~C4)が入力されている区間では、第3処理用データに基づく第3信号処理を行って第3信号処理の結果を示すデータを第3処理結果データとして各MSFF30に出力する。ロジック回路20は、各MSFF10から自身に対し第4処理用データ(D1~D4)が入力されている区間では、第4処理用データに基づく第4信号処理を行って第4信号処理の結果を示すデータを第4処理結果データとして各MSFF30に出力する。
図1の各MSFF30がMSFF100cとして構成される場合、データA1~A4、B1~B4、C1~C4及びD1~D4は各MSFF30の入出力データあって、この内、データA1~A4は各MSFF30の入出力データの一部である第1処理結果データに相当し、データB1~B4は各MSFF30の入出力データの他の一部である第2処理結果データに相当し、データC1~C4は各MSFF30の入出力データの更に他の一部である第3処理結果データに相当し、データD1~D4は各MSFF30の入出力データの更に他の一部である第4処理結果データに相当する。各MSFF30から後段回路50に対し、第1、第2、第3、第4処理結果データが供給されている区間において、後段回路50は、夫々、第1、第2、第3、第4処理結果データに基づく所定の処理を実行できる。
<<第2実施形態>>
本発明の第2実施形態を説明する。第2実施形態及び後述の第3実施形態は第1実施形態を基礎とする実施形態であり、第2及び第3実施形態において特に述べない事項に関しては、矛盾の無い限り、第1実施形態の記載が第2及び第3実施形態にも適用される。第2実施形態の記載を解釈するにあたり、第1及び第2実施形態間で矛盾する事項については第2実施形態の記載が優先されて良い(後述の第3実施形態についても同様)。矛盾の無い限り、第1~第3実施形態の内、任意の複数の実施形態を組み合わせても良い。
第2実施形態では、第1実施形態に示したMSFFの構造をスキャンテストに利用する技術を説明する。図12は、第2実施形態に係るデータ処理装置1aの構成図である。図1のデータ処理装置1を基準として、デジタル処理回路2をデジタル処理回路2aに置換すると共にデータ処理装置1に対してテスト結果評価回路8を追加することで、データ処理装置1aが形成される。テスト結果評価回路8は応答圧縮回路8a及び結果比較回路8bから成る。デジタル処理回路2aには、図1のデジタル処理回路2と同様、MSFF10[1]~MSFF10[MA]、ロジック回路20及びMSFF30[1]~MSFF30[MB]が設けられており、以下に示す事項を除き、デジタル処理回路2aはデジタル処理回路2と同様のものである。第1実施形態の記載を第2実施形態に適用する際、第1実施形態の記載における符号“1”、“2”は、第2実施形態において“1a”、“2a”に読み替えられる。
第2実施形態に係るステート制御回路3は、デジタル処理回路2a内の各MSFFに対し、上述の出力選択信号SEL及びクロック選択信号SELCに加えて入力選択信号SCも供給する。図12では、図示の煩雑化のため、信号SEL、SELC及びSCを伝達する配線が1本の線にて示されているが、それらの信号は別々の配線で伝達される。
図13に、1つのMSFF200における、データ及び信号の入出力に関わる構成を示す。第2実施形態では、MSFF200が、図12のMSFF10[1]~10[MA]及びMSFF30[1]~30[MB]の夫々として用いられるものとする。
MSFF200は、図2のMSFF100にも備えられた入力部101及び103~107並びに出力部102に加えて、スキャン入力部108及び入力選択信号入力部109を更に備える。尚、MSFF200に入力部106及び107が設けられないこともある。図12のデータ処理装置1aにおいて、MSFF10[1]~10[MA]にとっての入力データDは夫々データDA[1]~DA[MA]であり、MSFF10[1]~10[MA]にとっての出力データQは夫々データQA[1]~QA[MA]である。図12のデータ処理装置1aにおいて、MSFF30[1]~30[MB]にとっての入力データDは夫々データDB[1]~DB[MB]であり、MSFF30[1]~30[MB]にとっての出力データQは夫々データQB[1]~QB[MB]である。
MSFF200において、スキャン入力部108にはスキャン入力データSDが入力され、入力選択信号入力部109には入力選択信号SCが入力される。MSFF200のデータ出力部102からは、図2のMSFF100と同様に、MSFF200の出力データQが出力されるが、当該出力データQはスキャン出力データSOとしても出力される。
第2実施形態に係るステート制御回路3はテストパターン生成回路を含み、テストモードにおいて、MSFF10[1]及びMSFF30[1]に対してスキャン入力データSDを供給できる。
“1≦i≦MA-1”を満たす任意の整数iについて、MSFF10[i]のデータ出力部102はMSFF10[i+1]のスキャン入力部108に接続され、故に、MSFF10[i]からのスキャン出力データSOはMSFF10[i+1]へのスキャン入力データSDとなる。MSFF10[MA]からのスキャン出力データSOは応答圧縮回路8aに与えられる。
“1≦i≦MB-1”を満たす任意の整数iについて、MSFF30[i]のデータ出力部102はMSFF30[i+1]のスキャン入力部108に接続され、故に、MSFF30[i]からのスキャン出力データSOはMSFF30[i+1]へのスキャン入力データSDとなる。MSFF30[MB]からのスキャン出力データSOは応答圧縮回路8aに与えられる。
タイミング制御回路6は、ステート制御回路3を制御することを通じて、ステート制御回路3及びデジタル処理回路2aを、通常モード又はテストモードで動作させる。
通常モードでは、前段回路4からのデータDA[1]~DA[MA]に基づきデータQA[1]~QA[MA]を生成する動作と、その動作によるデータQA[1]~QA[MA]がロジック回路20に与えられたときのロジック回路20の出力データDB[1]~DB[MB]に基づきデータQB[1]~QB[MB]を生成する動作と、が行われる。
テストモードでは、必要なタイミングにおいて、MSFF10[1]~10[MA]がシリアル接続されることでMSFF10[1]~10[MA]にて第1シフトレジスタとして機能する第1スキャンチェーンが形成され、MSFF30[1]~30[MB]がシリアル接続されることでMSFF30[1]~30[MB]にて第2シフトレジスタとして機能する第2スキャンチェーンが形成され、第1及び第2スキャンチェーンを用いて所謂スキャンテストが行われる。
図14に、MSFF200の例であるMSFF200aの内部構成図を示す。第2実施形態において、以下では、各MSFF10及び各MSFF30がMSFF200aにて構成されていると考える。MSFF200aは、図9のMSFF100bを基準にしてインバータ回路120を入力選択回路170に置換したものであり、当該置換を除き、図14のMSFF200aは図9のMSFF100bと同様である。以下、当該置換による相違点のみを説明し、同様の部分の説明を省略する。
入力選択回路170は、データ入力部101及びスキャン入力部108に接続され、入力選択信号SCに基づき、データ入力部101及びスキャン入力部108の何れか一方をマスタラッチ回路130bの入力端に接続する。入力選択信号SCは1ビットのデジタル信号であり、ハイレベル又はローレベルの信号レベルをとる。具体的には、入力選択回路170は、インバータタイプのトライステートバッファ171及び172を備える。トライステートバッファ171の状態は入力選択信号SCの反転信号SCBに基づいて制御され、トライステートバッファ172の状態は入力選択信号SCに基づいて制御される。そして、入力選択信号SCがハイレベルであるとき、入力選択回路170は、入力部108に加わるスキャン入力データSDを示す信号の反転信号を、トライステートバッファ172を通じマスタ入力データDMを示す信号としてマスタラッチ回路130bに供給する。一方、入力選択信号SCがローレベルであるとき、入力選択回路170は、入力部101に加わる入力データDを示す信号の反転信号を、トライステートバッファ171を通じマスタ入力データDMを示す信号としてマスタラッチ回路130bに供給する。
MSFF200aにおいて、制御信号制回路110、マスタラッチ回路130b及びマスタラッチ回路130bの後段回路の構成及び動作は、図9のMSFF100bのそれらと同様である。但し、MSFF200aにおいて、インバータ回路160の出力信号は出力データQを示す信号として機能すると共にスキャン出力データSOを示す信号としても機能する。インバータ回路160は2つのインバータ回路から構成されていても良く、この場合、2つのインバータ回路から出力データQを示す信号及びスキャン出力データSOを示す信号が別々に出力されても良い。
テストモードにおいて、ステート制御回路3(図12参照)は、テスト制御回路とも称されるべきタイミング制御回路6の制御の下、MSFF200aとして構成された各MSFF10又は30に対し、ハイレベルのクロック選択信号SELC、入力選択信号SC及び出力選択信号SELを供給することができる。これにより上述の第1及び第2スキャンチェーンが形成され、ハイレベルの信号SELC、SC及びSELを受けた各MSFF10又は30では、順次供給されるスキャン入力データSDが順次スレーブラッチ回路140b_2にてラッチされ、スキャン入力データSDに基づくスレーブ出力データQS_2が出力選択回路150及びインバータ回路160を通じ順次スキャン出力データSOとして出力される。
テストモードにおける動作について説明を加える。テストモードにおいて、ステート制御回路3は、デジタル処理回路2aと協働して、スキャンイン動作、キャプチャ動作及びスキャンアウト動作から成る一連のテスト動作を実行する。テスト動作では、スキャンイン動作、キャプチャ動作及びスキャンアウト動作が、この順番で実行される。まず、テスト動作が継続的に実行されることを想定して、スキャンイン動作、キャプチャ動作及びスキャンアウト動作を説明する。
スキャンイン動作は、MSFF10[1]~10[MA]に所定のテストパターンデータをラッチさせるための動作(第1シフト動作)である。テストパターンデータは、ロジック回路20の故障の有無の診断に有効なデータであり、テストパターン生成回路を含むステート制御回路3にて生成される。スキャンイン動作が実行される区間では、MSFF10[1]~10[MA]及び30[1]~30[MB]の内、少なくともMSFF10[1]~10[MA]に対してハイレベルの信号SELC、SC及びSELが供給される。MSFF10[1]~10[MA]に対するハイレベルの信号SC及びSELの供給により、MSFF10[1]~10[MA]がシリアル接続されて第1スキャンチェーンが形成される。
その上で、スキャンイン動作において、テストパターンデータを構成するデータを1ビットずつスキャン入力データSDとしてステート制御回路3からMSFF10[1]に供給する動作を繰り返す。このとき、クロック選択信号SELCがハイレベルとされていることで、第1スキャンチェーン(即ちMSFF10[1]~10[MA]における計MA個のスレーブラッチ回路140b_2)にてデータのシフト動作が行われる。結果、スキャンイン動作の完了段階において、テストパターンデータは、MSFF10[1]~10[MA]における計MA個のスレーブラッチ回路140b_2にラッチされることになる。
キャプチャ動作では、MSFF10[1]~10[MA]のスレーブラッチ回路140b_2にラッチされたテストパターンデータを出力データQA[1]~QA[MA]としてロジック回路20に供給し、これによってロジック回路20から出力されるデータDB[1]~DB[MB]をMSFF30[1]~30[MB]のスレーブラッチ回路140b_2にラッチさせる。
これが実現されるよう、キャプチャ動作において、ステート制御回路3は、MSFF30[1]~30[MB]に対する信号SELC及びSCのレベルを制御する。即ち、テストパターンデータに基づくデータDB[1]~DB[MB]がロジック回路20から出力されるタイミングにおいてMSFF30[1]~30[MB]への信号SCをローレベルとし、これによってテストパターンデータに基づくデータDB[1]~DB[MB]をMSFF30[1]~30[MB]へのマスタ入力データDMとする。キャプチャ動作時において信号SELCはハイレベルとされる。少なくとも、テストパターンデータに基づくデータDB[1]~DB[MB]がMSFF30[1]~30[MB]のマスタ出力データQMとなるタイミングにおいてMSFF30[1]~30[MB]への信号SELCがハイレベルとされる。これにより、信号SELCがハイレベルとされた状態でのクロック信号CPのアップエッジに同期して制御信号CP2にアップエッジが生じ、結果、テストパターンデータに基づくデータDB[1]~DB[MB]がMSFF30[1]~30[MB]のスレーブラッチ回路140b_2にラッチされる。キャプチャ動作時においてMSFF30[1]~30[MB]への出力選択信号SELはハイレベルでも良いし、ローレベルでも構わない。
スキャンアウト動作は、MSFF30[1]~30[MB]のスレーブラッチ回路140b_2にラッチされた、テストパターンデータに基づくデータDB[1]~DB[MB]を応答圧縮回路8aに引き出すための動作(第2シフト動作)である。スキャンアウト動作が実行される区間では、MSFF10[1]~10[MA]及び30[1]~30[MB]の内、少なくともMSFF30[1]~30[MB]に対してハイレベルの信号SELC、SC及びSELが供給される。MSFF30[1]~30[MB]に対するハイレベルの信号SC及びSELの供給により、MSFF30[1]~30[MB]がシリアル接続されて第2スキャンチェーンが形成される。そして、信号SELCがハイレベルとされていることから、スキャンアウト動作において、MSFF30[1]~30[MB]のスレーブラッチ回路140b_2にラッチされた、テストパターンデータに基づくデータDB[1]~DB[MB]が、MSFF30[MB]から1ビットずつ応答圧縮回路8aに出力される。
以下、テストパターンデータに基づくデータDB[1]~DB[MB]を、MBビットのテスト結果データと称する。応答圧縮回路8aは、スキャンアウト動作により得られたMBビットのテスト結果データを所定の圧縮処理により圧縮することで、MB’ビットのテスト結果データに変換する。MB’はMBの値よりも小さな所定値を持つ。結果比較回路8bは、応答圧縮回路8aにて得られたMB’ビットのテスト結果データを、所定の期待データと比較することで、ロジック回路20の故障の有無を判断する。
また、スキャンアウト動作が実行される区間では、MSFF10[1]~10[MA]に対してもハイレベルの信号SELC、SC及びSELが供給されて良い。これにより、スキャンイン動作の実行区間にてMSFF10[1]~10[MA]のスレーブラッチ回路140b_2にラッチされたデータ(理想的にはテストパターンデータと一致)が、スキャンアウト動作の実行区間においてMSFF10[MA]から応答圧縮回路8aに供給される。ここで供給されたデータ(即ち、スキャンイン動作の実行区間にてMSFF10[1]~10[MA]のスレーブラッチ回路140b_2にラッチされたデータ)も応答圧縮回路8aにて圧縮され、当該圧縮後のデータに基づき、結果比較回路8bは、MSFF10[1]~10[MA]の故障の有無を判断することができる。尚、タイミング制御回路6からステート制御回路3及び応答圧縮回路8aに対して、テストモードにおける動作のタイミングを指定するテスト制御信号が供給されており、応答圧縮回路8aはテスト制御信号を参照することで圧縮すべきデータを認識する。
通常モードにおける動作を説明する。通常モードにおいて、ステート制御回路3(図12参照)は、タイミング制御回路6の制御の下、MSFF200aとして構成された各MSFF10及び30に対し、ローレベルのクロック選択信号SELCを供給すると共にローレベルの入力選択信号SC及び出力選択信号SELを供給する。これにより、通常モードにおける各MSFF10及び30では、順次供給される入力データDが順次スレーブラッチ回路140b_1にてラッチされて、入力データDに基づくスレーブ出力データQS_1が順次出力データQとして出力される。通常モードでは、上記第1及び第2スキャンチェーンは形成されず、各MSFFは独立したフリップフロップ回路として動作する。
デジタル処理回路において、回路内のフリップフロップ回路をスキャン機能付きのフリップフロップ回路に置き換えることで、スキャンテストを実現可能にする方法は周知である。スキャンテストが可能に構成された一般的なデジタル処理回路では、一旦、テストモードの動作が開始されると、テストモードの一連の動作が完了するまで通常モードでの動作(以下、通常動作と称する)を行うことができない。このため、故障診断に必要な時間分だけ通常動作を停止できないアプリケーション(例えば通信制御系のアプリケーション)には、スキャンテストを適用できないといった事情(以下、第1事情と称する)がある。また、テストモードの動作を行うことで、回路内におけるそれまでのラッチデータが破棄されることになるため、テストモードでの動作完了後には、通常動作を初期状態から開始する必要がある。つまり、スキャンテストが可能に構成された一般的なデジタル処理回路では、テストモードの動作を行うたびに、通常動作がリセットされるといった事情(以下、第2事情と称する)がある。
これに対し、本実施形態に係るデータ処理装置1aでは、図14のMSFF200aを利用することで、第1及び第2事情に関わる問題を解消することができる。スキャン機能付きのフリップフロップ回路として機能するMSFF200aに、通常モードでのデータをラッチするためのスレーブラッチ回路140b_1と、テストモードでのデータをラッチするためのスレーブラッチ回路140b_2と、が別個に設けられているからである。
例えば、通常動作(通常モードでの動作)を時間T1だけ継続実行する通常動作区間と、通常動作が時間T2だけ不要となる休止区間とが交互に繰り返し訪れるというケースを考える。この場合、テスト動作(テストモードでの一連の動作)をQ分割し、Q回分の休止区間に亘ってテスト動作の全体を行うようにするといったことが可能となるため、上記の第1事情に関わる問題は解消される。休止区間のタイミングを示す情報はタイミング制御回路6により認識又は管理され、当該情報に基づくタイミング制御回路6による制御の下、ステート制御回路3は信号SELC、SC、SELのレベル制御及びデータSDの出力制御を行う。この際、通常動作を実現するためのデータDA[1]~DA[MA]はMSFF10[1]~10[MA]のスレーブラッチ回路140b_1にラッチ(保持)されると共に、データDA[1]~DA[MA]に基づくデータDB[1]~DB[MB]はMSFF30[1]~30[MB]のスレーブラッチ回路140b_1にラッチ(保持)され、これらラッチされたデータは、スキャンモードでの動作の実行時にも、各スレーブラッチ回路140b_1にてラッチされ続けるため、上記の第2事情に関わる問題も解消される。
通常動作とテスト動作とをクロック信号CLKの周期ごとに切り替えて実行するといったことも可能である。この場合における動作例は図6に示したものと同様となり、この際、区間P3、P4、P7、P8、P11、P12、P15及びP16にて信号SCをハイレベルとし、区間P1、P2、P5、P6、P9、P10、P13及びP14にて信号SCをローレベルとすれば良い。この場合、データA1~A4はデータ入力部101に供給される入力データDに相当し、データB1~B4はスキャン入力部108に供給されるスキャン入力データSDに相当することになる。
尚、図14では、セット信号(SN1、SN2)及びリセット信号(RN1、RN2)の入力が可能な構成が示されているが、MSFF200aにおいて、それらの信号の入力は不能であっても良い(この場合、信号SN1、SN2、RN1及びRN2が全てハイレベルに固定されていると考えれば足る)。
また、MSFF10[MA]のデータ出力部102をMSFF30[1]のスキャン入力部108に接続する変形も可能であり、この場合、MSFF10[1]~10[MA]及び30[1]~30[MB]から成る単一のスキャンチェーン(単一のシフトレジスタ)を構成してテスト動作を行うことができる。
また、MSFF200aは3以上のスレーブラッチ回路140bを備えるものであっても良い。この場合、3以上のスレーブラッチ回路140bの内、1つのスレーブラッチ回路140bをテストモードでのデータをラッチするための回路として用い、残りの2以上のスレーブラッチ回路140bを通常モードでのデータをラッチするための回路として用いることができる。
<<第3実施形態>>
本発明の第3実施形態を説明する。第3実施形態では、第1又第2実施形態に対する補足事項、応用技術、変形技術等を説明する。
制御信号生成回路110又は110c(図3及び図10参照)により例示された制御信号生成回路は、1つ1つのMSFFに内蔵されるものではなく、複数のMSFFに共用されるものであっても良い。
即ち例えば、デジタル処理回路2又は2a(図1又は図12参照)において、第1及び第2共用制御信号生成回路を設けておくようにしても良い。
第1及び第2共用制御信号生成回路の夫々は、図3の制御信号生成回路110と同じものである。そして、第1共用制御信号生成回路にて信号SELC及びCPに基づき生成された制御信号CP1及びCP2を、MSFF100a、100b又は200a(図3、図9又は図14参照)として各々構成されたMSFF10[1]~10[MA]に共通して与えると共に、第2共用制御信号生成回路にて信号SELC及びCPに基づき生成された制御信号CP1及びCP2を、MSFF100a、100b又は200a(図3、図9又は図14参照)として各々構成されたMSFF30[1]~30[MB]に共通して与えるようにしても良い。
或いは、第1及び第2共用制御信号生成回路の夫々は、図10の制御信号生成回路110cと同じものであっても良い。この場合、第1共用制御信号生成回路にて信号SELC1、SELC2及びCPに基づき生成された制御信号CP1~CP4を、MSFF100c(図10参照)として各々構成されたMSFF10[1]~10[MA]に共通して与えると共に、第2共用制御信号生成回路にて信号SELC1、SELC2及びCPに基づき生成された制御信号CP1~CP4を、MSFF100c(図10参照)として各々構成されたMSFF30[1]~30[MB]に共通して与えるようにしても良い。
また例えば、デジタル処理回路2又は2a(図1又は図12参照)において、単一の共用制御信号生成回路を設けておくようにしても良い。
この際、単一の共用制御信号生成回路は、図3の制御信号生成回路110と同じものであって良い。そして、単一の共用制御信号生成回路にて信号SELC及びCPに基づき生成された制御信号CP1及びCP2を、MSFF100a、100b又は200a(図3、図9又は図14参照)として各々構成されたMSFF10[1]~10[MA]及び30[1]~30[MB]に共通して与えるようにしても良い。
或いは、単一の共用制御信号生成回路は、図10の制御信号生成回路110cと同じものであっても良い。この場合、単一の共用制御信号生成回路にて信号SELC1、SELC2及びCPに基づき生成された制御信号CP1~CP4を、MSFF100c(図10参照)として各々構成されたMSFF10[1]~10[MA]及び30[1]~30[MB]に共通して与えるようにしても良い。
MA及びMBの値が2以上であることを想定したが、MA及びMBの何れか一方の値は“1”であっても良いし、“MA=MB=1”で有り得ても良い。
説明の簡単化のため、デジタル処理回路2又は2a内の1つのロジック回路20に注目したが、デジタル処理回路2又は2a内には、組み合わせ回路を含むロジック回路が複数設けられていて良く、各ロジック回路の前段及び後段の夫々に複数のフリップフロップ回路が設けられていて良い。各フリップフロップ回路をMSFFとして構成することができる。複数のロジック回路に第1及び第2ロジック回路が含まれていて、第1ロジック回路がロジック回路20に相当する場合、第2ロジック回路はMSFF30[1]~30[MB]の出力データQB[1]~QB[MB]に基づく信号処理を行い、第2ロジック回路の出力データを受けて保持するための複数のMSFFが第2ロジック回路の後段に配置される。
データ処理装置1又は1aは半導体集積回路の形態で形成され、当該半導体集積回路を、樹脂にて構成された筐体(パッケージ)内に封入することで半導体装置を構成して良い。半導体装置は、例えば、CPU(Central Processing Unit)であっても良いし、電源回路を構成するための電源IC、モータを駆動するためのモータドライバIC、又は、LED(発光ダイオード)を駆動するためのLEDドライバICであっても良い。
データ処理装置1又は1aを含む半導体装置は、任意の機器に搭載可能であり、任意の用途に利用される。例えば、自動車等の車両に当該半導体装置を搭載することができる。車載用途では、故障診断のリアルタイム性が要求されることが多く、この点において、第2実施形態に示した技術は有益である。
本発明の一側面に係るフリップフロップ回路W(例えば図3参照)は、対象入力データに基づくマスタ入力データ(DM)を受けるマスタラッチ回路(例えば130)と、前記マスタラッチ回路からのマスタ出力データ(QM)の取り込み及び保持が可能なスレーブラッチ回路(例えば140)と、データ出力部(102)と、を備え、前記対象入力データに基づく対象出力データを前記データ出力部から出力するフリップフリップ回路であって、前記スレーブラッチ回路として、前記マスタラッチ回路に対して並列に第1~第Nスレーブラッチ回路(例えば140_1及び140_2)が設けられ、前記第1~第Nスレーブラッチ回路から出力されるデータの何れか1つを選択する出力選択回路(例えば150)を更に備え、前記出力選択回路による選択データを前記対象出力データとして前記データ出力部から出力することを特徴とする。
フリップフロップ回路Wによれば、例えば、第1~第N信号処理用のデータを第1~第Nスレーブラッチ回路にラッチ(保持)させることが可能となる。そして、第1~第N信号処理を担うロジック回路を1つだけ設けておき、第1信号処理を行う際には、第1スレーブラッチ回路を利用して、第1信号処理用のデータをロジック回路に入力する又は第1信号処理用のデータをロジック回路から受けてラッチする、といったことが可能となる。同様に、第2信号処理を行う際には、第2スレーブラッチ回路を利用して、第2信号処理用のデータをロジック回路に入力する又は第2信号処理用のデータをロジック回路から受けてラッチする、といったことが可能となる(第3~第N信号処理についても同様)。つまり、第1~第N信号処理を実現するために共通の構成を有するロジック回路をN個用意する必要が無くなり、結果、装置の回路面積の削減が図られる。
ここで、Nは2以上の整数である。例えば、図3のMSFF100aでは“N=2”であり、図10のMSFF100cでは“N=4”であるが、Nは2以上の整数であれば任意である。フリップフロップ回路Wは上述の何れかのMSFFに対応する。
第1実施形態において(図1及び図3等参照)、対象入力データは入力データDに相当し、対象出力データは出力データQに相当する。一方、第2実施形態において(図12~図14等参照)、対象入力データは入力データD又はスキャン入力データSDに相当し、対象出力データは出力データQ又はスキャン出力データSOに相当する。
前記フリップフロップ回路W(例えば図2及び図3参照)において、矩形波信号であるクロック信号(CLK=CP)の入力を受けるクロック信号入力部(103)と、クロック選択信号(SELC)の入力を受けるクロック選択信号入力部(104)と、出力選択信号(SEL)の入力を受ける出力選択信号入力部(105)と、前記クロック信号及び前記クロック選択信号に基づき第1~第N制御信号を生成する制御信号生成回路(例えば110)と、が備えられ、前記マスタラッチ回路は、前記クロック信号に同期して動作し、第iスレーブラッチ回路は、第i制御信号に同期して動作し(iは1以上N以下の整数)、前記出力選択回路は、前記出力選択信号(SEL)に基づき、前記第1~第Nスレーブラッチ回路(例えば140_1及び140_2)の出力データの何れかを選択すると良い。
例えば、図3の例において第1~第N制御信号は制御信号CP1及びCP2であり、図10の例において第1~第N制御信号は制御信号CP1~CP4である。
前記フリップフロップ回路Wにおいて(図14参照)、例えば、前記対象入力データは第1及び第2対象入力データ(D及びSD)を含み、前記第1及び第2対象入力データの内の一方を前記マスタ入力データとしてマスタラッチ回路に供給する入力選択回路(170)を更に設けておくこともできる。
本発明の実施形態は、特許請求の範囲に示された技術的思想の範囲内において、適宜、種々の変更が可能である。以上の実施形態は、あくまでも、本発明の実施形態の例であって、本発明ないし各構成要件の用語の意義は、以上の実施形態に記載されたものに制限されるものではない。上述の説明文中に示した具体的な数値は、単なる例示であって、当然の如く、それらを様々な数値に変更することができる。