(57)【要約】【課題】安全性と高速性を両立できるステートマシンを提供する。【解決手段】状態保持部２は、動作開始トリガ信号「IO_RD」が入力されていない場合には第１の状態に、動作開始トリガ信号「IO_RD」が入力されている場合には第２の状態に、それぞれ状態を設定する。制御信号出力部３は、設定されている状態が現在まで第１の状態にあり、かつ動作開始トリガ信号「IO_RD」が現在入力されているという条件が成立している場合に限り、出力信号「RD_ENB1」を出力する。状態保持部２は、クロックをトリガとして状態を設定し、制御信号出力部３は、当該クロックをトリガとして上記条件を判定する。【選択図】図１
2008252164.tif 000002
【特許請求の範囲】
【請求項１】
動作開始トリガ信号を受けて出力信号を出力するステートマシンにおいて、
前記動作開始トリガ信号が入力されていない場合には第１の状態に、前記動作開始トリガ信号が入力されている場合には第２の状態に、それぞれ状態を設定する状態設定手段と、
前記状態設定手段により設定されている前記状態が現在まで前記第１の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件が成立している場合に限り、前記出力信号を出力する出力制御手段と、
前記状態設定手段および前記出力制御手段の動作をクロック同期させる同期手段と、
を備え、
前記状態設定手段は、前記同期手段のクロックをトリガとして前記状態を設定し、前記出力制御手段は、当該クロックをトリガとして前記条件を判定するとともに前記出力信号を出力することを特徴とするステートマシン。
【請求項２】
前記出力制御手段は、フリップフロップを使用した順序回路により構成されていることを特徴とする請求項１または２に記載のステートマシン。
【請求項３】
前記出力制御手段は、組合せ回路により前記条件を判定することを特徴とする請求項１または２に記載のステートマシン。
【請求項４】
動作開始トリガ信号を受けて出力信号を出力するステートマシンにおいて、
前記動作開始トリガ信号が入力されていない場合には第１の状態に、前記動作開始トリガ信号が入力されている場合には第２の状態に、それぞれ状態を前記動作開始トリガ信号より遅延させたタイミングで設定する状態設定手段と、
前記状態設定手段により設定されている前記状態が現在まで前記第１の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件の成立の有無を組合せ回路で判定し、前記条件が成立していれば判定と同時に前記出力信号を出力する出力制御手段と、
を備えることを特徴とするステートマシン。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作開始トリガ信号を受けて出力信号を出力するステートマシンに関し、とくに安全性を考慮したステートマシンに関する。
【背景技術】
【０００２】
図５（ａ）は従来のステートマシンの状態遷移パターンを示す図、図５（ｂ）は従来のステートマシンの構成を示すブロック図、図６は従来のステートマシンの回路例を示す図である。
【０００３】
図５（ａ）に示すように、従来のステートマシンでは、非活性的なアイドルステート「STATE_IDLE」、活性的なステート「STATE_READ」および活性的なステート「STATE_ACK」という３つの状態が設けられている。図５（ｂ）に示すように、一般的にステートマシンは、組合せ回路からなる状態決定部１０１、順序回路からなる状態保持部１０２、および組合せ回路からなる制御信号出力部１０３により構成される。図６に示す回路例では、ＡＮＤ回路１６が状態決定部１０１を、フリップフロップ２６およびフリップフロップ２７が状態保持部１０２を、ＮＯＴ回路３６およびＡＮＤ回路３７が制御信号出力部１０３を、それぞれ構成している。状態保持部１０２のフリップフロップ出力を制御信号出力部１０３の組合せ回路に入力することで、制御信号出力部１０３から出力信号「RD_ENB」を取り出している。図７は従来のステートマシンの動作を示すタイミングチャートである。動作開始トリガ信号「IO_RD」がオンしている間、ステートマシンの状態は、クロック（CLK）の立ち上がりをトリガとして、ステート「STATE_IDLE」→ステート「STATE_READ」→ステート「STATE_ACK」の順に遷移する。
【特許文献１】特開平５−２８２３９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、従来のステートマシンでは、状態保持部１０２のフリップフロップ２６およびフリップフロップ２７でレーシング（同時遷移）が発生した場合、制御信号出力部１０３を構成するＡＮＤ回路３７からの出力信号「RD_ENB」にグリッチ（不正パルス）が発生する可能性がある（図７）。このため、出力信号「RD_ENB」を後段に伝達する前にグリッジを除去するための順序回路１０４（図５（ｂ））を設け、クロック「CLK」により同期を取り直し出力信号「RD_ENB´」を生成することで、安全性を高めている。しかしながら、出力信号の伝達時間は、グリッジ除去のために１クロック分遅延することになる。
【０００５】
本発明の目的は、安全性と高速性を両立できるステートマシンを提供することにある。
【課題を解決するための手段】
【０００６】
本発明のステートマシンは、動作開始トリガ信号を受けて出力信号を出力するステートマシンにおいて、前記動作開始トリガ信号が入力されていない場合には第１の状態に、前記動作開始トリガ信号が入力されている場合には第２の状態に、それぞれ状態を設定する状態設定手段と、前記状態設定手段により設定されている前記状態が現在まで前記第１の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件が成立している場合に限り、前記出力信号を出力する出力制御手段と、前記状態設定手段および前記出力制御手段の動作をクロック同期させる同期手段と、を備え、前記状態設定手段は、前記同期手段のクロックをトリガとして前記状態を設定し、前記出力制御手段は、当該クロックをトリガとして前記条件を判定するとともに前記出力信号を出力することを特徴とする。
このステートマシンによれば、状態設定手段により設定されている前記状態が現在まで前記第１の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件が成立すれば同時に出力信号を出力するので、動作の高速性を獲得できる。また、フリップフロップのレーシングを避けることができるため、安全性を確保できる。
【０００７】
前記出力制御手段は、フリップフロップを使用した順序回路により構成されていてもよい。
【０００８】
前記出力制御手段は、組合せ回路により前記条件を判定してもよい。
【０００９】
本発明のステートマシンは、動作開始トリガ信号を受けて出力信号を出力するステートマシンにおいて、前記動作開始トリガ信号が入力されていない場合には第１の状態に、前記動作開始トリガ信号が入力されている場合には第２の状態に、それぞれ状態を前記動作開始トリガ信号より遅延させたタイミングで設定する状態設定手段と、前記状態設定手段により設定されている前記状態が現在まで前記第１の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件の成立の有無を組合せ回路で判定し、前記条件が成立していれば判定と同時に前記出力信号を出力する出力制御手段と、を備えることを特徴とする。
このステートマシンによれば、状態設定手段により設定されている前記状態が現在まで前記第１の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件が成立すれば同時に出力信号を出力するので、動作の高速性を獲得できる。また、フリップフロップのレーシングを避けることができるため、安全性を確保できる。
【発明の効果】
【００１０】
本発明のステートマシンによれば、状態設定手段により設定されている前記状態が現在まで前記第１の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件が成立すれば同時に出力信号を出力するので、動作の高速性を獲得できる。また、フリップフロップのレーシングを避けることができるため、安全性を確保できる。
【発明を実施するための最良の形態】
【００１１】
以下、図１〜図４を参照して、本発明によるステートマシンの一実施形態について説明する。
【００１２】
図１（ａ）は本実施形態のステートマシンの状態遷移パターンを示す図である。
【００１３】
図１（ａ）に示すように、本実施形態のステートマシン１００では、従来のステートマシンにおける状態遷移パターンからアイドルステート「STATE_IDLE」を削除し、ステート「STATE_READ」およびステート「STATE_ACK」のみからなる状態遷移パターンとしている。
【００１４】
図１（ｂ）は、本実施形態のステートマシン１００の構成を示すブロック図、図２は、ステートマシン１００の回路例を示す図である。
【００１５】
図１（ｂ）に示すように、本実施形態のステートマシン１００は、組合せ回路からなる状態決定部１と、順序回路からなる状態保持部２と、組合せ回路３ａおよび順序回路３ｂからなる制御信号出力部３とにより構成される。図２に示す回路例では、動作開始トリガ信号「IO_RD」の入力線１１が状態決定部１を、フリップフロップ２１が状態保持部２を、ＡＮＤ回路３２が制御信号出力部３の組合せ回路３ａを、フリップフロップ３３およびフリップフロップ３４が制御信号出力部３の順序回路３ｂを、それぞれ構成している。
【００１６】
また、動作開始トリガ信号「IO_RD」、クロック「CLK」およびリセット信号「RESET」は、それぞれ入力バッファ５を介してステートマシン１００に入力される。ステートマシン１００から出力される出力信号「ACK」および出力信号「RD_ENB´」は、出力バッファ６を介して後段に与えられる。
【００１７】
本実施形態のステートマシン１００において、状態決定部１および状態保持部２は状態設定手段を、制御信号出力部３は出力制御手段を、クロック「CLK」の入力線７（図１（ｂ）および図２）は同期手段を、それぞれ構成する。
【００１８】
図３（ａ）は、本実施形態のステートマシン１００の動作を示すタイミングチャートである。ステートマシン１００は、動作開始トリガ信号「IO_RD」を受け、クロック「CLK」の立ち上がりをトリガとして、状態を遷移させるとともに、出力信号「RD_ENB」および出力信号「RD_ENB1」を生成する。
【００１９】
図３（ａ）に示すように、動作開始トリガ信号「IO_RD」＝０の間、ステートマシン１００は、ステート「STATE_READ」で待機する（時刻Ｔ１）。ステート「STATE_READ」では出力信号「RD_ENB」＝１であり、この信号をそのまま出力すれば動作不正となる。この動作不正を回避するため、ステートマシン１００では、動作開始トリガ信号「IO_RD」を条件式として制御信号出力部３の組合せ回路３ａ（ＡＮＤ回路３２）にも加えている。このため、動作開始トリガ信号「IO_RD」＝０の間、出力信号「RD_ENB1」＝０に維持される。
【００２０】
動作開始トリガ信号「IO_RD」＝１になると、クロック「CLK」の立ち上がりをトリガとしてステート「STATE_ACK」に遷移し、出力信号「RD_ENB」＝０となる。また、動作開始トリガ信号「IO_RD」＝１であれば、クロック「CLK」の立ち上がり時におけるＡＮＤ回路３２の出力レベルは１であるから、順序回路３ｂのフリップフロップ３４から出力される出力信号「RD_ENB1」のレベルは、１となる（時刻Ｔ２）。
【００２１】
次に、動作開始トリガ信号「IO_RD」＝１であっても、出力信号「RD_ENB」＝０であれば、ＡＮＤ回路３２の出力レベルは０であるから、出力信号「RD_ENB1」のレベルは、０となる（時刻Ｔ３）。動作開始トリガ信号「IO_RD」＝０となれば、ステート「STATE_READ」に戻り、出力信号「RD_ENB」＝１となる（時刻Ｔ４）。
【００２２】
このように、ステートマシン１００では、動作開始トリガ信号「IO_RD」＝１になると、クロック「CLK」をトリガとして出力信号「RD_ENB1」のレベルを１としている（時刻Ｔ２）。このため、従来のステートマシンと比較して、１クロック分、出力信号の伝達時間を短縮できる。
【００２３】
また、フリップフロップ３４によるクロック同期を経て、出力信号「RD_ENB1」を出力するので、出力信号「RD_ENB」のグリッチを除去することもできる。図３（ｂ）の例では、直前（１クロック分前）に発生した出力信号「RD_ENB」のグリッチが除去され、出力信号「RD_ENB1」にグリッチは現れていない。このため安全性も確保できる。
【００２４】
このように、本実施形態のステートマシン１００によれば、活性的なステートからの動作開始であっても、従来と同様の状態遷移パターンで出力信号を制御できる。また、ステート数を減らした分（１クロック分）、出力信号の伝達時間を短縮できる。
【００２５】
但し、ステートマシン１００では、動作開始トリガ信号「IO_RD」を状態決定部１および制御信号出力部３の２箇所に入力している（図１（ｂ）および図２）。このため、入力される信号の同期が確保されていない場合には、信号の配線遅延時間によりステートマシンの安全性を損なうことになる。したがって、リセット信号「RESET」を除くステートマシン１００への入力信号がクロック「CLK」に同期し、かつ、配線遅延時間がフリップフロップのセットアップ・ホールド特性を満足することが必要となる。
【００２６】
図４は、本発明によるステートマシンにより、ホスト・スレーブ型バスインタフェースの調停を行うシステムを例示するブロック図である。この例では、ＭＰＵ（マイクロプロセッシングユニット）７１から、コンパクトフラッシュ（登録商標）等のスレーブデバイス７２に渡す制御信号のタイミングを、ＰＬＤ７３（プログラマブルロジックデバイス）を用いて調停する。ここでは、動作開始トリガ信号に相当するＭＰＵ７１からの制御信号（制御信号ｃｓ、制御信号ｒｄ、制御信号ｗｒ等）を一旦、ＰＬＤ７３に取り込み、アドレスデータや各種制御信号のセットアップ・ホールドタイムの確保、ウェイトタイムの確保など、スレーブデバイス７２の都合に合わせて制御信号（制御信号ｃｆ＿ｃｓ、制御信号ｃｆ＿ｒｄ、制御信号ｃｆ＿ｗｒ等）を出力するためのタイミングを制御するために、ステートマシン２００を使用している。また、ステートマシン２００を用いて、スレーブデバイス７２からの応答信号（信号ｗａｉｔ、信号ａｃｋ等）のタイミングの調停を行っている。
【００２７】
このようなホスト・スレーブ型バスインタフェースの調停を行う場合、通常では従来のステートマシン（図５〜図７）により、速度を犠牲にして安全性の高い設計を行うが、本発明によるステートマシン２００を使用することで、安全性を確保しつつ速度低下を回避可能となる。
【００２８】
本発明によるステートマシンは、ＰＬＤが介在するメモリアクセスや、ＰＣＩ（ペリフェラル・コンポーネント・インターコネクト）、ＩＳＡ（インダストリアル・スタンダード・アーキテクチャ）などのバスインタフェースにも適用可能である。
【００２９】
以上説明したように、本発明によるステートマシンによれば、状態設定手段により設定されている前記状態が現在まで前記第１の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件が成立すれば同時に出力信号を出力するので、動作の高速性を獲得できる。また、フリップフロップのレーシングを避けることができるため、安全性を確保できる。
【００３０】
本発明の適用範囲は上記実施形態に限定されることはない。本発明は、動作開始トリガ信号を受けて出力信号を出力するステートマシンに対し、広く適用することができる。
【図面の簡単な説明】
【００３１】
【図１】本実施形態のステートマシンの状態遷移パターンおよび構成を示す図であり、（ａ）は状態遷移パターンを示す図、（ｂ）は、ステートマシンの構成を示すブロック図。
【図２】本実施形態のステートマシンの回路例を示す図。
【図３】本実施形態のステートマシンの動作を示す図であり、（ａ）は、ステートマシンの動作を示すタイミングチャート、（ｂ）はグリッチが発生した場合の動作を示すタイミングチャート。
【図４】本発明によるステートマシンにより、ホスト・スレーブ型バスインタフェースの調停を行うシステムを例示するブロック図。
【図５】従来のステートマシンの状態遷移パターンおよび構成を示す図であり、（ａ）は状態遷移パターンを示す図、（ｂ）は、ステートマシンの構成を示すブロック図。
【図６】従来のステートマシンの回路例を示す図。
【図７】従来のステートマシンの動作を示すタイミングチャート。
【符号の説明】
【００３２】
１      状態決定部（状態設定手段）
２      状態保持部（状態設定手段）
３      制御信号出力部（出力制御手段）
３ａ    組合せ回路（出力制御手段の組合せ回路）
７      入力線（同期手段）
【図１】
2008252164.tif 000003
【図２】
2008252164.tif 000004
【図３】
2008252164.tif 000005
【図４】
2008252164.tif 000006
【図５】
2008252164.tif 000007
【図６】
2008252164.tif 000008
【図７】
2008252164.tif 000009