JP4528728B2 - デジタル回路の自動設計装置、自動設計方法、および自動設計プログラム - Google Patents

デジタル回路の自動設計装置、自動設計方法、および自動設計プログラム Download PDF

Info

Publication number
JP4528728B2
JP4528728B2 JP2006023212A JP2006023212A JP4528728B2 JP 4528728 B2 JP4528728 B2 JP 4528728B2 JP 2006023212 A JP2006023212 A JP 2006023212A JP 2006023212 A JP2006023212 A JP 2006023212A JP 4528728 B2 JP4528728 B2 JP 4528728B2
Authority
JP
Japan
Prior art keywords
model
control
circuit
creating
control device
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.)
Expired - Fee Related
Application number
JP2006023212A
Other languages
English (en)
Other versions
JP2007206855A (ja
Inventor
良哲 酒井
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 JP2006023212A priority Critical patent/JP4528728B2/ja
Priority to US11/389,084 priority patent/US7363097B2/en
Priority to TW095110757A priority patent/TWI307030B/zh
Priority to CNA2006100715743A priority patent/CN101013447A/zh
Priority to KR1020060037602A priority patent/KR100764588B1/ko
Publication of JP2007206855A publication Critical patent/JP2007206855A/ja
Application granted granted Critical
Publication of JP4528728B2 publication Critical patent/JP4528728B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、デジタル回路の自動設計装置、自動設計方法、および自動設計プログラムに係り、特に、与えられた制御仕様等を満足する制御装置等の自動設計を行うデジタル回路の自動設計装置、自動設計方法、および自動設計プログラムに関する。
集積回路の集積度向上に伴い、集積回路の設計において設計データの再利用を頻繁に行うようになってきている。集積回路の設計の分野では、再利用可能な設計資産をIP(Intellectual Property)と呼んでいる。
近年注目を集めている集積回路のシステムレベル設計では、IP の再利用性を高め、検証の負担を減らすために、デジタル回路の設計において、例えば、演算機能の設計と通信インターフェースの設計とを分離する方法が提唱されている。
インターフェース回路の設計は間違いやすい作業である。動作タイミングの正確な記述が必要であるのと同時に、並行動作する他モジュールからのさまざまな入力信号を想定して設計しなければならない。十分注意して設計したとしても、特定の条件で誤動作する可能性を完全には排除しきれない。
このため、設計結果に対する検証は、一般にかなり綿密に行われている。検証の代表的な手段としては、シミュレーションによる検証と形式的検証と呼ばれる検証とがある。
シミュレーションによる検証にはテストのための入力(テストベクタ)が必要であり、その作成には設計作業とは別に大きな労力が必要である。シミュレーション結果のチェックにも大きな労力が必要となる。また、稀にしか起こらない状況まで網羅的に調べるには多大な時間が必要となる。
一方、形式的検証の一種としてプロパティ検証がある。これは、望ましい回路動作の仕様(プロパティ)を与えて、設計結果がプロパティを満たすかどうかを自動的に調べる方法である。テストベクタが不要であり、稀な状況も含めて網羅的な検証が可能であるため、近年注目を集めてきている。
プロパティは時相論理(ブール代数に時間に関する演算子を加えた論理式を取り扱う論理の体系)をベースにした言語で記述するのが一般的であり、そのような言語の代表的な例として、PSLやSystemVerilog Assertionと呼ばれる言語がある。
インターフェース回路の検証においては、「稀に動作がおかしくなる」というタイプの不具合が多いため、このようなプロパティ検証が向いている。バスの規格や、よく使用されるインターフェースの形式は決まっていることが多く、あらかじめ用意されたプロパティを適用できることができるため、検証の工数削減に役立っている。
しかしながら、シミュレーションによる検証も、またプロパティ検証も、いずれも設計結果を検証するという方法に過ぎず、設計の誤りが見つかった場合は、修正して再び検証を行うことが必要になる。それには大きな工数が必要になるため、後述する制御系設計のように自動的に制御装置(インターフェース回路)のモデルを求める方法があると望ましい。
特にインターフェース回路の場合はあらかじめ制御仕様(プロパティ)が用意できる場合が多いので、制御系の設計を自動化できればその効果は高い。
ところで、デジタル装置は一般に離散事象システムとしてモデル化される。離散事象システムのなかでも、もっとも単純で、実際にもよく利用されているモデルはFSM(Finite State Machine, 有限状態機械)である。FSMにもいろいろな種類があるが、例えば、オートマトン、順序機械(sequential machine) 、或いはクリプキ構造(Kripke structure) はそれぞれFSM の一種であると考えることができる。
オートマトンは言語理論において言語のモデルとして用いられている。クリプキ構造は論理学において時相論理のモデルとして用いられている。また、順序機械はデジタル回路のモデルとして用いられている。
非特許文献1は、制御装置のモデルの作成に関する基礎理論的な技術を開示するものである。非特許文献1では、制御装置と制御対象との2つの要素から構成され、これら2つの要素が所定の接続関係にある制御系において、制御系の仕様(制御仕様)のモデルMと、制御対象のモデルM1とが与えられたときに、制御装置のモデルM2を作成することを課題として取り扱っている。非特許文献1では、これらのモデルを、順序機械によるモデルとして扱っている。
他方、前述したプロパティ検証の分野においては、プロパティ(制御仕様)は時相論理の論理式として記述されることが多い。プロパティ検証の原理はモデル検査である。モデル検査とは、検証(検査)の対象物のモデルがクリプキ構造として記述されており、このクリプキ構造が、時相論理の論理式のモデルとなっているか否か、即ち、クリプキ構造が時相論理の論理式を満たすか否かを検査するものである。
モデル検査に関する文献として従来から各種のものが公表されているが、例えば、特許文献1は、モデル検査を効率良く実施する技術について開示したものである。
また、順序回路の設計では順序機械を使うのが一般的であるが、これをモデル検査に適用するためには、順序機械とクリプキ構造との対応関係を明らかにしておく必要がある。非特許文献2は、この順序機械とクリプキ構造との対応関係について示している。
また、非特許文献3には、LTL(linear Temporal Logic)と呼ばれる時相論理の種類からタブロー構築を行う方法や、ACTLと呼ばれる時相論理の種類からタブロー構築を行う方法等が開示されている。なお、ACTLは、CTL(Computation Tree Logic)と呼ばれる時相論理において、E(可能)という演算子を使わずにA(必然)という演算子だけを使うように制限したものである。
特許第3600420号公報 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.
前述したように、非特許文献1が開示する技術は、制御系の仕様(制御仕様)のモデルMと、制御対象のモデルM1とが与えられたときに、制御装置のモデルM2を作成することを課題として取り扱っているものであり、制御装置のモデルM2の自動設計が可能であることを示唆している。
しかしながら、非特許文献1は、制御装置のモデルM2の自動設計の具体的な手順や、自動設計を行うための具体的な装置の機能構成までを開示するものではない。
また、非特許文献1では、制御系の仕様(制御仕様)のモデルMを、順序機械によるモデルとして扱っている。しかしながら、一般的には、前述したモデル検査の場合のように、制御系の仕様(制御仕様)のモデルMを、順序機械ではなく時相論理による仕様として表現した方が正確かつ簡便な場合が多い。
本発明は、上記事情に鑑みてなされたもので、制御対象に制御装置を接続した制御系の構成において、制御対象の仕様と制御系の制御仕様とが与えられたときに、制御仕様に合致するように制御装置を自動設計するとともに、制御仕様が時相論理による仕様として与えられた場合であっても、制御装置を自動設計することができる、デジタル回路の自動設計装置、自動設計方法、および自動設計プログラムを提供することを目的とする。
上記課題を解決するため、本発明に係るデジタル回路の自動設計装置は、制御対象回路と制御装置回路とから構成される制御系回路において、前記制御対象回路のモデルと前記制御系回路の仕様モデルとが与えられた場合に、前記制御装置回路のモデルを自動設計するデジタル回路の自動設計装置であって、前記制御対象回路のモデルが所定の設計記述言語で記述された第1の制御対象モデルを入力する制御対象入力手段と、前記第1の制御対象モデルから、有限状態機械のモデルで表現された第2の制御対象モデルを作成する制御対象モデル作成手段と、作成された前記第2の制御対象モデルを記憶する制御対象モデル記憶手段と、前記制御系回路の仕様モデルが所定の設計記述言語で記述された第1の制御仕様モデルを少なくとも入力する制御仕様入力手段と、少なくとも前記第1の制御仕様モデルから、有限状態機械のモデルで表現された第2の制御仕様モデルを作成する制御仕様モデル作成手段と、前記第2の制御仕様モデルを記憶する制御仕様モデル記憶手段と、前記制御対象モデル記憶手段に記憶された第2の制御対象モデルと、前記制御仕様モデル記憶手段に記憶された第2の制御仕様モデルとの論理積をとることによって、前記制御装置回路の合成モデルである制御装置合成モデルを作成するモデル合成手段と、前記第2の制御対象モデルと前記第2の制御仕様モデルとから、前記第2の制御仕様モデルの変数の総ての状態と、この総ての状態に対して前記第2の制御対象モデルの変数がとりうる状態との関係を示す可制御模倣関係を求める可制御模倣関係計算手段と、前記可制御模倣関係を記憶する可制御模倣関係記憶手段と、前記制御装置合成モデルが、前記制御系回路の仕様を満足する制御が可能なモデルであるか否かを、前記可制御模倣関係に基づいて判定する制御可能性判定手段と、前記制御装置合成モデルと前記可制御模倣関係とから、前記制御装置合成モデルの規模を縮小したモデルである許容動作モデルを作成する許容動作モデル作成手段と、作成された前記許容動作モデルを記憶する許容動作モデル記憶手段と、
前記許容動作モデルを用いて、その規模を更に縮小可能な制御ルールを決定する制御ルール決定手段と、前記許容動作モデルと前記制御ルールとの論理積をとることによって、有限状態機械のモデルで表現された制御装置モデルを作成する制御装置モデル作成手段と、を備えたことを特徴とする。
本発明に係るデジタル回路の自動設計装置、自動設計方法、および自動設計プログラムによれば、制御対象に制御装置を接続した制御系の構成において、制御対象の仕様と制御系の制御仕様とが与えられたときに、制御仕様に合致するように制御装置を自動設計するとともに、制御仕様が時相論理による仕様として与えられた場合であっても、制御装置を自動設計することができる。
本発明に係るデジタル回路の自動設計装置、自動設計方法、および自動設計プログラムの実施形態に付いて、添付図面を参照して説明する。
(1)第1の実施形態
図1は、本実施形態に係るデジタル回路の自動設計方法を説明するフローチャートである。図1の各ステップについて、まずは簡単に説明する。詳細な説明は後に具体的な例を示しながら行う。
まず、制御仕様入力ステップ301では制御仕様のモデルのデータ(第1の制御仕様モデル)を入力する。これは、Verilog やVHDL、あるいはSystemC やSpecC などの設計記述言語、又はC言語などのプログラミング言語で表現されたデータ等である。また、これらの言語で記述された仕様を実行可能仕様と呼び、実行可能仕様を記述する言語を実行可能仕様言語と呼ぶことがある。
実行可能仕様は計算機のプログラムとして実行することができ、シミュレーションに用いたり、或いは実装装置の制御系に内蔵された計算機(プロセッサ)のプログラムとして利用する場合もある。
この他、PSL やSystemVerilog Assertion 等の言語によって記述された、時相論理やその他の論理式に基づくプロパティを表すデータである場合も含むものである。
制御仕様モデル作成ステップ302では、入力された制御仕様のデータをFSM(有限状態機械)のモデルで表現されるデータ(制御仕様モデルM:第2の制御仕様モデル)に変換する。
一方、制御対象入力ステップ303では、制御対象のモデルが記述されたデータ(第1の制御対象モデル)を入力する。これは、Verilog やVHDL、あるいはSystemC やSpecC などの設計記述言語で記述された制御対象の回路の内容を表現するデータである。そのデータを、制御対象モデル作成ステップ304でFSM(有限状態機械)で表現されるデータ(制御対象モデルM1:第2の制御対象モデル)に変換する。
次の可制御模倣関係計算ステップ305 では、可制御模倣関係(controllable simulation relation)を計算する。可制御模倣関係は、FSMで表現された制御対象モデルM1と制御仕様モデルMとから求めるもので、基本的には、非特許文献1に開示されている式に基づいて計算されるものである。
その計算結果を元に、可制御性判定ステップ306 で、制御仕様を満たす制御が可能であるか否か判定し、可能でない場合は不可制御通知ステップ307にてそのことを通知して終
了する。
一方、制御可能である場合は、続いて許容動作モデル作成ステップ308 で許容動作モデルのデータを作成する。許容動作モデルは、制御対象モデルM1および制御仕様モデルMに基づいて単純に合成した制御装置合成モデルに対して、上述した可制御模倣関係による制約条件を課して作成されるものである。
次に、制御ルール決定ステップ309 において、許容動作モデルから制御ルールを決定する。その制御ルールに基づいて制御装置のモデルを作成し、作成した制御装置のモデルを設計データ出力ステップ310 にて出力する。
図2は、本実施形態に係るデジタル回路の自動設計装置の構成例を示す図であり、基本的には図1で示した各ステップの処理を実現する手段から構成されている。
制御仕様入力手段404は、制御仕様入力ステップ301の操作を実現するものであり、制御仕様のモデルのデータを入力する。このデータは、例えば、計算機の記憶装置に格納されたファイルから入力されたり、通信回線を通じて入力されたり、あるいは設計者によって計算機の入力機器から直接入力される場合などがありうる。
制御仕様モデル作成手段405 は、制御仕様モデル作成ステップ302の操作を実現するものであり、入力された制御仕様のデータをFSM を表すデータに変換し、制御仕様モデル記憶手段406 に格納する。
制御対象入力手段401は、制御対象入力ステップ303の操作を実現するものであり、制御対象のモデルがVerilog等の設計記述言語記述されたデータを入力する。このデータは、たとえば計算機の記憶装置に格納されたファイルから入力されたり、通信回線を通じて入力されたり、あるいは設計者によって計算機の入力機器から直接入力される場合などがありうる。
制御対象モデル作成手段402は、制御対象モデル作成ステップ304の操作を実現するものであり、入力された制御対象のモデルを、FSM の形式に変換し、それを制御対象モデル記憶手段403 に記憶する。
可制御模倣関係計算手段407 は、可制御模倣関係計算ステップ305 の操作を実現するものであり、制御対象モデル記憶手段403に格納された制御対象モデルと、制御仕様モデル記憶手段406 に格納された制御仕様モデルから、可制御模倣関係を計算し、計算の結果得られる可制御模倣関係を可制御模倣関係記憶手段408 に格納する。
可制御性判定ステップ306における判断は、可制御判定手段420で行われる。制御が可能でない場合は、その旨を設計データ出力手段413に出力して処理を終了する。
モデル合成手段は、制御仕様モデル記憶手段406に記憶されている制御仕様モデルMと、制御対象モデル記憶手段403に記憶されている制御対象モデルM1とを単純に合成して制御装置合成モデルを作成する手段である。
許容動作モデル作成手段409は、許容動作モデル作成ステップ308の操作を実現するもので、単純合成によって得られた制御装置合成モデルに対して、上述した可制御模倣関係による制約条件を課して許容動作モデルを作成する手段である。また、作成した許容動作モデルを許容動作モデル記憶手段410に格納する。
制御ルール決定手段411は、制御ルール決定ステップ309の操作を実現するものであり、許容動作モデルから制御ルールを決定し、制御装置モデル作成手段412に出力する。
制御装置モデル作成手段412では、許容動作モデルに対して制御ルールを適用することによって、FSM(有限状態機械)で表現された制御装置モデルをまず作成し、その後、所定の設計記述言語、例えばVerilog言語、で記述された制御装置モデルに変換する。
設計データ出力手段413 は、設計データ出力ステップ310の操作を実現するものであり、制御装置モデル作成手段412で作成、変換された制御装置モデルを出力する手段である。その出力は、たとえば計算機の記憶装置にファイルとして格納したり、通信回線を通じて出力したり、或いは設計者に対して計算機の出力機器から直接出力することにより、制御装置のモデルをデジタル装置として実装することができる。
モデルの実装方法としては、例えば、論理合成ツールによってデジタル回路にするという方法がある。あるいは計算機にプログラムを与えて所望の動作をさせるという方法もある。
(2)具体例による説明
上記に説明したデジタル回路の自動設計方法について、具体例を用いて説明する。図3は、本具体例で取り扱う制御系全体の構成を示すものである。
図3(a)は、本具体例で扱う制御系全体の構成をVerilog 言語で表現したものである。また、図3(b)は、その内部の配線の関係を図で表したものである。
図3(a)の1行目に記述されている“control_system”が制御系全体を現すモジュールであり、その内部にある“plant”という名前のモジュールが制御対象である。また、“controller”という名前のモジュールが制御装置を表している。制御系には外部からクロック信号clk、リセット信号rst、および外生信号v が入力されており、それぞれが図3(b)に示されたとおりに制御対象と制御装置に配線されている。なお、plant というモジュールのインスタンスとしてpという名前を宣言し、またcontroller というモジュールのインスタンスとしてc という名前を宣言している(図3(a)の7行目、8行目)。ここではそれらをそれぞれ制御対象、制御装置と呼ぶことにする。
制御装置には、上記の構成から明らかなように、クロック信号clk 、リセット信号rst 、外生信号v 、制御出力信号y、および制御入力信号u が接続されている。これをVerilog 言語で表現すると図4のようになる。これは制御装置に接続されている信号の名前だけを宣言したモジュールであり、内部に存在すべきフリップフロップや、その動作に関する記述が含まれていない。図4の7行目に「/* 未実装*/」と書かれた部分がある。この部分に必要な記述を挿入することで制御装置のモデルが完成することになる。即ち、この部分に具体的なフリップフロップに関する記述やその動作に関する記述等を挿入することが、本実施形態で達成すべき目的となる。
まず、最初のステップとして、制御系の制御仕様を入力する(図1のステップ301)。
図5(a)は、本具体例における制御系の制御仕様を記述したものである。本例では制御対象である回路モジュールをVerilog 言語で記述している。
現在、多くの設計者がVerilog やVHDLなどの設計言語で設計内容を表現している。その記述の抽象度は、現在、RTL (Register Transfer Level)が多い。RTL 記述による回路設計で利用されるものが論理合成ツールである。論理合成ツールは、RTL で記述された設計データを入力し、それをより詳細なレベルの回路モデルに変換するものである。
RTL 記述は順序機械としてモデル化される。フリップフロップの値が順序機械の状態に相当する。その値の変化が状態遷移であるが、同期式の順序回路ではクロックに同期して状態遷移が起きる。RTL よりも抽象度の高いレベルの設計を、SystemC やSpecC などの言語を使って行う場合でも、CAD による処理の過程でFSM のモデルを得ることができる。
図5(a)の枠線の内部がVerilog 言語による記述であり、左側の数字は説明のための行番号を示したものである。このモジュールは、クロック入力clk、非同期リセット入力rst、外生信号入力v、および出力y を持つ(1行目から4行目までを参照)。これらはそれぞれ1ビットの信号線である。
また、モジュール内部にはx0, x1 という二つのフリップフロップを持っている(6行目を参照)。これらは、リセット時にはゼロになる(10行目、16行目とその付近を参照)。また、クロックの立ち上がりエッジにおいて、x0 はv の信号値を取り込み、その値を保持して出力する(12行目とその付近を参照)。同じくクロックの立ち上がりエッジにおいてx1 はx0 の出力値を取り込み、その値を保持して出力する(18行目とその付近を参照)。また、出力yは、x0 の出力とx1 の出力の論理積を出力する(20行目を参照)。
なお、このVerilog 言語による記述から、論理合成ツールなどを使って実際のデジタル回路を作成することができる。論理合成ツールが出力した回路の例を図5(b)に示す。x0 とx1 は、それぞれDフリップフロップとして実現されている。これらのDフリップフロップにはクロック入力の信号線clk が接続されており、ポジティブエッジでトリガするようになっている。また、リセット入力の信号線rst は二つのDフリップフロップのリセット入力CLR に接続されている。一方、これらのフリップフロップの出力は二入力のAND ゲートに接続され、さらにその出力がモジュールの出力信号yとなっている。
続いて制御仕様モデル作成手段405は、入力したデータ(Verilog 言語で記述されたデータ)から図6に示すような順序機械のモデルを表すデータを作成し(図1のステップ302)、制御仕様モデル記憶手段406に格納する。このような操作は、論理合成ツールやプロパティ検査ツールなどの既存のプログラムでも行われている公知の技術である。図6(a)は、制御対象の入出力と状態の遷移関係を遷移表の形態で示したデータであり、図6(b)は、初期状態の集合を表している。
なお、図6(a)では、遷移前の状態(現状態)と遷移した後の状態(次状態)を区別するため、次状態を表す変数にはx0’、x1’のようにプライム記号(’)をつけることにする。
この表について説明する。図5(b)に示した回路で、たとえばx0の状態(すなわちx0 の出力)が1、x1 の状態(すなわちx1 の出力)が0、入力vが1とすると、出力yは0である。この状態から、クロックのポジティブエッジによって状態遷移が起こったとすると、その遷移後の状態はx0 が1、x1 が1となる。入出力信号と現状態と次状態の情報をまとめて、v, y, x1, x0, x1’, x0’ の順に並べると100111となる。これは図6(a)の表の4行目にあたる。他の値の組み合わせもすべて列挙すると8種類になり、それらをまとめた表が図6(a)である。このようにして遷移関係を得ることができる。
図6(b)は、この回路のリセット直後の状態(初期状態)を示す表である。二つあるフリップフロップの両方ともがリセットによってゼロになるため、初期状態はx0 が0、x1 が0という一種類しかない。一般には順序機械の初期状態はひとつとは限らないので、初期状態の集合で表現する。
図7は、図6(a)および(b)と同じ情報を状態遷移図として表したものである。x1、x0をまとめて2ビットで表現すると、00, 01, 10, 11 の4個の状態がある。これらの状態が丸で表現されたノードとして表されている。状態の間を結ぶ矢印は状態遷移を表しており、それらには1/0 や0/0 などといったラベルがつけられている。このラベルは、スラッシュ記号/の左側に入力の値、右側に出力の値を記したものである。また、二重丸のノード(この例では00)は初期状態を表すものである。
以上の説明からわかるように、図5(a)のような設計記述言語による回路の表現、図5(b)のような回路図による表現、図6のような順序機械の遷移関係や初期状態の集合を表すデータによる表現、および図7のような状態遷移図による表現は、本質的に同一の内容を表している。これらは、順序回路の動作を表す方法としては等価であり、互いに他の形式に変換することができる。
なお、参考として、図5の回路モデルに対してシミュレーションを行った結果を図8に示す。“clk” は周期的なクロック入力となっている。“rst”には、シミュレーションの最初の段階でひとつだけパルスを与えており、それによって回路内部のフリップフロップがリセットされ、x0 とx1 が0という値になっている。入力vは、クロックに同期した入力であり、クロップのポジティブエッジより少し前に変化して、フリップフロップのセットアップタイムを確保するように値が変化している。x0、 x1 はそれぞれ対応するフリップフロップの出力であり、yはモジュールの出力である。vから1クロック周期分だけ遅れた波形がx0 に現れ、x0 から1 クロック周期分遅れた波形がx1に現れていることがわかる。また、x0 とx1 が両方1である場合に限ってyが1になっていることがわかる。
ここまでの段階で、Verilog言語で記述された制御系の制御仕様(図5(a))から、順序機械のモデルとして表現された制御仕様モデル(図6)に変換されたことになる(図1のステップ301、302)。
次に、図1のステップ303で、制御対象のモデルを入力する。
図9(a)は、本具体例における制御対象のモデルを記述したものであり、本例でも制御対象である回路モジュールをVerilog 言語で記述している。
この回路モジュールは、クロック入力clk と、リセット入力rst、および制御入力u と制御出力y を持っている。これらはそれぞれ1ビットの信号線である(図9(a)の1行目から4行目を参照)。内部にはフリップフロップが1個あり(5行目参照)、これがこの回路モジュールの状態を保持している。その値をs とする。
リセット入力rst の入力によってsが“0”になる(10行目とその近辺を参照)。また、clk のポジティブエッジで状態sが変化する(8行目を参照)。そのとき、現状態s と制御入力uの排他的論理和(演算子“^”は排他的論理和を意味する)が次状態s’ の値になる(12行目を参照)。
図9(b)は、Verilog 言語で記述された図9(a)のモデル から論理合成ツールで作成した回路の回路図を示すものである。ここではイネーブル入力ENA をもった1個のDフリップフロップで回路によって実現されている。制御対象入力手段401は、例えば、計算機の記憶装置にファイルとして格納されている図9(a)のデータを入力する。
続いて制御対象モデル作成手段402は、入力したデータから図10に示すような順序機械のモデルを表すデータを作成し、制御対象モデル記憶手段403 に格納する。このような操作は、論理合成ツールやプロパティ検査ツールなどの既存のプログラムでも行われている公知の技術である。図10(a)は、制御対象の入出力と状態の遷移関係を遷移表の形態で示したデータであり、図10(b)は、初期状態の集合を表している。
図10のような“0”、“1”の表を記憶するには、BDD(Binary Decision Diagram:二分決定グラフ)と呼ばれる公知技術を利用する形態が好適である。BDDの利用によって、多くの場合、少ないメモリ使用量でこのような“0”、“1”のブール値による関係を記憶することができる。本実施形態で必要となるさまざまな操作もBDDの利用によって高速に実施できるという利点がある。もっとも、必ずしもBDDを使う必要はなく、ブール値からなる表を記憶できる手段であれば、BDD以外のものを用いることもできる。たとえば、表の形式のまま配列として記憶し、或いはブール代数の式として文字列やその他のデータ形式で記憶することも可能である。積和標準形や和積標準形は、ブール代数の式の標準的な形として有名であるが、その他の形式でも構わない。
前述したように、順序機械のモデルを表す遷移表や初期状態の集合を表す表は、図11に示す状態遷移図として表現することもできる。従って、この状態遷移図を記憶できるようなその他のデータ形式で記憶しても構わない。例えば状態やラベルのデータをレコード(C言語では構造体)で表し、状態遷移の遷移先のレコードをポインタ変数で指し示すなどといった方法も可能である。
次に、図1のステップ305で可制御模倣関係を計算する。
ここで、可制御模倣関係とは、非特許文献1において、Hmaxとして計算式が与えられているものである。可制御模倣関係計算手段407によって、制御仕様モデル記憶手段406 に記憶された制御仕様モデルと、制御対象モデル記憶手段403 に記憶された制御対象モデルとから、可制御模倣関係Hmax を求める。
図12は、非特許文献1から引用した図であり、図12(a)は、設計する制御系を示したものである。図12(a)において、M1が制御対象のFSMであり、M2が制御装置のFSMである。v は制御系の外から与えられる外生信号であり、y は制御対象から出力される制御出力ある。また、u は制御対象への入力される制御入力である。
これらのv、y、およびuは、図3におけるv、y、およびuと対応するものである。
図12(b)は、制御仕様を表している。制御仕様のモデルはFSMであり、Mという記号によって表される。非特許文献1では、M1とM2とを図12(a)のように接続して得られる制御系から、制御仕様であるMへの模倣関係が存在するようにM2を作成することが課題となっている。なお、非特許文献1で取り扱っているFSMは、総て順序機械に相当するものである。
非特許文献1を引用すると、可制御模倣関係Hmaxは、次の(式1)のように定義される。
Figure 0004528728
Hmax は、この定義から分かるように、M1の状態とMの状態の間で成り立つ関係を表している。非特許文献1には名称が付けられていないが、上述したように、本明細書ではHmaxを可制御模倣関係と呼ぶことにする。
制御が可能であるか否かは、可制御模倣関係を使って判定できる。M1の初期状態をr1、Mの初期状態をrとしたときに、その組(r1,r)が可制御模倣関係に含まれていれば、制御仕様を満たすような制御が可能である。
逆に、(r1,r)が可制御模倣関係に含まれていなければ、どのようなFSMを制御装置のモデルとしても、制御系の動作が制御仕様で指定された動作から逸脱する可能性がある。
可制御模倣関係計算手段407は、制御仕様モデル記憶手段406に記憶された制御仕様モデルと、制御対象モデル記憶手段403に記憶された制御対象モデルから、式(1)のHmax を求める。この式で、Mが制御仕様モデル、にM1が制御対象モデル相当する。Hmax は可制御模倣関係であるが、それは制御対象モデルの状態と、制御仕様モデルの状態の間の関係を表すものである。得られた可制御模倣関係は、可制御模倣関係記憶手段408に記憶する。
本具体例の場合、可制御模倣関係は図13に示した表のようになる。制御対象モデルの状態は変数sで表され、0または1の値をとりうる。一方、制御仕様モデルの状態は、変数x0とx1で表され、それぞれ0または1の値をとりうるので、全部で4個の状態がある。可制御模倣関係が成り立つすべての状態の組み合わせを、変数s, x0, x1 の値として列挙したものが図13である。
次に、可制御模倣関係記憶手段408に記憶された可制御模倣関係Hmax、制御仕様モデルM,および制御対象モデルM1から、許容動作モデル作成手段409によって許容動作モデルMcを作成する(図1のステップ308)。
許容動作モデルMcは、最大の制御装置(maximal controller)と呼ばれるものであり、制御装置のFSMモデルM2を包含するものである。
許容動作モデルはFSM であり、その遷移関係は次の(式4)を計算することによって得られる。この(式4)も非特許文献1において定義されているものである。
Figure 0004528728
(式4)において、M1が制御対象モデル、Mが制御仕様モデル、Mcが許容動作モデルに相当する。また、許容動作モデルの初期状態は同じく非特許文献において、次の(式5)として与えられている。
Figure 0004528728
つまり、許容動作モデルの初期状態は、制御対象モデルの初期状態r1と、制御仕様モデルの初期状態rとを対にしたものに等しい。この初期状態が可制御模倣関係に含まれていなければ、制御仕様を満たす制御系を構成することはできないので、そのことを設計者に通知して設計自動化装置の動作は終了する。
この判断は図1における可制御性判定ステップ(ステップ306)に相当し、制御できないことを利用者に通知するのが不可制御通知ステップ(ステップ307)である。
許容動作モデルの初期状態が可制御模倣関係に含まれていれば、得られた許容動作モデルを許容動作モデル記憶手段410 に記憶する。
(式4)による許容動作モデルMcの定義は、制御対象モデルM1と制御仕様モデルMの合成に似ている。M1とMの合成と同様に、Mcの状態も、M1とMの状態の対として表される。但し、遷移関係の定義において、遷移可能な遷移先の状態が可制御模倣関係Hmaxに含まれるものに限定される点が通常の合成の定義とは異なっている。
換言すれば、許容動作モデルMcは、制御対象モデルM1と制御仕様モデルMを合成したモデル(制御装置合成モデル)に対して、可制御模倣関係Hmaxによる制約条件を課したモデルということができる。
本具体例の場合、許容動作モデルMcは図14のようになる。図14の(a)が遷移関係を表し、(b)が初期状態の集合を表す。
図14(a)の遷移関係は、制御対象モデルM1の遷移関係(図6(a))と制御仕様モデルM(図10(a))とを合成し、その後、可制御模倣関係Hmax(図13)で与えられる次状態((s、x0、x1)=(0,0,0)、(0,0,1)、(0、1、0)、(1、1、1))を満たすデータの組を抽出したものである。
また、図14(b)の初期状態は、制御対象モデルM1の初期状態(図6(b))と、制御仕様モデルM(図10(b))とを対としたものである。
本実施形態の目的は、制御仕様モデルMを満たす制御装置モデルM2を求めることであるが、非特許文献1には、このための必要十分条件として、制御装置モデルM2が許容動作モデルMcを模倣することであることが示されている。
このことは、単純には、M2=Mc(許容動作モデルMcをそのまま制御装置モデルM2とする)としても良いことを意味している。一方、制御装置モデルM2が許容動作モデルMcを模倣している限りにおいて、M2の動作範囲を絞り込める可能性があることも意味している。即ち、制御装置モデルM2の規模は、許容動作モデルMcの規模に対してさらに縮小できる可能性があることを意味している。
次に、制御ルール決定手段411 は、許容動作モデル記憶手段410 に記憶された許容動作モデルMcから制御ルールを決定する。制御ルールは、制御装置の状態から制御入力uを作成する方法を示すもので、制御装置の状態からuへの関数として表すことができる。
制御ルールを決める方法を説明する。まず、許容動作モデルMcの遷移関係の表である図14(a)から、次状態を表す変数であるs’, x0’, x1’ の欄を削除する。また、制御入力u は、制御出力yの値に直接には依存しないという性質がある(ただし制御対象の状態s には依存する)ので、yの欄も削除する。この結果、制御装置の制御ルールを示す図15の表が得られる。図15に残った変数で、制御入力uおよび外生信号v以外の変数、即ち、s, x0, x1が制御装置の状態変数となる(これらから最終的に制御装置内部のフリップフロップが生成される)。
ここで、この表に現れない制御装置の状態は、制御系の動作中には出現しない状態であるので、制御入力を生成する組み合わせ回路を作成するときに、無視することができる。また、制御装置の特定の状態に対して、制御入力uの値が複数対応している場合は、それらのいずれの値を採用しても構わない。この性質を利用することによって、制御ルールの表(図15に相当する表)を縮小することが可能となる。
もっとも、本具体例では、図15に示したようにv, s, x0, x1 のそれぞれの組み合わせに対してu の値は一意に対応している。このため、本具体例では、上記性質を利用した制御ルール縮小の余地はない。
次に、制御装置モデル作成手段412は、制御装置モデルM2を生成する。制御装置モデルM2とは、制御ルール決定手段411 で決定した制御ルールによって許容動作モデルMcの動作を制約して得られるモデルである。具体的には、許容動作モデルMcの遷移関係(図14(a))と制御ルール(図15)の論理積を制御装置モデルM2の遷移関係とする。
また許容動作モデルMcの初期状態、或いは初期状態の集合(図14(b))と可制御模倣関係Hmax(図13)の論理積(あるいは集合積)を制御装置モデルM2の初期状態、或いはあるいは初期状態の集合とする。なお、制御対象の出力である制御出力y、および外生信号vは制御装置からみると入力であり、また、制御対象の入力である制御入力uは制御装置からみると出力となっている。
このようにして、本具体例における制御装置モデルM2を制御装置モデル作成手段412 にて求めた結果が図16である。本具体例では、制御ルールの決定にあたって、上述したように同一の状態に対して複数のuが対応することがなかったため、制御装置モデルM2(図16)は結果的には許容動作モデルMc(図14)と同一のものとなっている。
一般的には、制御ルールが、可能なuのうちの適当な値に固定されると、それ以外のu の値でのみ発生する状態遷移は制御装置モデルから除外され、許容動作モデルMcの規模よりも小さな制御装置モデルM2を生成することが可能である。
このようにして作成された制御装置モデルM2は、有限状態機械(図16のような遷移関係や初期状態)として表現されたモデルであるため、制御装置モデル作成手段412ではこれをさらにVerilog 言語等の設計記述言語で記述されるモデルに変換する。
設計データ出力手段413 は、設計記述言語で記述された制御装置モデルM2を制御装置回路の設計データとして出力する。本具体例では、図17に示すVerilog 言語で記述された出力が得られる。
図17のうち、制御入力信号uへの出力を決める部分が27行目から35行目までの記述になっており、これは図15に記載された制御ルールから生成された部分である。比較すると両者の対応関係がよく分かる。
このように得られた制御装置の設計データ(Verilog 言語で記述されたデータ)は、これを論理合成ツールに入力することによってデジタル回路を作成することができる。
ところで、制御ルール決定手段411についてもう一度考えてみる。制御ルール決定手段411では v, s, x0, x1 から u を求める関数を決定している。そのような関数というのは、数式としてはブール代数式であり、回路でいえば組み合わせ回路に相当するもので、フリップフロップを必要とするような順序回路ではない。
ブール代数式の簡単化(すなわち組み合わせ回路の簡単化)には、さまざまな方法が知られている。たとえば論理回路の設計に関する多くの教科書にはカルノー図を用いて簡単な回路を求める方法が説明されている。系統的に簡単化を行う方法としてはクワイン・マクラスキー法がある。大規模な回路に適用できるものもいくつか提案されており、たとえば ESPRESSO が有名である。このような簡単化の手段は市販の論理合成ツールにも組み込まれており、利用者をわずらわすことなく自動的に適用できる。それは通常、回路のゲート数やトランジスタ数を減らす目的で使われている。
制御ルール決定手段411でもこのような簡単化の方法を用いることができる。図15に簡単化の方法を適用し、その結果として例えば次の(式6)が得られたものとしよう。この式によって(v、s、x0、x1)から計算したuの値は図15と矛盾しないので、この式を制御ルールとして採用することができる。
Figure 0004528728
結果として得られる制御装置の設計データは、図18のようになる。図18(a)がVerilog言語による記述であり、図18(b)が、これを論理合成して得られた回路の回路図である。
図17の設計データには、3個のフリップフロップ(3個の状態変数、s、x0、x1)が含まれているのに対して、図18の設計データでは2個のフリップフロップ(2個の状態変数、s、x0)しか含まれていない。すわなち、制御ルール決定手段411において簡単化手段を適用することにより、フリップフロップの削減という効果が得られている。その簡単化手段というのは組み合わせ回路の簡単化を目的としたものであって、通常はフリップフロップの削減を行わないものであったとしても、それを制御ルール決定手段411において適用すれば、最終的にフリップフロップの削減という効果が得られるのである。
また、図18(a)(制御装置のVerilog言語による設計データ)と、図9(a)(制御対象のVerilog言語による設計データ)とを組み合わせてシミュレーションを行った結果得られた信号波形が図19である。
図19と、制御仕様のシミュレーション結果である図8と比較すれば、制御系が制御仕様で指定された通りに動作することがわかる。
さて、ここで説明した回路の簡単化は、制御装置だけを対象としたものである。制御対象がハードIPである場合や、あるいはモーターなどを含む機械的な制御対象をFSM としてモデル化したものである場合は、その構成を変更できないため、制御装置だけを対象にして回路を簡単化することになる。しかし、仮に制御対象がソフトIPであって、それ自体もこれから論理合成するのであれば、制御装置と制御対象をまとめて簡単化することも可能である。制御系全体を簡単化の対象とすれば、回路規模の現象や動作速度の向上など、さらなる性能改善が期待できる。もっとも、本具体例の場合は、図5の制御仕様が簡単でしかも論理合成可能なものであったため、制御系全体を簡単化することの意味が分かりにくいかもしれない。しかし、一般に、制御仕様が論理合成可能な形式でない場合や、図5ほど簡単ではない場合にも本発明は適用できるので、制御系全体を対象にして簡単化を行うことには意味がある。
また、本具体例では、外生信号v や制御出力y、および制御入力u がそれぞれ1 ビットの信号となっていたが、これらが複数ビットであっても、同様に本発明を適用することができる。具体例として1ビットの例を採用したのは、そうしないと説明に使う図面が大きくなりすぎて記載できなくなるためである。
第1の実施形態に係るデジタル回路の自動設計装置、自動設計方法、および自動設計プログラムによれば、非特許文献1に示された制御装置の作成方法を具体化し、さらに、制御入力uを生成する制御ルールを簡単化することにより制御装置の規模を縮小化することができる。
(3)第2の実施形態
図20は、第2の実施形態に係るデジタル回路の自動設計装置の構成例を示す図である。第1の実施形態との相違点は、入力する制御仕様の形態とその変換方法にある。
第1の実施形態では、制御仕様として、順序回路による仕様(図5(a))を入力しこれを制御仕様モデルM(図6)に変換していた。これに対して、第2の実施形態では、時相論理で記述された制御仕様を入力し、これを制御仕様モデルMに変換する形態である。
図20の制御仕様(時相論理)入力手段415は、時相論理で記述された制御仕様をも入力する手段である。
また、制御仕様モデル作成手段416は、時相論理で記述された制御仕様から有限状態機械で表現された制御仕様モデルに変換するタブロー作成手段(遷移先選択型タブロー作成手段)424を含む手段である。即ち、図20で示した構成は、図2の構成を特殊化したものということができる。しかし、制御仕様(時相論理)入力手段415 が時相論理に基づく制御仕様を入力できるということと、制御仕様モデル作成手段416が時相論理で表されたプロパティ(制御仕様)から本発明で利用するのに適した性質を持つ制御仕様モデルMを作成できるという点に特徴がある。これに関して以降では図20に基づいて説明を行う。
第2の実施形態の説明も具体例を用いて説明するが、第1の実施形態の説明で用いた制御系および制御対象と同じ具体例を用いる。即ち、制御系の構成は図3であり、制御対象は図9である。
制御仕様は図21に示したものを用いる。これはPSLと呼ばれる言語で記述されている。この図21の左側に並ぶ数値は説明のために行番号を示したもので、制御仕様の内容には関係しない。
前述したとおり、PSL は時相論理を基盤にしたプロパティ記述言語である。図21の1行目は、この制御仕様がcontrol_systemというモジュールに対するものであることを示している。図3に示したとおり、control_system は制御系の全体を表している。また、図21の2行目は、このモジュールのクロックがclk であり、そのポジティブエッジで動作することを示している。信号が満たすべき条件を記述しているのは図21の3行目である。この条件を時相論理の式で書けば、次の(式7)となる。
Figure 0004528728
(式7)は、「あらゆる時点で、v の真偽値は、次のクロックの、そのまた次のクロックにおけるyの真偽値と等しい」という条件を意味している。なお、ここでいう「あらゆる時点」では、クロックで区切られた時刻の各ステップを意味している。時相論理では、記号「X」は「次の時点」を意味し、記号「G」は、「あらゆる時点」を意味する。
制御仕様(時相論理)入力手段415はこの制御仕様を入力する。その内容は制御仕様モデル作成手段416に送られる。制御仕様モデル作成手段416では、以下に説明する方法で時相論理で記述された制御仕様から有限状態機械(FSM)で表現された制御仕様への変換を行う。
その前に、説明の必要上、まず従来技術と同じ方法でタブローを作ってみる。時相論理の式からFSMを作成することをタブロー構築といい、それによって得られたFSMをタブローという。タブロー構築に関する文献としては、例えば、非特許文献3等がある。
非特許文献3等に示されるタブロー規則を使って(式7)を展開することにより、(式7)を基本部分式に展開することができる。結果だけを示すと、(式7)は、v、y、Xy、XXy、及びXG(v⇔XXy)の5種の基本部分式から構成される式に展開することができる。なお、時相演算子Xで始まる基本部分式を、次時点部分式と呼ぶことにする。
これらの5種の基本部分式に対応して、図22に示す5種の現状態変数v、y、x0、x1、およびtgを割り付ける。また、対応する次状態変数に、v’、y’、x0’、x1’、およびtg’を割り付ける。
図20に示したタブロー規則による展開手段422は、時相論理式をタブロー規則に基づいて基本部分式に展開し、現状態変数、および次状態変数を基本部分式に割り付ける処理(時相論理式から図22を作成するまでの処理)を行っている。
基本部分式のうち、記号Xの付いている次時点部分式は3つあり、夫々、次の遷移関係が成立する。
Figure 0004528728
図23は、(式11)が真となる現状態変数と次状態変数との組合せを列挙したものである。なお、(式11)からわかるように、現状態変数のうち、v、yは、遷移関係には影響しないので図23では、v、yの欄を省略している。図23がタブローの遷移関係を示す図である。
タブローの初期状態は、次の(式12)で示される。
Figure 0004528728
図24は、タブローの初期状態の集合を示す図であり、(式12)が真となる状態変数の組合せを列挙したものである。
なお補足しておくと、(式12)や図24を見て分かるように、どの初期状態においてもtg は1(真)である。また、(式11)や図23をみると分かるように、tgが1(真)の現状態から遷移する先の次状態では必ずtg’ が1(真)になる。つまり常にtg は1となるので、その意味ではtgは冗長である。
一般に、時相論理でプロパティを表現したときに、G やAG で始まるプロパティ(これはPSLでalwaysというキーワードを使う場合にあたる)では、このような冗長な状態変数が現れる。このようなプロパティはよく利用されるので、はじめからそのような変数は常に1であるとみなし、省略することにすれば、図23のようなデータを記憶するときのデータの大きさを減らすのに役立つ。しかし、ここでは一般的な例を示すために、そのような特別な処置を施さず、tg が0の場合も図23に記載している。
タブローの遷移関係(図23)と初期状態の集合(図24)とを状態遷移図として表したものが図25である。但し、図が煩雑になるのを避けるため、tg が0(偽)である状態は省略してある。
図25において、丸で示したノードが状態を表し、ノードからノードへ向かう矢印が遷移関係を表している。ノードの中の数字列が状態変数の値を表しており、左から順にtg, tx0, tx1, v, y の順で5桁のブール値(0または1の値)を示している。二重丸で示されたノードは、初期状態遷移の集合に含まれる状態(すなわち初期状態になりうる状態)を表している。
図23及び図24に示した遷移関係を示す真理値表および初期状態、或いは図25に示した状態遷移図は、いずれもクリプキ構造を示すタブローである。
次に、このタブローを順序機械の形式に変換する。クリプキ構造と順序機械の違いは、表面的には状態遷移図に遷移ラベルがあるかどうかの違いとして現れる。つまり、順序機械の場合は遷移に入出力の値が影響することを遷移ラベルによって表現するが、クリプキ構造の場合は入出力という概念が存在せず、遷移ラベルもない。そのため、クリプキ構造を順序機械に変換するには、直感的にいえば、クリプキ構造の状態遷移図を描き、状態遷移の矢印に入出力の値に対応する遷移ラベルを付加すればよい。
通常良く用いられる遷移ラベルの付け方は、「入力/出力」という遷移ラベルを状態遷移の矢印に付する方法である。本例では、「v/y」の現状態をラベルとして付す方法である。
この方法を図25に適用する。結果は図26のようになる。vは外生信号であり、yは制御出力であるから、状態遷移には入力/出力の順でv/yという形式のラベルがついている。前述のように、図25の状態は5桁の数字で表現されており、左から順にtg, tx0, tx1, v, y の値に対応しているから、状態の符号の末尾2桁が、そのままその状態から発する遷移ラベルに対応している。
ところが、図26を制御仕様モデルとして、本発明を実施しても、所望の結果は得られない。すなわち、第1の実施形態で正しい結果が得られたのと同じ方法を図26に適用しても、与えられた制御仕様(図21)を満足する制御系が得られない。この原因は以下の通りである。
図26を観察すると、10010 という状態から可能な遷移にはすべて1/0 というラベルがついている。10011という状態からの遷移には、すべて1/1 というラベルがついている。このように、ある状態から出て行く遷移は、その状態に応じて入出力が特定の値に決まっている。これは、クリプキ構造から順序機械への変換にあたって、上記の変換方法(遷移ラベルを付す方法)では、そうなるように変換方法を決めたのであるから当然のことである。
しかし、本発明において制御系の動作に対する制御仕様モデルの関係は、言語包含関係ではなく、非特許文献1を基礎とした模倣関係によって規定している。そのため、制御仕様モデルを作成するときに、状態と状態遷移をどのように定義するかによって、得られる制御装置の動作に違いが現れる。上記の方法でクリプキ構造を変換した状態機械では、その状態と状態遷移の決め方が制御仕様モデルとして適切ではないのである。その結果、可制御模倣関係の計算に影響が出てくる。
可制御模倣関係は、(式1)のHmax に相当する。また、制御仕様モデルはこの式でMに相当する。この式には外生信号vについての全称演算が含まれている。上記の方法でクリプキ構造から制御仕様モデルを作成すると、ある状態から遷移するときの外生信号vの値は、その状態に応じて特定の値に決まってしまう。そのため、制御仕様モデルの遷移関係を表す(式3) に対して∀vという全称演算を施すと、必ず偽になる。この性質は、(式1)の計算に影響を及ぼす。上記方法で制御仕様モデルを作成すると、全称演算の適用時に本来の意図とは異なる作用をするので、予期しない結果になるのである。
これは、別の視点からいえば、図26の順序機械が非決定性であることが原因ということもできる。したがって、図26を決定性の順序機械に変換してから可制御模倣関係を計算すれば、この問題を回避できる。しかし、一般に非決定性の順序機械を決定性に変換するには大きな計算時間と記憶容量を必要とする。また、非決定性モデルから決定性モデルへの変換は、決定性モデルの状態を符号化するために新たな状態変数が必要となるので、BDD での実装に向いていない。そもそも本発明で制御系の動作と制御仕様モデルとの関係を規定するのに模倣関係を採用するのは、言語包含関係を用いた方法では計算時間とメモリ消費量が多いことが理由のひとつであった。決定性モデルへの変換を行うと本発明の長所を損なうので、それは避けるのが適切である。
このように、クリプキ構造から順序機械への変換にあたり、ある状態からの状態遷移に付加する遷移ラベルを、その状態に含まれる基本命題変数(入力v、出力y)の値に等しくなるように順序機械をつくると、予期しない結果が得られることが分かった。
本実施形態では、この問題を解決したタブロー構築方法を採用する。以下にこの方法を説明する。説明に先立ち、この方法を図25に適用した結果を図27に示す。
図27は、クリプキ構造から順序機械への変換にあたって、遷移ラベルを「遷移元」ではなく「遷移先」の状態に含まれる基本命題変数(入力v、出力y)の値に等しくなるように付したものである。また、“init” という状態が新たに追加されており、これが初期状態になっている。
このように、現状態から次状態へ遷移するときに、入出力の値によって次状態が違うタブロー(この例では順序機械)を、遷移先選択型タブローと呼ぶことにする。区別するために、従来のタブローは従来型タブロー(クリプキ構造)と呼ぶことにする。
図26では、遷移ラベルは(遷移先ではなく)遷移元の状態に含まれる基本命題変数の値に等しくなるように付けられていた。図27と図26とを比較すると、ラベルのつく位置が、状態を表すノードをはさんで反対側へ移動している。これらが受理する入出力の系列(シーケンス)を考えると、両者は同じ系列を受理することは容易に分かる。言語包含関係の意味では両者は等価である(つまり両者の受理言語が等しい)。しかし、図26は、入出力の値が現状態によって決まり、次状態が入出力の値の影響を受けないので、遷移先選択型タブローではない。
遷移先選択型タブローが前述した全称演算による問題を起こさない理由を説明する。図27の“10010”という状態を見てみると、そこからは2種類の遷移が可能であり、状態“10000”への遷移には“0/0”という遷移ラベルが、また状態“11010”への遷移には“1/0”という遷移ラベルがついている。つまり、外生信号vが“1”の場合と“0”の場合の両方に対して状態“10010”からの遷移が定義されていることになる。このため、従来型タブロー構築の方法によって得られた順序機械とは異なり、(式3)に対して∀vという全称演算を施しても、常に偽になるという現象は起きない。この性質により、可制御模倣関係の計算にあたって、予期しない結果になるのを避けることができる。
ところで、図27には、冗長性がある。すなわち、この状態機械は縮約することが可能であり、その結果は図28のようになる。図28において、状態の符号は左から順にtg、 tx0、tx1の値に対応する。
このように縮約できる理由は、遷移先選択型タブローを導出するときの原型となった従来型タブローの定義から説明できる。従来型タブローの遷移関係は次時点命題に依存するが、現状態変数でも原子命題(入出力)にあたる変数(v、y)は遷移関係に影響しない。この具体例でも、(式11)を見ると、現状態の次時点命題変数であるtg, tx0, tx1 は遷移関係に影響するが、入出力であるv, y は影響しないことが分かる。
このことを図27で説明すると、“10010”という状態からは、“1/0”という遷移によって次状態は“11010”となり、“0/0”という遷移によって次状態は“10000”となる。しかし、よく見れば、“10000”、“10001”、“10010”、“10011”という4個の状態は、いずれも同じ入出力に対して同じ次状態へ遷移している。つまり、遷移関係を考えるとき、次時点命題変数である前半3ビットを見るだけで十分であり、原子命題変数である後半2ビット(v、y)は無視できる。すると、遷移先選択型タブローの場合、状態変数として必要なのは次時点命題記号だけであり、原子命題にあたる状態変数の値は記憶する必要がないことが分かる。図27でいえば、“10010”という状態からは、“1/0” という遷移によって次状態は“11010”となるが、次時点命題変数に相当する前半3ビットの“110”だけ記憶しておけば、さらにそれ以降の状態遷移には何の支障も生じない。後半2ビットの基本命題変数“10”は、“1/0”という遷移に対応しているが、それは以降の状態遷移に影響しない。言い換えると、入出力の値は状態遷移の瞬間に次状態の選択に影響を与えるが、しかし次状態が決まってしまえば、その入出力の値を記憶しておく必要はないのである。
以上の考察に基づき、図28の状態遷移図で、原子命題を状態変数から省く形で状態を縮約することにより(例えば、“10000”、“10001”、“10010”、“10011”という4個の状態は、“100”という1個の状態にまとめることができる)、図28が得られる。
なお、この具体例の場合、図28の状態遷移図から、さらに“init”を削除して、図29のように書き直すことが可能である。このような書き換えは、元の制御仕様が「いかなる時点でも〜が成立すること」という形式をしていれば、直ちに可能である。なぜなら、制御仕様の意味から考えて、図28において、初期状態“init”から遷移した先の状態を起点とみなしても、引き続いて「いかなる時点でも〜が成立すること」という同じ条件が成り立つからである。そこで、それらを改めて初期状態と考えて状態遷移図を書き直せば、図29のようになる。「いかなる時点でも〜が成立すること」という条件は、図21の3行目にある“always”というキーワード、あるいは(式7)における“G”という演算子の意味から導かれるものであるから、これらを目印にすれば、上記のような書き直しが可能な制御仕様であるか否か容易に識別できる。
以上の説明は状態遷移図によって行ったが、図29の遷移関係を表の形式で表現したものが図30である。ただし、図29は(その元になった図25が、tg が0の場合を省略しているため)tgが0の場合が省略されているが、図30ではtg が0 の場合も含んでいる。
なお、図31は、初期状態を示す表であり、tgは1、それ以外のtx0、およびtx1は、1又は0のいずれでもよいことを示している。
図23および図24(或いは図25)に示したクリプキ構造から、上述した図30および図31に(或いは図29)に示した遷移先選択型タブローを作成する処理は、図20における遷移先選択型タブロー作成手段424によって行われる。
ところで、図30と図23を比較してみると、元のタブローにおいて次状態の基本命題変数v’、y’であった欄が遷移先選択型タブローにおいてv、yの欄に入れ替わっているだけで、表の内容は同一であることが分かる。
即ち、ここまで説明してきた遷移先選択型タブローは、従来のタブロー構築とほぼ同じステップによって作成することが可能である。ただし原子命題の扱いを変更することによって、従来型タブローとは異なる性質のタブローが得られ、それによって本発明の目的を達成することができる。
この着眼点に基づくと、本実施例における遷移先選択型タブローの構築方法として、従来技術によるタブロー構築方法の一部を修正した構築方法を用いることができる。その方法を従来技術との比較によって説明する。
まず、状態変数を求める方法を比較する。図32は、従来型タブロー構築方法における状態変数の求め方を示すフローチャートである。
まず、ステップ501で、時相論理の式fを入力する。次にステップ502で、時相論理式fをタブロー規則に基づいて展開し、展開式gを得る。ステップ503では、展開式gに含まれる基本部分式を列挙する。最後にステップ504で、基本部分式に命題記号を割り当てる。このようにして得られた基本部分式と命題記号(現状態変数と次状態変数)との関係が、図22に示されるものである。
他方、本実施形態では、図32の従来型タブロー構築方法における状態変数の求め方を、図33に示すフローチャートに修正する。
従来のステップ501(図32)に対応するものが、本実施形態ではステップ516 とステップ517 になっている。
ステップ516 で入力した時相論理の式eに、時相演算子のXをステップ517 で追加する。これは、init という状態を新たに追加する処理に相当する。ただし、単純にinit という状態を追加する方法に比較して、この方法にはGで始まる時相論理の式の場合に状態数が増えないという長所がある。
次に、遷移関係について比較してみる。ただし、従来技術のタブローはクリプキ構造であるのに対し、本実施例の遷移先選択型タブローは順序機械である。それにともなって、本実施形態では原子命題が遷移ラベルに用いられる。タブローの状態変数になるのは次時点部分式に対応する命題記号だけである。このように、方法だけでなく、出力するデータの性質が異なっていることに留意する必要がある。その上で、遷移関係を求める方法の違いを説明する。
図34は、従来技術による遷移関係Rを求めるフローチャートである。
まずステップ505で変数Rをtrue(真)に初期化する。遷移関係は最終的にこのRに記憶される。次に、ステップ503(図32)で列挙された基本部分式のうち、次時点部分式を順に取り出して処理を行う。すべての次時点部分式を処理し終えたかどうか判定するのがステップ506である。まだ次時点部分式が残っている場合は、ステップ507でその1個を取りあげる。なお、ステップ507 で「Xh とする」というのは、次時点部分式の先頭のX を省いた残りの部分をh とする、という意味である。
次のステップ508 ではh にタブロー規則を適用して展開する。その結果に含まれる基本部分式を、ステップ509 で次状態変数に置き換える。その結果をj とする。また、現在処理中の次時点部分式(Xh)に対応する現状態変数を見つけるのがステップ510 である。その現状態変数をt とする。なお、Xh という次状態部分式から導かれる関係は
Figure 0004528728
この結果を用いて、遷移関係の中間結果を保持している変数Rを更新するのがステップ511 である。未処理の次時点部分式が残っている間、ステップ506から上記処理を繰り返す。すべての次時点部分式が処理済になれば、ステップ512 Rを出力して終了する。このRが従来技術に係るタブローの遷移関係を表している。
図35は、本実施形態に係るタブロー(遷移先選択型タブロー)の遷移関係を求めるフローチャートである。
従来技術のステップ509 に相当するのが、本実施形態の場合はステップ518 になっている。相違点は、従来技術で次状態変数への置き換えの対象となっていたのが原子命題を含む基本部分式のすべてであったのに対し、本実施形態の場合は次時点部分式だけを置き換える点である。この違いは、(入出力信号に相当する)原子命題を、状態変数ではなく遷移ラベルとして扱うために現れた違いである。
なお、初期状態の求め方については、本実施例でも従来技術と同じである。
以上が遷移先選択型タブロー作成手段416 で行われる遷移先選択型タブローの作成方法の説明である。ここで得られた遷移先選択型タブローは制御仕様モデル記憶手段406 に記憶される。これ以降の部分(即ち、図20において、制御仕様(時相論理)入力手段415と制御仕様モデル作成手段416以外の部分) の作用は第1の実施形態と同じであるため、説明を省略する。
ただし、確認のために、途中で得られる中間結果を図示しておく。
図10に示した制御対象モデルM1と、図30および図31に示した第2の実施形態に係る制御仕様モデルMとを単純に合成すると図36の遷移表および図37の初期状態の集合を示す表がモデル合成手段421の出力として得られる。
一方、可制御模倣関係Hmaxは図38であり、可制御模倣関係計算手段407で計算されたものである。図36の遷移表および図37の初期状態の集合を示す表から、可制御模倣関係Hmax(図38)に含まれるものを取り出したものが許容動作モデルMcとなる。許容動作モデルMcの遷移関係は図39、初期状態の集合は図40となる。また、制御ルールは図41のようになる。
第2の実施形態の具体例においても、外生信号v や制御出力y、および制御入力u がそれぞれ1ビットの信号となっていたが、これらが複数ビットであっても、同様に本発明を適用することができるのは、第1の実施形態と同様である。1ビットの例を採用したのは、そうしないと説明に使う図面が大きくなりすぎて記載できなくなるためである。
また、本実施形態ではLTL を基盤とする制御仕様を用いたが、ACTL でも同様に本発明を適用することができる。非特許文献3には、LTL におけるタブロー構築とならんでACTL のタブロー構築方法が説明されており、両者はおおむね似通っている。これを参考に、LTL のXという演算に相当するのがACTL ではAXであることと、それに伴って遷移関係の定義を変更することに注意すれば、ACTL について遷移先選択型タブローを作成する方法は明らかである。
また、許容動作モデルの状態数は、制御対象モデルの状態数と制御仕様モデルの状態数の積の値以下になることを指摘しておく。状態変数の数でいえば、許容動作モデルの状態変数の数は、制御対象モデルの状態変数の数と、制御仕様モデルの状態変数の数の和と等しいか、それより小さくなる。許容動作モデルの状態変数の数というのは、制御装置をデジタル回路として実装した場合のフリップフロップ数と同じものと考えることができる。つまり、制御対象の状態数と制御仕様の次時点命題の数が分かった時点で、制御装置の規模を見積もることができる。
特に、あらかじめ制御装置の状態数の上限が分かるということは有用であり、制御模倣関係などの計算を行う前に、その計算が計算機などにより実施できる規模であるかどうか予測するのに役立つ。
このように、時相論理を基盤とする制御仕様から、結果として得られるデジタル装置の規模をあらかじめ見積もれるということも、本実施形態の特徴のひとつである。本実施形態では、アービタやスケジューラが必要になる場合にその接続方法を示していないが、それらを使用する場合でも、それらの方式を指定した時点で追加回路に含まれるフリップフロップ数はほぼ特定できるから、事前に規模を見積もることができることには違いはない。
第2の実施形態に係るデジタル回路の自動設計装置、自動設計方法、および自動設計プログラムによれば、制御系の仕様(制御仕様)のモデルを、順序機械ではなく時相論理による仕様として与えられた場合であってもデジタル回路の自動設計が可能となる。このため、制御仕様を時相論理で表現することによる利点、例えば、正確性や簡便性等、を享受することができる。
なお、本発明は上記の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
本発明に係るデジタル回路の自動設計方法及び自動設計プログラムの一実施形態における処理の流れを示すフローチャート。 本発明に係るデジタル回路の自動設計装置の第1の実施形態における構成例を示す図。 本発明に係るデジタル回路の自動設計方法、自動設計プログラム、及び自動設計装置を説明するための具体例で取り扱う制御系全体の構成を示す図。 具体例における信号名称の宣言のみをVerilog 言語で記述した制御装置のモデルを示す図。 具体例における制御系の制御仕様モデルをVerilog 言語で記述した図。 具体例における制御系の制御仕様モデルを順序機械のモデル(遷移関係及び初期状態)で表現した図。 具体例における制御系の制御仕様モデルを状態遷移図で表現した図。 具体例における制御系の制御仕様モデルの動作をシミュレーションによって求めたタイミングチャート。 具体例における制御対象モデルをVerilog 言語で記述した図。 具体例における制御対象モデルを遷移関係と初期状態で表現した図。 具体例における制御対象モデルを状態遷移図で表現した図。 制御系のモデルおよび制御仕様モデルを非特許文献1から引用した図。 具体例における可制御模倣関係を示す図。 具体例における許容動作モデルを示す図。 具体例における制御装置の制御ルールを示す図。 具体例における制御装置モデルを遷移関係と初期状態で表現した図。 具体例における制御装置モデルをVerilog 言語で記述した第1の図。 具体例における制御装置モデルをVerilog 言語で記述した第2の図。 具体例における制御装置モデルと制御対象モデルとを組み合わせ、シミュレーションによって求めたタイミングチャート。 本発明に係るデジタル回路の自動設計装置の第2の実施形態における構成例を示す図。 第2の実施形態に係る制御仕様モデルを時相論理式対応の言語で記述した図。 タブロー規則によって展開した基本部分式と状態変数との割り付けを示す図。 第2の実施形態に係る制御仕様モデルの具体例を遷移関係で示す図。 第2の実施形態に係る制御仕様モデルの具体例の初期状態を示す図。 第2の実施形態に係る制御仕様モデルをクリプキ構造(状態遷移図)で表現した図。 制御仕様モデルの具体例を、従来型タブロー(クリプキ構造)で表現した図。 制御仕様モデルの具体例を、本実施形態に係る遷移先選択型タブローで表現した第1の図。 制御仕様モデルの具体例を、本実施形態に係る遷移先選択型タブローで表現した第2の図。 制御仕様モデルの具体例を、本実施形態に係る遷移先選択型タブローで表現した第3の図。 図29の遷移関係を真理値表の形式で表現した図。 図29の遷移関係の初期状態を表形式で表現した図。 従来型タブロー構築方法における状態変数の求め方を示すフローチャート。 本実施形態に係る遷移先選択型タブローにおける状態変数の求め方を示すフローチャート。 従来型タブロー構築方法における遷移関係Rを求めるフローチャート。 本実施形態に係る遷移先選択型タブローにおける遷移関係Rを求めるフローチャート。 制御仕様モデルと制御対象モデルとを合成して得られる制御装置合成モデルの遷移関係を示す図。 制御仕様モデルと制御対象モデルとを合成して得られる制御装置合成モデルの初期状態を示す図。 第2の実施形態に係る具体例の可制御模倣関係を示す図。 第2の実施形態に係る具体例の許容動作モデルの遷移関係を示す図。 第2の実施形態に係る具体例の許容動作モデルの初期状態を示す図。 第2の実施形態に係る具体例の制御ルールを示す図。
符号の説明
401 制御対象入力手段
402 制御対象モデル作成手段
403 制御対象モデル記憶手段
404 制御仕様入力手段
405 制御仕様モデル作成手段
406 制御仕様モデル記憶手段
407 可制御模倣関係計算手段
408 可制御模倣関係記憶手段
409 許容動作モデル作成手段
410 許容動作モデル記憶手段
411 制御ルール決定手段
412 制御装置モデル作成手段
413 設計データ出力手段
420 制御可能判定手段
421 モデル合成手段
422 展開手段
424 遷移先選択型タブロー作成手段

Claims (13)

  1. 制御対象回路と制御装置回路とから構成される制御系回路において、前記制御対象回路のモデルと前記制御系回路の仕様モデルとが与えられた場合に、前記制御装置回路のモデルを自動設計するデジタル回路の自動設計装置であって、
    前記制御対象回路のモデルが所定の設計記述言語で記述された第1の制御対象モデルを入力する制御対象入力手段と、
    前記第1の制御対象モデルから、有限状態機械のモデルで表現された第2の制御対象モデルを作成する制御対象モデル作成手段と、
    作成された前記第2の制御対象モデルを記憶する制御対象モデル記憶手段と、
    前記制御系回路の仕様モデルが所定の設計記述言語で記述された第1の制御仕様モデルを少なくとも入力する制御仕様入力手段と、
    少なくとも前記第1の制御仕様モデルから、有限状態機械のモデルで表現された第2の制御仕様モデルを作成する制御仕様モデル作成手段と、
    前記第2の制御仕様モデルを記憶する制御仕様モデル記憶手段と、
    前記制御対象モデル記憶手段に記憶された第2の制御対象モデルと、前記制御仕様モデル記憶手段に記憶された第2の制御仕様モデルとの論理積をとることによって、前記制御装置回路の合成モデルである制御装置合成モデルを作成するモデル合成手段と、
    前記第2の制御対象モデルと前記第2の制御仕様モデルとから、前記第2の制御仕様モデルの変数の総ての状態と、この総ての状態に対して前記第2の制御対象モデルの変数がとりうる状態との関係を示す可制御模倣関係を求める可制御模倣関係計算手段と、
    前記可制御模倣関係を記憶する可制御模倣関係記憶手段と、
    前記制御装置合成モデルが、前記制御系回路の仕様を満足する制御が可能なモデルであるか否かを、前記可制御模倣関係に基づいて判定する制御可能性判定手段と、
    前記制御装置合成モデルと前記可制御模倣関係とから、前記制御装置合成モデルの規模を縮小したモデルである許容動作モデルを作成する許容動作モデル作成手段と、
    作成された前記許容動作モデルを記憶する許容動作モデル記憶手段と、
    前記許容動作モデルを用いて、その規模を更に縮小可能な制御ルールを決定する制御ルール決定手段と、
    前記許容動作モデルと前記制御ルールとの論理積をとることによって、有限状態機械のモデルで表現された制御装置モデルを作成する制御装置モデル作成手段と、
    を備えたことを特徴とするデジタル回路の自動設計装置。
  2. 前記制御装置モデルを、デジタル回路を作成するための論理合成ツールに入力可能な設計記述言語へ変換する変換手段をさらに備えたことを特徴とする請求項1に記載のデジタル回路の自動設計装置。
  3. 前記制御仕様入力手段は、時相論理式で記述された前記制御系回路の仕様モデルをさらに入力し、
    前記制御仕様モデル作成手段は、入力した前記時相論理式で記述された制御系回路の仕様モデルから有限状態機械のモデルであるタブローに変換して前記第2の制御仕様モデルを作成するタブロー作成手段を備えたことを特徴とする請求項1に記載のデジタル回路の自動設計装置。
  4. 前記タブロー作成手段は、
    前記時相論理式をタブロー規則に基づいて基本部分式に展開し、
    展開した前記基本部分式に対応付けられる状態変数の状態遷移において、遷移先の状態変数に含まれる入力変数及び出力変数の値を前記状態遷移のラベル値とする遷移先選択型タブローを作成することによって順序機械のモデルを生成する手段である、
    ことを特徴とする請求項3に記載のデジタル回路の自動設計装置。
  5. 制御対象回路と制御装置回路とから構成される制御系回路において、前記制御対象回路のモデルと前記制御系回路の仕様モデルとが与えられた場合に、前記制御装置回路のモデルを自動設計するデジタル回路の自動設計装置であって、
    前記制御対象回路のモデルが所定の設計記述言語で記述された第1の制御対象モデルを入力する制御対象入力手段と、
    前記第1の制御対象モデルから、有限状態機械のモデルで表現された第2の制御対象モデルを作成する制御対象モデル作成手段と、
    作成された前記第2の制御対象モデルを記憶する制御対象モデル記憶手段と、
    前記制御系回路の仕様モデルが所定の設計記述言語で記述された第1の制御仕様モデルを少なくとも入力する制御仕様入力手段と、
    少なくとも前記第1の制御仕様モデルから、有限状態機械のモデルで表現された第2の制御仕様モデルを作成する制御仕様モデル作成手段と、
    前記第2の制御仕様モデルを記憶する制御仕様モデル記憶手段と、
    前記制御対象モデル記憶手段に記憶された第2の制御対象モデルと、前記制御仕様モデル記憶手段に記憶された第2の制御仕様モデルとの論理積をとることによって、前記制御装置回路の合成モデルである制御装置合成モデルを作成するモデル合成手段と、
    前記第2の制御対象モデルと前記第2の制御仕様モデルとから、前記第2の制御仕様モデルの変数の総ての状態と、この総ての状態に対して前記第2の制御対象モデルの変数がとりうる状態との関係を示す可制御模倣関係を求める可制御模倣関係計算手段と、
    前記可制御模倣関係を記憶する可制御模倣関係記憶手段と、
    前記制御装置合成モデルが、前記制御系回路の仕様を満足する制御が可能なモデルであるか否かを、前記可制御模倣関係に基づいて判定する制御可能性判定手段と、
    前記制御装置合成モデルと前記可制御模倣関係とから、前記制御装置合成モデルの規模を縮小したモデルである許容動作モデルを作成する許容動作モデル作成手段と、
    作成された前記許容動作モデルを記憶する許容動作モデル記憶手段と、
    前記許容動作モデルを制御装置モデルとし、前記制御装置モデルを、デジタル回路を作成するための論理合成ツールに入力可能な設計記述言語へ変換する変換手段と、
    を備えたことを特徴とするデジタル回路の自動設計装置。
  6. 制御対象回路と制御装置回路とから構成される制御系回路において、前記制御対象回路のモデルと前記制御系回路の仕様モデルとが与えられた場合に、前記制御装置回路のモデルを自動設計するようにコンピュータを用いて構築したデジタル回路の自動設計装置において、
    コンピュータが備える制御対象入力手段が、前記制御対象回路のモデルが所定の設計記述言語で記述された第1の制御対象モデルを入力する制御対象入力ステップと、
    コンピュータが備える制御対象モデル作成手段が、前記第1の制御対象モデルから、有限状態機械のモデルで表現された第2の制御対象モデルを作成する制御対象モデル作成ステップと、
    コンピュータが備える制御仕様入力手段が、前記制御系回路の仕様モデルが所定の設計記述言語で記述された第1の制御仕様モデルを少なくとも入力する制御仕様入力ステップと、
    コンピュータが備える制御仕様モデル作成手段が、少なくとも前記第1の制御仕様モデルから、有限状態機械のモデルで表現された第2の制御仕様モデルを作成する制御仕様モデル作成ステップと、
    コンピュータが備えるモデル合成手段が、前記第2の制御対象モデルと前記第2の制御仕様モデルとの論理積をとることによって、前記制御装置回路の合成モデルである制御装置合成モデルを作成するモデル合成ステップと、
    コンピュータが備える可制御模倣関係計算手段が、前記第2の制御対象モデルと前記第2の制御仕様モデルとから、前記第2の制御仕様モデルの変数の総ての状態と、この総ての状態に対して前記第2の制御対象モデルの変数がとりうる状態との関係を示す可制御模倣関係を求める可制御模倣関係計算ステップと、
    コンピュータが備える制御可能性判定手段が、前記制御装置合成モデルが前記制御系回路の仕様を満足する制御が可能なモデルであるか否かを、前記可制御模倣関係に基づいて判定する制御可能性判定ステップと、
    コンピュータが備える許容動作モデル作成手段が、前記制御装置合成モデルと前記可制御模倣関係とから、前記制御装置合成モデルの規模を縮小したモデルである許容動作モデルを作成する許容動作モデル作成ステップと、
    コンピュータが備える制御ルール決定手段が、前記許容動作モデルを用いて、その規模を更に縮小可能な制御ルールを決定する制御ルール決定ステップと、
    コンピュータが備える制御装置モデル作成手段が、前記許容動作モデルと前記制御ルールとの論理積をとることによって、有限状態機械のモデルで表現された制御装置モデルを作成する制御装置モデル作成ステップと、
    実行することを特徴とするデジタル回路の自動設計方法。
  7. コンピュータが備える変換手段が、前記制御装置モデルを、デジタル回路を作成するための論理合成ツールに入力可能な設計記述言語へ変換する変換ステップをさらに実行することを特徴とする請求項6に記載のデジタル回路の自動設計方法。
  8. 前記制御仕様入力ステップは、時相論理式で記述された前記制御系回路の仕様モデルをさらに入力し、
    前記制御仕様モデル作成ステップは、コンピュータが備えるタブロー作成手段が、入力した前記時相論理式で記述された制御系回路の仕様モデルから有限状態機械のモデルであるタブローに変換して前記第2の制御仕様モデルを作成するタブロー作成ステップを実行することを特徴とする請求項6に記載のデジタル回路の自動設計方法。
  9. 前記タブロー作成ステップは、
    前記時相論理式をタブロー規則に基づいて基本部分式に展開し、
    展開した前記基本部分式に対応付けられる状態変数の状態遷移において、遷移先の状態変数に含まれる入力変数及び出力変数の値を前記状態遷移のラベル値とする遷移先選択型タブローを作成することによって順序機械のモデルを生成するステップである、
    ことを特徴とする請求項8に記載のデジタル回路の自動設計方法。
  10. 制御対象回路と制御装置回路とから構成される制御系回路において、前記制御対象回路のモデルと前記制御系回路の仕様モデルとが与えられた場合に、前記制御装置回路のモデルを自動設計するデジタル回路の自動設計プログラムであって、
    前記制御対象回路のモデルが所定の設計記述言語で記述された第1の制御対象モデルを入力する制御対象入力ステップと、
    前記第1の制御対象モデルから、有限状態機械のモデルで表現された第2の制御対象モデルを作成する制御対象モデル作成ステップと、
    前記制御系回路の仕様モデルが所定の設計記述言語で記述された第1の制御仕様モデルを少なくとも入力する制御仕様入力ステップと、
    少なくとも前記第1の制御仕様モデルから、有限状態機械のモデルで表現された第2の制御仕様モデルを作成する制御仕様モデル作成ステップと、
    前記第2の制御対象モデルと前記第2の制御仕様モデルとの論理積をとることによって、前記制御装置回路の合成モデルである制御装置合成モデルを作成するモデル合成ステップと、
    前記第2の制御対象モデルと前記第2の制御仕様モデルとから、前記第2の制御仕様モデルの変数の総ての状態と、この総ての状態に対して前記第2の制御対象モデルの変数がとりうる状態との関係を示す可制御模倣関係を求める可制御模倣関係計算ステップと、
    前記制御装置合成モデルが、前記制御系回路の仕様を満足する制御が可能なモデルであるか否かを、前記可制御模倣関係に基づいて判定する制御可能性判定ステップと、
    前記制御装置合成モデルと前記可制御模倣関係とから、前記制御装置合成モデルの規模を縮小したモデルである許容動作モデルを作成する許容動作モデル作成ステップと、
    前記許容動作モデルを用いて、その規模を更に縮小可能な制御ルールを決定する制御ルール決定ステップと、
    前記許容動作モデルと前記制御ルールとの論理積をとることによって、有限状態機械のモデルで表現された制御装置モデルを作成する制御装置モデル作成ステップと、
    をコンピュータに実行させることを特徴とするデジタル回路の自動設計プログラム。
  11. 前記制御装置モデルを、デジタル回路を作成するための論理合成ツールに入力可能な設計記述言語へ変換する変換ステップをさらに備えたことを特徴とする請求項10に記載のデジタル回路の自動設計プログラム。
  12. 前記制御仕様入力ステップは、時相論理式で記述された前記制御系回路の仕様モデルをさらに入力し、
    前記制御仕様モデル作成ステップは、入力した前記時相論理式で記述された制御系回路の仕様モデルから有限状態機械のモデルであるタブローに変換して前記第2の制御仕様モデルを作成するタブロー作成ステップを備えたことを特徴とする請求項10に記載のデジタル回路の自動設計プログラム。
  13. 前記タブロー作成ステップは、
    前記時相論理式をタブロー規則に基づいて基本部分式に展開し、
    展開した前記基本部分式に対応付けられる状態変数の状態遷移において、遷移先の状態変数に含まれる入力変数及び出力変数の値を前記状態遷移のラベル値とする遷移先選択型タブローを作成することによって順序機械のモデルを生成するステップである、
    ことを特徴とする請求項12に記載のデジタル回路の自動設計プログラム。
JP2006023212A 2006-01-31 2006-01-31 デジタル回路の自動設計装置、自動設計方法、および自動設計プログラム Expired - Fee Related JP4528728B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2006023212A JP4528728B2 (ja) 2006-01-31 2006-01-31 デジタル回路の自動設計装置、自動設計方法、および自動設計プログラム
US11/389,084 US7363097B2 (en) 2006-01-31 2006-03-27 Automatic design apparatus, automatic design method, and automatic design program of digital circuit
TW095110757A TWI307030B (en) 2006-01-31 2006-03-28 Automatic design apparatus, automatic design method, and automatic design program of digital circuit
CNA2006100715743A CN101013447A (zh) 2006-01-31 2006-03-30 数字电路的自动设计设备、自动设计方法和自动设计程序
KR1020060037602A KR100764588B1 (ko) 2006-01-31 2006-04-26 디지털 회로의 자동 설계 장치, 자동 설계 방법, 및 자동설계 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006023212A JP4528728B2 (ja) 2006-01-31 2006-01-31 デジタル回路の自動設計装置、自動設計方法、および自動設計プログラム

Publications (2)

Publication Number Publication Date
JP2007206855A JP2007206855A (ja) 2007-08-16
JP4528728B2 true JP4528728B2 (ja) 2010-08-18

Family

ID=38323118

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006023212A Expired - Fee Related JP4528728B2 (ja) 2006-01-31 2006-01-31 デジタル回路の自動設計装置、自動設計方法、および自動設計プログラム

Country Status (5)

Country Link
US (1) US7363097B2 (ja)
JP (1) JP4528728B2 (ja)
KR (1) KR100764588B1 (ja)
CN (1) CN101013447A (ja)
TW (1) TWI307030B (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2074507A4 (en) * 2006-09-20 2011-01-26 Nat Ict Australia Ltd PRODUCTION OF A TRANSITION SYSTEM USED WITH A MODEL CHECK
US8219376B2 (en) * 2008-02-27 2012-07-10 International Business Machines Corporation Verification using directives having local variables
JP2010009384A (ja) * 2008-06-27 2010-01-14 Fujitsu Ltd 検証支援プログラム、検証支援装置、および検証支援方法
JP5195149B2 (ja) * 2008-08-11 2013-05-08 富士通株式会社 真偽判定方法
US8601013B2 (en) 2010-06-10 2013-12-03 Micron Technology, Inc. Analyzing data using a hierarchical structure
CN102567555A (zh) * 2010-12-27 2012-07-11 北京国睿中数科技股份有限公司 时序电路的拓扑结构分析方法和状态机模型提取方法
CN102567122A (zh) * 2010-12-27 2012-07-11 北京国睿中数科技股份有限公司 多仿真验证平台下的处理器参考模型的通信接口方法
JP5857072B2 (ja) 2011-01-25 2016-02-10 マイクロン テクノロジー, インク. オートマトンの入次数および/または出次数を制御するための量化子の展開
KR101640295B1 (ko) 2011-01-25 2016-07-15 마이크론 테크놀로지, 인크. 정규 표현을 컴파일하기 위한 방법 및 장치
US8843911B2 (en) 2011-01-25 2014-09-23 Micron Technology, Inc. Utilizing special purpose elements to implement a FSM
US8418119B2 (en) * 2011-05-10 2013-04-09 International Business Machines Corporation Logical circuit netlist reduction and model simplification using simulation results containing symbolic values
JP2013200787A (ja) * 2012-03-26 2013-10-03 Fukuoka Pref Gov Sangyo Kagaku Gijutsu Shinko Zaidan モデル検査装置、モデル検査処理方法及びプログラム
US9086688B2 (en) * 2013-07-09 2015-07-21 Fisher-Rosemount Systems, Inc. State machine function block with user-definable actions on a transition between states
CN104572028B (zh) * 2014-12-26 2017-06-20 中国科学院自动化研究所 一种状态机等价变换的方法和装置
US10540468B1 (en) 2018-07-11 2020-01-21 International Business Machines Corporation Verification complexity reduction via range-preserving input-to-constant conversion
CN112380802B (zh) * 2019-07-29 2024-04-19 星宸科技股份有限公司 集成电路的半自动化设计的方法以及系统
CN113268890B (zh) * 2021-06-25 2023-06-23 华北电力大学(保定) 一种行为树模型到Kripke结构的映射方法
US11789520B1 (en) 2023-04-24 2023-10-17 RTSync Corp. System and method for activity-based design process framework for discrete event systems chip
US11789517B1 (en) 2023-04-24 2023-10-17 RTSync Corp. System and method for clock-frequency-based design process framework for discrete event systems chip

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10301963A (ja) * 1997-02-28 1998-11-13 Fujitsu Ltd 論理装置の検証方法、論理装置の検証装置、及び記録媒体

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623418A (en) * 1990-04-06 1997-04-22 Lsi Logic Corporation System and method for creating and validating structural description of electronic system
US5696771A (en) * 1996-05-17 1997-12-09 Synopsys, Inc. Method and apparatus for performing partial unscan and near full scan within design for test applications
US6324679B1 (en) * 1997-06-03 2001-11-27 Nec Usa, Inc. Register transfer level power optimization with emphasis on glitch analysis and reduction
US5966534A (en) 1997-06-27 1999-10-12 Cooke; Laurence H. Method for compiling high level programming languages into an integrated processor with reconfigurable logic
KR19990009715A (ko) * 1997-07-11 1999-02-05 디죠오지오 제이 시스템 설계 스펙 정의 장치 및 방법
US6487704B1 (en) * 1997-08-07 2002-11-26 Verisity Design, Inc. System and method for identifying finite state machines and verifying circuit designs
US6182268B1 (en) * 1998-01-05 2001-01-30 Synplicity, Inc. Methods and apparatuses for automatic extraction of finite state machines
US6378123B1 (en) * 1998-02-20 2002-04-23 Lsi Logic Corporation Method of handling macro components in circuit design synthesis
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
JP2000286342A (ja) 1999-03-30 2000-10-13 Hitachi Ltd コンピュータ読み取り可能な記憶媒体、半導体集積回路の設計方法、ならびに半導体装置の設計方法
US6816825B1 (en) * 1999-06-18 2004-11-09 Nec Corporation Simulation vector generation from HDL descriptions for observability-enhanced statement coverage
JP2001067384A (ja) * 1999-08-26 2001-03-16 Matsushita Electric Ind Co Ltd 集積回路装置の設計用データベース及び集積回路装置の設計方法
US7065481B2 (en) * 1999-11-30 2006-06-20 Synplicity, Inc. Method and system for debugging an electronic system using instrumentation circuitry and a logic analyzer
US6581191B1 (en) * 1999-11-30 2003-06-17 Synplicity, Inc. Hardware debugging in a hardware description language
US6823497B2 (en) * 1999-11-30 2004-11-23 Synplicity, Inc. Method and user interface for debugging an electronic system
US6904397B1 (en) * 2000-02-22 2005-06-07 Xilinx, Inc. System and method for assisting in the development and integration of reusable circuit designs
US7062418B2 (en) * 2000-06-27 2006-06-13 Fluidigm Corporation Computer aided design method and system for developing a microfluidic system
US7222315B2 (en) * 2000-11-28 2007-05-22 Synplicity, Inc. Hardware-based HDL code coverage and design analysis
KR100441464B1 (ko) * 2001-12-28 2004-07-23 한국전자통신연구원 아이피 모듈 간에 인터페이스를 생성하는 방법
JP2004054755A (ja) * 2002-07-23 2004-02-19 Nec Electronics Corp システムレベル設計方法及びシステムレベル設計装置
JP2007526539A (ja) * 2003-06-18 2007-09-13 アンブリック, インコーポレイテッド 集積回路開発システム
US7246331B2 (en) * 2004-10-15 2007-07-17 International Business Machines Corporation Method for optimizing integrated circuit device design and service
KR20060114884A (ko) * 2005-05-03 2006-11-08 서강대학교산학협력단 인터페이스 회로 자동생성기 및 이에 의해 구현된인터페이스 회로
US7483823B2 (en) * 2005-06-21 2009-01-27 Nvidia Corporation Building integrated circuits using logical units
US7788646B2 (en) * 2005-10-14 2010-08-31 International Business Machines Corporation Method for optimizing integrated circuit device design and service
JP4657912B2 (ja) * 2005-12-26 2011-03-23 富士通セミコンダクター株式会社 設計装置および設計方法とそのプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10301963A (ja) * 1997-02-28 1998-11-13 Fujitsu Ltd 論理装置の検証方法、論理装置の検証装置、及び記録媒体
JP3600420B2 (ja) * 1997-02-28 2004-12-15 富士通株式会社 論理検証装置

Also Published As

Publication number Publication date
US7363097B2 (en) 2008-04-22
TW200729008A (en) 2007-08-01
JP2007206855A (ja) 2007-08-16
KR100764588B1 (ko) 2007-10-09
KR20070078960A (ko) 2007-08-03
US20070179639A1 (en) 2007-08-02
TWI307030B (en) 2009-03-01
CN101013447A (zh) 2007-08-08

Similar Documents

Publication Publication Date Title
JP4528728B2 (ja) デジタル回路の自動設計装置、自動設計方法、および自動設計プログラム
US8719742B2 (en) Conversion of circuit description to an abstract model of the circuit
Fisher et al. Industrial cyber-physical systems–iCyPhy
WO2014011576A1 (en) Synthesis of simulation models from systems engineering data
US9727668B2 (en) Delta retiming in logic simulation
JP4393450B2 (ja) 論理回路モデル変換装置及び論理回路モデル変換プログラム
Abdel-Hamid et al. A tool converting finite state machine to VHDL
KR20110086587A (ko) 순차적 등가성 검사를 위한 재구성된 설계를 준비하기 위한 방법
US20030046649A1 (en) Model-based logic design
US8443314B1 (en) Abstraction level-preserving conversion of flip-flop-inferred hardware description language (HDL) to instantiated HDL
SUDACEVSCHI et al. Digital systems synthesis based on direct translation of petri net model
WO2012007955A1 (en) Method of implementing iec 61131-3 control specification through verilog hdl description for modeling, simulation and synthesis of control logic configuration for integrated circuit implementation
Aspar et al. Algorithm to convert programmable logic controller ladder logic diagram models to petri net models
JP2010257003A (ja) 論理等価性検証システム、論理等価性検証方法、半導体集積回路の製造方法、制御プログラムおよび可読記憶媒体
Mador-Haim et al. Input elimination and abstraction in model checking
JP3660097B2 (ja) 論理回路の形式検証装置及び検証方法
US20130007677A1 (en) Method of implementing IEC 61131-3 control specification through verilog HDL description for modeling, simulation and synthesis of control logic configuration for integrated circuit implementation
JPH03116277A (ja) シミュレーション・システム及びシミュレーション方法
Boutekkouk Soft Intellectual Properties (IPs) integration for System On Chip (SOC) design
Abrar et al. SystemC-Based Loose Models for Simulation Speed-Up by Abstraction of RTL IP Cores
Azzabi et al. Timing verification of cyclic systems based on temporal constraint analysis
Stergiou et al. Disjunctive transition relation decomposition for efficient reachability analysis
JP2012160145A (ja) 論理シミュレーション方法および論理シミュレーション装置
Wan Petri net-based modeling and VHDL implementation of digital systems
Pal et al. Hardware accelerated constrained random test generation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100201

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100511

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100607

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees