JP2008252164A - ステートマシン - Google Patents
ステートマシン Download PDFInfo
- Publication number
- JP2008252164A JP2008252164A JP2007087099A JP2007087099A JP2008252164A JP 2008252164 A JP2008252164 A JP 2008252164A JP 2007087099 A JP2007087099 A JP 2007087099A JP 2007087099 A JP2007087099 A JP 2007087099A JP 2008252164 A JP2008252164 A JP 2008252164A
- Authority
- JP
- Japan
- Prior art keywords
- state
- operation start
- signal
- start trigger
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Logic Circuits (AREA)
- Electronic Switches (AREA)
Abstract
【課題】安全性と高速性を両立できるステートマシンを提供する。
【解決手段】状態保持部2は、動作開始トリガ信号「IO_RD」が入力されていない場合には第1の状態に、動作開始トリガ信号「IO_RD」が入力されている場合には第2の状態に、それぞれ状態を設定する。制御信号出力部3は、設定されている状態が現在まで第1の状態にあり、かつ動作開始トリガ信号「IO_RD」が現在入力されているという条件が成立している場合に限り、出力信号「RD_ENB1」を出力する。状態保持部2は、クロックをトリガとして状態を設定し、制御信号出力部3は、当該クロックをトリガとして上記条件を判定する。
【選択図】図1
【解決手段】状態保持部2は、動作開始トリガ信号「IO_RD」が入力されていない場合には第1の状態に、動作開始トリガ信号「IO_RD」が入力されている場合には第2の状態に、それぞれ状態を設定する。制御信号出力部3は、設定されている状態が現在まで第1の状態にあり、かつ動作開始トリガ信号「IO_RD」が現在入力されているという条件が成立している場合に限り、出力信号「RD_ENB1」を出力する。状態保持部2は、クロックをトリガとして状態を設定し、制御信号出力部3は、当該クロックをトリガとして上記条件を判定する。
【選択図】図1
Description
本発明は、動作開始トリガ信号を受けて出力信号を出力するステートマシンに関し、とくに安全性を考慮したステートマシンに関する。
図5(a)は従来のステートマシンの状態遷移パターンを示す図、図5(b)は従来のステートマシンの構成を示すブロック図、図6は従来のステートマシンの回路例を示す図である。
図5(a)に示すように、従来のステートマシンでは、非活性的なアイドルステート「STATE_IDLE」、活性的なステート「STATE_READ」および活性的なステート「STATE_ACK」という3つの状態が設けられている。図5(b)に示すように、一般的にステートマシンは、組合せ回路からなる状態決定部101、順序回路からなる状態保持部102、および組合せ回路からなる制御信号出力部103により構成される。図6に示す回路例では、AND回路16が状態決定部101を、フリップフロップ26およびフリップフロップ27が状態保持部102を、NOT回路36およびAND回路37が制御信号出力部103を、それぞれ構成している。状態保持部102のフリップフロップ出力を制御信号出力部103の組合せ回路に入力することで、制御信号出力部103から出力信号「RD_ENB」を取り出している。図7は従来のステートマシンの動作を示すタイミングチャートである。動作開始トリガ信号「IO_RD」がオンしている間、ステートマシンの状態は、クロック(CLK)の立ち上がりをトリガとして、ステート「STATE_IDLE」→ステート「STATE_READ」→ステート「STATE_ACK」の順に遷移する。
特開平5−282397号公報
しかし、従来のステートマシンでは、状態保持部102のフリップフロップ26およびフリップフロップ27でレーシング(同時遷移)が発生した場合、制御信号出力部103を構成するAND回路37からの出力信号「RD_ENB」にグリッチ(不正パルス)が発生する可能性がある(図7)。このため、出力信号「RD_ENB」を後段に伝達する前にグリッジを除去するための順序回路104(図5(b))を設け、クロック「CLK」により同期を取り直し出力信号「RD_ENB´」を生成することで、安全性を高めている。しかしながら、出力信号の伝達時間は、グリッジ除去のために1クロック分遅延することになる。
本発明の目的は、安全性と高速性を両立できるステートマシンを提供することにある。
本発明のステートマシンは、動作開始トリガ信号を受けて出力信号を出力するステートマシンにおいて、前記動作開始トリガ信号が入力されていない場合には第1の状態に、前記動作開始トリガ信号が入力されている場合には第2の状態に、それぞれ状態を設定する状態設定手段と、前記状態設定手段により設定されている前記状態が現在まで前記第1の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件が成立している場合に限り、前記出力信号を出力する出力制御手段と、前記状態設定手段および前記出力制御手段の動作をクロック同期させる同期手段と、を備え、前記状態設定手段は、前記同期手段のクロックをトリガとして前記状態を設定し、前記出力制御手段は、当該クロックをトリガとして前記条件を判定するとともに前記出力信号を出力することを特徴とする。
このステートマシンによれば、状態設定手段により設定されている前記状態が現在まで前記第1の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件が成立すれば同時に出力信号を出力するので、動作の高速性を獲得できる。また、フリップフロップのレーシングを避けることができるため、安全性を確保できる。
このステートマシンによれば、状態設定手段により設定されている前記状態が現在まで前記第1の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件が成立すれば同時に出力信号を出力するので、動作の高速性を獲得できる。また、フリップフロップのレーシングを避けることができるため、安全性を確保できる。
前記出力制御手段は、フリップフロップを使用した順序回路により構成されていてもよい。
前記出力制御手段は、組合せ回路により前記条件を判定してもよい。
本発明のステートマシンは、動作開始トリガ信号を受けて出力信号を出力するステートマシンにおいて、前記動作開始トリガ信号が入力されていない場合には第1の状態に、前記動作開始トリガ信号が入力されている場合には第2の状態に、それぞれ状態を前記動作開始トリガ信号より遅延させたタイミングで設定する状態設定手段と、前記状態設定手段により設定されている前記状態が現在まで前記第1の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件の成立の有無を組合せ回路で判定し、前記条件が成立していれば判定と同時に前記出力信号を出力する出力制御手段と、を備えることを特徴とする。
このステートマシンによれば、状態設定手段により設定されている前記状態が現在まで前記第1の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件が成立すれば同時に出力信号を出力するので、動作の高速性を獲得できる。また、フリップフロップのレーシングを避けることができるため、安全性を確保できる。
このステートマシンによれば、状態設定手段により設定されている前記状態が現在まで前記第1の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件が成立すれば同時に出力信号を出力するので、動作の高速性を獲得できる。また、フリップフロップのレーシングを避けることができるため、安全性を確保できる。
本発明のステートマシンによれば、状態設定手段により設定されている前記状態が現在まで前記第1の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件が成立すれば同時に出力信号を出力するので、動作の高速性を獲得できる。また、フリップフロップのレーシングを避けることができるため、安全性を確保できる。
以下、図1〜図4を参照して、本発明によるステートマシンの一実施形態について説明する。
図1(a)は本実施形態のステートマシンの状態遷移パターンを示す図である。
図1(a)に示すように、本実施形態のステートマシン100では、従来のステートマシンにおける状態遷移パターンからアイドルステート「STATE_IDLE」を削除し、ステート「STATE_READ」およびステート「STATE_ACK」のみからなる状態遷移パターンとしている。
図1(b)は、本実施形態のステートマシン100の構成を示すブロック図、図2は、ステートマシン100の回路例を示す図である。
図1(b)に示すように、本実施形態のステートマシン100は、組合せ回路からなる状態決定部1と、順序回路からなる状態保持部2と、組合せ回路3aおよび順序回路3bからなる制御信号出力部3とにより構成される。図2に示す回路例では、動作開始トリガ信号「IO_RD」の入力線11が状態決定部1を、フリップフロップ21が状態保持部2を、AND回路32が制御信号出力部3の組合せ回路3aを、フリップフロップ33およびフリップフロップ34が制御信号出力部3の順序回路3bを、それぞれ構成している。
また、動作開始トリガ信号「IO_RD」、クロック「CLK」およびリセット信号「RESET」は、それぞれ入力バッファ5を介してステートマシン100に入力される。ステートマシン100から出力される出力信号「ACK」および出力信号「RD_ENB´」は、出力バッファ6を介して後段に与えられる。
本実施形態のステートマシン100において、状態決定部1および状態保持部2は状態設定手段を、制御信号出力部3は出力制御手段を、クロック「CLK」の入力線7(図1(b)および図2)は同期手段を、それぞれ構成する。
図3(a)は、本実施形態のステートマシン100の動作を示すタイミングチャートである。ステートマシン100は、動作開始トリガ信号「IO_RD」を受け、クロック「CLK」の立ち上がりをトリガとして、状態を遷移させるとともに、出力信号「RD_ENB」および出力信号「RD_ENB1」を生成する。
図3(a)に示すように、動作開始トリガ信号「IO_RD」=0の間、ステートマシン100は、ステート「STATE_READ」で待機する(時刻T1)。ステート「STATE_READ」では出力信号「RD_ENB」=1であり、この信号をそのまま出力すれば動作不正となる。この動作不正を回避するため、ステートマシン100では、動作開始トリガ信号「IO_RD」を条件式として制御信号出力部3の組合せ回路3a(AND回路32)にも加えている。このため、動作開始トリガ信号「IO_RD」=0の間、出力信号「RD_ENB1」=0に維持される。
動作開始トリガ信号「IO_RD」=1になると、クロック「CLK」の立ち上がりをトリガとしてステート「STATE_ACK」に遷移し、出力信号「RD_ENB」=0となる。また、動作開始トリガ信号「IO_RD」=1であれば、クロック「CLK」の立ち上がり時におけるAND回路32の出力レベルは1であるから、順序回路3bのフリップフロップ34から出力される出力信号「RD_ENB1」のレベルは、1となる(時刻T2)。
次に、動作開始トリガ信号「IO_RD」=1であっても、出力信号「RD_ENB」=0であれば、AND回路32の出力レベルは0であるから、出力信号「RD_ENB1」のレベルは、0となる(時刻T3)。動作開始トリガ信号「IO_RD」=0となれば、ステート「STATE_READ」に戻り、出力信号「RD_ENB」=1となる(時刻T4)。
このように、ステートマシン100では、動作開始トリガ信号「IO_RD」=1になると、クロック「CLK」をトリガとして出力信号「RD_ENB1」のレベルを1としている(時刻T2)。このため、従来のステートマシンと比較して、1クロック分、出力信号の伝達時間を短縮できる。
また、フリップフロップ34によるクロック同期を経て、出力信号「RD_ENB1」を出力するので、出力信号「RD_ENB」のグリッチを除去することもできる。図3(b)の例では、直前(1クロック分前)に発生した出力信号「RD_ENB」のグリッチが除去され、出力信号「RD_ENB1」にグリッチは現れていない。このため安全性も確保できる。
このように、本実施形態のステートマシン100によれば、活性的なステートからの動作開始であっても、従来と同様の状態遷移パターンで出力信号を制御できる。また、ステート数を減らした分(1クロック分)、出力信号の伝達時間を短縮できる。
但し、ステートマシン100では、動作開始トリガ信号「IO_RD」を状態決定部1および制御信号出力部3の2箇所に入力している(図1(b)および図2)。このため、入力される信号の同期が確保されていない場合には、信号の配線遅延時間によりステートマシンの安全性を損なうことになる。したがって、リセット信号「RESET」を除くステートマシン100への入力信号がクロック「CLK」に同期し、かつ、配線遅延時間がフリップフロップのセットアップ・ホールド特性を満足することが必要となる。
図4は、本発明によるステートマシンにより、ホスト・スレーブ型バスインタフェースの調停を行うシステムを例示するブロック図である。この例では、MPU(マイクロプロセッシングユニット)71から、コンパクトフラッシュ(登録商標)等のスレーブデバイス72に渡す制御信号のタイミングを、PLD73(プログラマブルロジックデバイス)を用いて調停する。ここでは、動作開始トリガ信号に相当するMPU71からの制御信号(制御信号cs、制御信号rd、制御信号wr等)を一旦、PLD73に取り込み、アドレスデータや各種制御信号のセットアップ・ホールドタイムの確保、ウェイトタイムの確保など、スレーブデバイス72の都合に合わせて制御信号(制御信号cf_cs、制御信号cf_rd、制御信号cf_wr等)を出力するためのタイミングを制御するために、ステートマシン200を使用している。また、ステートマシン200を用いて、スレーブデバイス72からの応答信号(信号wait、信号ack等)のタイミングの調停を行っている。
このようなホスト・スレーブ型バスインタフェースの調停を行う場合、通常では従来のステートマシン(図5〜図7)により、速度を犠牲にして安全性の高い設計を行うが、本発明によるステートマシン200を使用することで、安全性を確保しつつ速度低下を回避可能となる。
本発明によるステートマシンは、PLDが介在するメモリアクセスや、PCI(ペリフェラル・コンポーネント・インターコネクト)、ISA(インダストリアル・スタンダード・アーキテクチャ)などのバスインタフェースにも適用可能である。
以上説明したように、本発明によるステートマシンによれば、状態設定手段により設定されている前記状態が現在まで前記第1の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件が成立すれば同時に出力信号を出力するので、動作の高速性を獲得できる。また、フリップフロップのレーシングを避けることができるため、安全性を確保できる。
本発明の適用範囲は上記実施形態に限定されることはない。本発明は、動作開始トリガ信号を受けて出力信号を出力するステートマシンに対し、広く適用することができる。
1 状態決定部(状態設定手段)
2 状態保持部(状態設定手段)
3 制御信号出力部(出力制御手段)
3a 組合せ回路(出力制御手段の組合せ回路)
7 入力線(同期手段)
2 状態保持部(状態設定手段)
3 制御信号出力部(出力制御手段)
3a 組合せ回路(出力制御手段の組合せ回路)
7 入力線(同期手段)
Claims (4)
- 動作開始トリガ信号を受けて出力信号を出力するステートマシンにおいて、
前記動作開始トリガ信号が入力されていない場合には第1の状態に、前記動作開始トリガ信号が入力されている場合には第2の状態に、それぞれ状態を設定する状態設定手段と、
前記状態設定手段により設定されている前記状態が現在まで前記第1の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件が成立している場合に限り、前記出力信号を出力する出力制御手段と、
前記状態設定手段および前記出力制御手段の動作をクロック同期させる同期手段と、
を備え、
前記状態設定手段は、前記同期手段のクロックをトリガとして前記状態を設定し、前記出力制御手段は、当該クロックをトリガとして前記条件を判定するとともに前記出力信号を出力することを特徴とするステートマシン。 - 前記出力制御手段は、フリップフロップを使用した順序回路により構成されていることを特徴とする請求項1または2に記載のステートマシン。
- 前記出力制御手段は、組合せ回路により前記条件を判定することを特徴とする請求項1または2に記載のステートマシン。
- 動作開始トリガ信号を受けて出力信号を出力するステートマシンにおいて、
前記動作開始トリガ信号が入力されていない場合には第1の状態に、前記動作開始トリガ信号が入力されている場合には第2の状態に、それぞれ状態を前記動作開始トリガ信号より遅延させたタイミングで設定する状態設定手段と、
前記状態設定手段により設定されている前記状態が現在まで前記第1の状態にあり、かつ前記動作開始トリガ信号が現在入力されているという条件の成立の有無を組合せ回路で判定し、前記条件が成立していれば判定と同時に前記出力信号を出力する出力制御手段と、
を備えることを特徴とするステートマシン。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007087099A JP2008252164A (ja) | 2007-03-29 | 2007-03-29 | ステートマシン |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007087099A JP2008252164A (ja) | 2007-03-29 | 2007-03-29 | ステートマシン |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008252164A true JP2008252164A (ja) | 2008-10-16 |
Family
ID=39976658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007087099A Pending JP2008252164A (ja) | 2007-03-29 | 2007-03-29 | ステートマシン |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008252164A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013055620A (ja) * | 2011-09-06 | 2013-03-21 | Hitachi Automotive Systems Ltd | 電流制御装置 |
-
2007
- 2007-03-29 JP JP2007087099A patent/JP2008252164A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013055620A (ja) * | 2011-09-06 | 2013-03-21 | Hitachi Automotive Systems Ltd | 電流制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100434833B1 (ko) | 직렬/병렬 변환 회로, 데이터 전송 제어 장치 및 전자 기기 | |
JPH05274259A (ja) | シリアル入力インタフェース回路 | |
US7586337B2 (en) | Circuit for switching between two clock signals independently of the frequency of the clock signals | |
US6989695B2 (en) | Apparatus and method for reducing power consumption by a data synchronizer | |
JP2009147869A (ja) | 同期化回路 | |
JP2007048022A (ja) | 非同期バスインタフェース及びその処理方法 | |
JP2006318457A (ja) | メモリ装置、その使用、および、データワードの同期方法 | |
US20070156934A1 (en) | High-speed PCI Interface System and A Reset Method Thereof | |
JP6809932B2 (ja) | 半導体装置及びデータ同期方法 | |
JP5839713B2 (ja) | 電子端末装置及び電子連動装置 | |
JP2008252164A (ja) | ステートマシン | |
JP5918192B2 (ja) | Plcシステムでのデータ処理装置及びその方法 | |
JP2005216147A (ja) | 情報処理装置 | |
JP2008118179A (ja) | 半導体集積回路 | |
US6255869B1 (en) | Method and apparatus for system resource negotiation | |
JP2003288202A (ja) | シングルポートram内蔵の表示制御半導体集積回路 | |
JP5910557B2 (ja) | 通信システム | |
JP5041402B2 (ja) | インタフェース回路および電子機器 | |
JPH11273380A (ja) | Lsi動作モード設定信号取り込み方法およびモード信号取り込み機能つきlsi | |
JP2007328647A (ja) | Cpu間のデータ転送方式 | |
JP2008177712A (ja) | トライステートバス回路 | |
JP2010026739A (ja) | タイミング調整装置、タイミング調整方法、タイミング調整プログラム及び記録媒体 | |
JP2007199904A (ja) | 情報処理装置 | |
JP2007140686A (ja) | バスシステム及びその切替方法 | |
KR20000025099A (ko) | 에프피지에이를 이용한 인터럽트 요구신호 제어방법 및 제어회로 |