(57)【特許請求の範囲】
【請求項１】
基準クロック信号に同期して動作し、ｎ個の状態間で遷移する任意のいずれか一つの状態を保持するステートマシンであって、
前記ｎ個の状態のそれぞれへの遷移条件が成立する毎に、ｎ個の遷移条件成立信号のいずれか一つをアクティブにして出力する信号出力手段と、
ｎ個の各状態とそれぞれ対応してｎ個設けられ、ｎ個の各状態をそれぞれ示すｎ個の状態信号の中の対応する一つをアクティブにして、それぞれ一つの状態を保持するｎ個の状態保持手段と、
いずれか一つの状態への前記遷移条件が成立した時に、前記基準クロック信号に同期する１発の同期パルス信号を生成する同期パルス信号生成手段と、
を有し、
前記ｎ個の状態保持手段の各々には前記１発の同期パルス信号が共通に入力され、かつ、遷移条件が成立した前記いずれか一つの状態と対応するいずれか一つの前記状態保持手段は、該状態への前記遷移条件の成立後から他の状態への遷移条件が成立するまでの期間に亘って、前記対応する一つの状態信号をアクティブとすることを特徴とするステートマシン。
【請求項２】
請求項１において、
前記ｎ個の状態保持手段は、第１〜第ｎのＤ型フッリップフロップ回路にて構成され、
前記第１〜第ｎのＤ型フリップフロップ回路の各々のデータ入力端子には、それぞれ第１〜第ｎの各状態への遷移条件の成立によりアクティブとなる遷移条件成立信号が入力され、
前記第１〜第ｎのＤ型フリップフロップ回路のクロック入力端子には、前記同期パルス信号生成手段により生成される前記同期パルス信号が入力され、
前記第１〜第ｎのＤ型フリップフロップの各々のデータ出力端子からは、それぞれ第１〜第ｎの状態信号が出力されることを特徴とするステートマシン。
【請求項３】
請求項１において、
前記ｎ個の状態保持手段は、第１〜第ｎのＪＫ型フッリップフロップ回路にて構成され、前記第１〜第ｎのＪＫ型フリップフロップ回路の各々の第１の入力端子には、それぞれ第１〜第ｎの各状態への遷移条件の成立によりアクティブとなる遷移条件成立信号が入力され、
前記第１〜第ｎのＪＫ型フリップフロップ回路の第２の入力端子には、第１〜第ｎの各状態から他の状態への遷移条件の成立によりアクティブとなる信号が入力され、
前記第１〜第ｎのＪＫ型フリップフロップ回路のクロック入力端子には、前記同期パルス信号生成手段により生成される前記同期パルス信号が入力され、
前記第１〜第ｎのＪＫ型フリップフロップの各々のデータ出力端子からは、それぞれ第１〜第ｎの状態信号が出力されることを特徴とするステートマシン。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記同期パルス信号生成手段は、Ｄ型フリップフロップ回路とＡＮＤ回路を含み、
前記Ｄ型フリップフロップ回路のデータ入力端子には、前記ｎ個の状態いずれかへの遷移条件の成立によりアクティブとなる信号が入力され、
前記Ｄ型フリップフロップ回路のクロック入力端子には、前記基準クロック信号の反転信号が入力され、
前記ＡＮＤ回路には、前記Ｄ型フリップフロップ回路のＱ出力と前記基準クロック信号とが入力されることを特徴とするステートマシン。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記ｎ個の状態を監視し、２以上の状態が真値を示す異常を検知すると異常を検知する状態監視手段をさらに有することを特徴とするステートマシン。
【請求項６】
請求項５において、
前記状態監視手段は、異常を検知した後に、該異常状態をリセットして正常状態に設定することを特徴とするステートマシン。
【請求項７】
請求項６において、
前記状態監視手段は、異常を検知した後に、該異常状態をリセットして初期常状態に設定することを特徴とするステートマシン。
【請求項８】
基準クロック信号に同期して動作し、ｎ個の状態間で遷移する任意のいずれか一つの状態を保持するステートマシンであって、
前記ｎ個の状態のそれぞれへの遷移条件が変化する毎に、前記ｎ個の状態に対応した、ｋ（ｋ＜ｎ）個の第１〜第ｋの組合せ遷移条件成立信号を出力する信号出力手段と、
前記一つの状態への前記遷移条件が成立した時に、前記基準クロック信号に同期する１発の同期パルス信号を生成する同期パルス信号生成手段と、
前記第１〜第ｋの組合せ遷移条件成立信号及び前記１発の同期パルス信号に基づき、前記第１〜第ｋの組合せ遷移条件成立信号と対応する第１〜第ｋの状態コード信号を出力するｋ個の状態コード保持手段と、
前記ｋ個の状態コード保持手段より出力される第１〜第ｋの状態コード信号をデコードし、前記ｎ個の状態に１対１に対応するｎ個の状態信号を生成するデコード手段と、
を有することを特徴とするステートマシン。
【請求項９】
請求項８において、
ｋ個の状態コード保持手段は、第１〜第ｋのＤ型フッリップフロップ回路にて構成され、
前記第１〜第ｋのＤ型フリップフロップ回路の各々のデータ入力端子には、前記第１〜第ｋの組合せ遷移条件成立信号がそれぞれ入力され、
前記第１〜第ｋのＤ型フリップフロップ回路のクロック入力端子には、前記同期パルス信号生成手段により生成される前記同期パルス信号が入力され、
前記第１〜第ｋのＤ型フリップフロップの各々のデータ出力端子からは、前記第１〜第ｋの状態コード信号がそれぞれ出力されることを特徴とするステートマシン。
【請求項１０】
請求項８において、
ｋ個の状態保持手段は、第１〜第ｋのＪＫ型フッリップフロップ回路にて構成され、
前記第１〜第ｋのＪＫ型フリップフロップ回路の各々の第１の入力端子及び第２の入力端子には、それぞれ前記第１〜第ｋの組合せ遷移条件成立信号が入力され、
前記第１〜第ｋのＪＫ型フリップフロップ回路のクロック入力端子には、前記同期パルス信号生成手段により生成される前記同期パルス信号が入力され、
前記第１〜第ｋのＪＫ型フリップフロップの各々のデータ出力端子からは、それぞれ第１〜第ｋの状態コード信号が出力されることを特徴とするステートマシン。
【請求項１１】
請求項８乃至１０のいずれかにおいて、
同期パルス信号生成手段は、Ｄ型フリップフロップ回路とＡＮＤ回路を含み、前記Ｄ型フリップフロップ回路のデータ入力端子には、前記第１〜第ｋの組合せ遷移条件成立信号のいずれかによりアクティブとなる信号が入力され、
前記Ｄ型フリップフロップ回路のクロック入力端子には、前記基準クロック信号の反転信号が入力され、
前記ＡＮＤ回路には、前記Ｄ型フリップフロップ回路のデータ出力と前記基準クロック信号とが入力されることを特徴とするステートマシン。
【請求項１２】
請求項８乃至１１のいずれかにおいて、
前記ｎ個の状態を監視し、２以上の状態が真値を示す異常を検知すると異常を検知する状態監視手段をさらに有することを特徴とするステートマシン。
【請求項１３】
請求項１２において、
前記状態監視手段は、異常を検知した後に、該異常状態をリセットして、前記異常状態以外の一定の状態に設定することを特徴とするステートマシン。
【請求項１４】
請求項１３において、
前記状態監視手段は、前記異常状態をリセットして初期常状態に設定することを特徴とするステートマシン。
【請求項１５】
基準クロック信号に同期して動作し、第ｍの動作サイクル中の信号の状態に基づいて、第（ｍ＋１）の動作サイクル中の信号の状態が決定される半導体装置において、ｎ個のステートマシンを具備し、少なくとも一つのステートマシンが請求項１乃至１３のいずれかに記載のステートマシンにて構成されていることを特徴とする半導体装置。
【請求項１６】
請求項１５記載の半導体装置を有することを特徴とする電子機器。
【発明の詳細な説明】
［技術分野］
本発明は、ロジック回路技術に属し、同期動作するステートマシン、並びに半導体装置及び電子機器に関する。
［背景技術］
ステートマシンは、複数の状態を持ち、一の状態から他の状態への遷移条件が成立することにより、その状態間を遷移する。システム内の各ステートマシンは多くは同一の基準クロック信号に同期したタイミングで動作し、互いに信号を交換しながら、ステートマシンのそれぞれは同一の期間にはただ一つの状態を示して動作する。特にある状態から他の状態への遷移において、条件に従って２以上に状態が分岐するステートマシンにおいては、ステートマシンを構成する回路のスタティックハザードを防止するために、一状態に一つのフリップフロップを対応させるのが通例である。
一方、分岐が存在しないステートマシンはバイナリカウンタと同等であり、知られるグレーコードカウンタにように、ｋ個のフリップフロップが保持する状態をデコードして、スタティックハザードを発生させずにｋ個より多い数のｎ個の状態を作り出せる。また、完全同期設計の回路において、ステートマシンの状態信号を他の回路のトリガ信号に用いない等、一定の条件が満たされるのであれば、スタティックハザードは問題とならない。この場合は、ｋ個のフリップフロップの状態をデコードして、それより多いｎ個の状態を作ることは可能である。
図１２はステートマシンの状態遷移図の例を示すために、ＩＳＯ／ＩＥＣ８８０２−３規格書の図１４−６の例を、より簡素に表記した図である。このステートマシンは、遷移条件が成立したときに、遷移４１０〜４２０を経て５つの状態４０１〜４０６のいずれか一つの状態を取り得る。例えば、遷移４１２が起こる条件は、規格によれば「link_loss_timer_done*RD=idle*link_test_rcv=false」である。現に状態４０１にあってこの条件を満たした時に、遷移４１２が実行され、状態４０２に遷移する。
図１３はステートマシンの状態遷移図の一部を抜き出した例であり、状態Ｙを中心に該状態への遷移及び該状態からの遷移の様子を抜き出して示してある。この状態Ｙを１つのフリップフロップで構成する場合の例を、図１４に示す。
図１４は各状態を一つのＤ型フリップフロップ（以下、Ｄ型Ｆ．Ｆ．と記す）で構成する例を示している。Ｄ型Ｆ．Ｆ．５０１−ｋのＣ入力端子に、バッファー５０３を介して基準クロック信号１１０を、Ｄ入力端子に「状態Ｙに遷移し、状態Ｙを維持する」条件によって成立する信号を入力することで、そのＱ出力に状態Ｙを得ることができる。即ち状態Ｙに遷移するには、図１３により「状態Ｐ×条件ａ＋状態Ｑ×条件ｂ」の成立が条件となる。また、現に状態Ｙに在る時に状態Ｙを維持するには、図１３により「状態Ｙ×（−条件ｃ）（−条件ｄ）」が条件となる。状態Ｙに遷移する条件（遷移条件）１１１Ｙと、状態Ｙを維持する条件（維持条件）６１２Ｙとの和が、ＯＲゲート５０２−ｋが得られ、Ｄ型Ｆ．Ｆ．５０１−ｋのＤ入力端子に入力される。これらの遷移条件１１１Ｙと維持条件６１２Ｙとは、図１５に示すように、ＡＮＤゲート５０４〜５０７により得られる。
図１６は、図１４のステートマシーンの動作波形を示している。基準クロック信号１１０は全動作期間に亘って発生し、タイミングａにおいて状態Ｙへの遷移条件１１１Ｙが真値になる。この時、状態Ｐにおいて条件ａが成立するか、もしくは、状態Ｑにおいて条件ｂが成立していたことになる。遷移条件１１１Ｙはシステムクロックのタイミングに対してある遅延を以って値が変化するから、状態Ｙは次のクロックタイミングであるタイミングｂにおいて真値になる。この後タイミングｃにおいて、状態Ｗへの遷移条件１１１Ｗが真値になるとする。この時、状態Ｙにおいて条件ｄが成立している。状態Ｙにあって該状態Ｙからの遷移条件が成立しない間、状態Ｙの維持条件６１２Ｙがアクティブになる。即ち、タイミングｂからタイミングｃまでの間は、条件ｃまたは条件ｄが成立しないことにより、維持条件６１２Ｙが真値になっている。維持条件６１２Ｙの動作については、タイミングｃにおいて、状態Ｙにおいて条件ｃが成立することによって、状態Ｙから状態Ｚへの遷移条件が成立しても同様である。タイミングｃにおいて遷移条件６１２Ｙが偽値になったことにより、タイミングｄにおいて状態Ｙが偽値になる。
図１７は、一つの状態を一つのＪＫ型フリップフロップ（以下、ＪＫ型Ｆ．Ｆ．と記す）で構成する例を示している。ＪＫ型Ｆ．Ｆ．５２１−ｋのＣ入力端子に基準クロック信号１１０を、第１の入力端子に状態Ｙへの遷移条件１１１Ｙを、第２の入力端子に状態Ｙから他の状態への遷移条件２１２Ｙを入力することで、そのＱ出力に状態Ｙを得ることができる。状態Ｙへの遷移条件１１１Ｙは、Ｄ型Ｆ．Ｆ．の場合に等しく、また、状態Ｙから他の状態への遷移条件２１２Ｙは、図１３より「状態Ｙ×条件ｃ＋状態Ｙ×条件ｄ」である。これらの遷移条件１１１Ｙと維持条件２１２Ｙとは、図１８に示すように、ＡＮＤゲート５２２〜５２５と、ＯＲゲート５２６，５２７により得られる。
図１９は、図１６に示すステートマシンの動作波形を示している。タイミングａにおいて状態Ｙへの遷移条件１１１Ｙが真値になる。この時、状態Ｐにおいて条件ａが成立するか、もしくは、状態Ｑにおいて条件ｂが成立する。これにより、タイミングｂにおいて状態Ｙが真値になる。この後タイミングｃにおいて状態Ｙからの遷移条件２１２Ｙが真値になる。この時、状態Ｙにおいて、条件ｃが成立するか、もしくは条件ｄが成立することになる。これにより、タイミングｄにおいて状態Ｙが偽値になる。
これらの従来技術によれば、システムを構成する多数のステートマシンを、システムの要求するクロックタイミングで一斉に動作させる必要があり、消費電力が大きくなるという問題がある。ステートマシンの数及び各ステートマシンの状態の数が増えることにより、その数の分だけの素子が必要になり、その分だけクロックを駆動することになる。また、多数のフリップフロップのクロックを同時に駆動するためには、より大きな駆動能力を持つバッファ素子が必要になる。消費電力の問題は、ステートの遷移条件の成立が基準クロックに比べて長い間隔でなされるようなシステム、例えば図１２に示したＩＳＯ／ＩＥＣ８８０２−３規格におけるリンクインテグリティテストのステートマシン等において、顕著に現れる。
図１２のステートマシンでは、基準クロック信号は１０ＭＨｚであるのに対し、遷移条件の成立間隔はμ秒〜秒のオーダーになることがしばしば起こる。そのような場合に、基準クロック信号の１０ＭＨｚで全てのフリップフロップを駆動するのは、非動作時における電力の損失が大きい。
さらに、従来技術によれば、ステートマシンの各状態を表すフリップフロップは、その入力として、各状態への遷移条件と、各状態を維持する条件かまたは各状態から他の状態に遷移する条件とを必要とする。このことから、ステートマシンが複雑になるにつれ、多くの回路部品を必要とするようになる。また、ある条件への遷移条件は他の条件からの遷移条件でもあり、同様の条件を示す信号が複雑に他の状態を表すのに使われるようになる。この結果、回路の冗長性が増し、それにより回路を複雑にして、デバッグ及びメンテナンスの工数を増やす要因になる。
本発明の目的は、消費電力を低減することのできるステートマシン、半導体装置及びそれを用いた電子機器を提供することにある。
本発明の他の目的は、回路の冗長性を減らし、それにより回路を簡易にして、デバッグ及びメンテナンスの工数を低減できるステートマシン、半導体装置及びそれを用いた電子機器を提供することにある。
［発明の開示］
本発明は、基準クロック信号に同期して動作し、ｎ個の状態間で遷移する任意のいずれか一つの状態を保持するステートマシンであって、
前記ｎ個の状態のそれぞれへの遷移条件が成立する毎に、ｎ個の遷移条件成立信号のいずれか一つをアクティブにして出力する信号出力手段と、
ｎ個の各状態とそれぞれ対応してｎ個設けられ、ｎ個の各状態をそれぞれ示すｎ個の状態信号の中の対応する一つをアクティブにして、それぞれ一つの状態を保持するｎ個の状態保持手段と、
いずれか一つの状態への前記遷移条件が成立した時に、前記基準クロック信号に同期する１発の同期パルス信号を生成する同期パルス信号生成手段と、
を有し、
前記ｎ個の状態保持手段の各々には、前記１発の同期パルス信号が共通に入力され、かつ、遷移条件が成立した前記いずれか一つの状態と対応するいずれか一つの前記状態保持手段は、該状態への前記遷移条件の成立後から他の状態への遷移条件が成立するまでの期間に亘って、前記対応する一つの状態信号をアクティブとすることを特徴とする。
本発明によれば、ｎ個の状態保持手段は、１発の同期パルス信号が共通に入力されたタイミングにおいてのみ、それらの入力端子が駆動されている以外は、他のタイミングでは一切駆動されない。またこの間、基準クロック信号に同期して常に駆動されているのは、同期パルス信号生成手段の入力端子であることが分かる。このため、基準クロック信号に同期した全てのタイミングで動作する従来装置と比較すれば、本発明装置にて消費される電力が格段に低下することが分かる。しかも、維持条件の入力を必要としていないことにより回路の冗長性が低減されるので、回路が単純になり、デバッグ及びメンテナンス工数の削減が図れる効果が得られる。
本発明においては、ｎ個の状態保持手段は、第１〜第ｎのＤ型フッリップフロップ回路にて構成することができる。この場合、第１〜第ｎのＤ型フリップフロップ回路の各々のデータ入力端子には、それぞれ第１〜第ｎの各状態への遷移条件の成立によりアクティブとなる遷移条件成立信号が入力される。また、第１〜第ｎのＤ型フリップフロップ回路のクロック入力端子には、同期パルス生成生成手段により生成される前記同期パルス信号が入力される。そして、第１〜第ｎのＤ型フリップフロップの各々のデータ出力端子からは、それぞれ第１〜第ｎの状態信号が出力される。
このように構成すると、各状態を保持するｎ個のＤ型フリップフロップは、各状態への遷移条件成立信号のみを入力とし、維持条件を必要としていないことが分かる。従って、図１４に示す従来装置と比較すれば、本発明装置に必要な回路規模が格段に縮小されることが分かる。
本発明においては、ｎ個の状態保持手段は、第１〜第ｎのＪＫ型フッリップフロップ回路にて構成することができる。この場合、第１〜第ｎのＪＫ型フリップフロップ回路の各々の第１の入力端子には、それぞれ第１〜第ｎの各状態への遷移条件の成立によりアクティブとなる遷移条件成立信号が入力される。また、第１〜第ｎのＪＫ型フリップフロップ回路の第２の入力端子には、第１〜第ｎの各状態から他の状態への遷移条件の成立によりアクティブとなる信号が入力される。そして、第１〜第ｎのＪＫ型フリップフロップ回路のクロック入力端子には、同期パルス信号生成手段により生成される同期パルス信号が入力される。そして、第１〜第ｎのＪＫ型フリップフロップの各々のデータ出力端子からは、それぞれ第１〜第ｎの状態信号が出力される。
このように構成すると、各状態を保持するｎ個のＪＫ型フリップフロップは、各状態への遷移条件成立信号と各状態からの遷移条件を必要としている点は図１８の従来装置と同じであるが、ｎ個のＪＫ型フリップフロップが基準クロック信号に基づいて常時駆動されない点において、図１８の従来装置よりも消費電力を格段に低下することができる。
本発明の他の態様によれば、基準クロック信号に同期して動作し、ｎ個の状態間で遷移する任意のいずれか一つの状態を保持するステートマシンであって、
前記ｎ個の状態のそれぞれへの遷移条件が変化する毎に、前記ｎ個の状態に対応した、ｋ（ｋ＜ｎ）個の第１〜第ｋの組合せ遷移条件成立信号を出力する信号出力手段と、
前記一つの状態への前記遷移条件が成立した時に、前記基準クロック信号に同期する１発の同期パルス信号を生成する同期パルス信号生成手段と、
前記第１〜第ｋの組合せ遷移条件成立信号及び前記１発の同期パルス信号に基づき、前記第１〜第ｋの組合せ遷移条件成立信号と対応する第１〜第ｋの状態コード信号を出力するｋ個の状態コード保持手段と、
前記ｋ個の状態コード保持手段より出力される第１〜第ｋの状態コード信号をデコードし、前記ｎ個の状態に１対１に対応するｎ個の状態信号を生成するデコード手段と、
を有することを特徴とする。
このように、本発明の他の態様によれば、フリップフロップなどで構成できるｋ個の状態コード保持手段からの状態コード信号をデコードして、Ｋ個より多いｎ個の状態信号を作り出す装置に本発明を適用することができる。この場合にも、ｋ個の状態コード保持手段の全てが基準クロック信号に基づいて常時駆動されない点において、従来装置よりも消費電力を格段に低下することができる。
本発明に用いられる同期パルス信号生成手段は、Ｄ型フリップフロップ回路とＡＮＤ回路を含んで構成できる。このＤ型フリップフロップ回路のデータ入力端子には、第１〜第ｋの遷移条件成立信号のいずれかによりアクティブとなる信号が入力され、そのクロック入力端子には、基準クロック信号の反転信号が入力される。ＡＮＤ回路には、Ｄ型フリップフロップ回路のデータ出力と基準クロック信号とが入力されることで、このＡＮＤ回路より遷移条件が成立する毎に１発の同期パルス信号が出力される。
本発明では、記ｎ個の状態を監視し、２以上の状態が真値を示す異常を検知すると異常を検知する状態監視手段をさらに設けることができる。この状態監視手段は、異常を検知した後に、該異常状態をリセットして、異常状態以外の一定の状態、例えば初期状態に復帰させることができる。
本発明のさらに他の態様によれば、基準クロック信号に同期して動作し、第ｍの動作サイクル中の信号の状態に基づいて、第（ｍ＋１）の動作サイクル中の信号の状態が決定される半導体装置において、ｎ個のステートマシンを具備し、少なくとも一つのステートマシンが、上述の構成を有することを特徴とする。
本発明のさらに他の態様は電子機器であり、この電子機器は上記の半導体装置を含んでいる。
【図面の簡単な説明】
図１は、本発明に係るステートマシンの第１実施例を示す回路図である。
図２は、図１の信号出力回路の一例を示す回路図である。
図３は、図１のステートマシンの動作波形図である。
図４は、本発明に係るステートマシンの第２実施例を示す回路図である。
図５は、図４の信号出力回路を構成する一部の回路図である。
図６は、図４のステートマシンの動作波形図である。
図７は、本発明に係るステートマシンの第３実施例を示す回路図である。
図８は、図７に示すステートマシンの状態遷移図である。
図９は、図７の信号出力回路の一例を示す回路図である。
図１０は、本発明に係るステートマシンの第４実施例を示すブロック図である。
図１１は、本発明に係るステートマシンの第５実施例を示すブロック図である。
図１２は、状態遷移の一例を示す図である。
図１３は、状態遷移の他の例を示す図である。
図１４は、従来のステートマシンーンの回路図である。
図１５は、図１４の遷移条件及び維持条件を生成する論理回路を示す回路図である。
図１６は、図１４のステートマシンの動作波形図である。
図１７は、従来の他のステートマシンーンの回路図である。
図１８は、図１７の遷移条件及び維持条件を生成する論理回路を示す回路図である。
図１９は、図１７のステートマシンの動作波形図である。
［発明を実施するための最良の形態］
（第１実施例）
図１は本発明に係るステートマシンの第１実施例を示している。なお、図１に示すステートマシーンは、図１３に示す各種状態に設定するものであり、図１中の状態Ｗ，Ｙ，Ｚは図１３における状態Ｗ，Ｙ，Ｚにそれぞれ対応する。
図１において、このステートマシーンは、遷移条件成立信号１１１Ｗ，１１１Ｚ，１１１Ｙなどを出力する信号出力回路１００と、図１３に示す各種状態をそれぞれ保持する状態保持手段としてのＤ型Ｆ．Ｆ．１０１−１，１０１−２，１０１−Ｋ…と、同期パルス生成回路１０２とを有する。
図１に示す信号出力回路１００の一例を図２に示す。図２に示すように、この信号出力回路１００は、ＡＮＤゲート１００−１〜１００−４と、ＯＲゲート１００−５とを含んでいる。ＡＮＤゲート１００−１は、状態Ｙと条件ｄとが共に“１”の時に遷移条件成立信号１１１Ｗをアクティブである“１”にして出力し、それ以外の時は遷移条件成立信号１１１Ｗはノンアクティブである“０”となる。同様に、ＡＮＤゲート１００−２は、状態信号Ｙと条件信号ｃとが共に“１”の時に遷移条件成立信号１１１Ｚをアクティブである“１”にして出力し、それ以外の時は遷移条件成立信号１１１Ｚはノンアクティブである“０”となる。さらに、ＡＮＤゲート１００−３，１００−４及びＯＲゲート１０１−５は、状態Ｐと条件ａとが共に“１”の時に、あるいは状態Ｑと条件ｂとが共に“１”の時に、遷移条件成立信号１１１Ｙをアクティブである“１”にして出力し、それ以外の時は遷移条件成立信号１１１Ｙはノンアクティブである“０”となる。
同期パルス生成回路１０２は、ＡＮＤゲート１０３と、ＯＲゲート１０４と、Ｄ型Ｆ．Ｆ．１０５とを有する。ＯＲゲート１０４には、上述した遷移条件成立信号１１１Ｗ，１１１Ｚ，１１１Ｙを含む全ての遷移条件成立信号が入力される。Ｄ型Ｆ．Ｆ．１０５のＣ入力端子には、基準クロック信号１１０の反転信号が入力され、Ｄ入力端子にはＯＲゲート１０４の出力が入力される。ＡＮＤゲート１０３には、Ｄ型Ｆ．Ｆ．１０５のＱ出力端子からの出力信号１１５Ｑと、基準クロック信号１１０とが入力される。
状態保持回路としてのＤ型Ｆ．Ｆ．１００−１，１００−２，…１００−ｋのＤ入力端子（データ入力端子）には、対応する遷移条件成立信号１１１Ｗ，１１１Ｚ，…１１１Ｙ…がそれぞれ入力され、Ｃ入力端子（クロック入力端子）には同期パルス信号生成回路１０２中のＡＮＤゲート１０３の出力である同期パルス信号１１２が共通に入力される。
次に、図１に示すステートマシンの動作を、図３に示すタイミングチャートを参照して説明する。図３は、状態Ｐまたは状態Ｑから状態Ｙに遷移し、その後状態Ｗに遷移する動作を示している。
状態Ｐまたは状態Ｑから状態Ｙに遷移するには、図１，２中の遷移条件成立信号１１１Ｙがアクティブとなる必要がある。遷移条件成立信号１１１Ｙがアクティブとなる条件は、図１３より「状態Ｐ×条件ａ＋状態Ｑ×条件ｂ」の論理条件が成立する必要がある。この論理条件が成立すると、図２に示すＯＲゲート１００−５より出力される遷移条件成立信号１１１Ｙが、図３のタイミングａ−ｃ間にてアクティブとなり、このアクティブな信号１１１Ｙは図１に示すＯＲゲート１０４とＤ型Ｆ．Ｆ．１００−ｋに入力される。
一方、基準クロック信号１１０は全動作期間に亘って図３の通り出力され続けている。ここで、図３のタイミングａにおいて遷移条件成立信号１１１Ｙがアクティブになると、同期パルス生成回路１０２のＯＲゲート１０４を経て、Ｄ型Ｆ．Ｆ．１０５のＤ入力端子に“１”が入力される。Ｄ型Ｆ．Ｆ．１０５のＣ入力端子には基準クロック信号１１０の反転信号が入力している。このため、タイミングａの次の基準クロック信号１１０の立ち下がり（反転信号の立ち上がり）のタイミングｂで、Ｄ型Ｆ．Ｆ．１０５のＱ出力端子（データ出力端子）に“１”が現れることになる（図３の出力信号１１５Ｑを参照）。
Ｄ型Ｆ．Ｆ．１０５のＱ出力端子の値は、次の基準クロック１１０信号の立ち下がり（次の反転信号の立ち上がり）まで保持される。このＤ型Ｆ．Ｆ．１０５の出力信号１１５Ｑと基準クロック信号１１０とが入力されるＡＮＤゲート１０３からは、タイミングｃから基準クロック１１０に同期して、基準クロック１１０の半周期の幅で“１”となる同期パルス信号１１２が出現することになる。
ここで、アクティブとなった遷移状態成立信号１１１ＹがＤ入力端子に入力されるＤ型Ｆ．Ｆ．１０１−ｋには、図３に示すように、遷移状態成立信号１１１Ｙがアクティブである期間に、同期パルス信号１１２がＣ入力端子に入力される。このため、Ｄ型Ｆ．Ｆ．１０１−ｋのＱ出力端子からは、図３に示すようにタイミングＣにて状態Ｙがアクティブとなる信号が出力される。
この後は、いずれかの遷移状態成立信号１１１Ｗなどがアクティブとならない限り、同期パルス信号１１２がアクティブとならないため、Ｄ型Ｆ．Ｆ．１０１−ｋのＱ出力端子の出力によりＹ状態が維持される。
ところで、遷移条件成立信号１１１Ｙは、システムクロックのタイミングに対してある遅延を以って値が変化するから（例えば図３の破線参照）、同期パルス信号１１２の立上りの前に、アクティブ状態を維持できる充分なホールドタイムを持つように遅延を持たせれば、状態Ｙはタイミングｃにおいて真値になる。
次に、タイミングｄにおいて、図３に状態Ｗへ遷移するための遷移条件成立信号１１１Ｗが真値になるとする。この時、状態Ｙにあって、条件ｄが成立したことになり、図２のＡＮＤゲート１００−１より出力される遷移状態成立信号１１１Ｗがアクティブとなる。この遷移条件成立信号１１１Ｗがアクティブになったことにより、タイミングｆではタイミングｃで生起したのと同様の動作により、同期パルス信号１１２が生成される。タイミングｆにおける同期パルス信号１１２の立上りにより、遷移条件成立信号１１１Ｗが入力されるＤ型Ｆ．Ｆ．１０１−１のＱ出力端子からの出力によりより、図３に示すようにタイミングｆにて状態Ｗが真値になる。この時、遷移条件成立信号１１１Ｙはノンアクティブであるから、同期パルス信号１１２がアクティブとなるタイミングｆにて、状態Ｙは偽値になる。
このようなステートマシンの動作において、状態Ｙが真値になるタイミングｃ及び状態Ｙが偽値になるタイミングｆにおいてのみ、全ＤＦＦ１０１−１，１０１−２，…１０１−Ｋ，…のＣ入力端子が駆動されている以外は、他のタイミングでは一切駆動されていないことが分かる。またこの間、基準クロック信号１１０に同期して常に駆動されているのは、ＤＦＦ１０５のＣ入力端子、及びＡＮＤゲート１０３の１つの入力端子であることが分かる。このため、基準クロック信号に同期した全てのタイミングで動作する従来装置と比較すれば、本実施例装置にて消費される電力が格段に低下することが分かる。しかも、維持条件の入力を必要としていないことにより回路の冗長性が低減されるので、回路が単純になり、デバッグ及びメンテナンス工数の削減が図れる効果が得られる。
また、各状態を保持するＤＦＦ１０１−１，１０１−２，…１０１−Ｋ，…は、各状態への遷移条件成立信号のみを入力とし、維持条件あるいは各状態からの遷移条件を必要としていないことが分かる。従って、従来装置と比較すれば、本実施例装置に必要な回路規模が格段に縮小されることが分かる。
（第２実施例）
図４は本発明の第２実施例に係るステートマシンのブロック図である。図４に示す各種状態は、図１の実施例と同様に図１３における各種状態に対応する。
図４に示す装置が、図１に示す装置と相違する点は、図１のＤ型Ｆ．Ｆ．１０１−１，１０１−２，…１０１−Ｋ，…に代えて、ＪＫ型Ｆ．Ｆ．２０１−１，２０１−２，…２０１−ｋ，…を用いたことと、信号出力回路２００からは遷移状態成立信号１１１Ｗ，１１１Ｚ，…１１１Ｙ，…に加えて、他の遷移条件成立信号２１２Ｗ，２１２Ｚ，…２１２Ｙ，…を出力するように構成したことである。なお、遷移状態成立信号２１２Ｗ、２１２Ｚ、２１２Ｙはそれぞれ、状態Ｗ、状態Ｚ、状態Ｙから他の状態への遷移条件が成立したときにアクティブとなる。信号出力回路２００の構成のうち、遷移状態成立信号２１２Ｙを出力する構成は図５に示す通り、例えば２つのＡＮＤゲート２００−１，２００−２と、一つのＯＲゲート２００−３とで構成される。
次に、図４のステートマシーンの動作について、図６のタイミングチャートを参照して説明する。
図１のステートマシンでの動作と同様にして、遷移条件成立信号１１１Ｙがアクティブとなることにより、同期パルス生成回路１０２のＯＲゲート１０４を経て、Ｄ型Ｆ．Ｆ．１０５のＤ入力端子に真値が入力される。Ｄ型Ｆ．Ｆ．１０５のＣ入力端子には、基準クロック信号１１０の反転が入力しているから、タイミングａの次の基準クロック信号１１０の立ち下がり（反転信号の立ち上がり）であるタイミングｂにて、Ｄ型Ｆ．Ｆ．１０５のＱ出力端子に“１”が現れることになる（図６の出力信号１１５Ｑ参照）。従って、図１の装置と同様に、ＡＮＤゲート１０３からは、図６に示すように、タイミングｃにて基準クロック１１０に同期して、その半周期の幅で“１”となる同期パルス信号１１２が出現することになる。
ここで、アクティブとなった遷移状態成立信号１１１ＹがＪ入力端子（第１の入力端子）に入力されるＪＫ型Ｆ．Ｆ．２０１−ｋには、図６に示すように、遷移状態成立信号１１１Ｙがアクティブである期間に、同期パルス信号１１２がＣ入力端子に入力される。このため、ＪＫ型Ｆ．Ｆ．２０１−ｋのＱ出力端子からは、図６に示すようにタイミングｃにて状態Ｙがアクティブとなる信号が出力される。
この後は、いずれかの遷移状態成立信号１１１Ｗなどがアクティブとならない限り、同期パルス信号１１２がアクティブとならないため、Ｄ型Ｆ．Ｆ．１０１−ｋのＱ端子の出力によりＹ状態が維持される。
ここで、タイミングｄにおいて、遷移条件１１１Ｗが真値になるとする。この時、状態Ｙにあって、条件ｄが成立したことになる。同時に状態Ｙから他の状態への遷移条件が成立していることになるので、遷移条件成立信号２１２Ｙがアクティブになる。遷移条件成立信号２１２Ｙがアクティブになったことにより、タイミングｆではタイミングｃで生起したのと同様の動作により、同期パルス信号１１２が生成される。タイミングｆにて同期パルス信号１１２の立上り、かつアクティブとなっている遷移条件１１１ＷがＪＫＦＦ２０１−１のＪ端子入力に入力されることで、ステートマシンは状態Ｗに遷移する。
この時、ＪＫ型Ｆ．Ｆ．２０１−ｋのＪ入力端子に入力される遷移条件成立信号１１１Ｙはノンアクティブであり、またＪＫ型Ｆ．Ｆ．２０１−ｋのＫ入力端子（第２の入力端子）に入力される遷移条件成立信号２１２Ｙはアクティブであることから、ＪＫ型Ｆ．Ｆ．２０１−ｋのＱ出力端子からの出力は“０”となり、状態Ｙは同時に偽値になる。
このように、状態保持手段をＪＫ型Ｆ．Ｆ．にて構成しても、第１実施例と同様な効果を奏することができる。
（第３実施例）
図７は本発明の第３実施例に係るステートマシンの回路図であり、図８は図７の装置で得られる各種状態を示している。
この第３実施例では、信号出力回路３００からのｋ個例えば２つの組合せ遷移状態成立信号３１１，３１２と、同期パルス信号生成回路１０２からの同期パルス信号１１２とに基づいて駆動されるｋ個（図７では２個）のフリップフロップ３０１−１，３０１−２の状態を、デコーダ３０２にてデコードすることにより、ｋ個より多いｎ個（図７では４個）の状態を作り出すように構成している。
図７に示す信号出力回路３００は図９に示す通り、例えば８つのＡＮＤゲート３００−１〜３００−８と、６つのＯＲゲート３００−１０〜３００−１５とで構成される。この信号出力回路３００は、状態Ｂ及び条件ｂが共に成立した場合、状態Ｄ及び条件ｄが共に成立した場合、状態Ｅが成立しかつ条件ｅが成立しない場合、あるいは状態Ｄが成立しかつ条件ｄが成立しない場合に、組合せ遷移条件成立信号３１１をアクティブとする。またこの信号出力回路３００は、状態Ａ及び条件ａが共に成立した場合、状態Ｄ及び条件ｄが共に成立した場合、状態Ｂが成立しかつ条件ｂが成立しない場合、あるいは状態Ｅが成立しかつ条件ｅが成立しない場合に、組合せ遷移条件成立信号３１２をアクティブとする。
２つのＤ型Ｆ．Ｆ．３０１−１，３０１−２は、２ビットの出力（状態コード信号）を保持するレジスタあるいは状態コード保持手段として機能する。この２ビットの出力とは、Ｄ型Ｆ．Ｆ．３０１−１のＱ出力と、Ｄ型Ｆ．Ｆ．３０１−２のＱ出力である。そして、この２ビットの出力がデコーダ３０２にてデコードされることで、図８に示す４つの状態Ａ〜Ｄ（状態信号）が択一的に得られる。
ここで、Ｄ型Ｆ．Ｆ．３０１−１のＱ出力をＲ０とし、Ｄ型Ｆ．Ｆ．３０１−２のＱ出力をＲ１とすると、状態Ａ〜Ｄは、下記のように定義される。
状態Ａ＝（Ｒ０，Ｒ１）＝（０，０）
状態Ｂ＝（Ｒ０，Ｒ１）＝（０，１）
状態Ｃ＝（Ｒ０，Ｒ１）＝（１，０）
状態Ｄ＝（Ｒ０，Ｒ１）＝（１，１）
このように、第３実施例によれば、保持すべき状態の数よりも少ないフリップフロップを用いてステートマシンを構成することができる。しかも、この第３実施例においても、第１，第２実施例と同様に、各種状態を維持するための信号が必要で無くなることにより冗長性が低減されるので、回路が単純になり、デバッグ及びメンテナンス工数の削減が図れる効果が得られる。なお、この第３実施例においても、Ｄ型フリップフロップに代えて、第２実施例にて用いたＪＫ型フリップフロップを用いることが可能である。この場合、信号出力回路３００は、Ｊ端子（第１の入力端子）用の組合せ遷移状態成立信号と、Ｋ端子（第２の入力端子）用の組合せ遷移状態成立信号とがそれぞれ生成して出力することになる。
このようにフリップフロップの種類に拘わらず、遷移条件が成立した時のみ同期パルス信号が生成される点は、第１，第２実施例と同様であるため、この第３実施例においても消費電力の低減が図れる。
なお、上述した第１〜第３実施例にて用いた各種フリップフロップの出力として、Ｑ出力端子からの出力を用いたが、／Ｑ出力端子からの反転出力信号を用いてもよい。
（第４実施例）
図１０は本発明の第４実施例のブロック図である。このステートマシンは、状態監視部１００１と、遷移制御部１００２と、状態保持部１００３とを有する。遷移制御部１００２は、異常検知信号１０１０と、入力信号１０１１とに基づいて、遷移条件成立信号１０１２を生成する。状態保持部１００３は、第１〜第３実施例にて説明した状態保持手段と同期パルス信号生成手段とを備え、同期パルス信号に基づいて遷移条件成立信号１０１２を保持し、ｎ個の状態信号１０１３のいずれか一つをアクティブ（真値）にして出力する。
状態監視部１００１は、ｎ個の状態を監視し、ｎ個の状態のうちただ一つのみが真値である場合を正常とし＜他の場合を異常と見なす異常検知手段を備える。異常検知手段により異常を検知すると、状態監視部１００１は異常検知信号１０１０を状態保持部１００３に向けて出力する。状態保持部１００３は、異常検知信号１０１０に従って、例えばステートマシンを電源投入直後の状態にリセットするなど、ステートマシンを異常状態以外の一定の状態に設定する。
下記の式（１）はＡ〜Ｄの４つの状態がある場合の異常検知の論理の一例である。
ＡＢ＋ＡＣ＋ＡＤ＋ＢＣ＋ＢＤ＋ＣＤ＋ｎｏｔ（Ａ＋Ｂ＋Ｃ＋Ｄ）…（１）
式（１）が真値である時、Ａ〜Ｄの状態のうちに真値を持つ状態が無いか、あるいは２つ以上の状態が真値を持つことを示している。異常検知の論理が真値を示した時、異常検知手段は異常を検知したとする。尚、異常検知の論理は式（１）に限らず、これと論理的に等価であれば良い。ここで、式（１）はＡ〜Ｄの４状態の場合についてのものであるが、任意のｎ個の状態について拡張して適用できる。
ステートマシンをこのように構成することにより、不正な動作による異常状態を検知して、正しい状態に復帰させることができる。
（第５実施例）
図１１は本発明の第５実施例のブロック図である。第５実施例に係る半導体装置１１０１は、ステートマシン１１０２〜１１０６は含んで構成される。各ステートマシン１１０２〜１１０６は、基準クロック信号１１１０，１１１１に基づいて入出力信号１１１２を入出力する。これらステートマシン１１０２〜１１０６の全てあるいは一部は、上述した第１〜第４実施例の構成を有する。
これらのステートマシン１１０２〜１１０６は、基準クロック信号１１１０，１１１１に同期して動作し、第ｍの動作サイクル中の信号の状態に基づいて、第（ｍ＋１）の動作サイクル中の信号の状態が決定される。
このように構成した半導体装置では、全てあるいは一部のステートマシンにおいて、状態保持手段であるフリップフロップに対して維持条件の入力を必要としていないことで冗長性が低減されるので、回路が単純になり、デバッグ及びメンテナンス工数の削減が図れる効果が得られる。また、全てあるいは一部のステートマシンにおいて、遷移条件が成立した時にのみ同期パルス信号が生成されるので消費電力の低減が図れる。
本発明の他の実施例は、半導体装置を含む電子機器である。例えば電子計算機などは複数の半導体装置を構成要件として含み、同期して動作する部位が多い。また、ＬＡＮ接続装置のようなプロトコル制御装置等は、多数のステートマシンを含む半導体装置を有する。これらの電子機器においては、半導体装置の全部あるいは一部に本発明が適用されることで、本発明の効果がそれぞれの半導体装置で積み重ねられて、電子機器として達成される累積効果は多大となる。
【図１】
0003718853.tif 000002
【図２】
0003718853.tif 000003
【図３】
0003718853.tif 000004
【図４】
0003718853.tif 000005
【図５】
0003718853.tif 000006
【図６】
0003718853.tif 000007
【図７】
0003718853.tif 000008
【図８】
0003718853.tif 000009
【図９】
0003718853.tif 000010
【図１０】
0003718853.tif 000011
【図１１】
0003718853.tif 000012
【図１２】
0003718853.tif 000013
【図１３】
0003718853.tif 000014
【図１４】
0003718853.tif 000015
【図１５】
0003718853.tif 000016
【図１６】
0003718853.tif 000017
【図１７】
0003718853.tif 000018
【図１８】
0003718853.tif 000019
【図１９】
0003718853.tif 000020