(57)【特許請求の範囲】
【請求項１】
制御対象回路と制御装置回路とから構成される制御系回路において、前記制御対象回路のモデルと前記制御系回路の仕様モデルとが与えられた場合に、前記制御装置回路のモデルを自動設計するデジタル回路の自動設計装置であって、
前記制御対象回路のモデルが所定の設計記述言語で記述された第１の制御対象モデルを入力する制御対象入力手段と、
前記第１の制御対象モデルから、有限状態機械のモデルで表現された第２の制御対象モデルを作成する制御対象モデル作成手段と、
作成された前記第２の制御対象モデルを記憶する制御対象モデル記憶手段と、
前記制御系回路の仕様モデルが所定の設計記述言語で記述された第１の制御仕様モデルを少なくとも入力する制御仕様入力手段と、
少なくとも前記第１の制御仕様モデルから、有限状態機械のモデルで表現された第２の制御仕様モデルを作成する制御仕様モデル作成手段と、
前記第２の制御仕様モデルを記憶する制御仕様モデル記憶手段と、
前記制御対象モデル記憶手段に記憶された第２の制御対象モデルと、前記制御仕様モデル記憶手段に記憶された第２の制御仕様モデルとの論理積をとることによって、前記制御装置回路の合成モデルである制御装置合成モデルを作成するモデル合成手段と、
前記第２の制御対象モデルと前記第２の制御仕様モデルとから、前記第２の制御仕様モデルの変数の総ての状態と、この総ての状態に対して前記第２の制御対象モデルの変数がとりうる状態との関係を示す可制御模倣関係を求める可制御模倣関係計算手段と、
前記可制御模倣関係を記憶する可制御模倣関係記憶手段と、
前記制御装置合成モデルが、前記制御系回路の仕様を満足する制御が可能なモデルであるか否かを、前記可制御模倣関係に基づいて判定する制御可能性判定手段と、
前記制御装置合成モデルと前記可制御模倣関係とから、前記制御装置合成モデルの規模を縮小したモデルである許容動作モデルを作成する許容動作モデル作成手段と、
作成された前記許容動作モデルを記憶する許容動作モデル記憶手段と、
前記許容動作モデルを用いて、その規模を更に縮小可能な制御ルールを決定する制御ルール決定手段と、
前記許容動作モデルと前記制御ルールとの論理積をとることによって、有限状態機械のモデルで表現された制御装置モデルを作成する制御装置モデル作成手段と、
を備えたことを特徴とするデジタル回路の自動設計装置。
【請求項２】
前記制御装置モデルを、デジタル回路を作成するための論理合成ツールに入力可能な設計記述言語へ変換する変換手段をさらに備えたことを特徴とする請求項１に記載のデジタル回路の自動設計装置。
【請求項３】
前記制御仕様入力手段は、時相論理式で記述された前記制御系回路の仕様モデルをさらに入力し、
前記制御仕様モデル作成手段は、入力した前記時相論理式で記述された制御系回路の仕様モデルから有限状態機械のモデルであるタブローに変換して前記第２の制御仕様モデルを作成するタブロー作成手段を備えたことを特徴とする請求項１に記載のデジタル回路の自動設計装置。
【請求項４】
前記タブロー作成手段は、
前記時相論理式をタブロー規則に基づいて基本部分式に展開し、
展開した前記基本部分式に対応付けられる状態変数の状態遷移において、遷移先の状態変数に含まれる入力変数及び出力変数の値を前記状態遷移のラベル値とする遷移先選択型タブローを作成することによって順序機械のモデルを生成する手段である、
ことを特徴とする請求項３に記載のデジタル回路の自動設計装置。
【請求項５】
制御対象回路と制御装置回路とから構成される制御系回路において、前記制御対象回路のモデルと前記制御系回路の仕様モデルとが与えられた場合に、前記制御装置回路のモデルを自動設計するデジタル回路の自動設計装置であって、
前記制御対象回路のモデルが所定の設計記述言語で記述された第１の制御対象モデルを入力する制御対象入力手段と、
前記第１の制御対象モデルから、有限状態機械のモデルで表現された第２の制御対象モデルを作成する制御対象モデル作成手段と、
作成された前記第２の制御対象モデルを記憶する制御対象モデル記憶手段と、
前記制御系回路の仕様モデルが所定の設計記述言語で記述された第１の制御仕様モデルを少なくとも入力する制御仕様入力手段と、
少なくとも前記第１の制御仕様モデルから、有限状態機械のモデルで表現された第２の制御仕様モデルを作成する制御仕様モデル作成手段と、
前記第２の制御仕様モデルを記憶する制御仕様モデル記憶手段と、
前記制御対象モデル記憶手段に記憶された第２の制御対象モデルと、前記制御仕様モデル記憶手段に記憶された第２の制御仕様モデルとの論理積をとることによって、前記制御装置回路の合成モデルである制御装置合成モデルを作成するモデル合成手段と、
前記第２の制御対象モデルと前記第２の制御仕様モデルとから、前記第２の制御仕様モデルの変数の総ての状態と、この総ての状態に対して前記第２の制御対象モデルの変数がとりうる状態との関係を示す可制御模倣関係を求める可制御模倣関係計算手段と、
前記可制御模倣関係を記憶する可制御模倣関係記憶手段と、
前記制御装置合成モデルが、前記制御系回路の仕様を満足する制御が可能なモデルであるか否かを、前記可制御模倣関係に基づいて判定する制御可能性判定手段と、
前記制御装置合成モデルと前記可制御模倣関係とから、前記制御装置合成モデルの規模を縮小したモデルである許容動作モデルを作成する許容動作モデル作成手段と、
作成された前記許容動作モデルを記憶する許容動作モデル記憶手段と、
前記許容動作モデルを制御装置モデルとし、前記制御装置モデルを、デジタル回路を作成するための論理合成ツールに入力可能な設計記述言語へ変換する変換手段と、
を備えたことを特徴とするデジタル回路の自動設計装置。
【請求項６】
制御対象回路と制御装置回路とから構成される制御系回路において、前記制御対象回路のモデルと前記制御系回路の仕様モデルとが与えられた場合に、前記制御装置回路のモデルを自動設計するようにコンピュータを用いて構築したデジタル回路の自動設計装置において、
コンピュータが備える制御対象入力手段が、前記制御対象回路のモデルが所定の設計記述言語で記述された第１の制御対象モデルを入力する制御対象入力ステップと、
コンピュータが備える制御対象モデル作成手段が、前記第１の制御対象モデルから、有限状態機械のモデルで表現された第２の制御対象モデルを作成する制御対象モデル作成ステップと、
コンピュータが備える制御仕様入力手段が、前記制御系回路の仕様モデルが所定の設計記述言語で記述された第１の制御仕様モデルを少なくとも入力する制御仕様入力ステップと、
コンピュータが備える制御仕様モデル作成手段が、少なくとも前記第１の制御仕様モデルから、有限状態機械のモデルで表現された第２の制御仕様モデルを作成する制御仕様モデル作成ステップと、
コンピュータが備えるモデル合成手段が、前記第２の制御対象モデルと前記第２の制御仕様モデルとの論理積をとることによって、前記制御装置回路の合成モデルである制御装置合成モデルを作成するモデル合成ステップと、
コンピュータが備える可制御模倣関係計算手段が、前記第２の制御対象モデルと前記第２の制御仕様モデルとから、前記第２の制御仕様モデルの変数の総ての状態と、この総ての状態に対して前記第２の制御対象モデルの変数がとりうる状態との関係を示す可制御模倣関係を求める可制御模倣関係計算ステップと、
コンピュータが備える制御可能性判定手段が、前記制御装置合成モデルが前記制御系回路の仕様を満足する制御が可能なモデルであるか否かを、前記可制御模倣関係に基づいて判定する制御可能性判定ステップと、
コンピュータが備える許容動作モデル作成手段が、前記制御装置合成モデルと前記可制御模倣関係とから、前記制御装置合成モデルの規模を縮小したモデルである許容動作モデルを作成する許容動作モデル作成ステップと、
コンピュータが備える制御ルール決定手段が、前記許容動作モデルを用いて、その規模を更に縮小可能な制御ルールを決定する制御ルール決定ステップと、
コンピュータが備える制御装置モデル作成手段が、前記許容動作モデルと前記制御ルールとの論理積をとることによって、有限状態機械のモデルで表現された制御装置モデルを作成する制御装置モデル作成ステップと、
を実行することを特徴とするデジタル回路の自動設計方法。
【請求項７】
コンピュータが備える変換手段が、前記制御装置モデルを、デジタル回路を作成するための論理合成ツールに入力可能な設計記述言語へ変換する変換ステップをさらに実行することを特徴とする請求項６に記載のデジタル回路の自動設計方法。
【請求項８】
前記制御仕様入力ステップは、時相論理式で記述された前記制御系回路の仕様モデルをさらに入力し、
前記制御仕様モデル作成ステップは、コンピュータが備えるタブロー作成手段が、入力した前記時相論理式で記述された制御系回路の仕様モデルから有限状態機械のモデルであるタブローに変換して前記第２の制御仕様モデルを作成するタブロー作成ステップを実行することを特徴とする請求項６に記載のデジタル回路の自動設計方法。
【請求項９】
前記タブロー作成ステップは、
前記時相論理式をタブロー規則に基づいて基本部分式に展開し、
展開した前記基本部分式に対応付けられる状態変数の状態遷移において、遷移先の状態変数に含まれる入力変数及び出力変数の値を前記状態遷移のラベル値とする遷移先選択型タブローを作成することによって順序機械のモデルを生成するステップである、
ことを特徴とする請求項８に記載のデジタル回路の自動設計方法。
【請求項１０】
制御対象回路と制御装置回路とから構成される制御系回路において、前記制御対象回路のモデルと前記制御系回路の仕様モデルとが与えられた場合に、前記制御装置回路のモデルを自動設計するデジタル回路の自動設計プログラムであって、
前記制御対象回路のモデルが所定の設計記述言語で記述された第１の制御対象モデルを入力する制御対象入力ステップと、
前記第１の制御対象モデルから、有限状態機械のモデルで表現された第２の制御対象モデルを作成する制御対象モデル作成ステップと、
前記制御系回路の仕様モデルが所定の設計記述言語で記述された第１の制御仕様モデルを少なくとも入力する制御仕様入力ステップと、
少なくとも前記第１の制御仕様モデルから、有限状態機械のモデルで表現された第２の制御仕様モデルを作成する制御仕様モデル作成ステップと、
前記第２の制御対象モデルと前記第２の制御仕様モデルとの論理積をとることによって、前記制御装置回路の合成モデルである制御装置合成モデルを作成するモデル合成ステップと、
前記第２の制御対象モデルと前記第２の制御仕様モデルとから、前記第２の制御仕様モデルの変数の総ての状態と、この総ての状態に対して前記第２の制御対象モデルの変数がとりうる状態との関係を示す可制御模倣関係を求める可制御模倣関係計算ステップと、
前記制御装置合成モデルが、前記制御系回路の仕様を満足する制御が可能なモデルであるか否かを、前記可制御模倣関係に基づいて判定する制御可能性判定ステップと、
前記制御装置合成モデルと前記可制御模倣関係とから、前記制御装置合成モデルの規模を縮小したモデルである許容動作モデルを作成する許容動作モデル作成ステップと、
前記許容動作モデルを用いて、その規模を更に縮小可能な制御ルールを決定する制御ルール決定ステップと、
前記許容動作モデルと前記制御ルールとの論理積をとることによって、有限状態機械のモデルで表現された制御装置モデルを作成する制御装置モデル作成ステップと、
をコンピュータに実行させることを特徴とするデジタル回路の自動設計プログラム。
【請求項１１】
前記制御装置モデルを、デジタル回路を作成するための論理合成ツールに入力可能な設計記述言語へ変換する変換ステップをさらに備えたことを特徴とする請求項１０に記載のデジタル回路の自動設計プログラム。
【請求項１２】
前記制御仕様入力ステップは、時相論理式で記述された前記制御系回路の仕様モデルをさらに入力し、
前記制御仕様モデル作成ステップは、入力した前記時相論理式で記述された制御系回路の仕様モデルから有限状態機械のモデルであるタブローに変換して前記第２の制御仕様モデルを作成するタブロー作成ステップを備えたことを特徴とする請求項１０に記載のデジタル回路の自動設計プログラム。
【請求項１３】
前記タブロー作成ステップは、
前記時相論理式をタブロー規則に基づいて基本部分式に展開し、
展開した前記基本部分式に対応付けられる状態変数の状態遷移において、遷移先の状態変数に含まれる入力変数及び出力変数の値を前記状態遷移のラベル値とする遷移先選択型タブローを作成することによって順序機械のモデルを生成するステップである、
ことを特徴とする請求項１２に記載のデジタル回路の自動設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル回路の自動設計装置、自動設計方法、および自動設計プログラムに係り、特に、与えられた制御仕様等を満足する制御装置等の自動設計を行うデジタル回路の自動設計装置、自動設計方法、および自動設計プログラムに関する。
【背景技術】
【０００２】
集積回路の集積度向上に伴い、集積回路の設計において設計データの再利用を頻繁に行うようになってきている。集積回路の設計の分野では、再利用可能な設計資産をＩＰ（Intellectual  Property）と呼んでいる。
【０００３】
近年注目を集めている集積回路のシステムレベル設計では、IP の再利用性を高め、検証の負担を減らすために、デジタル回路の設計において、例えば、演算機能の設計と通信インターフェースの設計とを分離する方法が提唱されている。
【０００４】
インターフェース回路の設計は間違いやすい作業である。動作タイミングの正確な記述が必要であるのと同時に、並行動作する他モジュールからのさまざまな入力信号を想定して設計しなければならない。十分注意して設計したとしても、特定の条件で誤動作する可能性を完全には排除しきれない。
【０００５】
このため、設計結果に対する検証は、一般にかなり綿密に行われている。検証の代表的な手段としては、シミュレーションによる検証と形式的検証と呼ばれる検証とがある。
【０００６】
シミュレーションによる検証にはテストのための入力（テストベクタ）が必要であり、その作成には設計作業とは別に大きな労力が必要である。シミュレーション結果のチェックにも大きな労力が必要となる。また、稀にしか起こらない状況まで網羅的に調べるには多大な時間が必要となる。
【０００７】
一方、形式的検証の一種としてプロパティ検証がある。これは、望ましい回路動作の仕様（プロパティ）を与えて、設計結果がプロパティを満たすかどうかを自動的に調べる方法である。テストベクタが不要であり、稀な状況も含めて網羅的な検証が可能であるため、近年注目を集めてきている。
【０００８】
プロパティは時相論理（ブール代数に時間に関する演算子を加えた論理式を取り扱う論理の体系）をベースにした言語で記述するのが一般的であり、そのような言語の代表的な例として、PSLやSystemVerilog  Assertionと呼ばれる言語がある。
【０００９】
インターフェース回路の検証においては、「稀に動作がおかしくなる」というタイプの不具合が多いため、このようなプロパティ検証が向いている。バスの規格や、よく使用されるインターフェースの形式は決まっていることが多く、あらかじめ用意されたプロパティを適用できることができるため、検証の工数削減に役立っている。
【００１０】
しかしながら、シミュレーションによる検証も、またプロパティ検証も、いずれも設計結果を検証するという方法に過ぎず、設計の誤りが見つかった場合は、修正して再び検証を行うことが必要になる。それには大きな工数が必要になるため、後述する制御系設計のように自動的に制御装置（インターフェース回路）のモデルを求める方法があると望ましい。
【００１１】
特にインターフェース回路の場合はあらかじめ制御仕様（プロパティ）が用意できる場合が多いので、制御系の設計を自動化できればその効果は高い。
【００１２】
ところで、デジタル装置は一般に離散事象システムとしてモデル化される。離散事象システムのなかでも、もっとも単純で、実際にもよく利用されているモデルはFSM（Finite State Machine, 有限状態機械）である。FSMにもいろいろな種類があるが、例えば、オートマトン、順序機械(sequential machine) 、或いはクリプキ構造(Kripke structure) はそれぞれFSM の一種であると考えることができる。
【００１３】
オートマトンは言語理論において言語のモデルとして用いられている。クリプキ構造は論理学において時相論理のモデルとして用いられている。また、順序機械はデジタル回路のモデルとして用いられている。
【００１４】
非特許文献１は、制御装置のモデルの作成に関する基礎理論的な技術を開示するものである。非特許文献１では、制御装置と制御対象との２つの要素から構成され、これら２つの要素が所定の接続関係にある制御系において、制御系の仕様（制御仕様）のモデルＭと、制御対象のモデルＭ１とが与えられたときに、制御装置のモデルＭ２を作成することを課題として取り扱っている。非特許文献１では、これらのモデルを、順序機械によるモデルとして扱っている。
【００１５】
他方、前述したプロパティ検証の分野においては、プロパティ（制御仕様）は時相論理の論理式として記述されることが多い。プロパティ検証の原理はモデル検査である。モデル検査とは、検証（検査）の対象物のモデルがクリプキ構造として記述されており、このクリプキ構造が、時相論理の論理式のモデルとなっているか否か、即ち、クリプキ構造が時相論理の論理式を満たすか否かを検査するものである。
【００１６】
モデル検査に関する文献として従来から各種のものが公表されているが、例えば、特許文献１は、モデル検査を効率良く実施する技術について開示したものである。
【００１７】
また、順序回路の設計では順序機械を使うのが一般的であるが、これをモデル検査に適用するためには、順序機械とクリプキ構造との対応関係を明らかにしておく必要がある。非特許文献２は、この順序機械とクリプキ構造との対応関係について示している。
【００１８】
また、非特許文献３には、ＬＴＬ（linear  Temporal  Logic）と呼ばれる時相論理の種類からタブロー構築を行う方法や、ＡＣＴＬと呼ばれる時相論理の種類からタブロー構築を行う方法等が開示されている。なお、ＡＣＴＬは、ＣＴＬ（Computation  Tree  Logic）と呼ばれる時相論理において、Ｅ（可能）という演算子を使わずにＡ（必然）という演算子だけを使うように制限したものである。
【特許文献１】特許第３６００４２０号公報
【非特許文献１】Sunil P. Khatri, Amit Narayan, Sri-ram C. Krishnan, Kenneth L. McMillan, Robert. K. Brayton, A. Sangiovanni-Vincentelli, “Engineering Change in a Non-Deterministic FSM Setting”, Proceedings of the 33rd annual conference on Design automation, pp. 451-456, ISBN: 0-89791-779-0, 1996.
【非特許文献２】平石  裕実、浜口  清治、“論理設計の形式的検証：1． 論理関数処理に基づく形式的検証手法”、情報処理、Vol.35 No.8 、1994 年8月。
【非特許文献３】E. M. Clarke, Orna Grumberg, Doron Peled, “Model Checking”, MIT Press, ISBN: 0-262-03270-8, 2000.
【発明の開示】
【発明が解決しようとする課題】
【００１９】
前述したように、非特許文献１が開示する技術は、制御系の仕様（制御仕様）のモデルＭと、制御対象のモデルＭ１とが与えられたときに、制御装置のモデルＭ２を作成することを課題として取り扱っているものであり、制御装置のモデルＭ２の自動設計が可能であることを示唆している。
【００２０】
しかしながら、非特許文献１は、制御装置のモデルＭ２の自動設計の具体的な手順や、自動設計を行うための具体的な装置の機能構成までを開示するものではない。
【００２１】
また、非特許文献１では、制御系の仕様（制御仕様）のモデルＭを、順序機械によるモデルとして扱っている。しかしながら、一般的には、前述したモデル検査の場合のように、制御系の仕様（制御仕様）のモデルＭを、順序機械ではなく時相論理による仕様として表現した方が正確かつ簡便な場合が多い。
【００２２】
本発明は、上記事情に鑑みてなされたもので、制御対象に制御装置を接続した制御系の構成において、制御対象の仕様と制御系の制御仕様とが与えられたときに、制御仕様に合致するように制御装置を自動設計するとともに、制御仕様が時相論理による仕様として与えられた場合であっても、制御装置を自動設計することができる、デジタル回路の自動設計装置、自動設計方法、および自動設計プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２３】
上記課題を解決するため、本発明に係るデジタル回路の自動設計装置は、制御対象回路と制御装置回路とから構成される制御系回路において、前記制御対象回路のモデルと前記制御系回路の仕様モデルとが与えられた場合に、前記制御装置回路のモデルを自動設計するデジタル回路の自動設計装置であって、前記制御対象回路のモデルが所定の設計記述言語で記述された第１の制御対象モデルを入力する制御対象入力手段と、前記第１の制御対象モデルから、有限状態機械のモデルで表現された第２の制御対象モデルを作成する制御対象モデル作成手段と、作成された前記第２の制御対象モデルを記憶する制御対象モデル記憶手段と、前記制御系回路の仕様モデルが所定の設計記述言語で記述された第１の制御仕様モデルを少なくとも入力する制御仕様入力手段と、少なくとも前記第１の制御仕様モデルから、有限状態機械のモデルで表現された第２の制御仕様モデルを作成する制御仕様モデル作成手段と、前記第２の制御仕様モデルを記憶する制御仕様モデル記憶手段と、前記制御対象モデル記憶手段に記憶された第２の制御対象モデルと、前記制御仕様モデル記憶手段に記憶された第２の制御仕様モデルとの論理積をとることによって、前記制御装置回路の合成モデルである制御装置合成モデルを作成するモデル合成手段と、前記第２の制御対象モデルと前記第２の制御仕様モデルとから、前記第２の制御仕様モデルの変数の総ての状態と、この総ての状態に対して前記第２の制御対象モデルの変数がとりうる状態との関係を示す可制御模倣関係を求める可制御模倣関係計算手段と、前記可制御模倣関係を記憶する可制御模倣関係記憶手段と、前記制御装置合成モデルが、前記制御系回路の仕様を満足する制御が可能なモデルであるか否かを、前記可制御模倣関係に基づいて判定する制御可能性判定手段と、前記制御装置合成モデルと前記可制御模倣関係とから、前記制御装置合成モデルの規模を縮小したモデルである許容動作モデルを作成する許容動作モデル作成手段と、作成された前記許容動作モデルを記憶する許容動作モデル記憶手段と、
前記許容動作モデルを用いて、その規模を更に縮小可能な制御ルールを決定する制御ルール決定手段と、前記許容動作モデルと前記制御ルールとの論理積をとることによって、有限状態機械のモデルで表現された制御装置モデルを作成する制御装置モデル作成手段と、を備えたことを特徴とする。
【発明の効果】
【００２６】
本発明に係るデジタル回路の自動設計装置、自動設計方法、および自動設計プログラムによれば、制御対象に制御装置を接続した制御系の構成において、制御対象の仕様と制御系の制御仕様とが与えられたときに、制御仕様に合致するように制御装置を自動設計するとともに、制御仕様が時相論理による仕様として与えられた場合であっても、制御装置を自動設計することができる。
【発明を実施するための最良の形態】
【００２７】
本発明に係るデジタル回路の自動設計装置、自動設計方法、および自動設計プログラムの実施形態に付いて、添付図面を参照して説明する。
【００２８】
（１）第１の実施形態
図１は、本実施形態に係るデジタル回路の自動設計方法を説明するフローチャートである。図１の各ステップについて、まずは簡単に説明する。詳細な説明は後に具体的な例を示しながら行う。
【００２９】
まず、制御仕様入力ステップ301では制御仕様のモデルのデータ（第１の制御仕様モデル）を入力する。これは、Verilog やVHDL、あるいはSystemC やSpecC などの設計記述言語、又はC言語などのプログラミング言語で表現されたデータ等である。また、これらの言語で記述された仕様を実行可能仕様と呼び、実行可能仕様を記述する言語を実行可能仕様言語と呼ぶことがある。
【００３０】
実行可能仕様は計算機のプログラムとして実行することができ、シミュレーションに用いたり、或いは実装装置の制御系に内蔵された計算機（プロセッサ）のプログラムとして利用する場合もある。
【００３１】
この他、PSL やSystemVerilog Assertion 等の言語によって記述された、時相論理やその他の論理式に基づくプロパティを表すデータである場合も含むものである。
【００３２】
制御仕様モデル作成ステップ302では、入力された制御仕様のデータをFSM（有限状態機械）のモデルで表現されるデータ（制御仕様モデルＭ：第２の制御仕様モデル）に変換する。
【００３３】
一方、制御対象入力ステップ303では、制御対象のモデルが記述されたデータ（第１の制御対象モデル）を入力する。これは、Verilog やVHDL、あるいはSystemC やSpecC などの設計記述言語で記述された制御対象の回路の内容を表現するデータである。そのデータを、制御対象モデル作成ステップ304でFSM（有限状態機械）で表現されるデータ（制御対象モデルＭ１：第２の制御対象モデル）に変換する。
【００３４】
次の可制御模倣関係計算ステップ305 では、可制御模倣関係（controllable  simulation  relation）を計算する。可制御模倣関係は、FSMで表現された制御対象モデルＭ１と制御仕様モデルＭとから求めるもので、基本的には、非特許文献１に開示されている式に基づいて計算されるものである。
【００３５】
その計算結果を元に、可制御性判定ステップ306 で、制御仕様を満たす制御が可能であるか否か判定し、可能でない場合は不可制御通知ステップ307にてそのことを通知して終
了する。
【００３６】
一方、制御可能である場合は、続いて許容動作モデル作成ステップ308 で許容動作モデルのデータを作成する。許容動作モデルは、制御対象モデルＭ１および制御仕様モデルＭに基づいて単純に合成した制御装置合成モデルに対して、上述した可制御模倣関係による制約条件を課して作成されるものである。
【００３７】
次に、制御ルール決定ステップ309 において、許容動作モデルから制御ルールを決定する。その制御ルールに基づいて制御装置のモデルを作成し、作成した制御装置のモデルを設計データ出力ステップ310 にて出力する。
【００３８】
図２は、本実施形態に係るデジタル回路の自動設計装置の構成例を示す図であり、基本的には図１で示した各ステップの処理を実現する手段から構成されている。
【００３９】
制御仕様入力手段404は、制御仕様入力ステップ301の操作を実現するものであり、制御仕様のモデルのデータを入力する。このデータは、例えば、計算機の記憶装置に格納されたファイルから入力されたり、通信回線を通じて入力されたり、あるいは設計者によって計算機の入力機器から直接入力される場合などがありうる。
【００４０】
制御仕様モデル作成手段405 は、制御仕様モデル作成ステップ302の操作を実現するものであり、入力された制御仕様のデータをFSM を表すデータに変換し、制御仕様モデル記憶手段406 に格納する。
【００４１】
制御対象入力手段401は、制御対象入力ステップ303の操作を実現するものであり、制御対象のモデルがVerilog等の設計記述言語記述されたデータを入力する。このデータは、たとえば計算機の記憶装置に格納されたファイルから入力されたり、通信回線を通じて入力されたり、あるいは設計者によって計算機の入力機器から直接入力される場合などがありうる。
【００４２】
制御対象モデル作成手段402は、制御対象モデル作成ステップ304の操作を実現するものであり、入力された制御対象のモデルを、FSM の形式に変換し、それを制御対象モデル記憶手段403 に記憶する。
【００４３】
可制御模倣関係計算手段407 は、可制御模倣関係計算ステップ305 の操作を実現するものであり、制御対象モデル記憶手段403に格納された制御対象モデルと、制御仕様モデル記憶手段406 に格納された制御仕様モデルから、可制御模倣関係を計算し、計算の結果得られる可制御模倣関係を可制御模倣関係記憶手段408 に格納する。
【００４４】
可制御性判定ステップ306における判断は、可制御判定手段420で行われる。制御が可能でない場合は、その旨を設計データ出力手段413に出力して処理を終了する。
【００４５】
モデル合成手段は、制御仕様モデル記憶手段406に記憶されている制御仕様モデルＭと、制御対象モデル記憶手段403に記憶されている制御対象モデルＭ１とを単純に合成して制御装置合成モデルを作成する手段である。
【００４６】
許容動作モデル作成手段409は、許容動作モデル作成ステップ308の操作を実現するもので、単純合成によって得られた制御装置合成モデルに対して、上述した可制御模倣関係による制約条件を課して許容動作モデルを作成する手段である。また、作成した許容動作モデルを許容動作モデル記憶手段410に格納する。
【００４７】
制御ルール決定手段411は、制御ルール決定ステップ309の操作を実現するものであり、許容動作モデルから制御ルールを決定し、制御装置モデル作成手段412に出力する。
【００４８】
制御装置モデル作成手段412では、許容動作モデルに対して制御ルールを適用することによって、FSM（有限状態機械）で表現された制御装置モデルをまず作成し、その後、所定の設計記述言語、例えばVerilog言語、で記述された制御装置モデルに変換する。
【００４９】
設計データ出力手段413 は、設計データ出力ステップ310の操作を実現するものであり、制御装置モデル作成手段412で作成、変換された制御装置モデルを出力する手段である。その出力は、たとえば計算機の記憶装置にファイルとして格納したり、通信回線を通じて出力したり、或いは設計者に対して計算機の出力機器から直接出力することにより、制御装置のモデルをデジタル装置として実装することができる。
【００５０】
モデルの実装方法としては、例えば、論理合成ツールによってデジタル回路にするという方法がある。あるいは計算機にプログラムを与えて所望の動作をさせるという方法もある。
【００５１】
（２）具体例による説明
上記に説明したデジタル回路の自動設計方法について、具体例を用いて説明する。図３は、本具体例で取り扱う制御系全体の構成を示すものである。
【００５２】
図３（ａ）は、本具体例で扱う制御系全体の構成をVerilog 言語で表現したものである。また、図３（ｂ）は、その内部の配線の関係を図で表したものである。
【００５３】
図３（ａ）の１行目に記述されている“control_system”が制御系全体を現すモジュールであり、その内部にある“plant”という名前のモジュールが制御対象である。また、“controller”という名前のモジュールが制御装置を表している。制御系には外部からクロック信号clk、リセット信号rst、および外生信号v が入力されており、それぞれが図３（ｂ）に示されたとおりに制御対象と制御装置に配線されている。なお、plant というモジュールのインスタンスとしてpという名前を宣言し、またcontroller というモジュールのインスタンスとしてc という名前を宣言している（図３（ａ）の７行目、８行目）。ここではそれらをそれぞれ制御対象、制御装置と呼ぶことにする。
【００５４】
制御装置には、上記の構成から明らかなように、クロック信号clk 、リセット信号rst 、外生信号v 、制御出力信号y、および制御入力信号u が接続されている。これをVerilog 言語で表現すると図４のようになる。これは制御装置に接続されている信号の名前だけを宣言したモジュールであり、内部に存在すべきフリップフロップや、その動作に関する記述が含まれていない。図４の7行目に「/* 未実装*/」と書かれた部分がある。この部分に必要な記述を挿入することで制御装置のモデルが完成することになる。即ち、この部分に具体的なフリップフロップに関する記述やその動作に関する記述等を挿入することが、本実施形態で達成すべき目的となる。
【００５５】
まず、最初のステップとして、制御系の制御仕様を入力する（図１のステップ３０１）。
【００５６】
図５（ａ）は、本具体例における制御系の制御仕様を記述したものである。本例では制御対象である回路モジュールをVerilog 言語で記述している。
【００５７】
現在、多くの設計者がVerilog やVHDLなどの設計言語で設計内容を表現している。その記述の抽象度は、現在、RTL （Register Transfer Level）が多い。RTL 記述による回路設計で利用されるものが論理合成ツールである。論理合成ツールは、RTL で記述された設計データを入力し、それをより詳細なレベルの回路モデルに変換するものである。
【００５８】
RTL 記述は順序機械としてモデル化される。フリップフロップの値が順序機械の状態に相当する。その値の変化が状態遷移であるが、同期式の順序回路ではクロックに同期して状態遷移が起きる。RTL よりも抽象度の高いレベルの設計を、SystemC やSpecC などの言語を使って行う場合でも、CAD による処理の過程でFSM のモデルを得ることができる。
【００５９】
図５（ａ）の枠線の内部がVerilog 言語による記述であり、左側の数字は説明のための行番号を示したものである。このモジュールは、クロック入力clk、非同期リセット入力rst、外生信号入力v、および出力y を持つ（１行目から４行目までを参照）。これらはそれぞれ１ビットの信号線である。
【００６０】
また、モジュール内部にはx0, x1 という二つのフリップフロップを持っている（６行目を参照）。これらは、リセット時にはゼロになる（１０行目、１６行目とその付近を参照）。また、クロックの立ち上がりエッジにおいて、x0 はv の信号値を取り込み、その値を保持して出力する（１２行目とその付近を参照）。同じくクロックの立ち上がりエッジにおいてx1 はx0 の出力値を取り込み、その値を保持して出力する（１８行目とその付近を参照）。また、出力yは、x0 の出力とx1 の出力の論理積を出力する（２０行目を参照）。
【００６１】
なお、このVerilog 言語による記述から、論理合成ツールなどを使って実際のデジタル回路を作成することができる。論理合成ツールが出力した回路の例を図５（ｂ）に示す。x0 とx1 は、それぞれＤフリップフロップとして実現されている。これらのＤフリップフロップにはクロック入力の信号線clk が接続されており、ポジティブエッジでトリガするようになっている。また、リセット入力の信号線rst は二つのＤフリップフロップのリセット入力CLR に接続されている。一方、これらのフリップフロップの出力は二入力のAND ゲートに接続され、さらにその出力がモジュールの出力信号yとなっている。
【００６２】
続いて制御仕様モデル作成手段405は、入力したデータ（Verilog 言語で記述されたデータ）から図６に示すような順序機械のモデルを表すデータを作成し（図１のステップ302）、制御仕様モデル記憶手段406に格納する。このような操作は、論理合成ツールやプロパティ検査ツールなどの既存のプログラムでも行われている公知の技術である。図６（ａ）は、制御対象の入出力と状態の遷移関係を遷移表の形態で示したデータであり、図６（ｂ）は、初期状態の集合を表している。
【００６３】
なお、図６（ａ）では、遷移前の状態（現状態）と遷移した後の状態（次状態）を区別するため、次状態を表す変数にはx0’、x1’のようにプライム記号(’)をつけることにする。
【００６４】
この表について説明する。図５（ｂ）に示した回路で、たとえばx0の状態（すなわちx0 の出力）が１、x1 の状態（すなわちx1 の出力）が０、入力vが１とすると、出力yは０である。この状態から、クロックのポジティブエッジによって状態遷移が起こったとすると、その遷移後の状態はx0 が１、x1 が１となる。入出力信号と現状態と次状態の情報をまとめて、v, y, x1, x0, x1’, x0’ の順に並べると100111となる。これは図６（ａ）の表の４行目にあたる。他の値の組み合わせもすべて列挙すると８種類になり、それらをまとめた表が図６（ａ）である。このようにして遷移関係を得ることができる。
【００６５】
図６（ｂ）は、この回路のリセット直後の状態（初期状態）を示す表である。二つあるフリップフロップの両方ともがリセットによってゼロになるため、初期状態はx0 が０、x1 が０という一種類しかない。一般には順序機械の初期状態はひとつとは限らないので、初期状態の集合で表現する。
【００６６】
図７は、図６（ａ）および（ｂ）と同じ情報を状態遷移図として表したものである。x1、x0をまとめて2ビットで表現すると、00, 01, 10, 11 の4個の状態がある。これらの状態が丸で表現されたノードとして表されている。状態の間を結ぶ矢印は状態遷移を表しており、それらには1/0 や0/0 などといったラベルがつけられている。このラベルは、スラッシュ記号/の左側に入力の値、右側に出力の値を記したものである。また、二重丸のノード（この例では00）は初期状態を表すものである。
【００６７】
以上の説明からわかるように、図５（ａ）のような設計記述言語による回路の表現、図５（ｂ）のような回路図による表現、図６のような順序機械の遷移関係や初期状態の集合を表すデータによる表現、および図７のような状態遷移図による表現は、本質的に同一の内容を表している。これらは、順序回路の動作を表す方法としては等価であり、互いに他の形式に変換することができる。
【００６８】
なお、参考として、図５の回路モデルに対してシミュレーションを行った結果を図８に示す。“clk” は周期的なクロック入力となっている。“rst”には、シミュレーションの最初の段階でひとつだけパルスを与えており、それによって回路内部のフリップフロップがリセットされ、x0 とx1 が０という値になっている。入力vは、クロックに同期した入力であり、クロップのポジティブエッジより少し前に変化して、フリップフロップのセットアップタイムを確保するように値が変化している。x0、 x1 はそれぞれ対応するフリップフロップの出力であり、yはモジュールの出力である。vから1クロック周期分だけ遅れた波形がx0 に現れ、x0 から1 クロック周期分遅れた波形がx1に現れていることがわかる。また、x0 とx1 が両方1である場合に限ってyが1になっていることがわかる。
【００６９】
ここまでの段階で、Verilog言語で記述された制御系の制御仕様（図５（ａ））から、順序機械のモデルとして表現された制御仕様モデル（図６）に変換されたことになる（図１のステップ３０１、３０２）。
【００７０】
次に、図１のステップ３０３で、制御対象のモデルを入力する。
【００７１】
図９（ａ）は、本具体例における制御対象のモデルを記述したものであり、本例でも制御対象である回路モジュールをVerilog 言語で記述している。
【００７２】
この回路モジュールは、クロック入力clk と、リセット入力rst、および制御入力u と制御出力y を持っている。これらはそれぞれ１ビットの信号線である（図９（ａ）の１行目から４行目を参照）。内部にはフリップフロップが１個あり（５行目参照）、これがこの回路モジュールの状態を保持している。その値をs とする。
【００７３】
リセット入力rst の入力によってｓが“０”になる（１０行目とその近辺を参照）。また、clk のポジティブエッジで状態ｓが変化する（８行目を参照）。そのとき、現状態s と制御入力ｕの排他的論理和（演算子“＾”は排他的論理和を意味する）が次状態s’ の値になる（１２行目を参照）。
【００７４】
図９（ｂ）は、Verilog 言語で記述された図９（ａ）のモデル から論理合成ツールで作成した回路の回路図を示すものである。ここではイネーブル入力ENA をもった１個のＤフリップフロップで回路によって実現されている。制御対象入力手段401は、例えば、計算機の記憶装置にファイルとして格納されている図９（ａ）のデータを入力する。
【００７５】
続いて制御対象モデル作成手段402は、入力したデータから図１０に示すような順序機械のモデルを表すデータを作成し、制御対象モデル記憶手段403 に格納する。このような操作は、論理合成ツールやプロパティ検査ツールなどの既存のプログラムでも行われている公知の技術である。図１０（ａ）は、制御対象の入出力と状態の遷移関係を遷移表の形態で示したデータであり、図１０（ｂ）は、初期状態の集合を表している。
【００７６】
図１０のような“０”、“１”の表を記憶するには、ＢＤＤ（Binary Decision Diagram：二分決定グラフ）と呼ばれる公知技術を利用する形態が好適である。ＢＤＤの利用によって、多くの場合、少ないメモリ使用量でこのような“０”、“１”のブール値による関係を記憶することができる。本実施形態で必要となるさまざまな操作もＢＤＤの利用によって高速に実施できるという利点がある。もっとも、必ずしもＢＤＤを使う必要はなく、ブール値からなる表を記憶できる手段であれば、ＢＤＤ以外のものを用いることもできる。たとえば、表の形式のまま配列として記憶し、或いはブール代数の式として文字列やその他のデータ形式で記憶することも可能である。積和標準形や和積標準形は、ブール代数の式の標準的な形として有名であるが、その他の形式でも構わない。
【００７７】
前述したように、順序機械のモデルを表す遷移表や初期状態の集合を表す表は、図１１に示す状態遷移図として表現することもできる。従って、この状態遷移図を記憶できるようなその他のデータ形式で記憶しても構わない。例えば状態やラベルのデータをレコード（Ｃ言語では構造体）で表し、状態遷移の遷移先のレコードをポインタ変数で指し示すなどといった方法も可能である。
【００７８】
次に、図１のステップ３０５で可制御模倣関係を計算する。
【００７９】
ここで、可制御模倣関係とは、非特許文献１において、Hmaxとして計算式が与えられているものである。可制御模倣関係計算手段407によって、制御仕様モデル記憶手段406 に記憶された制御仕様モデルと、制御対象モデル記憶手段403 に記憶された制御対象モデルとから、可制御模倣関係Hmax を求める。
【００８０】
図１２は、非特許文献１から引用した図であり、図１２（ａ）は、設計する制御系を示したものである。図１２（ａ）において、Ｍ１が制御対象のＦＳＭであり、Ｍ２が制御装置のＦＳＭである。v は制御系の外から与えられる外生信号であり、y は制御対象から出力される制御出力ある。また、u は制御対象への入力される制御入力である。
【００８１】
これらのv、ｙ、およびuは、図３におけるv、ｙ、およびuと対応するものである。
【００８２】
図１２（ｂ）は、制御仕様を表している。制御仕様のモデルはＦＳＭであり、Ｍという記号によって表される。非特許文献１では、Ｍ１とＭ２とを図１２（ａ）のように接続して得られる制御系から、制御仕様であるＭへの模倣関係が存在するようにＭ２を作成することが課題となっている。なお、非特許文献１で取り扱っているＦＳＭは、総て順序機械に相当するものである。
【００８３】
非特許文献１を引用すると、可制御模倣関係Hmaxは、次の（式１）のように定義される。
【数１】
0004528728.tif 000002
【００８４】
Hmax は、この定義から分かるように、Ｍ１の状態とＭの状態の間で成り立つ関係を表している。非特許文献１には名称が付けられていないが、上述したように、本明細書ではHmaxを可制御模倣関係と呼ぶことにする。
【００８５】
制御が可能であるか否かは、可制御模倣関係を使って判定できる。Ｍ１の初期状態をｒ１、Ｍの初期状態をｒとしたときに、その組(ｒ１,ｒ)が可制御模倣関係に含まれていれば、制御仕様を満たすような制御が可能である。
【００８６】
逆に、(ｒ１,ｒ)が可制御模倣関係に含まれていなければ、どのようなＦＳＭを制御装置のモデルとしても、制御系の動作が制御仕様で指定された動作から逸脱する可能性がある。
【００８７】
可制御模倣関係計算手段407は、制御仕様モデル記憶手段406に記憶された制御仕様モデルと、制御対象モデル記憶手段403に記憶された制御対象モデルから、式（１）のHmax を求める。この式で、Ｍが制御仕様モデル、にＭ１が制御対象モデル相当する。Hmax は可制御模倣関係であるが、それは制御対象モデルの状態と、制御仕様モデルの状態の間の関係を表すものである。得られた可制御模倣関係は、可制御模倣関係記憶手段408に記憶する。
【００８８】
本具体例の場合、可制御模倣関係は図１３に示した表のようになる。制御対象モデルの状態は変数ｓで表され、０または１の値をとりうる。一方、制御仕様モデルの状態は、変数x0とx1で表され、それぞれ０または１の値をとりうるので、全部で4個の状態がある。可制御模倣関係が成り立つすべての状態の組み合わせを、変数s, x0, x1 の値として列挙したものが図１３である。
【００８９】
次に、可制御模倣関係記憶手段408に記憶された可制御模倣関係Ｈmax、制御仕様モデルＭ，および制御対象モデルＭ１から、許容動作モデル作成手段409によって許容動作モデルＭｃを作成する（図１のステップ３０８）。
【００９０】
許容動作モデルＭｃは、最大の制御装置（maximal  controller）と呼ばれるものであり、制御装置のＦＳＭモデルＭ２を包含するものである。
【００９１】
許容動作モデルはFSM であり、その遷移関係は次の（式４）を計算することによって得られる。この（式４）も非特許文献１において定義されているものである。
【数２】
0004528728.tif 000003
【００９２】
（式４）において、Ｍ１が制御対象モデル、Ｍが制御仕様モデル、Ｍｃが許容動作モデルに相当する。また、許容動作モデルの初期状態は同じく非特許文献において、次の（式５）として与えられている。
【数３】
0004528728.tif 000004
【００９３】
つまり、許容動作モデルの初期状態は、制御対象モデルの初期状態ｒ１と、制御仕様モデルの初期状態ｒとを対にしたものに等しい。この初期状態が可制御模倣関係に含まれていなければ、制御仕様を満たす制御系を構成することはできないので、そのことを設計者に通知して設計自動化装置の動作は終了する。
【００９４】
この判断は図１における可制御性判定ステップ（ステップ306）に相当し、制御できないことを利用者に通知するのが不可制御通知ステップ（ステップ307）である。
【００９５】
許容動作モデルの初期状態が可制御模倣関係に含まれていれば、得られた許容動作モデルを許容動作モデル記憶手段410 に記憶する。
【００９６】
（式４）による許容動作モデルＭｃの定義は、制御対象モデルＭ１と制御仕様モデルＭの合成に似ている。Ｍ１とＭの合成と同様に、Ｍｃの状態も、Ｍ１とＭの状態の対として表される。但し、遷移関係の定義において、遷移可能な遷移先の状態が可制御模倣関係Ｈmaxに含まれるものに限定される点が通常の合成の定義とは異なっている。
【００９７】
換言すれば、許容動作モデルＭｃは、制御対象モデルＭ１と制御仕様モデルＭを合成したモデル（制御装置合成モデル）に対して、可制御模倣関係Ｈmaxによる制約条件を課したモデルということができる。
【００９８】
本具体例の場合、許容動作モデルＭｃは図１４のようになる。図１４の（ａ）が遷移関係を表し、（ｂ）が初期状態の集合を表す。
【００９９】
図１４（ａ）の遷移関係は、制御対象モデルＭ１の遷移関係（図６（ａ））と制御仕様モデルＭ（図１０（ａ））とを合成し、その後、可制御模倣関係Ｈmax（図１３）で与えられる次状態（（ｓ、x0、x1）＝（０，０，０）、（０，０，１）、（０、１、０）、（１、１、１））を満たすデータの組を抽出したものである。
【０１００】
また、図１４（ｂ）の初期状態は、制御対象モデルＭ１の初期状態（図６（ｂ））と、制御仕様モデルＭ（図１０（ｂ））とを対としたものである。
【０１０１】
本実施形態の目的は、制御仕様モデルＭを満たす制御装置モデルＭ２を求めることであるが、非特許文献１には、このための必要十分条件として、制御装置モデルＭ２が許容動作モデルＭｃを模倣することであることが示されている。
【０１０２】
このことは、単純には、Ｍ２＝Ｍｃ（許容動作モデルＭｃをそのまま制御装置モデルＭ２とする）としても良いことを意味している。一方、制御装置モデルＭ２が許容動作モデルＭｃを模倣している限りにおいて、Ｍ２の動作範囲を絞り込める可能性があることも意味している。即ち、制御装置モデルＭ２の規模は、許容動作モデルＭｃの規模に対してさらに縮小できる可能性があることを意味している。
【０１０３】
次に、制御ルール決定手段411 は、許容動作モデル記憶手段410 に記憶された許容動作モデルＭｃから制御ルールを決定する。制御ルールは、制御装置の状態から制御入力ｕを作成する方法を示すもので、制御装置の状態からｕへの関数として表すことができる。
【０１０４】
制御ルールを決める方法を説明する。まず、許容動作モデルＭｃの遷移関係の表である図１４（ａ）から、次状態を表す変数であるs’, x0’, x1’ の欄を削除する。また、制御入力ｕ は、制御出力yの値に直接には依存しないという性質がある（ただし制御対象の状態s には依存する）ので、yの欄も削除する。この結果、制御装置の制御ルールを示す図１５の表が得られる。図１５に残った変数で、制御入力ｕおよび外生信号ｖ以外の変数、即ち、s, x0, x1が制御装置の状態変数となる（これらから最終的に制御装置内部のフリップフロップが生成される）。
【０１０５】
ここで、この表に現れない制御装置の状態は、制御系の動作中には出現しない状態であるので、制御入力を生成する組み合わせ回路を作成するときに、無視することができる。また、制御装置の特定の状態に対して、制御入力ｕの値が複数対応している場合は、それらのいずれの値を採用しても構わない。この性質を利用することによって、制御ルールの表（図１５に相当する表）を縮小することが可能となる。
【０１０６】
もっとも、本具体例では、図１５に示したようにv, s, x0, x1 のそれぞれの組み合わせに対してｕ の値は一意に対応している。このため、本具体例では、上記性質を利用した制御ルール縮小の余地はない。
【０１０７】
次に、制御装置モデル作成手段412は、制御装置モデルＭ２を生成する。制御装置モデルＭ２とは、制御ルール決定手段411 で決定した制御ルールによって許容動作モデルＭｃの動作を制約して得られるモデルである。具体的には、許容動作モデルＭｃの遷移関係（図１４（ａ））と制御ルール（図１５）の論理積を制御装置モデルＭ２の遷移関係とする。
【０１０８】
また許容動作モデルＭｃの初期状態、或いは初期状態の集合（図１４（ｂ））と可制御模倣関係Ｈmax（図１３）の論理積（あるいは集合積）を制御装置モデルＭ２の初期状態、或いはあるいは初期状態の集合とする。なお、制御対象の出力である制御出力ｙ、および外生信号ｖは制御装置からみると入力であり、また、制御対象の入力である制御入力ｕは制御装置からみると出力となっている。
【０１０９】
このようにして、本具体例における制御装置モデルＭ２を制御装置モデル作成手段412 にて求めた結果が図１６である。本具体例では、制御ルールの決定にあたって、上述したように同一の状態に対して複数のｕが対応することがなかったため、制御装置モデルＭ２（図１６）は結果的には許容動作モデルＭｃ（図１４）と同一のものとなっている。
【０１１０】
一般的には、制御ルールが、可能なｕのうちの適当な値に固定されると、それ以外のu の値でのみ発生する状態遷移は制御装置モデルから除外され、許容動作モデルＭｃの規模よりも小さな制御装置モデルＭ２を生成することが可能である。
【０１１１】
このようにして作成された制御装置モデルＭ２は、有限状態機械（図１６のような遷移関係や初期状態）として表現されたモデルであるため、制御装置モデル作成手段412ではこれをさらにVerilog 言語等の設計記述言語で記述されるモデルに変換する。
【０１１２】
設計データ出力手段413 は、設計記述言語で記述された制御装置モデルＭ２を制御装置回路の設計データとして出力する。本具体例では、図１７に示すVerilog 言語で記述された出力が得られる。
【０１１３】
図１７のうち、制御入力信号ｕへの出力を決める部分が２７行目から３５行目までの記述になっており、これは図１５に記載された制御ルールから生成された部分である。比較すると両者の対応関係がよく分かる。
【０１１４】
このように得られた制御装置の設計データ（Verilog 言語で記述されたデータ）は、これを論理合成ツールに入力することによってデジタル回路を作成することができる。
【０１１５】
ところで、制御ルール決定手段４１１についてもう一度考えてみる。制御ルール決定手段４１１では v, s, x0, x1 から u を求める関数を決定している。そのような関数というのは、数式としてはブール代数式であり、回路でいえば組み合わせ回路に相当するもので、フリップフロップを必要とするような順序回路ではない。
【０１１６】
ブール代数式の簡単化（すなわち組み合わせ回路の簡単化）には、さまざまな方法が知られている。たとえば論理回路の設計に関する多くの教科書にはカルノー図を用いて簡単な回路を求める方法が説明されている。系統的に簡単化を行う方法としてはクワイン・マクラスキー法がある。大規模な回路に適用できるものもいくつか提案されており、たとえば ESPRESSO が有名である。このような簡単化の手段は市販の論理合成ツールにも組み込まれており、利用者をわずらわすことなく自動的に適用できる。それは通常、回路のゲート数やトランジスタ数を減らす目的で使われている。
【０１１７】
制御ルール決定手段４１１でもこのような簡単化の方法を用いることができる。図１５に簡単化の方法を適用し、その結果として例えば次の（式６）が得られたものとしよう。この式によって（ｖ、ｓ、x0、x1）から計算したｕの値は図１５と矛盾しないので、この式を制御ルールとして採用することができる。
【数４】
0004528728.tif 000005
【０１１８】
結果として得られる制御装置の設計データは、図１８のようになる。図１８（ａ）がVerilog言語による記述であり、図１８（ｂ）が、これを論理合成して得られた回路の回路図である。
【０１１９】
図１７の設計データには、３個のフリップフロップ（３個の状態変数、ｓ、x0、x1）が含まれているのに対して、図１８の設計データでは２個のフリップフロップ（２個の状態変数、ｓ、x0）しか含まれていない。すわなち、制御ルール決定手段４１１において簡単化手段を適用することにより、フリップフロップの削減という効果が得られている。その簡単化手段というのは組み合わせ回路の簡単化を目的としたものであって、通常はフリップフロップの削減を行わないものであったとしても、それを制御ルール決定手段４１１において適用すれば、最終的にフリップフロップの削減という効果が得られるのである。
【０１２０】
また、図１８（ａ）（制御装置のVerilog言語による設計データ）と、図９（ａ）（制御対象のVerilog言語による設計データ）とを組み合わせてシミュレーションを行った結果得られた信号波形が図１９である。
【０１２１】
図１９と、制御仕様のシミュレーション結果である図８と比較すれば、制御系が制御仕様で指定された通りに動作することがわかる。
【０１２２】
さて、ここで説明した回路の簡単化は、制御装置だけを対象としたものである。制御対象がハードIPである場合や、あるいはモーターなどを含む機械的な制御対象をFSM としてモデル化したものである場合は、その構成を変更できないため、制御装置だけを対象にして回路を簡単化することになる。しかし、仮に制御対象がソフトIPであって、それ自体もこれから論理合成するのであれば、制御装置と制御対象をまとめて簡単化することも可能である。制御系全体を簡単化の対象とすれば、回路規模の現象や動作速度の向上など、さらなる性能改善が期待できる。もっとも、本具体例の場合は、図５の制御仕様が簡単でしかも論理合成可能なものであったため、制御系全体を簡単化することの意味が分かりにくいかもしれない。しかし、一般に、制御仕様が論理合成可能な形式でない場合や、図５ほど簡単ではない場合にも本発明は適用できるので、制御系全体を対象にして簡単化を行うことには意味がある。
【０１２３】
また、本具体例では、外生信号v や制御出力y、および制御入力u がそれぞれ1 ビットの信号となっていたが、これらが複数ビットであっても、同様に本発明を適用することができる。具体例として1ビットの例を採用したのは、そうしないと説明に使う図面が大きくなりすぎて記載できなくなるためである。
【０１２４】
第１の実施形態に係るデジタル回路の自動設計装置、自動設計方法、および自動設計プログラムによれば、非特許文献１に示された制御装置の作成方法を具体化し、さらに、制御入力ｕを生成する制御ルールを簡単化することにより制御装置の規模を縮小化することができる。
【０１２５】
（３）第２の実施形態
図２０は、第２の実施形態に係るデジタル回路の自動設計装置の構成例を示す図である。第１の実施形態との相違点は、入力する制御仕様の形態とその変換方法にある。
【０１２６】
第１の実施形態では、制御仕様として、順序回路による仕様（図５（ａ））を入力しこれを制御仕様モデルＭ（図６）に変換していた。これに対して、第２の実施形態では、時相論理で記述された制御仕様を入力し、これを制御仕様モデルＭに変換する形態である。
【０１２７】
図２０の制御仕様（時相論理）入力手段415は、時相論理で記述された制御仕様をも入力する手段である。
【０１２８】
また、制御仕様モデル作成手段416は、時相論理で記述された制御仕様から有限状態機械で表現された制御仕様モデルに変換するタブロー作成手段（遷移先選択型タブロー作成手段）424を含む手段である。即ち、図２０で示した構成は、図２の構成を特殊化したものということができる。しかし、制御仕様（時相論理）入力手段415 が時相論理に基づく制御仕様を入力できるということと、制御仕様モデル作成手段416が時相論理で表されたプロパティ（制御仕様）から本発明で利用するのに適した性質を持つ制御仕様モデルＭを作成できるという点に特徴がある。これに関して以降では図２０に基づいて説明を行う。
【０１２９】
第２の実施形態の説明も具体例を用いて説明するが、第１の実施形態の説明で用いた制御系および制御対象と同じ具体例を用いる。即ち、制御系の構成は図３であり、制御対象は図９である。
【０１３０】
制御仕様は図２１に示したものを用いる。これはPSLと呼ばれる言語で記述されている。この図２１の左側に並ぶ数値は説明のために行番号を示したもので、制御仕様の内容には関係しない。
【０１３１】
前述したとおり、PSL は時相論理を基盤にしたプロパティ記述言語である。図２１の1行目は、この制御仕様がcontrol_systemというモジュールに対するものであることを示している。図３に示したとおり、control_system は制御系の全体を表している。また、図２１の２行目は、このモジュールのクロックがclk であり、そのポジティブエッジで動作することを示している。信号が満たすべき条件を記述しているのは図２１の３行目である。この条件を時相論理の式で書けば、次の（式７）となる。
【数５】
0004528728.tif 000006
【０１３２】
（式７）は、「あらゆる時点で、v の真偽値は、次のクロックの、そのまた次のクロックにおけるyの真偽値と等しい」という条件を意味している。なお、ここでいう「あらゆる時点」では、クロックで区切られた時刻の各ステップを意味している。時相論理では、記号「Ｘ」は「次の時点」を意味し、記号「Ｇ」は、「あらゆる時点」を意味する。
【０１３３】
制御仕様（時相論理）入力手段415はこの制御仕様を入力する。その内容は制御仕様モデル作成手段416に送られる。制御仕様モデル作成手段416では、以下に説明する方法で時相論理で記述された制御仕様から有限状態機械（ＦＳＭ）で表現された制御仕様への変換を行う。
【０１３４】
その前に、説明の必要上、まず従来技術と同じ方法でタブローを作ってみる。時相論理の式からＦＳＭを作成することをタブロー構築といい、それによって得られたＦＳＭをタブローという。タブロー構築に関する文献としては、例えば、非特許文献３等がある。
【０１３５】
非特許文献３等に示されるタブロー規則を使って（式７）を展開することにより、（式７）を基本部分式に展開することができる。結果だけを示すと、（式７）は、ｖ、ｙ、Ｘｙ、ＸＸｙ、及びＸＧ（ｖ⇔ＸＸｙ）の５種の基本部分式から構成される式に展開することができる。なお、時相演算子Ｘで始まる基本部分式を、次時点部分式と呼ぶことにする。
【０１３６】
これらの５種の基本部分式に対応して、図２２に示す５種の現状態変数ｖ、ｙ、x0、x1、およびtgを割り付ける。また、対応する次状態変数に、ｖ’、ｙ’、x0’、x1’、およびtg’を割り付ける。
【０１３７】
図２０に示したタブロー規則による展開手段422は、時相論理式をタブロー規則に基づいて基本部分式に展開し、現状態変数、および次状態変数を基本部分式に割り付ける処理（時相論理式から図２２を作成するまでの処理）を行っている。
【０１３８】
基本部分式のうち、記号Ｘの付いている次時点部分式は３つあり、夫々、次の遷移関係が成立する。
【数６】
0004528728.tif 000007
【０１３９】
図２３は、（式１１）が真となる現状態変数と次状態変数との組合せを列挙したものである。なお、（式１１）からわかるように、現状態変数のうち、ｖ、ｙは、遷移関係には影響しないので図２３では、ｖ、ｙの欄を省略している。図２３がタブローの遷移関係を示す図である。
【０１４０】
タブローの初期状態は、次の（式１２）で示される。
【数７】
0004528728.tif 000008
【０１４１】
図２４は、タブローの初期状態の集合を示す図であり、（式１２）が真となる状態変数の組合せを列挙したものである。
【０１４２】
なお補足しておくと、（式１２）や図２４を見て分かるように、どの初期状態においてもtg は1（真）である。また、（式１１）や図２３をみると分かるように、tgが1（真）の現状態から遷移する先の次状態では必ずtg’ が1（真）になる。つまり常にtg は1となるので、その意味ではtgは冗長である。
【０１４３】
一般に、時相論理でプロパティを表現したときに、G やAG で始まるプロパティ（これはPSLでalwaysというキーワードを使う場合にあたる）では、このような冗長な状態変数が現れる。このようなプロパティはよく利用されるので、はじめからそのような変数は常に1であるとみなし、省略することにすれば、図２３のようなデータを記憶するときのデータの大きさを減らすのに役立つ。しかし、ここでは一般的な例を示すために、そのような特別な処置を施さず、tg が0の場合も図２３に記載している。
【０１４４】
タブローの遷移関係（図２３）と初期状態の集合（図２４）とを状態遷移図として表したものが図２５である。但し、図が煩雑になるのを避けるため、tg が0（偽）である状態は省略してある。
【０１４５】
図２５において、丸で示したノードが状態を表し、ノードからノードへ向かう矢印が遷移関係を表している。ノードの中の数字列が状態変数の値を表しており、左から順にtg, tx0, tx1, v, y の順で5桁のブール値（0または1の値）を示している。二重丸で示されたノードは、初期状態遷移の集合に含まれる状態（すなわち初期状態になりうる状態）を表している。
【０１４６】
図２３及び図２４に示した遷移関係を示す真理値表および初期状態、或いは図２５に示した状態遷移図は、いずれもクリプキ構造を示すタブローである。
【０１４７】
次に、このタブローを順序機械の形式に変換する。クリプキ構造と順序機械の違いは、表面的には状態遷移図に遷移ラベルがあるかどうかの違いとして現れる。つまり、順序機械の場合は遷移に入出力の値が影響することを遷移ラベルによって表現するが、クリプキ構造の場合は入出力という概念が存在せず、遷移ラベルもない。そのため、クリプキ構造を順序機械に変換するには、直感的にいえば、クリプキ構造の状態遷移図を描き、状態遷移の矢印に入出力の値に対応する遷移ラベルを付加すればよい。
【０１４８】
通常良く用いられる遷移ラベルの付け方は、「入力／出力」という遷移ラベルを状態遷移の矢印に付する方法である。本例では、「ｖ／ｙ」の現状態をラベルとして付す方法である。
【０１４９】
この方法を図２５に適用する。結果は図２６のようになる。ｖは外生信号であり、ｙは制御出力であるから、状態遷移には入力／出力の順でｖ／ｙという形式のラベルがついている。前述のように、図２５の状態は５桁の数字で表現されており、左から順にtg, tx0, tx1, v, y の値に対応しているから、状態の符号の末尾２桁が、そのままその状態から発する遷移ラベルに対応している。
【０１５０】
ところが、図２６を制御仕様モデルとして、本発明を実施しても、所望の結果は得られない。すなわち、第１の実施形態で正しい結果が得られたのと同じ方法を図２６に適用しても、与えられた制御仕様（図２１）を満足する制御系が得られない。この原因は以下の通りである。
【０１５１】
図２６を観察すると、10010 という状態から可能な遷移にはすべて1/0 というラベルがついている。10011という状態からの遷移には、すべて1/1 というラベルがついている。このように、ある状態から出て行く遷移は、その状態に応じて入出力が特定の値に決まっている。これは、クリプキ構造から順序機械への変換にあたって、上記の変換方法（遷移ラベルを付す方法）では、そうなるように変換方法を決めたのであるから当然のことである。
【０１５２】
しかし、本発明において制御系の動作に対する制御仕様モデルの関係は、言語包含関係ではなく、非特許文献１を基礎とした模倣関係によって規定している。そのため、制御仕様モデルを作成するときに、状態と状態遷移をどのように定義するかによって、得られる制御装置の動作に違いが現れる。上記の方法でクリプキ構造を変換した状態機械では、その状態と状態遷移の決め方が制御仕様モデルとして適切ではないのである。その結果、可制御模倣関係の計算に影響が出てくる。
【０１５３】
可制御模倣関係は、（式１）のHmax に相当する。また、制御仕様モデルはこの式でＭに相当する。この式には外生信号ｖについての全称演算が含まれている。上記の方法でクリプキ構造から制御仕様モデルを作成すると、ある状態から遷移するときの外生信号ｖの値は、その状態に応じて特定の値に決まってしまう。そのため、制御仕様モデルの遷移関係を表す（式３） に対して∀ｖという全称演算を施すと、必ず偽になる。この性質は、（式１）の計算に影響を及ぼす。上記方法で制御仕様モデルを作成すると、全称演算の適用時に本来の意図とは異なる作用をするので、予期しない結果になるのである。
【０１５４】
これは、別の視点からいえば、図２６の順序機械が非決定性であることが原因ということもできる。したがって、図２６を決定性の順序機械に変換してから可制御模倣関係を計算すれば、この問題を回避できる。しかし、一般に非決定性の順序機械を決定性に変換するには大きな計算時間と記憶容量を必要とする。また、非決定性モデルから決定性モデルへの変換は、決定性モデルの状態を符号化するために新たな状態変数が必要となるので、BDD での実装に向いていない。そもそも本発明で制御系の動作と制御仕様モデルとの関係を規定するのに模倣関係を採用するのは、言語包含関係を用いた方法では計算時間とメモリ消費量が多いことが理由のひとつであった。決定性モデルへの変換を行うと本発明の長所を損なうので、それは避けるのが適切である。
【０１５５】
このように、クリプキ構造から順序機械への変換にあたり、ある状態からの状態遷移に付加する遷移ラベルを、その状態に含まれる基本命題変数（入力ｖ、出力ｙ）の値に等しくなるように順序機械をつくると、予期しない結果が得られることが分かった。
【０１５６】
本実施形態では、この問題を解決したタブロー構築方法を採用する。以下にこの方法を説明する。説明に先立ち、この方法を図２５に適用した結果を図２７に示す。
【０１５７】
図２７は、クリプキ構造から順序機械への変換にあたって、遷移ラベルを「遷移元」ではなく「遷移先」の状態に含まれる基本命題変数（入力ｖ、出力ｙ）の値に等しくなるように付したものである。また、“init” という状態が新たに追加されており、これが初期状態になっている。
【０１５８】
このように、現状態から次状態へ遷移するときに、入出力の値によって次状態が違うタブロー（この例では順序機械）を、遷移先選択型タブローと呼ぶことにする。区別するために、従来のタブローは従来型タブロー（クリプキ構造）と呼ぶことにする。
【０１５９】
図２６では、遷移ラベルは（遷移先ではなく）遷移元の状態に含まれる基本命題変数の値に等しくなるように付けられていた。図２７と図２６とを比較すると、ラベルのつく位置が、状態を表すノードをはさんで反対側へ移動している。これらが受理する入出力の系列（シーケンス）を考えると、両者は同じ系列を受理することは容易に分かる。言語包含関係の意味では両者は等価である（つまり両者の受理言語が等しい）。しかし、図２６は、入出力の値が現状態によって決まり、次状態が入出力の値の影響を受けないので、遷移先選択型タブローではない。
【０１６０】
遷移先選択型タブローが前述した全称演算による問題を起こさない理由を説明する。図２７の“10010”という状態を見てみると、そこからは２種類の遷移が可能であり、状態“10000”への遷移には“0/0”という遷移ラベルが、また状態“11010”への遷移には“1/0”という遷移ラベルがついている。つまり、外生信号vが“1”の場合と“0”の場合の両方に対して状態“10010”からの遷移が定義されていることになる。このため、従来型タブロー構築の方法によって得られた順序機械とは異なり、（式３）に対して∀ｖという全称演算を施しても、常に偽になるという現象は起きない。この性質により、可制御模倣関係の計算にあたって、予期しない結果になるのを避けることができる。
【０１６１】
ところで、図２７には、冗長性がある。すなわち、この状態機械は縮約することが可能であり、その結果は図２８のようになる。図２８において、状態の符号は左から順にtg、 tx0、tx1の値に対応する。
【０１６２】
このように縮約できる理由は、遷移先選択型タブローを導出するときの原型となった従来型タブローの定義から説明できる。従来型タブローの遷移関係は次時点命題に依存するが、現状態変数でも原子命題（入出力）にあたる変数（ｖ、ｙ）は遷移関係に影響しない。この具体例でも、（式１１）を見ると、現状態の次時点命題変数であるtg, tx0, tx1 は遷移関係に影響するが、入出力であるv, y は影響しないことが分かる。
【０１６３】
このことを図２７で説明すると、“10010”という状態からは、“1/0”という遷移によって次状態は“11010”となり、“0/0”という遷移によって次状態は“10000”となる。しかし、よく見れば、“10000”、“10001”、“10010”、“10011”という４個の状態は、いずれも同じ入出力に対して同じ次状態へ遷移している。つまり、遷移関係を考えるとき、次時点命題変数である前半３ビットを見るだけで十分であり、原子命題変数である後半２ビット（ｖ、ｙ）は無視できる。すると、遷移先選択型タブローの場合、状態変数として必要なのは次時点命題記号だけであり、原子命題にあたる状態変数の値は記憶する必要がないことが分かる。図２７でいえば、“10010”という状態からは、“1/0” という遷移によって次状態は“11010”となるが、次時点命題変数に相当する前半３ビットの“110”だけ記憶しておけば、さらにそれ以降の状態遷移には何の支障も生じない。後半２ビットの基本命題変数“10”は、“1/0”という遷移に対応しているが、それは以降の状態遷移に影響しない。言い換えると、入出力の値は状態遷移の瞬間に次状態の選択に影響を与えるが、しかし次状態が決まってしまえば、その入出力の値を記憶しておく必要はないのである。
【０１６４】
以上の考察に基づき、図２８の状態遷移図で、原子命題を状態変数から省く形で状態を縮約することにより（例えば、“10000”、“10001”、“10010”、“10011”という４個の状態は、“100”という１個の状態にまとめることができる）、図２８が得られる。
【０１６５】
なお、この具体例の場合、図２８の状態遷移図から、さらに“init”を削除して、図２９のように書き直すことが可能である。このような書き換えは、元の制御仕様が「いかなる時点でも〜が成立すること」という形式をしていれば、直ちに可能である。なぜなら、制御仕様の意味から考えて、図２８において、初期状態“init”から遷移した先の状態を起点とみなしても、引き続いて「いかなる時点でも〜が成立すること」という同じ条件が成り立つからである。そこで、それらを改めて初期状態と考えて状態遷移図を書き直せば、図２９のようになる。「いかなる時点でも〜が成立すること」という条件は、図２１の３行目にある“always”というキーワード、あるいは（式７）における“Ｇ”という演算子の意味から導かれるものであるから、これらを目印にすれば、上記のような書き直しが可能な制御仕様であるか否か容易に識別できる。
【０１６６】
以上の説明は状態遷移図によって行ったが、図２９の遷移関係を表の形式で表現したものが図３０である。ただし、図２９は（その元になった図２５が、tg が0の場合を省略しているため）tgが0の場合が省略されているが、図３０ではtg が0 の場合も含んでいる。
【０１６７】
なお、図３１は、初期状態を示す表であり、tgは１、それ以外のtx0、およびtx1は、１又は０のいずれでもよいことを示している。
【０１６８】
図２３および図２４（或いは図２５）に示したクリプキ構造から、上述した図３０および図３１に（或いは図２９）に示した遷移先選択型タブローを作成する処理は、図２０における遷移先選択型タブロー作成手段424によって行われる。
【０１６９】
ところで、図３０と図２３を比較してみると、元のタブローにおいて次状態の基本命題変数v’、y’であった欄が遷移先選択型タブローにおいてv、yの欄に入れ替わっているだけで、表の内容は同一であることが分かる。
【０１７０】
即ち、ここまで説明してきた遷移先選択型タブローは、従来のタブロー構築とほぼ同じステップによって作成することが可能である。ただし原子命題の扱いを変更することによって、従来型タブローとは異なる性質のタブローが得られ、それによって本発明の目的を達成することができる。
【０１７１】
この着眼点に基づくと、本実施例における遷移先選択型タブローの構築方法として、従来技術によるタブロー構築方法の一部を修正した構築方法を用いることができる。その方法を従来技術との比較によって説明する。
【０１７２】
まず、状態変数を求める方法を比較する。図３２は、従来型タブロー構築方法における状態変数の求め方を示すフローチャートである。
【０１７３】
まず、ステップ５０１で、時相論理の式ｆを入力する。次にステップ５０２で、時相論理式ｆをタブロー規則に基づいて展開し、展開式ｇを得る。ステップ５０３では、展開式ｇに含まれる基本部分式を列挙する。最後にステップ５０４で、基本部分式に命題記号を割り当てる。このようにして得られた基本部分式と命題記号（現状態変数と次状態変数）との関係が、図２２に示されるものである。
【０１７４】
他方、本実施形態では、図３２の従来型タブロー構築方法における状態変数の求め方を、図３３に示すフローチャートに修正する。
【０１７５】
従来のステップ501（図３２）に対応するものが、本実施形態ではステップ516 とステップ517 になっている。
【０１７６】
ステップ516 で入力した時相論理の式ｅに、時相演算子のＸをステップ517 で追加する。これは、init という状態を新たに追加する処理に相当する。ただし、単純にinit という状態を追加する方法に比較して、この方法にはＧで始まる時相論理の式の場合に状態数が増えないという長所がある。
【０１７７】
次に、遷移関係について比較してみる。ただし、従来技術のタブローはクリプキ構造であるのに対し、本実施例の遷移先選択型タブローは順序機械である。それにともなって、本実施形態では原子命題が遷移ラベルに用いられる。タブローの状態変数になるのは次時点部分式に対応する命題記号だけである。このように、方法だけでなく、出力するデータの性質が異なっていることに留意する必要がある。その上で、遷移関係を求める方法の違いを説明する。
【０１７８】
図３４は、従来技術による遷移関係Ｒを求めるフローチャートである。
【０１７９】
まずステップ505で変数Ｒをtrue（真）に初期化する。遷移関係は最終的にこのＲに記憶される。次に、ステップ503（図３２）で列挙された基本部分式のうち、次時点部分式を順に取り出して処理を行う。すべての次時点部分式を処理し終えたかどうか判定するのがステップ506である。まだ次時点部分式が残っている場合は、ステップ507でその1個を取りあげる。なお、ステップ507 で「Xh とする」というのは、次時点部分式の先頭のX を省いた残りの部分をh とする、という意味である。
【０１８０】
次のステップ508 ではh にタブロー規則を適用して展開する。その結果に含まれる基本部分式を、ステップ509 で次状態変数に置き換える。その結果をj とする。また、現在処理中の次時点部分式(Xh)に対応する現状態変数を見つけるのがステップ510 である。その現状態変数をt とする。なお、Xh という次状態部分式から導かれる関係は
【数８】
0004528728.tif 000009
【０１８１】
この結果を用いて、遷移関係の中間結果を保持している変数Ｒを更新するのがステップ511 である。未処理の次時点部分式が残っている間、ステップ506から上記処理を繰り返す。すべての次時点部分式が処理済になれば、ステップ512 Ｒを出力して終了する。このＲが従来技術に係るタブローの遷移関係を表している。
【０１８２】
図３５は、本実施形態に係るタブロー（遷移先選択型タブロー）の遷移関係を求めるフローチャートである。
【０１８３】
従来技術のステップ509 に相当するのが、本実施形態の場合はステップ518 になっている。相違点は、従来技術で次状態変数への置き換えの対象となっていたのが原子命題を含む基本部分式のすべてであったのに対し、本実施形態の場合は次時点部分式だけを置き換える点である。この違いは、（入出力信号に相当する）原子命題を、状態変数ではなく遷移ラベルとして扱うために現れた違いである。
【０１８４】
なお、初期状態の求め方については、本実施例でも従来技術と同じである。
【０１８５】
以上が遷移先選択型タブロー作成手段416 で行われる遷移先選択型タブローの作成方法の説明である。ここで得られた遷移先選択型タブローは制御仕様モデル記憶手段406 に記憶される。これ以降の部分（即ち、図２０において、制御仕様（時相論理）入力手段415と制御仕様モデル作成手段416以外の部分） の作用は第１の実施形態と同じであるため、説明を省略する。
【０１８６】
ただし、確認のために、途中で得られる中間結果を図示しておく。
【０１８７】
図１０に示した制御対象モデルＭ１と、図３０および図３１に示した第２の実施形態に係る制御仕様モデルＭとを単純に合成すると図３６の遷移表および図３７の初期状態の集合を示す表がモデル合成手段421の出力として得られる。
【０１８８】
一方、可制御模倣関係Ｈmaxは図３８であり、可制御模倣関係計算手段407で計算されたものである。図３６の遷移表および図３７の初期状態の集合を示す表から、可制御模倣関係Ｈmax（図３８）に含まれるものを取り出したものが許容動作モデルＭｃとなる。許容動作モデルＭｃの遷移関係は図３９、初期状態の集合は図４０となる。また、制御ルールは図４１のようになる。
【０１８９】
第２の実施形態の具体例においても、外生信号v や制御出力y、および制御入力u がそれぞれ1ビットの信号となっていたが、これらが複数ビットであっても、同様に本発明を適用することができるのは、第１の実施形態と同様である。1ビットの例を採用したのは、そうしないと説明に使う図面が大きくなりすぎて記載できなくなるためである。
【０１９０】
また、本実施形態ではLTL を基盤とする制御仕様を用いたが、ACTL でも同様に本発明を適用することができる。非特許文献３には、LTL におけるタブロー構築とならんでACTL のタブロー構築方法が説明されており、両者はおおむね似通っている。これを参考に、LTL のＸという演算に相当するのがACTL ではＡＸであることと、それに伴って遷移関係の定義を変更することに注意すれば、ACTL について遷移先選択型タブローを作成する方法は明らかである。
【０１９１】
また、許容動作モデルの状態数は、制御対象モデルの状態数と制御仕様モデルの状態数の積の値以下になることを指摘しておく。状態変数の数でいえば、許容動作モデルの状態変数の数は、制御対象モデルの状態変数の数と、制御仕様モデルの状態変数の数の和と等しいか、それより小さくなる。許容動作モデルの状態変数の数というのは、制御装置をデジタル回路として実装した場合のフリップフロップ数と同じものと考えることができる。つまり、制御対象の状態数と制御仕様の次時点命題の数が分かった時点で、制御装置の規模を見積もることができる。
【０１９２】
特に、あらかじめ制御装置の状態数の上限が分かるということは有用であり、制御模倣関係などの計算を行う前に、その計算が計算機などにより実施できる規模であるかどうか予測するのに役立つ。
【０１９３】
このように、時相論理を基盤とする制御仕様から、結果として得られるデジタル装置の規模をあらかじめ見積もれるということも、本実施形態の特徴のひとつである。本実施形態では、アービタやスケジューラが必要になる場合にその接続方法を示していないが、それらを使用する場合でも、それらの方式を指定した時点で追加回路に含まれるフリップフロップ数はほぼ特定できるから、事前に規模を見積もることができることには違いはない。
【０１９４】
第２の実施形態に係るデジタル回路の自動設計装置、自動設計方法、および自動設計プログラムによれば、制御系の仕様（制御仕様）のモデルを、順序機械ではなく時相論理による仕様として与えられた場合であってもデジタル回路の自動設計が可能となる。このため、制御仕様を時相論理で表現することによる利点、例えば、正確性や簡便性等、を享受することができる。
【０１９５】
なお、本発明は上記の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
【図面の簡単な説明】
【０１９６】
【図１】本発明に係るデジタル回路の自動設計方法及び自動設計プログラムの一実施形態における処理の流れを示すフローチャート。
【図２】本発明に係るデジタル回路の自動設計装置の第１の実施形態における構成例を示す図。
【図３】本発明に係るデジタル回路の自動設計方法、自動設計プログラム、及び自動設計装置を説明するための具体例で取り扱う制御系全体の構成を示す図。
【図４】具体例における信号名称の宣言のみをVerilog 言語で記述した制御装置のモデルを示す図。
【図５】具体例における制御系の制御仕様モデルをVerilog 言語で記述した図。
【図６】具体例における制御系の制御仕様モデルを順序機械のモデル（遷移関係及び初期状態）で表現した図。
【図７】具体例における制御系の制御仕様モデルを状態遷移図で表現した図。
【図８】具体例における制御系の制御仕様モデルの動作をシミュレーションによって求めたタイミングチャート。
【図９】具体例における制御対象モデルをVerilog 言語で記述した図。
【図１０】具体例における制御対象モデルを遷移関係と初期状態で表現した図。
【図１１】具体例における制御対象モデルを状態遷移図で表現した図。
【図１２】制御系のモデルおよび制御仕様モデルを非特許文献１から引用した図。
【図１３】具体例における可制御模倣関係を示す図。
【図１４】具体例における許容動作モデルを示す図。
【図１５】具体例における制御装置の制御ルールを示す図。
【図１６】具体例における制御装置モデルを遷移関係と初期状態で表現した図。
【図１７】具体例における制御装置モデルをVerilog 言語で記述した第１の図。
【図１８】具体例における制御装置モデルをVerilog 言語で記述した第２の図。
【図１９】具体例における制御装置モデルと制御対象モデルとを組み合わせ、シミュレーションによって求めたタイミングチャート。
【図２０】本発明に係るデジタル回路の自動設計装置の第２の実施形態における構成例を示す図。
【図２１】第２の実施形態に係る制御仕様モデルを時相論理式対応の言語で記述した図。
【図２２】タブロー規則によって展開した基本部分式と状態変数との割り付けを示す図。
【図２３】第２の実施形態に係る制御仕様モデルの具体例を遷移関係で示す図。
【図２４】第２の実施形態に係る制御仕様モデルの具体例の初期状態を示す図。
【図２５】第２の実施形態に係る制御仕様モデルをクリプキ構造（状態遷移図）で表現した図。
【図２６】制御仕様モデルの具体例を、従来型タブロー（クリプキ構造）で表現した図。
【図２７】制御仕様モデルの具体例を、本実施形態に係る遷移先選択型タブローで表現した第１の図。
【図２８】制御仕様モデルの具体例を、本実施形態に係る遷移先選択型タブローで表現した第２の図。
【図２９】制御仕様モデルの具体例を、本実施形態に係る遷移先選択型タブローで表現した第３の図。
【図３０】図２９の遷移関係を真理値表の形式で表現した図。
【図３１】図２９の遷移関係の初期状態を表形式で表現した図。
【図３２】従来型タブロー構築方法における状態変数の求め方を示すフローチャート。
【図３３】本実施形態に係る遷移先選択型タブローにおける状態変数の求め方を示すフローチャート。
【図３４】従来型タブロー構築方法における遷移関係Ｒを求めるフローチャート。
【図３５】本実施形態に係る遷移先選択型タブローにおける遷移関係Ｒを求めるフローチャート。
【図３６】制御仕様モデルと制御対象モデルとを合成して得られる制御装置合成モデルの遷移関係を示す図。
【図３７】制御仕様モデルと制御対象モデルとを合成して得られる制御装置合成モデルの初期状態を示す図。
【図３８】第２の実施形態に係る具体例の可制御模倣関係を示す図。
【図３９】第２の実施形態に係る具体例の許容動作モデルの遷移関係を示す図。
【図４０】第２の実施形態に係る具体例の許容動作モデルの初期状態を示す図。
【図４１】第２の実施形態に係る具体例の制御ルールを示す図。
【符号の説明】
【０１９７】
４０１  制御対象入力手段
４０２  制御対象モデル作成手段
４０３  制御対象モデル記憶手段
４０４  制御仕様入力手段
４０５  制御仕様モデル作成手段
４０６  制御仕様モデル記憶手段
４０７  可制御模倣関係計算手段
４０８  可制御模倣関係記憶手段
４０９  許容動作モデル作成手段
４１０  許容動作モデル記憶手段
４１１  制御ルール決定手段
４１２  制御装置モデル作成手段
４１３  設計データ出力手段
４２０  制御可能判定手段
４２１  モデル合成手段
４２２  展開手段
４２４  遷移先選択型タブロー作成手段
【図１】
0004528728.tif 000010
【図２】
0004528728.tif 000011
【図３】
0004528728.tif 000012
【図４】
0004528728.tif 000013
【図５】
0004528728.tif 000014
【図６】
0004528728.tif 000015
【図７】
0004528728.tif 000016
【図８】
0004528728.tif 000017
【図９】
0004528728.tif 000018
【図１０】
0004528728.tif 000019
【図１１】
0004528728.tif 000020
【図１２】
0004528728.tif 000021
【図１３】
0004528728.tif 000022
【図１４】
0004528728.tif 000023
【図１５】
0004528728.tif 000024
【図１６】
0004528728.tif 000025
【図１７】
0004528728.tif 000026
【図１８】
0004528728.tif 000027
【図１９】
0004528728.tif 000028
【図２０】
0004528728.tif 000029
【図２１】
0004528728.tif 000030
【図２２】
0004528728.tif 000031
【図２３】
0004528728.tif 000032
【図２４】
0004528728.tif 000033
【図２５】
0004528728.tif 000034
【図２６】
0004528728.tif 000035
【図２７】
0004528728.tif 000036
【図２８】
0004528728.tif 000037
【図２９】
0004528728.tif 000038
【図３０】
0004528728.tif 000039
【図３１】
0004528728.tif 000040
【図３２】
0004528728.tif 000041
【図３３】
0004528728.tif 000042
【図３４】
0004528728.tif 000043
【図３５】
0004528728.tif 000044
【図３６】
0004528728.tif 000045
【図３７】
0004528728.tif 000046
【図３８】
0004528728.tif 000047
【図３９】
0004528728.tif 000048
【図４０】
0004528728.tif 000049
【図４１】
0004528728.tif 000050