JPH10261005A - 有限状態機械変換装置及び変換方法 - Google Patents

有限状態機械変換装置及び変換方法

Info

Publication number
JPH10261005A
JPH10261005A JP9068021A JP6802197A JPH10261005A JP H10261005 A JPH10261005 A JP H10261005A JP 9068021 A JP9068021 A JP 9068021A JP 6802197 A JP6802197 A JP 6802197A JP H10261005 A JPH10261005 A JP H10261005A
Authority
JP
Japan
Prior art keywords
state machine
finite state
transition
function
finite
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
Application number
JP9068021A
Other languages
English (en)
Inventor
Fumitaka Tamura
文隆 田村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP9068021A priority Critical patent/JPH10261005A/ja
Publication of JPH10261005A publication Critical patent/JPH10261005A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)
  • Complex Calculations (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

(57)【要約】 【課題】有限状態機械を扱うプログラムにおいて、その
前処理として、有限状態機械の与えられる入力値の変化
に伴う過渡的状態への遷移を除去し、さらに、有限状態
機械に与えられる入力値の変化に伴う不安定な状態遷移
が存在するか否かを判定する。 【解決手段】与えられた有限状態機械を反復二乗法を用
いて定常化有限状態機械に変換する。そして、この変換
と同時、または変換したのち、この定常化有限状態機械
が不安定な状態遷移を含むか否かを判定する。与えられ
た有限状態機械に含まれる無意味な過渡的状態からの遷
移先を効率的に変更することにより、二つの論理回路の
等価性の形式検証のような、有限状態機械を扱うプログ
ラムにかかる負荷を小さくできる。また、論理回路が不
安定な状態を含むか否かを判定することにより、設計さ
れた回路に含まれる誤りを見い出すことができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、有限状態機械変換
方法及びその装置に関する。
【0002】
【従来の技術】近年のコンピューター回路などの論理回
路の規模の増大にともない、回路の設計期間やテスト期
間を短縮するための技術、即ち、論理合成技術、シミュ
レーション技術、形式検証技術などが年々重要視されて
きている。これらの技術では、通常、順序回路を有限状
態機械を用いて数学的にモデル化し、この有限状態機械
に対して、状態の縮減、等価性の判定などの処理が行わ
れる。近年では、有限状態機械の要素となる遷移関数や
出力関数を二分決定ダイアグラムを用いてコンパクトに
表現する技術が発達したことにより、上記の処理を大規
模な有限状態機械に適用することが可能となった。
【0003】上記技術の中で、形式検証技術は、等価性
判定技術とモデルチェッキング技術に分けられる。前者
は、二つの回路の論理的等価性を判定する技術であり、
後者は、対象となる回路がユーザーの指定した論理的性
質を満たすか否かを判定する技術である。順序回路を対
象としたこれらの形式検証技術では、与えられた回路か
ら、これをモデル化する有限状態機械を構成するため
に、通常、次のような処理が行われる。まず、与えられ
た回路の入力信号全てを入力とする有限状態機械を作
る。そして、この有限状態機械の入力のうち、クロック
信号に対応するものを自動的、または、ユーザーによる
情報を利用して検出する。更に、与えられた回路が、ク
ロックのどのようなタイミングで状態遷移するかという
情報をユーザーから得て、これを元に、クロックを入力
信号として含ませない有限状態機械(同期機械と呼ぶ)
に構成する。同期機械における状態遷移は、同期機械自
身が内部に暗に持っているクロックによって、処与のタ
イミングで起きると考える。
【0004】一般に、複雑なフィードバッククループを
含んだネットリストの記述や、更に抽象度の低いトラン
ジスターレベルで記述された順序回路から構成した有限
状態機械は、クロックの変化などによって状態遷移する
とき、直ちに安定な状態に遷移しない場合がある。即
ち、いくつかの過渡的な状態を瞬時的に経由して、最終
的に安全な状態に遷移するような場合である。二つの順
序回路の等価性を検証する場合、この瞬時的に現れる過
渡的な状態遷移に伴う出力の違いのために、実際の回路
の働きは等価であるにもかかわらず、両者が非等価であ
ると判定してしまうことが起こり得る。そこで、与えら
れた有限状態機械から同期機械を構成するに先だって、
まず、有限状態機械を、クロック値が変化すると、過渡
的な状態遷移を行わず、直ちに安定な状態に遷移するよ
うな有限状態機械(定常化有限状態機械と呼ぶ)に変換
する方法が有効となる。そして、この変換の後、同期機
械を構成するなどの処理が行われる。
【0005】例えば、図27に示した(a)の回路と
(b)の回路を考える。これらは、どちらもクロックの
立ち下がりエッジに反応するD型フリップクロップをA
NDゲートや、ORゲートを用いて構成したものであ
り、論理的に等価な回路である。今、図27(a)の回
路と(b)の回路をモデル化した有限状態機械が、それ
ぞれ、図28(a)と(b)であるとする。これらの有
限状態機械の、入力d,clkの変化に対応する出力q
の振るまいは、それぞれ、図29(a)と(b)のよう
になる。この図からわかるように、単純に図28(a)
と(b)の有限状態機械の等価性を形式検証するだけで
は、クロック立ち下がり時に、図28(b)の過渡的状
態D′への遷移に伴う出力が図28(a)のものと異な
るため、両者は非等価と判定される。しかし、実際の回
路図27(a)と(b)では、この過渡的遷移に必要な
時間δは非常に短く、従って、ここで述べた違いは観測
されない。そして、この問題を解決するために、過渡的
遷移を含む図28(b)のような有限状態機械から、過
渡的遷移を含まない図28(a)のような有限状態機械
への変換を行うことが必要となる。
【0006】図30は、上に述べた有限状態機械変換方
法を用いて、二つの回路の等価性を形式検証する場合の
流れの一例を示したものである。まず、与えられた回路
1,2から有限状態機械を抽出して(ステップ31)、
回路への入力信号のすべてを入力とする有限状態機械
1,2を作成する。この有限状態機械1,2には過渡的
遷移が含まれているので、過渡的遷移を排除する処理を
行うことで(ステップ32)、定常化有限状態機械1,
2を得る。これらの定常化有限状態機械1,2をタイミ
ング情報を参照して変換し(ステップ33)、クロック
を入力信号として含まない同期機械1,2を得る。この
同期機械1,2に対して等価性の形式検証を行い(ステ
ップ34)、その結果を出力する(ステップ35)。
【0007】
【発明が解決しようとする課題】ところが、上記の有限
状態機械を定常化有限状態機械に変換する有限状態機械
変換方法のうち、現在知られているものには次のような
問題点がある。
【0008】・安定状態の存在の仮定の問題。
【0009】・繰り返しの回数の問題。
【0010】・遷移関係の利用の問題。
【0011】(1) 安定状態の存在の仮定の問題 安定状態の存在の仮定とは、変換元となる有限状態機械
の任意の状態から出発する任意の遷移は、たとえ過渡的
状態を経由しても、最終的には安定状態に到達するとい
う仮定である。しかし、時には、ある状態からの遷移先
が安定状態に行きつかず、入力が変化しない限り、いつ
までも状態遷移を続けるような不安定な場合があり得
る。通常、このような不安定性は、設計者の意図しない
誤りによって生じることが多い。このため、一般には、
安定状態の存在は仮定することができない。
【0012】(2) 繰り返しの回数の問題。
【0013】変換前の有限状態機械の状態数が多くなる
と、一般に、過渡的遷移の長さも長くなる。変換を行う
ための処理の繰り返し回数は、過渡的遷移の長さが長く
なっても、少なく抑制されることが望ましい。現在、処
理の繰り返しの回数のオーダーを、過渡的遷移の最大長
の対数で抑える方法が知られているが、この方法は、安
定状態の存在を仮定する必要がある。一方、安定状態の
存在を仮定する必要のない変換方法も知られているが、
その場合、処理の繰り返し回数は過渡的遷移の最大長に
比例する。
【0014】(3) 遷移関係の利用の問題。
【0015】変換を行うことのできる有限状態機械の規
模を大きくするために、二分決定ダイアグラムを利用す
る場合があるが、この場合、有限状態機械の状態遷移を
表現するには、遷移関係を用いる方法と、遷移関数を用
いる方法の二つが存在する。前者は、後者よりも多くの
情報を持ち、不完全有限状態機械の状態遷移まで記述す
ることが可能である。この半面、二分決定ダイアグラム
による前者の表現は、後者に比べて非常に多くのノード
数を必要とする。このため、決定的な有限状態機械のみ
を対象とするならば、状態遷移を遷移関数によって記述
して扱うことのできる方法が、処理時間と処理規模の面
で望まれる。しかし、現在知られている方法のうち、処
理の繰り返しのオーダーを過渡的遷移の最大長の対数で
抑えることのできるものは、状態遷移を遷移関係を用い
て表現する必要がある。
【0016】
【課題を解決するための手段】上記の問題点を解決する
ために、請求項1の有限状態機械変換装置は、有限個の
要素よりなる入力記号の集合と、有限個の要素よりなる
出力記号の集合と、有限個の状態を持つ状態集合と、前
記入力記号の集合と状態集合から状態集合への遷移を特
徴付ける遷移関数と、前記入力記号の集合と状態集合か
ら出力記号の集合への関係を特徴付ける出力関数とによ
って有限状態機械を構成する有限状態機械設定手段と、
前記有限状態機械に含まれている過渡的状態への遷移を
消去して定常化有限状態機械に変換する定常化有限状態
機械生成手段とを備えていることを特徴とする。
【0017】また、請求項6の有限状態機械変換方法
は、有限個の要素よりなる入力記号の集合と、有限個の
要素よりなる出力記号の集合と、有限個の状態を持つ状
態集合と、前記入力記号の集合と状態集合から状態集合
への遷移を特徴付ける遷移関数と、前記入力記号の集合
と状態集合から出力記号の集合への関係を特徴付ける出
力関数とによって有限状態機械を構成し、前記有限状態
機械に含まれている過渡的状態への遷移を消去して定常
化有限状態機械に変換することを特徴とする。
【0018】このような構成を有する請求項1または請
求項6の発明によれば、該有限状態機械のある状態が、
一個又は複数個の入力値が変化したとき、過渡的な状態
を経て安定な状態に遷移するならば、変換後の有限状態
機械は、この入力値の変化に対して、過渡的な状態への
遷移を行うことなしに、安定な状態に遷移するようなも
のとなる。その結果、有限状態機械によってモデル化し
た回路の比較検証などを容易かつ確実に実施できる。
【0019】請求項2の発明は、請求項1記載の有限状
態機械変換装置において、前記定常化有限状態機械生成
手段が、有限状態機械の遷移関数の各ビットに対する多
段遷移関数を反復二乗法を用いて求める反復二乗法処理
手段と、前記定常化有限状態機械の遷移関数及び出力関
数を決定する関数決定手段とを備えることを特徴とす
る。また、請求項7の発明は、請求項6記載の有限状態
機械変換方法において、前記定常化有限状態機械に変換
する処理は、有限状態機械の遷移関数の各ビットに対す
る多段遷移関数を反復二乗法を用いて求め、この多段遷
移関数に基づいて定常化有限状態機械の遷移関数及び出
力関数を決定することを特徴とする。
【0020】このような請求項2または請求項7の発明
によれば、反復二乗法を用いて変換の処理を行うので、
有限状態機械に不安定な状態がなければ、有限状態機械
に含まれる過渡的遷移の最大長の対数のオーダーの繰り
返しをするのみで、変換を終了することができる。
【0021】請求項3の発明は、前記請求項1に記載の
有限状態機械変換装置において、前記定常化有限状態機
械生成手段は、該有限状態機械の遷移関係の多段遷移関
係を反復二乗法を用いて求める反復二乗法処理手段と、
定常化有限状態機械の遷移関係及び出力関係を決定する
関係決定手段とを備えることを特徴とする。また、請求
項8の発明は、前記請求項6に記載の有限状態機械変換
方法において、前記定常化有限状態機械に変換する処理
は、該有限状態機械の遷移関係の多段遷移関係を反復二
乗法を用いて求め、この多段遷移関係に基づいて定常化
有限状態機械の遷移関係及び出力関係を決定することを
特徴とする。
【0022】このような請求項3または請求項6に記載
の発明によれば、遷移関係によって該有限状態機械の状
態遷移を表現した場合でも、本発明を適用することが可
能である。
【0023】請求項4の発明は、前記請求項1に記載の
有限状態機械変換装置において、前記有限状態機械に不
安定な状態遷移が存在するか否かの判定を行う不安定性
検出手段とを備えることを特徴とする。請求項9の発明
は、前記請求項6に記載の有限状態機械変換方法におい
て、前記有限状態機械に不安定な状態遷移が存在するか
否かの判定を行うことを特徴とする。請求項10の発明
は、前記請求項9に記載の有限状態機械変換方法におい
て、前記不安定な状態遷移の検出は、前記過渡的状態へ
の遷移の消去の処理と同時に行われることを特徴とす
る。
【0024】このような請求項4または請求項9の発明
によれば、有限状態機械のある状態が、複数個の入力値
が変化したとき、過渡的な状態遷移を経て周期的に遷移
を繰り返す不安定な状態に遷移する場合には、これを検
出してユーザーに報告することが可能になる。また、請
求項10の発明によれば、前記不安定な状態遷移の検出
を、前記過渡的状態への遷移の消去の処理と同時に行う
ことで、変換作業のより早い時期に不安定性の検出を行
うことができる。
【0025】請求項5の発明は、前記請求項1に記載の
有限状態機械変換装置において、前記定常化有限状態機
械を簡約化する有限状態機械簡約化手段とを備えること
を特徴とする。請求項11の発明は、前記請求項6に記
載の有限状態機械変換方法において、前記定常化有限状
態機械の出力関数と遷移関数の簡約化を行って、前記定
常化有限状態機械をさらに簡約化することを特徴とす
る。
【0026】このような請求項5または請求項11の発
明によれば、変換して得られた定常化有限状態機械を、
その定常性を利用することによって、より簡約化された
遷移関数や出力関数で表された最終有限状態機械に変換
することが可能である。
【0027】
【発明の実施の形態】以下、図面を参照しながら本発明
の一実施形態について説明する。なお、後述する実施形
態はコンピュータ上に実現され、実施形態の各機能は、
所定の手順(プログラム)がこのコンピュータを制御す
ることで実現される。例えば、入力部は、入力するプロ
グラムやデータの態様によって種々のものを採用するこ
とができ、キーボードやマウスなどの入出力装置、ネッ
トワーク接続装置、データ読み取り装置などを使用でき
る。また、各記憶部は、外部から入力したデータを蓄え
るためのものであり、磁気や光ディスク装置、半導体メ
モリ等の所望の装置を用いることができる。さらに、他
の部分は、コンピュータのソフトウェアによって構成さ
れることが典型的である。
【0028】本明細書における各「部」は、実施形態の
各機能に対応する概念的なもので、必ずしも特定のハー
ドウェアやソフトウェア・ルーチンに1対1には対応し
ない。同一のハードウェア要素が、場合によって異なっ
た部を構成する。例えば、コンピュータは、ある命令を
実行するときにある部となり、別の命令を実行するとき
は別の部となりうる。また、一つの部が、わずか1命令
によって実現される場合もあれば、多数の命令によって
実現される場合もある。したがって、本明細書では、以
下、実施形態の各機能を有する仮想的回路ブロック
(部)を想定して実施形態を説明する。また、本実施形
態における各手順の各ステップは、その性質に反しない
限り、実行順序を変更し、複数同時に実行し、また、実
行ごとに異なった順序で実行してもよい。
【0029】また、本発明をコンピュータのソフトウェ
アとして実現した場合には、そのソフトウェアを磁気あ
るいは光などの記録媒体に記録しておき、これを個々の
設計者が読み出して自己のコンピュータによって実行す
ることも、本発明の実施形態の一つである。
【0030】[A.第1実施形態] [1.概要] [1−1.有限状態機械変換装置]本発明の有限状態機
械変換装置の一実施形態の概要を、図1により説明す
る。図1に記載の有限状態機械変換装置は、コンピュー
タ上に実現される。このコンピュータは、中央演算装置
(CPU)1、キーボードやマウスなどの入力装置2、
CRTディスプレイやプリンタなどの出力装置3、及び
メモリやハードディスクなどの記憶装置4を備えてい
る。これらの各装置は、バス5によって接続され、相互
に情報が交換される。
【0031】本実施形態の変換装置は、このようなコン
ピュータ上において実行される次のような各部分を持つ
プログラムとして構成されている。
【0032】(1) 入力装置からの入力やファイルとして
与えられた順序回路に関する情報を基に、前記順序回路
をモデル化した有限状態機械を生成する有限状態機械設
定部10。
【0033】(2) 前記有限状態機械設定部から与えられ
た有限状態機械を、定常化有限状態機械に変換する定常
化有限状態機械生成部11。この定常化有限状態機械生
成部11は、与えられた有限状態機械に含まれている過
渡的状態への遷移を消去するものであって、遷移関数を
決定するのに必要な演算を行うための反復二乗法処理部
12と、前記反復二乗法処理部12で得られた演算結果
を基に遷移関数及び出力関数を決定する関数決定部13
とを有する。
【0034】(3) 前記生成部11によって得られた定常
化有限状態機械に不安定性があるか否かを検出する不安
定性検出部14。
【0035】(4) 前記不安定性検出部14で得られた情
報を基に、前記生成部11で得られた定常化有限状態機
械の遷移関数や出力関数をさらに簡約化する有限状態機
械簡約化部15。
【0036】[1−2.有限状態機械変換方法]図2
は、本発明に係る有限状態機械変換方法の全体のフロー
チャートである。この変換方法は、前記図1に示したよ
うな装置において、次のような手順で実行される。
【0037】まず、本有限状態機械設定部10は、その
入力として、任意の有限状態機械100を受け取る。こ
の有限状態機械100は、例えば、順序回路のクロック
とその他の入力に対する出力及び状態遷移の関係を数学
的にモデル化したものに対応する。
【0038】定常化有限状態機械生成部11は、遷移関
数に対する反復二乗法を用いることにより、有限状態機
械100から定常化有限状態機械102を生成する(過
渡的状態への遷移の消去ステップ101)。即ち、反復
二乗法処理部12によって、与えられた有限状態機械か
ら過渡的状態への遷移を消去するに当たって必要な多段
遷移関数を決定し、決定された多段遷移関数に基づいて
定常化有限状態機械の遷移関数及び出力関数が、関数決
定部13によって新たに決定される。このようにして得
られた定常化有限状態機械102は、有限状態機械10
0と同じ定常状態(安定状態か不安定状態)を持ち、か
つ、その中の安定状態においては有限状態機械100と
同じ出力をする。一方、任意の過渡的状態からの過渡的
遷移に関しては有限状態機械100と異なり、直ちに定
常化する。即ち、直ちに定常状態(安定状態か不安定状
態)に遷移するという性質を持つように構成される。こ
の性質により、定常化有限状態機械102は、順序回路
の瞬時的かつ本質的でない振舞いを除去したモデル化を
可能にする。
【0039】定常化有限状態機械生成部11の出力した
定常化有限状態機械102は不安定性検出部14に渡さ
れ、不安定な定常状態の存在が検出される(不安定性検
出ステップ103)。続いて、有限状態機械簡約化部1
5において、定常化有限状態機械102の定常性や、不
安定性検出ステップ103で検出した情報を元にして、
出力関数の簡約化、遷移関数の簡約化等の処理を行い、
最終有限状態機械105を出力し、全体の処理を終了す
る(有限状態機械簡約化ステップ104)。
【0040】[2.有限状態機械と定常化有限状態機
械]以下、本発明の入力となる有限状態機械、本発明で
考える安定性、定常化有限状態機械、定常化有限状態機
械生成部11による過渡的状態への遷移の消去ステップ
の働き、不安定性検出部14における不安定性検出ステ
ップの働き、有限状態機械簡約化部15における有限状
態機械簡約化ステップの働きに付いて順に述べる。
【0041】[2−1.有限状態機械]本発明の入力と
なる有限状態機械の定義を行う。
【0042】有限状態機械Mとは、図3に示すとおり、
入力記号の集合(以下、入力アルファベットと呼ぶ)
I、出力記号の集合(以下、出力アルファベットと呼
ぶ)O、有限個の要素よりなる状態の集合Σ、遷移関数
δ、出力関数ω、初期状態Sinitの6つの組を指定した
ものである。これを、M=(I,O,Σ,δ,ω,S
init)と表記する。ここで、遷移関数δは、Σ×Iから
Σへの関数であり、出力関数ωは、Σ×IからOへの関
数であり、初期状態Sinitは、Σのある一つの要素、即
ち、Sinit∈Σである。入力i∈Iが与えられたとき
の、状態δ∈Σの、遷移関数δによる遷移先をδ(s,
i)と表記し、出力関数ωによる出力をω(s,i)と
表記する。以下では、特に混乱を招かない限り、δ,ω
と、δ(s,i),ω(s,i)を区別しない。
【0043】[2−1−1.有限状態機械の具体例]図
4(a)は、有限状態機械の一具体例であり、入力アル
ファベットをI={0,1}、出力アルファベットをO
={0,1}、そして、状態の集合をΣ={A,B}と
している。状態は200のように、状態名を丸で囲むこ
とによって表す。各状態から出る矢印201に添えられ
た数字の組202と203は、矢印201の始点となる
状態において、入力値202が与えられると、矢印の終
点となる状態に遷移し、この遷移に伴う出力値が203
となることを意味している。図4(a)の例では、状態
Aにおいて入力0が与えられたとき、遷移先の状態はA
であり、これに伴い1を出力する。状態Aにおいて入力
1が与えられたとき、遷移先の状態はBであり、これに
伴い1を出力する。状態Bにおいて入力0が与えられた
とき、遷移先の状態はBであり、これに伴い1を出力す
る。状態Bにおいて入力1が与えられたとき、遷移先の
状態はAであり、これに伴い0を出力する。204は状
態名を二重丸で囲んだもので、これにより、Bが初期状
態であることを表現している。
【0044】大部分の順序回路は、電源を入れた直後の
内部状態が一意的に定まらない。このため、その順序回
路を有限状態機械でモデル化するとき、初期状態が指定
できない場合がある。図4(b)は、このような場合の
有限状態機械を表しており、初期状態を明示していな
い。初期状態を指定しない有限状態機械を以後M=
(I,O,Σ,δ,ω)と表記する。本発明では、この
ように初期状態が明示されない有限状態機械と、初期状
態が明示された有限状態機械とを、ほとんどの場合に全
く同様に扱うことが可能である。以下、主に、初期状態
が明示されない有限状態機械を対象にして説明を行う。
【0045】[2−1−2.多段遷移関数]次に、状態
の安定性を定義する上で重要になる多段遷移関数を定義
する。
【0046】有限状態機械M=(I,O,Σ,δ,ω)
のある状態sにおいて、同じ入力iがn(≧1)回続け
て与えられたときの、遷移関数δによる遷移先を与える
関数を多段遷移関数と呼び、多段遷移関数による遷移先
をδ(n,s,i)と表記する。多段遷移関数δ(n,
s,i)は遷移関数δ(s,i)から、次の式により再
帰的に定義される。
【0047】
【数1】 δ(1,s,i)= δ(s,i) δ(k+1,s,i)= δ(k,δ(s,i),i) ただし、k≧1 ここで定義した多段遷移関数は、
【数2】δ(n,δ(m,s,i),i)= δ(n+
m,s,i) ただし、m,n≧1 という性質を持つ。図5には、遷移関数δ(s,i)か
ら作った多段遷移関数δ(n,s,i)を示した。図5
では、簡単に説明するため、ある入力iに対する遷移の
特徴だけを示しており、状態名や、出力は省略してい
る。図5に見られるように、この有限状態機械では、入
力iに対し、δ(5,s,i)=δ(2,s,i)とな
り、n≧5では常にδ(n,s,i)=δ(n−3,
s,i)が満たされる。
【0048】本実施形態では、有限状態機械に対する処
理を効率化するために、順序づけされた二分決定ダイア
グラム(OBDD)を用いて、有限状態機械の(多段)
遷移関数δ及び出力関数ωを表現する。具体的には、有
限状態機械M=(I,O,Σ,δ,ω)の状態s∈Σが
rビットでs=[s0 ,s1 ,…sr-1 ]とコーディン
グされるとき、遷移関数δ(s,i)は、Σ×Iから
{0,1}の上のブール関数のr個の組[δ0 (s,
i),δ1 (s,i),…δr-1 (s,i)]によって
表される。そして、これらr個のブール関数を、OBD
Dを用いて表現する。また、Mの出力アルファベットO
の要素が、pビットでコーディングされるとき、出力関
数ω(s,i)は、Σ×Iから{0,1}の上へのブー
ル関数のp個の組[ω0 (s,i),ω1 (s,i),
…ωp-1 (s,i)]によって表される。そして、これ
らp個のブール関数を、OBDDを用いて表現する。
【0049】例えば、図4(b)に示した有限状態機械
の状態の集合Σ={A,B}は、要素数|Σ|が2であ
るから、r=1ビットでコーディングできる。今、状態
Aに[0]を、状態Bに[1]を対応づけることにする
と、遷移関数は、
【数3】 となる。同様に、出力もq=1ビットでコーディングさ
れ、出力関数は、
【数4】 となる。
【0050】[2−1−3.状態の安定性]図6は、過
渡的状態への遷移の消去ステップが入力として受け取る
有限状態機械の一例である。この有限状態機械は、入力
アルファベットをI={0,1}、出力アルファベット
をO={0,1}、そして、状態の集合をΣ={A,
B,C,D,E,F,G,H}としており、初期状態を
指定していない。例えば、状態Eから出発して、入力1
が与えられ続けると、過渡的状態Aを経由して、最終的
に状態Bに遷移し、これより後、入力1が与えられ続け
ても常に状態Bに留まっている。この性質を状態Bは
「入力1に対する安定状態」にあるという。また、例え
ば、状態Aから出発して、入力0が与えられ続けると、
過渡的状態Eと過渡的状態Fを経由して、状態Gに遷移
し、これより先、入力0が与えられ続けると、状態B、
状態C、状態Gの順に、これら三つの状態を周期的に遷
移し続ける。この性質を状態の集合{B,C,G}は
「入力0に対する定常状態集合」にあるという。
【0051】[2−1−4.定常状態集合、安定状態、
不安定状態]有限状態機械M=(I,O,Σ,δ,ω)
において、ある入力i∈Iが与えられ続けたとき、要素
数t≧1個のΣの部分集合S={s0 ,s1 ,…,s
t-1 }⊆Σに含まれる任意の状態が、常にSに含まれる
状態にのみ遷移し、かつ、Sに含まれる全ての状態に遷
移しうるとき、SをMの入力i∈Iに対する定常状態集
合と呼ぶ。Mの入力i∈Iに対する定常状態集合全体よ
りなる族をSTAT(M,i)と記述する。また、特
に、要素数が1の定常状態集合に含まれる状態を、Mの
入力i∈Iに対する安定状態と呼ぶ。Mの入力i∈Iに
対する安定状態全体よりなる集合をSTD(M,i)と
書く。逆に、要素数が2以上の定常状態集合に含まれる
状態を、Mの入力i∈Iに対する不安定状態と呼ぶ。
【0052】[2−1−5.過渡的状態、過渡的遷移]
有限状態機械M=(I,O,Σ,δ,ω)において、M
の入力i∈Iに対する定常状態集合に含まれない状態
を、Mの入力i∈Iに対する過渡的状態と呼ぶ。Mの入
力i∈Iに対する過渡的状態全体よりなる集合をTRA
N(M,i)と書く。また、過渡的状態からの遷移を過
渡的遷移と呼ぶ。これらの各集合の関係については、図
8に示すとおりである。
【0053】[2−1−6.具体例]図6の有限状態機
械Mでは、入力0に対しては、安定状態はなく、定常状
態集合は、{B,C,G}と{D,H}であり、過渡的
状態は、AとEとFであり、不安定状態は、BとCとG
とDとHである。入力1に対しては、安定状態はBのみ
であり、定常状態集合は、{B}と{C,F,G,H}
であり、過渡的状態は、AとDとEであり、不安定状態
は、CとFとGとHである。従って、
【数5】 STD(M,0)={} STAT(M,0)={{B,C,G},{D,H}} TRAN(M,0)={A,E,F} STD(M,1)={B} STAT(M,1)={{B},{C,F,G,H}} TRAN(M,1)={A,D,E} である。
【0054】[2−2.定常化有限状態機械]以下に、
定常化有限状態機械の定義を行う。入力として与えられ
た有限状態機械から、対応する定常化有限状態機械を生
成することが、過渡的状態への遷移の消去ステップの目
的である。
【0055】[2−2−1.定常化有限状態機械の定
義]有限状態機械M=(I,O,Σ,δ,ω)に対応す
る定常化有限状態機械 newM=(I,O,Σ, newδ,
newω)とは、Mと同じ入力アルファベット、出力アル
ファベット、及び同じ状態の集合を持つ。なお、初期状
態の指定された有限状態機械M=(I,O,Σ,δ,
ω,sinit)に対しては、 newMも同じ初期状態を持
つ。
【0056】[2−2−2.定常化有限状態機械の遷移
関数]定常化有限状態機械の遷移関数 newδは、以下の
性質を持つ。
【0057】(1) Mの入力i∈Iに対する定常状態集合
は、 newMにおいても、同じ入力iに対する定常状態集
合となり、かつ、この集合に含まれる状態は、入力iに
よってMの遷移先と同じ状態に遷移する。即ち、
【数6】 なお、この条件は、Mと newMは、任意の入力iに対し
て同じ安定状態を持つことも意味している。
【0058】(2) もしも、Mの入力i∈Iに対する過渡
的状態sが、入力iを与えられ続けたとき、定常状態集
合S∈STAT(M,i)に含まれる状態に遷移するな
らば、newMにおいて、この状態sは、入力iを与えら
れたとき、一回の遷移でSに含まれる状態に遷移する。
即ち、
【数7】 そして、出力関数 newωは、以下の性質を持つ。
【0059】(3) Mの入力i∈Iに対する安定状態から
の、入力iによる遷移に伴う出力は newMにおいても等
しい。即ち、
【数8】 (4) もしも、Mの入力i∈Iに対する過渡的状態sが、
入力iを与えられ続けたとき、安定状態に遷移するなら
ば、 newMにおいて、この状態sの入力iを与えられた
ときの遷移に伴う出力は、安定状態における出力に等し
い。即ち、
【数9】 なお、上の定義では、不安定状態からの遷移に伴う出力
や、不安定状態への過渡的遷移に伴う出力は、特に定め
ていない。
【0060】このように定義された定常化有限状態機械
と、定常化されていない有限状態機械とを、ある状態に
おいて入力iが1回与えられた場合にどのような状態に
遷移するかを比較する。その結果は、図9に示すとおり
である。この図9から明らかなように、定常化有限状態
機械と定常化されていない有限状態機械との相違は、図
中(c)のように、1回の入力iに対する過渡的状態へ
の遷移があるか否かによる。従って、本発明の目的は、
過渡状態への遷移(図中(c)に示す遷移)がない有限
状態機械を得ることにある。
【0061】[2−2−3.定常化有限状態機械の具体
例]図7に示した有限状態機械 newMは、図6の有限状
態機械Mに対応する定常化有限状態機械であり、上記の
性質を全て満たしている。例えば、Mの入力0に対する
定常状態集合{D,H}は、 newMにおいても、入力0
に対する定常状態集合となっている。更に、この定常状
態集合{D,H}に含まれる状態Dは、入力0が与えら
れたときMにおいても、 newMにおいても、状態Hに遷
移し、状態Hは、入力0が与えられたときMにおいて
も、 newMにおいても、状態Dに遷移する。また。Mの
入力0に対する過渡的状態Aは、入力0が与えられ続け
たとき、過渡的状態E,Fを経由して、定常状態集合
{B,C,G}に含まれる状態Gに到達し、その後、
{B,C,G}の中をサイクリックに遷移し続けるのに
対し、newMでは、入力0に対する過渡的状態Aは、入
力0が一度与えられたとき、過渡的状態を経由すること
なく、直ちに、定常状態集合{B,C,G}に含まれる
状態Bに到達し、その後、入力0が与えられ続けたと
き、{B,C,G}の中をサイクリックに遷移し続け
る。また、Mの入力1に対する安定状態Bは、 newMに
おいても、入力1に対する安定状態であり、この状態B
において、入力1が与えられ続ける限り。M、 newM共
に安定な出力値をを出力し続ける。そして、入力1でB
に遷移する過渡的状態AとEは、どちらも、この遷移に
伴って、安定な出力値0を出力する。
【0062】[3.定常化有限状態機械生成部]次に、
定常化有限状態機械生成部11において実施される過渡
的状態への遷移の消去ステップ、即ち、過渡的状態への
遷移の消去し、入力として与えられた有限状態機械の遷
移関数を変更して、対応する定常化有限状態機械を生成
するアルゴリズムを、図面に従って説明する。
【0063】[3−1.反復二乗法処理部]まず、定常
化有限状態機械生成部11において、定常化有限状態機
械の遷移関数を決定するのに必要な演算を行うための反
復二乗法処理部12の構成について、図10により説明
する。
【0064】反復二乗法処理部12は、与えられた有限
状態機械の遷移関数δを基にして、多段遷移関数を導出
する多段遷移関数導出部20を備えている。この導出部
20は、入力iが2のn乗回連続した与えられた場合の
多段遷移関数を求めるものである。本実施の形態では、
2のn乗ごとの遷移関数を繰り返し求めて、定常化有限
状態機械の遷移関数を決定することから、反復二乗法処
理と呼ぶ。前記導出部20は、導出しようとする多段遷
移関数のビット成分が既に求められたものであるか否か
を判定する計算必要性判定部21と、既に求めた多段遷
移関数のビット成分から新たな多段遷移関数のビット成
分を求める置換計算部22を備える。
【0065】導出部20は、さらに定常性判定部23と
周期値代入部24とを有する。定常性判定部23は、前
記のようにして得られた複数の多段遷移関数のビット成
分を比較して、得られた多段遷移関数のビット成分が既
に求めていた多段遷移関数のビット成分いずれかと一致
するかを判定する。周期値代入部24は、複数の多段遷
移関数のビット成分が一致する周期から、定常化有限状
態機械の遷移関数を決定するのに必要な変数を求める。
【0066】反復二乗法処理部12は、前記の導出部2
0に加え、すべてのビット成分についてnの計算が終了
したか否かを判定する判定部25、及びnをインクリメ
ントする加算部26を備える。
【0067】本実施形態において、この過渡的状態への
遷移の消去ステップは、前記図10の反復二乗法処理部
12によって実行される。即ち、この消去ステップは、
図11に示すように、反復二乗法処理ルーチン301、
多段遷移関数導出ステップ302、及び関数決定ステッ
プ304とから構成されている。さらに多段遷移関数導
出ステップ302は、図12に示すように、置換計算ス
テップ402、定常性判定ステップ403、及び同期値
代入ステップ404から構成されている。
【0068】[3−2.反復二乗法処理の基本的な考え
方]本実施の形態において、多段遷移関数導出ステップ
では、基本的にはδ(4,s,i)ならば、δ(4,
s,i)を構成するr個のビット全てを求める。そし
て、反復二乗法処理ルーチンが、多段遷移関数導出ステ
ップを呼び出すことによって、
【数10】δ(1,s,i),δ(2,s,i),δ
(4,s,i)…… を順に求めていく。
【0069】実際には、多段遷移関数のビット成分の中
には、多段遷移関数導出ステップで求めないで良い成分
もあるが、簡単のため全ての成分を求めると考える。以
下は、まず、混乱を避けるため、この簡単な場合におい
て説明を行なう。その場合のフローチャートを図13及
び図14に示す。なお、図13及び図14において、本
実施の形態の作用を表す図11及び図12と同一の作用
を果たすステップについては、同一の符号を付し、詳し
い説明は後述する。
【0070】今、図13の反復二乗法処理ルーチン10
1において、n=3回目の繰り返し処理を行なう場合を
具体的に考える。この時、n=1,n=2の時の反復二
乗法処理ルーチンは既に終っているので、
【数11】δ(1,s,i),δ(2,s,i),δ
(4,s,i) は既に求まっている。つまり、δ(1,s,i)を構成
するr個の成分、
【数12】δ0 (1,s,i),δ1 (1,s,i),
…,δr-1 (1,s,i) δ(2,s,i)を構成するr個の成分、
【数13】δ0 (2,s,i),δ1 (2,s,i),
…,δr-1 (2,s,i) δ(4,s,i)を構成するr個の成分、
【数14】δ0 (4,s,i),δ1 (4,s,i),
…,δr-1 (4,s,i) は全て求まっていまる。
【0071】n=3回目の繰り返しの際に、反復二乗法
処理ルーチン101が、多段遷移関数導出ステップ30
2を呼び出す。すると、多段遷移関数導出ステップ30
2では、図14のステップ402に示すように、これら
の「反復二乗法処理ルーチン101で以前に求めた」成
分を利用することによって、n=3の多段遷移関数δ
(8,s,i)を構成する各ビット成分を
【数15】δ0 (8,s,i),δ1 (8,s,i),
…,δr-1 (8,s,i) の順に求めて行く。例えば、k=1番目の成分δ
1 (8,s,i)を求める時には、δ(4,s,i)の
各成分、
【数16】δ0 (4,s,i),δ1 (4,s,i),
…,δr-1 (4,s,i) を、ステップ402の
【数17】δk (2n ,s,i)= δk (2n-1 ,δ
(2n-1 ,s,i),i) の式中のδ(2n-1 ,s,i)の部分に用いる。
【0072】このように多段遷移関数導出ステップ30
2では、第n回目に呼び出された多段遷移関数δ
(2n ,s,i)のrビットの全てを求め、反復二乗法
処理ルーチン101では、必要な全てのnに対する多段
遷移関数を求める。
【0073】[3−3.本実施の形態における反復二乗
法処理]以上が、基本的な考え方である。しかし、実際
には、この方法では、計算する必要のない計算を余分に
行なってしまうことがあり得る。そこで、本実施の形態
では、この基本的な考え方を更に効率化させる方法を示
した。以下、この方法を図11及び図12により説明す
る。
【0074】[3−3−1.変数初期化ステップ30
0]過渡的状態への遷移の消去ステップ101の入力と
なる有限状態機械をM=(I,O,Σ,δ,ω)とし、
状態Σはrビットでコーディングされるとすると、遷移
関数は、
【数18】 と表される。過渡的状態への遷移の消去ステップ101
の出力となる定常化有限状態機械102を、 newM=
(I,O,Σ, newδ, newω)とする。この遷移関数
は、
【数19】 と表される。変数初期化ステップ300では、各種変数
の初期化を行う。ここで、変数nは、反復二乗法処理ル
ーチン301で次に求める多段遷移関数δ(2n,s,
i)における遷移回数の指数を保持し、変数DONE
は、処理の済んだ遷移関数のビットよりなる集合を保持
する。
【0075】[3−3−2.反復二乗法処理]変数初期
化ステップ300で初期化を行った後、反復二乗法処理
部12は、その処理ルーチン301において、多段遷移
関数δ(2n ,s,i)を終了条件判定ステップ303
が満たされるまで、nをインクリメントしつつ、多段遷
移関数導出ステップ302を用いて求め続ける。終了条
件判定ステップ303は、多段遷移関数導出ステップ3
02で出力関数の全てのビットに対して処理が済んだと
きに真となる。反復二乗法処理ルーチン301の終了
後、関数決定ステップ304において、[ newδ0 , n
ewδ1 ,…、 newδr-1 ]と、 newωを最終的に求め
る。
【0076】[3−3−3.多段遷移関数導出部]次
に、多段遷移関数導出部20において、多段遷移関数δ
(2n ,s,i)を求める方法を、図12に示した多段
遷移関数導出ステップ302のフローチャートに従って
説明する。多段遷移関数導出部20では、反復二乗法処
理部12の処理ルーチン301で以前に求めた
【数20】 を元にして、多段遷移関数δ(2n ,s,i)をビット
ごとに導出する。多段遷移関数δ(2n ,s,i)の第
kビット目δk (2n ,s,i)を求める場合、まず、
計算必要性判定部21で、kが変数DONEの示す集合
に含まれているか否かを調べ、もし、含まれていれば、
δk (2n ,s,i)については計算を行わない(ステ
ップ401)。もし、含まれていなければ、置換計算部
22において、δk (2n ,s,i)を次の式を用いて
計算する(402)。
【0077】
【数21】 この式で、
【数22】Subst(f:s0 →g0 ,s1 →g1 ) は置換演算であり、関数fの引数s0 ,s1 …を、それ
ぞれ、関数g0 ,g1 …で置き換える演算を表してい
る。また、この式の中には計算をしなかったδ1 (2
n-1 ,s,i)(0≦1<r)が含まれていることがあ
る。その場合には、l∈DONEが満たされており、後
述する周期値代入部24において、変数μ(l)とν(l)
の値が求められているので(周期値代入ステップ40
4)、δ1 (2n- 1 ,s,i)は、既に求めた、
【数23】 の中の一つと等しい。より具体的には、
【数24】 である。
【0078】例えば、n=3回目の繰り返しの際に、反
復二乗法処理ルーチンから呼び出された、多段遷移関数
導出ステップで、前記の基本的な処理と同様にして、δ
1 (8,s,i)の第1ビット目の成分δ1 (8,s,
i)を求めたとする。続いて、定常性判定ステップ40
3で、δ1 (8,s,i)が、これまでに求めていた
【数25】δ1 (1,s,i),δ1 (2,s,i),
δ1 (4,s,i) のいずれかと一致するかどうかをチェックする。もし
も、一致することがないならば、処理は前記の基本的な
場合と同様に進むが、今は、例えば、
【数26】δ1 (8,s,i)=δ1 (2,s,i) となったとする。すると、今後n=4,n=5,n=6
…回目の反復二乗法処理ルーチンから呼び出された、多
段遷移関数導出ステップでは、δ1 (2n ,s,i)は
求める必要がなくなる。この理由は
【数27】 n=4では、δ1 (16,s,i)=δ1 (4,s,i) n=5では、δ1 (32,s,i)=δ1 (2,s,i) n=6では、δ1 (64,s,i)=δ1 (4,s,i) . . . が必ず満たされるからである。このことを一般的に現し
たのが式(5)である。そこで、変数DONEに1を含
ませることによって、k=1に関しては、今後の多段遷
移関数導出ステップでは計算の必要がなくなったことを
明示する。そして、図11の終了条件判定ステップ30
3において、全てのkに対して計算の必要がなくなった
時をもって、全体の繰り返し処理を終了する。
【0079】[3−3−4.定常性判定部]置換計算ス
テップ402で、δk (2n ,s,i)を求めた後、定
常性判定部23で、これが、既に求めていたδ
k (2m ,s,i)(0≦m<n)の中のいずれか一つ
と一致するか否かを判定する(ステップ403)。一致
するδk (2m ,s,i)が見い出された場合、周期値
代入部24で、変数ν(k) と、変数μ(k) に、それぞ
れ、n−mとmを代入する(ステップ404)。そし
て、変数DONEの要素にkを追加して、δk に関して
は、処理が済んだことを宣言する。整数μ(k) 、ν(k)
が任意の有限状態機械Mの任意の状態のコーディングに
対して存在し、ここで示したアルゴリズムが終了するこ
とは、Mの状態数が有限であることによって保証され
る。これらの変数は、t≧0の任意の整数に対して、
【数28】 という関係を満足させる。この関係により、式(5)が
正しいことが示される。以上の計算を、全ての出力関数
のビットk(0≦k<r)に対して行って、多段遷移関
数導出部20の計算を終了する。
【0080】[3−4.関数決定部]次に、関数決定部
13の構成及び作用を説明する。図15に示すとおり、
関数決定部13は、定常化有限状態機械の遷移関数を決
定するために必要な変数を定めるための大域的性質決定
部30、遷移関数を決定する遷移関数決定部31、及び
出力関数を決定する出力関数決定部32とから構成され
ている。以下、この関数決定部13の処理の流れを、図
16に示したフローチャートの符号に従って説明する。
【0081】[3−4−1.変数μ,ν,Nの決定]ま
ず、大域的性質決定部において、多段遷移関数導出ステ
ップ302で求めたμ(k) ,ν(k) (0≦k<r)か
ら、変数μ,νの値を、以下の式によって定める(ステ
ップ500)。
【0082】
【数29】 有限状態機械Mの任意の状態sから出発して、任意の入
力iが2のμ乗回続けて与えられれば、必ず、Mのiに
対する定常状態集合に含まれる状態に遷移している。続
けて、さらに、同じ入力iが与えられ続けると、一度入
った定常状態集合の中を遷移し続け、入力iが2のμ+
ν乗回続けて与えられたときには、入力iが2のμ乗回
続けて与えられたときと同じ状態に戻っている。
【0083】例えば、図5に示した例では、
【数30】 の関係が成り立っているので、もし、これがすべてのビ
ットの入力iについて成り立つならば、μ=1,ν=2
となる。 newδを正しく決定するためには、先ず、変数
μ,νを用いて、変数Nの値を以下の式によって定め
る。
【0084】
【数31】 このNは、
【数32】 という性質を有している。即ち、入力アルファベットI
の中のすべての入力iが与えられたときに、有限状態機
械Mのすべての入力iに対するすべての定常状態集合S
について、Nを状態数|S|で除した場合の余りが1に
なる。このことは、前記の式(6)と共に、どんな入力
iが与えられてもその入力iが続く限りすべての状態が
定常状態に遷移されていることが保証されている入力回
数と、その入力iがさらに続けて与えられたとき、すべ
ての状態が元にいた状態に戻っていることが保証されて
いる入力回数(2のμ+ν乗回)との差に1を加えた入
力iの入力回数Nが、定常化有限状態機械 newMの遷移
関数 newδを決定することを意味する。
【0085】[3−4−2.遷移関数決定ステップ]前
記のNの性質に基づき、遷移関数決定部31で、 newδ
(s,i)を、
【数33】 となるように求めれば(ステップ501)、 newδ
(s,i)は、定義5に示した定常化有限状態機械の遷
移関数の満たすべき性質(1)(2)を満たす。
【0086】この式(7)を計算するためには、 newδ
の各ビットごとに、
【数34】 と求める必要があるが、この式の右辺に現れる、δ
k (N,s,i)は、多段遷移関数導出ステップで求め
ていないことがある。このときには、多段遷移関数導出
ステップで求めた
【数35】 と、δk (1,s,i)とから、従来技術を利用してδ
k (N,s,i)を計算する。例えば、μ=4,ν=3
ならば、N=113=26 +25 +24 +1であるか
ら、
【数36】 となるので、置換演算を用いてこれを求めれば良い。
【0087】[3−4−3.出力関数決定ステップ]最
後に出力関数決定部32で、出力関数ωから、新しい出
力関数 newωを生成する方法を図17を用いて説明する
(ステップ502)。図17(a)は、有限状態機械M
=(I,O={0,1},Σ,δ,ω)のある状態の入
力にi∈Σに対する遷移を抜き出して示したものであ
る。簡単のため、状態名は省略してある。この有限状態
機械の遷移関数δから、遷移関数決定ステップによって
決定された newδを用いて有限状態機械 newM′=
(I,O={0,1},Σ, newδ,ω)を作った場
合、図17(b)に示すように、ある入力に対して同じ
安定状態に向かう遷移に伴う出力が、始状態によってま
ちまちになることが起こり得る。このため、定常化有限
状態機械の出力に関する条件(4) は必ずしも満たされな
い。なお、遷移に関する条件(1) (2) 及び出力に関する
もう一つの条件(3) は満たされている。そこで、有限状
態機械M=(I,O,Σ,δ,ω)において、入力アル
ファベットI中のある入力iが与えられ続けたとき、δ
によって最終的にiに対する安定状態に遷移する状態
は、遷移関数決定部31(ステップ501)で求めた n
ewδによって入力iが一度与えられるだけで同じ安定状
態に遷移することに着目して、出力関数決定部32(ス
テップ502)では、 newω(s,i)を、
【数37】 によって求める。
【0088】これにより求めた newω(s,i)を用い
た有限状態機械は、図17(c)の例のように、定常化
有限状態機械の出力に関する条件(4) をも満たすように
なるので、以上で求めた newδ, newωを遷移関数、出
力関数とするような有限状態機械 newM=(I,O,
Σ, newδ, newω)は、結局、定常化有限状態機械の
定義のすべての条件を満たす。過渡的状態への遷移の消
去ステップは最終的にこの newMを出力する。
【0089】本実施形態で述べた過渡的状態への遷移の
消去ステップ101を実現するアルゴリズムの特徴は、 1.安定でない定常状態を含む一般の有限状態機械を扱
うことができる。 2.繰り返しの回数が、log2 α+βのオーダーで押
えられる。 3.置換演算は、遷移関係ではなく、遷移関数に対して
行われる。 という点である。
【0090】ここでαは、有限状態機械M=(I,O,
Σ,δ,ω)の過渡的遷移の最大長であり、βは最大要
素数を持つ定常状態集合の要素数である。また、遷移関
数rel とは、Σ×I×Σから、{0,1}への関数であ
り、
【数38】 と定義される関数で、遷移関数δに比べて多くの情報を
含むため、不完全有限状態機械の状態遷移を表すことも
できる反面、OBDDで表現すると、一般に遷移関数よ
り多くのノードが必要となることが知られている。この
ため、遷移関係を用いた計算は、遷移関数を用いた計算
に比べ、メモリーと時間を多く消費することが多い。本
実施形態の過渡的状態への遷移の消去ステップ101
は、遷移関数を用いるため、メモリーと処理速度の両面
で優れ、更に、処理の繰り返しの回数が少ないので、更
に処理速度が速くなる。
【0091】なお、有限状態機械M=(I,O,Σ,
δ,ω)の状態の集合Σ中のある状態sをコーディング
するのに必要なビット数rが少なく、入力アルファベッ
トIの要素をコーディングするのに必要なビット数が多
い場合には、本実施形態で述べた遷移関数を使用して過
渡的状態への遷移の消去ステップを実現するよりも、遷
移関係を使って過渡的状態への遷移の消去ステップを実
現した方が処理効率が良くなる場合が存在する。また、
不完全有限状態機械に対して本発明を適用する場合に
も、遷移関係を使って過渡的状態への遷移の消去ステッ
プを実現する必要がある。この手法については、第4実
施形態で述べる。なお、不完全有限状態機械とは、出力
関数や遷移関数が入力及び状態に対する全関数でないも
のを言う。つまり、ある入力に対するある状態の出力値
や遷移先の状態が定まっていないような有限状態機械を
意味する。
【0092】[4.不安定性検出部]次に、不安定性検
出部14の働きを説明する。
【0093】不安定性検出部14は、図2のフローチャ
ートのステップ103に示すように、定常化有限状態機
械が、ある入力に対する不安定状態を持つか否かを判定
する。定常化有限状態機械は、与えられた有限状態機械
と同じ安定性を持つように構成してるため、不安定性検
出ステップは与えられた有限状態機械の不安定性を検出
するということもできる。不安定性検出ステップに、定
常化有限状態機械 newM(I,O,Σ, newδ, new
ω)の不安定性を検出させるためには、まず、次に示す
特徴関数χU (s,i)を求める。
【0094】
【数39】 従って、上式の右辺は newδk (s,i)と newδ
k ( newδk (s,i),i)とがすべての0≦k<r
に対して等しいときのみ0になり、そうでなければ1に
なる。定常化有限状態機械は、図9に示すように、任意
の状態において1回の任意の入力iが与えられた場合に
定常状態になる。この定常状態は、同じ入力iが続けて
入力されても各状態の遷移先が変わらない安定状態と、
遷移先が一定の複数の状態中で循環しながら変化する不
安定状態とがある。そのため、定常化有限状態機械に不
安定性がないということは、定常化有限状態機械の任意
の状態で、任意の入力が与えられた時の遷移先と、その
状態において、同じ入力が二度続けて与えられた時の遷
移先とが等しいことを意味する。式(11)は、このこ
とを意味している。
【0095】このため、今、s=su ,i=iu のと
き、χU (su ,iu )=1となるとすると、状態su
は、new Mの入力iu に対する不安定状態か、または入
力iuによって不安定状態に遷移する過渡的状態のいず
れかである。従って、特徴関数χU (s,i)が恒等的
に0であれば、 newM及びMには不安定性はなく、そう
でなければ、 newM及びMに不安定性があることが検出
される。
【0096】図7の例では、i=0に対して、s=A,
B,C,D,E,F,G,Hの全てでχU (s,i)=
1となり、i=1に対して、s=C,D,F,G,Hの
全てでχU (s,i)=1となるので、この有限状態機
械には不安定性があることが示される。
【0097】もし、不安定性が検出された場合には、例
えば、ユーザーにどの入力が与えられ続けたときに、ど
の状態が不安定状態となるかを示すことができる。そし
て、不安定性を指摘されたユーザーは、もし、不安定性
が意図しないものであるならば、例えば、この時点で処
理を中断して、誤りを修正し、修正後の有限状態機械
を、再び本発明のシステムに与えることができる。ま
た、もし、不安定性がユーザーの意図したものであるな
らば、処理を続行し、次に示す有限状態機械簡約化ステ
ップ104を用いて、定常化有限状態機械102を簡約
化させることができる。
【0098】[5.有限状態機械簡約化部] [5−1.有限状態機械簡約化部の構成]次に、前記の
ようにして得られた定常化有限状態機械をさらに簡約化
するための有限状態機械簡約化部15について説明す
る。この簡約化部15は、定常化有限状態機械の性質
や、不安定性検出ステップで求めたχU (s,i)を元
にして、出力関数簡約化、遷移関数簡約化等の処理を行
い、形式検証、論理合成、シミュレーションなどの処理
を、より効率良く行うことのできるような、最終有限状
態機械を生成することを目的とする。この簡約化部15
における簡約化の処理は、図18に示すフローチャート
に従って行われる。即ち、前記のようにして得られた定
常化有限状態機械が与えられると(ステップ800)、
その出力関数をより簡約化する(ステップ801)と遷
移関数をより簡約化し(ステップ802)、最終的な有
限状態機械を出力する(ステップ803)。
【0099】このような処理を行う簡約化部15は、図
19に示すように、出力関数の簡約化部40と遷移関数
の簡約化部50とから構成されている。出力関数の簡約
化部40は、特徴関数を利用して不安定な遷移に対応す
る出力の検出部41、特徴関数に基づいて出力関数の一
般化余因子を演算する生成部42、及び得られた一般化
余因子に基づいて簡約化された出力関数を生成する出力
関数生成部44とから成る。また、遷移関数の簡約化部
50は、初期状態にならなければ他の状態から遷移され
ることがない状態を検出するための検出部51、一般化
余因子を利用して関数の簡約化を行うための一般化余因
子生成部52、及び得られた一般化余因子に基づいて簡
約化された遷移関数を生成する遷移関数生成部53とか
ら成る。以下、これら各部の作用について説明する。
【0100】[5−2.出力関数の簡約化]まず、出力
関数の簡約化部40において、定常化有限状態機械 new
M=(I,O,Σ, newδ, newω)の出力関数 newω
を簡約化して、より少ないノード数のOBDDで表現す
る方法の一例を説明する。ある入力i∈Iが与えられた
とき、遷移関数 newδによって、入力iに対する任意の
不安定状態に遷移することのできる状態の集合は、式
(11)で定義した特徴関数χU (s,i)の値を1に
する状態の集合である。これらの状態からの、入力iに
よる遷移は、有限状態機械がモデル化する順序回路の不
安定な遷移に対応するので、これに伴う出力は、実際の
順序回路では、大きな意味を持たないことが多い。その
場合に、この遷移に伴う出力を自由に変更することが可
能である。そこで、このような出力を検出部41によっ
て検出し、一般化余因子生成部42によって、出力関数
newωの特徴関数χU による一般化余因子を求める。例
えば、出力関数 newωの特徴関数χU による一般化余因
子をO.Coudert 達の論文( “Verification of sequenti
al machines using boolean functional vectors "O.Co
udert, C.Berthet, and J.C.Mmadre, in Proc. IFIP In
ternational Workshop on Applied Formal Methods for
Correct VLSI Design, pp.111-128) に紹介されている
constrain 演算子を用いて求める。そして、求めた一般
化余因子を簡約化された新しい出力関数ω′とすれば、
簡約化された新しい出力関数ω′は newωよりも少ない
ノード数のOBDDによって表現される。
【0101】[5−3.一般化余因子]ここで、簡約化
部15において利用する一般化余因子についてその概略
を説明する。今、2つのブール関数f(x),χ(x)
があるとする。ただし、(x∈S)とする。この場合、
次式のとおり、f(x)が着目する関数であり、χ
(x)が特徴関数になっている。
【0102】
【数40】 また、図20(a)に示すように、集合Sには、a,
b,c,d,e,gの6つの要素が含まれ、各要素と着
目する関数f(x)との間には次の関係があるとする。
【0103】
【数41】 S= {a,b,c,d,e,g} f(a)= f(b)= 0 f(c)= f(d)= f(e)= f(g)= 1 一方、集合Sの要素のうち、図中点線で囲まれた要素
b,c,dは、χの値を1にする要素であり、それ以外
の要素a,e,gはχの値を0にするものである。
【0104】即ち、次式のとおりである。
【0105】
【数42】 χ(b)= χ(c)= χ(d)= 1 χ(a)= χ(e)= χ(g)= 0 ここで、着目する関数について特徴関数への簡約化を行
う場合、χによるfの一般化余因子fχは、Sから
{0,1}の関数で、次のように表される。
【0106】
【数43】 χ(x)= 1になるようなxに対しては、 fχ(x)= f(x) χ(x)= 0になるようなxに対しては、 fχ(x)= g(x) ここで、g(x)はSから{0,1}へのどのような関
数でも良くいろいろな定義の仕方がある。つまり、χ
(x)= 1を満たすx だけがf(x)にとって重要で
あり、それ以外のxに着目しなくて良いとき、fの値が
χ(x)= 1 を満たすxに対してだけ保たれているよ
うな関数がfχ(x)である。この一般化余因子fχ
(x)は、図20(a)で示した着目する関数f(x)
に比較して、図20(b)に示すように簡約化されたも
のであり、より少ないノードのOBDDによって表現す
ることができる。
【0107】[5−4.O.Coudert 達による一般化余因
子の定義]次に、O.Coudert 達による一般化余因子の定
義を説明する。まず、Sの要素の間に「距離」を導入す
る。Sの要素を2進数で表して、
【数44】 S∈x=[x0 ,x1 ,x2 ,………,xn-1 ] S∈y=[y0 ,y1 ,y2 ,………,yn-1 ] と書かれるとすると、xとySの間の距離を、
【数45】 と定義する。この場合、一つの要素から他の要素への距
離は、全て異なるように定義されている。
【0108】なお、先の一般化余因子の項で説明したS
={a,b,c,d,e,g}の例を当てはめると、各
要素間の距離は図21のようになる。この距離を用い
て、一般化余因子fχ(x)を次式のように定義する。
これを、O.Coudert の定義という。
【0109】
【数46】 χ(x)= 1になるようなxに対しては、 fχ(x)= f(x) χ(x)= 0になるようなxに対しては、 fχ(x)= g(y0 ) 式(12) ここで、y0 は、χ(x)= 1を満たすy中で、xに一
番近いものとする。この例を図22に示す。
【0110】以上の定義を、次式のようにしてp次元ブ
ール関数ベクトルfに拡張する。
【0111】
【数47】 図23(a)は、この式における集合Sとp次元ブール
関数ベクトルfとの関係を示すものである。ここで、集
合χは、χ(x)=1を満たすSの部分集合、Im
(χ)は、ブール関数ベクトルfによるχの要素の像(I
mage) である。この時、ブール関数ベクトルfχは、次
式に示すように、その成分ごとに一般化余因子をとる。
【0112】
【数48】 前記の式(12)に示すように、O.Coudert の定義で
は、χ(x)= 0になるようなxに対しては、fχ
(x)= g(y0 )とした。そして、このy0 をχに属
する要素とχに属しない要素との間の距離と言う概念を
導入することにより、χ(x)= 1となるようなf
(x)と関連づけて表現した。即ち、図23(b)に示
すように、p次元ブール関数ベクトルfによるχの要素
の像(Image) は、χ(x)=1を満たす要素が反映され
るのみならず、χ(x)=0となる集合Sの要素もχ
(x)=1となる要素と関連づけられて表現されること
になる。
【0113】この一般化余因子の考え方を定常化有限状
態機械の出力関数ωに当てはめると、すべての状態から
の出力関数ωが着目する関数に当たり、χU(s,i)
が特徴関数に相当する。そこで、特徴関数χU (s,
i)= 1とする状態、即ち、入力iによって任意の不安
定な状態に遷移することのできる状態からの遷移に伴う
出力は順序回路で大きな意味を持たない。そこで、出力
関数ωについて、特徴関数χU (s,i)= 0とする状
態(安定状態)に対応する出力を表す一般化余因子を求
め、これを簡約化された新たな出力関数ω′とする。こ
れにより、簡約化前の出力関数 newMより少ないノード
で表現される新たな出力関数ω′が得られる。
【0114】[5−5.遷移関数の簡約化]次に、遷移
関数の簡約化部50において、定常化有限状態機械 new
Mの遷移関数 newδを簡約化して、より少ないノード数
のOBDDで表現する方法の一例を説明する。
【0115】一般の有限状態機械 newMにおいて、定常
状態は、安定状態及び不安定状態のいずれかである。そ
して、定常状態は、入力iが与えられたときに過渡的状
態に遷移することがない。さらに、定常化有限状態機械
newMにおいては、入力iが与えられた場合に、任意の
遷移後の状態s′となり得る状態sの集合が、定常状態
の集合を表している。また、全ての状態Σの中で、この
定常状態以外の状態が過渡的状態に相当する。
【0116】このような定常化有限状態機械 newMの入
力iに対する定常状態の集合は、次の特徴関数χS
(s,i)の値を1にする状態sの集合である。そこ
で、本実施の形態の過渡的状態検出部51においては、
次のような特徴関数を利用して、過渡的状態を判定す
る。
【0117】
【数49】 この特徴関数χSから、新しく特徴関数χM(s)を次
のように定義する。
【0118】
【数50】 この特徴関数χMの値を0にする状態は、任意の入力i
に対して定常化有限状態機械 newMの過渡的状態とな
る。図7の例では状態A及びEがこのような状態になっ
ている。これらの過渡的状態は、決して他の状態から遷
移されることはなく、初期状態にならない限り、到達不
可能な状態である。そこで、これらの到達不可能な状態
を取り除いてしまうか、または、遷移先を適当なχM
(s)=1を満たす状態に替えてしまうことができる。
【0119】例えば、出力関数を簡約化する方法と同様
に、一般化余因子生成部52によって newδのχMによ
る一般化余因子を求め、これを新たに遷移関数δ′とす
れば、δ′は newδより少ないノード数のOBDDによ
って表現される。一般化余因子として、先出のO.Couder
t 達の定義によるconstrain 演算子を用いるならば、簡
約化された遷移関数δ′による遷移によっても、χMの
値を0にする状態は到達不可能な状態である性質を保っ
ている。そして、更に有限状態機械のリセット可能性な
どの性質も保存される。
【0120】なお、前記の過渡的状態が得られた場合、
もし、最初に与えられた有限状態機械が初期状態の指定
されたものM=(I,O,Σ,δ,ω、sinit)であ
り、かつ、χM(sinit)=0ならば、この処理に先だ
って適当なi∈Iを選び、s′init= newδ(sinit
i)を初期状態と定義しなおす必要がある。
【0121】このようにO.Coudert の定義による一般化
余因子では、特徴関数が0となる要素であっても、簡略
化された一般化余因子によって表現することが可能にな
る。このO.Coudert の定義による一般化余因子によって
遷移関数 newδを簡略化した場合には、χMの値を0に
する状態が到達不可能な状態である性質や、有限状態機
械のリセット可能性などの性質も保存される。
【0122】[6.得られた最終有限状態機械の出力]
図2に示す簡約化ステップ104において以上に述べた
出力関数や遷移関数の簡約化を行った後は、このステッ
プ104で得られた簡約化された有限状態機械M′=
(I,O,Σ,δ′,ω′(,s′init))を、最終有
限状態機械として出力する(ステップ105)。
【0123】[7.第1実施形態の効果]以上のとお
り、第1実施形態によれば、有限状態機械を変換する際
に、該有限状態機械のある状態sが、一個又は複数個の
入力値が変化したとき過渡的な状態遷移を経て安定な状
態s′に遷移するならば、変換後の有限状態機械は、こ
の入力値の変化に対して、状態sが過渡的な状態遷移を
経由することなしに安定な状態s′に遷移するようなも
のとなる。一方、該有限状態機械のある状態sが、複数
個の入力値が変化したとき過渡的な状態遷移を経て周期
的に遷移を繰り返す不安定な状態に遷移する場合には、
これを検出し、ユーザーに報告するとともに、変換後の
有限状態機械は、この入力値の変化に対して、状態s
が、過渡的な状態遷移を経由することなしに、周期的に
遷移を繰り返す不安定な状態に遷移するようなものとな
る。この変換の処理は、反復二乗法を用いるため、不安
定な状態がなければ、該有限状態機械に含まれる過渡的
遷移の最大長の対数のオーダーの繰り返しをするのみで
終了することが可能である。
【0124】[B.第2実施形態]第1実施形態では、
図2のフローチャートに示したように、不安定性検出ス
テップ103と過渡的状態への遷移の消去ステップ10
1とを個別に処理したが、より効率的に処理を行うため
に、不安定性検出ステップ103を過渡的状態への遷移
の消去ステップ101の内部で処理することも可能であ
る。このためには、図12に示した、過渡的状態への遷
移の消去ステップの周期値代入ステップ404を図24
のように変更する。即ち、周期値代入ステップ404
で、ν(k) =n−mとするときに(ステップ404
0)、ν(k) ≠1ならば(ステップ4041)、この時
点で不安定な状態遷移があると判定する(ステップ40
42)。また、ν(k) =1 ならばδk (2n+1 ,s,
i)を計算し(ステップ4044)、これがδ
k (2n ,s,i)と等しくないとき、不安定な状態遷
移があると判定する。
【0125】もし、処理に先だって、有限状態機械の不
安定性をユーザーが意図していないとわかっているなら
ば、不安定な状態遷移があると判断したとき、直ちに処
理を中断することができる(ステップ4043)。
【0126】[C.第3実施形態]第1実施形態では、
有限状態機械簡約化ステップの目的を、形式検証、論理
合成、シミュレーションなどの処理を、より効率良く行
うことのできるような簡約化された有限状態機械を生成
することとした。ここでは、有限状態機械の不安定性が
ユーザーの意図したものである場合に、有限状態機械簡
約化ステップによって、不安定な状態遷移に伴う出力を
不安定値に書き換える方法を説明する。ここで述べる手
法により、例えば、不安定な状態遷移を含む二つの有限
状態機械の等価性の形式検証などが可能となる。
【0127】不安定値‘X’を含む演算をOBDDを用
いて行うには、例えば、出力関数等のそれぞれのビット
ωi に対して二つのOBDD:δH ,δL を割り当て
て、δH =1,δL =0の時 ωi =1、δH =0,δ
L =1の時ωi =0、δH =1,δL =1の時 ωi =
‘X’と定義する手法がある。しかし、この手法はOB
DDのノードを多く必要とするため、第3実施形態では
OBDDを拡張したマルチターミナルBDD(MTBD
D)を導入する手法を述べる。
【0128】MTBDDは、非終端ノードは通常のOB
DDと同様に0,1の二つの枝を持ち、終端ノードは
0,1以外のいくつかの定数値をも持ち得ることを特徴
とする。ここでは、図25に示すとおり、0,1以外の
定数値として、不安定値‘X’を取りうるMTBDDを
導入する。そして、式(11)で定義した特徴関数χU
(s,i)を用いて、この値を1にするような、入力i
による状態sからの遷移に伴う出力を、不安定値‘X’
に置き換える。このためには、新しい出力関数ω′を次
のように構成すれば良い。
【0129】
【数51】 なお、遷移関数δは、第1実施形態に示した方法と同様
にして簡約化することができ、これをδ′とする。そし
て、δ′、ω′を、それぞれ、遷移関数、出力関数とす
るような有限状態機械を、第3実施形態における有限状
態機械簡約化ステップの出力とする。
【0130】[D.第4実施形態]本実施形態では、遷
移関係を使って過渡的状態への遷移の消去ステップを実
現する。この方法を用いた場合、有限状態機械M=
(I,O,Σ,δ,ω)の状態s∈Σをコーディングす
るのに必要なビット数rが少なく、逆に、入力アルファ
ベットIの要素をコーディングするのに必要なビット数
pが多いときに、第1実施形態で述べた方法よりも処理
効率がよくなることがある。また、ここで述べる方法
は、不完全有限状態機械にも適用することができる。
【0131】まず、図26のフローチャートに示すよう
に、与えられた有限状態機械Mの遷移関数δ(s,i)
から、遷移関係 rel(s,i,f)を、式(10)を満
たすように構成する(ステップ901,902)。そし
て、多段遷移関係 rel(n,s,i,f)を、多段遷移
関数と同様に、
【数52】 によって定義する。すると、任意のn≧1に対し、
【数53】 が満たされるので、この式に従って、反復二乗法処理ル
ーチンにおいてn=1から順にrel (2n ,s,i,
f)を求める繰り返しを行う(ステップ903)。この
過程で、
【数54】 を満たすmが見つかれば、ここで繰り返しを終了し、ν
=n−m,μ=mとする(ステップ904)。これら二
つの変数の意味は、第1実施形態に現れたものと等し
い。そこで、更に変数Nを式(6)によって求める。こ
のNを用いて、新しい遷移関係 newrel (s,i,f)
【数55】 なるように定め(ステップ905)、この遷移関係か
ら、遷移関数 newδを定める(ステップ906)。最後
に、第1実施形態同じく、出力関数 newωを式(9)に
よって定めて(ステップ907)、 newδ, newωをそ
れぞれ、遷移関数、出力関数とする有限状態機械を new
Mとして出力する。
【0132】
【発明の効果】本発明にかかる有限状態機械変換装置及
び変換方法によれば、定常化有限状態機械の定常性によ
って、与えられた有限状態機械を簡潔化された遷移関数
や出力関数で表された最終有限状態機械に変換する。そ
の結果、本発明を用いることにより、有限状態機械に含
まれる無意味な過渡的遷移による論理的な相違点に煩わ
されることなく、二つの回路の等価性の形式検証などの
処理を非常に効率良く行うことができる。
【図面の簡単な説明】
【図1】本発明の有限状態機械変換装置の一実施形態の
構成を示すブロック図。
【図2】図1の有限状態機械変換装置の動作を示すフロ
ー図。
【図3】有限状態機械の定義を説明する図。
【図4】有限状態機械の一具体例を示す図。
【図5】多段遷移関数を説明する図。
【図6】本発明が扱う有限状態機械の一具体例を示す
図。
【図7】本発明の一実施形態によって変換された定常化
有限状態機械を示す図。
【図8】有限状態機械がとる各状態の関係を示す図。
【図9】定常化有限状態機械と定常化されていない有限
状態機械の特徴を比較する図。
【図10】本発明の一実施形態の反復二乗処理部の構成
を示すブロック図。
【図11】本発明の一実施形態の過渡的状態への遷移の
消去ステップの動作を示すフロー図。
【図12】本発明の一実施形態の過渡的状態への遷移の
消去ステップにおける多段遷移関数導出ステップの動作
を示すフロー図。
【図13】図11の過渡的状態への遷移の消去ステップ
の基本的な動作を示すフロー図。
【図14】図12の過渡的状態への遷移の消去ステップ
における多段遷移関数導出ステップの基本的な動作を示
すフロー図。
【図15】本発明の一実施形態における関数決定部の構
成を示すブロック図。
【図16】本発明の一実施形態の過渡的状態への遷移の
消去ステップにおける関数決定ステップの動作を示すフ
ロー図。
【図17】前記図16の関数決定ステップにおける出力
関数を決定するアルゴリズムを示す図。
【図18】本発明の一実施形態における関数の簡約化ス
テップを示すフロー図。
【図19】本発明の一実施形態における有限状態機械簡
約部の構成を示すブロック図。
【図20】一般化余因子を利用した出力関数の簡約化の
アルゴリズムを示す図。
【図21】出力関数の簡約化で利用するO.Coudert によ
る一般化余因子の定義を説明するための図で、集合の各
要素の距離を説明する図。
【図22】図21の集合の各要素間の距離に基づく特徴
関数と要素との関係を示す図。
【図23】O.Coudert の定義による一般化余因子をp次
元ブール関数ベクトルに拡張した場合において、出力関
数が簡約化される状態を示す図。
【図24】本発明の第2の実施形態における周期値代入
ステップを説明するフロー図。
【図25】本発明の第3実施形態で利用するマルチター
ミナルOBDDを説明する図。
【図26】遷移関係を利用して有限状態機械を表現し
た、本発明の第4実施形態の動作を説明するフロー図。
【図27】過渡的遷移による問題点の説明するための2
種類のD型フリップフロップ回路(a)(b)を示す回
路図。
【図28】図27の回路をモデル化した有限状態機械
(a)(b)を示す図。
【図29】図27の回路(a)(b)の出力特性を示す
を示す図。
【図30】等価性の形式検証に流れにおいて、有限状態
機械変換方法を適用する場合の一例を示す図。
【符号の説明】
10…有限状態機械設定部 11…定常化有限状態機械生成部 12…反復二乗法処理部 13…関数決定部 14…不安定性検出部 15…有限状態機械簡約化部 20…多段遷移関数導出部 21…計算必要性判定部 22…置換計算部 23…定常性判定部 24…周期値代入部 25…nの計算の終了条件判定部 26…nの加算部 30…大域的性質決定部 31…遷移関数決定部 32…出力関数決定部 40…出力関数の簡約化部 41…不安定な遷移に対応する出力の検出部 42…一般化余因子生成部 50…遷移関数の簡約化部 51…他の状態から遷移されることのない状態の検出部 52…一般化余因子生成部 100…有限状態機械 101…過渡的状態への遷移の消去ステップ 102…定常化有限状態機械 103…不安定性検出ステップ 104…有限状態機械簡約化ステップ 105…最終有限状態機械

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 有限個の要素よりなる入力記号の集合
    と、有限個の要素よりなる出力記号の集合と、有限個の
    状態を持つ状態集合と、前記入力記号の集合と状態集合
    から状態集合への遷移を特徴付ける遷移関数と、前記入
    力記号の集合と状態集合から出力記号の集合への関係を
    特徴付ける出力関数とによって有限状態機械を構成する
    有限状態機械設定手段と、 前記有限状態機械に含まれている過渡的状態への遷移を
    消去して定常化有限状態機械に変換する定常化有限状態
    機械生成手段とを備えていることを特徴とする有限状態
    機械変換装置。
  2. 【請求項2】 前記定常化有限状態機械生成手段が、有
    限状態機械の遷移関数の各ビットに対する多段遷移関数
    を反復二乗法を用いて求める反復二乗法処理手段と、 前記定常化有限状態機械の遷移関数及び出力関数を決定
    する関数決定手段とを備えることを特徴とする請求項1
    記載の有限状態機械変換装置。
  3. 【請求項3】 前記定常化有限状態機械生成手段は、該
    有限状態機械の遷移関係の多段遷移関係を反復二乗法を
    用いて求める反復二乗法処理手段と、定常化有限状態機
    械の遷移関係及び出力関係を決定する関係決定手段とを
    備えることを特徴とする請求項1に記載の有限状態機械
    変換装置。
  4. 【請求項4】 前記有限状態機械に不安定な状態遷移が
    存在するか否かの判定を行う不安定性検出手段とを備え
    ることを特徴とする請求項1に記載の有限状態機械変換
    装置。
  5. 【請求項5】 前記定常化有限状態機械を簡約化する有
    限状態機械簡約化手段とを備えることを特徴とする請求
    項1に記載の有限状態機械変換装置。
  6. 【請求項6】 有限個の要素よりなる入力記号の集合
    と、有限個の要素よりなる出力記号の集合と、有限個の
    状態を持つ状態集合と、前記入力記号の集合と状態集合
    から状態集合への遷移を特徴付ける遷移関数と、前記入
    力記号の集合と状態集合から出力記号の集合への関係を
    特徴付ける出力関数とによって有限状態機械を構成し、 前記有限状態機械に含まれている過渡的状態への遷移を
    消去して定常化有限状態機械に変換することを特徴とす
    る有限状態機械変換方法。
  7. 【請求項7】 前記定常化有限状態機械に変換する処理
    は、有限状態機械の遷移関数の各ビットに対する多段遷
    移関数を反復二乗法を用いて求め、 この多段遷移関数に基づいて定常化有限状態機械の遷移
    関数及び出力関数を決定することを特徴とする請求項6
    記載の有限状態機械変換方法。
  8. 【請求項8】 前記定常化有限状態機械に変換する処理
    は、該有限状態機械の遷移関係の多段遷移関係を反復二
    乗法を用いて求め、この多段遷移関係に基づいて定常化
    有限状態機械の遷移関係及び出力関係を決定することを
    特徴とする請求項6に記載の有限状態機械変換方法。
  9. 【請求項9】 前記有限状態機械に不安定な状態遷移が
    存在するか否かの判定を行うことを特徴とする請求項6
    に記載の有限状態機械変換方法。
  10. 【請求項10】 前記不安定な状態遷移の検出は、前記
    過渡的状態への遷移の消去の処理と同時に行われること
    を特徴とする請求項9に記載の有限状態機械変換方法。
  11. 【請求項11】 前記定常化有限状態機械の出力関数と
    遷移関数の簡約化を行って、前記定常化有限状態機械を
    さらに簡約化することを特徴とする請求項6に記載の有
    限状態機械変換方法。
JP9068021A 1997-03-21 1997-03-21 有限状態機械変換装置及び変換方法 Pending JPH10261005A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9068021A JPH10261005A (ja) 1997-03-21 1997-03-21 有限状態機械変換装置及び変換方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9068021A JPH10261005A (ja) 1997-03-21 1997-03-21 有限状態機械変換装置及び変換方法

Publications (1)

Publication Number Publication Date
JPH10261005A true JPH10261005A (ja) 1998-09-29

Family

ID=13361754

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9068021A Pending JPH10261005A (ja) 1997-03-21 1997-03-21 有限状態機械変換装置及び変換方法

Country Status (1)

Country Link
JP (1) JPH10261005A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016048462A (ja) * 2014-08-27 2016-04-07 日本電信電話株式会社 曖昧性解消装置、方法、及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016048462A (ja) * 2014-08-27 2016-04-07 日本電信電話株式会社 曖昧性解消装置、方法、及びプログラム

Similar Documents

Publication Publication Date Title
Codetta-Raiteri The conversion of dynamic fault trees to stochastic Petri nets, as a case of graph transformation
US6536031B2 (en) Method for generating behavior model description of circuit and apparatus for logic verification
JP4988758B2 (ja) マルチサイクル・クロック・ゲーティングのための方法および装置
US7739635B2 (en) Conjunctive BDD building and variable quantification using case-splitting
EP1706833A2 (en) System and method for modeling, abstraction, and analysis of software
JP4759392B2 (ja) 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
US20040123249A1 (en) Apparatus and method for estimating power consumption
US6751582B1 (en) Method and system for enhanced design validation through trace tailoring
US9727676B1 (en) Method and apparatus for efficient generation of compact waveform-based timing models
JP5229119B2 (ja) モデル生成プログラム、方法及び装置
US8418119B2 (en) Logical circuit netlist reduction and model simplification using simulation results containing symbolic values
TaŞiran et al. Language containment of non-deterministic ω-automata
JP2002108958A (ja) 回路設計システム、回路設計方法および回路設計プログラムを格納したコンピュータ読取り可能な記録媒体
JP5640790B2 (ja) 検証支援プログラム、検証支援装置、および検証支援方法
JPH10261005A (ja) 有限状態機械変換装置及び変換方法
JP6261669B2 (ja) クエリ校正システムおよび方法
CN116384297A (zh) 一种芯片时钟约束文件的生成方法
Wilke {\omega}-Automata
Schneider et al. Structuring hardware proofs: first step towards automation in a higher-order environment
Moreno De Bruijn sequences and de Bruijn graphs for a general language
US7483819B2 (en) Representing data having multi-dimensional input vectors and corresponding output element by piece-wise polynomials
JP2019153047A (ja) 生成装置、生成方法及びプログラム
WO2022070422A1 (ja) 計算機システム及び文字認識方法
JP3660097B2 (ja) 論理回路の形式検証装置及び検証方法
US8666925B1 (en) Method for parallel computation of a finite state machine