JPH09325975A - Verification method for logical device - Google Patents

Verification method for logical device

Info

Publication number
JPH09325975A
JPH09325975A JP8141345A JP14134596A JPH09325975A JP H09325975 A JPH09325975 A JP H09325975A JP 8141345 A JP8141345 A JP 8141345A JP 14134596 A JP14134596 A JP 14134596A JP H09325975 A JPH09325975 A JP H09325975A
Authority
JP
Japan
Prior art keywords
storage area
external
state
recursive function
specification data
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
JP8141345A
Other languages
Japanese (ja)
Inventor
Kenzo Goto
健造 五藤
Toru Shonai
亨 庄内
Yuji Onishi
雄二 大西
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP8141345A priority Critical patent/JPH09325975A/en
Publication of JPH09325975A publication Critical patent/JPH09325975A/en
Pending legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

PROBLEM TO BE SOLVED: To enable the proof of general external specification and design specification which can not be verified by the conventional extension recursive induction method of a form verification system. SOLUTION: Structure description design specification data 112 of a logical device are converted to register transfer description design data 122, the design specification data 122 are converted to operation description design data 124, the line-up of states due to operation descriptions and the reload due to memory axiom are performed, and reloaded data 232 are found. Further, the reloaded data 232 are made abstract, abstract data 234 are found and concerning the fact that the design specification data 234 are equivalent with external specification data 110, the equivalency of functions to appear in the external specification data 110 and the design specification data 234 is proved by using the extension recursive induction method equipped with the processing of 'application of second extension recursive induction method' to be performed while using the exchange of main bodies of functions.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、順序論理装置の検
証方法に関し、特に形式的検証方法を用いた順序論理装
置の検証方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method for verifying a sequential logic device, and more particularly to a method for verifying a sequential logic device using a formal verification method.

【0002】[0002]

【従来の技術】従来、論理装置(以下、論理装置という
ときは、順序論理装置をさすものとする)の検証方法と
しては、三つの方法が知られている。第1はシミュレー
ションを用いる方法、第2は机上チェックによる方法、
第3は形式的証明を用いる方法である。
2. Description of the Related Art Conventionally, three methods have been known as a method for verifying a logic device (hereinafter, a logic device means a sequential logic device). The first is a method that uses simulation, the second is a method that uses a desk check,
The third is a method using formal proof.

【0003】現在、一般に使われているのは、シミュレ
ーションを用いる方法と机上チェックによる方法であ
る。
At present, generally used methods are a method using simulation and a method using desk check.

【0004】シミュレーションを用いる方法では、まず
設計者が、試験すべきケースを列挙し、試験テストデー
タを作成する。そして、論理シミュレータを用いて、そ
の試験テストデータに基づいて、設計した論理装置のシ
ミュレーションを実行する。これにより、設計した論理
装置に設計誤りがないかどうかを調べる。この方法で
は、シミュレーションを行ったケースにおける論理装置
の正しさは保証できる。しかし、すべてのケースについ
てシミュレーションを実行することが不可能なため、設
計した論理装置に論理不良が全くないことを保証するこ
とはできない。
In the method using simulation, first, the designer enumerates the cases to be tested and creates test test data. Then, a logic simulator is used to execute a simulation of the designed logic device based on the test test data. In this way, it is checked whether the designed logic device has a design error. This method can guarantee the correctness of the logic device in the case where the simulation is performed. However, it is not possible to guarantee that the designed logic device has no logic defects since it is not possible to perform simulations in all cases.

【0005】机上チェックによる方法とは、設計者が、
設計した論理装置を、机上で逐一目視で正しく設計され
ているかどうかを検査していく方法である。この方法
は、プログラム開発で用いられているインスペクション
(inspection)とほとんど同じ方法である。この方法
は、シミュレーションを用いる方法と同程度かそれ以上
の論理検証能力をもつ。しかし、すべてのケースをチェ
ックしたかどうかを確認する方法がなく、また個別のチ
ェックの手続きが正しいかどうかは保証されない。
The desk check method means that the designer
This is a method of visually inspecting the designed logic device one by one on the desk to check whether it is correctly designed. This method is almost the same as the inspection used in program development. This method has a logic verification capability equal to or higher than the method using simulation. However, there is no way to verify that all cases have been checked, and there is no guarantee that the individual checking procedures will be correct.

【0006】以上より、シミュレーションを用いる方法
あるいは机上チェックによる方法は、100%完全に論
理装置を検証できる方法とはいえない。
From the above, the method using the simulation or the method using the desk check cannot be said to be a method which can completely verify the logic device.

【0007】第3の方法、すなわち形式的証明を用いる
方法とは、机上チェックでの非形式的チェック手続きを
厳密かつ正確に定義・適用し、自然数論・初等幾何学・
抽象代数学などで定理を形式的に証明するように、論理
の正当性(正しさ)を形式的に証明しようというもので
ある。すべてのケースをチェックしたかどうかの確認お
よび個別のチェック手続きの正しさの保証が可能な方法
であり、論理不良が全くないことを保証することができ
る。
The third method, that is, the method using formal proof, is to define and apply an informal check procedure in desk check exactly and accurately, and to use natural number theory, elementary geometry,
Just as the theorem is formally proved by abstract algebra, it is to formally prove the correctness of logic (correctness). This is a method capable of confirming whether all the cases have been checked and guaranteeing the correctness of the individual check procedure, and can guarantee that there is no logic failure.

【0008】形式的証明を用いる方法では、証明そのも
のを議論・考察の対象とする際、証明を含む体系を形式
化して形式体系を作り、その上で議論・考察を行う。こ
のため、形式的証明による論理検証は、形式的論理検証
とも呼ばれる。
In the method using formal proof, when the proof itself is the subject of discussion and consideration, the system including the proof is formalized to form a formal system, and then discussion and consideration are conducted. Therefore, the logical verification by the formal proof is also called the formal logical verification.

【0009】形式的論理検証では、検証対象となる設計
物をインプリメンテーション,実現,実現仕様などと呼
ぶ。また、検証の際の正しさの拠り所となる物を、スペ
シフィケーション,仕様,外部仕様などと呼ぶ。以下で
は、前者を実現仕様,後者を外部仕様と呼ぶものとす
る。実現仕様とは、設計した論理装置の内部的な構造が
どのようなものかということを表わす。外部仕様とは、
その論理装置の内部構造に立ち入ることなく外部から観
察することのできるスペックである。形式的論理検証で
は、論理装置の実現仕様がその外部仕様を満たしている
かどうかを検証することになる。
In formal logic verification, the design object to be verified is called implementation, realization, realization specification, or the like. Also, the items on which correctness is based upon verification are referred to as specifications, specifications, and external specifications. In the following, the former is referred to as an implementation specification and the latter is referred to as an external specification. The realization specifications represent what the internal structure of the designed logical device looks like. External specifications
It is a spec that can be observed from the outside without entering the internal structure of the logic device. In the formal logic verification, it is verified whether or not the realization specifications of the logic device satisfy the external specifications.

【0010】形式的論理検証に関する従来技術として
は、例えば M.Srivas と M.Bickfordの“フォーマル
ベリフィイケーション オブ ア パイプラインド マ
イクロプロセッサ(Formal Verification of a Pipelin
ed Micro-processor)"アイイーイーイー ソフトウェア
(IEEE Software),1990,pp.52-64.に開示された技術が
ある。この従来技術では、3ステージ構成のパイプライ
ン制御プロセッサを論理検証の対象とし、定理証明プロ
グラムを用いて半自動で形式的論理検証を実行してい
る。
As a conventional technique for formal logic verification, for example, “Formal by M. Srivas and M. Bickford” is used.
Verification of a Pipelined Microprocessor
ed Micro-processor) "IEEE Software, 1990, pp. 52-64. There is a technology disclosed in this prior art. A pipeline control processor with a three-stage configuration is targeted for logic verification. , Formal logic verification is performed semi-automatically using a theorem proof program.

【0011】また、特開平7−65046号や特開平6−21506
3 号には任意ステージ構成のパイプライン制御プロセッ
サの形式的論理検証方法が開示されている。ところが、
特開平7−65046号や特開平6−215063 号公報に開示され
ている形式的論理検証方法は、外部仕様を再帰関数,実
現仕様を動作レベルの記述に変換し、さらに初期状態を
もとに論理装置の取り得る状態を全て列挙したものを再
帰関数系とみなし、拡張再帰帰納法を用い実現仕様が外
部仕様を満足しているか否かを検証する手法である。し
かしながら、ここに示された拡張再帰帰納法では、たと
え実現仕様が外部仕様を満足していても(正しくて
も)、これを誤りと判断してしまうことがある(その具
体例は発明の実施の形態中の(2)で示す。)。したが
って、この方法も実現仕様の正しさを100%完全に検
証できる方法とは言えない。
Further, JP-A-7-65046 and JP-A-6-21506.
No. 3 discloses a formal logic verification method for a pipeline control processor with an arbitrary stage configuration. However,
The formal logic verification methods disclosed in JP-A-7-65046 and JP-A-6-215063 convert external specifications into recursive functions and implementation specifications into behavior level descriptions, and then based on the initial state. This is a method that enumerates all possible states of a logic device as a recursive function system and uses extended recursive induction to verify whether the implementation specifications satisfy the external specifications. However, in the extended recursive induction shown here, even if the implementation specification satisfies the external specification (even if it is correct), it may be judged as an error (the concrete example is the implementation of the invention. (2) in the form of). Therefore, this method cannot be said to be a method capable of completely verifying the correctness of the implementation specifications.

【0012】[0012]

【発明が解決しようとする課題】本発明の課題は、外部
仕様の再帰関数と実現仕様の再帰関数系内の再帰関数の
等価性をより正しく検証できる検証方法を提供すること
である。
SUMMARY OF THE INVENTION An object of the present invention is to provide a verification method capable of more correctly verifying the equivalence of a recursive function of an external specification and a recursive function in a recursive function system of an implementation specification.

【0013】[0013]

【課題を解決するための手段】上記目的を達成するた
め、本発明は、外部から設定・参照可能な構成要素を用
いて記述した順序論理装置の外部仕様を表わす再帰関数
の形式の外部仕様データと、外部から設定・参照可能な
構成要素だけでなく外部から設定・参照不可能な構成要
素をも用いて記述した上記順序論理装置の実現仕様を表
わす再帰関数の形式の実現仕様データとを入力し、上記
実現仕様データで表わされる実現仕様が上記外部仕様デ
ータで表わされる外部仕様を満足しているか否かを、上
記実現仕様データを用いて、上記順序論理装置の動作を
順次模擬していくステップと、上記順序論理装置の動作
の模擬の過程で、上記実現仕様の記述に用いている構成
要素の状態が有効か否かを判別し、有効な状態の構成要
素に着目して上記順序論理装置の到達可能な異なる状態
を再帰関数系の形式で蓄積するステップと、拡張再帰帰
納法を用いて、上記外部仕様を表わす再帰関数と上記蓄
積された再帰関数系とが等価であることを証明するステ
ップとを用いて検証する論理装置の検証方法で、上記証
明ステップで、等価でない再帰関数を用いて、蓄積され
た再帰関数系中の再帰関数を置換してできた新たな再帰
関数と外部仕様を表わす再帰関数とが等価であることを
証明するステップを備えたことを特徴とする。
In order to achieve the above object, the present invention provides an external specification data in the form of a recursive function representing the external specification of a sequential logic unit described by using a component that can be set / referenced from the outside. And realization specification data in the form of a recursive function representing the realization specifications of the sequential logic device described using not only externally settable / referenceable components but also externally settable / unreferenceable components. Then, by using the realization specification data, whether or not the realization specifications represented by the realization specification data satisfy the external specifications represented by the external specification data is sequentially simulated. In the step and the process of simulating the operation of the sequential logic device, it is determined whether or not the state of the constituent element used in the description of the implementation specification is valid, and the constituent element in the valid state is focused on in the above order. The step of accumulating different reachable states of the logical unit in the form of a recursive function system, and the extended recursive induction method are used to confirm that the recursive function representing the external specification and the accumulated recursive function system are equivalent. And a new recursive function obtained by replacing the recursive function in the accumulated recursive function system with a non-equivalent recursive function in the above-mentioned proofing step in the verification method of the logic device to be verified using It is characterized by including a step of proving that a recursive function representing an external specification is equivalent.

【0014】[0014]

【発明の実施の形態】以下、図面を用いて本発明の一実
施例を説明する。説明は、以下の順序で行う。
DETAILED DESCRIPTION OF THE INVENTION An embodiment of the present invention will be described below with reference to the drawings. The description will be given in the following order.

【0015】(1) 実施例の論理検証システムの概要 (2) 拡張再帰帰納法の拡張内容 (2−1)方法1:関数F〈j〉を書換える方法 (2−2)方法2:関数Fと関数F〈j〉を書換える方
法 (2−3)方法3:関数Fを書換える方法 (3) 論理装置の正当性の定義 (4) 例題コンピュータの外部仕様と設計仕様 (4−1)例題コンピュータの外部仕様(F) (4−2)例題コンピュータの設計仕様(G) (5) 構造記述からRT記述への変換 (6) RT記述から動作記述への変換 (7) 証明探索 (7−1)動作記述によるGの状態列挙 (7−2)抽象化 (7−3)拡張再帰帰納法の適用 (8) 変形例 (8−1)変形例1 (8−2)変形例2 (1)では、本実施例での論理検証システムの概要につ
いて説明する。(2)では、論理検証システムの拡張再
帰帰納法における本発明での特徴点について説明する。
(3)では、本実施例での論理検証の最終目的である論
理装置の設計の正当性の定義について説明する。(4)
では、本実施例での入力となる例題コンピュータの外部
仕様と設計仕様について説明する。(5)では、本実施
例の論理検証システムにおける構造記述からRT(レジ
スタトランスファ)記述への変換について説明する。
(6)では、本実施例の論理検証システムにおけるRT
記述から動作記述への変換について説明する。(7)で
は、本実施例の論理検証システムにおける証明探索につ
いて説明する。(8)では、本実施例に対する変形例に
ついて説明する。
(1) Outline of the logic verification system of the embodiment (2) Extended contents of extended recursive induction (2-1) Method 1: method of rewriting function F <j> (2-2) method 2: function Method of rewriting F and function F <j> (2-3) Method 3: Method of rewriting function F (3) Definition of correctness of logic device (4) External specifications and design specifications of example computer (4-1) ) External specifications of example computer (F) (4-2) Design specifications of example computer (G) (5) Conversion from structural description to RT description (6) Conversion from RT description to behavioral description (7) Proof search ( 7-1) State enumeration of G by behavior description (7-2) Abstraction (7-3) Application of extended recursive induction (8) Modified example (8-1) Modified example 1 (8-2) Modified example 2 In (1), an outline of the logic verification system in this embodiment will be described. In (2), the features of the present invention in the extended recursive induction of the logic verification system will be described.
In (3), the definition of the validity of the design of the logic device, which is the final purpose of the logic verification in this embodiment, will be described. (4)
Next, the external specifications and design specifications of the example computer that is an input in this embodiment will be described. In (5), the conversion from the structural description to the RT (register transfer) description in the logic verification system of this embodiment will be described.
In (6), RT in the logic verification system of this embodiment is used.
The conversion from the description to the behavioral description will be described. In (7), proof search in the logic verification system of the present embodiment will be described. In (8), a modification of this embodiment will be described.

【0016】(1) 実施例の論理検証システムの概要 論理検証システムとは、論理装置の設計がその仕様を満
たしているかを検証するシステムである。従来の技術で
も説明したように、簡単にいうと、外部仕様とは、論理
装置の使用者から見える外部的な論理装置の仕様であ
る。また、設計仕様とは、外部仕様に基づいて設計者が
実際に設計・実現した論理装置の仕様であり、その論理
装置を実現している内部的な論理の仕様である。
(1) Outline of the logic verification system of the embodiment The logic verification system is a system for verifying whether or not the design of the logic device satisfies its specifications. As described in the related art, briefly, the external specifications are specifications of the external logic device that can be seen by the user of the logic device. The design specification is a specification of a logic device actually designed and realized by a designer based on an external specification, and is an internal logic specification that realizes the logic device.

【0017】図1は、実施例の論理検証システム(以
下、検証システムと略す)の構成を示す。また、図2は
検証プログラム120の処理手順およびデータの流れを
示すフローである。検証システムの構成と検証プログラ
ムの処理手順はともに、特開平6−215063号や特開平7−
65046 号で開示されているものとほぼ同一である。
FIG. 1 shows the configuration of a logic verification system (hereinafter abbreviated as verification system) of the embodiment. FIG. 2 is a flow showing the processing procedure and data flow of the verification program 120. Both the configuration of the verification system and the processing procedure of the verification program are described in JP-A-6-215063 and JP-A-7-
It is almost the same as that disclosed in 65046.

【0018】図1で、検証システム100は、キーボー
ド102,ディスプレイ104,バス106,2次記憶
用ディスク108,CPU114、およびメモリ116
を備えている。ディスク108中には、外部仕様データ
110および構造記述設計仕様データ112が格納され
る。これらのデータ110,112が、検証システムへ
の入力になる。これらのデータ110,112の詳細は
後述する。
In FIG. 1, the verification system 100 includes a keyboard 102, a display 104, a bus 106, a secondary storage disk 108, a CPU 114, and a memory 116.
It has. External specification data 110 and structure description design specification data 112 are stored in the disk 108. These data 110 and 112 are input to the verification system. Details of these data 110 and 112 will be described later.

【0019】メモリ116には、入力プログラム11
8,検証プログラム120,RT記述設計仕様データ1
22,動作記述設計仕様データ124、および検証結果
126が格納される。
The memory 116 stores the input program 11
8, verification program 120, RT description design specification data 1
22, behavior description design specification data 124, and verification result 126 are stored.

【0020】入力プログラム118は、外部仕様データ
110および構造記述設計仕様データ112をキーボー
ド102およびディスプレイ104を介して入力し、2
次記憶用ディスク108に、110,112として格納
するためのプログラムである。
The input program 118 inputs the external specification data 110 and the structure description design specification data 112 via the keyboard 102 and the display 104, and 2
This is a program for storing 110 and 112 in the next storage disk 108.

【0021】検証プログラム120は、ディスク108
上の二つのデータ110,112を入力として、設計デ
ータ112で表わされる論理装置の設計仕様が、外部仕
様データ110で表わされる仕様を満たしているか否か
を自動検証するプログラムである。その検証結果は、
「検証成功」または「検証失敗」として、検証結果126
に出力される。検証プログラム120は、処理途中で、
RT記述設計仕様データ122と動作記述設計仕様デー
タ124とをメモリ116に中間結果として書き込みな
がら、検証を行う。
The verification program 120 is the disk 108.
The program is a program for automatically verifying whether or not the design specifications of the logic device represented by the design data 112 satisfy the specifications represented by the external specification data 110 by inputting the above two data 110 and 112. The verification result is
Verification result 126 as "Successful verification" or "Verification failure"
Is output to The verification program 120
The verification is performed while writing the RT description design specification data 122 and the behavior description design specification data 124 in the memory 116 as an intermediate result.

【0022】次に、本実施例の特徴であるところの検証
プログラム120の概要を説明する。なお、検証プログ
ラム120については、後の(5)〜(7)で詳述す
る。
Next, an outline of the verification program 120, which is a feature of this embodiment, will be described. The verification program 120 will be described in detail in (5) to (7) below.

【0023】図2は検証プログラム120の処理手順お
よびデータの流れを示すフローである。
FIG. 2 is a flow showing the processing procedure and data flow of the verification program 120.

【0024】検証プログラム120への入力データは、
構造記述言語で表現した設計仕様データ112および外
部仕様データ110である。
The input data to the verification program 120 is
Design specification data 112 and external specification data 110 expressed in a structure description language.

【0025】構造記述設計仕様データとは、設計仕様の
全体を部分構成要素の記述と部分構成要素間の結線記述
で表現したものである。すなわち、ハードウエアの部分
構成要素(レジスタなど)とそれら部分構成要素の間の
関係を記述して、ハードウエアを規定していくものであ
る。後に(4)で説明するが、図13に、構造記述設計
仕様データの例を示す。外部仕様データについても
(4)で説明するが、図9がそれに相当する。
The structural description design specification data represents the entire design specification by the description of the partial constituent elements and the connection description between the partial constituent elements. That is, the hardware is defined by describing the partial components of the hardware (such as registers) and the relationship between these partial components. As will be described later in (4), FIG. 13 shows an example of the structure description design specification data. The external specification data will be described in (4), and FIG. 9 corresponds to it.

【0026】図2を参照して、検証プログラム120の
処理を説明する。まず、構造記述からRT(レジスタト
ランスファ)記述への変換処理202では、構造記述で
表現した設計仕様データ112をRT記述で表現した設
計仕様データ122に変換する。この変換は、設計仕様
を再帰関数の形で表現するために行われる等価変換であ
り、公知の技術で可能である。再帰関数は、反復を表現
する形態の一つである。なお、再帰の代わりにループを
用いた形を用いて、実施例全体を構成してもよい。
The processing of the verification program 120 will be described with reference to FIG. First, in a conversion process 202 from a structure description to an RT (register transfer) description, the design specification data 112 expressed by the structure description is converted into design specification data 122 expressed by the RT description. This conversion is an equivalent conversion performed for expressing the design specification in the form of a recursive function, and can be performed by a known technique. The recursive function is one of the forms for expressing iteration. The whole embodiment may be configured by using a form using a loop instead of recursion.

【0027】RT記述から動作記述への変換処理204
では、RT記述で表現した設計仕様データ122を動作
記述で表現した設計仕様データ124に変換する。
Conversion process 204 from RT description to behavioral description
Then, the design specification data 122 expressed by the RT description is converted into the design specification data 124 expressed by the behavioral description.

【0028】図14にRT記述で表現した設計仕様デー
タ122の例を示す。図15に動作記述で表現した設計
仕様データ124の例を示す。RT記述から動作記述へ
の変換処理204では、後の証明探索に適した動作記述
に等価変換している。この等価変換も、公知の技術で可
能である。
FIG. 14 shows an example of the design specification data 122 expressed by the RT description. FIG. 15 shows an example of the design specification data 124 expressed by the behavioral description. In the conversion process 204 from the RT description to the behavioral description, the behavioral description suitable for the later proof search is equivalently converted. This equivalent conversion can also be performed by a known technique.

【0029】次に、証明探索210では、動作記述で表
現した設計仕様データ124と外部仕様データ110と
の間について(3)で説明する正当性が成り立つことの
証明を行う。また、証明探索210は、動作記述による
状態列挙220,メモリ公理による書換え222,抽象
化224、および拡張再帰帰納法の適用226の各処理
からなる。
Next, in the proof search 210, it is proved that the justification described in (3) holds between the design specification data 124 expressed by the behavioral description and the external specification data 110. The proof search 210 is composed of a state enumeration 220 by a behavioral description, a rewriting 222 by a memory axiom, an abstraction 224, and an application 226 of extended recursive induction.

