(57)【要約】【課題】様々なデータパス回路の制御に対応可能なシーケンス制御回路及び制御回路を得る。【解決手段】各セル３ａ〜３ｄは、入力データ１０と比較対象値の比較が一致したことを通知する一致信号１１ａ〜１１ｄと次ステート１２ａ〜１２ｄを出力する。一致信号１１ａ〜１１ｄは一致信号用論理和回路４によって論理和演算され、次ステート１２ａ〜１２ｄはステート用論理和回路５によって論理和演算される。次ステート出力用セレクタ８は、一致信号用論理和回路４の出力１３によりステート用論理和回路５の出力１４と不一致用次ステートレジスタ群６の出力１５とを選択し、ステート出力２１として出力する。【選択図】図１
2011070502.tif 000002
【特許請求の範囲】
【請求項１】
現ステートを保持する現ステートレジスタと、
入力データと保持する比較対象値とを比較することにより、比較が一致したことを通知するための一致信号と次ステートとを得る複数のセルと、
前記複数のセルの出力である一致信号の論理和を得る一致信号用論理和回路と、
前記複数のセルの出力である次ステートの論理和を得るステート用論理和回路と、
前記複数のセルで比較が一致しなかった場合に出力する次ステートを保持する複数のレジスタを持つ不一致用次ステートレジスタ群と、
前記不一致用次ステートレジスタ群からレジスタを選択する不一致用次ステートセレクタと、
前記一致信号用論理和回路の出力により前記ステート用論理和回路の出力と前記不一致用次ステートセレクタの出力を選択する次ステート出力用セレクタとを備え、
各セルは、
任意のビット位置とビット数の選択値を保持する複数のレジスタを持つビット選択レジスタ群と、
前記ビット選択レジスタ群の選択されたレジスタのビット位置とビット数の選択値に従って前記入力データから対応するビット位置とビット数の比較データを選択するビット選択器と、
比較対象値を保持する複数のレジスタを持つ比較対象レジスタ群と、
前記ビット選択器で選択された比較データと前記比較対象レジスタ群の選択されたレジスタの比較対象値とを比較し、両者が一致した際に現セル一致信号を出力する比較器と、
前記比較対象レジスタ群で保持する比較対象値に対応する次ステートを保持する複数のレジスタを持つ次ステートレジスタ群と、
前記複数のセルにおける隣セルの一致信号を取り込むかどうかの選択値を保持する複数のレジスタを持つ一致信号伝達有無レジスタ群と、
前記一致信号伝達有無レジスタ群の選択されたレジスタの値に基づいて前記隣セルの一致信号かまたは固定値‘１’を選択する一致信号伝達セレクタと、
前記比較器から出力される現セル一致信号と前記一致信号伝達セレクタの出力に基づいて一致信号を生成する論理積ゲートと、
前記生成された一致信号に基づいて前記次ステートレジスタ群の選択されたレジスタの次ステートか、または固定値‘0’を自セルの次ステートとするセル出力選択手段と、
前記現ステートレジスタの値に基づいて前記各レジスタ群のそれぞれのレジスタを選択し、その保持するデータを出力するそれぞれのレジスタ選択手段とを有し、
前記セル出力選択手段によって選択された次ステートを、次の現ステートとして現ステートレジスタにフィードバックすることを特徴とするシーケンス制御回路。
【請求項２】
不一致用次ステートレジスタ群と、各セル内のビット選択レジスタ群と、比較対象レジスタ群と、次ステートレジスタ群と、一致信号伝達有無レジスタ群は、それぞれが備える複数のレジスタに対し、外部より入力されるコンフィグレーションデータを書き込むことが可能であり、
かつ、
前記コンフィグレーションデータと同時に入力されるレジスタ指定アドレス信号に基づいて前記不一致用次ステートレジスタ群か各セルのレジスタかを指定するアドレスを示すセル内レジスタ指定アドレス信号を生成する共通アドレスデコーダと、
前記セル内レジスタ指定アドレス信号に基づいて各セル内のそれぞれのレジスタを指定するアドレスを生成するセル内アドレスデコーダとを備えたことを特徴とする請求項１記載のシーケンス制御回路。
【請求項３】
請求項１または請求項２に記載のシーケンス制御回路と、前記シーケンス制御回路によって決定されたステートに従って制御信号を生成する制御信号生成部を備えた制御回路。
【請求項４】
請求項１または請求項２に記載のシーケンス制御回路と、前記シーケンス制御回路によって決定されたステートに従って制御信号を生成する複数の制御信号生成部と、これら複数の制御信号生成部のうち、前記ステートを入力する制御信号生成部を選択するスイッチとを備えた制御回路。
【請求項５】
制御信号生成部が動的再構成可能な回路により構成されていることを特徴とする請求項３または請求項４記載の制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データパス回路を制御するシーケンス制御回路及び制御回路に関する。
【背景技術】
【０００２】
従来、データパス回路を制御する制御回路において、シーケンスを制御しているステートマシンは、組合せ回路からなる状態決定部と、順序回路からなる状態保持部により構成されており、フルハードウェアにより実現されていた（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２５２１６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の制御回路では、制御するデータパス回路が変わると、状態決定方法も異なるため、従来のフルハードウェアによる実現では、制御するデータパス回路毎にステートマシンを実装しなくてはならなかった。
【０００５】
この発明は上記のような課題を解決するためになされたもので、様々なデータパス回路の制御に対応可能なシーケンス制御回路及び制御回路を得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るシーケンス制御回路は、現ステートを保持する現ステートレジスタと、入力データと保持する比較対象値とを比較することにより、比較が一致したことを通知するための一致信号と次ステートとを得る複数のセルと、複数のセルの出力である一致信号の論理和を得る一致信号用論理和回路と、複数のセルの出力である次ステートの論理和を得るステート用論理和回路と、複数のセルで比較が一致しなかった場合に出力する次ステートを保持する複数のレジスタを持つ不一致用次ステートレジスタ群と、不一致用次ステートレジスタ群からレジスタを選択する不一致用次ステートセレクタと、一致信号用論理和回路の出力によりステート用論理和回路の出力と不一致用次ステートセレクタの出力を選択する次ステート出力用セレクタとを備え、各セルは、任意のビット位置とビット数の選択値を保持する複数のレジスタを持つビット選択レジスタ群と、ビット選択レジスタ群の選択されたレジスタのビット位置とビット数の選択値に従って入力データから対応するビット位置とビット数の比較データを選択するビット選択器と、比較対象値を保持する複数のレジスタを持つ比較対象レジスタ群と、ビット選択器で選択された比較データと比較対象レジスタ群の選択されたレジスタの比較対象値とを比較し、両者が一致した際に現セル一致信号を出力する比較器と、比較対象レジスタ群で保持する比較対象値に対応する次ステートを保持する複数のレジスタを持つ次ステートレジスタ群と、複数のセルにおける隣セルの一致信号を取り込むかどうかの選択値を保持する複数のレジスタを持つ一致信号伝達有無レジスタ群と、一致信号伝達有無レジスタ群の選択されたレジスタの値に基づいて隣セルの一致信号かまたは固定値‘１’を選択する一致信号伝達セレクタと、比較器から出力される現セル一致信号と一致信号伝達セレクタの出力に基づいて一致信号を生成する論理積ゲートと、生成された一致信号に基づいて次ステートレジスタ群の選択されたレジスタの次ステートか、または固定値‘0’を自セルの次ステートとするセル出力選択手段と、現ステートレジスタの値に基づいて各レジスタ群のそれぞれのレジスタを選択し、その保持するデータを出力するそれぞれのレジスタ選択手段とを有し、セル出力選択手段によって選択された次ステートを、次の現ステートとして現ステートレジスタにフィードバックするようにしたものである。
【発明の効果】
【０００７】
この発明のシーケンス制御回路は、入力データと比較対象値の比較が一致したことを通知するための一致信号と次ステートとを得る複数のセルと、一致信号の論理和を得る一致信号用論理和回路と、次ステートの論理和を得るステート用論理和回路と、一致信号用論理和回路の出力によりステート用論理和回路の出力と不一致用次ステートレジスタ群の出力を選択する次ステート出力用セレクタを備えたので、様々なデータパス回路の制御に対応可能なシーケンス制御回路を得ることができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１によるシーケンス制御回路の構成を示すブロック図である。
【図２】この発明の実施の形態１によるシーケンス制御回路のセルの構成を示すブロック図である。
【図３】この発明の実施の形態１によるシーケンス制御回路で実現するステートマシン例の説明図である。
【図４】この発明の実施の形態１によるシーケンス制御回路で図３のステートマシンを実現した場合の構成図である。
【図５】図４の構成例において現ステートがＳ０のときの動作を示す説明図である。
【図６】図４の構成例において現ステートがＳ１のときの動作を示す説明図である。
【図７】図３のステートマシンの変形例を示す説明図である。
【図８】この発明の実施の形態２による制御回路の構成を示すブロック図である。
【図９】この発明の実施の形態３による制御回路の構成を示すブロック図である。
【発明を実施するための形態】
【０００９】
実施の形態１．
図１は、この発明の実施の形態１によるシーケンス制御回路構成を示すブロック図である。
シーケンス制御回路１は、現ステートレジスタ２、複数のセル３ａ〜３ｄ、一致信号用論理和回路４、ステート用論理和回路５、不一致用次ステートレジスタ群６、不一致用次ステートセレクタ（ＭＵＸ）７、次ステート出力用セレクタ（ＭＵＸ）８を備えている。
現ステートレジスタ２は、現ステート９を保持するレジスタである。複数のセル３ａ〜３ｄは、入力データ１０と保持する比較対象値とを比較することにより比較が一致したことを通知する一致信号１１ａ〜１１ｄと次ステート１２ａ〜１２ｄを得るものである。一致信号用論理和回路４は、複数のセル３ａ〜３ｄの出力である一致信号１１ａ〜１１ｄの論理和を得る回路である。ステート用論理和回路５は、複数のセル３ａ〜３ｄの出力である次ステート１２ａ〜１２ｄの論理和を得る回路である。不一致用次ステートレジスタ群６は、比較が一致しなかった場合に出力する次ステートを保持する複数のレジスタを持つレジスタ群である。
【００１０】
不一致用次ステートセレクタ７は、不一致用次ステートレジスタ群６からレジスタを選択するためのセレクタである。次ステート出力用セレクタ８は、一致信号用論理和回路４の出力１３によりステート用論理和回路５の出力１４と不一致用次ステートセレクタ７の出力１５を選択するためのセレクタである。また、シーケンス制御回路１は、シーケンス制御回路１を所望のシーケンス制御用に構成するためにシーケンス制御回路１内の各レジスタにコンフィグレーションデータ１７を書き込む際に、レジスタ指定アドレス信号１８に基づいて、セル内レジスタ指定アドレス信号１９を生成する共通アドレスデコーダ１６を備えている。
【００１１】
また、固定値２０は、左隣りのセルが存在しないセル３ａに、隣セルの一致信号の代わりとして入力される固定値‘１’であり、ステート出力２１は、次ステート出力用セレクタ８により出力される次ステートであり、現ステートレジスタ２、および、シーケンス制御回路１の外部へ出力となるものである。
【００１２】
図２は、セル３の構成を示すブロック図である。セル３ａ〜３ｄは、どれも同じ構成であり、ビット選択レジスタ群２２、ビット選択器２３、比較対象レジスタ群２４、比較器２５、次ステートレジスタ群２６、一致信号伝達有無レジスタ群２７、一致信号伝達セレクタ（ＭＵＸ）２８、論理積ゲート２９、セル出力選択手段（ＭＵＸ）３０、レジスタ選択手段（ＭＵＸ）３１，３２，３３，３４、セル内アドレスデコーダ３５を備えている。以下、セル３ｂを例として説明する。
【００１３】
ビット選択レジスタ群２２は、任意のビット位置とビット数の選択値を保持する複数のレジスタを持つレジスタ群である。ビット選択器２３は、ビット選択レジスタ群２２の選択されたレジスタのビット位置とビット数の選択値３６に従って入力データ１０から対応するビット位置とビット数の比較データを選択するビット選択器である。比較対象レジスタ群２４は、比較対象値を保持する複数のレジスタを持つレジスタ群である。比較器２５は、ビット選択器２３で選択された比較データ３７と、比較対象レジスタ群２４の選択されたレジスタの比較対象値３８とを比較し、両者が一致した際に現セル一致信号３９を出力する比較器である。次ステートレジスタ群２６は、比較対象レジスタ群２４で保持する比較対象値３８に対応する次ステートを保持する複数のレジスタを持つレジスタ群である。一致信号伝達有無レジスタ群２７は、隣セルの一致信号１１ａを取り込むかどうかの選択値を保持する複数のレジスタを持つレジスタ群である。
【００１４】
一致信号伝達セレクタ２８は、一致信号伝達有無レジスタ群２７の選択されたレジスタの選択値４０に基づいて隣セルの一致信号１１ａかまたは固定値‘１’を選択するセレクタである。論理積ゲート２９は、比較器２５から出力される現セル一致信号３９と一致信号伝達セレクタ２８の出力に基づいて一致信号１１ｂを生成する論理積ゲートである。セル出力選択手段３０は、生成された一致信号１１ｂに基づいて次ステートレジスタ群２６の選択されたレジスタの次ステート４１か、または固定値‘０’を当該セルの次ステートとする選択手段である。レジスタ選択手段３１〜３４は、現ステート９に基づいて各レジスタ群２２，２４，２６，２７のそれぞれのレジスタを選択し、その保持するデータを出力する選択手段である。セル内アドレスデコーダ３５は、セル３ｂ内の各レジスタにコンフィグレーションデータ１７を書き込む際に、セル内レジスタ指定アドレス信号１９に基づいて、セル内のアドレス信号４２を生成するためのデコーダである。
【００１５】
また、出力４３は、一致信号伝達セレクタ２８によって選択される信号であり、固定値４４は、一致信号伝達セレクタ２８の片方の入力となる固定値‘１’であり、固定値４５は、セル出力選択手段３０の片方の入力となる固定値‘０’である。
【００１６】
次に、図３に示すステートマシンを例に、シーケンス制御回路１の構成例、および、動作例を説明する。
図３のステートマシンは、Ｓ０〜Ｓ３の４つのステートを持ち、それぞれのステートにおいて、以下のような条件判定によって次ステートを決定する。図３のステートマシンは、次ステートとなる遷移先が多岐に渡っていたり、次ステートの判定に使用するビット数が４ビットであったり８ビットであったりと様々な遷移が存在する。
【００１７】
「現ステートがＳ０のとき」
・ｘ＋ｙ＝４’ｂ１１１１ならば、次ステートはＳ０
・ｘ＋ｙ＝４’ｂ１１１０ならば、次ステートはＳ１
・ｘ＋ｙ＝４’ｂ１１０１ならば、次ステートはＳ２
・ｘ＋ｙ＝４’ｂ１１００ならば、次ステートはＳ３
・それ以外ならば、ＥＸＩＴ
【００１８】
「現ステートがＳ１のとき」
・１ビットのフラグａ〜ｈについて、
｛（ａ＝１）｜（ｂ＝１）｝＆（ｃ＝１）＆｛（ｄ＝１）｜（ｅ＝１）｝＆（ｆ＝１）＆（ｇ＝０）＆（ｈ＝０）
が成立するならば、次ステートはＳ２
・それ以外ならば、次ステートはＳ１
【００１９】
「現ステートがＳ２のとき」
・（ｚ＝４’ｂ１１００）｜（ｚ＝４’ｂ０１００）｜（ｚ＝４’ｂ１０００）ならば、次ステートはＳ３
・それ以外ならば、Ｓ２
【００２０】
「現ステートがＳ３のとき」
・（ｗ＝４’ｂ０００１）｜（ｗ＝４’ｂ００１０）｜（ｗ＝４’ｂ００１１）｜（ｗ＝４’ｂ１１１１）ならば、次ステートはＳ０
・それ以外ならば、次ステートはＳ３
尚、上記の“｜”はビット単位の論理和を示している。
【００２１】
図４は、図３のステートマシンをこの発明のシーケンス制御回路１で実現した場合の構成例である。図４では、図面としての煩雑さを避けるため、各レジスタ群からレジスタを選択するレジスタ選択手段３１，３２，３３，３４、および、コンフィグレーションにのみ関わる共通アドレスデコーダ１６、セル内アドレスデコーダ３５についてはその図示を省略している。
【００２２】
各レジスタ群は、上から１番目のレジスタに現ステートがＳ０のときに選択される値、上から２番目のレジスタに現ステートがＳ１のときに選択される値、上から３番目のレジスタに現ステートがＳ２のときに選択される値、上から４番目のレジスタに現ステートがＳ３の時に選択される値が保持されている。
ビット選択レジスタ群２２において、「０−３」は入力データ１０の先頭ビットを０ビット目と数えたときの、０ビット目から３ビット目までの４ビットを選択し、「４−７」は先頭から４ビット目から７ビット目までの４ビットを選択し、「―」はいずれのビットも選択しない、即ち当該セルでは比較を行わないことを示す。
比較対象レジスタ群２４において、例えば「０１１０」は二進数表記で４ビットの値４’ｂ０１１０を示す。
一致信号伝達有無レジスタ群２７において、「０」は固定値‘１’（４４）を選択し、「１」は隣セルの一致信号１１を選択することを示す。
次ステートレジスタ群２６、および、不一致用次ステートレジスタ群６において、「Ｓ０」はステートＳ０を表すユニークな値、「Ｓ１」はステートＳ１を表すユニークな値、「Ｓ２」はステートＳ２を表すユニークな値、「Ｓ３」はステートＳ３を表すユニークな値、「ＥＸＩＴ」はＥＸＩＴを表すユニークな値、「０」は値‘０’を示す。
【００２３】
上から１番目のレジスタ、即ち、現ステートがＳ０のときには、入力データ１０としてｘ＋ｙの演算結果が入力され、セル３ａでは入力データ１０の先頭から０〜３ビット目の４ビットと４’ｂ１１１１を比較し、比較が一致すれば次ステートとしてＳ０を出力する。セル３ｂでは入力データ１０の先頭から０〜３ビット目の４ビットと４’ｂ１１１０を比較し、比較が一致すれば次ステートとしてＳ１を出力する。セル３ｃでは入力データ１０の先頭から０〜３ビット目の４ビットと４’ｂ１１０１を比較し、比較が一致すれば次ステートとしてＳ２を出力する。セル３ｄでは入力データ１０の先頭から０〜３ビット目の４ビットと４’ｂ１１００を比較し、比較が一致すれば次ステートとしてＳ３を出力する。いずれのセルも比較が一致しなかった場合は、次ステートとしてＥＸＩＴを出力する。
【００２４】
上から２番目のレジスタ、即ち、現ステートがＳ１のときには、入力データとして８つのフラグが上位ビットから｛ａ、ｂ、ｃ、ｄ、ｅ、ｆ、ｇ、ｈ｝の順で連結されたデータとして入力される。ここで、１つのセルで比較できる最大ビット数を４ビットとすると、８ビットの比較は２つのセルを用いて実行することになる。ここでは、左から偶数番目のセル（０番目：セル３ａ、２番目：セル３ｃ、４番目、６番目、・・・）で上位４ビットの比較を行い、左から奇数番目のセル（１番目：セル３ｂ、３番目：セル３ｄ、５番目、７番目、・・・）で下位８ビットの比較を行う。
セル３ａでは、入力データ１０の先頭から０〜３ビット目の４ビット｛ａ、ｂ、ｃ、ｄ｝と４’ｂ０１１０を比較、即ち、ａと０、ｂと１、ｃと１、ｄと０を比較し、比較が一致すれば‘０’を出力する。セル３ｂでは、入力データ１０の先頭から４〜７ビット目の４ビット｛ｅ、ｆ、ｇ、ｈ｝と４’ｂ１１００を比較、即ち、ｅと１、ｆと１、ｇと０、ｈと０を比較する。セル３ａとセル３ｂともに比較が一致すれば次ステートとしてＳ２を出力する。セル３ｃでは、入力データ１０の先頭から０〜３ビット目の４ビット｛ａ、ｂ、ｃ、ｄ｝と４’ｂ１０１１を比較、即ち、ａと１、ｂと０、ｃと１、ｄと１を比較し、比較が一致すれば‘０’を出力する。セル３ｄでは入力データ１０の先頭から４〜７ビット目の４ビット｛ｅ、ｆ、ｇ、ｈ｝と４’ｂ０１００を比較、即ち、ｅと０、ｆと１、ｇと０、ｈと０を比較する。セル３ｃとセル３ｄ共に比較が一致すれば次ステートとしてＳ２を出力する。
【００２５】
図４では、図を簡略化するためにセルを４つのみ示しているが、そのほか条件式が成立する比較対象値のパタン分、同様の比較を行うセルが必要であり、具体的には、以下の９つのパタン分の比較を行うセルが必要になる。
・ａ＝１、ｂ＝１、ｃ＝１、ｄ＝１、ｅ＝１、ｆ＝１、ｇ＝０、ｈ＝０
・ａ＝１、ｂ＝１、ｃ＝１、ｄ＝１、ｅ＝０、ｆ＝１、ｇ＝０、ｈ＝０
・ａ＝１、ｂ＝１、ｃ＝１、ｄ＝０、ｅ＝１、ｆ＝１、ｇ＝０、ｈ＝０
・ａ＝１、ｂ＝０、ｃ＝１、ｄ＝１、ｅ＝１、ｆ＝１、ｇ＝０、ｈ＝０
・ａ＝１、ｂ＝０、ｃ＝１、ｄ＝１、ｅ＝０、ｆ＝１、ｇ＝０、ｈ＝０
・ａ＝１、ｂ＝０、ｃ＝１、ｄ＝０、ｅ＝１、ｆ＝１、ｇ＝０、ｈ＝０
・ａ＝０、ｂ＝１、ｃ＝１、ｄ＝１、ｅ＝１、ｆ＝１、ｇ＝０、ｈ＝０
・ａ＝０、ｂ＝１、ｃ＝１、ｄ＝１、ｅ＝０、ｆ＝１、ｇ＝０、ｈ＝０
・ａ＝０、ｂ＝１、ｃ＝１、ｄ＝０、ｅ＝１、ｆ＝１、ｇ＝０、ｈ＝０
上記９つのパタンを比較するいずれのセルも比較が一致しなかった場合は、次ステートとしてＳ１を出力する。
【００２６】
上から３番目のレジスタ、即ち、現ステートがＳ２のときには、入力データ１０としてｚが入力され、セル３ａでは入力データ１０の先頭から０〜３ビット目の４ビットと４’ｂ１１００を比較し、比較が一致すれば次ステートとしてＳ３を出力する。セル３ｂでは入力データ１０の先頭から０〜３ビット目の４ビットと４’ｂ０１００を比較し、比較が一致すれば次ステートとしてＳ３を出力する。セル３ｃでは入力データ１０の先頭から０〜３ビット目の４ビットと４’ｂ１０００を比較し、比較が一致すれば次ステートとしてＳ３を出力する。セル３ｄでは比較を行わず、いずれのセルも比較が一致しなかった場合は、次ステートとしてＳ２を出力する。
【００２７】
上から４番目のレジスタ、即ち、現ステートがＳ３のときには、入力データ１０としてｗが入力され、セル３ａでは入力データ１０の先頭から０〜３ビット目の４ビットと４’ｂ０００１を比較し、比較が一致すれば次ステートとしてＳ０を出力する。セル３ｂでは入力データ１０の先頭から０〜３ビット目の４ビットと４’ｂ００１０を比較し、比較が一致すれば次ステートとしてＳ０を出力する。セル３ｃでは入力データ１０の先頭から０〜３ビット目の４ビットと４’ｂ００１１を比較し、比較が一致すれば次ステートとしてＳ０を出力する。セル３ｄでは入力データ１０の先頭から０〜３ビット目の４ビットと４’ｂ１１１１を比較し、比較が一致すれば次ステートとしてＳ０を出力し、いずれのセルも比較が一致しなかった場合は、次ステートとしてＳ３を出力する。
【００２８】
次に、図５を用いて、図４の構成例において現ステートがＳ０のときの動作を説明する。
現ステートレジスタ２から現ステート９としてＳ０を示す値が各セルの各レジスタ群２２，２４，２６，２７に入力され、各レジスタ群において、Ｓ０用の設定が保持されている上から１番目のレジスタが選択される。入力データ１０として、ｘ＋ｙの演算結果である４’ｂ１１１０（＝１０進数の１４）が各セルのビット選択器２３に入力される。各ビット選択器２３は、ビット選択レジスタ群２２のうち、選択された一番上のレジスタの選択値３６に従って、比較器２５へ供給するデータ３７を入力データ１０から選択し出力する。現ステート９によって比較対象値レジスタ群２４から一番上のレジスタに保持されている比較対象値３８が選択出力され、ビット選択器２３の出力３７と比較器２５によって一致比較される。このとき、セル３ａの比較器２５では、比較対象値３８の「４’ｂ１１１１」とビット選択器出力３７の「４’ｂ１１１０」が比較されるため一致せず、現セル一致信号３９は‘０’、セル３ｂの比較器２５では比較対象値３８の「４’ｂ１１１０」とビット選択器出力３７の「４’ｂ１１１０」が比較されるため一致し、現セル一致信号３９は‘１’、セル３ｃの比較器２５では比較対象値３８の「４’ｂ１１０１」とビット選択器出力３７の「４’ｂ１１１０」が比較されるため一致せず、現セル一致信号３９は‘０’、セル３ｄの比較器２５では比較対象値３８の「４’ｂ１１００」とビット選択器出力３７の「４’ｂ１１１０」が比較されるため一致せず、現セル一致信号３９は‘０’となる。
【００２９】
また、セル３ａの一致信号伝達セレクタ２８には固定値２０と固定値４４が入力され、一致信号伝達有無レジスタ群２７の一番上のレジスタに保持されている選択値‘０’によって固定値４４の‘１’が選択される。セル３ｂの一致信号伝達セレクタ２８には隣セルの一致信号１１ａと固定値４４が入力され、一致信号伝達有無レジスタ群２７の一番上のレジスタに保持されている選択値‘０’によって固定値４４の‘１’が選択される。セル３ｃの一致信号伝達セレクタ２８には隣セルの一致信号１１ｂと固定値４４が入力され、一致信号伝達有無レジスタ群２７の一番上のレジスタに保持されている選択値‘０’によって固定値４４の‘１’が選択される。セル３ｄの一致信号伝達セレクタ２８には隣セルの一致信号１１ｃと固定値４４が入力され、一致信号伝達有無レジスタ群２７の一番上のレジスタに保持されている選択値‘０’によって固定値４４の‘１’が選択される。
【００３０】
続いてセル３ａの論理積ゲート２９には一致信号伝達セレクタ２８の出力４３の‘１’と比較器２５の出力‘０’が入力されて出力１１ａは‘０’になり、セル３ｂの論理積ゲート２９には一致信号伝達セレクタ２８の出力４３の‘１’と比較器２５の出力‘１’が入力されるため出力１１ｂは‘１’になり、セル３ｃの論理積ゲート２９には一致信号伝達セレクタ２８の出力４３の‘１’と比較器２５の出力‘０’が入力されるため出力１１ｃは‘０’になり、セル３ｄの論理積ゲート２９には一致信号伝達セレクタ２８の出力４３の‘１’と比較器２５の出力‘０’が入力されるため出力１１ｄは‘０’になる。
【００３１】
続いて、セル３ａの論理積ゲート２９の出力１１ａはセル出力選択手段３０に入力され、次ステートレジスタ群２６の一番上のレジスタに保持されている次ステート‘Ｓ０’と固定値４５‘０’のうち固定値４５を選択し次ステート１２ａとして‘０’を出力する。セル３ｂの論理積ゲート２９の出力１１ｂはセル出力選択手段３０に入力され、次ステートレジスタ群２６の一番上のレジスタに保持されている次ステート‘Ｓ１’と固定値４５‘０’のうち次ステートを選択し次ステート１２ａとして‘Ｓ１’を出力する。セル３ｃの論理積ゲート２９の出力１１ｃはセル出力選択手段３０に入力され、次ステートレジスタ群２６の一番上のレジスタに保持されている次ステート‘Ｓ２’と固定値４５‘０’のうち固定値４５を選択し次ステート１２ｃとして‘０’を出力する。セル３ｄの論理積ゲート２９の出力１１ｄはセル出力選択手段３０に入力され、次ステートレジスタ群２６の一番上のレジスタに保持されている次ステート‘Ｓ３’と固定値４５‘０’のうち固定値４５を選択し次ステート１２ｄとして‘０’を出力する。
【００３２】
各セルから出力された一致信号１１ａ〜１１ｄと次ステート１２ａ〜１２ｄは、それぞれ、一致信号用論理和回路４とステート用論理和回路５に入力され、一致信号用論理和回路４の出力１３は‘１’、ステート用論理和回路５の出力１４は‘Ｓ１’となる。ステート用論理和回路５の出力１４の‘Ｓ１’と、不一致用次ステートレジスタ群６のうち選択された一番上のレジスタに保持されている次ステート１５の“ＥＸＩＴ”が次ステート出力用セレクタ８に入力され、一致信号用論理和回路４の出力１３‘１’によってステート用論理和回路５の出力１４が選択され、最終的なステート出力（次ステート）２１として‘Ｓ１’が出力される。次ステート２１は、次の演算用の現ステートとして現ステートレジスタ２に格納される。
【００３３】
次に、図６を用いて、図４の構成例において現ステートがＳ１のときの動作を説明する。尚、図３の説明において記載したように、現ステートがＳ１のときの条件式が成立する比較対象値のパタンは９通りあり、１つのセルで比較できる最大ビット数を４ビットとすると全部で１８個のセルが必要である。従って、図６においてセル３ａ〜３ｄの４個のみ示しているが、実際にはセル３ａ〜３ｒまでの１８個が存在しているものとして説明する。
【００３４】
現ステートレジスタ２から現ステート９としてＳ１を示す値が各セルの各レジスタ群２２，２４，２６，２７に入力され、各レジスタ群においてＳ１用の設定が保持されている上から２番目のレジスタが選択される。入力データ１０として、１ビットのフラグａ〜ｈを連結した８ビットのデータである８’ｂ１０１１０１００（ａ＝１、ｂ＝０、ｃ＝１、ｄ＝１、ｅ＝０、ｆ＝１、ｇ＝０、ｈ＝０）が各セルのビット選択器２３に入力される。
【００３５】
ここで、１つのセルで比較できる最大ビット数を４ビットとすると、８ビットの比較は２つのセルを用いて実行することになる。ここでは、左から偶数番目のセル（０番目：セル３ａ、２番目：セル３ｃ、４番目：セル３ｅ、６番目：セル３ｇ、８番目：セルｉ、１０番目：セル３ｋ、１２番目：セル３ｍ、１４番目：セル３ｏ、１６番目：セルｑ）で上位４ビット（４’ｂ１０１１）の比較を行い、左から奇数番目のセル（１番目：セル３ｂ、３番目：セル３ｄ、５番目：セル３ｆ、７番目：セル３ｈ、９番目：セル３ｊ、１１番目：セル３ｌ、１３番目：セル３ｎ、１５番目：セル３ｐ、１７番目：セル３ｒ）で下位８ビット（４’ｂ０１００）の比較を行う。
【００３６】
各ビット選択器２３は、ビット選択レジスタ群２２のうち選択された上から二番目のレジスタの選択値３６に従って、比較器２５へ供給するデータ３７を入力データ１０から選択し出力する。即ち、セル３ａ、セル３ｃのビット選択器２３は、上位４ビットの４’ｂ１０１１を選択し、セル３ｂ、セル３ｄのビット選択器２３は、下位４ビットの４’ｂ０１００を選択し、ビット選択器出力３７として出力する。現ステート９によって比較対象値レジスタ群２４から上から二番目のレジスタに保持されている比較対象値３８が選択出力され、ビット選択器２３の出力３７と比較器２５によって一致比較される。このとき、セル３ａの比較器２５では比較対象値３８の「４’ｂ０１１０」とビット選択器出力３７の「４’ｂ１０１１」が比較されるため一致せず現セル一致信号３９は‘０’となる。また、セル３ｂの比較器２５では比較対象値３８の「４’ｂ１１００」とビット選択器出力３７の「４’ｂ０１００」が比較されるため一致せず現セル一致信号３９は‘０’となる。更に、セル３ｃの比較器２５では比較対象値３８の「４’ｂ１０１１」とビット選択器出力３７の「４’ｂ１０１１」が比較されるため一致し現セル一致信号３９は‘１’となる。また、セル３ｄの比較器２５では比較対象値３８の「４’ｂ０１００」とビット選択器出力３７の「４’ｂ０１００」が比較されるため一致し現セル一致信号３９は‘１’となる。
【００３７】
また、セル３ａの一致信号伝達セレクタ２８には固定値２０と固定値４４が入力され、一致信号伝達有無レジスタ群２７の上から二番目のレジスタに保持されている選択値‘０’によって固定値４４の‘１’が選択され、論理積ゲート２９によって一致信号伝達セレクタ２８の出力４３‘１’と比較器２５の出力３９‘０’の論理積が演算され現セル一致信号１１ａとして‘０’が出力される。続いてセル３ｂの一致信号伝達セレクタ２８には隣セルの一致信号１１ａと固定値４４が入力され、一致信号伝達有無レジスタ群２７の上から二番目のレジスタに保持されている選択値‘１’によって隣セルの一致信号１１ａの‘０’が選択され、論理積ゲート２９によって一致信号伝達セレクタ２８の出力４３‘０’と比較器２５の出力３９‘０’の論理積が演算され現セル一致信号１１ｂとして‘０’が出力される。同様に、セル３ｃの一致信号伝達セレクタ２８には隣セルの一致信号１１ｂと固定値４４が入力され、一致信号伝達有無レジスタ群２７の上から二番目のレジスタに保持されている選択値‘０’によって固定値４４の‘１’が選択され、論理積ゲート２９によって一致信号伝達セレクタ２８の出力４３‘１’と比較器２５の出力３９‘１’の論理積が演算され現セル一致信号１１ｃとして‘１’が出力される。続いてセル３ｄの一致信号伝達セレクタ２８には隣セルの一致信号１１ｃと固定値４４が入力され、一致信号伝達有無レジスタ群２７の上から二番目のレジスタに保持されている選択値‘１’によって隣セルの一致信号１１ｃの‘１’が選択され、論理積ゲート２９によって一致信号伝達セレクタ２８の出力４３‘１’と比較器２５の出力３９‘１’の論理積が演算され現セル一致信号１１ｄとして‘１’が出力される。
【００３８】
続いて、セル３ａの論理積ゲート２９の出力１１ａはセル出力選択手段３０に入力され、次ステートレジスタ群２６の上から二番目のレジスタに保持されている次ステート‘０’と固定値４５‘０’のうち固定値４５を選択し次ステート１２ａとして‘０’を出力する。セル３ｂの論理積ゲート２９の出力１１ｂはセル出力選択手段３０に入力され、次ステートレジスタ群２６の上から二番目のレジスタに保持されている次ステート‘Ｓ２’と固定値４５‘０’のうち固定値４５を選択し次ステート１２ａとして‘０’を出力する。セル３ｃの論理積ゲート２９の出力１１ｃはセル出力選択手段３０に入力され、次ステートレジスタ群２６の上から二番目のレジスタに保持されている次ステート‘０’と固定値４５‘０’のうち次ステート‘０’を選択し次ステート１２ｃとして‘０’を出力する。セル３ｄの論理積ゲート２９の出力１１ｄはセル出力選択手段３０に入力され、次ステートレジスタ群２６の上から二番目のレジスタに保持されている次ステート‘Ｓ２’と固定値４５‘０’のうち次ステート‘Ｓ２’を選択し次ステート１２ｄとして‘Ｓ２’を出力する。
【００３９】
各セルから出力された一致信号１１ａ〜１１ｄと次ステート１２ａ〜１２ｄは、それぞれ、一致信号用論理和回路４とステート用論理和回路５に入力され、一致信号用論理和回路４の出力１３は‘１’、ステート用論理和回路５の出力１４は‘Ｓ２’となる。ステート用論理和回路５の出力１４‘Ｓ２’と、不一致用次ステートレジスタ群６のうち選択された上から二番目のレジスタに保持されている次ステート１５“Ｓ１”が次ステート出力用セレクタ８に入力され、一致信号用論理和回路４の出力１３‘１’によってステート用論理和回路５の出力１４が選択され、最終的な次ステート２１として‘Ｓ２’が出力される。次ステート２１は、次の演算用の現ステートとして現ステートレジスタ２に格納される。
【００４０】
このように、この発明のシーケンス制御回路１は、遷移先が多岐にわたる状態遷移や、遷移条件が多ビットにわたる状態遷移等の複雑な状態遷移であっても、同一回路上でプログラマブルに実現可能である。また、各ステートでの条件比較を複数のセル３で並列に実行可能であるため、１クロックで高速に次ステートを決定することが可能である。
【００４１】
尚、上記例では現ステートがＳ１の場合にセルを１８個並列に用いて比較を行う場合について説明したが、１８個より少ないセル数で実現することも可能である。以下に、その方法について説明する。
図７は、図３に示したステートマシンを変形し、４個のセルで実現できるようにしたステートマシンの例である。図３においてステートＳ１からの遷移条件が８ビット分のフラグであったところを４ビットずつに分解し、ステートＳ１−１とＳ１−２の二段階で条件比較を行う。ステートＳ１−１では、｛（ａ＝１）｜（ｂ＝１）｝＆（ｃ＝１）＆（ｆ＝１）が成立する比較対象パタンとして以下の３通りの比較を行えばよく、４ビットの比較を３つのセルを用いて行うことができる。
・ａ＝１、ｂ＝１、ｃ＝１、ｆ＝１
・ａ＝１、ｂ＝０、ｃ＝１、ｆ＝１
・ａ＝０、ｂ＝１、ｃ＝１、ｆ＝１
【００４２】
また、ステートＳ１−２では、｛（ｄ＝１）｜（ｅ＝１）｝＆（ｇ＝０）＆（ｈ＝０）が成立する比較対象パタンとして以下の３通りの比較を行えばよく、４ビットの比較を３つのセルを用いて行うことができる。
・ｄ＝１、ｅ＝１、ｇ＝０、ｈ＝０
・ｄ＝１、ｅ＝０、ｇ＝０、ｈ＝０
・ｄ＝０、ｅ＝１、ｇ＝０、ｈ＝０
このとき、各レジスタ群には、それぞれステートの個数分、即ち、Ｓ０、Ｓ１−１、Ｓ１−２、Ｓ２、Ｓ３用の５個のレジスタが必要となるが、４個のセルで実現可能となる。
【００４３】
以上のように、実施の形態１のシーケンス制御回路１によれば、現ステートを保持する現ステートレジスタ２と、入力データ１０と保持する比較対象値とを比較することにより、比較が一致したことを通知するための一致信号１１ａ〜１１ｄと次ステート１２ａ〜１２ｄとを得る複数のセル３ａ〜３ｄと、複数のセル３ａ〜３ｄの出力である一致信号１１ａ〜１１ｄの論理和を得る一致信号用論理和回路４と、複数のセル３ａ〜３ｄの出力である次ステート１２ａ〜１２ｄの論理和を得るステート用論理和回路５と、複数のセル３ａ〜３ｄで比較が一致しなかった場合に出力する次ステートを保持する複数のレジスタを持つ不一致用次ステートレジスタ群６と、不一致用次ステートレジスタ群６からレジスタを選択する不一致用次ステートセレクタ７と、一致信号用論理和回路４の出力によりステート用論理和回路５の出力と不一致用次ステートセレクタ７の出力を選択する次ステート出力用セレクタ８とを備え、各セル３ａ〜３ｄは、任意のビット位置とビット数の選択値を保持する複数のレジスタを持つビット選択レジスタ群２２と、ビット選択レジスタ群２２の選択されたレジスタのビット位置とビット数の選択値に従って入力データ１０から対応するビット位置とビット数の比較データを選択するビット選択器２３と、比較対象値を保持する複数のレジスタを持つ比較対象レジスタ群２４と、ビット選択器２３で選択された比較データと比較対象レジスタ群２４の選択されたレジスタの比較対象値とを比較し、両者が一致した際に現セル一致信号を出力する比較器２５と、比較対象レジスタ群２４で保持する比較対象値に対応する次ステートを保持する複数のレジスタを持つ次ステートレジスタ群２６と、複数のセル３ａ〜３ｄにおける隣セルの一致信号を取り込むかどうかの選択値を保持する複数のレジスタを持つ一致信号伝達有無レジスタ群２７と、一致信号伝達有無レジスタ群２７の選択されたレジスタの値に基づいて隣セルの一致信号かまたは固定値‘１’を選択する一致信号伝達セレクタ２８と、比較器２５から出力される現セル一致信号と一致信号伝達セレクタ２８の出力に基づいて一致信号を生成する論理積ゲート２９と、生成された一致信号に基づいて次ステートレジスタ群２６の選択されたレジスタの次ステートか、または固定値‘0’を自セルの次ステートとするセル出力選択手段３０と、現ステートレジスタ２の値に基づいて各レジスタ群のそれぞれのレジスタを選択し、その保持するデータを出力するそれぞれのレジスタ選択手段３１，３２，３３，３４とを有し、セル出力選択手段３０によって選択された次ステートを、次の現ステートとして現ステートレジスタ２にフィードバックするようにしたので、様々なデータパス回路の制御に対応可能なシーケンス制御回路を得ることができる。また、複数のデータパス回路を備えた装置において、実施の形態１のシーケンス制御回路を用いることにより、シーケンス制御回路の共有化を行うことができるため、小型化、かつ低消費電力化を可能にする効果がある。
【００４４】
また、実施の形態１のシーケンス制御回路１によれば、不一致用次ステートレジスタ群６と、各セル３ａ〜３ｄ内のビット選択レジスタ群２２と、比較対象レジスタ群２４と、次ステートレジスタ群２６と、一致信号伝達有無レジスタ群２７は、それぞれが備える複数のレジスタに対し、外部より入力されるコンフィグレーションデータ１７を書き込むことが可能であり、かつ、コンフィグレーションデータ１７と同時に入力されるレジスタ指定アドレス信号１８に基づいて不一致用次ステートレジスタ群６か各セル３ａ〜３ｄのレジスタかを指定するアドレスを示すセル内レジスタ指定アドレス信号１９を生成する共通アドレスデコーダ１６と、セル内レジスタ指定アドレス信号１９に基づいて各セル３ａ〜３ｄ内のそれぞれのレジスタを指定するアドレスを生成するセル内アドレスデコーダ３５とを備えたので、制御するデータパス回路が変更されてもコンフィグレーションデータの入れ替えによりシーケンス制御を変更可能であり、様々なデータパス回路の制御に対応可能となる効果がある。
【００４５】
実施の形態２．
図８はこの発明のシーケンス制御回路を用いた制御回路の構成を示すブロック図である。
制御回路４６は、シーケンス制御回路１と、データパス回路４８への制御信号を生成する制御信号生成部４７から構成される。
先ず、シーケンス制御回路１は、制御動作を開始する前に外部よりコンフィグレーションデータ１７とレジスタ指定アドレス信号１８が入力され、データパス回路４８のシーケンス制御用の回路として構成される。制御動作開始後は、シーケンス制御回路１は入力データ１０によってステート出力２１を決定し、制御信号生成部４７に出力する。制御信号生成部４７は、ステート出力２１に従って制御信号４９を生成し、データパス回路４８を制御する。
シーケンス制御回路１は、コンフィグレーションデータ１７を書きかえることによって様々なシーケンス制御を実現可能であり、制御信号生成部４７とデータパス回路４８の変更にも対応可能である。また、データパス回路４８が動的再構成可能な回路である場合、制御信号生成部４７も動的再構成可能な回路により実装することで、動的再構成可能な制御回路として構成することが可能である。
【００４６】
以上のように、実施の形態２の制御回路４６によれば、実施の形態１のシーケンス制御回路１と、シーケンス制御回路１によって決定されたステートに従って制御信号を生成する制御信号生成部４７を備えたので、様々なデータパス回路４８の制御に対応可能な制御回路を実現することができる。
【００４７】
また、実施の形態２の制御回路４６によれば、制御信号生成部４７を動的再構成可能な回路により構成したので、動的再構成可能な制御回路を実現することができる。
【００４８】
実施の形態３．
図９はこの発明のシーケンス制御回路を用いた制御回路の構成を示すブロック図である。
制御回路４６は、シーケンス制御回路１と、複数のデータパス回路４８ａ〜４８ｚへの制御信号をそれぞれ生成する複数の制御信号生成部４７ａ〜４７ｚと、シーケンス制御回路１の出力であるステート出力２１の接続先を選択するスイッチ５０から構成される。尚、複数の制御信号生成部４７ａ〜４７ｚ及びデータパス回路４８ａ〜４８ｚの設置数は任意の数である。
【００４９】
先ず、シーケンス制御回路１は、制御動作を開始する前に外部よりコンフィグレーションデータ１７とレジスタ指定アドレス信号１８が入力され、データパス回路４８ａ〜４８ｚのシーケンス制御用の回路として構成される。制御動作開始後、シーケンス制御回路１は入力データ１０によってステート出力２１を決定しスイッチ５０に出力する。制御するデータパス回路４８ａ〜４８ｚに対応した制御信号生成部４７ａ〜４７ｚへステート出力２１が入力されるように、制御先選択信号５２をスイッチ５０に入力する。即ち、データパス回路４８ａ用の制御回路を構成する場合はステート出力２１の接続先が信号線５１ａとなるような制御先選択信号５２をスイッチ５０へ入力し、データパス４８ｂ用の制御回路を構成する場合はステート出力２１の接続先が信号線５１ｂとなるような制御先選択信号５２をスイッチ５０へ入力し、以下同様に、データパス４８ｚ用の制御回路を構成する場合はステート出力２１の接続先が信号線５１ｚとなるような制御先選択信号５２をスイッチ５０へ入力する。
【００５０】
スイッチ５０によりステート出力２１が接続された制御信号生成部４７ａ〜４７ｚは、ステート出力２１に従って制御信号４９ａ〜４９ｚを生成し、データパス回路４８ａ〜４８ｚを制御する。予め、シーケンス制御回路１に複数のデータパス回路用のコンフィグレーションデータ１７を入力すれば、制御先選択信号５２を動的に切り替えることで、複数のデータパス回路間で制御回路をタイムシェアリングすることが可能となる。
【００５１】
以上のように、実施の形態３の制御回路によれば、実施の形態１のシーケンス制御回路１と、シーケンス制御回路１によって決定されたステートに従って制御信号を生成する複数の制御信号生成部４７ａ〜４７ｚと、これら複数の制御信号生成部４７ａ〜４７ｚのうち、ステートを入力する制御信号生成部４７ａ〜４７ｚを選択するスイッチ５０とを備えたので、スイッチ５０によりシーケンス制御回路１のステートを入力する制御信号生成部４７ａ〜４７ｚを動的に切り替えることにより、複数のデータバス回路４８ａ〜４８ｚ間で制御回路をタイムシェアリングすることができる。
【符号の説明】
【００５２】
１  シーケンス制御回路、２  現ステートレジスタ、３ａ〜３ｄ  セル、４  一致信号用論理和回路、５  ステート用論理和回路、６  不一致用次ステートレジスタ群、７  不一致用次ステートセレクタ（ＭＵＸ）、８  次ステート出力用セレクタ（ＭＵＸ）、９  現ステート、１０  入力データ、１１ａ〜１１ｄ  一致信号、１２ａ〜１２ｄ  次ステート、１３，１４，１５，４３  出力、１６  共通アドレスデコーダ、１７  コンフィグレーションデータ、１８  レジスタ指定アドレス信号、１９  セル内レジスタ指定アドレス信号、２０，４４，４５  固定値、２１  ステート出力、２２  ビット選択レジスタ群、２３  ビット選択器、２４  比較対象レジスタ群、２５  比較器、２６  次ステートレジスタ群、２７  一致信号伝達有無レジスタ群、２８  一致信号伝達セレクタ（ＭＵＸ）、２９  論理積ゲート、３０  セル出力選択手段（ＭＵＸ）、３１，３２，３３，３４  レジスタ選択手段（ＭＵＸ）、３５  セル内アドレスデコーダ、３６  選択値、３７  比較データ、３８  比較対象値、３９  現セル一致信号、４０  選択値、４１  選択されたレジスタの次ステート、４２  セル内のアドレス信号、４６  制御回路、４７，４７ａ〜４７ｚ  制御信号生成部、４８，４８ａ〜４８ｚ  データパス回路、４９，４９ａ〜４９ｚ  制御信号、５０  スイッチ、５１ａ〜５１ｚ  信号線、５２  制御先選択信号。
【図１】
2011070502.tif 000003
【図２】
2011070502.tif 000004
【図３】
2011070502.tif 000005
【図４】
2011070502.tif 000006
【図５】
2011070502.tif 000007
【図６】
2011070502.tif 000008
【図７】
2011070502.tif 000009
【図８】
2011070502.tif 000010
【図９】
2011070502.tif 000011