【0030】動作記述による状態列挙220は、メモリ
公理による書換え222と対になって動作し、動作記述
を使って設計仕様Gデータ124の動作を模擬して、到
達可能状態を列挙する。到達可能状態とその状態間の遷
移は、書換え後Gデータ232の形に変換されて記憶され
る。
The state enumeration 220 based on the behavioral description operates in pair with the rewriting 222 based on the memory axiom, and the behavioral description is used to simulate the operation of the design specification G data 124 to enumerate reachable states. The reachable state and the transition between the states are rewritten and converted into the G data 232 and stored.

【0031】抽象化224は、書換え後Gデータ232
に対して、書換え後データ中の到達可能状態を、それ以
前に出現した状態に置換する。変換された結果は、抽象
化後Gデータ234として記憶される。
The abstraction 224 is the G data 232 after rewriting.
On the other hand, the reachable state in the rewritten data is replaced with the state that appeared before that. The converted result is stored as the abstracted G data 234.

【0032】拡張再帰帰納法の適用226では、拡張再
帰帰納法を用いて、抽象化後Gデータ234と外部仕様
データ110との間について(3)で説明する正当性が
成り立つか否かを検証して、検証結果を検証成功または
検証失敗として検証結果126に出力する。
In the application 226 of the extended recursive induction, the extended recursive induction is used to verify whether or not the justification described in (3) holds between the post-abstraction G data 234 and the external specification data 110. Then, the verification result is output to the verification result 126 as verification success or verification failure.

【0033】なお、RT記述設計仕様データ122、ま
たは動作記述設計仕様データ124をユーザが用意した
ときには、構造記述設計仕様データ112に代わって、
それらが入力となる。このとき、構造記述からRT記述
への変換処理202、またはそれとRT記述から動作記
述への変換処理204とは、不要になる。
When the user prepares the RT description design specification data 122 or the behavior description design specification data 124, instead of the structure description design specification data 112,
These are the inputs. At this time, the conversion process 202 from the structural description to the RT description or the conversion process 204 from the RT description to the behavioral description 204 is unnecessary.

【0034】(2)拡張再帰帰納法の拡張 特開平6−215063 号及び特開平7−65046号公報に開示さ
れた方法にない、本発明固有の方法は、上述の拡張再帰
帰納法の適用226の仕方にある。具体例を用いて発明
の実施の形態を詳述する前に、本発明の拡張再帰帰納法
の特徴について詳述する。
(2) Extension of extended recursive induction method The method unique to the present invention, which is not included in the methods disclosed in Japanese Patent Laid-Open Nos. 6-215063 and 7-65046, is an application of the above-mentioned extended recursive induction method 226. Is in the way. Before describing the embodiments of the present invention in detail using specific examples, the features of the extended recursive induction method of the present invention will be described in detail.

【0035】本形式検証は、外部仕様データ110を再
帰関数、状態列挙220で得られた書換え後Gデータ2
32に抽象化224を施した抽象化後Gデータ234
(関数群)を再帰関数系とみなし、これらに拡張再帰帰
納法を適用し正当性を証明するものであることは上でも
述べたし、特開平6−215063 号及び特開平7−65046号公
報でも開示されている。特開平6−215063 号及び特開平
7−65046号公報での拡張再帰帰納法は、以下のように説
明されている。
In the formal verification, the external specification data 110 is a recursive function, and the rewritten G data 2 obtained by the state enumeration 220 is used.
32. Abstracted G data 234 obtained by applying abstraction 224 to 32
It has been described above that the (function group) is regarded as a recursive function system and the extended recursive induction is applied to these to prove the correctness, and it is disclosed in JP-A-6-215063 and JP-A-7-65046. But it is also disclosed. JP-A-6-215063 and JP-A-6-215063
The extended recursive induction in 7-65046 is described as follows.

【0036】拡張再帰帰納法は、再帰関数系と再帰関数
との等価性を示す方法である。下記の数1と数2は例を
示す。
The extended recursive induction method is a method showing the equivalence between a recursive function system and a recursive function. The following equations 1 and 2 show examples.

【0037】[0037]

【数1】 F(x)= if P(x) then A(x) elseif Q(x) then F(B(x)) ..... elseif R(x) then F(C(x)). …(数1)[Equation 1] F (x) = if P (x) then A (x) elseif Q (x) then F (B (x)) ..... elseif R (x) then F (C (x)) ... (Equation 1)

【0038】[0038]

【数2】 F〈1〉(x)= if P(x) then A(x) elseif Q(x)&Q〈11〉(x) then F〈n〈q11〉〉(B(x)) elseif Q(x)&Q〈12〉(x) then F〈n〈q12〉〉(B(x)) ..... elesif Q(x)&Q〈1a〉(x) then F〈n〈q1a〉〉(B(x)) ..... elseif R(x)&R〈11〉(x) then F〈n〈r11〉〉(C(x)) elseif R(x)&R〈12〉(x) then F〈n〈r12〉〉(C(x)) ..... elesif R(x)&R〈1b〉(x) then F〈n〈r1b〉〉(C(x)), ..... F〈m〉(x)= if P(x) then A(x) elseif Q(x)&Q〈m1〉(x) then F〈n〈qm1〉〉(B(x)) elseif Q(x)&Q〈m2〉(x) then F〈n〈qm2〉〉(B(x)) ..... elesif Q(x)&Q〈ma〉(x) then F〈n〈qma〉〉(B(x)) ..... elseif R(x)&R〈m1〉(x) then F〈n〈rm1〉〉(C(x)) elseif R(x)&R〈m2〉(x) then F〈n〈rm2〉〉(C(x)) ..... elesif R(x)&R〈mb〉(x) then F〈n〈rmb〉〉(C(x)). …(数2) 数1は、再帰関数Fの定義である。再帰関数Fが、既存
関数P,Q,R,...,A,B,C,...を用いて定義
されている。数2は、再帰関数系の定義であり、再帰関
数F〈1〉,...,F〈m〉を定義している。数2で
は数1で用いた既存関数のほかに、Q〈11〉,...
Q〈1a〉,R〈11〉,...,R〈1a〉,Q〈m
1〉,...,Q〈ma〉,R〈m1〉,...,R〈m
b〉を用いて定義している。ここで、〈i〉は添字を表
わす。F〈n〈q11〉〉などの〈n〈q11〉〉は
〈1〉〜〈m〉の任意の一つを指す。
[Equation 2] F 〈1〉 (x) = if P (x) then A (x) elseif Q (x) & Q 〈11〉 (x) then F 〈n 〈q11 〉〉 (B (x)) elseif Q (x) & Q 〈12〉 (x) then F 〈n 〈q12 〉〉 (B (x)) ..... elesif Q (x) & Q 〈1a〉 (x) then F 〈n 〈q1a 〉〉 ( B (x)) ..... elseif R (x) & R 〈11〉 (x) then F 〈n 〈r11 〉〉 (C (x)) elseif R (x) & R 〈12〉 (x) then F <N <r12 >> (C (x)) ..... elesif R (x) & R <1b> (x) then F <n <r1b >> (C (x)), ..... F 〈M〉 (x) = if P (x) then A (x) elseif Q (x) & Q 〈m1〉 (x) then F 〈n 〈qm1 〉〉 (B (x)) elseif Q (x) & Q 〈 m2〉 (x) then F 〈n 〈qm2 〉〉 (B (x)) ..... elesif Q (x) & Q 〈ma〉 (x) then F 〈n 〈qma 〉〉 (B (x)) ..... elseif R (x) & R 〈m1〉 (x) then F 〈n 〈rm1 〉〉 (C (x)) elseif R (x) & R 〈m2〉 (x) then F 〈n 〈rm2> 〉 (C (x)) ..... elesif R (x) & R 〈mb〉 (x) then F 〈n 〈rmb 〉〉 (C (x)) ... (Equation 2) Equation 1 is a recursive function This is the definition of F. The recursive function F is an existing function P, Q, R, ..., A, B, C ,. . . Is defined using. Equation 2 is the definition of the recursive function system, and the recursive functions F <1> ,. . . , F <m> are defined. In Expression 2, in addition to the existing function used in Expression 1, Q <11> ,. . .
Q <1a>, R <11> ,. . . , R <1a>, Q <m
1> ,. . . , Q <ma>, R <m1> ,. . . , R <m
b> is used for the definition. Here, <i> represents a subscript. <N <q11 >> such as F <n <q11 >> indicates any one of <1> to <m>.

【0039】再帰関数系のすべての再帰関数F〈i〉を
再帰関数Fと比較すると、F〈i〉のif条件(Q(x)
&Q〈i1〉(x)など)の中にはFのif条件(Q(x)
等)が必ず含まれており、かつ、このf〈i〉のif条
件に対応するthen節(F〈n〈qi1〉〉(B
(x))など)の再帰関数の内側の既知関数(B(x)な
ど)は、必ずこのFのif条件に対応するthen節
(F(B(x))等)の再帰関数の内側の既知関数(B
(x)等)に等しい。
Comparing all the recursive functions F <i> of the recursive function system with the recursive function F, if condition (Q (x) of F <i>
& Q <i1> (x) etc., the F if condition (Q (x)
Etc. are always included, and the then clause (F <n <qi1>) (B
(x (x)) etc.) known functions (B (x) etc.) inside the recursive function must be inside the recursive function of the then clause (F (B (x)) etc.) corresponding to the if condition of this F. Known function (B
(x) etc.).

【0040】再帰関数系のすべての再帰関数F〈i〉と
再帰関数Fにこのような関係があるとき、再帰関数系の
任意の再帰関数F〈i〉と再帰関数Fは等しい、と主張
するのが特開平6−215063 号及び特開平7−65046号公報
で開示されている拡張再帰帰納法である。
When all the recursive functions F <i> of the recursive function system and the recursive function F have such a relationship, it is claimed that any recursive function F <i> of the recursive function system and the recursive function F are equal. The extended recursive induction method disclosed in JP-A-6-215063 and JP-A-7-65046.

【0041】しかし、等価でありながら上記条件を満た
さない再帰関数系と再帰関数が存在する。このような再
帰関数系と再帰関数は、上記の拡張再帰帰納法で等価性
を証明することができない。
However, there are recursive function systems and recursive functions that are equivalent but do not satisfy the above conditions. Equivalence between such a recursive function system and a recursive function cannot be proved by the above-mentioned extended recursive induction.

【0042】数3と数4に簡単な例を示す。ここに、d
(x)=b(c′(x))の関係があるものとする。また、
関数c′は関数cの逆関数、すなわち、c(x)=yの時
c′(y)=xとする関数である。このとき、f(x)と
f1(x)は等価である。両者とも、p(x)のときは値は
a(x)であり、not(p(x))&p(b(x))のときはa
(b(x))であり、not(p(x))&not(p(b
(x)))&p(b(b(x)))のときはa(b(b(x)))
であり、常に値は等しいからである。
Equations 3 and 4 show simple examples. Where d
It is assumed that there is a relationship of (x) = b (c '(x)). Also,
The function c ′ is an inverse function of the function c, that is, the function c ′ (y) = x when c (x) = y. At this time, f (x) and f1 (x) are equivalent. In both cases, the value is a (x) when p (x) and a when not (p (x)) & p (b (x)).
(b (x)), not (p (x)) & not (p (b
(x))) & p (b (b (x))) then a (b (b (x)))
Because the values are always equal.

【0043】従来の拡張再帰帰納法によれば、例えばn
ot(p(x))&q(x)のとき、数3のthen節f
(b(x))の内側の既知関数と数4の関数f1(x)のt
hen節f2(c(x))の内側の既知関数とは等しくな
くてはならない。しかし、この例ではそれぞれb(x)と
c(x)と等しくないので、数3と数4は等価でないと判
定されてしまうが、これは誤りである。
According to the conventional extended recursive induction method, for example, n
When ot (p (x)) & q (x), then then clause f of Equation 3
The known function inside (b (x)) and t of the function f1 (x) of Equation 4
It must be equal to the known function inside the hen clause f2 (c (x)). However, in this example, since b (x) and c (x) are not equal to each other, it is determined that Equation 3 and Equation 4 are not equivalent, which is an error.

【0044】[0044]

【数3】 f(x)= if p(x) then a(x) else f(b(x)). …(数3)[Equation 3] f (x) = if p (x) then a (x) else f (b (x)) .... (Equation 3)

【0045】[0045]

【数4】 f1(x)= if p(x) then a(x) elseif q(x) then f2(c(x)) else f1(b(x)), f2(x)= if p(d(x)) then a(d(x)) else f1(b(d(x))). …(数4) 本発明で用いる第2拡張再帰帰納法とは、形式検証シス
テムの拡張再帰帰納法の適用226で、then節に出
現する関数の等価性を判定する際に、内側の既知関数の
等価性のみならずthen節の関数全体の等価性までを
調べることにより、一般的な再帰関数系と再帰関数の等
価性を証明できるように拡張したものである。
[Formula 4] f1 (x) = if p (x) then a (x) elseif q (x) then f2 (c (x)) else f1 (b (x)), f2 (x) = if p (d (x)) then a (d (x)) else f1 (b (d (x))) .. (Equation 4) The second extended recursive induction used in the present invention is the extended recursive induction of the formal verification system. In determining the equivalence of the function appearing in the then clause in the application 226 of, the general recursive function system is examined by checking not only the equivalence of the inner known function but also the equivalence of the entire function of the then clause. Is an extension to prove the equivalence of and recursive functions.

【0046】上記の数1と数2で、再帰関数系で定義さ
れる再帰関数F1を再帰関数Fと比較すると、F1のi
f条件(Q(x)&Q〈11〉(x)など)の中にはFのi
f条件(Q(x)など)が必ず含まれており、かつ、この
F1のif条件に対応するthen節(F〈n〈q1
1〉〉(B(x))など)は、Fのif条件に対応するt
hen節(F(B(x))など)と必ず等価であるとす
る。
Comparing the recursive function F1 defined by the recursive function system with the recursive function F in the above equations 1 and 2, i of F1 is
Among the f conditions (Q (x) & Q <11> (x) etc.), i of F
The f condition (such as Q (x)) is always included, and the then clause (F <n <q1
1 >> (B (x)) etc. corresponds to the if condition of F.
It is assumed to be equivalent to a hen clause (F (B (x)), etc.).

【0047】第2拡張再帰帰納法は、再帰関数系で定義
される再帰関数F1と再帰関数Fにこのような関係があ
るとき、再帰関数系の再帰関数F1と再帰関数Fは等し
いと主張する。
The second extended recursive induction method asserts that the recursive function F1 and the recursive function F of the recursive function system are equal when the recursive function F1 and the recursive function F defined in the recursive function system have such a relationship. .

【0048】第2拡張再帰帰納法で用いる「then節
の等価性の判定」の方法を、以下で説明する。ここでは
数3と数4を用いて説明する。
The method of "determining the equality of the then clause" used in the second extended recursive induction will be described below. Here, a description will be given using Equations 3 and 4.

【0049】(2−1)方法1:関数F〈j〉を書換え
る方法 数3のfと数4のf1を比較すると、従来の拡張再帰帰
納法のように、対応するthen節の内側の既知関数の
等価性をみることにより、f1の第2then節(f2
(c(x)))以外のthen節は等価であることがわか
る。以下問題として残るのは、f(b(x))とf2(c
(x))とが等価かどうかである。b′をbの逆関数とす
ると、f2(c(x))=f2(c(b′(b(x))))
と変形できるので、結局、f(x)と、f2(c(b′
(x)))すなわち関数f2(x)に出現する全てのxを関
数c(b′(x))で置換して得られる新たな関数f2′
(x)とが等価かどうかをみればよい。これをみるには、
f2′(x)のif条件の中にはf(x)のif条件が必
ず含まれており、かつ、対応するthen節は必ず等価
であることがf2′(x)とf(x)の全てのif−the
n節について言えるかをみればよい。
(2-1) Method 1: Method of rewriting function F <j> Comparing f of Formula 3 with f1 of Formula 4, like the conventional extended recursive induction method, the inside of the corresponding then clause is By checking the equivalence of the known functions, the second then clause (f2
It can be seen that the then clauses other than (c (x))) are equivalent. The remaining problems as below are f (b (x)) and f2 (c
(x)) is equivalent to. If b ′ is the inverse function of b, then f2 (c (x)) = f2 (c (b ′ (b (x))))
Therefore, f (x) and f2 (c (b '
(x))), that is, a new function f2 'obtained by replacing all x appearing in the function f2 (x) with the function c (b' (x)).
Check if (x) is equivalent. To see this,
The if condition of f2 '(x) always includes the if condition of f (x), and the corresponding then clauses are always equivalent. All if-the
See if you can say about n clauses.

【0050】数4のf2(x)からf2′(x)=f2(c
(b′(x)))を求めると、
From f2 (x) in Equation 4, f2 '(x) = f2 (c
When (b '(x))) is calculated,

【0051】[0051]

【数5】 f2′(x)= if p(d(c(b′(x)))) then a(d(c(b′(x)))) else f1(b(d(c(b′(x))))) . …(数5) である。これが、関数名を除いて数3と全く同じ形とな
るには、d(c(b′(x)))=x、すなわちd(x)=b
(c′(x))であればよい。そのとき、f(x)とf2
(c(b′(x)))は等価であり、したがって、数3のt
hen節f(b(x))と数4のthen節f2(c
(x))は等価である。
F 2 ′ (x) = if p (d (c (b ′ (x)))) then a (d (c (b ′ (x)))) else f1 (b (d (c (b ′ (X))))) ... (Equation 5) Except for the function name, this has exactly the same form as Equation 3, d (c (b '(x))) = x, that is, d (x) = b
It may be (c '(x)). Then f (x) and f2
(C (b '(x))) is equivalent, and therefore t in Eq.
hen clause f (b (x)) and then clause f2 (c
(x)) are equivalent.

【0052】(2−2)方法2:関数Fと関数F〈j〉
を書換える方法 ここでは、f(b(x))とf2(c(x))の等価性をみ
る方法を考える。関数f2(x)に出現する全てのxを関
数c(x)で置換して得られる新たな関数f2″(x)、関
数f(x)に出現する全てのxを関数b(x)で置換して得
られる新たな関数をf′(x)とする。このとき、f2″
(x)のif条件の中にはf′(x)のif条件が必ず含ま
れており、かつ、対応するthen節は必ず等価である
こととf2″(x)とf′(x)の全てのif−then節
について言えるとき、f1(x)のthen節と対応する
f(x)のthenは等価である、とする方法である。
(2-2) Method 2: Function F and function F <j>
Here, a method of checking the equivalence of f (b (x)) and f2 (c (x)) will be considered. A new function f2 ″ (x) obtained by replacing all x appearing in the function f2 (x) with the function c (x), and all x appearing in the function f (x) by the function b (x) The new function obtained by replacement is f ′ (x). At this time, f2 ″
The if condition of (x) always includes the if condition of f ′ (x), and the corresponding then clauses are always equivalent, and the condition of f2 ″ (x) and f ′ (x) When all the if-then clauses can be said, the then clause of f1 (x) and the corresponding then of f (x) are equivalent.

【0053】数3のf(x)と数4のf2(x)を書換える
と、
Rewriting f (x) in Equation 3 and f2 (x) in Equation 4 gives

【0054】[0054]

【数6】 f′(x) = f(b(x)) = if p(b(x)) then a(b(x)) else f(b(b(x))). …(数6)[Equation 6] f ′ (x) = f (b (x)) = if p (b (x)) then a (b (x)) else f (b (b (x))) .... (Equation 6 )

【0055】[0055]

【数7】 f2″(x) = f2(c(x)) = if p(d(c(x))) then a(d(c))) else f1(b(d(c(x)))). …(数7) である。数6と数7が、関数名を除いて全く同じ形とな
るには、d(c(x))=b(x)、すなわちd(x)=b
(c′(x))であればよい。このとき、f′(x)とf
2″(x)は等価であり、したがって、数3のthen節
f(b(x))と数4のthen節f2(c(x))は等価
である。
[Formula 7] f2 ″ (x) = f2 (c (x)) = if p (d (c (x))) then a (d (c))) else f1 (b (d (c (x))) )) .... (Equation 7) In order that Equation 6 and Equation 7 have exactly the same form except for the function name, d (c (x)) = b (x), that is, d (x) = b
It may be (c '(x)). At this time, f '(x) and f
2 ″ (x) is equivalent, and therefore the then clause f (b (x)) of Equation 3 and the then clause f2 (c (x)) of Equation 4 are equivalent.

【0056】(2−3)方法3:関数Fを書換える方法 ここでは、f(b(x))とf2(c(x))の等価性をみ
る代わりに、f(b(c′(x)))とf2(x)の等価性
をみる方法を考える。関数f(x)に出現する全てのxを
関数b(c′(x))で置換して得られる新たな関数を
f″(x)とするとき、f2(x)のif条件の中にはf″
(x)のif条件が必ず含まれており、かつ、対応するt
hen節は必ず等価であることがf2(x)とf″(x)の
全てのif−then節について言えるとき、f1(x)
のthen節と対応するf(x)のthenは等価であ
る、とする方法である。
(2-3) Method 3: Method of rewriting the function F Here, instead of looking at the equivalence of f (b (x)) and f2 (c (x)), f (b (c '( x))) and the method of checking the equivalence of f2 (x). When a new function obtained by replacing all the x appearing in the function f (x) with the function b (c ′ (x)) is f ″ (x), it is included in the if condition of f2 (x). Is f ″
The if condition of (x) is always included, and the corresponding t
If all hen-clauses of f2 (x) and f ″ (x) can be said to be equivalent to hen clauses, then f1 (x)
Then, the then clause of f (x) corresponding to the then clause of is equivalent.

【0057】数3のf(x)を書換えると、By rewriting f (x) in the equation 3,

【0058】[0058]

【数8】 f″(x) = if p(b(c′(x))) then a(b(c′(x))) else f(b(b(c′(x)))). …(数8) である。これが、数4のf2(x)と関数名を除いて全く
同じ形となるためには、d(x)=b(c′(x))であれ
ばよい。このとき、f(b(x))とf2(c(x))は等価
であり、したがって、数3のthen節f(b(x))と
数4のthen節f2(c(x))は等価である。
(8) f ″ (x) = if p (b (c ′ (x))) then a (b (c ′ (x))) else f (b (b (c ′ (x)))). (Equation 8) In order for this to be exactly the same as f2 (x) in Equation 4 except for the function name, d (x) = b (c '(x)). At this time, f (b (x)) and f2 (c (x)) are equivalent, and therefore the then clause f (b (x)) of equation 3 and the then clause f2 (c (x)) of equation 4 Are equivalent.

【0059】尚、(2−1)の方法におけるf(x)とf
2′(x)の等価性判定、(2−2)の方法におけるf′
(x)とf2″(x)の等価性判定、(2−3)の方法にお
けるf″(x)とf2(x)の等価性判定のいずれでも、t
hen節の内側の既知関数に再度不一致が見られる場合
には、対応するthen節の関数に対して同様の処理を
施す。
Note that f (x) and f (x) in the method (2-1) are
Equivalence determination of 2 '(x), f'in the method of (2-2)
In both the equivalence determination of (x) and f2 ″ (x) and the equivalence determination of f ″ (x) and f2 (x) in the method (2-3), t
When the known function inside the hen clause is again inconsistent, the same processing is applied to the corresponding function of the then clause.

【0060】以下、(3)〜(7)では、上記(2−3)
の方法を用いた実施例を示す。
Hereinafter, in (3) to (7), the above (2-3)
An example using the method will be described.

【0061】(3) 論理装置の設計の正当性の定義 ここでは、本実施例における「外部仕様」,「実現仕
様」、および「論理装置の設計の正当性」の定義につい
て詳細に説明する。
(3) Definition of Validity of Design of Logic Device Here, the definitions of “external specification”, “implementation specification”, and “validity of design of logic device” in this embodiment will be described in detail.

【0062】上述したように、簡単にいえば、外部仕様
とは使用者から見えるその論理装置の仕様であり、実現
仕様とは外部仕様に基づいて設計者が実際に設計・実現
した論理装置の仕様である。厳密には、その詳細は、次
の定義の通りである。
As described above, in simple terms, the external specifications are the specifications of the logic device that can be seen by the user, and the realization specifications are the specifications of the logic device actually designed and realized by the designer based on the external specifications. It is a specification. Strictly speaking, the details are as defined below.

【0063】[定義1:外部記憶領域と外部記憶領域変
数]論理装置を構成する記憶領域のうち、論理装置の使
用者がアクセス可能な(すなわち、論理装置の外部から
設定・参照が可能な)メモリ,レジスタ、およびフラグ
などの記憶領域を、「外部記憶領域」と呼ぶ。データを
保持するメモリ、およびレジスタなどの記憶領域だけで
なく、フラグなどの記憶素子も、使用者がアクセス可能
ならば、外部記憶領域である。外部記憶領域のメモリ,
レジスタ、およびフラグなどの値を表わす変数S
1,..,SNを、「外部記憶領域変数」と呼ぶ。な
お、外部記憶領域を「プログラマブルレジスタ」と呼ぶ
こともある。
[Definition 1: External storage area and external storage area variable] Of the storage areas constituting the logical device, the user of the logical device can access (that is, can be set / referenced from outside the logical device). A storage area such as a memory, a register, and a flag is called an “external storage area”. Not only storage areas such as memories and registers for holding data, but also storage elements such as flags are external storage areas if the user can access them. External storage memory,
Variables S that represent values such as registers and flags
1 ,. . , SN are called “external storage area variables”. The external storage area may be called a "programmable register".

【0064】[定義2:外部記憶領域状態集合:S]外
部記憶領域の全体が作る状態の集合を、「外部記憶領域
状態集合」と呼ぶ。外部記憶領域変数S1,...,S
Nがとる1組の値により外部記憶領域の一つの状態が規
定される。外部記憶領域状態集合とは、このような状態
の集合である。
[Definition 2: External storage area state set: S] The set of states created by the entire external storage area is called the "external storage area state set". External storage area variables S1 ,. . . , S
One state of the external storage area is defined by a set of values taken by N. The external storage area state set is a set of such states.

【0065】[定義3:内部記憶領域と内部記憶領域変
数]論理装置を構成する記憶領域のうち、外部記憶領域
以外の記憶領域、すなわち論理装置の使用者がアクセス
不可能な(すなわち、論理装置の外部から設定・参照が
不可能な)メモリ,レジスタ、およびフラグなどの記憶
領域を、「内部記憶領域」と呼ぶ。データを保持するメ
モリ、およびレジスタなどの記憶領域だけでなく、制御
信号を保持するフラグなどの記憶素子も、使用者がアク
セス不可能ならば、内部記憶領域である。内部記憶領域
のメモリ,レジスタ、およびフラグなどの値を表わす変
数T1,...,TMを、「内部記憶領域変数」と呼
ぶ。なお、内部記憶領域を「非プログラマブルレジス
タ」と呼ぶこともある。
[Definition 3: Internal Storage Area and Internal Storage Area Variable] Of the storage areas constituting the logical device, storage areas other than the external storage area, that is, the user of the logical device cannot access (that is, the logical device). Storage areas such as memory, registers, and flags (which cannot be set / referenced from outside) are called "internal storage areas". Not only storage areas such as memories and registers for holding data, but also storage elements such as flags for holding control signals are internal storage areas if the user cannot access them. Variables T1, ... Representing values of memory, registers, flags, etc. in the internal storage area. . . , TM are called "internal storage area variables". The internal storage area may be called a "non-programmable register".

【0066】[定義4:内部記憶領域状態集合:T]内
部記憶領域の全体が作る状態の集合を、「内部記憶領域
状態集合」と呼ぶ。内部記憶領域変数T1,...,T
Mがとる1組の値により内部記憶領域の一つの状態が規
定される。内部記憶領域状態集合とは、このような状態
の集合である。
[Definition 4: Internal storage area state set: T] A set of states created by the entire internal storage area is called an "internal storage area state set". Internal storage area variables T1 ,. . . , T
One state of the internal storage area is defined by a set of values taken by M. The internal storage area state set is a set of such states.

【0067】[定義5:基本関数:A,...]外部仕
様、および実現仕様に出現する既知関数を、「基本関
数」と呼ぶ。
[Definition 5: Basic function: A ,. . . ] The known functions that appear in the external specifications and the realization specifications are called “basic functions”.

【0068】[定義6:基本述語:P,...]外部仕
様、および実現仕様に出現する既知述語を、「基本述
語」と呼ぶ。
[Definition 6: Basic predicate: P ,. . . ] Known predicates appearing in external specifications and realization specifications are called "basic predicates".

【0069】[定義7:外部仕様:F]「外部仕様」F
とは、外部記憶領域状態集合SからSへの関数であり、
S1,...,SNを変数(引数)とし、基本関数と基
本述語とif−then−else節と再帰関数定義とから
構成される関数である。
[Definition 7: External specification: F] "External specification" F
Is a function from the external storage area state set S to S,
S1 ,. . . , SN is a variable (argument), and is composed of a basic function, a basic predicate, an if-then-else clause, and a recursive function definition.

【0070】F(s1)=s2(s1,s2はSの要
素)とは、この論理装置が初期状態s1から実行を開始
すると、この論理装置はいつか実行を停止して最終状態
s2となるという意味である。
F (s1) = s2 (s1 and s2 are elements of S) means that when this logical unit starts execution from the initial state s1, this logical unit will stop execution sometime and become the final state s2. Is the meaning.

【0071】F(s1)が存在しない(s1はSの要
素)とは、この論理装置が初期状態s1から実行を開始
すると(例えば、無限ループなどで)いつまでも実行が
停止しないことを意味する。
The fact that F (s1) does not exist (s1 is an element of S) means that execution does not stop forever when this logical device starts execution from the initial state s1 (for example, in an infinite loop).

【0072】[定義8:実現仕様:G]「実現仕様」G
とは、外部記憶領域状態集合SからSへの関数であり、 G(S1,...SN)=G0(S1,...,SN,t
1,...,tM) で定義される関数である。ただし、G0はS×TからS
への関数であり、S1,...,SN,T1,...T
Mを変数(引数)とし、基本関数と基本述語とif−t
hen−else節と再帰関数定義とから構成される関
数である。
[Definition 8: Realization specification: G] "Realization specification" G
Is a function from the external storage area state set S to S, and G (S1, ... SN) = G0 (S1, ..., SN, t
1 ,. . . , TM). However, G0 is S × T to S
To S1 ,. . . , SN, T1 ,. . . T
With M as a variable (argument), the basic function, basic predicate, and if-t
It is a function composed of a hen-else clause and a recursive function definition.

【0073】Gは、初期設定(パワーオン−リセットな
ど)時に、論理装置の実現仕様の内部記憶領域T
1,...TMをt1,...tMに初期設定して実現
仕様に起動をかける初期化関数であり、G0はクロック
時刻の進行に伴う実現仕様の挙動を表わす挙動表示関数
である。
G is an internal storage area T of the realization specifications of the logic device at the time of initial setting (power-on-reset, etc.)
1 ,. . . TM to t1 ,. . . An initialization function that initializes to tM and activates the implementation specifications, and G0 is a behavior display function that represents the behavior of the implementation specifications as the clock time advances.

【0074】G(s1)=s2(s1,s2はSの要
素)とは、この論理装置が初期状態s1から実行を開始
すると、いつか実行を停止して最終状態s2となるとい
う意味である。
G (s1) = s2 (s1 and s2 are elements of S) means that when the logic device starts execution from the initial state s1, it will stop execution sometime and reach the final state s2.

【0075】G(s1)が存在しない(s1はSの要
素)とは、この論理装置が初期状態s1から実行を開始
すると(例えば、無限ループなどで)いつまでも実行が
停止しないことを意味する。
When G (s1) does not exist (s1 is an element of S), it means that the execution does not stop forever when this logical device starts execution from the initial state s1 (for example, in an infinite loop).

【0076】[定義9:論理装置の設計の正当性]S,
F,Gが上記のように定義された場合、Sの任意の要素
sについて、F(s)およびG(s)のいずれかが存在
する場合には、もう一方も必ず存在し、かつ F(s)=G(s) が必ず成り立つことを、その論理装置は正しいと定義す
る。
[Definition 9: Validity of design of logic device] S,
If F and G are defined as above, then for any element s of S, if either F (s) or G (s) is present, then the other is always present, and F ( The logical unit is defined as correct when s) = G (s).

【0077】(4) 例題コンピュータの外部仕様と設
計仕様 後述する(5)以降では、本実施例の検証システムによ
る検証の対象として、パイプライン段数3のパイプライ
ン制御方式の例題コンピュータを例に挙げて説明する。
ここでは、検証対象の例題コンピュータの外部仕様とそ
の設計仕様について説明する。ここで説明する例題コン
ピュータは、簡単ではあるが、実際のパイプライン制御
プロセッサの複雑さをコンパクトに再現している。
(4) External Specifications and Design Specifications of Example Computer In (5) and later described below, an example computer of a pipeline control system with three pipeline stages is taken as an example of the verification target of the verification system of this embodiment. Explain.
Here, the external specifications and the design specifications of the verification target example computer will be described. Although simple, the example computer described here reproduces the complexity of an actual pipeline control processor in a compact manner.

【0078】(4−1)例題コンピュータの外部仕様
(F) まず、例題コンピュータの外部仕様について説明する。
(4-1) External Specifications of Example Computer (F) First, the external specifications of the example computer will be described.

【0079】図8は、例題コンピュータ800の構造の
概要を表わしたものである。コンピュータ800は、C
PU802と256バイトの主メモリ(M)808を備
えている。CPU802は、プログラムカウンタ(C)
804とインクリメント機能だけを有する演算器(IN
C)806とを有する。主メモリは、1バイト単位に0
〜255でアドレス付けされている。
FIG. 8 shows an outline of the structure of the example computer 800. The computer 800 is C
It has a PU 802 and a main memory (M) 808 of 256 bytes. The CPU 802 is a program counter (C)
804 and an arithmetic unit having only an increment function (IN
C) 806. Main memory is 0 in 1-byte units
Addressed at ~ 255.

【0080】例題コンピュータ800の機能は、プログ
ラムカウンタ804の値Cから始まって、C+1,C+
2、…をアドレスとする主メモリ808のデータを順々
に調べ、0のデータが出現するまでそのデータをアドレ
スとする主メモリ708のデータをインクリメントする
ものとする。0が出現すると例題コンピュータ800は
停止し、プログラムカウンタ804には0が格納されて
いたアドレス+1が入るものとする。
The function of the example computer 800 starts from the value C of the program counter 804 and ends at C + 1, C +.
It is assumed that the data in the main memory 808 having the addresses 2, ... Are sequentially examined, and the data in the main memory 708 having the data as the address are incremented until the data 0 appears. When 0 appears, the example computer 800 stops, and the program counter 804 receives the address +1 where 0 was stored.

【0081】図9は、図8の例題コンピュータ800の
外部仕様を、再帰関数を用いて表わした記述である。本
実施例では、この記述が外部仕様データ110として検
証システムの入力の一つとなる。関数のシンタックス
(syntax)およびセマンティックス(semantics)は、「p
ure LISP (J.McCarthy, et al. LISP 1.5Programmer'sM
anual. M.I.T. Press, Cambridge, Mass., USA,1962)」
に記載されているものにほぼ準じた。このシンタックス
では、if文を用いた再帰関数定義法を用いて対象を記
述する。
FIG. 9 is a description showing the external specifications of the example computer 800 of FIG. 8 using a recursive function. In this embodiment, this description is one of the inputs of the verification system as the external specification data 110. The syntax and semantics of functions are
ure LISP (J.McCarthy, et al. LISP 1.5Programmer'sM
anual.MIT Press, Cambridge, Mass., USA, 1962) ''
It was almost the same as that described in. In this syntax, the target is described using a recursive function definition method using an if statement.

【0082】・図9で、902は外部仕様を表わす主関
数Fである。変数Cはプログラムカウンタを表わし、変
数Mは主メモリを表わす。CとMが、プログラマブル・
レジスタ(プログラマがアクセス可能なレジスタの意。
外部記憶領域の別称)である。
In FIG. 9, 902 is a main function F representing the external specifications. The variable C represents the program counter and the variable M represents the main memory. C and M are programmable
Register (means a register accessible to the programmer.
External storage area).

【0083】・<C+1,M>はC+1とMとの2項組
を表わす。M(a)は、アドレスaから始まる1バイト
のメモリ内容を表わす。M[b/a]は、アドレスaか
ら始まる1バイトのメモリ内容をbで書換えたメモリを
表わす。MM(a)は、M(M(a))の省略記述を表わ
す。
<C + 1, M> represents a binary set of C + 1 and M. M (a) represents 1-byte memory contents starting from the address a. M [b / a] represents a memory in which 1-byte memory contents starting from the address a are rewritten with b. MM (a) represents an abbreviated description of M (M (a)).

【0084】・右辺のif文は停止処理を表わし、el
se以降はそうでないときの処理を表わす。停止条件
(M(C)=0)が成立したときには、2項組で与えら
れるプログラマブル・レジスタの値を最終的に得られる
値として返す。そうでないときには、各レジスタを次の
プログラムカウンタ値に対応する値に更新して自分自身
を再び呼び出す。
The if statement on the right side represents stop processing, and el
The process after se represents the process when it is not. When the stop condition (M (C) = 0) is satisfied, the value of the programmable register given in the binary group is returned as the value finally obtained. Otherwise, it updates each register to the value corresponding to the next program counter value and calls itself again.

【0085】・すなわち、Fは、呼び出されると、上記
のような再帰的な呼び出しを繰り返し、最終的にプログ
ラマブル・レジスタに得られる値を返す。したがって、
関数Fはプログラマブル・レジスタに特定の値が設定さ
れると、上記の処理を経て、最終的にプログラマブル・
レジスタに得られる値を返すことになる。
When F is called, F repeats the recursive call as described above, and finally returns the value obtained in the programmable register. Therefore,
When a specific value is set in the programmable register, the function F goes through the above process and finally becomes programmable.
The value obtained in the register will be returned.

【0086】(4−2)例題コンピュータの設計仕様
(G) 次に、この例題コンピュータ800の設計仕様について
説明する。
(4-2) Design Specifications of Example Computer (G) Next, design specifications of the example computer 800 will be described.

【0087】このコンピュータ800は、実際のコンピ
ュータが採用しているようなパイプライン段数3のパイ
プライン制御方式,ストアとそれより後のデータとの干
渉(メモリコンフリクト)制御方式を採用している。メ
モリコンフリクト制御により、直前の命令の処理が完全
に終わってから次の命令を開始したときのような命令例
の実行結果が得られる。
The computer 800 employs a pipeline control method with three pipeline stages, which is used in an actual computer, and an interference (memory conflict) control method between a store and data after it. The memory conflict control provides the execution result of the instruction example such as when the next instruction is started after the processing of the immediately preceding instruction is completely completed.

【0088】このパイプライン化された(パイプライン
制御)プロセッサは、三つのパイプラインステージを持
つ。このプロセッサは、データ間に依存関係がないとき
だけ三つのデータを三つのステージを用いて同時に処理
できる。したがって、このプロセッサは最大3個の命令
(データ)を同時に処理できることになる。実際に何個
のデータを同時に処理できるかは、各データ間の依存関
係の度合いに依存する。
This pipelined (pipeline control) processor has three pipeline stages. This processor can process three data simultaneously using three stages only when there is no dependency between the data. Therefore, this processor can process a maximum of three instructions (data) at the same time. The actual number of data that can be processed simultaneously depends on the degree of dependency between the data.

【0089】図10は、例題コンピュータ800の設計
仕様を、論理ブロック構成図の形式で記述したものであ
る。図10を参照して、例題コンピュータ800の設計
仕様について説明する。
FIG. 10 describes the design specifications of the example computer 800 in the form of a logical block configuration diagram. The design specifications of the example computer 800 will be described with reference to FIG.

【0090】・図10で、例題コンピュータ1000の
全体は、クロック発生器1002から出力されるクロッ
クにより制御されている。クロックは、ON信号が
「1」になると発生し始め、stop信号が「1」にな
ると停止する。
In FIG. 10, the entire example computer 1000 is controlled by the clock output from the clock generator 1002. The clock starts to be generated when the ON signal becomes "1" and stops when the stop signal becomes "1".

【0091】・例題コンピュータ1000は、図8で図
示した主メモリ808,プログラムカウンタ(C)804
(以下、Cレジスタ804と呼ぶ)、および演算器(IN
Cc)1018の他に、プログラマが設定・参照できな
いレジスタ群,デコーダ、およびコンフリクト検出回路
を備えている。
The example computer 1000 includes a main memory 808 and a program counter (C) 804 shown in FIG.
(Hereinafter referred to as C register 804), and arithmetic unit (IN
In addition to Cc) 1018, a register group, a decoder, and a conflict detection circuit, which cannot be set / referenced by the programmer, are provided.

【0092】・Sレジスタ1008は、Cレジスタの内
容をアドレスとして読み出したメモリM上のデータを保
持するレジスタである。
The S register 1008 is a register for holding the data on the memory M read by using the contents of the C register as an address.

【0093】・Zレジスタ1012は、Sレジスタの内
容をアドレスとして読み出したメモリM上のデータを演
算器INCcにより1加算した値を保持するレジスタで
ある。Zレジスタの内容はメモリMに書き込むべきデー
タである。
The Z register 1012 is a register for holding a value obtained by adding 1 to the data on the memory M read by using the contents of the S register as an address by the arithmetic unit INCc. The contents of the Z register are data to be written in the memory M.

【0094】・S2レジスタ1010は、1クロック前
にSレジスタに格納されたデータを保持するレジスタで
ある。S2レジスタの内容は、Zレジスタの内容をデー
タとしてメモリMに書き込む際のアドレスとなる。
The S2 register 1010 is a register for holding the data stored in the S register one clock before. The content of the S2 register becomes an address when the content of the Z register is written in the memory M as data.

【0095】・C1レジスタ1004とC2レジスタ1
006は、それぞれ1クロック前と2クロック前のCレ
ジスタの内容を保持するレジスタである。
C1 register 1004 and C2 register 1
Reference numeral 006 is a register that holds the contents of the C register one clock before and two clocks before.

【0096】・1030はセレクタである。図10に示
されているように、SEL線の値は、stop, conf1,conf
0の値に応じて、INCa線の値か、C1レジスタ線の
値か,Cレジスタ線の値か,INCb線の値のいずれか
になる。
1030 is a selector. As shown in Fig. 10, the SEL line values are stop, conf1, conf.
Depending on the value of 0, it is either the value of the INCa line, the value of the C1 register line, the value of the C register line, or the value of the INCb line.

【0097】・コンフリクト/停止条件検出回路104
0は、先行するデータの処理が行うメモリへの格納がそ
の後続のデータの処理が読み出すデータを書換える(メ
モリコンフリクト:M−conflict)か否かを検出し、コ
ンピュータを停止するか否かを判定する組合せ回路であ
る。メモリコンフリクトが検出されたときとは、データ
間の依存関係があるときである。メモリコンフリクトが
発生した読出しデータは破棄する。メモリコンフリクト
がないと、このプロセッサは3データを同時に処理す
る。メモリコンフリクトがあると、このプロセッサは3
データを同時には処理できず、2ないし1データのみを
処理する。メモリコンフリクトが発生した読出しデータ
は破棄する。
· Conflict / stop condition detection circuit 104
0 detects whether the storage of the preceding data in the memory is a rewriting of the data read by the subsequent processing of the data (memory conflict: M-conflict), and whether the computer is stopped or not. This is a combinational circuit for judging. When a memory conflict is detected is when there is a dependency between data. The read data in which the memory conflict has occurred is discarded. If there are no memory conflicts, this processor will process 3 data simultaneously. If there is a memory conflict, this processor will
It cannot process data at the same time, only 2 to 1 data. The read data in which the memory conflict has occurred is discarded.

【0098】・V1レジスタ1014はC1レジスタと
Sレジスタに有効な値が格納されているか否かを、V2
レジスタ1016はC2レジスタ,S2レジスタ及びZ
レジスタに有効な値が格納されているか否かを示す情報
を値1又は値0を用いてそれぞれ保持するレジスタであ
る。
The V1 register 1014 checks whether or not valid values are stored in the C1 register and the S register by V2.
The register 1016 is a C2 register, an S2 register and a Z.
It is a register that holds information indicating whether or not a valid value is stored in the register using a value 1 or a value 0, respectively.

【0099】・主メモリ808は、1クロックの間に2
データ読出しと1データ書込み(格納)とを処理できる
ものである。ただし、書込み領域と読出し領域とが重な
る場合には、主メモリ808への書込みの動作は保証さ
れるが、読出しの動作は保証されない。その場合の読出
し動作の保証は、コンフリクト/停止条件検出回路10
40などにより行われる。
The main memory 808 stores 2 in 1 clock.
Data reading and 1 data writing (storing) can be processed. However, when the writing area and the reading area overlap, the writing operation to the main memory 808 is guaranteed, but the reading operation is not guaranteed. In that case, the read operation is guaranteed by the conflict / stop condition detection circuit 10
40 or the like.

【0100】以上、図10を用いて、検証対象の例題コ
ンピュータ800の設計仕様を説明した。なお、この設
計仕様は、あくまでも例題コンピュータ800の外部仕
様(図8)を実現したものの一例であり、他の設計仕様
もあり得る。当然ながら、他のパイプライン段数が異な
る設計仕様にも、この発明は同様に適用可能である。
The design specifications of the verification target example computer 800 have been described above with reference to FIG. It should be noted that this design specification is just an example of the external specification (FIG. 8) of the example computer 800, and there may be other design specifications. Of course, the present invention is similarly applicable to other design specifications having different numbers of pipeline stages.

【0101】ここで、これらの図で表わした設計仕様
は、人間が参照するには適しているが、検証プログラム
が設計仕様データとして操作するには適していない。そ
こで、検証プログラムが操作しやすい形式によって設計
仕様データを表わすことにする。
The design specifications shown in these figures are suitable for human reference, but not suitable for the verification program to operate as design specification data. Therefore, the design specification data is represented in a format that the verification program can easily operate.

【0102】図13は、この例題コンピュータ800の
構造記述設計仕様データ112を示す。これは、図10
で説明した設計仕様を構造記述言語を用いて記述したも
の、すなわち検証プログラムが操作しやすいネットリス
トで表現したものである。
FIG. 13 shows the structure description design specification data 112 of this example computer 800. This is shown in FIG.
It is a description of the design specifications described in Section 2 above using a structure description language, that is, a netlist that is easy for the verification program to operate.

【0103】図11にネットリスト要素の文法を、図1
2にネットリストの文法をそれぞれ示す。ネットリスト
は、図12に示すように、ネットリスト要素を有限個並
べてカッコで囲んだもの(リスト)である。ネットリス
ト要素としては、レジスタと、組合せ論理とがある。
The grammar of the netlist element is shown in FIG.
2 shows the syntax of the netlist. As shown in FIG. 12, the netlist is a list (a list) in which a finite number of netlist elements are arranged and enclosed in parentheses. Netlist elements include registers and combinatorial logic.

【0104】図11の(a)に示すレジスタを表わすネ
ットリスト要素では、最初にキーワード「Register」が
あり、以下順に、リソース名,クロック相,ソースリソ
ース名・出力ピン番の対,シンクリソース名・入力ピン
番の対の有限リストが並んでいる。
In the netlist element representing the register shown in FIG. 11A, the keyword "Register" is at the beginning, and in the following order, the resource name, clock phase, source resource name / output pin number pair, and sink resource name.・ There is a finite list of pairs of input pin numbers.

【0105】図11の(b)に示す組合せ論理を表わす
ネットリスト要素では、最初にキーワード「Combinatio
nal-logic」があり、以下順に、リソース名,ソースリ
ソース名・出力ピン番・入力パラメータの組の有限リス
ト,シンクリソース名・入力ピン番・出力パラメータの
組の有限リスト,出力パラメータを入力パラメータから
なる式で表わした等式の有限リストが並んでいる。
In the netlist element representing the combinational logic shown in FIG. 11B, first, the keyword "Combinatio
nal-logic ”, and in the following order, a resource name, a finite list of source resource names, output pin numbers, and input parameters, a finite list of sink resource names, input pin numbers, and output parameters, and output parameters as input parameters. There is a finite list of equations represented by.

【0106】このような文法のネットリスト形式で記述
された例題コンピュータ800の構造記述設計仕様デー
タ112(図13)では、図10の中の、SEL(103
0),INCa(1032)、およびC(804)のみ
を示した。残りは省略したが、上記の形式で容易に表現
可能である。当然、図9の形式で表わした設計仕様と図
13のネットリストの形式(構造記述)で表わした設計
仕様とは等価である。
In the structure description design specification data 112 (FIG. 13) of the example computer 800 described in the netlist format of such a grammar, SEL (103
0), INCa (1032), and C (804) are shown. The rest is omitted, but it can be easily expressed in the above format. Naturally, the design specification expressed in the format of FIG. 9 is equivalent to the design specification expressed in the netlist format (structure description) of FIG.

【0107】以下、(5)から(7)で、図2で示した
構造記述からRT記述への変換処理202,RT記述か
ら動作記述への変換処理204、および証明探索210
について、順次詳しく説明する。まず、構造記述からR
T記述への変換処理202について説明する。
In the following (5) to (7), the conversion process 202 from the structural description to the RT description shown in FIG. 2, the conversion process 204 from the RT description to the behavioral description 204, and the proof search 210.
Will be sequentially described in detail. First, from the structure description to R
The conversion process 202 to the T description will be described.

【0108】(5) 構造記述からRT記述への変換 再び図1,図2を参照して、構造記述からRT記述への
変換処理202では、構造記述で表現した設計仕様デー
タ112(図13)をRT記述で表現した設計仕様デー
タ122(図14)に変換する。この変換処理は、公知
の技術を用いればよい。例えば、Dominique D. Borrion
e らの“Formal Verification of VHDLDescriptions in
the Prevail Environment,”IEEE Design and Test of
Computers,1992, pp.42-56.や特開平6−215063 号に
記載された方法などを用いればよい。この変換は、設計
仕様を再帰関数の形で表現するために行われる等価変換
である。
(5) Conversion from Structural Description to RT Description Referring again to FIGS. 1 and 2, in the conversion process 202 from the structural description to the RT description, the design specification data 112 (FIG. 13) expressed by the structural description Is converted into design specification data 122 (FIG. 14) expressed by RT description. A known technique may be used for this conversion processing. For example, Dominique D. Borrion
e et al., “Formal Verification of VHDL Descriptions in
the Prevail Environment, ”IEEE Design and Test of
Computers, 1992, pp.42-56. Alternatively, the method described in JP-A-6-215063 may be used. This conversion is an equivalent conversion performed for expressing the design specification in the form of a recursive function.

【0109】図14で、1402は主関数GのRT記述
を示し、1404は補助関数G0のRT記述を示す。
In FIG. 14, reference numeral 1402 indicates the RT description of the main function G, and 1404 indicates the RT description of the auxiliary function G0.

【0110】主関数Gは、プログラマブル・レジスタ
(プログラマがアクセス可能なレジスタの意。外部記憶
領域の別称)はそのままにし、非プログラマブル・レジ
スタ(プログラマがアクセス不可能なレジスタの意。内
部記憶領域の別称)には初期値を設定して、補助関数G
0を呼び出す。
The main function G is a non-programmable register (meaning a register that cannot be accessed by the programmer; an internal storage area) while leaving a programmable register (meaning a register accessible by the programmer; another name for external storage area). Set an initial value to another name), and the auxiliary function G
Call 0.

【0111】補助関数G0は、クロック停止条件が成立
したときには、そのときのプログラマブル・レジスタの
値を最終的に得られる値として返し、そうでないときに
は、各レジスタを次のクロック時刻の値に更新して補助
関数G0を再び呼び出す。すなわち、補助関数G0は、
プログラマブル・レジスタと非プログラマブル・レジス
タに特定の値が設定されて呼び出されると、上記のよう
な再帰的な呼び出しを繰り返し、最終的にプログラマブ
ル・レジスタに得られる値を返す。
When the clock stop condition is satisfied, the auxiliary function G0 returns the value of the programmable register at that time as a value finally obtained, and otherwise updates each register to the value of the next clock time. To call the auxiliary function G0 again. That is, the auxiliary function G0 is
When a specific value is set in the programmable register and the non-programmable register and called, the above recursive call is repeated and the value finally obtained in the programmable register is returned.

【0112】したがって、主関数Gは、プログラマブル
・レジスタに特定の値が設定されると、上記の処理を経
て、最終的にプログラマブル・レジスタに得られる値を
返すことになる。
Therefore, when a specific value is set in the programmable register, the main function G goes through the above process and finally returns the value obtained in the programmable register.

【0113】主関数Gが(3)で述べた初期化関数であ
り、補助関数G0が挙動表示関数である。
The main function G is the initialization function described in (3), and the auxiliary function G0 is the behavior display function.

【0114】図14のRT記述では、各クロック時刻で
の各レジスタの値の更新を関数G0の再帰呼び出しを用
いて表わしている。各レジスタの次のクロック時刻での
更新値を各レジスタごとにまとめて一ヶ所に記述してあ
るので、このような記述をここではRT(register tra
nsfer:レジスタ転送)記述と呼んでいる。
In the RT description of FIG. 14, the updating of the value of each register at each clock time is represented by using the recursive call of the function G0. The updated value of each register at the next clock time is described in one place for each register, so such a description is given here in RT (register tra
nsfer: Register transfer) is called.

【0115】(6) RT記述から動作記述への変換 次に、RT記述から動作記述への変換処理204につい
て説明する。
(6) Conversion from RT Description to Behavioral Description Next, the conversion processing 204 from the RT description to the behavioral description will be described.

【0116】RT記述から動作記述への変換処理204
では、RT記述で表現した設計仕様122(図14)を
動作記述で表現した設計仕様124(図15)に変換す
る。この変換では、再帰呼び出しする関数G0の内側に
ifがあればそのifを関数の外側に移して簡単化する
処理を、関数G0の内側にifがなくなるまで、繰り返
す。すなわち、図14の1404の右辺で再帰に呼び出
している関数G0の引数にif文が出現しているから、
これらのif文を関数G0の外側に移して簡単化する処
理を行う。これにより、RT記述を、後の証明探索に適
した動作記述に等価変換している。
Conversion processing 204 from RT description to behavioral description
Then, the design specification 122 (FIG. 14) expressed by the RT description is converted into the design specification 124 (FIG. 15) expressed by the behavioral description. In this conversion, if there is an if inside the function G0 to be recursively called, a process of moving the if to the outside of the function and simplifying it is repeated until there is no if inside the function G0. That is, since the if statement appears in the argument of the function G0 called recursively on the right side of 1404 in FIG.
These if statements are moved to the outside of the function G0 for simplification processing. As a result, the RT description is equivalently converted into a behavioral description suitable for later proof search.

【0117】変換処理204は、公知の技術を用いれば
よい。例えば、先願の特開平6− 215063号の論理装置
の検証方法に示された技術などを用いればよい。この変
換では、まず関数の内側のifを関数の外側に移した
後、簡単化して、動作記述で表現した設計仕様124
(図15)を得ている。動作記述で表現した図15の設
計仕様124は、これ以上簡単化できず、関数G0の内
側にもifが残っていない。すなわち、if条件はすべ
て関数G0の外側にあり、各条件ごとの処理動作がまと
めて一ヶ所に記述してある。このような記述を、ここで
は動作記述と呼んでいる。
A publicly known technique may be used for the conversion processing 204. For example, the technique described in the method for verifying a logic device in Japanese Patent Application Laid-Open No. 6-215063 may be used. In this conversion, first, if inside the function is moved to the outside of the function, and then it is simplified and the design specification 124 expressed in the behavioral description is used.
(Fig. 15). The design specification 124 of FIG. 15 expressed by the behavioral description cannot be further simplified, and if is not left inside the function G0. That is, all if conditions are outside the function G0, and the processing operations for each condition are collectively described in one place. Such a description is called a behavioral description here.

【0118】なお、このような簡単化の技術は公知であ
り、その詳細は、例えばBoyer andMoore,“A Computati
onal Logic Handbook”,1988,Academic Press.に記載
されている。
Note that such a simplification technique is known, and the details thereof are described in, for example, Boyer and Moore, "A Computati.
onal Logic Handbook ”, 1988, Academic Press.

【0119】(7) 証明探索 次に、証明探索処理210について説明する。(7) Proof Search Next, the proof search process 210 will be described.

【0120】図2の証明探索処理210では、動作記述
で表現した設計仕様データ124(図15)と外部仕様
データ110(図9)との間について、上記(3)で説
明した正当性が成り立つことを証明する。
In the proof search process 210 of FIG. 2, the justification explained in the above (3) is established between the design specification data 124 (FIG. 15) expressed by the behavioral description and the external specification data 110 (FIG. 9). Prove that.

【0121】証明探索処理210は、動作記述による状
態列挙220,メモリ公理による書換え222,抽象化
224および拡張再帰帰納法の適用226の各処理から
構成されている。以下、(7−1)から(7−3)で、
順に説明する。
The proof search process 210 is composed of state enumeration 220 by behavioral description, rewriting 222 by memory axiom, abstraction 224, and application 226 of extended recursive induction. Hereinafter, in (7-1) to (7-3),
It will be described in order.

【0122】(7−1)動作記述によるGの状態列挙と
メモリ公理による書換え 次に、動作記述によるGの状態列挙220およびメモリ
公理による書換え222について説明する。
(7-1) G State Listing by Behavior Description and Rewriting by Memory Axiom Next, G state listing 220 by behavior description and rewriting 222 by memory axiom will be described.

【0123】動作記述によるGの状態列挙220とメモ
リ公理による書換え222とは対になって動作し、動作
記述を使って実現仕様の動作を模擬して、到達可能状態
を列挙する。到達可能状態とその状態間の遷移は、書換
え後Gデータ232の形に変換されて記憶される。
The G state enumeration 220 based on the behavioral description and the rewriting 222 based on the memory axiom operate as a pair, and the behavioral description is used to simulate the behavior of the realization specification to enumerate the reachable states. The reachable state and the transition between the states are converted into the G data 232 after rewriting and stored.

【0124】まず、条件式による状態の表現法について
説明する。ただし、以下のような記法を用いる。
First, a method of expressing a state by a conditional expression will be described. However, the following notation is used.

【0125】例として、レジスタP,Qを持ち、G0
(P,Q)=...で与えられる設計仕様を考える。こ
のとき、 G0(R,R+4) は、条件式Q=P+4(P=R,Q=R+4からRを消
去したもの)を表わすとみなせる。そこで、この記法で
上記の条件式を満たす状態を表現すると考える。
As an example, having registers P and Q, G0
(P, Q) =. . . Consider the design specifications given in. At this time, G0 (R, R + 4) can be regarded as representing the conditional expression Q = P + 4 (P = R, Q = R + 4 minus R). Therefore, it is considered that this notation represents a state that satisfies the above conditional expression.

【0126】図3は、動作記述によるGの状態列挙22
0の手順を示すフローチャートである。この手順の中
で、処理310のメモリ公理を適用した書換え222で
は、図4の手順が呼び出される。
FIG. 3 is a state list 22 of G according to the behavioral description.
It is a flowchart which shows the procedure of 0. In the rewriting 222 to which the memory axiom of the process 310 is applied in this procedure, the procedure of FIG. 4 is called.

【0127】図3で、まず、処理302では変数の初期
化をする。初期化される変数はN,書換え後関数FIF
O,書換え前関数FIFO、および書換え待ちリストで
ある。
In FIG. 3, first, in process 302, variables are initialized. Variable to be initialized is N, function FIF after rewriting
O, a pre-rewriting function FIFO, and a rewriting waiting list.

【0128】次に、処理304では、書換え前関数FI
FOから関数を一つずつ取り出して、処理306〜32
2を施す。以下、これらの処理を説明する。
Next, in process 304, the pre-rewrite function FI
The functions are extracted from the FO one by one, and the processes 306 to 32 are performed.
Apply 2. Hereinafter, these processes will be described.

【0129】まず、処理306では、この関数G(初期
化関数)の右辺すなわちこの関数Gの定義本体(初期値
状態)が、書換え待ちリストAに加えられる。次に、処
理308では、動作記述G0(挙動表示関数)を適用し
て状態を列挙する。その結果をさらに処理310によっ
てメモリ公理を適用して書換える。この書換えは、1ク
ロック分だけの設計仕様の動作を模擬して次の状態を算
出することに相当しており、書換え結果が次状態を表わ
している。
First, in process 306, the right side of this function G (initialization function), that is, the definition body (initial value state) of this function G is added to the rewriting waiting list A. Next, in process 308, the behavior description G0 (behavior display function) is applied to enumerate the states. The result is further rewritten by the process 310 by applying the memory axiom. This rewriting is equivalent to simulating the operation of the design specification for only one clock to calculate the next state, and the rewriting result represents the next state.

【0130】なお、ここでG0項とはG0(a,
b,...)のような項であり、プログラマブル・レジ
スタと非プログラマブル・レジスタの取り得る値を規定
する条件式であり、この条件式で規定されるプログラマ
ブルレジスタと非プログラマブル・レジスタの値のつく
る状態とも見なせる。
Here, the term G0 means G0 (a,
b,. . . ) Is a conditional expression that defines the values that the programmable register and the non-programmable register can take, and can also be regarded as a state in which the values of the programmable register and the non-programmable register that are defined by this conditional expression are created.

【0131】書換え後の関数定義は、処理312で書換
え後関数FIFOに追加され、書換え後の各G0項は、
処理314で書換え待ちリストBに追加される。G0項
の書換えの際、定義本体の書換え時は、定義本体の直後
に等号を介して、書換え結果を追加する。定義本体の直
後の等号を介した式の書換え時は、この式をその書換え
結果で置換する。メモリ公理を適用した書換えの詳細は
後述する。
The rewritten function definition is added to the rewritten function FIFO in the process 312, and each G0 term after the rewriting is
It is added to the rewriting waiting list B in process 314. When rewriting the definition body when rewriting the G0 item, the rewriting result is added immediately after the definition body through the equal sign. When an expression is rewritten via the equal sign immediately after the definition body, this expression is replaced with the rewriting result. Details of rewriting to which the memory axiom is applied will be described later.

【0132】次に、処理316により、書換え待ちリス
トBの各G0項について処理318〜322を施す。
Next, in process 316, processes 318 to 322 are performed for each G0 item in the rewriting waiting list B.

【0133】まず、処理318では、「“GN(C*,
M*)=このG0項”のC*,M*をC,Mで置換した
式」がTEMPに代入される。ここで、“GN”のNに
は、このときのNの値が使われる。N=1のときにはG
1となり、N=2のときにはG2となる。
First, in process 318, "" GN (C *,
M *) = “G0 term“ C *, M * replaced by C, M ”” is substituted into TEMP. Here, the value of N at this time is used as N of “GN”. G when N = 1
1 and G2 when N = 2.

【0134】この操作は、G1,G2,...という名
前をつけたプログラマブル・レジスタ値のみからなる状
態と等価であると定義することに相当する。
This operation is performed for G1, G2 ,. . . It is equivalent to defining a state consisting only of programmable register values named.

【0135】“GN(C*,M*)=このG0項”の中
の”C*,M*”とは、それぞれ、このG0項の中に現
われるすべてのC+p,M[c/s]...[d/t]
の形の項のp、[c/s]...[d/t]中で最小の
ものを指す。例えばC,C+4,C+8に対するC*は
Cであり、C+4,C+8,C+12に対するC*はC
+4である。また、M,M[c/s],M[c/s]
[d/t]に対するM*はMであり、M[c/s],M
[c/s][d/t],M[c/s][d/t][e/
u]に対するM*はM[c/s]である。
“C *, M *” in “GN (C *, M *) = this G0 term” means all C + p, M [c / s]. . . [D / t]
P in the form of [c / s]. . . Indicates the smallest value in [d / t]. For example, C * for C, C + 4, C + 8 is C, and C * for C + 4, C + 8, C + 12 is C
It is +4. Also, M, M [c / s], M [c / s]
M * for [d / t] is M, and M [c / s], M
[C / s] [d / t], M [c / s] [d / t] [e /
M * for u] is M [c / s].

【0136】この操作は、G0(R+4,R+8)のよ
うな記法で表わされる状態があったとき、これをG0
(R,R+4)に変換することに相当する。前者が表わ
す条件式は、P=R+4&Q=R+8であり、後者の表
わす条件式は、P=R&Q=R+4であり、両者共、条
件式Q=P+4と等価である。したがって、両者の状態
も等価であり、この変換は等価変換である。この変換後
の式を、正規形と呼ぶ。
In this operation, when there is a state represented by a notation such as G0 (R + 4, R + 8), this is changed to G0 (R + 4, R + 8).
This is equivalent to conversion to (R, R + 4). The conditional expression expressed by the former is P = R + 4 & Q = R + 8, and the conditional expression expressed by the latter is P = R & Q = R + 4, both of which are equivalent to the conditional expression Q = P + 4. Therefore, the two states are also equivalent, and this conversion is an equivalent conversion. The expression after this conversion is called a normal form.

【0137】次に、処理320では正規形に変換された
次状態が出現済みか否かを判定する。すなわち、正規形
に変換された次状態(TEMPの右辺)が既に書換え前
関数FIFO内の右辺または書換え後関数FIFO内の
中辺に既にあるか否かが調べられる。出現済みでないと
きのみ、処理322が行われる。
Next, in process 320, it is judged whether or not the next state converted into the normal form has already appeared. That is, it is checked whether or not the next state converted to the normal form (right side of TEMP) is already on the right side of the pre-rewriting function FIFO or the middle side of the post-rewriting function FIFO. The process 322 is performed only when it has not appeared.

【0138】処理322では、名前GNを付けられた正
規形に変換された次状態(GX)が、書換え前関数FI
FOに追加され、変数Nに1が加えられる。書換え前関
数FIFOに追加された関数は、処理304以降の処理
が施されることになる。また、Nはここで+1されるの
で、正規形に変換された次状態が新規(既出現でない)
時のみGNの名前が更新されることになる。
In process 322, the next state (GX) converted into the normal form with the name GN is the pre-rewriting function FI.
It is added to FO and 1 is added to the variable N. The function added to the pre-rewriting function FIFO is subjected to the processing of the processing 304 and thereafter. Also, since N is incremented by 1 here, the next state converted to the normal form is new (not already appearing).
Only then will the GN name be updated.

【0139】上記の動作記述G0(挙動表示関数)によ
るG(初期化関数)の状態列挙220は、簡単にいえ
ば、Gの右辺(初期値状態)をどんどんと展開していっ
て、現われる全状態を洗い出す処理である。G0項が途
中で出現する状態である。そのG0項をG0(挙動表示
関数)を用いて展開して書換えていくということは、1
クロックだけ時間を進めることに相当する。G0項をど
んどんと展開していくことにより、到達可能な状態をす
べて求めることができる。初期値状態にはC,Mのよう
な外部記憶領域変数が含まれているので、一つの状態で
はなく状態群である。G0項が表わす状態も一つの状態
ではなく、G0項が表わす条件式で定まる状態群を指し
ている。したがって、G0項の展開では一度の展開で複
数の到達可能な状態が求められている。
The state enumeration 220 of G (initialization function) by the above-described behavioral description G0 (behavior display function) is simply expressed by expanding the right side of G (initial value state) more and more. This is a process to wash out the condition. This is a state in which the G0 term appears on the way. Expanding and rewriting the G0 term using G0 (behavior display function) means 1
This is equivalent to advancing time by the clock. By expanding the G0 term steadily, all reachable states can be obtained. Since the initial value states include external storage area variables such as C and M, they are not a single state but a group of states. The state represented by the G0 term is not a single state, but indicates a state group defined by the conditional expression represented by the G0 term. Therefore, in the expansion of the G0 term, a plurality of reachable states are required in one expansion.

【0140】このようにして求めた到達可能状態は、t
hen節中のG0項、またその状態へ遷移するための条
件はif節として、書換え後関数FIFO中に関数定義
の形で蓄積されている。関数定義の左辺は遷移前の状態
を表わしている。
The reachable state obtained in this way is t
The G0 term in the hen clause and the condition for making a transition to that state are accumulated in the post-rewriting function FIFO in the form of a function definition as an if clause. The left side of the function definition represents the state before the transition.

【0141】次に、メモリ公理による書換え222につ
いて説明する。
Next, the rewriting 222 based on the memory axiom will be described.

【0142】図4は、メモリ公理による書換え222の
処理手順を示すフローチャートである。メモリ公理と
は、「書換えなしメモリデータ不変公理」の略称であ
り、次の式で表わされる。
FIG. 4 is a flowchart showing the processing procedure of the rewriting 222 by the memory axiom. The memory axiom is an abbreviation of "memory data invariant axiom without rewriting" and is represented by the following formula.

【0143】s≠f→M[c/s](f)=M(f) ここでfはフェッチアドレス、sはストアアドレス、c
はストアデータである。この式の意味は、「fとsが異
なれば、アドレスsにcを書き込んだ後のアドレスfの
メモリデータは、書き込まないときのメモリデータと同
一である」ということである。
S ≠ f → M [c / s] (f) = M (f) where f is a fetch address, s is a store address, and c
Is store data. The meaning of this expression is that "if f and s are different, the memory data at address f after writing c at address s is the same as the memory data at the time of not writing".

【0144】図4を参照して、メモリ公理による書換え
222では、まず処理402で、動作記述の右辺の各i
f−then節を探し出して各G0項に処理404以降
の処理を施す。
Referring to FIG. 4, in rewriting 222 by the memory axiom, first, in process 402, each i on the right side of the behavioral description is processed.
The f-then clause is searched for, and each G0 term is subjected to the processing from step 404 onward.

【0145】処理404では、上記のメモリ公理を適用
する候補を抽出する。すなわち、M[c/s]とM
(f)の形の要素が含まれているか否かを調べる。含ま
れている場合は処理406に進み、含まれていない場合
は次のG0項について再び処理404以降の処理を施
す。
In process 404, candidates to which the above memory axiom is applied are extracted. That is, M [c / s] and M
It is checked whether or not the element of the form (f) is included. If it is included, the process proceeds to step 406, and if it is not included, the process after step 404 is performed again for the next G0 term.

【0146】処理408では、メモリ公理適用条件を確
認する。すなわち、s≠fが真かが調べられる。この判
定は、公知の技術、すなわち公知の定理証明プログラム
などを用いて行えばよい。定理証明プログラムについて
は、例えば、Chang&Lee著“コンピュータによる定理の
証明”(日本コンピュータ協会発行,1983年)など
に開示されている。
In step 408, the memory axiom application condition is confirmed. That is, it is checked whether s ≠ f is true. This determination may be performed using a known technique, that is, a known theorem proof program. The theorem proof program is disclosed, for example, in “Proof of a Theorem by Computer” by Chang & Lee (published by Japan Computer Association, 1983).

【0147】処理410は、処理412で真が成立した
ときのみ実行される。処理414では、M(f)をM
[c/s](f)で置換する。
The process 410 is executed only when true is established in the process 412. In process 414, M (f) is changed to M
Replace with [c / s] (f).

【0148】処理411では、置換後のG0項をすべて
調べ、同一のG0項があれば、同一のG0項のif−t
hen節を統合する。すなわち、統合対象のif−th
en節を削除し、その代わりに削除したif条件すべて
の論理和(or)をif節にもち同一のG0項をthe
n節にもつif−then節をおく。
In the process 411, all G0 terms after replacement are examined, and if there is the same G0 term, if-t of the same G0 term is found.
Integrate the hen clause. That is, if-th to be integrated
The en clause is deleted, and instead, the logical sum (or) of all the deleted if conditions is included in the if clause and the same G0 term is set to the
The if-then clause which is included in the n clause is set.

【0149】次に、図15の主関数Gの記述1502と
補助関数G0の記述1504とを用いて、図3の動作記
述によるGの状態列挙220の動作を具体的に説明す
る。この際、図16の書換え後Gデータも参照する。
Next, using the description 1502 of the main function G and the description 1504 of the auxiliary function G0 of FIG. 15, the operation of the G state enumeration 220 according to the operation description of FIG. 3 will be specifically described. At this time, the G data after rewriting in FIG. 16 is also referred to.

【0150】まず処理302では、変数が初期化され、
N=1,書換え後関数FIFO=空,書換え前関数FI
FO=Gの定義1502,書換え待ちリスト=空とな
る。
First, in process 302, variables are initialized,
N = 1, post-rewrite function FIFO = empty, pre-rewrite function FI
FO = G definition 1502, rewriting waiting list = empty.

【0151】次に、処理304により、Gの定義150
2について処理306〜322が施される。まず、処理
306では、Gの定義本体1502が書換え待ちリスト
Aに加えられる。処理308では、定義本体1502を
動作記述1504を適用して状態を列挙する。書換えの
結果は、
Next, in process 304, the definition 150 of G is set.
Processes 306 to 322 are performed for 2. First, in process 306, the definition body 1502 of G is added to the rewriting waiting list A. In step 308, the definition body 1502 is applied with the behavioral description 1504 to enumerate the states. The result of rewriting is

【0152】[0152]

【数9】 G(C,M)=G0(C,M,0,0,-,-,-,-,-)=G0(C+1,M,1,0,C,-,M(C),-,-) …(数9) さらに、処理310では、メモリ公理による書換え22
2(図4)が行われる。まず、処理402では、記述の
右辺のif−then節を探し出して、各if−the
n節に処理404以降の処理を施す。しかしながら、数
9の右辺にはif−then節は存在しないので処理2
22は直ちに終了する。
[Equation 9] G (C, M) = G0 (C, M, 0,0,-,-,-,-,-) = G0 (C + 1, M, 1,0, C,-, M ( C),-,-) (Equation 9) Further, in the process 310, rewriting by the memory axiom 22
2 (FIG. 4) is performed. First, in process 402, the if-then clause on the right side of the description is searched for, and each if-then is searched.
The processing after the processing 404 is applied to the n-th node. However, since there is no if-then clause on the right side of Equation 9, processing 2
22 ends immediately.

【0153】処理312により関数定義すなわち数9全
体を書換え後FIFO(書換え後Gデータ232)に追
加する。この時点では、図16の式1602のみが入
る。また、処理314によりG0項すなわち数9の
By the process 312, the function definition, that is, the whole equation 9 is added to the rewritten FIFO (rewritten G data 232). At this point, only equation 1602 in FIG. 16 is entered. Further, by the processing 314, the G0 term, that is, the expression 9

【0154】[0154]

【数10】 G0(C+1,M,1,0,C,-,M(C),-,-) …(数10) を、書換え待ちリストBに追加する。[Equation 10] G0 (C + 1, M, 1,0, C,-, M (C),-,-) (Equation 10) is added to the rewriting waiting list B.

【0155】処理316により、書換え待ちリストの各
G0項、即ち数10について処理318〜322が施さ
れる。
By the process 316, the processes 318 to 322 are performed for each G0 item of the rewriting waiting list, that is, the expression 10.

【0156】処理318では、「“GN(C*,M*)
=この項”のC*,M*をC,Mで置換した式」すなわ
ち、下記の数11がTEMPに代入される。なお、ここ
でC*はCでありM*はMである。
In the process 318, "" GN (C *, M *)
= Expression in which C * and M * of this term are replaced with C and M, that is, the following Expression 11 is substituted into TEMP. Here, C * is C and M * is M.

【0157】[0157]

【数11】 G1(C,M)=G0(C+1,M,1,0,C,-,M(C),-,-) …(数11) 処理320で、TEMPの右辺、即ち数11の右辺が、
書換え前関数FIFOの右辺または書換え後関数FIF
Oの中辺に既にあるか否かが調べられる。出現していな
いので、書換え前関数FIFOに追加される。
[Equation 11] G1 (C, M) = G0 (C + 1, M, 1,0, C,-, M (C),-,-) (Equation 11) In process 320, the right side of TEMP, that is, The right side of equation 11 is
Right side of pre-rewrite function FIFO or post-rewrite function FIFO
It is checked whether it is already on the middle side of O. Since it has not appeared, it is added to the pre-rewriting function FIFO.

【0158】書換え待ちリストにはもはや関数がないの
で、処理316〜322の処理は終了し、処理304に
戻り、書換え前関数FIFOに追加されているG0項、
即ち数11の右辺について処理306〜322が施され
る。その結果、書換え後関数FIFOには新たに図16
の式1604が入り、書換え前関数FIFOには、
Since there are no more functions in the rewriting waiting list, the processing of the processings 316 to 322 ends, the processing returns to the processing 304, and the G0 term added to the pre-rewriting function FIFO,
That is, the processes 306 to 322 are performed on the right side of Expression 11. As a result, the rewritten function FIFO is newly added to FIG.
Expression 1604 of is entered, and the pre-rewriting function FIFO is

【0159】[0159]

【数12】 G2(C,M)=G0(C+2,M,1,1,C+1,C,M(C+1),M(C),MM(C)+1) …(数12) が入る。この書換え前関数について処理306〜322
が施される。
G2 (C, M) = G0 (C + 2, M, 1,1, C + 1, C, M (C + 1), M (C), MM (C) +1) ( Number 12) enters. Processing 306 to 322 for this pre-rewriting function
Is applied.

【0160】まず処理306で、書換え前関数FIFO
の数12が書換え待ちリストAに加えられ、次に処理3
08で数12を動作記述1404を適用して状態を列挙
する。列挙の結果は下記の数13となる。ここで、mは
M[MM(C)+1/M(C)]の略記である。
First, in step 306, the pre-rewrite function FIFO is
Is added to the rewriting waiting list A, and then the process 3 is performed.
At 08, the state is enumerated by applying the expression 12 to the behavioral description 1404. The enumeration result is the following Expression 13. Here, m is an abbreviation for M [MM (C) + 1 / M (C)].

【0161】[0161]

【数13】 G2(C,M)=G0(C+2,M,1,1,C+1,C,M(C+1),M(C),MM(C)+1)= if M(C)=0 then <C+1,M> else if M(C)=M(C+1) or M(C)=C+1 then G0(C+1,m,0,0,C+2,C+1,M(C+2),M(C+1),M(C+1)+1) else if M(C)=C+2 then G0(C+2,m,0,1,C+2,C+1,M(C+2),M(C+1),M(C+1)+1) else G0(C+3,m,1,1,C+2,C+1,M(C+2),M(C+1),M(C+1)+1). …(数13) 処理310では、メモリ公理による書換え222(図
4)を行う。まず、処理402では、記述の右辺のif
−then節を探し出して、各if−then節に処理
404以降の処理を施す。数13の記述では、右辺には
四つのif−then節(最後のelse節を含む)があ
る。
[Equation 13] G2 (C, M) = G0 (C + 2, M, 1,1, C + 1, C, M (C + 1), M (C), MM (C) +1) = if M (C) = 0 then <C + 1, M> else if M (C) = M (C + 1) or M (C) = C + 1 then G0 (C + 1, m, 0,0, C + 2, C + 1, M (C + 2), M (C + 1), M (C + 1) +1) else if M (C) = C + 2 then G0 (C + 2, m, 0 , 1, C + 2, C + 1, M (C + 2), M (C + 1), M (C + 1) +1) else G0 (C + 3, m, 1,1, C + 2 , C + 1, M (C + 2), M (C + 1), M (C + 1) +1) .. (Equation 13) In process 310, rewriting 222 by the memory axiom (FIG. 4) is performed. First, in process 402, if on the right side of the description
The -then clause is searched for, and the processing of the processing 404 and the subsequent steps is performed on each if-then clause. In the description of Expression 13, there are four if-then clauses (including the last else clause) on the right side.

【0162】処理404では、M[c/s]とM(f)
の形の要素が含まれているか否かを調べる。第1のif
−then節にはM[c/s]の形の式は含まれないの
で、402に戻って次の第2のif−then節が処理
される。
In processing 404, M [c / s] and M (f)
Check whether the element of the form is included. First if
Since the -then clause does not include an expression of the form M [c / s], returning to 402, the next second if-then clause is processed.

【0163】再び処理404では、M[c/s]とM
(f)の形の要素が含まれているか否かを調べる。第2
のif−then節には、M[c/s]としてM[MM
(C)+1/M(C)]が含まれ、M(f)としてM
(C+2),M(C+1),MM(C+1)が含まれて
いる。
In the processing 404 again, M [c / s] and M
It is checked whether or not the element of the form (f) is included. Second
In the if-then clause of M [MM / MM] as M [MM / MM]
(C) + 1 / M (C)] is included and M (f) is M
(C + 2), M (C + 1), MM (C + 1) are included.

【0164】処理408では、s≠fが真かが調べられ
る。第2のif−then節は、第1のif条件が偽で
第2のif条件が真の時に実行されるので、その時にs
≠fが真かが調べられる。したがって、M(C)=0が
偽かつM(C)=C+1またはM(C)=M(C+1)
が真の時にまずM(C)≠C+2が真かが調べられる。
もしM(C+1)=C+2だとすると、M(C)=C+
2となり必ずしもM(C)≠C+2とはいえずM(C)
≠C+2は偽であることがわかる。処理は406に戻
る。今度はM(C)=0が偽かつM(C)=C+1また
はM(C)=M(C+1)が真の時にM(C)≠C+1
が真かが調べられるが、明らかにM(C)≠C+1は偽
でり、処理はまた406に戻る。今度はM(C)=0が
偽かつM(C)=C+1またはM(C)=M(C+1)
が真の時にM(C)≠M(C+1)が真かが調べられる
が、これも明らかに偽であり、結果、第2のif−th
en節に関してはなんらメモリ公理の適用を行うことな
く、402に戻って次の第3,第4のif−then節
に関して処理を行う。
In process 408, it is checked whether s ≠ f is true. Since the second if-then clause is executed when the first if condition is false and the second if condition is true, then s
Check if f is true. Therefore, M (C) = 0 is false and M (C) = C + 1 or M (C) = M (C + 1)
When is true, it is first checked whether M (C) ≠ C + 2 is true.
If M (C + 1) = C + 2, then M (C) = C +
2 and it cannot be said that M (C) ≠ C + 2 and M (C)
It can be seen that ≠ C + 2 is false. The process returns to 406. This time, when M (C) = 0 is false and M (C) = C + 1 or M (C) = M (C + 1) is true, M (C) ≠ C + 1
Is true, but obviously M (C) ≠ C + 1 is false, and the process returns to 406. This time M (C) = 0 is false and M (C) = C + 1 or M (C) = M (C + 1)
Is true, it is checked whether M (C) ≠ M (C + 1) is true, but this is also obviously false, and as a result, the second if-th
The memory axiom is not applied to the en clause, and the process returns to 402 and the processing is performed on the next third and fourth if-then clauses.

【0165】処理404では、M[c/s]とM(f)
の形の要素が含まれているか否かを調べる。第3のif
−then節にもM[c/s]としてM[MM(C)+
1/M(C)]が含まれ、M(f)としてM(C+
2),M(C+1),MM(C+1)が含まれている。
第3のif−then節は、第1と第2のif条件が偽
で第3のif条件が真の時に実行されるので、第1と第
2のif条件が偽で第3のif条件が真の時にs≠fが
真かが調べられる。したがって、M(C)=0,M
(C)=M(C+1),M(C)=C+1が偽かつM
(C)=C+2が真の時にM(C)≠C+2またはM
(C)≠C+1またはM(C)≠M(C+1)が調べら
れる。M(C)=C+2が真なのでM(C)≠C+2は
偽であるが、M(C)=C+1,M(C)=M(C+1)
が偽なのでM(C)≠C+1とM(C)≠M(C+1)
は真である。処理は410に進み、M(C+1)はm
(C+1)にMM(C+1)はmM(C+1)に置換さ
れる。さらにmM(C+1)のM(C+1)はm(C+
1)に置換されmm(C+1)となる。
In process 404, M [c / s] and M (f)
Check whether the element of the form is included. Third if
Also in the -then clause, M [MM (C) + as M [c / s]
1 / M (C)] is included, and M (C +
2), M (C + 1), MM (C + 1) are included.
The third if-then clause is executed when the first and second if conditions are false and the third if condition is true, so that the first and second if conditions are false and the third if condition is Is true, it is checked whether s ≠ f is true. Therefore, M (C) = 0, M
(C) = M (C + 1), M (C) = C + 1 is false and M
When (C) = C + 2 is true, M (C) ≠ C + 2 or M
(C) ≠ C + 1 or M (C) ≠ M (C + 1) is examined. Since M (C) = C + 2 is true, M (C) ≠ C + 2 is false, but M (C) = C + 1, M (C) = M (C + 1).
Is false, M (C) ≠ C + 1 and M (C) ≠ M (C + 1)
Is true. The process proceeds to 410, where M (C + 1) is m
In (C + 1), MM (C + 1) is replaced with mM (C + 1). Furthermore, M (C + 1) of mM (C + 1) is m (C +
It is replaced with 1) to be mm (C + 1).

【0166】第4のif−then節にもM[c/s]
としてM[MM(C)+1/M(C)]が含まれ、M(f)
としてM(C+2),M(C+1),MM(C+1)が
含まれている。第4のif−then節は、第1と第2
と第3のif条件が偽の時に実行されるので、第1と第
2と第3のif条件が偽の時にs≠fが真かが調べられ
る。したがって、M(C)=0,M(C)=M(C+
1),M(C)=C+1,M(C)=C+2の全てが偽
の時にM(C)≠C+2またはM(C)≠C+1または
M(C)≠M(C+1)が調べられる。上記条件よりM
(C)≠C+2とM(C)≠C+1とM(C)≠M(C
+1)は全て真である。処理は410でM(C+2)は
m(C+2)に、M(C+1)はm(C+1)に、MM
(C+1)はmm(C+1)にそれぞれ置換される。
In the fourth if-then clause, M [c / s] is also included.
As M [MM (C) + 1 / M (C)] is included as M (f)
, M (C + 2), M (C + 1), MM (C + 1) are included. The fourth if-then clause is the first and second
And the third if condition are false, it is checked whether s ≠ f is true when the first, second and third if conditions are false. Therefore, M (C) = 0, M (C) = M (C +
1), M (C) = C + 1, and M (C) = C + 2 are all false, M (C) ≠ C + 2 or M (C) ≠ C + 1 or M (C) ≠ M (C + 1) is checked. M from the above conditions
(C) ≠ C + 2 and M (C) ≠ C + 1 and M (C) ≠ M (C
+1) are all true. The process is 410, M (C + 2) is changed to m (C + 2), M (C + 1) is changed to m (C + 1), MM
(C + 1) is replaced with mm (C + 1).

【0167】以上の処理402から処理411により得
られた式は、処理312により書換え後FIFO(書換
え後Gデータ232)に追加される(図16の式160
6)。
The expressions obtained by the above processing 402 to processing 411 are added to the FIFO after rewriting (G data 232 after rewriting) by processing 312 (equation 160 in FIG. 16).
6).

【0168】また、処理314によりG0項すなわち式
1506の右辺の
Further, by the processing 314, the G0 term, that is, the right side of the equation 1506,

【0169】[0169]

【数14】 G0(C+1,m,0,0,C+2,C+1,M(C+2),M(C+1),MM(C+1)+1) …(数14)[Equation 14] G0 (C + 1, m, 0,0, C + 2, C + 1, M (C + 2), M (C + 1), MM (C + 1) +1) (Number 14)

【0170】[0170]

【数15】 G0(C+2,m,0,1,C+2,C+1,M(C+2),m(C+1),mm(C+1)+1) …(数15)[Equation 15] G0 (C + 2, m, 0,1, C + 2, C + 1, M (C + 2), m (C + 1), mm (C + 1) +1) (Number 15)

【0171】[0171]

【数16】 G0(C+3,m,1,1,C+2,C+1,m(C+2),m(C+1),mm(C+1)+1) …(数16) は、書換え待ちリストBに追加される。[Equation 16] G0 (C + 3, m, 1,1, C + 2, C + 1, m (C + 2), m (C + 1), mm (C + 1) +1) (Number 16) is added to the rewriting waiting list B.

【0172】処理316により、書換え待ちリストBの
最初のG0項、すなわち即ち数14について処理318
〜322が施される。
By the process 316, a process 318 is performed for the first G0 item of the rewriting waiting list B, that is, the equation (14).
~ 322 are applied.

【0173】処理318では、「“GN(C*,M*)
=この項”のC*,M*をC,Mで置換した式」すなわ
ち、下記の数17がTEMPに代入される。なお、ここ
でC*はCでありM*はMである。mはM[MM(C)
+1/M(C)]であって、項Cを含んでいるので、C
*はC+1でなくCである。
In the process 318, "" GN (C *, M *)
= Equation "C *, M * of this term is replaced by C, M", that is, the following Expression 17 is substituted into TEMP. Here, C * is C and M * is M. m is M [MM (C)
+ 1 / M (C)] and includes the term C, so C
* Is C, not C + 1.

【0174】[0174]

【数17】 G3(C,M)=G0(C+1,m,0,0,C+2,C+1,M(C+2),M(C+1),MM(C+1)+1) …(数17) 処理320で、TEMPの右辺、すなわち数17の右辺
が、書換え前関数FIFOの右辺または書換え後関数FIF
Oの中辺に既にあるか否かが調べられる。書換え前関数
FIFOはまだ空なので、書換え後関数FIFOが調べ
られる。まず、書換え後関数FIFOの式1502の中
辺と数17の右辺の関係を見る。式1502の中辺の第5〜
9引数はドントケアであり任意でかまわないので、数1
7の右辺を下記の数18のように変形してみる。
G3 (C, M) = G0 (C + 1, m, 0,0, C + 2, C + 1, M (C + 2), M (C + 1), MM (C + 1 ) +1) (Equation 17) In process 320, the right side of TEMP, that is, the right side of Equation 17, is the right side of the pre-rewriting function FIFO or the post-rewriting function FIF.
It is checked whether it is already on the middle side of O. Since the pre-rewrite function FIFO is still empty, the post-rewrite function FIFO is examined. First, the relationship between the middle side of the equation 1502 of the post-rewriting function FIFO and the right side of Expression 17 will be examined. The fifth side of the middle side of Equation 1502
Since the 9 arguments are don't cares and may be arbitrary, the formula 1
Try to transform the right side of 7 as shown in the following Eq.

【0175】[0175]

【数18】 G0(C+1,m,0,0,-,-,-,-,-) …(数18) 数18を処理318と同様の処理で正規化すると、C*
はC+1、M*はmだから、
[Equation 18] G0 (C + 1, m, 0,0,-,-,-,-,-) (Equation 18) When Equation 18 is normalized by the same processing as the processing 318, C *
Is C + 1 and M * is m,

【0176】[0176]

【数19】 G0(C,M,0,0,-,-,-,-,-) …(数19) となり、式1502の中辺と等しいので数18は出現済
みとみなせ、処理316に戻り次のG0項数15に処理
が進む。
[Equation 19] G0 (C, M, 0,0,-,-,-,-,-) becomes (Equation 19), and since it is equal to the middle side of the expression 1502, it can be considered that Equation 18 has already occurred, and the process 316 is performed. Return The process proceeds to the next G0 term number 15.

【0177】処理318では、「“GN(C*,M*)
=この項”のC*,M*をC,Mで置換した式」すなわ
ち、下記の数20がTEMPに代入される。なお、ここ
でC*はCであり、M*はMである。
In the process 318, "" GN (C *, M *)
= Equation "C *, M * of this term is replaced by C, M", that is, the following Expression 20 is substituted into TEMP. Here, C * is C and M * is M.

【0178】[0178]

【数20】 G3(C,M)=G0(C+2,m,0,1,C+2,C+1,M(C+2),m(C+1),mm(C+1)+1) …(数20) 処理320で、TEMPの右辺、すなわち数20の右辺
が、書換え前関数FIFOの右辺または書換え後関数FIF
Oの中辺に既にあるか否かが調べられる。書換え前関数
FIFOはまだ空であるし、書換え後関数FIFOの中
辺にも出現していないので処理322に進む。
[Equation 20] G3 (C, M) = G0 (C + 2, m, 0,1, C + 2, C + 1, M (C + 2), m (C + 1), mm (C + 1 ) +1) (Equation 20) In the process 320, the right side of TEMP, that is, the right side of Equation 20, is the right side of the pre-rewriting function FIFO or the post-rewriting function FIF.
It is checked whether it is already on the middle side of O. The pre-rewrite function FIFO is still empty, and since it has not appeared in the middle side of the post-rewrite function FIFO, the process proceeds to step 322.

【0179】処理322では、TEMPを書換え前関数
FIFOに追加し、処理316に戻り次のG0項数16
を処理する。
In process 322, TEMP is added to the pre-rewriting function FIFO, and the process returns to process 316, and the next G0 term number 16
To process.

【0180】処理318では、C*はC+1であり、M
*はmであるので、TEMPには以下の数21が代入さ
れる。
In the process 318, C * is C + 1 and M
Since * is m, the following equation 21 is substituted into TEMP.

【0181】[0181]

【数21】 G4(C,M)=G0(C+2,M,1,1,C+1,C,M(C+2),M(C),MM(C)+1) …(数21) 処理320では、TEMPの右辺、すなわち数21の右
辺が、書換え前関数FIFOの右辺または書換え後関数
FIFOの中辺に既にあるか否かが調べられるが、これ
は書換え後関数FIFOの中辺に出現済みであるので処
理316に戻る。このとき、書換え待ちリストBはもは
や空なので、処理304に戻る。
(21) G4 (C, M) = G0 (C + 2, M, 1,1, C + 1, C, M (C + 2), M (C), MM (C) +1) ( (Equation 21) In the process 320, it is checked whether or not the right side of TEMP, that is, the right side of Equation 21 is already on the right side of the pre-rewrite function FIFO or the middle side of the post-rewrite function FIFO. Since it has already appeared on the middle side, the process returns to the process 316. At this time, since the rewriting waiting list B is no longer empty, the process returns to step 304.

【0182】今、書換え前関数FIFOには、数20が
登録されている。上記と同様に処理306〜処理322
を数20に施すと、書換え前関数FIFOは空となり、
動作記述によるGの状態列挙220が終了する。
Now, the number 20 is registered in the pre-rewriting function FIFO. Processing 306 to processing 322 similar to the above
Applying to Equation 20, the pre-rewrite function FIFO becomes empty,
The G state enumeration 220 based on the behavioral description ends.

【0183】終了時点で、書換え後関数FIFOには、
232(図16)が格納されており、これが次の拡張再
帰帰納法の適用で使用される。
At the end, the post-rewrite function FIFO has
232 (FIG. 16) is stored and is used in the next application of extended recursive induction.

【0184】(7−2)抽象化 図2の抽象化224の手順について、図5を用いて説明
する。
(7-2) Abstraction The procedure of abstraction 224 in FIG. 2 will be described with reference to FIG.

【0185】まず、処理502では、まず書換え後関数
FIFOの各関数の右辺の各項を、書換え後関数FIF
Oの中の関数の“左辺=中辺”で置換する。この置換に
より、プログラマブル・レジスタと非プログラマブル・
レジスタの値のつくる状態を表わすG0項が、処理31
8で定義されたプログラマブル・レジスタ値のみのつく
る状態を表わすG1,G2,...項に置換される。こ
の時、置換後のG1,G2,...項の実引数はプログ
ラマブル・レジスタ値に施された変換を表わす。次に、
書換え後関数FIFOの各関数の中辺を削除して、“左
辺=右辺”だけにする。
First, in the process 502, each term on the right side of each function of the post-rewrite function FIFO is set to the post-rewrite function FIFO.
Replace with "left side = middle side" of the function in O. This replacement allows programmable registers and non-programmable
The G0 term representing the state of the register value is processed 31
.., G1, G2, ... Representing states created by programmable register values only. . . Is replaced by a term. At this time, G1, G2 ,. . . The actual argument of the term represents the conversion applied to the programmable register value. next,
After rewriting, the middle side of each function of the function FIFO is deleted to leave only “left side = right side”.

【0186】書換え後Gデータ232(図16)に対し
て、抽象化を行った結果を234(図17)に示す。図
17では、中辺の各項が削除され、プログラマブル・レ
ジスタ値のみのつくる状態を表わす項のみで記述されて
いることがわかる。
The result of abstraction of the rewritten G data 232 (FIG. 16) is shown in 234 (FIG. 17). In FIG. 17, it can be seen that the terms on the middle side are deleted and only the terms representing the states created by the programmable register values are described.

【0187】(7−3)拡張再帰帰納法の適用 次に、図2の拡張再帰帰納法の適用226の手順につい
て、図6を用いて説明する。
(7-3) Application of Extended Recursive Induction Method Next, the procedure of application 226 of the extended recursive induction method of FIG. 2 will be described with reference to FIG.

【0188】まず、前処理602,604が施される。
処理602では、まず書換え後関数FIFOの各関数の
右辺の各G0項を、書換え後関数FIFOの中の関数の
“左辺=中辺”で置換する。この置換により、プログラ
マブル・レジスタと非プログラマブル・レジスタの値の
つくる状態を表わすG0項が、処理318で定義された
プログラマブル・レジスタ値のみのつくる状態を表わす
G1,G2,...項に置換される。この時、置換後の
G1,G2,...項の実引数はプログラマブル・レジ
スタ値に施された変換を表わす。次に、書換え後関数F
IFOの各関数の中辺を削除して、“左辺=右辺”だけ
にする。処理604の単純等式の削除では、処理602
の結果に単純等式f(x)=g(x)があれば、gのすべて
の出現をfで置換してf(x)=f(x)となったものを削
除する。処理602,604を施した結果は、拡張再帰
帰納法適用前処理後Gデータ606として保存する。図
17の抽象化後Gデータ234に処理602,604を
施した結果は、図18の様になる。
First, pretreatments 602 and 604 are performed.
In the process 602, first, each G0 term on the right side of each function of the post-rewrite function FIFO is replaced with “left side = middle side” of the function in the post-rewrite function FIFO. With this replacement, the G0 term representing the states of the programmable register and the non-programmable register producing the values G1, G2 ,. . . Is replaced by a term. At this time, G1, G2 ,. . . The actual argument of the term represents the conversion applied to the programmable register value. Next, the rewritten function F
The middle side of each function of the IFO is deleted so that only “left side = right side”. In the deletion of the simple equation in the process 604, the process 602 is executed.
If the result is a simple equality f (x) = g (x), then replace all occurrences of g with f and delete those for which f (x) = f (x). The result of performing the processes 602 and 604 is saved as the G data 606 after the preprocessing for applying the extended recursive induction method. The result of applying the processings 602 and 604 to the post-abstraction G data 234 is as shown in FIG.

【0189】処理608〜616は、拡張再帰帰納法の
適用条件の確認である。
Processes 608 to 616 are confirmation of application conditions of the extended recursive induction.

【0190】まず処理608では、拡張再帰帰納法適用
前処理後FIFO(606)の各関数について、処理6
10〜616を施す。処理610では、この関数の各i
f−then節について処理612〜616を施す。処
理612では、このif節と等価なif節が外部仕様デ
ータのif節にあるか否かを調べる。等価関係があるか
否かは、公知の技術、すなわち定理証明プロブラムや組
合せ論理間の等価性の形式検証技術を用いれば調べられ
る。あれば、処理614に進み、そうでないときは処理
622に進む。
First, in processing 608, processing 6 is performed for each function of the FIFO (606) after pre-application of extended recursive induction.
Apply 10 to 616. In process 610, each i of this function is
Processes 612 to 616 are performed on the f-then clause. In process 612, it is checked whether or not an if clause equivalent to this if clause is included in the if clause of the external specification data. Whether or not there is an equivalence relation can be checked by using a known technique, that is, a theorem proof program or a formal verification technique of equivalence between combinatorial logics. If so, the process proceeds to step 614, and if not, the process proceeds to step 622.

【0191】処理614では、対応するthen節が再
帰関数名以外は全く等しいか否かを調べる。等しい場合
には、処理610に戻り関数の次のif−then節に
ついて処理612〜616を繰り返す。等しくない場合
は、処理616に進む。処理616では、then節の
関数が、関数の引数を用いて書換えた新たな外部仕様を
満足するか否かを調べる。満足しない場合は、処理62
0に進む。
In process 614, it is checked whether the corresponding then clauses are exactly the same except for the recursive function name. If they are equal, the process returns to step 610, and steps 612 to 616 are repeated for the next if-then clause of the function. If they are not equal, the process proceeds to step 616. In process 616, it is checked whether or not the function in the then clause satisfies the new external specification rewritten using the argument of the function. If not satisfied, process 62
Go to 0.

【0192】前処理後関数FIFO(606)の全ての
関数の、全てのthen節が処理614や処理616で
外部仕様と等価であれば証明成功であり、検証結果とし
て証明成功と印字して全ての処理を終える(228)。
If all the then clauses of all the functions of the pre-processing and post-function FIFO (606) are equivalent to the external specifications in the processing 614 and the processing 616, the proof is successful and the proof is printed as the verification result. (228) is completed.

【0193】次に、図7を用いて処理616を説明す
る。処理616は、特開平7−65046号や特開平6−21506
3 号に示された再帰帰納法の適用方法にはない、本検証
方法固有の処理である。
Next, the processing 616 will be described with reference to FIG. The processing 616 is performed in JP-A-7-65046 and JP-A-6-21506.
This process is unique to this verification method, which is not found in the recursive induction method shown in No. 3.

【0194】まず、処理702では、現在検査中の関数
の右辺のG0項GNを、前処理後関数FIFO(60
6)から削除する。GNと対応する外部仕様データのt
hen節の関数との等価性は、処理616で調べるの
で、処理608〜616で再び検査されることを防ぐた
めである。次に、処理704では、外部仕様関数Fの仮
引数ベクタからFのthen節の実引数ベクタへの置換
をAとする。処理706では、上記仮引数ベクタから、
GNの実引数ベクタへの置換をBとする。処理708で
は、Bの逆置換(即ち、GNの実引数ベクタからFの仮
引数への置換)をB′として、外部仕様関数Fに出現す
る仮引数ベクタの各要素を合成置換AB′(仮引数ベク
タの要素をまず置換Aで置換し、その後に置換Bで再び
置換すること)で置換したものをF′とする。
First, in process 702, the G0 term GN on the right side of the function currently inspected is converted into the preprocessed function FIFO (60
Delete from 6). External specification data t corresponding to GN
Since the equivalence with the function of the hen clause is checked in the processing 616, it is for preventing it from being checked again in the processing 608 to 616. Next, in process 704, the replacement of the dummy argument vector of the external specification function F with the actual argument vector of the then clause of F is set to A. In process 706, from the above dummy argument vector,
Let B be the replacement of GN with an actual argument vector. In the process 708, each element of the dummy argument vector appearing in the external specification function F is combined and replaced by a composite substitution AB ′ (temporary replacement), where B ′ is the inverse replacement of B (that is, replacement of the actual argument vector of GN with the dummy argument of F). The elements of the argument vector are first replaced by the replacement A, and then replaced again by the replacement B), and are replaced by F '.

【0195】処理710では、上記F′を用いて関数G
Nの右辺のif−then節について処理712,71
4,616を施す。処理714では、処理612と同様
にこのif節と等価なif節が外部仕様データF′のi
f節にあるか否かを調べる。あれば、処理714に進
む。なければ、GNとF′は等価でない、即ちGNは
F′を「満足しない」として処理616全体は終了す
る。
In process 710, the function G is calculated by using F '.
Process if the if-then clause on the right side of N 712, 71
4,616 are applied. In process 714, as in process 612, the if clause equivalent to this if clause is i of the external specification data F ′.
Check if it is in section f. If there is, it proceeds to processing 714. Otherwise, GN and F'are not equivalent, that is, GN "not satisfies"F'and the entire process 616 ends.

【0196】処理714では、処理614と同様に対応
するthen節が再帰関数名以外は全く等しいか否かを
調べる。等しい場合には、処理710に戻り関数の次の
if−then節について処理712,714,616
を繰り返す。等しくない場合については、このthen
節とF′の対応するthen節について、処理616を
再帰的に適用する。このthen節がF′を満足すれ
ば、処理710に戻り関数の次のif−then節につ
いて処理712,714,616を繰り返す。満足しな
ければ、GNとF′は等価でない、即ちGNはF′を満
足しないとして処理616全体は終了する。
In process 714, similarly to process 614, it is checked whether the corresponding then clauses are exactly the same except for the recursive function name. If they are equal, the process returns to the process 710 and processes 712, 714 and 616 for the next if-then clause of the function.
repeat. If not equal to this then
The process 616 is applied recursively to the corresponding then clauses of the clause and F '. If the then clause satisfies F ′, the process returns to step 710 and the steps 712, 714 and 616 are repeated for the next if-then clause of the function. If not satisfied, GN and F ′ are not equivalent, that is, GN does not satisfy F ′, and the whole process 616 ends.

【0197】GNの全てのif−then節について、
全てF′と等価であれば、GNはFを「満足する」とし
て処理616全体は終了する。
For all if-then clauses of GN,
If all are equivalent to F ′, GN is “satisfied” with F, and the entire process 616 ends.

【0198】図9の外部仕様データ110と図18の拡
張再帰帰納法前処理後Gデータ606を上記の処理608
〜616で比較すると、まず、処理612によって式18
02の第1のif−then節のif条件と同一条件のも
のを式902の中から探すと、式902の第1のif−
then節のif条件がM(C)=0で等しい。処理6
14でthen節を比較すると、両者とも<C+1,M
>で等しい。同様に、式1802の第2,第3,第4の
if−then節を処理612によって式902の中から
探すと、それぞれ式902の第2のif−then節の
if条件に等しいことが分かる。処理614でthen
節を比較すると、第2と第4のthen節は関数名を除
いて引数が全く等しいが、第3のthen節はG3
(C,M)で式902のF(C+1,m)とで引数が異
なっている。したがって、処理616に進みこれらが等
価であることを調べる。
The external specification data 110 of FIG. 9 and the extended recursive induction preprocessed G data 606 of FIG.
Comparing in steps 616 to 616, first, the processing 612 gives the expression 18
When a condition having the same condition as the if condition of the first if-then clause of 02 is searched from Formula 902, the first if- of Formula 902 is searched.
The if condition of the then clause is equal with M (C) = 0. Processing 6
Comparing the then clauses in 14, both <C + 1, M
> Is equal. Similarly, when the second, third, and fourth if-then clauses of the expression 1802 are searched from the expression 902 by the processing 612, it is found that they are equal to the if conditions of the second if-then clause of the expression 902, respectively. . In process 614
Comparing the clauses, the arguments of the second and fourth then clauses are exactly the same except for the function name, but the third then clause is G3.
In (C, M), the argument is different from that of F (C + 1, m) in Expression 902. Therefore, the processing proceeds to step 616, and it is checked whether these are equivalent.

【0199】まず処理704で、関数Fの仮引数ベクタ
(C,M)から実引数ベクタ(C+1,m)への置換を
Aとする。処理706では、関数G3の仮引数ベクタ
(C,M)から実引数ベクタ(C,M)への置換をBと
する。処理708では、置換AとBとを使って関数Fを
書換える。合成置換AB′は、逆置換B′が(C,M)か
ら(C,M)への置換なので、(C,M)から(C+
1,m)への置換である。合成置換AB′を使ってFを
書換えると図19の式1902となる。処理710で
は、関数G3(式1804)がF′(式1902)と等
価であることを調べる。この例の場合、式1804と式
1902とは、関数名を除いて全く一致するので、上記
の関数Gの第3のthen節も関数Fと等価であり、全
てのthen節はFと等価であることが分かる。
First, in process 704, the substitution of the function argument F from the dummy argument vector (C, M) to the actual argument vector (C + 1, m) is set to A. In process 706, B is the replacement of the parameter G3 of the function G3 with the parameter vector C, M. In process 708, the function F is rewritten using the substitutions A and B. In the synthetic substitution AB ′, since the reverse substitution B ′ is the substitution from (C, M) to (C, M), (C, M) to (C +
1, m). When F is rewritten using the synthetic substitution AB ′, the equation 1902 in FIG. 19 is obtained. In the process 710, it is checked that the function G3 (equation 1804) is equivalent to F ′ (equation 1902). In the case of this example, since the expression 1804 and the expression 1902 are completely the same except for the function name, the third then clause of the function G is also equivalent to the function F, and all then clauses are equivalent to F. I know there is.

【0200】以上により、拡張再帰帰納法により両者が
等価であることが判り、証明成功と印字して処理228
に進み、証明が完了してすべての処理が終わる。
From the above, it is found that the two are equivalent by the extended recursive induction method, and it is printed as proof success and processed 228.
Proceed to and the proof is completed and all processing is completed.

【0201】以上説明したように、then節の関数の
等価性を判断する際、関数の引数がかならずとも一致し
ていないような一般的な外部仕様データと動作記述設計
仕様データの検証が行え、検証のミスを防止することが
できる。
As described above, when judging the equivalence of the functions in the then clause, the general external specification data and the behavior description design specification data in which the function arguments do not necessarily match can be verified. Verification errors can be prevented.

【0202】(8) 変形例 (3)〜(7)では、(2−3)で述べた拡張再帰帰納
法の関数等価性判定方法を用いた実施例を示した。
(2)でも述べたように、関数等価性判定にはこれと異
なる方法がある。(8)では、これら変形例について述
べる。
(8) Modifications (3) to (7) show examples using the function equivalence determination method of the extended recursive induction described in (2-3).
As described in (2), there is a method different from this for functional equivalence determination. In (8), these modified examples will be described.

【0203】これらの変形例は、図2の検証プログラム
のフロー200で、拡張再帰帰納法の適用226(図
6)の中の第2拡張再帰帰納法の適用616が異なるだ
けである。以下、(7)での処理の途中経過を示す。
These modified examples are different from the flow 200 of the verification program in FIG. 2 only in the application 616 of the second extended recursive induction in the application 226 (FIG. 6) of the extended recursive induction. The following is the progress of the process in (7).

【0204】図9の外部仕様データ110と図18の拡
張再帰帰納法前処理後Gデータ606を上記の処理608
〜616で比較すると、式1802の第3のif−th
en節を処理612によって式902の中から探すと、
式902の第2のif−then節のif条件に等しいこと
が分かった。処理614でthen節を比較すると、第
3のthen節はG3(C,M)で式902のF(C+
1,m)とで引数が異なっている。従って、処理616
に進みこれらが等価であることを調べた。変形例1で
は、この等価性の判定を図20の第2拡張再帰帰納法2
000を用いて行い、変形例2では、この等価性の判定
を図22の第2拡張再帰帰納法2200を用いて行う。
The external specification data 110 of FIG. 9 and the extended recursive induction preprocessed G data 606 of FIG.
˜616, the third if-th of Expression 1802
When the en clause is searched from the expression 902 by the processing 612,
It was found to be equal to the if condition of the second if-then clause in equation 902. Comparing the then clauses in process 614, the third then clause is G3 (C, M) and F (C +
1, m) have different arguments. Therefore, process 616
Proceed to to find out that they are equivalent. In the first modification, this equivalence determination is performed by the second extended recursive induction 2 in FIG.
000, and in the second modification, this equivalence determination is performed using the second extended recursive induction 2200 of FIG.

【0205】(8−1)変形例1 変形例1では、(2−1)で説明した等価性判定方法を
用いるものである。処理フローを図20を用いて説明す
る。尚、処理702〜706,714は、616のものと
同一である。
(8-1) Modified Example 1 In modified example 1, the equivalence judgment method described in (2-1) is used. The processing flow will be described with reference to FIG. The processes 702 to 706 and 714 are the same as those of 616.

【0206】まず処理704で、関数Fの仮引数ベクタ
(C,M)から実引数ベクタ(C+1,m)への置換を
Aとする。処理706では、関数G3の仮引数ベクタ
(C,M)から実引数ベクタ(C,M)への置換をBと
する。処理2008では、置換AとBとを使って関数G
3を書換える。合成置換A′Bは、逆置換A′が(C+
1,m)から(C,M)への置換、置換Bがなので、
(C,M)から(C,M)への置換であるから(C+1,
m)から(C,M)への置換である。合成置換A′Bを
使ってG3を書換えると図21の式2102となる。処
理2010では、関数G3′(式2102)がF(式9
02)と等価であることを調べる。この例の場合、式2
102と式902とは、関数名を除いて全く一致するの
で、上記の関数Gの第3のthen節も関数Fと等価で
あり、全てのthen節はFと等価であることが分か
る。
First, in process 704, the substitution of the function argument F from the dummy argument vector (C, M) to the actual argument vector (C + 1, m) is A. In process 706, B is the replacement of the parameter G3 of the function G3 with the parameter vector C, M. In the process 2008, the function G is generated by using the substitutions A and B.
Rewrite 3. In the synthetic substitution A′B, the reverse substitution A ′ is (C +
Since the substitution from (1, m) to (C, M) and the substitution B are
Since (C, M) is replaced with (C, M), (C + 1,
Substitution of (m) to (C, M). When G3 is rewritten using the synthetic substitution A′B, the equation 2102 in FIG. 21 is obtained. In the process 2010, the function G3 ′ (equation 2102) is F (equation 9).
02) to be equivalent. In this example, Equation 2
Since 102 and the expression 902 are completely the same except for the function name, it can be seen that the third then clause of the above function G is also equivalent to the function F, and all the then clauses are equivalent to F.

【0207】(8−2)変形例2 変形例2では、(2−2)で説明した等価性判定方法を
用いるものである。処理フローを図22を用いて説明す
る。尚、処理702〜706,714は、616のものと
同一である。
(8-2) Modified Example 2 In modified example 2, the equivalence judgment method described in (2-2) is used. The processing flow will be described with reference to FIG. The processes 702 to 706 and 714 are the same as those of 616.

【0208】まず処理704で、関数Fの仮引数ベクタ
(C,M)から実引数ベクタ(C+1,m)への置換を
Aとする。処理706では、関数G3の仮引数ベクタ
(C,M)から実引数ベクタ(C,M)への置換をBと
する。処理2208では、置換AとBとを使って関数F
とG3を書換える。書換え結果は、それぞれ図23,図
24の式2302及び式2402となる。処理2210
では、関数G3′(式2402)がF′(式2302)
と等価であることを調べる。この例の場合も、式240
2と式2302とは、関数名を除いて全く一致するの
で、上記の関数Gの第3のthen節も関数Fと等価で
あり、全てのthen節はFと等価であることが分か
る。
First, in process 704, the substitution of the function argument F from the dummy argument vector (C, M) to the actual argument vector (C + 1, m) is A. In process 706, B is the replacement of the parameter G3 of the function G3 with the parameter vector C, M. In process 2208, the function F is calculated using the substitutions A and B.
And rewrite G3. The rewrite results are Equation 2302 and Equation 2402 in FIGS. 23 and 24, respectively. Process 2210
Then, the function G3 ′ (equation 2402) is F ′ (equation 2302)
Is equivalent to. Also in the case of this example, Equation 240
Since 2 and the expression 2302 are completely the same except for the function name, it can be seen that the third then clause of the above function G is also equivalent to the function F, and all the then clauses are equivalent to F.

【0209】[0209]

【発明の効果】本発明によれば、形式検証システムの拡
張再帰帰納法の適用で、then節の関数の引数が必ず
とも一致しない場合にも証明可能であり、一般的な外部
仕様と設計仕様の検証が可能である。
According to the present invention, by applying the extended recursive induction of the formal verification system, it is possible to prove even when the arguments of the function in the then clause do not always match, and general external specifications and design specifications Can be verified.

【図面の簡単な説明】[Brief description of drawings]

【図1】実施例の論理検証システムのブロック図。FIG. 1 is a block diagram of a logic verification system according to an embodiment.

【図2】検証プログラムの処理手順およびデータの流れ
を示すフローチャート。
FIG. 2 is a flowchart showing a processing procedure and data flow of a verification program.

【図3】動作記述によるG状態列挙の処理手順を示すフ
ローチャート。
FIG. 3 is a flowchart showing a processing procedure for listing G states by a behavioral description.

【図4】メモリ公理による動作記述の書換えの処理手順
を示すフローチャート。
FIG. 4 is a flowchart showing a processing procedure for rewriting a behavioral description based on a memory axiom.

【図5】抽象化の処理手順を示すフローチャート。FIG. 5 is a flowchart showing an abstraction processing procedure.

【図6】拡張再帰帰納法の適用の処理手順を示すフロー
チャート。
FIG. 6 is a flowchart showing a processing procedure for applying extended recursive induction.

【図7】第2拡張再帰帰納法の適用の処理手順を示すフ
ローチャート。
FIG. 7 is a flowchart showing a processing procedure for applying a second extended recursive induction method.

【図8】例題コンピュータの外部仕様の説明図。FIG. 8 is an explanatory diagram of external specifications of the example computer.

【図9】例題コンピュータの外部仕様データを示す説明
図。
FIG. 9 is an explanatory diagram showing external specification data of the example computer.

【図10】例題コンピュータの設計仕様の全体構造の説
明図。
FIG. 10 is an explanatory diagram of the overall structure of design specifications of an example computer.

【図11】ネットリスト要素文法の説明図。FIG. 11 is an explanatory diagram of a netlist element grammar.

【図12】ネットリスト文法の説明図。FIG. 12 is an explanatory diagram of a netlist grammar.

【図13】例題コンピュータの構造記述設計仕様データ
を示す説明図。
FIG. 13 is an explanatory diagram showing structure description design specification data of an example computer.

【図14】例題コンピュータのRT記述設計仕様データ
を示す説明図。
FIG. 14 is an explanatory diagram showing RT description design specification data of an example computer.

【図15】例題コンピュータの動作記述設計仕様データ
を示す説明図。
FIG. 15 is an explanatory diagram showing behavior description design specification data of the example computer.

【図16】書換え後Gデータを示す説明図。FIG. 16 is an explanatory diagram showing G data after rewriting.

【図17】抽象化後Gデータを示す説明図。FIG. 17 is an explanatory diagram showing post-abstraction G data.

【図18】拡張再帰帰納法適用前処理後Gデータを示す
説明図。
FIG. 18 is an explanatory diagram showing post-processing G data after application of extended recursive induction.

【図19】置換後の外部仕様Fデータを示す説明図。FIG. 19 is an explanatory diagram showing external specification F data after replacement.

【図20】変形例1における第2拡張再帰帰納法の適用
の処理手順を示すフローチャート。
FIG. 20 is a flowchart showing a processing procedure of application of a second extended recursive induction method in the modified example 1.

【図21】変形例1における置換後の設計仕様Gデータ
を示す説明図。
FIG. 21 is an explanatory view showing the design specification G data after replacement in the modified example 1.

【図22】変形例2における第2拡張再帰帰納法の適用
の処理手順を示すフローチャート。
FIG. 22 is a flowchart showing a processing procedure for applying a second extended recursive induction method in the second modification.

【図23】変形例2における置換後の外部仕様Fデータ
を示す説明図。
FIG. 23 is an explanatory diagram showing the external specification F data after replacement in Modification 2.

【図24】変形例2における置換後の設計仕様Gデータ
を示す説明図。
FIG. 24 is an explanatory diagram showing the design specification G data after replacement in the second modification.

【符号の説明】[Explanation of symbols]

100…検証システム、102…キーボード、104…
ディスプレイ、106…バス、108…2次記憶用ディ
スク、114…CPU、116…メモリ、110…外部仕
様データ、112…構造記述設計仕様データ、118…
入力プログラム、120…検証プログラム、122…R
T記述設計仕様データ、124…動作記述設計仕様デー
タ、126…検証結果。
100 ... Verification system, 102 ... Keyboard, 104 ...
Display, 106 ... Bus, 108 ... Secondary storage disk, 114 ... CPU, 116 ... Memory, 110 ... External specification data, 112 ... Structural description design specification data, 118 ...
Input program, 120 ... Verification program, 122 ... R
T description design specification data, 124 ... Behavior description design specification data, 126 ... Verification result.

フロントページの続き (72)発明者 大西 雄二 東京都小平市上水本町5丁目20番1号 日 立超エル・エス・アイ・エンジニアリング 株式会社内Front Page Continuation (72) Inventor Yuji Onishi 5-20-1 Kamimizuhonmachi, Kodaira-shi, Tokyo Inside Hitate Cho-LS Engineering Co., Ltd.

Claims (9)

【特許請求の範囲】[Claims] 【請求項1】外部から設定・参照可能な構成要素を用い
て記述した順序論理装置の外部仕様を表わす再帰関数の
形式の外部仕様データと、外部から設定・参照可能な構
成要素だけでなく外部から設定・参照不可能な構成要素
をも用いて記述した上記順序論理装置の実現仕様を表わ
す再帰関数の形式の実現仕様データとを入力し、上記実
現仕様データで表わされる実現仕様が上記外部仕様デー
タで表わされる外部仕様を満足しているか否かを、上記
実現仕様データを用いて、上記順序論理装置の動作を順
次模擬していくステップと、上記順序論理装置の動作の
模擬の過程において、上記実現仕様の記述に用いている
構成要素の状態が有効か否かを判別し、有効な状態の構
成要素に着目して上記順序論理装置の到達可能な異なる
状態を再帰関数系の形式で蓄積するステップと、拡張再
帰帰納法を用いて、上記外部仕様を表わす再帰関数と上
記蓄積された再帰関数系とが等価であることを証明する
ステップとを用いて検証する論理装置の検証方法におい
て、 上記証明ステップで、等価でない再帰関数を用いて、蓄
積された再帰関数系中の再帰関数を置換してできた新た
な再帰関数と外部仕様を表わす再帰関数とが等価である
ことを証明するステップを備えたことを特徴とする論理
装置の検証方法。
1. External specification data in the form of a recursive function that represents the external specifications of a sequential logic device described using externally settable / referenceable components, and external as well as externally settable / referenceable components. Input the realization specification data in the form of a recursive function that represents the realization specification of the sequential logic device described using the constituent elements that cannot be set / referenced from, and the realization specification represented by the realization specification data is the external specification. In the process of sequentially simulating the operation of the sequential logic device by using the realization specification data as to whether or not the external specifications represented by data are satisfied, and in the process of simulating the operation of the sequential logic device, It is determined whether or not the states of the constituent elements used in the description of the implementation specifications are valid, and focusing on the constituent elements in the valid states, the different reachable states of the sequential logic device are set to the recursive function system. Verification of a logical device to be verified using a step of accumulating in a form and a step of proving that the recursive function representing the external specification and the accumulated recursive function system are equivalent by using the extended recursive induction method. In the method, in the proof step, a new recursive function obtained by replacing the recursive function in the accumulated recursive function system with a non-equivalent recursive function is equivalent to the recursive function representing the external specification. A method for verifying a logic device, comprising a proof step.
【請求項2】外部から設定・参照可能な構成要素を用い
て記述した順序論理装置の外部仕様を表わす再帰関数の
形式の外部仕様データと、外部から設定・参照可能な構
成要素だけでなく外部から設定・参照不可能な構成要素
をも用いて記述した上記順序論理装置の実現仕様を表わ
す再帰関数の形式の実現仕様データとを入力し、上記実
現仕様データで表わされる実現仕様が上記外部仕様デー
タで表わされる外部仕様を満足しているか否かを、上記
実現仕様データを用いて、上記順序論理装置の動作を順
次模擬していくステップと、上記順序論理装置の動作の
模擬の過程において、上記実現仕様の記述に用いている
構成要素の状態が有効か否かを判別し、有効な状態の構
成要素に着目して上記順序論理装置の到達可能な異なる
状態を再帰関数系の形式で蓄積するステップと、拡張再
帰帰納法を用いて、上記外部仕様を表わす再帰関数と上
記蓄積された再帰関数系とが等価であることを証明する
ステップとを用いて検証する論理装置の検証方法におい
て、 上記証明ステップで、等価でない再帰関数を用いて、外
部仕様を表わす再帰関数を置換してできた新たな再帰関
数と、蓄積された再帰関数系中の再帰関数を置換してで
きた新たな再帰関数とが等価であることを証明するステ
ップを備えたことを特徴とする論理装置の検証方法。
2. External specification data in the form of a recursive function representing the external specifications of a sequential logic unit described by using externally settable / referenceable components, and not only externally settable / referenceable components Input the realization specification data in the form of a recursive function that represents the realization specification of the sequential logic device described using the constituent elements that cannot be set / referenced from, and the realization specification represented by the realization specification data is the external specification. In the process of sequentially simulating the operation of the sequential logic device by using the realization specification data as to whether or not the external specifications represented by data are satisfied, and in the process of simulating the operation of the sequential logic device, It is determined whether or not the states of the constituent elements used in the description of the implementation specifications are valid, and focusing on the constituent elements in the valid states, the different reachable states of the sequential logic device are set to the recursive function system. Verification of a logical device to be verified using a step of accumulating in a form and a step of proving that the recursive function representing the external specification and the accumulated recursive function system are equivalent by using the extended recursive induction method. In the method, in the above proof step, a non-equivalent recursive function is used to replace a new recursive function that replaces the recursive function representing the external specification with a recursive function in the accumulated recursive function system. A method for verifying a logic device, comprising the step of proving that a new recursive function is equivalent.
【請求項3】外部から設定・参照可能な構成要素を用い
て記述した順序論理装置の外部仕様を表わす再帰関数の
形式の外部仕様データと、外部から設定・参照可能な構
成要素だけでなく外部から設定・参照不可能な構成要素
をも用いて記述した上記順序論理装置の実現仕様を表わ
す再帰関数の形式の実現仕様データとを入力し、上記実
現仕様データで表わされる実現仕様が上記外部仕様デー
タで表わされる外部仕様を満足しているか否かを、上記
実現仕様データを用いて、上記順序論理装置の動作を順
次模擬していくステップと、上記順序論理装置の動作の
模擬の過程において、上記実現仕様の記述に用いている
構成要素の状態が有効か否かを判別し、有効な状態の構
成要素に着目して上記順序論理装置の到達可能な異なる
状態を再帰関数系の形式で蓄積するステップと、拡張再
帰帰納法を用いて、上記外部仕様を表わす再帰関数と上
記蓄積された再帰関数系とが等価であることを証明する
ステップとを用いて検証する論理装置の検証方法におい
て、 上記証明ステップで、等価でない再帰関数を用いて、外
部仕様を表わす再帰関数を置換してできた新たな再帰関
数と、再帰関数系中の上記再帰関数とが等価であること
を証明するステップを備えたことを特徴とする論理装置
の検証方法。
3. External specification data in the form of a recursive function representing the external specifications of a sequential logic device described by using externally settable / referenceable components, and external as well as externally settable / referenceable components. Input the realization specification data in the form of a recursive function that represents the realization specification of the sequential logic device described using the constituent elements that cannot be set / referenced from, and the realization specification represented by the realization specification data is the external specification. In the process of sequentially simulating the operation of the sequential logic device by using the realization specification data as to whether or not the external specifications represented by data are satisfied, and in the process of simulating the operation of the sequential logic device, It is determined whether or not the states of the constituent elements used in the description of the implementation specifications are valid, and focusing on the constituent elements in the valid states, the different reachable states of the sequential logic device are set to the recursive function system. Verification of a logical device to be verified using a step of accumulating in a form and a step of proving that the recursive function representing the external specification and the accumulated recursive function system are equivalent by using the extended recursive induction method. In the method, in the proof step, it is proved that the new recursive function obtained by replacing the recursive function representing the external specification with the non-equivalent recursive function and the recursive function in the recursive function system are equivalent. A method for verifying a logic device, comprising:
【請求項4】外部から設定・参照可能な構成要素を用い
て記述した順序論理装置の外部仕様を表わす再帰関数の
形式の外部仕様データと、外部から設定・参照可能な構
成要素だけでなく外部から設定・参照不可能な構成要素
をも用いて記述したパイプライン的に動作する複数ステ
ージを備えた上記順序論理装置の実現仕様を表わす再帰
関数の形式の実現仕様データとを入力し、上記実現仕様
データで表わされる実現仕様が上記外部仕様データで表
わされる外部仕様を満足しているか否かを、上記実現仕
様データを用いて、上記順序論理装置のパイプライン的
な動作を、各ステージを追って順次模擬していくステッ
プと、上記順序論理装置の動作の模擬の過程において、
パイプラインの各ステージに有効な状態の構成要素があ
るときはそのステージをビジーの状態とみなすととも
に、ステージがビジーでないときはそのステージに属す
る構成要素をドントケアとし、有効な状態の構成要素に
着目して上記順序論理装置の到達可能なすべての状態を
再帰関数系の形式で蓄積するステップと、拡張再帰帰納
法を用いて、上記外部仕様を表わす再帰関数と上記蓄積
された再帰関数系とが等価であることを証明するステッ
プとを用いて検証する論理装置の検証方法において、 上記証明ステップで、等価でない再帰関数を用いて、蓄
積された再帰関数系中の再帰関数を置換してできた新た
な再帰関数と外部仕様を表わす再帰関数とが等価である
ことを証明するステップを備えたことを特徴とする論理
装置の検証方法。
4. External specification data in the form of a recursive function representing the external specifications of a sequential logic device described using externally settable / referenceable components, and external as well as externally settable / referenceable components. From the implementation specification data in the form of a recursive function that represents the implementation specifications of the sequential logic device having multiple stages that operate in a pipeline and that are described using components that cannot be set / referenced. Whether or not the realization specifications represented by the specification data satisfy the external specifications represented by the external specification data is checked by using the realization specification data to perform a pipeline-like operation of the sequential logic device in each stage. In the step of sequentially simulating and in the process of simulating the operation of the sequential logic device,
When each stage of the pipeline has a component in a valid state, the stage is considered to be busy, and when the stage is not busy, the components belonging to that stage are don't cares, and the components in a valid state are focused. And a step of accumulating all reachable states of the sequential logic unit in the form of a recursive function system, and using the extended recursive induction method, the recursive function representing the external specification and the accumulated recursive function system are In the method of verifying a logic device using the step of proof of equivalence and the proof step, a non-equivalent recursive function is used to replace the recursive function in the accumulated recursive function system. A method of verifying a logic device, comprising the step of proving that a new recursive function and a recursive function representing an external specification are equivalent.
【請求項5】外部から設定・参照可能な構成要素を用い
て記述した順序論理装置の外部仕様を表わす再帰関数の
形式の外部仕様データと、外部から設定・参照可能な構
成要素だけでなく外部から設定・参照不可能な構成要素
をも用いて記述したパイプライン的に動作する複数ステ
ージを備えた上記順序論理装置の実現仕様を表わす再帰
関数の形式の実現仕様データとを入力し、上記実現仕様
データで表わされる実現仕様が上記外部仕様データで表
わされる外部仕様を満足しているか否かを、上記実現仕
様データを用いて、上記順序論理装置のパイプライン的
な動作を、各ステージを追って順次模擬していくステッ
プと、上記順序論理装置の動作の模擬の過程において、
パイプラインの各ステージに有効な状態の構成要素があ
るときはそのステージをビジーの状態とみなすととも
に、ステージがビジーでないときはそのステージに属す
る構成要素をドントケアとし、有効な状態の構成要素に
着目して上記順序論理装置の到達可能なすべての状態を
再帰関数系の形式で蓄積するステップと、拡張再帰帰納
法を用いて、上記外部仕様を表わす再帰関数と上記蓄積
された再帰関数系とが等価であることを証明するステッ
プとを用いて検証する論理装置の検証方法において、 上記ステップでの等価でない再帰関数を用いて、外部仕
様を表わす再帰関数を置換してできた新たな再帰関数
と、蓄積された再帰関数系中の再帰関数を置換してでき
た新たな再帰関数とが等価であることを証明するステッ
プを備えたことを特徴とする論理装置の検証方法。
5. External specification data in the form of a recursive function representing the external specifications of a sequential logic device described by using externally settable / referenceable components, and not only externally settable / referenceable components From the implementation specification data in the form of a recursive function that represents the implementation specifications of the sequential logic device having multiple stages that operate in a pipeline and that are described using components that cannot be set / referenced. Whether or not the realization specifications represented by the specification data satisfy the external specifications represented by the external specification data is checked by using the realization specification data to perform a pipeline-like operation of the sequential logic device in each stage. In the step of sequentially simulating and in the process of simulating the operation of the sequential logic device,
When each stage of the pipeline has a component in a valid state, the stage is considered to be busy, and when the stage is not busy, the components belonging to that stage are don't cares, and the components in a valid state are focused. And a step of accumulating all reachable states of the sequential logic unit in the form of a recursive function system, and using the extended recursive induction method, the recursive function representing the external specification and the accumulated recursive function system are In the method of verifying a logic device using the step of proving equality, a new recursive function obtained by replacing the recursive function representing the external specification with the non-equivalent recursive function in the above step , A step of proving that a new recursive function obtained by replacing the recursive function in the accumulated recursive function system is equivalent is provided. Method of verifying logical device.
【請求項6】外部から設定・参照可能な構成要素を用い
て記述した順序論理装置の外部仕様を表わす再帰関数の
形式の外部仕様データと、外部から設定・参照可能な構
成要素だけでなく外部から設定・参照不可能な構成要素
をも用いて記述したパイプライン的に動作する複数ステ
ージを備えた上記順序論理装置の実現仕様を表わす再帰
関数の形式の実現仕様データとを入力し、上記実現仕様
データで表わされる実現仕様が上記外部仕様データで表
わされる外部仕様を満足しているか否かを、上記実現仕
様データを用いて、上記順序論理装置のパイプライン的
な動作を、各ステージを追って順次模擬していくステッ
プと、上記順序論理装置の動作の模擬の過程において、
パイプラインの各ステージに有効な状態の構成要素があ
るときはそのステージをビジーの状態とみなすととも
に、ステージがビジーでないときはそのステージに属す
る構成要素をドントケアとし、有効な状態の構成要素に
着目して上記順序論理装置の到達可能なすべての状態を
再帰関数系の形式で蓄積するステップと、拡張再帰帰納
法を用いて、上記外部仕様を表わす再帰関数と上記蓄積
された再帰関数系とが等価であることを証明するステッ
プとを用いて検証する論理装置の検証方法において、 上記証明ステップで、等価でない再帰関数を用いて、外
部仕様を表わす再帰関数を置換してできた新たな再帰関
数と、再帰関数系中の上記再帰関数とが等価であること
を証明するステップを備えたことを特徴とする論理装置
の検証方法。
6. External specification data in the form of a recursive function representing the external specifications of a sequential logic device described by using externally settable / referenceable components, and not only externally settable / referenceable components From the implementation specification data in the form of a recursive function that represents the implementation specifications of the sequential logic device having multiple stages that operate in a pipeline and that are described using components that cannot be set / referenced. Whether or not the realization specifications represented by the specification data satisfy the external specifications represented by the external specification data is checked by using the realization specification data to perform a pipeline-like operation of the sequential logic device in each stage. In the step of sequentially simulating and in the process of simulating the operation of the sequential logic device,
When each stage of the pipeline has a component in a valid state, the stage is considered to be busy, and when the stage is not busy, the components belonging to that stage are don't cares, and the components in a valid state are focused. And a step of accumulating all reachable states of the sequential logic unit in the form of a recursive function system, and using the extended recursive induction method, the recursive function representing the external specification and the accumulated recursive function system are In the method of verifying a logic device using the steps of proof of equivalence, a new recursive function obtained by replacing a recursive function representing an external specification with a non-equivalent recursive function in the above proof step. And a step of proving that the above recursive function in the recursive function system is equivalent to each other, a method for verifying a logic device.
【請求項7】外部から設定・参照可能な外部記憶領域の
取り得る状態の集合である外部記憶領域状態集合Sから
Sへの再帰関数で表わされた上記順序論理装置の外部仕
様データと、やはり外部記憶領域状態集合SからSへの
再帰関数で表わされるが、外部から設定・参照不可能な
内部記憶領域の状態をも引数として構成される再帰関数
で表わされた上記順序論理装置の実現仕様データとを入
力し、上記実現仕様データで表わされる実現仕様が上記
外部仕様データで表わされる外部仕様を満足しているか
否かを、上記外部仕様データは、上記外部記憶領域の現
在の状態から次状態への変換を表わす再帰関数であっ
て、一つ以上の予め定めらた既知関数記号と、一つ以上
のif−then節とを含む関数で記述され、上記実現
仕様データは、上記外部記憶領域および内部記憶領域の
現在の状態から次状態への変換を表わす再帰関数であっ
て、一つ以上の予め定めらた既知関数記号と、一つ以上
のif−then節とを含む関数で記述されるととも
に、上記実現仕様データを用いて、上記外部記憶領域お
よび内部記憶領域の現在の状態から、その実現仕様デー
タに現われるif節のそれぞれが真のときの次状態にお
ける外部記憶領域および内部記憶領域の状態を、if節
毎にそれぞれ計算し、上記if節それぞれをif節に持
ち、上記if節それぞれが真のときの次状態における外
部記憶領域および内部記憶領域の状態それぞれをthe
n節として持つif−then節からなる、上記現在の
状態から上記各if節が真のときの次状態での外部記憶
領域および内部記憶領域の各状態への変換を表わす記述
として記憶する計算・記憶ステップと、上記外部記憶領
域および内部記憶領域の所定の初期状態から、上記計算
・記憶ステップを実行し、引き続き、計算された次状態
でのif節それぞれが真のときの外部記憶領域および内
部記憶領域の状態それぞれを次々に現在の状態として上
記計算・記憶ステップを反復して実行するステップと、
上記計算・記憶ステップで、if節それぞれが真のとき
の次状態での外部記憶領域および内部記憶領域の状態そ
れぞれを計算したときに、上記計算した値が既に計算・
記憶されているかを調べるために、上記計算された値を
表わす記述中に出現する変数ごとに、その変数を含む式
すべてに共通に出現する最大の式を求め、上記最大の式
それぞれを上記変数それぞれで置換して得られる、置換
前の記述が表わす外部記憶領域および内部記憶領域の状
態の集合と同一の集合を表わす記述が、上記計算・記憶
ステップで既に記憶された現在の状態の記述に含まれる
かを調べて、含まれるときには上記計算した状態以降の
状態に関する上記計算・記憶ステップを中止するステッ
プと、上記反復ステップがすべて中止されたときに、上
記現在の状態から各if節が真のときの次状態における
外部記憶領域および内部記憶領域の各状態への変換を表
わす上記記憶されたすべての記述から、外部記憶領域の
初期値を表わす上記変数に施された変換を求め、上記変
換と、上記変換に対応するif節が成立したときに、外
部仕様データが示す上記外部記憶領域群の現在の状態か
ら次状態への変換とが等しいかを照合して、検証を試み
るステップとを用いて検証する論理装置の検証方法にお
いて、 上記の検証ステップにおいて等しくない二つの変換を用
いて、上記変換の次状態に対応する実現仕様データ中の
現在の状態を置換してできる新たな現在の状態の各if
節について、if節が真のときの次状態における外部記
憶領域および内部記憶領域の各状態への変換を表わす上
記記憶されたすべての記述から、外部記憶領域の初期値
を表わす上記変数に施された変換を求め、上記変換と、
上記変換に対応するif節が成立したときに、外部仕様
データが示す上記外部記憶領域群の現在の状態から次状
態への変換とが等しいかを照合して、検証を試みるステ
ップと、等しくない場合には、上記ステップを再帰的に
試みるステップとを備えたことを特徴とする論理装置の
検証方法。
7. External specification data of the sequential logic device represented by a recursive function from an external storage area state set S to S, which is a set of states that can be set in an external storage area that can be set / referenced from the outside, Although it is also represented by a recursive function from the external storage area state set S to S, the above sequential logic device is represented by a recursive function configured by using the state of the internal storage area that cannot be set / referenced from the outside as an argument. Input the realization specification data and determine whether the realization specifications represented by the realization specification data satisfy the external specifications represented by the external specification data. The external specification data indicates the current state of the external storage area. To a next state, which is a recursive function, and is described by a function including one or more predetermined known function symbols and one or more if-then clauses. A recursive function representing a conversion from a current state of a partial storage area and an internal storage area to a next state, the function including one or more predetermined known function symbols and one or more if-then clauses And using the realization specification data, the external storage area in the next state when the if clause appearing in the realization specification data is true from the current state of the external storage area and the internal storage area, and The state of the internal storage area is calculated for each if clause, each of the if clauses is included in the if clause, and the states of the external storage area and the internal storage area in the next state when the if clauses are true are set to the
A calculation which is made up of an if-then clause having as an n clause and is stored as a description representing the conversion from the current state to each state of the external storage area and the internal storage area in the next state when each of the if clauses is true. The calculation / storage step is executed from the storage step and the predetermined initial states of the external storage area and the internal storage area, and subsequently, the external storage area and the internal storage when the if clauses in the calculated next state are true. A step of repeatedly executing the calculation / storing step with each state of the storage area as the current state one after another,
In the calculation / storing step, when the respective states of the external storage area and the internal storage area in the next state when the if clauses are true are calculated, the calculated values are already calculated.
In order to check whether or not it is stored, for each variable that appears in the description that represents the calculated value, find the maximum expression that commonly appears in all expressions that include that variable, and set each of the maximum expressions to the above variable. A description representing the same set of states of the external storage area and the internal storage area represented by the description before the replacement, which is obtained by replacing each of them, is added to the description of the current state already stored in the calculation / storing step. If it is included, and if it is included, the step of stopping the calculation / storing step for the state after the calculated state and the step of canceling all the iterative steps, and each if clause is true from the current state. From the above-mentioned stored descriptions representing the conversion of the external storage area and the internal storage area to the respective states in the next state at The conversion applied to the variable is obtained, and when the above conversion is equivalent to the conversion from the current state of the external storage area group indicated by the external specification data to the next state when the if clause is satisfied. In the method of verifying a logic device that uses the two unequal conversions in the above verification step, the current specification in the realization specification data corresponding to the next state of the above conversion is used. Each if of the new current state that can be created by replacing the state of
For each clause, the above-mentioned stored variables representing the conversion of the external storage area and the internal storage area to the respective states in the next state when the if clause is true are applied to the above-mentioned variable representing the initial value of the external storage area. And then convert it to
When the if clause corresponding to the conversion is satisfied, the step of verifying by comparing whether the conversion from the current state of the external storage area group indicated by the external specification data to the next state is equal, and the step of attempting verification are not equal. In this case, a method for verifying a logic device comprising the step of recursively trying the above steps.
【請求項8】外部から設定・参照可能な外部記憶領域の
取り得る状態の集合である外部記憶領域状態集合Sから
Sへの再帰関数で表わされた上記順序論理装置の外部仕
様データと、やはり外部記憶領域状態集合SからSへの
再帰関数で表わされるが、外部から設定・参照不可能な
内部記憶領域の状態をも引数として構成される再帰関数
で表わされた上記順序論理装置の実現仕様データとを入
力し、上記実現仕様データで表わされる実現仕様が上記
外部仕様データで表わされる外部仕様を満足しているか
否かを、上記外部仕様データは、上記外部記憶領域の現
在の状態から次状態への変換を表わす再帰関数であっ
て、一つ以上の予め定めらた既知関数記号と、一つ以上
のif−then節とを含む関数で記述され、上記実現
仕様データは、上記外部記憶領域および内部記憶領域の
現在の状態から次状態への変換を表わす再帰関数であっ
て、一つ以上の予め定めらた既知関数記号と、一つ以上
のif−then節とを含む関数で記述されるととも
に、上記実現仕様データを用いて、上記外部記憶領域お
よび内部記憶領域の現在の状態から、その実現仕様デー
タに現われるif節のそれぞれが真のときの次状態にお
ける外部記憶領域および内部記憶領域の状態を、if節
毎にそれぞれ計算し、上記if節それぞれをif節に持
ち、上記if節それぞれが真のときの次状態における外
部記憶領域および内部記憶領域の状態それぞれをthe
n節として持つif−then節からなる、上記現在の
状態から上記各if節が真のときの次状態での外部記憶
領域および内部記憶領域の各状態への変換を表わす記述
として記憶する計算・記憶ステップと、上記外部記憶領
域および内部記憶領域の所定の初期状態から、上記計算
・記憶ステップを実行し、引き続き、計算された次状態
でのif節それぞれが真のときの外部記憶領域および内
部記憶領域の状態それぞれを次々に現在の状態として上
記計算・記憶ステップを反復して実行するステップと、
上記計算・記憶ステップで、if節それぞれが真のとき
の次状態での外部記憶領域および内部記憶領域の状態そ
れぞれを計算したときに、上記計算した値が既に計算・
記憶するされているかを調べるために、上記計算された
値を表わす記述中に出現する変数ごとに、その変数を含
む式すべてに共通に出現する最大の式を求め、上記最大
の式それぞれを上記変数それぞれで置換して得られる、
置換前の記述が表わす外部記憶領域および内部記憶領域
の状態の集合と同一の集合を表わす記述が、上記計算・
記憶ステップで既に記憶された現在の状態の記述に含ま
れるかを調べて、含まれるときには上記計算した状態以
降の状態に関する上記計算・記憶ステップを中止するス
テップと、上記反復ステップがすべて中止されたとき
に、上記現在の状態から各if節が真のときの次状態に
おける外部記憶領域および内部記憶領域の各状態への変
換を表わす上記記憶されたすべての記述から、外部記憶
領域の初期値を表わす上記変数に施された変換を求め、
上記変換と、上記変換に対応するif節が成立したとき
に、外部仕様データが示す上記外部記憶領域群の現在の
状態から次状態への変換とが等しいかを照合して、検証
を試みるステップとを用いて検証する論理装置の検証方
法において、 上記の検証ステップにおいて等しくない二つの変換を用
いて、上記変換の次状態に対応する実現仕様データ中の
現在の状態を置換してできる新たな現在の状態の各if
節について、if節が真のときの次状態における外部記
憶領域および内部記憶領域の各状態への変換を表わす上
記記憶されたすべての記述から、外部記憶領域の初期値
を表わす上記変数に施された変換を求め、上記変換と、
上記変換に対応するif節が成立したときに、上記の検
証ステップにおいて等しくない二つの変換を用いて、外
部仕様データ中の現在の状態を置換してできる新たな現
在の状態が示す上記外部記憶領域群の現在の状態から次
状態への変換とが等しいかを照合して、検証を試みるス
テップと、等しくない場合には、上記ステップを再帰的
に試みるステップとを備えたことを特徴とする論理装置
の検証方法。
8. External specification data of the sequential logic device represented by a recursive function from an external storage area state set S to S, which is a set of states that can be set in an external storage area that can be set / referenced from the outside, Although it is also represented by a recursive function from the external storage area state set S to S, the above sequential logic device is represented by a recursive function configured by using the state of the internal storage area that cannot be set / referenced from the outside as an argument. Input the realization specification data and determine whether the realization specifications represented by the realization specification data satisfy the external specifications represented by the external specification data. The external specification data indicates the current state of the external storage area. To a next state, which is a recursive function, and is described by a function including one or more predetermined known function symbols and one or more if-then clauses. A recursive function representing a conversion from a current state of a partial storage area and an internal storage area to a next state, the function including one or more predetermined known function symbols and one or more if-then clauses And using the realization specification data, the external storage area in the next state when the if clause appearing in the realization specification data is true from the current state of the external storage area and the internal storage area, and The state of the internal storage area is calculated for each if clause, each of the if clauses is included in the if clause, and the states of the external storage area and the internal storage area in the next state when the if clauses are true are set to the
A calculation which is made up of an if-then clause having as an n clause and is stored as a description representing the conversion from the current state to each state of the external storage area and the internal storage area in the next state when each of the if clauses is true. The calculation / storage step is executed from the storage step and the predetermined initial states of the external storage area and the internal storage area, and subsequently, the external storage area and the internal storage when the if clauses in the calculated next state are true. A step of repeatedly executing the calculation / storing step with each state of the storage area as the current state one after another,
In the calculation / storing step, when the respective states of the external storage area and the internal storage area in the next state when the if clauses are true are calculated, the calculated values are already calculated.
In order to check whether or not it is stored, for each variable that appears in the description representing the calculated value, find the maximum expression that commonly appears in all expressions that include that variable, Obtained by substituting each variable,
The description representing the same set as the set of states of the external storage area and the internal storage area represented by the description before replacement is
It is checked whether or not it is included in the description of the current state already stored in the storing step, and when it is included, the step of stopping the calculation / storing step for the states after the calculated state and the repeating step are all stopped. Sometimes, the initial value of the external storage area is calculated from all the stored descriptions that represent the conversion from the current state to each state of the external storage area and the internal storage area in the next state when each if clause is true. Find the transformation applied to the above variables,
A step of verifying whether the above conversion is equivalent to the conversion from the current state of the external storage area group indicated by the external specification data to the next state when the if clause corresponding to the conversion is established In the method of verifying a logic device that is verified by using and, two new conversions that are not equal in the above verification step are used to replace the current state in the realization specification data corresponding to the next state of the above conversion. Each if of current state
For each clause, the above-mentioned stored variables representing the conversion of the external storage area and the internal storage area to the respective states in the next state when the if clause is true are applied to the above-mentioned variable representing the initial value of the external storage area. And then convert it to
When the if clause corresponding to the above conversion is satisfied, the external storage indicated by the new current state formed by replacing the current state in the external specification data by using two unequal conversions in the above verification step It is characterized in that it comprises a step of verifying by checking whether the conversion from the current state of the region group to the next state is equal, and a step of trying the above step recursively if they are not equal. Logic device verification method.
【請求項9】外部から設定・参照可能な外部記憶領域の
取り得る状態の集合である外部記憶領域状態集合Sから
Sへの再帰関数で表わされた上記順序論理装置の外部仕
様データと、やはり外部記憶領域状態集合SからSへの
再帰関数で表わされるが、外部から設定・参照不可能な
内部記憶領域の状態をも引数として構成される再帰関数
で表わされた上記順序論理装置の実現仕様データとを入
力し、上記実現仕様データで表わされる実現仕様が上記
外部仕様データで表わされる外部仕様を満足しているか
否かを、上記外部仕様データは、上記外部記憶領域の現
在の状態から次状態への変換を表わす再帰関数であっ
て、一つ以上の予め定めらた既知関数記号と、一つ以上
のif−then節とを含む関数で記述され、上記実現
仕様データは、上記外部記憶領域および内部記憶領域の
現在の状態から次状態への変換を表わす再帰関数であっ
て、一つ以上の予め定めらた既知関数記号と、一つ以上
のif−then節とを含む関数で記述されるととも
に、上記実現仕様データを用いて、上記外部記憶領域お
よび内部記憶領域の現在の状態から、その実現仕様デー
タに現われるif節のそれぞれが真のときの次状態にお
ける外部記憶領域および内部記憶領域の状態を、if節
毎にそれぞれ計算し、上記if節それぞれをif節に持
ち、上記if節それぞれが真のときの次状態における外
部記憶領域および内部記憶領域の状態それぞれをthe
n節として持つif−then節からなる、上記現在の
状態から上記各if節が真のときの次状態での外部記憶
領域および内部記憶領域の各状態への変換を表わす記述
として記憶する計算・記憶ステップと、上記外部記憶領
域および内部記憶領域の所定の初期状態から、上記計算
・記憶ステップを実行し、引き続き、計算された次状態
でのif節それぞれが真のときの外部記憶領域および内
部記憶領域の状態それぞれを次々に現在の状態として上
記計算・記憶ステップを反復して実行するステップと、
上記計算・記憶ステップで、if節それぞれが真のとき
の次状態での外部記憶領域および内部記憶領域の状態そ
れぞれを計算したときに、上記計算した値が既に計算・
記憶されているかを調べるために、上記計算された値を
表わす記述中に出現する変数ごとに、その変数を含む式
すべてに共通に出現する最大の式を求め、上記最大の式
それぞれを上記変数それぞれで置換して得られる、置換
前の記述が表わす外部記憶領域および内部記憶領域の状
態の集合と同一の集合を表わす記述が、上記計算・記憶
ステップで既に記憶された現在の状態の記述に含まれる
かを調べて、含まれるときには上記計算した状態以降の
状態に関する上記計算・記憶ステップを中止するステッ
プと、上記反復ステップがすべて中止されたときに、上
記現在の状態から各if節が真のときの次状態における
外部記憶領域および内部記憶領域の各状態への変換を表
わす上記記憶されたすべての記述から、外部記憶領域の
初期値を表わす上記変数に施された変換を求め、上記変
換と、上記変換に対応するif節が成立したときに、外
部仕様データが示す上記外部記憶領域群の現在の状態か
ら次状態への変換とが等しいかを照合して、検証を試み
るステップとを用いて検証する論理装置の検証方法にお
いて、 上記検証ステップにおいて等しくない二つの変換を用い
て、上記変換の次状態に対応する実現仕様データ中の現
在の状態の各if節について、if節が真のときの次状
態における外部記憶領域および内部記憶領域の各状態へ
の変換を表わす上記記憶されたすべての記述から、外部
記憶領域の初期値を表わす上記変数に施された変換を求
め、上記変換と、上記変換に対応するif節が成立した
ときに、上記検証ステップにおいて等しくない二つの変
換を用いて、外部仕様データ中の現在の状態を置換して
できる新たな現在の状態が示す上記外部記憶領域群の現
在の状態から次状態への変換とが等しいかを照合して、
検証を試みるステップと、等しくない場合には、上記ス
テップを再帰的に試みるステップとを備えたことを特徴
とする論理装置の検証方法。
9. External specification data of the sequential logic device represented by a recursive function from an external storage area state set S to S, which is a set of states that can be set in an external storage area that can be set / referenced externally, Although it is also represented by a recursive function from the external storage area state set S to S, the above sequential logic device is represented by a recursive function configured by using the state of the internal storage area that cannot be set / referenced from the outside as an argument. Input the realization specification data and determine whether the realization specifications represented by the realization specification data satisfy the external specifications represented by the external specification data. The external specification data indicates the current state of the external storage area. To a next state, which is a recursive function, and is described by a function including one or more predetermined known function symbols and one or more if-then clauses. A recursive function representing a conversion from a current state of a partial storage area and an internal storage area to a next state, the function including one or more predetermined known function symbols and one or more if-then clauses And using the realization specification data, the external storage area in the next state when the if clause appearing in the realization specification data is true from the current state of the external storage area and the internal storage area, and The state of the internal storage area is calculated for each if clause, each of the if clauses is included in the if clause, and the states of the external storage area and the internal storage area in the next state when the if clauses are true are set to the
A calculation which is made up of an if-then clause having as an n clause and is stored as a description representing the conversion from the current state to each state of the external storage area and the internal storage area in the next state when each of the if clauses is true. The calculation / storage step is executed from the storage step and the predetermined initial states of the external storage area and the internal storage area, and subsequently, the external storage area and the internal storage when the if clauses in the calculated next state are true. A step of repeatedly executing the calculation / storing step with each state of the storage area as the current state one after another,
In the calculation / storing step, when the respective states of the external storage area and the internal storage area in the next state when the if clauses are true are calculated, the calculated values are already calculated.
In order to check whether or not it is stored, for each variable that appears in the description that represents the calculated value, find the maximum expression that commonly appears in all expressions that include that variable, and set each of the maximum expressions to the above variable. A description representing the same set of states of the external storage area and the internal storage area represented by the description before the replacement, which is obtained by replacing each of them, is added to the description of the current state already stored in the calculation / storing step. If it is included, and if it is included, the step of stopping the calculation / storing step for the state after the calculated state and the step of canceling all the iterative steps, and each if clause is true from the current state. From the above-mentioned stored descriptions representing the conversion of the external storage area and the internal storage area to the respective states in the next state at The conversion applied to the variable is obtained, and when the above conversion is equivalent to the conversion from the current state of the external storage area group indicated by the external specification data to the next state when the if clause is satisfied. In the method for verifying a logic device that uses the two unequal conversions in the verification step, the current specification in the realization specification data corresponding to the next state of the conversion is used. For each if clause of a state, from all the stored descriptions that describe the conversion of the external and internal storage areas to each state in the next state when the if clause is true, the initial value of the external storage area is represented. The conversion applied to the variable is obtained, and when the above conversion and the if clause corresponding to the above conversion are satisfied, the external specification data is obtained by using two conversions that are not equal in the verification step. Of the current state from the current state of the external storage region group indicated a new current state that can be replaced by matching equality and conversion to the next state,
A method of verifying a logic device, comprising: a step of attempting verification; and a step of recursively trying the above step if they are not equal.
JP8141345A 1996-06-04 1996-06-04 Verification method for logical device Pending JPH09325975A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8141345A JPH09325975A (en) 1996-06-04 1996-06-04 Verification method for logical device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8141345A JPH09325975A (en) 1996-06-04 1996-06-04 Verification method for logical device

Publications (1)

Publication Number Publication Date
JPH09325975A true JPH09325975A (en) 1997-12-16

Family

ID=15289809

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8141345A Pending JPH09325975A (en) 1996-06-04 1996-06-04 Verification method for logical device

Country Status (1)

Country Link
JP (1) JPH09325975A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007524165A (en) * 2004-01-22 2007-08-23 エヌイーシー ラボラトリーズ アメリカ インク Efficient modeling method for embedded memory in finite memory test

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007524165A (en) * 2004-01-22 2007-08-23 エヌイーシー ラボラトリーズ アメリカ インク Efficient modeling method for embedded memory in finite memory test

Similar Documents

Publication Publication Date Title
US6470478B1 (en) Method and system for counting events within a simulation model
US8683441B2 (en) Software equivalence checking
US20040158788A1 (en) Method for functional verification of an integrated circuit model in order to create a verification platform, equipment emulator and verification platform
US20020123874A1 (en) Detecting events within simulation models
Villarraga et al. Software in a Hardware View: New Models for HW-dependent Software in SoC Verification
US6920583B1 (en) System and method for compiling temporal expressions
Goel et al. Abstract stobjs and their application to ISA modeling
Bhagwati et al. Automatic verification of pipelined microprocessors
Brock et al. The FM9001 microprocessor proof
Baraona et al. VSPEC: A declarative requirements specification language for VHDL
Mehta et al. SystemVerilog Assertions
US6973630B1 (en) System and method for reference-modeling a processor
JPH09325975A (en) Verification method for logical device
CN114841103A (en) Parallel simulation method, system, storage medium and equipment for gate-level circuit
Hunt Jr et al. The Verification of a Bit-slice ALU
Habibi et al. On the transformation of SystemC to AsmL using abstract interpretation
JPH09319782A (en) Logical unit verification method
JPH0765046A (en) Logical device verifying method
Subramanyan et al. Getting started with Uclid5
JPH0950448A (en) Verification method for logical unit
JPH09114880A (en) Verification method of logical unit
Daniel et al. Towards a Highly Interactive Design-Debug-Verification Cycle
Kaufmann et al. Verification of pipeline circuits
CN117574822B (en) Optimization design-oriented testing method for chip, computer equipment and medium
Bourgeat Specification and verification of sequential machines in rule-based hardware languages