JPH09319782A - Logical unit verification method - Google Patents

Logical unit verification method

Info

Publication number
JPH09319782A
JPH09319782A JP8136187A JP13618796A JPH09319782A JP H09319782 A JPH09319782 A JP H09319782A JP 8136187 A JP8136187 A JP 8136187A JP 13618796 A JP13618796 A JP 13618796A JP H09319782 A JPH09319782 A JP H09319782A
Authority
JP
Japan
Prior art keywords
storage area
external
state
specification data
design specification
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
JP8136187A
Other languages
Japanese (ja)
Inventor
Yuji Onishi
雄二 大西
Toru Shonai
亨 庄内
Kenzo Goto
健造 五藤
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 JP8136187A priority Critical patent/JPH09319782A/en
Publication of JPH09319782A publication Critical patent/JPH09319782A/en
Pending legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

PROBLEM TO BE SOLVED: To convert the description of a Boolean expression level into a higher arithmetic expression level by comparing a design specification described in a Boolean expression with an external specification described in an arithmetic expression via the support of description of a Boolean expression level. SOLUTION: The data inputted to a verification program 124 include the design specification data 112 expressed in a structure description language, the external specification data 110, a limit condition 114 and an arithmetic library 116. The data 112 show the total design specification in description of the part component elements and in the inter-part component element connection description. The condition 114 serves as the information which limits the memory contents when the verification of the program 124 is carried out with every instruction. In this verification system 100, the description of an arithmetic expression level is sometimes compared with the description of a Boolean expression level in a verification mode. The library 116 is referred to when an arithmetic expression is converted into a Boolean expression for comparison of both expressions. If coincidence is confirmed between both expressions, the Boolean expression is converted into the arithmetic expression and the description level can be converted into the higher arithmetic expression level.

Description

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

【0001】[0001]

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

【0002】[0002]

【従来の技術】従来、論理装置(以下、「論理装置」と
いうときは、「順序論理装置」を指すものとする)の検
証方法としては、3つの方法が知られている。第1はシ
ミュレーションを用いる方法,第2は机上チェックによ
る方法,第3は形式的証明を用いる方法である。
2. Description of the Related Art Conventionally, three methods have been known as a method for verifying a logical device (hereinafter, "logical device" means "sequential logical device"). The first is a method using a simulation, the second is a method using a desk check, and 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 the formal logic verification, the design object to be verified is called "implementation", "design", "design specification" or the like. The items on which the correctness is based upon verification are called “specification”, “specification”, “external specification” and the like. In the following, the former is referred to as “design specifications”,
The latter is called "external specification". What are design specifications?
It shows what the internal structure of the designed logic device looks like. The external specifications are specifications that can be observed from the outside without entering the internal structure of the logic device. Formal logic verification verifies whether the design specification of the logic device meets its external specifications.

【0010】形式的論理検証に関する従来技術として
は、例えば M.Srivas と M.Bickfordの“F
ormal Verification of a P
ipelined Micro−processo
r,”IEEE Software,1990,pp.52-64.に開示された技術
がある。この従来技術では、3ステージ構成のパイプラ
イン制御プロセッサを論理検証の対象とし、定理証明プ
ログラムを用いて半自動で形式的論理検証を実行してい
る。また、特開平7ー65046号には任意ステージ構成のパ
イプライン制御プロセッサの形式的論理検証方法が開示
されている。
Prior arts related to formal logic verification include, for example, M.Srivas and M.Srivas. "F of Bickford"
normal Verification of a P
ipeled Micro-processo
r, "IEEE Software, 1990, pp. 52-64. There is a technique disclosed in this prior art, in which a pipeline control processor with a three-stage configuration is targeted for logic verification and semi-automatically using a theorem proof program. Formal logic verification is performed, and Japanese Patent Laid-Open No. 7-65046 discloses a formal logic verification method for a pipeline control processor having an arbitrary stage configuration.

【0011】一方、近年のマイクロプロセッサの大規模
化,複雑化により、計算機による論理装置の検証(シミ
ュレーションを用いる方法,形式的証明を用いる方法)
の処理時間や計算コストが増加してきた。特に、形式的
証明を用いる方法では、マイクロプロセッサが生成する
全ての状態について検証を行うため、その処理時間と計
算コストは増加する一方である。また、論理装置の検証
の効率を向上するために、設計仕様の記述レベルを上位
に変換するというニーズも出てきている。論理装置を表
現する階層を、より抽象的、つまり上位の記述レベルに
変換することで検証を行うための計算コストを削減で
き、処理時間を向上することができる。
On the other hand, due to the recent increase in scale and complexity of microprocessors, verification of logic devices by computers (methods using simulation, methods using formal proof)
Processing time and calculation cost have increased. Especially, in the method using formal proof, since all the states generated by the microprocessor are verified, the processing time and the calculation cost thereof are only increasing. In addition, there is a need to convert the description level of the design specification to a higher level in order to improve the efficiency of verification of the logic device. By converting the hierarchy expressing the logical device into a more abstract, that is, higher description level, the calculation cost for verification can be reduced and the processing time can be improved.

【0012】[0012]

【発明が解決しようとする課題】本発明の目的は、形式
的検証において、検証時の処理時間と計算コストを軽減
するために、設計者が着目している箇所について、部分
的に検証を行う論理装置の検証方法を提供することであ
る。また、第2の目的は、検証の効率を向上するため
に、設計仕様の記述レベルを上位に変換が可能な論理装
置の形式的検証方法を提供することである。
SUMMARY OF THE INVENTION An object of the present invention is to perform a partial verification in a formal verification, in order to reduce the processing time and the calculation cost at the time of verification, for the part the designer is paying attention to. It is to provide a method of verifying a logic device. A second object is to provide a formal verification method of a logic device capable of converting a description level of a design specification to a higher level in order to improve verification efficiency.

【0013】[0013]

【課題を解決するための手段】上記目的を達成するた
め、本発明は、外部から設定・参照可能な構成要素とそ
の機能を算術式をも用いて記述した、順序論理装置の外
部仕様を表わす外部仕様データと、外部から設定・参照
可能な構成要素だけでなく外部から設定・参照不可能な
構成要素とその機能をブール式を用いて記述した、上記
順序論理装置の設計仕様を表わす設計仕様データとを入
力し、上記設計仕様データで表わされる設計仕様が上記
外部仕様データで表わされる外部仕様を満足しているか
否かを検証する論理装置の検証方法であって、上記順序
論理装置が1命令単位で動作するような限定条件を上記
設計仕様データに与え、上記設計仕様データを用いて、
上記順序論理装置に上記限定条件が与えられたときの上
記順序論理装置の動作を順次模擬していくステップと、
上記順序論理装置の動作の模擬の過程において、上記設
計仕様の記述に用いているブール式が動作の模擬の過程
で出現する算術式と等価であるかを判定し、等価であれ
ばブール式を算術式に変換するステップと、上記設計仕
様データを用いた上記順序論理装置の動作の模擬の過程
において、上記設計仕様の記述に用いている構成要素の
状態が有効か否かを判別し、有効な状態の構成要素に着
目して上記順序論理装置の到達可能な異なる状態を蓄積
するステップと、上記限定条件を上記外部仕様データに
与え、上記外部仕様データを用いて、上記順序論理装置
に上記限定条件が与えられたときの上記順序論理装置の
動作を順次模擬していくステップと、上記外部仕様デー
タを用いた上記順序論理装置の動作の模擬の過程におい
て、上記外部仕様の記述に用いている構成要素の状態が
有効か否かを判別し、有効な状態の構成要素に着目して
上記順序論理装置の到達可能な異なる状態を蓄積するス
テップと、上記設計仕様データ蓄積結果が、上記外部仕
様データ蓄積結果と等価であるか否かを証明するステッ
プと、上記等価の証明の過程において、上記設計仕様の
記述に用いているブール式が上記外部仕様の記述に用い
ている算術式と等価であるかを判定し、等価であれば上
記ブール式を上記算術式に変換するステップとを備えた
ことを特徴とする。
In order to achieve the above object, the present invention represents an external specification of a sequential logic device in which constituent elements which can be set / referenced from the outside and their functions are described also by using arithmetic expressions. Design specifications representing the design specifications of the above sequential logic device, which describe the external specification data and the components that cannot be set / referenced from outside as well as the components that cannot be set / referenced from outside using Boolean expressions. A verification method of a logic device for inputting data and verifying whether a design specification represented by the design specification data satisfies an external specification represented by the external specification data. The above-mentioned design specification data is given a limiting condition such that it operates on an instruction-by-command basis.
Sequentially simulating the operation of the sequential logic device when the limiting condition is given to the sequential logic device,
In the process of simulating the operation of the sequential logic device, it is determined whether the Boolean expression used in the description of the design specification is equivalent to the arithmetic expression that appears in the process of simulating the operation. In the process of converting to an arithmetic expression and in the process of simulating the operation of the sequential logic device using the design specification data, it is determined whether the states of the constituent elements used in the description of the design specification are valid, and A step of accumulating different reachable states of the sequential logic device focusing on the constituent elements of different states, giving the limiting condition to the external specification data, and using the external specification data, In the process of sequentially simulating the operation of the sequential logic device when a limiting condition is given, and in the process of simulating the operation of the sequential logic device using the external specification data, the external specification The step of determining whether or not the state of the constituent element used in the description is valid, accumulating different reachable states of the sequential logic device focusing on the constituent element in the valid state, and the result of design specification data accumulation Is a step of certifying whether or not it is equivalent to the external specification data accumulation result, and the Boolean expression used in the description of the design specification is used in the description of the external specification in the process of proof of the equivalence. Determining whether it is equivalent to an arithmetic expression, and if it is equivalent, converting the Boolean expression into the arithmetic expression.

【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) コンピュータ設計の正当性の定義 (3) 例題コンピュータの外部仕様と設計仕様 (3−1)例題コンピュータの外部仕様(F) (3−2)例題コンピュータの設計仕様(G) (4) 構造記述からRT記述への変換 (5) RT記述から動作記述への変換 (6) 証明探索(限定条件付き1命令単位検証) (6−1)限定条件管理テーブル (6−2)算術式ライブラリ (6−3)限定条件の適用による次状態の制限 (6−4)限定条件の適用時の記述レベル変換判定 (6−5)メモリ公理適用時の記述レベル変換判定 (6−6)動作記述によるGの状態列挙、およびメモリ
公理による書き換え (6−7)抽象化 (6−8)外部仕様への限定条件の適用 (6−9)拡張再帰帰納法の適用時の記述レベル変換判
定 (6−10)拡張再帰帰納法の適用 (7) 全体検証 本実施例では(1)〜(6)で限定条件付きの1命令単
位検証についての説明を行い、(7)で全体検証につい
て説明する。
(1) Outline of the logic verification system of the embodiment (2) Definition of correctness of computer design (3) External specifications and design specifications of example computer (3-1) External specifications of example computer (F) (3) -2) Design specifications of example computer (G) (4) Conversion from structural description to RT description (5) Conversion from RT description to behavioral description (6) Proof search (verification with one instruction with limited conditions) (6- 1) Limited condition management table (6-2) Arithmetic expression library (6-3) Limitation of next state by application of limited condition (6-4) Judgment level conversion judgment when applying limited condition (6-5) Memory axiom Description level conversion judgment at the time of application (6-6) State enumeration of G by behavioral description and rewriting by memory axiom (6-7) Abstraction (6-8) Application of limiting condition to external specifications (6-9) Extended recursive return Description level conversion judgment at the time of applying the delivery method (6-10) Application of the extended recursive induction method (7) Overall verification In this embodiment, (1) to (6) describes the one-instruction unit verification with a limited condition. The whole verification will be described in (7).

【0016】(1)では、本実施例での論理検証システ
ムの概要について説明する。(2)では、本実施例での
論理検証の最終目的である論理装置の設計の正当性の定
義について説明する。(3)では、本実施例での入力と
なる例題コンピュータの外部仕様と設計仕様について説
明する。(4)では、本実施例の論理検証システムにお
ける構造記述からRT(レジスタトランスファ)記述へ
の変換について説明する。(5)では、本実施例の論理
検証システムにおけるRT記述から動作記述への変換に
ついて説明する。(6)では、本実施例の論理検証シス
テムにおける限定条件付きの1命令単位検証の証明探索
について説明する。(7)では、本実施例の論理検証シ
ステムにおける全体検証について説明する。
In (1), an outline of the logic verification system in this embodiment will be described. In (2), the definition of the validity of the logic device design, which is the final purpose of the logic verification in this embodiment, will be described. In (3), the external specifications and design specifications of the example computer, which is an input in this embodiment, will be described. In (4), the conversion from the structural description to the RT (register transfer) description in the logic verification system of this embodiment will be described. In (5), the conversion from the RT description to the behavioral description in the logic verification system of this embodiment will be described. In (6), the proof search of the verification by one instruction unit with a limited condition in the logic verification system of this embodiment will be described. In (7), overall verification in the logic verification system of this embodiment will be described.

【0017】(1) 実施例の論理検証システムの概要 論理検証システムとは、論理装置の設計がその仕様を満
たしているかを検証するシステムである。従来技術の欄
でも説明したように、簡単にいうと、外部仕様とは、論
理装置の使用者から見える外部的な論理装置の仕様であ
る。また、設計仕様とは、外部仕様に基づいて設計者が
実際に設計・実現した論理装置の仕様であり、その論理
装置を実現している内部的な論理の仕様である。
(1) Outline of Logic Verification System of Embodiment A logic verification system is a system for verifying whether a design of a logic device satisfies its specifications. As described in the section of 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.

【0018】本検証システムの特徴は、ブール式レベル
の記述を可能にしたことにより、ブール式で記述された
設計仕様と算術式で記述された外部仕様とを比較できる
こと及びそれにより、ブール式レベルの記述を算術式レ
ベルに上位変換できることである。また、メモリへのデ
ータ設定(限定条件と呼ぶ)を可能にすることにより、
論理装置のすべての状態を検証するのではなく、メモリ
に設定された状態に限定した検証を行えることである。
The feature of this verification system is that it enables the description at the Boolean expression level, so that the design specification described by the Boolean expression can be compared with the external specification described by the arithmetic expression, and thereby, the Boolean expression level. Is that the description of can be converted to the arithmetic expression level. In addition, by enabling data setting to the memory (called a limiting condition),
Rather than verifying all states of the logic device, it is possible to perform verification limited to the state set in the memory.

【0019】図1は、実施例の論理検証システム(以
下、「検証システム」と略す)の構成を示す。この構成
図は、限定条件付きの1命令単位検証の場合である。
FIG. 1 shows the configuration of a logic verification system (hereinafter abbreviated as "verification system") of the embodiment. This block diagram shows the case of verification by one instruction unit with a limiting condition.

【0020】図1において、検証システム100は、キ
ーボード102,ディスプレイ104,バス106,2次記
憶用ディスク108,CPU118、およびメモリ120を備
えている。ディスク108中には、外部仕様データ11
0,構造記述設計仕様データ112,限定条件114、
および算術式ライブラリ116が格納される。これらの
データ110,112,114,116が、検証システ
ムへの入力になる。これらのデータ110,112,1
14,116の詳細は後述する。
In FIG. 1, the verification system 100 includes a keyboard 102, a display 104, a bus 106, a secondary storage disk 108, a CPU 118, and a memory 120. In the disk 108, the external specification data 11
0, structure description design specification data 112, limiting condition 114,
And an arithmetic expression library 116 are stored. These data 110, 112, 114, 116 are input to the verification system. These data 110, 112, 1
Details of 14, 116 will be described later.

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

【0022】入力プログラム122は、外部仕様デー
タ,構造記述設計仕様データ,限定条件、および算術式
ライブラリをキーボード102、およびディスプレイ1
04を介して入力し、2次記憶用ディスク108に、1
10,112,114,116として格納するためのプ
ログラムである。
The input program 122 includes external specification data, structure description design specification data, limiting conditions, and an arithmetic expression library on the keyboard 102 and the display 1.
Input via 04 to the secondary storage disk 108.
This is a program for storing as 10, 112, 114, 116.

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

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

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

【0026】検証プログラム124への入力データは、
構造記述言語で表現した設計仕様データ112,外部仕
様データ110,限定条件114、および算術式ライブ
ラリ116である。
The input data to the verification program 124 is
It is design specification data 112 expressed in a structure description language, external specification data 110, limiting conditions 114, and an arithmetic expression library 116.

【0027】構造記述設計仕様データ112とは、設計
仕様の全体を部分構成要素の記述と部分構成要素間の結
線記述で表現したものである。すなわち、ハードウェア
の部分構成要素(レジスタなど)とそれら部分構成要素
の間の関係を記述して、ハードウェアを規定していくも
のである。後に(3)で説明するが、図16に、構造記
述設計仕様データの例を示す。
The structural description design specification data 112 represents the entire design specification by the description of the sub-components and the connection description between the sub-components. 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 (3), FIG. 16 shows an example of the structure description design specification data.

【0028】外部仕様データ110についても(3)で
説明するが、図12がそれに相当する。
The external specification data 110 will be described in (3), and FIG. 12 corresponds to it.

【0029】限定条件114は、検証プログラム124
による検証を1命令単位で実行するときにメモリの内容
を限定する情報である。(6)で詳述するが、図20が
それに相当する。
The limiting condition 114 is the verification program 124.
This is information that limits the contents of the memory when the verification by is executed in units of one instruction. As described in detail in (6), FIG. 20 corresponds to this.

【0030】算術式ライブラリ116は、算術式とブー
ル式を比較するために算術式をブール式に変換する。詳
しくは(6)で述べるが、図18がそれに当たる。
The arithmetic expression library 116 converts an arithmetic expression into a Boolean expression in order to compare the arithmetic expression with a Boolean expression. Details will be described in (6), and FIG. 18 corresponds to this.

【0031】図2を参照して、検証プログラム124の
処理を説明する。まず、構造記述からRT(レジスタト
ランスファ)記述への変換処理202では、構造記述で
表現した設計仕様データ112をRT記述で表現した設
計仕様データ128に変換する。この変換は、設計仕様
を再帰関数の形で表現するために行われる等価変換であ
り、公知の技術で可能である。再帰関数は、反復を表現
する形態の1つである。なお、再帰の代わりにループを
用いた形を用いて、実施例全体を構成してもよい。
The processing of the verification program 124 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 128 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.

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

【0033】図21に、RT記述で表現した設計仕様デ
ータ128の例を示す。図22に、動作記述で表現した
設計仕様データ130の例を示す。RT記述から動作記
述への変換処理206では、後の証明探索に適した動作
記述に等価変換している。この等価変換も、公知の技術
で可能である。
FIG. 21 shows an example of the design specification data 128 expressed by the RT description. FIG. 22 shows an example of the design specification data 130 expressed as a behavioral description. In the conversion process 206 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.

【0034】次に、証明探索210では、動作記述で表
現した設計仕様データ130と外部仕様データ110と
の間について(2)で説明する正当性が成り立つことの
証明を行う。証明探索210は、動作記述による状態列
挙220,限定条件の適用による次状態の制限224,
限定条件の適用時の記述レベル変換可能性判定222,
メモリ公理による書き換え226,メモリ公理適用時の
記述レベル変換可能性判定228,抽象化230,拡張
再帰帰納法の適用224,拡張再帰帰納法の適用時の記
述レベル変換可能性判定236,外部仕様への限定条件
の適用および外部仕様データ抽象化232の各処理から
なる。
Next, in the proof search 210, it is proved that the legitimacy described in (2) holds between the design specification data 130 expressed by the behavioral description and the external specification data 110. The proof search 210 includes state enumeration 220 by behavioral description, restriction 224 of the next state by application of a limiting condition.
Descriptive level conversion possibility determination 222 when applying a limiting condition
Rewriting by memory axiom 226, description level conversion possibility determination 228 when applying memory axiom, abstraction 230, application of extended recursive induction 224, description level conversion possibility determination 236 when extended recursive induction is applied, and external specifications The application of the limiting condition of and the respective processes of the external specification data abstraction 232.

【0035】動作記述による状態列挙220は、限定条
件の適用による次状態の制限224,限定条件の適用時
の記述レベル変換可能性判定222,メモリ公理による
書き換え226,メモリ公理適用時の記述レベル変換可
能性判定228の各処理と連携して動作し、動作記述を
使って設計仕様Gの動作を模擬して、到達可能状態を列
挙する。その際各処理は限定条件114と算術ライブラ
リ116を補助入力として用いる。到達可能状態とその
状態間の遷移は、書き換え後Gデータ240の形に変換
されて記憶される。
The state enumeration 220 based on the behavioral description includes the restriction 224 of the next state by applying the limiting condition, the determination level conversion possibility determination 222 when the limiting condition is applied, the rewriting 226 by the memory axiom, and the description level conversion when the memory axiom is applied. It operates in cooperation with each process of the possibility determination 228, simulates the operation of the design specification G using the operation description, and enumerates the reachable states. At that time, each processing uses the limiting condition 114 and the arithmetic library 116 as auxiliary inputs. The reachable state and the transition between the states are converted and stored in the G data 240 after rewriting.

【0036】抽象化230は、書き換え後Gデータ24
0に対して、書き換え後データ中の到達可能状態を、そ
れ以前に出現した状態に置換する。変換された結果は、
抽象化後Gデータ242として記憶される。
The abstraction 230 is the rewritten G data 24.
For 0, the reachable state in the rewritten data is replaced with the state that appeared before that. The converted result is
It is stored as G data 242 after abstraction.

【0037】外部仕様への限定条件の適用および外部仕
様データ抽象化232は、外部仕様データ110につい
て動作記述で表現した設計仕様データ130と同様な処
理を行う。その処理の結果は、抽象化後Fデータ244
として記憶される。
The application of the limiting condition to the external specification and the external specification data abstraction 232 perform the same processing as the design specification data 130 expressed by the operation description for the external specification data 110. The result of the processing is F data 244 after abstraction.
Is stored as

【0038】拡張再帰帰納法の適用234では、拡張再
帰帰納法を用いて、抽象化後Gデータ242と抽象化後
Fデータ244との間について(2)で説明する正当性
が成り立つか否かを検証して、検証結果を「検証成功」
または「検証失敗」として検証結果128に出力する。
この処理と同時に拡張再帰帰納法の適用時の記述レベル
変換可能性判定236が実行される。
In the application 234 of the extended recursive induction, whether the justification described in (2) is established between the post-abstraction G data 242 and the post-abstraction F data 244 by using the extended recursive induction. Is verified and the verification result is "verification successful"
Alternatively, it is output to the verification result 128 as “verification failed”.
Simultaneously with this processing, the description level conversion possibility determination 236 when the extended recursive induction is applied is executed.

【0039】なお、RT記述設計仕様データ128をユ
ーザが用意したときには、構造記述設計仕様データ11
2に代わって、それが入力となる。このとき、構造記述
からRT記述への変換処理202は不要になる。
When the user prepares the RT description design specification data 128, the structure description design specification data 11
Instead of 2, it becomes the input. At this time, the conversion process 202 from the structure description to the RT description is unnecessary.

【0040】(2) コンピュータ設計の正当性の定義 ここでは、本実施例における「外部仕様」,「設計仕
様」、および「論理装置の設計の正当性」の定義につい
て詳細に説明する。
(2) Definition of Validity of Computer Design Here, the definitions of "external specifications", "design specifications", and "validity of logic device design" in this embodiment will be described in detail.

【0041】上述したように、簡単にいえば、外部仕様
とは使用者から見えるその論理装置の仕様であり、設計
仕様とは外部仕様に基づいて設計者が実際に設計・実現
した論理装置の仕様である。厳密には、その詳細は、次
の定義の通りである。
As described above, in simple terms, the external specifications are the specifications of the logic device as seen by the user, and the design 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.

【0042】[定義1:外部記憶領域と外部記憶領域変
数]論理装置を構成する記憶領域のうち、論理装置の使
用者がアクセス可能な(すなわち、論理装置の外部から
設定・参照が可能な)メモリ,レジスタ、およびフラグ
などの記憶領域を、「外部記憶領域」と呼ぶ。データを
保持するメモリ、およびレジスタなどの記憶領域だけで
なく、フラグなどの記憶素子も、使用者がアクセス可能
ならば、外部記憶領域である。外部記憶領域のメモリ,
レジスタ、およびフラグなどの値を表わす変数S1,
…,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 S1, representing values such as registers and flags
..., SN is called an "external storage area variable". The external storage area may be called a "programmable register".

【0043】[定義2:外部記憶領域状態集合:S]外
部記憶領域の全体が作る状態の集合を、「外部記憶領域
状態集合」と呼ぶ。外部記憶領域変数S1,…,SNが
とる1組の値により外部記憶領域の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". One state of the external storage area is defined by a set of values taken by the external storage area variables S1, ..., SN. The external storage area state set is a set of such states.

【0044】[定義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. The variables T1, ..., TM that represent the values of the memories, registers, and flags in the internal storage area are called "internal storage area variables". The internal storage area may be called a "non-programmable register".

【0045】[定義4:内部記憶領域状態集合:T]内
部記憶領域の全体が作る状態の集合を、「内部記憶領域
状態集合」と呼ぶ。内部記憶領域変数T1,…,TMが
とる1組の値により内部記憶領域の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". One state of the internal storage area is defined by a set of values taken by the internal storage area variables T1, ..., TM. The internal storage area state set is a set of such states.

【0046】[定義5:基本関数:A,…]外部仕様、
および設計仕様に出現する既知関数を、「基本関数」と
呼ぶ。
[Definition 5: Basic function: A, ...] External specifications,
A known function that appears in the design specification is called a "basic function".

【0047】[定義6:基本述語:P,…]外部仕様、
および設計仕様に出現する既知述語を、「基本述語」と
呼ぶ。
[Definition 6: Basic predicate: P, ...] External specifications,
A known predicate that appears in the design specification is called a "basic predicate".

【0048】[定義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 are variables (arguments), and are functions composed of basic functions, basic predicates, if-then-else clauses, and recursive function definitions.

【0049】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 reach the final state s2. Is the meaning.

【0050】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).

【0051】[定義8:設計仕様:G]「設計仕様」G
とは、外部記憶領域状態集合SからSへの関数であり、 G(S1,…,SN)=G0(S1,…,SN,t1,
…,tM) で定義される関数である。ただし、G0はS×TからS
への関数であり、S1,…,SN,T1,…,TMを変
数(引数)とし、基本関数と基本述語とif−then−else
節と再帰関数定義とから構成される関数である。
[Definition 8: Design specifications: G] "Design specifications" G
Is a function from the external storage area state set S to S, and G (S1, ..., SN) = G0 (S1, ..., SN, t1,
, TM). However, G0 is S × T to S
, TM, T1, ..., TM as variables (arguments), and basic functions, basic predicates, and if-then-else
It is a function composed of clauses and recursive function definitions.

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

【0053】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.

【0054】G(s1)が存在しない(s1はSの要
素)とは、この論理装置が初期状態s1から実行を開始
すると(例えば、無限ループなどで)いつまでも実行が
停止しないことを意味する。
The absence of G (s1) (s1 is an element of S) 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).

【0055】[定義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).

【0056】(3) 例題コンピュータの外部仕様
(F)と設計仕様(G) 後述する(4)以降では、本実施例の検証システムによ
る検証の対象として、ビット幅が3ビットのレジスタを
持つ例題コンピュータを例に挙げて説明する。ここで
は、検証対象の例題コンピュータの外部仕様とその設計
仕様について説明する。ここで説明する例題コンピュー
タは、簡単ではあるが、実際のコンピュータの基本的な
動作をコンパクトに再現している。
(3) Example External Specification (F) and Design Specification (G) of Computer In (4) and later described later, an example having a register with a bit width of 3 bits is a target of verification by the verification system of this embodiment. A computer will be described as an example. Here, the external specifications and the design specifications of the verification target example computer will be described. Although the example computer described here is simple, it reproduces the basic operation of an actual computer in a compact manner.

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

【0058】図11は、例題コンピュータ1100の構
造の概要を表わしたものである。コンピュータ1100
は、CPU1102 と3ビット×8の主メモリ(M)1108
を備えている。CPU1102 は、プログラムカウンタ(C)
1104とインクリメント機能だけを有する演算器(I
NC)1106とを有する。主メモリは、3ビット単位
に0−7でアドレス付けされている。
FIG. 11 shows an outline of the structure of the example computer 1100. Computer 1100
Is a CPU 1102 and 3 bits x 8 main memory (M) 1108
It has. CPU1102 is a program counter (C)
1104 and an arithmetic unit (I
NC) 1106. Main memory is addressed 0-7 in 3-bit units.

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

【0060】図12は、図11の例題コンピュータ11
00の外部仕様を、再帰関数を用いて表わした記述であ
る。本実施例では、この記述が外部仕様データ110と
して検証システムの入力の1つとなる。関数のシンタッ
クス(syntax)およびセマンティックス(semantics)
は、「pure LISP (J.McCarthy, et al. LISP 1.5 Pr
ogrammer's Manual. M.I.T. Press, Cambridge, Mass.,
USA,1962)」に記載されているものにほぼ準じた。この
シンタックスでは、if文を用いた再帰関数定義法を用い
て対象を記述する。
FIG. 12 shows the example computer 11 of FIG.
The external specification of 00 is expressed using a recursive function. In the present embodiment, this description is one of the inputs of the verification system as the external specification data 110. Function syntax and semantics
`` Pure LISP (J. McCarthy, et al. LISP 1.5 Pr
ogrammer's Manual.MIT Press, Cambridge, Mass.,
USA, 1962) ". In this syntax, an object is described by using a recursive function definition method using an if statement.

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

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

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

【0064】・すなわち、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 returns the value obtained in the programmable register.

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

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

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

【0068】・例題コンピュータ1300は、図11で
図示した主メモリ1108,3ビットのプログラムカウ
ンタ(C)1104(以下、Cレジスタ1104と呼
ぶ)、および演算器(FUNCa)1324と演算器
(FUNCb)1326の他に、プログラマが設定・参
照できないレジスタ群,セレクタ1320、およびコン
フリクト検出回路1322を備えている。
The example computer 1300 includes a main memory 1108 shown in FIG. 11, a 3-bit program counter (C) 1104 (hereinafter, referred to as a C register 1104), an arithmetic unit (FUNCa) 1324 and an arithmetic unit (FUNCb). In addition to 1326, a register group that cannot be set / referenced by the programmer, a selector 1320, and a conflict detection circuit 1322 are provided.

【0069】・Sレジスタ1306は、主メモリ110
8から読み出したCレジスタ1104から始まる3ビッ
トのデータを保持するレジスタである。
The S register 1306 is used for the main memory 110.
It is a register that holds 3-bit data read from C register 1104.

【0070】・Dレジスタ1310は、主メモリ110
8から読み出したSレジスタ1306から始まる3ビッ
トのデータを保持するレジスタである。
The D register 1310 is used for the main memory 110.
It is a register for holding 3-bit data read from S register 1306.

【0071】・Vレジスタ1312は、コンフリクト検
出回路による判定結果を保持する1ビットのフラグレジ
スタである。
The V register 1312 is a 1-bit flag register that holds the determination result of the conflict detection circuit.

【0072】・演算器(FUNCa)1324は3ビッ
トの値を入力とし、3ビットの値を出力する論理回路で
ある。この場合、入力はCレジスタ1104であり、そ
の演算結果をセレクタ1320に出力する。
The arithmetic unit (FUNCa) 1324 is a logic circuit which inputs a 3-bit value and outputs a 3-bit value. In this case, the input is the C register 1104, and the calculation result is output to the selector 1320.

【0073】・演算器(FUNCb)1326は3ビッ
トの値を入力とし、3ビットの値を出力する論理回路で
ある。この場合、入力はDレジスタ1310であり、そ
の演算結果を主メモリ1108に出力する。
The arithmetic unit (FUNCb) 1326 is a logic circuit which inputs a 3-bit value and outputs a 3-bit value. In this case, the input is the D register 1310, and the calculation result is output to the main memory 1108.

【0074】・1320はセレクタである。図13に示
されているように、出力の値は、stop,confの値に応じ
て、Cレジスタ1104の値か、演算器(FUNCa)1
324の出力の値のいずれかになる。
1320 is a selector. As shown in FIG. 13, the output value is the value of the C register 1104 or the operation unit (FUNCa) 1 depending on the stop and conf values.
It will be one of the values of the output of 324.

【0075】・コンフリクト/停止条件検出回路132
2は、先行するデータの処理が行うメモリへの格納がそ
の後続のデータの処理が読み出すデータを書き換える
(メモリコンフリクト:M−conflict)か否かを検出
し、コンピュータを停止するか否かを判定する組み合わ
せ回路である。メモリコンフリクトが検出されたときと
は、データ間の依存関係があるときである。
Conflict / stop condition detection circuit 132
2 detects whether or not the storage of the preceding data in the memory to be performed rewrites the read data by the subsequent data processing (memory conflict: M-conflict), and determines whether or not to stop the computer. It is a combinational circuit. When a memory conflict is detected is when there is a dependency between data.

【0076】・主メモリ1108は、1クロックの間に
2データ読み出しと1データ書き込み(格納)とを処理
できるものである。ただし、書き込み領域と読み出し領
域とが重なる場合には、主メモリ808への書き込みの
動作は保証されるが、読み出しの動作は保証されない。
その場合の読み出し動作の保証は、コンフリクト/停止
条件検出回路1322などにより行われる。
The main memory 1108 can process two data reads and one data write (storing) in one clock. 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.
The guarantee of the read operation in that case is performed by the conflict / stop condition detection circuit 1322 or the like.

【0077】以上、図13を用いて、検証対象の例題コ
ンピュータ1300の設計仕様を説明した。なお、この
設計仕様は、あくまでも例題コンピュータ1100の外
部仕様(図12)を実現したものの一例であり、他の設
計仕様もあり得る。当然ながら、他の命令数が異なる設
計仕様にも、この発明は同様に適用可能である。
The design specifications of the example computer 1300 to be verified have been described above with reference to FIG. Note that this design specification is merely an example of the external specification (FIG. 12) of the example computer 1100, and other design specifications are possible. Of course, the present invention is similarly applicable to other design specifications having different numbers of instructions.

【0078】ここで、これらの図で表わした設計仕様
は、人間が参照するには適しているが、検証プログラム
が設計仕様データとして操作するには適していない。そ
こで、検証プログラムが操作しやすい形式によって設計
仕様データを表わすことにする。
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.

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

【0080】図14にネットリスト要素の文法を、図1
5にネットリストの文法をそれぞれ示す。ネットリスト
は、図15に示すように、ネットリスト要素を有限個並
べてカッコで囲んだもの(リスト)である。ネットリス
ト要素としては、レジスタと、組み合わせ論理とがあ
る。
The grammar of the netlist element is shown in FIG.
5 shows the syntax of the netlist. As shown in FIG. 15, 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.

【0081】図14の(a)に示すレジスタを表わすネ
ットリスト要素では、最初にキーワード「Register」が
あり、以下順に、リソース名,ビット幅,ソースリソー
ス名・出力ピン番・分割信号名,シンクリソース名・入
力ピン番・分割信号名の有限リストが並んでいる。ここ
で、分割信号とはビット幅を持ったレジスタを1ビット
単位で扱うとき(ブール式表現など)用いられる表現で
ある。
In the netlist element representing the register shown in FIG. 14A, the keyword "Register" is first, and in the following order, resource name, bit width, source resource name / output pin number / divided signal name, sync. There is a finite list of resource names, input pin numbers, and split signal names. Here, the divided signal is an expression used when a register having a bit width is handled in 1-bit units (such as a Boolean expression).

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

【0083】このような文法のネットリスト形式で記述
された例題コンピュータ1100の構造記述設計仕様デ
ータ112(図16)では、図13の中の、SEL(13
20),FUNCa(1324)、およびC(110
4)のみを示した。残りは省略したが、上記の形式で容
易に表現可能である。当然、図13の形式で表わした設
計仕様と図16のネットリストの形式(構造記述)で表
わした設計仕様とは等価である。
In the structure description design specification data 112 (FIG. 16) of the example computer 1100 described in the netlist format of such a grammar, SEL (13
20), FUNCa (1324), and C (110
Only 4) is 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. 13 is equivalent to the design specification expressed in the netlist format (structure description) of FIG.

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

【0085】(4) 構造記述からRT記述への変換 再び図1,図2を参照して、構造記述からRT記述への
変換処理202では、構造記述で表現した設計仕様デー
タ112(図16)をRT記述で表現した設計仕様デー
タ128(図21)に変換する。この変換処理は、公知
の技術を用いればよい。例えば、Dominique D. Borrion
e らの“Formal Verification of VHDLDescriptions in
the Prevail Environment,”IEEE Design and Test of
Computers,1992, pp.42-56. や特開平6−215063 号に記
載された方法などを用いればよい。この変換は、設計仕
様を再帰関数の形で表現するために行われる等価変換で
ある。
(4) 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. 16) expressed by the structural description Is converted into design specification data 128 (FIG. 21) 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. And 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.

【0086】図21において、2100は主関数GのR
T記述を示し、2102は補助関数G0のRT記述を示
す。
In FIG. 21, 2100 is R of the main function G.
T description is shown, and 2102 is RT description of the auxiliary function G0.

【0087】ここで、ビット幅を持ったレジスタの表記
方法について説明する。“C,S”のようにリソース名
のみで参照された場合は、ビット幅を持ったレジスタ全
体を表わし、“C[0],S[1]”のように分割信号
名で参照された場合は、ビット幅を持ったレジスタの1
ビットの値を表わす。
Here, the notation method of a register having a bit width will be described. When referred to only by a resource name such as “C, S”, it represents the entire register having a bit width, and when referred by a divided signal name such as “C [0], S [1]”. Is one of the registers with bit width
Represents the value of a bit.

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

【0089】補助関数G02102は、クロック停止条件が成
立したときには、そのときのプログラマブルレジスタの
値を最終的に得られる値として返し、そうでないときに
は、各レジスタを次のクロック時刻の値に更新して補助
関数G0を再び呼び出す。すなわち、補助関数G0は、
プログラマブルレジスタと非プログラマブルレジスタに
特定の値が設定されて呼び出されると、上記のような再
帰的な呼び出しを繰り返し、最終的にプログラマブルレ
ジスタに得られる値を返す。
When the clock stop condition is satisfied, the auxiliary function G02102 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. 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.

【0090】したがって、主関数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.

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

【0092】図21のRT記述では、各クロック時刻で
の各レジスタの値の更新を関数G0の再帰呼び出しを用
いて表わしている。各レジスタの次のクロック時刻での
更新値を各レジスタごとにまとめて一箇所に記述してあ
るので、このような記述をここではRT(register tra
nsfer :レジスタ転送)記述と呼んでいる。
In the RT description of FIG. 21, the update 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 for each register collectively in one place.
nsfer: Register transfer).

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

【0094】RT記述から動作記述への変換処理206
では、RT記述で表現した設計仕様128(図21)を
動作記述で表現した設計仕様130(図22)に変換す
る。この変換では、再帰呼び出しする関数G0の内側に
ifがあればそのifを関数の外側に移して簡単化する処理
を、関数G0の内側にifがなくなるまで、繰り返す。す
なわち、図21の2102の右辺で再帰呼び出ししてい
る関数G0の引数にif文が出現しているから、これらの
if文を関数G0の外側に移して簡単化する処理を行う。
これにより、RT記述を、後の証明探索に適した動作記
述に等価変換している。
Conversion processing 206 from RT description to behavioral description
Then, the design specification 128 (FIG. 21) expressed by the RT description is converted into the design specification 130 (FIG. 22) expressed by the behavioral description. In this conversion, inside the function G0 to call recursively
If there is an if, the 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 an if statement appears in the argument of the function G0 that is recursively called on the right side of 2102 in FIG.
The if statement is 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.

【0095】変換処理206は、公知の技術を用いれば
よい。例えば、先願の特開平6−215063号の論理装置の
検証方法に示された技術などを用いればよい。この変換
では、まず関数の内側のifを関数の外側に移した後、簡
単化して、動作記述で表現した設計仕様130(図2
2)を得ている。動作記述で表現した図22の設計仕様
130は、これ以上簡単化できず、関数G0の内側にも
ifが残っていない。すなわち、if条件はすべて関数G0
の外側にあり、各条件ごとの処理動作がまとめて一箇所
に記述してある。このような記述を、ここでは動作記述
と呼んでいる。
A publicly known technique may be used for the conversion process 206. For example, the technique disclosed 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 130 (FIG.
2) is obtained. The design specification 130 shown in FIG. 22 expressed by the behavioral description cannot be further simplified, and it can be used inside the function G0.
if does not remain. That is, all if conditions are functions G0
, And the processing operations for each condition are collectively described in one place. Such a description is called a behavioral description here.

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

【0097】(6) 証明探索(限定条件付き1命令単
位検証) 次に、証明探索処理210について説明する。
(6) Proof Search (Verification with One Instruction Unit with Limited Condition) Next, the proof search process 210 will be described.

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

【0099】証明探索処理210は、動作記述による状
態列挙220,限定条件の適用による次状態の制限22
4,限定条件の適用時の記述レベル変換可能性判定22
2,メモリ公理による書き換え226,メモリ公理適用
時の記述レベル変換可能性判定228,抽象化230,
拡張再帰帰納法の適用224,拡張再帰帰納法の適用時
の記述レベル変換可能性判定236,外部仕様への限定
条件の適用および外部仕様データ抽象化232の各処理
から構成されている。
The proof search process 210 includes state enumeration 220 by behavioral description, and next state limitation 22 by application of a limiting condition.
4, Possibility of description level conversion when applying the limiting condition 22
2, rewriting by memory axiom 226, description level conversion possibility determination 228 when memory axiom is applied, abstraction 230,
It is composed of application 224 of the extended recursive induction, determination level conversion possibility determination 236 when the extended recursive induction is applied, application of a limiting condition to an external specification, and external specification data abstraction 232.

【0100】まず、(6−1)でこの検証システムを1
命令単位で実行するために必要な限定条件114を、
(6−2)で記述レベルをブール式レベルから算術式レ
ベルに変換するとき必要な、算術式ライブラリ116に
ついて説明する。その後、(6−3)から(6−10)
で証明探索210の各処理を順に説明する。
First, in (6-1), the verification system is set to 1
The limiting condition 114 necessary for executing the instruction unit
In (6-2), the arithmetic expression library 116 required when converting the description level from the Boolean expression level to the arithmetic expression level will be described. Then, from (6-3) to (6-10)
Each process of the proof search 210 will be described in order.

【0101】(6−1)限定条件 次に、限定条件114について説明する。(6-1) Limiting Condition Next, the limiting condition 114 will be described.

【0102】この検証システムを1命令単位で実行する
ために、メモリの内容を限定することにより、検証する
コンピュータの動きを制限する。限定条件とは検証シス
テムのメモリの内容についての管理テーブルである。ま
た、検証の実行中にM[a/b]などでメモリの内容を
書き換えた場合、書き換えられたメモリを、書き換える
前のメモリとは区別し、限定条件も書き換える必要があ
るため、書き換えたアドレスと値を持った書き換え用テ
ーブルを新たに生成し、書き換えた値を管理する。
In order to execute this verification system in units of one instruction, the contents of the memory are restricted, so that the movement of the computer to be verified is restricted. The limiting condition is a management table for the contents of the memory of the verification system. Further, when the contents of the memory are rewritten by M [a / b] or the like during the execution of verification, the rewritten memory needs to be rewritten from the memory before rewriting, and the limiting condition also needs to be rewritten. A new rewriting table having the values and is generated and the rewritten values are managed.

【0103】図19の(a)に示す限定条件の文法で
は、最初にキーワード「Memory−main」があり、以下順
に、メモリ名,アドレス名・値・限定条件の組の有限リ
ストが並んでいる。ここで、値とは=の条件で限定され
た場合にその値を直接入力する。それ以外の条件で限定
された場合は限定条件に書き込む。メモリが参照された
場合、この限定条件から、アドレスに対応した値及び限
定条件を取り出す。
In the grammar of the limiting condition shown in FIG. 19A, there is a keyword "Memory-main" at the beginning, and a finite list of pairs of memory name, address name, value, and limiting condition is arranged in this order. . Here, when the value is limited to the condition of =, the value is directly input. If it is limited under other conditions, write in the limited conditions. When the memory is referenced, the value corresponding to the address and the limiting condition are extracted from this limiting condition.

【0104】図19の(b)に示す書き換え用テーブル
では、最初にキーワード「Memory−write」があり、以下
順に、メモリ名,アドレス名・値・参照メモリ名の組が
並んでいる。ここで、参照メモリ名とは、書き換える前
のメモリの名前を示したもので、書き換えが起こったメ
モリに対して書き換えたアドレス以外の内容を参照され
た場合は、この名前のメモリを参照する。こうすること
によって、書き換え用テーブルでは書き換えた内容のみ
を管理すればよい。
In the rewrite table shown in FIG. 19B, the keyword "Memory-write" is first provided, and the set of memory name, address name / value / reference memory name is arranged in the following order. Here, the reference memory name indicates the name of the memory before rewriting, and when the content other than the rewritten address is referred to the memory in which the rewriting has occurred, the memory having this name is referred to. By doing so, only the rewritten contents need to be managed in the rewriting table.

【0105】このような文法で記述された例題コンピュ
ータの限定条件114を図20に示す。これは例題コン
ピュータの主メモリM1108について、M(C)で参
照された場合(M(C)≠0)&(M(C)≠C+1)
という条件を、M(C+1)で参照された場合はM(C
+1)=0という条件を与えたものである。
FIG. 20 shows the limiting condition 114 of the example computer described by such a grammar. This is because when the main memory M1108 of the example computer is referred to by M (C) (M (C) ≠ 0) & (M (C) ≠ C + 1).
If the condition is referred to by M (C + 1), M (C
The condition is +1) = 0.

【0106】M(C+1)=0については=の条件なの
で直接値に書き込む。
Since M (C + 1) = 0 is a condition of =, it is directly written in the value.

【0107】この限定条件は2命令目でコンピュータが
停止するように意図して与えた条件であり、2命令目に
当たるM(C+1)に例題コンピュータの停止条件であ
る、0を書き込んでいる。1命令目に当たるM(C)で
は、1命令目で停止しないようにM(C)≠0という条
件を、かつ、1命令目のインクリメント処理でM(C+
1)の0をインクリメントしないようにM(C)≠C+
1という条件を与えている。
This limiting condition is a condition intended to stop the computer at the second instruction, and 0, which is the stopping condition of the example computer, is written in M (C + 1) corresponding to the second instruction. In the case of M (C) corresponding to the first instruction, the condition of M (C) ≠ 0 is set so as not to stop at the first instruction, and M (C +
1) M (C) ≠ C + so as not to increment 0
The condition of 1 is given.

【0108】(6−2)算術式ライブラリ 次に、算術式ライブラリ116について説明する。(6-2) Arithmetic Expression Library Next, the arithmetic expression library 116 will be described.

【0109】この検証システムでは、検証時に算術式レ
ベルの記述とブール式レベルの記述を比較する場合があ
る。算術式ライブラリ116はそのような算術式とブー
ル式を比較するため、算術式をブール式に変換するとき
に参照される。もし、一致すればブール式を一致した算
術式に置換することにより、記述レベルをブール式レベ
ルから算術式レベルへ上位変換することができる。
In this verification system, the description at the arithmetic expression level may be compared with the description at the Boolean expression level at the time of verification. The arithmetic expression library 116 is referred to when converting an arithmetic expression into a Boolean expression in order to compare such an arithmetic expression with a Boolean expression. If they match, the description level can be upgraded from the Boolean expression level to the arithmetic expression level by replacing the Boolean expression with the matched arithmetic expression.

【0110】図17に算術式ライブラリの文法を示す。
算術式ライブラリは図17に示すように算術演算子・引
数の有限リスト,入力パラメータの有限リスト・出力パ
ラメータを入力パラメータからなる式で表わしたブール
式の有限リストの組の有限リストが並んでいる。ここ
で、算術演算子とは+,=といった演算子である。引数
とはその演算子がとる任意の引数である。また、入力パ
ラメータとは、演算子のとる引数をビットに分割したも
ので、その数は引数の数×ビット幅となる。
FIG. 17 shows the grammar of the arithmetic expression library.
As shown in FIG. 17, the arithmetic expression library has a finite list of a finite list of arithmetic operators / arguments, a finite list of input parameters, and a finite list of Boolean expressions in which output parameters are represented by expressions consisting of input parameters. . Here, arithmetic operators are operators such as + and =. An argument is any argument that the operator takes. Further, the input parameter is an argument taken by the operator divided into bits, and the number is the number of arguments × bit width.

【0111】このような文法で記述された例題コンピュ
ータの算術式ライブラリ116を図18に示す。これは
インクリメント演算子(+1)とイコール判定述語演算
子(=)のライブラリである。それぞれの算術式の引数
の数は+1が1つで、=は2つである。したがって、レ
ジスタのビット幅は3ビットなのでブール式の引数はそ
れぞれ+1が3ビット,=が6ビットとなる。ブール式
の出力の結果は+1が3ビット,=が1ビットである。
FIG. 18 shows the arithmetic expression library 116 of the example computer described by such a grammar. This is a library of increment operator (+1) and equal decision predicate operator (=). The number of arguments of each arithmetic expression is 1 for +1 and 2 for =. Therefore, since the bit width of the register is 3 bits, the arguments of the Boolean expression are 3 bits for +1 and 6 bits for =. The output of the Boolean expression is +1 for 3 bits and = for 1 bit.

【0112】この算術式ライブラリは、限定条件の適用
時の記述レベル変換可能性判定222,メモリ公理適用時の
記述レベル変換可能性判定228,拡張再帰帰納法の適
用時の記述レベル変換可能性判定236の各処理で参照
される。
This arithmetic expression library has a description level conversion possibility judgment 222 when a limiting condition is applied, a description level conversion possibility judgment 228 when a memory axiom is applied, and a description level conversion possibility judgment when an extended recursive induction is applied. Referenced in each processing of 236.

【0113】(6−3)限定条件の適用による次状態の
制限 次に、限定条件の適用による次状態の制限224につい
て説明する。
(6-3) Limitation of Next State by Applying Limiting Condition Next, the limitation 224 of the next state by applying the limiting condition will be described.

【0114】(6−6)で詳述する動作記述によるGの
状態列挙220では、動作記述を使って設計仕様の動作
を模擬して、到達可能状態を列挙する。限定条件の適用
による次状態の制限224は動作記述によるGの状態列
挙220の処理309の限定条件の適用による次状態の
制限においてif条件式内のメモリ表現に限定条件を適用
する。適用によってif条件を真か偽にすることで次状態
が制限され、1命令単位の実行が実現できる。
In the G state enumeration 220 by the behavioral description, which will be described in detail in (6-6), the behavior of the design specification is simulated using the behavioral description to enumerate reachable states. The restriction 224 of the next state by application of the restriction condition applies the restriction condition to the memory expression in the if conditional expression in the restriction of the next state by application of the restriction condition of the processing 309 of the G state enumeration 220 by the behavioral description. By applying the if condition to true or false, the next state is limited, and execution in units of one instruction can be realized.

【0115】図5は、限定条件の適用224の手順を示
すフローチャートである。この手順の中で、処理506
の限定条件の適用時の記述レベル変換可能性判定222
では図4の手順が呼び出される。
FIG. 5 is a flow chart showing the procedure of application 224 of the limiting condition. In this procedure, process 506
222 Possibility of description level conversion when applying the limiting condition
Then, the procedure of FIG. 4 is called.

【0116】まず、処理502では、次状態の遷移条件
の算出後のif条件について、処理504〜514を施
す。以下、これらの処理を説明する。
First, in process 502, processes 504 to 514 are applied to the if condition after the calculation of the transition condition of the next state. Hereinafter, these processes will be described.

【0117】まず、処理504では、現在着目している
if条件の中にメモリ表現が含まれるか否か調べられる。
含まれている場合は処理505に進み、含まれていなけ
れば、次のif条件について再び処理502以降の処理を
施す。次に、処理505では処理504のメモリ表現に
限定条件があるかどうかを判定するために限定条件11
4を参照する。このときを、限定条件の適用時の記述レ
ベル変換可能性判定222を適用する。これについては
(6−4)で詳述する。
First, in process 504, the current focus is on.
It is checked whether a memory expression is included in the if condition.
If it is included, the process proceeds to step 505. If it is not included, the process of step 502 and subsequent steps is performed again for the next if condition. Next, in the process 505, the limiting condition 11 is determined in order to determine whether the memory expression of the process 504 has a limiting condition.
Refer to FIG. At this time, the description level conversion possibility determination 222 when the limiting condition is applied is applied. This will be described in detail in (6-4).

【0118】処理505の結果、処理506でメモリ表
現に限定条件が与えられていれば処理508に進み、な
ければ再び処理502以降の処理を施す。
As a result of the processing 505, if the limiting condition is given to the memory expression in the processing 506, the processing proceeds to the processing 508, and if not, the processing of the processing 502 and the subsequent steps is performed again.

【0119】処理508では限定条件の適用によってif
条件が真になるかどうか判定する。この判定は、公知の
技術、すなわち公知の定理証明プログラムなどを用いて
行えばよい。定理証明プログラムについては、例えば、
Chang & Lee著“コンピュータによる定理の証明”(日
本コンピュータ協会発行、1983年)などに開示され
ている。
In processing 508, if
Determine if the condition is true. This determination may be performed using a known technique, that is, a known theorem proof program. For the theorem proof program, for example,
It is disclosed in Chang &Lee's"Proof of Theorem by Computer" (published by Japan Computer Association, 1983).

【0120】処理508で真が成立したならば、処理5
10に進み、現在着目しているifーthen節より後のif−
then節を削除し、処理を終了する。
If the truth is established in process 508, process 5
Go to 10, if-after the current if-then clause
Delete the then clause and end the process.

【0121】処理508で真が成立しなければ、処理5
12で、限定条件の適用によってif条件が偽になるかど
うか判定する。この判定も処理508と同様に公知の技
術で可能である。
If true is not established in process 508, process 5
At 12, it is determined whether the if condition becomes false by applying the limiting condition. This determination can be made by a known technique as in the process 508.

【0122】処理512で偽が成立したならば、処理5
14に進み、現在着目しているif−then節を削除し、再
び処理502以降の処理を施す。成立しない場合は処理
502以降の処理を施す。
If false is established in process 512, process 5
In step 14, the if-then clause currently being focused on is deleted, and the processing after the processing 502 is performed again. Process if not established
Perform processing after 502.

【0123】(6−4)限定条件の適用時の記述レベル
変換可能性判定 次に、限定条件の適用時の記述レベル変換可能性判定2
22について説明する。
(6-4) Judgment Level Conversion Possibility Judgment When Applying Limiting Condition Next, description level conversion possibility judgment 2 when applying a limiting condition
22 will be described.

【0124】(6−6)で詳述する動作記述によるGの
状態列挙220では、メモリ表現を評価するために、限
定条件114を参照して、メモリ表現のアドレスが限定
条件114のアドレスと一致することを判定することが
ある。一致した場合、アドレスの表現が一方は算術式で
もう一方はブール式表現であったときは、ブール式表現
を算術式表現に変換が可能である。
In the G state enumeration 220 by the behavioral description which will be described in detail in (6-6), in order to evaluate the memory expression, the limiting condition 114 is referred to so that the address of the memory expression matches the address of the limiting condition 114. You may decide to do. If they match, if one of the address expressions is an arithmetic expression and the other is a Boolean expression, the Boolean expression can be converted into an arithmetic expression.

【0125】図4は、限定条件の適用時の記述レベル変
換可能性判定222の手順を示すフローチャートであ
る。まず処理402では、限定条件のすべてのアドレス
について、処理404〜408を施す。以下、これらの
処理を説明する。
FIG. 4 is a flowchart showing the procedure of the description level conversion possibility determination 222 when the limiting condition is applied. First, in process 402, processes 404 to 408 are performed for all the addresses of the limiting conditions. Hereinafter, these processes will be described.

【0126】まず、処理404では、メモリのアドレス
が限定条件のアドレスと一致するかどうか判定する。そ
のとき、一方が算術式で、もう一方がブール式であった
場合は、算術式ライブラリ116を用いて算術式をブー
ル式に変換した後、ブール式で一致の判定を行う。ブー
ル式での一致の判定については公知の技術を用いればよ
い。判定の結果、一致した場合は処理406に進み、一
致しなければ、限定条件の次のアドレスについて再び処
理402以降の処理を施す。処理406では、処理40
4で算術式ライブラリ116を用いたかどうか判定し、
用いていれば処理408でブール式を算術式に変換し、
再び処理402以降の処理を施す。用いていなければ4
02以降の処理を施す。
First, in process 404, it is determined whether the memory address matches the address of the limiting condition. At this time, if one is an arithmetic expression and the other is a Boolean expression, the arithmetic expression library 116 is used to convert the arithmetic expression into a Boolean expression, and then the Boolean expression is used to determine whether or not there is a match. A publicly known technique may be used for determining the coincidence by the Boolean expression. As a result of the determination, if they match, the process proceeds to step 406, and if they do not match, the process after step 402 is performed again for the address next to the limiting condition. In process 406, process 40
It is determined whether the arithmetic expression library 116 is used in 4,
If it is used, process 408 converts the Boolean expression to an arithmetic expression,
The processing after the processing 402 is performed again. 4 if not used
The processing after 02 is performed.

【0127】(6−5)メモリ公理適用時の記述レベル
変換可能性判定 次に、メモリ公理適用時の記述レベル変換可能性判定2
28について説明する。
(6-5) Judgment Level Conversion Possibility When Applying Memory Axiom Next, description level conversion possibility judgment 2 when applying memory axiom
28 will be described.

【0128】動作記述によるGの状態列挙220では処
理310の次状態と遷移条件の算出後にメモリ公理によ
る書き換え226を適用する。(6−6)で詳述する
が、メモリ公理による書き換え226では、if条件が成
り立つならば≠の算術式が成り立つかどうかを判定す
る。その判定が成り立った場合、そのif条件と≠の算術
式は等しくなる可能性がある。また、≠の算術式がelse
if条件で成り立った場合、その条件よりも前のif条件、
またはelseif条件が=の算術式と等しくなっている可能
性がある。そこで、メモリ公理適用時の記述レベル変換
228では、if条件がブール式のとき、if条件と算術式
がイコールと判定されれば、そのif条件を算術式に変換
する。
In the G state enumeration 220 by the behavioral description, the rewriting 226 by the memory axiom is applied after the calculation of the next state and the transition condition of the process 310. As will be described in detail in (6-6), in the rewriting 226 based on the memory axiom, if the if condition is satisfied, it is determined whether the arithmetic expression ≠. If the judgment is satisfied, the if condition and the arithmetic expression of ≠ may be equal. Also, the arithmetic expression ≠ is else
If it is satisfied by if condition, if condition before that condition,
Or elseif condition may be equal to = arithmetic expression. Therefore, in the description level conversion 228 when the memory axiom is applied, if the if condition is a Boolean expression and the if condition and the arithmetic expression are determined to be equal, the if condition is converted to the arithmetic expression.

【0129】図7はメモリ公理適用時の記述レベル変換
可能性判定228の手順を示すフローチャートである。
まず処理702では、現在着目している(つまり、メモ
リ公理を適用できた)if条件のすべてのブール式につい
て、処理704〜706を施す。処理704では≠の算
術式とif条件のブール式が等しいかどうか判定する。算
術式とブール式の判定、つまり一致判定については(6
−4)の技術を用いればよい。判定の結果、一致すれば
処理706においてブール式を≠の算術式に変換し、そ
のif条件についての処理は終了する。一致しなければ、
再び処理702を施し、もしすべてのブール式が一致し
なければ処理708に進む。
FIG. 7 is a flow chart showing the procedure of the description level conversion possibility determination 228 when the memory axiom is applied.
First, in process 702, processes 704 to 706 are performed for all Boolean expressions of the if condition that are currently focused (that is, the memory axiom can be applied). In process 704, it is determined whether the arithmetic expression of ≠ and the Boolean expression of the if condition are equal. For the judgment of arithmetic expressions and Boolean expressions, that is, the coincidence judgment, see (6
The technique of -4) may be used. If the result of determination is that they match, the Boolean expression is converted to an arithmetic expression ≠ in processing 706, and the processing for the if condition ends. If they do not match,
The process 702 is performed again, and if all the Boolean expressions do not match, the process proceeds to the process 708.

【0130】処理708では処理702で着目していた
if条件よりも前のif条件について、処理710を施す。
処理710では現在着目しているif条件のすべてのブー
ル式について処理712〜処理714を施す。処理71
2では≠の算術式の≠を=に置き換えた式とブール式の
一致を判定する。判定の結果、一致すれば処理714で
ブール式を=の算術式に変換し、処理を終了する。一致
しなければ、再び処理710を施し、すべてのブール式
が一致しなければ、次のif条件について処理708を施
す。
In process 708, attention was paid to process 702.
The process 710 is performed for the if condition before the if condition.
In process 710, processes 712 to 714 are performed on all the Boolean expressions of the if condition which are currently focused. Process 71
In 2, it is determined whether the expression obtained by replacing ≠ in an arithmetic expression of ≠ with a Boolean expression. If the result of determination is that they match, in step 714, the Boolean expression is converted into an arithmetic expression of =, and the processing ends. If they do not match, the process 710 is performed again, and if all Boolean expressions do not match, the process 708 is performed for the next if condition.

【0131】(6−6)動作記述によるGの状態列挙、
およびメモリ公理による書き換え 次に、動作記述によるGの状態列挙220およびメモリ
公理による書き換え226について説明する。
(6-6) Enumerate G states by behavioral description,
And Rewriting by Memory Axiom Next, the G state enumeration 220 by behavioral description and the rewriting 226 by memory axiom will be described.

【0132】動作記述によるGの状態列挙220とメモ
リ公理による書き換え226とは、対になって動作し、
動作記述を使って設計仕様の動作を模擬して、到達可能
状態を列挙する。到達可能状態とその状態間の遷移は、
書き換え後Gデータ240の形に変換されて記憶され
る。
The G state enumeration 220 by the behavioral description and the rewriting 226 by the memory axiom operate as a pair,
Enumerate reachable states by simulating the behavior of design specifications using behavioral descriptions. The reachable states and the transitions between them are
After rewriting, the data is converted into the G data 240 and stored.

【0133】図3は、動作記述によるGの状態列挙22
0の手順を示すフローチャートである。この手順の中
で、処理309の限定条件の適用による次状態の制限2
24では図5の手順が、また、処理311のメモリ公理
を適用した書き換え226では図6の手順が呼び出され
る。
FIG. 3 shows the G state enumeration 22 by the behavioral description.
It is a flowchart which shows the procedure of 0. In this procedure, the next state is restricted by applying the restriction condition of the process 309 2
In 24, the procedure of FIG. 5 is called, and in rewriting 226 to which the memory axiom of the process 311 is applied, the procedure of FIG. 6 is called.

【0134】図3において、まず処理302では、変数
の初期化をする。初期化される変数は、N,書き換え後
関数FIFO,書き換え前関数FIFO、および書き換
え待ちリストである。
In FIG. 3, first, in process 302, variables are initialized. The variables to be initialized are N, post-rewrite function FIFO, pre-rewrite function FIFO, and rewrite wait list.

【0135】次に、処理304では、書き換え前関数F
IFOから関数を1つずつ取り出して、処理306〜3
22を施す。以下、これらの処理を説明する。
Next, in process 304, the pre-rewriting function F
The functions are extracted from the IFO one by one, and the processes 306 to 3 are performed.
22 is applied. Hereinafter, these processes will be described.

【0136】まず、処理306では、この関数G(初期
化関数)の右辺すなわちこの関数Gの定義本体(初期値
状態)が、書き換え待ちリストAに加えられる。次に、
処理308では、動作記述G0(挙動表示関数)を適用
して状態を列挙する。次に処理309によって限定条件
の適用による次状態の制限224を適用して次に現われ
る状態を限定する。処理309の結果にメモリの書き換
えが起こっていれば、処理310で図19の(b)に示
す書き換え用テーブルを用いて限定条件を書き換える。
その結果をさらに処理311によってメモリ公理を適用
して書き換える。
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. Next, in process 309, the next state restriction 224 is applied by applying the limiting condition to limit the next appearing state. If the result of processing 309 indicates that the memory has been rewritten, the limiting condition is rewritten in processing 310 using the rewriting table shown in FIG.
The result is further rewritten by processing 311 by applying the memory axiom.

【0137】この書き換えは、1クロック分だけの設計
仕様の動作を模擬して次の状態を算出することに相当し
ており、書き換え結果が次状態を表わしている。
This rewriting is equivalent to calculating the next state by simulating the operation of the design specification for only one clock, and the rewriting result represents the next state.

【0138】なお、ここでG0項とはG0(a,
b,...)のような項であり、プログラマブルレジスタ
と非プログラマブルレジスタのとり得る値を規定する条
件式であり、この条件式で規定されるプログラマブルレ
ジスタと非プログラマブルレジスタの値のつくる状態と
も見なせる。
Here, the G0 term means G0 (a,
b, ...) is a conditional expression that defines the values that programmable registers and non-programmable registers can take. Can be seen.

【0139】書き換え後の関数定義は、処理312で書
き換え後関数FIFOに追加され、書き換え後の各G0
項は、処理314で書き換え待ちリストBに追加され
る。
The rewritten function definition is added to the rewritten function FIFO in the process 312, and each rewritten G0 is rewritten.
The term is added to the rewrite waiting list B in process 314.

【0140】G0項の書き換えの際、定義本体の書き換
え時は、定義本体の直後に等号を介して、書き換え結果
を追加する。定義本体の直後の等号を介した式の書き換
え時は、この式をその書き換え結果で置換する。メモリ
公理を適用した書き換えの詳細は後述する。
At the time of rewriting the G0 term, at the time of rewriting the definition body, the rewriting result is added via the equal sign immediately after the definition body. When rewriting an expression 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.

【0141】次に、処理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.

【0142】まず、処理318では、“GN(P,M)
=このG0項”がTEMPに代入される。ここで、“G
N”のNには、このときのNの値が使われる。N=1の
ときにはG1となり、N=2のときにはG2となる。
First, in process 318, "GN (P, M)"
= This G0 term "is substituted into TEMP. Here," G
The value of N at this time is used as N of N ″. When N = 1, it becomes G1, and when N = 2, it becomes G2.

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

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

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

【0146】上記の動作記述G0(挙動表示関数)によ
るG(初期化関数)の状態列挙212は、簡単にいえば、
Gの右辺(初期値状態)をどんどんと展開していって、
現われる全状態を洗い出す処理である。G0項が途中で
出現する状態である。そのG0項をG0(挙動表示関
数)を用いて展開して書き換えていくということは、1
クロックだけ時間を進めることに相当する。G0項をど
んどんと展開していくことにより、到達可能な状態をす
べて求めることができる。初期値状態にはC,Mのよう
な外部記憶領域変数が含まれているので、1つの状態で
はなく状態群である。G0項が表わす状態も1つの状態
ではなく、G0項が表わす条件式で定まる状態群を指し
ている。したがって、G0項の展開では一度の展開で複
数の到達可能な状態が求められている。
The state enumeration 212 of G (initialization function) by the above-mentioned behavioral description G0 (behavior display function) is simply described as follows.
Expanding the right side of G (initial value state) steadily,
This is a process to wash out all the states that appear. 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 group of states 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.

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

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

【0149】図6は、メモリ公理による書き換え226
の処理手順を示すフローチャートである。この手順の中
で、処理610のメモリ公理適用時の記述レベル変換可
能性判定228では図7の手順が呼び出される。
FIG. 6 shows a rewriting 226 based on the memory axiom.
6 is a flowchart showing the processing procedure of FIG. In this procedure, the procedure of FIG. 7 is called in the description level conversion possibility determination 228 when the memory axiom is applied in the processing 610.

【0150】メモリ公理とは、「書き換えなしメモリデ
ータ不変公理」の略称であり、次の式で表わされる。
The memory axiom is an abbreviation for "memory data invariant axiom without rewriting" and is expressed by the following equation.

【0151】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,
c is store data. This expression has the following meaning: "If f and s are different, the address f after writing c to address s
The memory data of is the same as the memory data when it is not written. "

【0152】図6を参照して、メモリ公理による書き換
え226では、まず処理602で、動作記述の右辺の各
if−then節を探し出して各G0項に処理604以降の処
理を施す。
Referring to FIG. 6, in the rewriting 226 based on the memory axiom, first, in process 602, each of the right side of the behavioral description is processed.
The if-then clause is searched for, and the processing after the processing 604 is applied to each G0 term.

【0153】処理604では、上記のメモリ公理を適用
する候補を抽出する。すなわち、M[c/s]とM
(f)の形の要素が含まれているか否かを調べる。含ま
れている場合は処理606に進み、含まれていない場合
は次のG0項について再び処理604以降の処理を施
す。
In process 604, 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 606. If it is not included, the process after step 604 is performed again for the next G0 term.

【0154】処理608では、メモリ公理適用条件を確
認する。すなわち、s≠fが真かが調べられる。この判
定は、公知の技術、すなわち公知の定理証明プログラム
などを用いて行えばよい。定理証明プログラムについて
は、例えば、Chang & Lee著“コンピュータによる定理
の証明”(日本コンピュータ協会発行、1983年)な
どに開示されている。
In step 608, 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).

【0155】処理610,611は、処理608で真が
成立したときのみ実行される。処理610では、M
(f)をM[c/s](f)で置換する。また処理61
1では、メモリ公理適用時の記述レベル変換可能性判定
228を適用する。
Processes 610 and 611 are executed only when true is established in process 608. In process 610, M
Replace (f) with M [c / s] (f). Further processing 61
In No. 1, the description level conversion possibility determination 228 when the memory axiom is applied is applied.

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

【0157】次に、図22の主関数Gの記述2200と
補助関数G0の記述2202とを用いて、図3の動作記
述によるGの状態列挙220の動作を具体的に説明す
る。この際、図23の状態列挙後Gデータ2300と図
24の書き換え後Gデータ240も参照する。
Next, using the description 2200 of the main function G and the description 2202 of the auxiliary function G0 of FIG. 22, the operation of the G state enumeration 220 according to the operation description of FIG. 3 will be specifically described. At this time, the state-enumerated G data 2300 in FIG. 23 and the rewritten G-data 240 in FIG. 24 are also referred to.

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

【0159】次に、処理304により、Gの定義220
0について処理306〜322が施される。まず、処理
306では、Gの定義本体2200が書き換え待ちリス
トAに加えられる。処理308では、定義本体2200
を動作記述2202を適用して状態を列挙する。処理3
09では、処理308の書き換えの結果に限定条件の適
用による次状態の制限224(図5)とメモリアクセス
時の記述レベル変換可能性判定222(図4)を行う。
メモリの書き換えがないので処理310では、限定条件
の書き換えは行われない。状態列挙の書き換えの結果
が、図23の(a)である。書き換えの結果にはif条件が
ないので限定条件の適用による次状態の制限224は行
われない。また、限定条件114への参照もないので限
定条件の適用時の記述レベル変換判定222も行われな
い。
Next, in process 304, the definition 220 of G is set.
Processes 306 to 322 are performed for 0. First, in process 306, the definition body 2200 of G is added to the rewriting waiting list A. In process 308, the definition body 2200
The behavioral description 2202 is applied to enumerate the states. Processing 3
In 09, the next state restriction 224 (FIG. 5) and the description level conversion possibility determination 222 (FIG. 4) at the time of memory access are performed by applying the limiting condition to the rewriting result of the process 308.
Since the memory is not rewritten, the process 310 does not rewrite the limiting condition. The result of rewriting the state enumeration is shown in FIG. Since there is no if condition in the rewriting result, the next state is not restricted 224 by applying the limiting condition. Further, since there is no reference to the limiting condition 114, the description level conversion judgment 222 when the limiting condition is applied is also not performed.

【0160】さらに、処理311では、メモリ公理によ
る書き換え226(図6)が行われる。しかし、図23
の(a)の記述では、if条件がないのでメモリ公理によ
る書き換えは行われない。
Further, in process 311, rewriting 226 (FIG. 6) by the memory axiom is performed. However, FIG.
In the description of (a), since there is no if condition, rewriting by the memory axiom is not performed.

【0161】処理312で、関数定義、すなわち図23
の(a)は書換後FIFOに追加され、処理314で、
書き換え後のG0項、即ちG0((FUNCa C),
M,1,M(C),MM(C))は、書き換え待ちリス
トBに追加される。
In process 312, the function definition, that is, FIG.
(A) is added to the FIFO after rewriting, and in processing 314,
The G0 term after rewriting, that is, G0 ((FUNCaC),
M, 1, M (C) and MM (C)) are added to the rewriting waiting list B.

【0162】処理316により、書き換え待ちリストB
のG0項、即ちG0((FUNCa C),M,1,M(C),
MM(C))について処理318〜322が施される。
By the processing 316, the rewriting waiting list B
G0 term of G0, that is, G0 ((FUNCa C), M, 1, M (C),
Processes 318 to 322 are performed on MM (C)).

【0163】処理318では、“GN(P,M)=この
項”、すなわち、下記の数1がTEMPに代入される。
In process 318, "GN (P, M) = this term", that is, the following expression 1 is substituted into TEMP.

【0164】[0164]

【数1】 G1(C,M) =G0((FUNCa C),M,1,M(C),MM(C)) …(数1) 処理320で、TEMPの右辺、すなわち数1の右辺
が、書き換え前関数FIFOの右辺または書き換え後関数F
IFOの中辺に既にあるか否かが調べられる。これは新
規状態なので、処理322に進み、TEMPを書き換え
前FIFOに代入およびN=N+1が実行される。この
とき、書き換え待ちリストBが空であるので、再び処理
304に進み、次の処理が行われる。
## EQU1 ## G1 (C, M) = G0 ((FUNCaC), M, 1, M (C), MM (C)) (Equation 1) In process 320, the right side of TEMP, that is, the right side of Equation 1 Is the right side of pre-rewrite function FIFO or post-rewrite function F
It is checked if it is already in the middle of the IFO. Since this is a new state, the process proceeds to step 322, TEMP is assigned to the pre-rewriting FIFO, and N = N + 1 is executed. At this time, since the rewriting waiting list B is empty, the process proceeds to the process 304 again, and the next process is performed.

【0165】再び処理304により、Gの定義数1につ
いて処理306〜322が施される。まず、処理306
では、Gの定義本体数1の右辺が書き換え待ちリストA
に加えられる。処理308では、定義本体数1の右辺を
動作記述2202を適用して状態を列挙し、処理309
で、その書き換えの結果に限定条件の適用による次状態
の制限224(図5)と限定条件の適用時の記述レベル
変換可能性判定222(図4)を行う。状態列挙の書き
換えの結果が、図23の(b)である。
By the process 304 again, the processes 306 to 322 are performed for the definition number 1 of G. First, processing 306
Then, the right side of the definition body number 1 of G is the rewriting waiting list A
Is added to In process 308, the behavior description 2202 is applied to the right side of the definition body number 1 to enumerate states, and process 309
Then, the next state restriction 224 (FIG. 5) by applying the limiting condition to the rewriting result and the description level conversion possibility determination 222 (FIG. 4) when the limiting condition is applied are performed. The result of rewriting the state enumeration is shown in FIG.

【0166】書き換えの結果に限定条件の適用による次
状態の制限224を行う。まず、処理502により第1
のif条件について処理504〜514が施される。処理
504ではメモリ表現が含まれるか否かを調べる。第1
のif条件にはM(C)が含まれているので処理506
で限定条件を確認する。限定条件114への参照が行わ
れるので、限定条件の適用時の記述レベル変換可能性判
定222が実行される。
The next state is limited 224 by applying the limiting condition to the result of rewriting. First, by the process 502, the first
The processings 504 to 514 are performed for the if condition. In process 504, it is checked whether or not the memory expression is included. First
Since if condition of No. includes M (C), processing 506
Check the limited conditions with. Since the limiting condition 114 is referenced, the description level conversion possibility determination 222 when the limiting condition is applied is executed.

【0167】処理402によりM(C)について限定条
件114を参照して、処理404〜408が施される。
まず、処理404でアドレスの一致判定が行われる。
By the process 402, the processes 404 to 408 are performed with reference to the limiting condition 114 for M (C).
First, in process 404, the address coincidence determination is performed.

【0168】その結果、限定条件114の1番目のアド
レスCと一致する。処理406で算術式ライブラリ11
6への参照が行われたかどうか判定が行われる。この場
合、参照は行われていないので、処理は終了する。
As a result, it matches the first address C of the limiting condition 114. Arithmetic expression library 11 in processing 406
A determination is made whether a reference to 6 has been made. In this case, since the reference is not made, the process ends.

【0169】限定条件114へ参照の結果、M(C)は
(M(C)≠0)&(M(C)≠C+1)という限定条
件が与えられている。そこで、処理508でif条件が真
になるかどうか判定する。その結果、真にはならないの
で、処理512に進み、if条件が偽になるかどうか判定
を行う。この結果、偽になるので処理514に進み、第
1のif−then節を削除する。
As a result of referring to the limiting condition 114, the limiting condition of M (C) is (M (C) ≠ 0) & (M (C) ≠ C + 1). Therefore, in process 508, it is determined whether the if condition is true. As a result, since it is not true, the process proceeds to step 512, and it is determined whether the if condition is false. As a result, since it becomes false, the process proceeds to step 514, and the first if-then clause is deleted.

【0170】再び、処理502に戻って、第2のif条件
について処理504〜514が施される。処理504で
はメモリ表現が含まれるか否かを調べる。第2のif条件
にはM((FUNCa C))とM(C)が含まれている
ので処理506で限定条件を確認する。限定条件114
への参照が行われるので、限定条件の適用時の記述レベ
ル変換可能性判定222(図4)が実行される。
Returning again to the process 502, the processes 504 to 514 are applied to the second if condition. In process 504, it is checked whether or not the memory expression is included. Since the second if condition includes M ((FUNCaC)) and M (C), the limiting condition is confirmed in processing 506. Limited condition 114
Is referred to, the description level conversion possibility determination 222 (FIG. 4) when the limiting condition is applied is executed.

【0171】処理402によりM((FUNCa C))
について限定条件114を参照して、処理404〜40
8が施される。まず、処理404でアドレスの一致判定
が行われる。限定条件114の2番目のアドレスC+1
は算術式で(FUNCa C)はブール式であるため、一
致には算術式ライブラリ116が参照される。その結
果、一致するので、処理406で算術式ライブラリ11
6への参照が行われたかどうか判定が行われる。この場
合、参照が行われているので、Gデータ中に現われるす
べての(FUNCa)ブール式を+1に置き換える。
By the processing 402, M ((FUNCa C))
About processing 404-40 with reference to limiting condition 114
8 is applied. First, in process 404, the address coincidence determination is performed. Second address C + 1 of limiting condition 114
Is an arithmetic expression and (FUNCa C) is a Boolean expression, so the arithmetic expression library 116 is referenced for matching. As a result, since they match, the arithmetic expression library 11 is processed in step 406.
A determination is made whether a reference to 6 has been made. In this case, all references to (FUNCa) Boolean expressions appearing in the G data are replaced with +1 because a reference is made.

【0172】M(C)については、第1のif条件と同様
で、(M(C)≠0)&(M(C)≠C+1)という限
定条件が与えられている。
As for the M (C), similar to the first if condition, a limiting condition of (M (C) ≠ 0) & (M (C) ≠ C + 1) is given.

【0173】限定条件114へ参照の結果、M(C+
1)にはM(C+1)=0,M(C)には(M(C)≠
0)&(M(C)≠C+1)という限定条件が与えられ
ている。そこで、処理508でif条件が真になるかどう
か判定する。その結果、真にはならないので、処理51
2に進み、if条件が偽になるかどうか判定を行う。この
結果、偽にならないので再び処理502に進む。
As a result of referring to the limiting condition 114, M (C +
1), M (C + 1) = 0, and M (C) has (M (C) ≠
0) & (M (C) ≠ C + 1). Therefore, in process 508, it is determined whether the if condition is true. As a result, since it is not true, the processing 51
Proceeding to 2, it is determined whether the if condition becomes false. As a result, since it is not false, the process proceeds to step 502 again.

【0174】第3のif条件はelse節なので限定条件の適
用による次状態の制限224は終了する。
Since the third if condition is an else clause, the limitation 224 of the next state due to the application of the limiting condition ends.

【0175】処理310によって、第2と第3のthen節
にはメモリの書き換えM[(FUNCb MM(C))/
M(C)]があるので図23の(d)に示す書き換え用
のテーブルを生成し、書き換えが行われたメモリをmと
名付ける。
By the process 310, memory rewriting M [(FUNCb MM (C)) / is written in the second and third then clauses.
M (C)], a rewriting table shown in FIG. 23D is generated, and the rewritten memory is named m.

【0176】以上の書き換えの結果が図23の(c)で
ある。
The result of the above rewriting is shown in FIG.

【0177】さらに、処理311では、メモリ公理によ
る書き換え216(図4)が行われる。まず、処理60
2では、記述の右辺のif−then節を探し出して、各if−
then節に処理604以降の処理を施す。図23の(c)
の記述では、右辺には2つのif−then節(最後のelse節
を含む)がある。
Further, in process 311, rewriting 216 (FIG. 4) by the memory axiom is performed. First, processing 60
In step 2, find the if-then clause on the right side of the description, and
The processing after the processing 604 is applied to the then clause. FIG. 23 (c)
In the above description, there are two if-then clauses (including the last else clause) on the right side.

【0178】処理604では、M[c/s]とM(f)
の形の要素が含まれているか否かを調べる。第1のif−
then節には、M[c/s]としてm(M[(FUNCb
MM(C))/M(C)])が含まれ、M(f)として
M(C+1),MM(C+1)が含まれている。
In processing 604, M [c / s] and M (f)
Check whether the element of the form is included. First if-
In the then clause, m [M [(FUNCb
MM (C)) / M (C)]), and M (f) includes M (C + 1) and MM (C + 1).

【0179】処理608では、第1のif条件が真のとき
s≠fが真かどうかが調べられる。したがって、((C
ONFa C+1 M(C))or(CONFb M(C+
1)M(C)))が真の時にまずM(C)≠C+1が真
かが調べられるが、その結果、M(C)≠C+1は偽で
あることがわかり、処理は606に戻る。今度は、
((CONFa C+1 M(C))or(CONFb M
(C+1)M(C)))が真の時にM(C)≠M(C+
1)が真かが調べられるが、その結果、M(C)≠M
(C+1)は偽であることがわかり、処理は402に戻
る。
In step 608, it is checked whether s ≠ f is true when the first if condition is true. Therefore, ((C
ONFa C + 1 M (C)) or (CONFb M (C +
1) When M (C))) is true, it is first checked whether M (C) ≠ C + 1 is true. As a result, it is found that M (C) ≠ C + 1 is false, and the process returns to 606. Next time,
((CONFa C + 1 M (C)) or (CONFb M
When (C + 1) M (C)) is true, M (C) ≠ M (C +
1) is checked for truth, and as a result, M (C) ≠ M
(C + 1) is found to be false, and the process returns to 402.

【0180】再び処理602に戻り、処理604で第2
のif−then節にM[c/s]とM(f)の形の要素が含
まれているか否かを調べる。第2のif−then節には、M
[c/s]としてm(M[(FUNCb MM(C))
/M(C)])が含まれ、M(f)としてM(C+
1),MM(C+1)が含まれている。
Returning to the processing 602 again, the second processing is executed in the processing 604.
Of the if-then clause of M [c / s] and M (f). In the second if-then clause, M
M (M [(FUNCb MM (C))) as [c / s]
/ M (C)]) is included, and M (C + is included as M (f).
1) and MM (C + 1) are included.

【0181】処理608では、s≠fが真かが調べられ
る。第2のif−then節は、第1のif条件が偽で第2のif
条件が真の時に実行されるので、その時にs≠fが真か
が調べられる。したがって、((CONFa C+1 M
(C))o (CONFb M(C+1) M(C)))
が偽の時にまずM(C)≠C+1が真かが調べられる
が、その結果M(C)≠C+1は真であることがわか
り、処理は610に進み、M(C+1)はm(C+1)
に置換される。さらに、メモリ公理適用時の記述レベル
変換可能性判定228(図7)が行われる。
In process 608, it is checked whether s ≠ f is true. The second if-then clause is the second if if the first if condition is false.
Since it is executed when the condition is true, it is then checked whether s ≠ f is true. Therefore, ((CONFa C + 1 M
(C)) o (CONFb M (C + 1) M (C)))
When is false, it is first checked whether M (C) ≠ C + 1 is true. As a result, it is found that M (C) ≠ C + 1 is true, and the processing advances to 610, where M (C + 1) is m (C + 1).
Is replaced by. Further, the description level conversion possibility determination 228 (FIG. 7) when the memory axiom is applied is performed.

【0182】処理702によって第2のif条件について
処理704〜706を施す。第2のif−then節はelse節
なので条件の中にブール式は存在しない。したがって処
理708に進み、第1のif条件について処理710を行
う。
In step 702, steps 704 to 706 are executed for the second if condition. Since the second if-then clause is an else clause, there is no Boolean expression in the condition. Therefore, the processing proceeds to the processing 708, and the processing 710 is performed for the first if condition.

【0183】処理710では、第1のif条件にブール式
が含まれているか否かを調べる。
In process 710, it is checked whether or not the first if condition includes a Boolean expression.

【0184】((CONFa C+1 M(C))or(C
ONFb M(C+1)M(C)))には(CONFa
C+1 M(C))と(CONFb M(C+1)M
(C))が含まれている。
((CONFa C + 1 M (C)) or (C
ONFb M (C + 1) M (C))) is (CONFa
C + 1 M (C)) and (CONFb M (C + 1) M
(C)) is included.

【0185】まず、処理712で算術式ライブラリ11
6を用いてM(C)=C+1と(CONFa C+1 M
(C))が一致するかどうか判定する。その結果、一致
するのでGデータ中に現われるすべての(CONFa)
ブール式を=に置き換えメモリ公理適用時の記述レベル
変換可能性判定228は終了する。
First, in process 712, the arithmetic expression library 11
6 using M (C) = C + 1 and (CONFa C + 1 M
It is determined whether (C)) matches. As a result, all (CONFa) appearing in the G data match because they match.
The Boolean expression is replaced with =, and the description level conversion possibility determination 228 when the memory axiom is applied ends.

【0186】処理606に戻って、今度は((CONF
a C+1 M(C))or(CONFb M(C+1)M
(C)))が偽の時にM(C)≠M(C+1)が真かが
調べられるが、その結果M(C)≠M(C+1)は真で
あることがわかり、処理は610に進む。MM(C+
1)はmm(C+1)に置換され、さらに、メモリ公理
適用時の記述レベル変換可能性判定228(図7)が行
われる。
Returning to processing 606, this time ((CONF
a C + 1 M (C)) or (CONFb M (C + 1) M
(C))) is false, it is checked whether M (C) ≠ M (C + 1) is true. As a result, it is found that M (C) ≠ M (C + 1) is true, and the process proceeds to 610. . MM (C +
1) is replaced with mm (C + 1), and the description level conversion possibility determination 228 (FIG. 7) when the memory axiom is applied is further performed.

【0187】処理702によって第2のif条件について
処理704〜706を施す。第2のif−then節はelse節
なので条件の中にブール式は存在しない。したがって処
理708に進み、第1のif条件について処理710を行
う。
In step 702, steps 704 to 706 are performed on the second if condition. Since the second if-then clause is an else clause, there is no Boolean expression in the condition. Therefore, the processing proceeds to step 708, and the processing 710 is performed for the first if condition.

【0188】処理710では、第1のif条件にブール式
が含まれているか否かを調べる。
In step 710, it is checked whether or not the first if condition includes a Boolean expression.

【0189】((CONFa C+1 M(C))or(C
ONFb M(C+1)M(C)))には(CONFa
C+1 M(C))と(CONFb M(C+1)M
(C))が含まれている。
((CONFa C + 1 M (C)) or (C
ONFb M (C + 1) M (C))) is (CONFa
C + 1 M (C)) and (CONFb M (C + 1) M
(C)) is included.

【0190】まず、処理712で算術式ライブラリ11
6を用いてM(C)=M(C+1)と(CONFa C
+1 M(C))が一致するかどうか判定する。その結
果、一致しないので、今度はM(C)=M(C+1)と
(CONFb M(C+1)M(C))が一致するかど
うか判定する。その結果、一致するのでGデータ中に現
われるすべての(CONFb)ブール式を=に置き換え
メモリ公理適用時の記述レベル変換可能性判定228は
終了する。
First, in step 712, the arithmetic expression library 11
6 using M (C) = M (C + 1) and (CONFa C
+1 M (C)) is determined. As a result, since they do not match, it is determined whether or not M (C) = M (C + 1) and (CONFb M (C + 1) M (C)) match this time. As a result, since they match, all (CONFb) Boolean expressions appearing in the G data are replaced with =, and the description level conversion possibility determination 228 when the memory axiom is applied ends.

【0191】以上のメモリ公理による書き換えの結果
が、図23の(e)である。
The result of rewriting by the above memory axiom is (e) of FIG.

【0192】処理312で関数定義、すなわち図23の
(e)全体は書き換え後FIFOに追加され、処理31
6で書き換え後のG0項、即ちG0(C+1,m,0,
M(C+1),MM(C+1))とG0(C+1)+
1,m,1,m(C+1),mm(C+1))は、書き
換え待ちリストBに追加される。
In the process 312, the function definition, that is, the whole (e) of FIG. 23 is added to the FIFO after rewriting, and the process 31
G0 term after rewriting at 6, that is, G0 (C + 1, m, 0,
M (C + 1), MM (C + 1)) and G0 (C + 1) +
1, m, 1, m (C + 1), mm (C + 1)) are added to the rewriting waiting list B.

【0193】処理316により、書き換え待ちリストB
の最初のG0項、即ちG0(C+1,m,0,M(C+
1),MM(C+1))について処理318〜322が
施される。
By the processing 316, the rewriting waiting list B
The first G0 term of G0, that is, G0 (C + 1, m, 0, M (C +
1) and MM (C + 1)) are processed 318 to 322.

【0194】処理318では、“GN(P,M)=この
項”、すなわち、下記の数2がTEMPに代入される。
In process 318, "GN (P, M) = this term", that is, the following equation 2 is substituted into TEMP.

【0195】[0195]

【数2】 G2(C,M) =G0(C+1,m,0,M(C+1),MM(C+1)) …(数2) 処理320で、TEMPの右辺、すなわち数2の右辺
が、書き換え前関数FIFOの右辺または書き換え後関数F
IFOの中辺に既にあるか否かが調べられる。これは新
規状態なので、処理322に進み、TEMPを書き換え
前FIFOに代入およびN=N+1が実行され、次のG
0項G0(C+1)+1,m,1,m(C+1),mm
(C+1))に処理が進む。
## EQU00002 ## G2 (C, M) = G0 (C + 1, m, 0, M (C + 1), MM (C + 1)) (Equation 2) In process 320, the right side of TEMP, that is, the right side of Equation 2, is rewritten. Right side of previous function FIFO or function F after rewriting
It is checked if it is already in the middle of the IFO. Since this is a new state, the process proceeds to step 322, TEMP is assigned to the pre-rewriting FIFO and N = N + 1 is executed, and the next G
0 term G0 (C + 1) + 1, m, 1, m (C + 1), mm
The process proceeds to (C + 1)).

【0196】処理318では、“GN(P,M)=この
項”、すなわち、数3がTEMPに代入される。
In process 318, "GN (P, M) = this term", that is, the expression 3 is substituted into TEMP.

【0197】[0197]

【数3】 G3(C,M) =G0(C+1)+1,m,1,m(C+1),mm(C+1))…(数3) 処理320で、TEMPの右辺、すなわち数3の右辺
が、書き換え前関数FIFOの右辺または書き換え後関数F
IFOの中辺に既にあるか否かが調べられる。これは新
規状態なので、処理322に進み、TEMPを書き換え
前FIFOに代入およびN=N+1が実行される。この
とき、書き換え待ちリストBが空であるので、再び処理
304に進む。
## EQU00003 ## G3 (C, M) = G0 (C + 1) + 1, m, 1, m (C + 1), mm (C + 1)) (Equation 3) In process 320, the right side of TEMP, that is, the right side of Equation 3 is , The right side of pre-rewrite function FIFO or post-rewrite function F
It is checked if it is already in the middle of the IFO. Since this is a new state, the process proceeds to step 322, TEMP is assigned to the pre-rewriting FIFO, and N = N + 1 is executed. At this time, since the rewriting waiting list B is empty, the process proceeds to the process 304 again.

【0198】以上のような処理を、書き換え前関数FI
FOの残りの数2,数3について行う。
The above-mentioned processing is performed by the pre-rewriting function FI.
This is performed for the remaining number 2 and number 3 of FO.

【0199】終了時点で、書き換え後関数FIFOに
は、書き換え後Gデータ240(図24)が格納されて
おり、これが次の拡張再帰帰納法の適用で使用される。
At the end, the rewritten function FIFO stores the rewritten G data 240 (FIG. 24), which is used in the next application of the extended recursive induction.

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

【0201】まず、処理802では、まず書き換え後関
数FIFOの各関数の右辺の各項を、書き換え後関数F
IFOの中の関数の”左辺=中辺”で置換する。この置
換により、プログラマブルレジスタと非プログラマブル
レジスタの値のつくる状態を表わすG0項が、処理31
8で定義されたプログラマブルレジスタ値のみのつくる
状態を表わすG1,G2,…、項に置換される。この
時、置換後のG1,G2,…、項の実引数はプログラマ
ブルレジスタ値に施された変換を表わす。
First, in the process 802, first, each term on the right side of each function of the post-rewrite function FIFO is set to the post-rewrite function F.
Replace with "left side = middle side" of the function in the IFO. By this replacement, the G0 term representing the state created by the values of the programmable register and the non-programmable register becomes
, G1, G2, ..., Representing the states created only by the programmable register values defined in 8. At this time, the actual arguments of the terms G1, G2, ... After replacement represent the conversion performed on the programmable register value.

【0202】次に、処理804で書き換え後関数FIF
Oの各関数の中辺を削除して、“左辺=右辺”だけにす
る。
Next, in process 804, the rewritten function FIF
The middle side of each function of O is deleted and only "left side = right side" is left.

【0203】書き換え後Gデータ240(図24)に対
して、抽象化を行った結果を242(図25)に示す。
図25では、中辺の各項が削除され、プログラマブルレ
ジスタ値のみのつくる状態を表わす項のみで記述されて
いることがわかる。
The result of abstraction of the rewritten G data 240 (FIG. 24) is shown in 242 (FIG. 25).
In FIG. 25, it is understood that each item on the middle side is deleted and only the item representing the state created by the programmable register value is described.

【0204】(6−8)外部仕様への限定条件の適用 次に、外部仕様への限定条件の適用について説明する。(6-8) Application of limited conditions to external specifications Next, application of limited conditions to external specifications will be described.

【0205】限定条件を適用した抽象化後Gデータ24
2と外部仕様データ110の一致を判定するためには外
部仕様データ110に限定条件を適用する必要がある。
G data after abstraction 24 to which the limiting condition is applied
It is necessary to apply a limiting condition to the external specification data 110 in order to determine whether the 2 and the external specification data 110 match.

【0206】外部仕様への限定条件の適用は、設計仕様
データへの限定条件の適用と同様に、外部仕様データ1
10に状態列挙を施すことにより、限定条件を適用す
る。その適用は動作記述による状態列挙220(図3)
の手続きで行うことができる。
The application of the limiting condition to the external specification is the same as the application of the limiting condition to the design specification data.
The limiting condition is applied by applying the state enumeration to 10. The application is state enumeration 220 by behavioral description (FIG. 3).
The procedure can be performed.

【0207】外部仕様データ110を数4,数5のよう
にすることによって、動作記述による状態列挙220
(図3)を適用することができる。
By setting the external specification data 110 as shown in Equations 4 and 5, the state listing 220 based on the behavioral description is performed.
(FIG. 3) can be applied.

【0208】[0208]

【数4】 F(C,M)=F0(C,M) …(数4)F (C, M) = F0 (C, M) (Equation 4)

【0209】[0209]

【数5】 F0(C,M)=if M(C)=0then<C+1,M> else F0(C+1,M[MM(C)+1/M(C)]) …(数5) 状態列挙後の外部仕様データ244を図26に示す。こ
の後、抽象化を行う。これも設計仕様データの抽象化2
30(図8)の手続きで行う。
F0 (C, M) = if M (C) = 0 then <C + 1, M> else F0 (C + 1, M [MM (C) + 1 / M (C)]) (Equation 5) After state enumeration 26 shows the external specification data 244 of the above. After this, abstraction is performed. This is also an abstraction of design specification data 2
The procedure is 30 (Fig. 8).

【0210】(6−9)拡張再帰帰納法適用時の記述レ
ベル変換判定 次に、拡張再帰帰納法適用時の記述レベル変換判定につ
いて説明する。
(6-9) Description Level Conversion Judgment When Applying Extended Recursive Induction Next, description level conversion judgment when applying extended recursive induction will be described.

【0211】拡張再帰帰納法の適用234(後述)では
抽象化後の設計仕様データGと外部仕様データFが同一
かどうかを判定する。そのとき、設計仕様データの引数
にブール式表現があれば、外部仕様データの算術式との
一致を判定することにより、ブール式を算術式に変換す
ることができる。
In the application 234 (described later) of the extended recursive induction method, it is determined whether the design specification data G after abstraction and the external specification data F are the same. At this time, if the argument of the design specification data has a Boolean expression, the Boolean expression can be converted into an arithmetic expression by determining whether the argument matches the arithmetic expression of the external specification data.

【0212】図10は拡張再帰帰納法の適用時の記述レ
ベル変換判定236の手順を示すフローチャートであ
る。
FIG. 10 is a flow chart showing the procedure of the description level conversion judgment 236 when the extended recursive induction is applied.

【0213】まず、処理1002において、拡張再帰帰
納法の適用234で同一であると判定されたGN項の引
数について処理1004,1006を施す。処理100
4ではGN項の引数がブール式かどうか判定する。判定
の結果、ブール式であれば処理1006に進み、そのブ
ール式を算術式に置換する。ブール式でなければ、再び
処理1002に戻り、次の引数について処理を行う。
First, in the process 1002, the processes 1004 and 1006 are performed on the arguments of the GN term determined to be the same in the application 234 of the extended recursive induction. Processing 100
At 4, it is determined whether the argument of the GN term is a Boolean expression. If the result of determination is that it is a Boolean expression, the processing proceeds to step 1006, and the Boolean expression is replaced with an arithmetic expression. If it is not a Boolean expression, the process returns to the process 1002 again to process the next argument.

【0214】以上の処理により、GN項の引数にあるブ
ール式の記述を算術式に変換することができる。
By the above processing, the description of the Boolean expression in the argument of the GN term can be converted into the arithmetic expression.

【0215】(6−10)拡張再帰帰納法の適用 次に、図2の拡張再帰帰納法の適用234について説明
する。始めに、拡張再帰帰納法そのものについて説明し
たのち、拡張再帰帰納法の適用234の詳細を図9を用
いて説明する。これらの説明は特願平5−230941 号とほ
ぼ同じものである。
(6-10) Application of Extended Recursive Induction Method Next, application 234 of the extended recursive induction method in FIG. 2 will be described. First, the extended recursive induction itself will be described, and then details of the application 234 of the extended recursive induction will be described with reference to FIG. These explanations are almost the same as in Japanese Patent Application No. 5-230941.

【0216】拡張再帰帰納法は、再帰関数系と再帰関数
との等価性を示す方法である。
The extended recursive induction method is a method showing the equivalence between a recursive function system and a recursive function.

【0217】下記の数6と数7は例を示す。The following Equations 6 and 7 show examples.

【0218】[0218]

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

【0219】[0219]

【数7】 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)). …(数7) 数6は、再帰関数Fの定義である。再帰関数Fが、既存
関数P,Q,R,…,A,B,C,…を用いて定義され
ている。数7は、再帰関数系の定義であり、再帰関数F
<1>,…,F<m>を定義している。数7では、数6
で用いた既存関数のほかに、Q<11>,…,Q<1a
>,R<11>,…,R<1a>,Q<m1>,…,Q
<ma>,R<m1>,…,R<mb>を用いて定義し
ている。ここで、<i>は添字を表わす。F<n<q1
1>>などの<n<q11>>は、<1>〜<m>の任
意の1つを指す。
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 7) Equation 6 is a definition of the recursive function F. The recursive function F is defined using the existing functions P, Q, R, ..., A, B, C ,. Equation 7 is the definition of the recursive function system, and the recursive function F
<1>, ..., F <m> are defined. In Equation 7, Equation 6
Q <11>, ..., Q <1a in addition to the existing functions used in
>, R <11>, ..., R <1a>, Q <m1>, ..., Q
It is defined using <ma>, R <m1>, ..., R <mb>. Here, <i> represents a subscript. F <n <q1
<N <q11 >> such as 1 >> indicates any one of <1> to <m>.

【0220】再帰関数系のすべての再帰関数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, the if condition (Q (x) &
Q <i1> (x) etc.), and if condition of F (Q (x) etc.)
Is always included, and the known function (B (x) inside the recursive function of the then clause (F <n <qi1 >> (B (x)) etc.) corresponding to the if condition of F <i> is included. ), Etc.) is always in this F
It is equal to the known function (B (x) etc.) inside the recursive function of the then clause (F (B (x)) etc.) corresponding to the if condition.

【0221】再帰関数系のすべての再帰関数F<i>と
再帰関数Fにこのような関係があるとき、再帰関数系の
任意の再帰関数F<i>と再帰関数Fは等しい、と主張
するのが拡張再帰帰納法である。
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 is equal to the recursive function F. Is the extended recursive induction.

【0222】拡張再帰帰納法で等価性が示せる理由は、
再帰関数系の再帰関数F<i>および再帰関数Fにおい
て、if条件P(x),Q(x),R(x)などが成り立つとき
にthen節で施される処理は、A(x)を求めることか、B
(x)かC(x)を求めてその結果で再帰的に自分自身(ま
たは自系の関数)を呼び出すことであり、常に両者は相
等しく、同じ処理が施されるならば両者の値は常に相等
しいからである。
The reason why equivalence can be shown by the extended recursive induction is
In the recursive function F <i> and the recursive function F of the recursive function system, the processing performed in the then clause when the if conditions P (x), Q (x), R (x) and the like are satisfied is A (x) Or B
(x) or C (x) and recursively call itself (or its own function) with the result, and both are always equal, and if the same processing is performed, the values of both are Because they are always equal.

【0223】数8と数9は簡単な例だが、拡張再帰帰納
法により両者は等価である。
Equations 8 and 9 are simple examples, but they are equivalent by the extended recursive induction.

【0224】[0224]

【数8】 f(x)=if p(x)then a(x) else f(b(x)). …(数8) f1(x)=if p(x)then a(x) elseif q(x)then f2(b(x)) else f1(b(x)),F (x) = if p (x) then a (x) else f (b (x)). (Equation 8) f1 (x) = if p (x) then a (x) elseif q (x) then f2 (b (x)) else f1 (b (x)),

【0225】[0225]

【数9】 f2(x)=if p(x)then a(x) else f1(b(x)). …(数9) 両者とも、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))であり、常に値は等しいからである。
F2 (x) = if p (x) then a (x) else f1 (b (x)). (Equation 9) In both cases, when p (x), the value is a (x), and not (p
(x)) & p (b (x)) is a (b (x)), not
This is because when (p (x)) & not (p (b (x))) & p (b (b (x)), it is a (b (b (x)) and the values are always the same.

【0226】次に、拡張再帰帰納法の適用234の手順
について、図9を用いて説明する。この手順の中で処理
910の拡張再帰帰納法の適用時の記述レベル上位変換
236では図10の手順が呼び出される。
Next, the procedure of the application 234 of the extended recursive induction will be described with reference to FIG. In this procedure, description level upper conversion when applying the extended recursive induction of process 910
At 236, the procedure of FIG. 10 is called.

【0227】まず、前処理902が施される。前処理9
02では、抽象化後Gデータ242と抽象化後Fデータ
に単純等式f(x)=g(x)があれば、gのすべての出現
をfで置換してf(x)=f(x)となったものを削除す
る。
First, pretreatment 902 is performed. Pretreatment 9
In 02, if there is a simple equality f (x) = g (x) in the post-abstraction G data 242 and the post-abstraction F data, all occurrences of g are replaced with f and f (x) = f ( Delete x).

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

【0229】まず処理904では、中辺削除後の抽象化
後Gデータ242の各関数について、処理906,90
8,910を施す。処理906では、この関数の各if−
then節について処理908,910を施す。処理908
では、抽象化後Fデータのif条件(b1,b2,・・
・)の中に、現在注目している抽象化後Gデータ242
のif条件(a)と“aならばbi(i=1,2,・・
・)”の関係を満たすものはあるかどうかを調べる。上
記のif条件があれば、処理910に進み、そうでないと
きは処理918に進む。
First, in process 904, processes 906 and 90 are performed for each function of the abstracted G data 242 after middle edge deletion.
Apply 8,910. In process 906, each if- of this function
Processes 908 and 910 are applied to the then clause. Process 908
Then, if conditions (b1, b2, ...
In (), the post-abstraction G data 242 currently being watched
If condition (a) and “a if bi (i = 1, 2, ...
・) ”” Is checked to see if any of them satisfies the above condition. If there is the above if condition, the process proceeds to step 910, and if not, the process proceeds to step 918.

【0230】処理910では、if条件(a)に対応する
then節とif条件(bi)に対応するthen節は再帰関数名
の相違以外は同一か否かを調べる。同一でないときは処
理916に進み、同一のときには、拡張再帰帰納法の適
用時の記述レベル上位変換236を適用し、残りのif−
then節について処理908,910を行う。処理910
がすべてで同一であれば証明成功であり、検証結果とし
て証明成功と印字してすべての処理を終える(23
8)。等価関係があるか否かは、公知の技術、すなわち
定理証明プロブラムや組み合わせ論理間の等価性の形式
検証技術を用いれば調べられる。
The processing 910 corresponds to the if condition (a).
It is checked whether the then clause and the then clause corresponding to the if condition (bi) are the same except for the difference in the recursive function names. If they are not the same, the process proceeds to step 916. If they are the same, the description level upper conversion 236 when the extended recursive induction is applied is applied, and the remaining if-
Processes 908 and 910 are performed on the then clause. Process 910
If all are the same, the proof is successful, the verification result is printed as proof successful, and all processing is finished (23
8). Whether or not there is an equivalence relation can be examined by using a known technique, that is, a theorem proof program or a formal verification technique of equivalence between combinatorial logics.

【0231】抽象化後Gデータ242と抽象化後Fデー
タ246に拡張再帰帰納法を適用する。前処理である処
理902により、それぞれのデータは下記の数10,数
11になる。
The extended recursive induction is applied to the post-abstraction G data 242 and the post-abstraction F data 246. By the processing 902 which is the pre-processing, each data becomes the following expression 10 and expression 11.

【0232】[0232]

【数10】 G(C,M)=if((CONFa C+1 M(C)) or(CONFb M(C+1)M(C)))then<(C+1)+1,m> else <(C+1)+1,m> …(数10)G (C, M) = if ((CONFa C + 1 M (C)) or (CONFb M (C + 1) M (C))) then <(C + 1) +1, m> else <(C + 1) +1, m> ... (Equation 10)

【0233】[0233]

【数11】 F(C,M)=<(C+1)+1,m1> …(数11) 数10,数11を処理904〜910で比較すると、処
理908では、外部仕様に当たる数11にif条件がない
ので、数10のすべてのif条件に対して条件が成り立つ
と解釈して、処理910に進む。処理910において数
11の<(C+1)+1,m1>と数10の<(C+
1)+1,m>が同一かどうか判定する。この結果、C
については同一である。mとm1についてはアドレスと
その値と参照しているメモリの一致を確認する。アドレ
スはM(C)で一致するので、その値について一致を判
定すると、(FUNCb MM(C))と(MM(C)+1)
が一致する。そこで拡張再帰帰納法の適用時の記述レベ
ル変換236(図10)を適用し、記述中に現われるす
べての(FUNCb)ブール式を+1に置き換える。参
照しているメモリもMで一致するので<(C+1)+1,
m1>と<(C+1)+1,m>は同一である。
F (C, M) = <(C + 1) +1, m1> (Equation 11) Comparing Eq. 10 and Eq. 11 in Processes 904 to 910, in Process 908, if condition of Eq. Therefore, it is interpreted that the condition is satisfied for all the if conditions of Expression 10, and the process proceeds to step 910. In process 910, <(C + 1) + 1, m1> of the equation 11 and <(C + of the equation 10
1) Determine whether +1, m> are the same. As a result, C
Are the same. For m and m1, it is confirmed that the address and its value match the referenced memory. Since the addresses match in M (C), if a match is determined for that value, (FUNCb MM (C)) and (MM (C) +1)
Matches. Therefore, the description level conversion 236 (FIG. 10) when applying the extended recursive induction is applied to replace all (FUNCb) Boolean expressions appearing in the description with +1. The referenced memory also matches in M, so <(C + 1) +1,
m1> and <(C + 1) +1, m> are the same.

【0234】数10の第2のif−then節も同様にして一
致する。
The second if-then clause of Expression 10 is also matched.

【0235】以上により、拡張再帰帰納法により両者が
等価であることが判り、証明成功と印字して処理238
に進み、証明が完了してすべての処理が終わる。
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 238.
Proceed to and the proof is completed and all processing is completed.

【0236】以上説明したように、本実施例によれば、
ブール式レベルの記述のサポートにより、ブール式で記
述された設計仕様と算術式で記述された外部仕様とを比
較することで、ブール式レベルの記述を算術式レベルに
上位変換することができる。また、メモリへのデータ入
力(限定条件)をサポートすることにより、論理装置の
すべての状態を検証するのではなく、メモリに入力され
た命令がつくる状態に限定した検証を行うことができ
る。
As described above, according to this embodiment,
With the support of Boolean expression level description, the Boolean expression level description can be converted to the arithmetic expression level by comparing the design specification described by the Boolean expression with the external specification described by the arithmetic expression. Further, by supporting the data input (limited condition) to the memory, it is possible to perform not only the entire state of the logic device but also the state created by the instruction input to the memory.

【0237】(7) 全体検証 次に、全体検証について説明する。(7) Overall Verification Next, the overall verification will be described.

【0238】(1)〜(6)では、限定条件の適用によ
る1命令単位検証について説明したが、ここでは限定条
件のない全状態についての検証を全体検証と呼ぶ。この
全体検証を行うことで、全状態を検証しながら、記述レ
ベル上位変換を行うことができる。
In (1) to (6), the one-instruction unit verification by application of the limiting condition has been described, but here, the verification for all states without the limiting condition is called the overall verification. By performing this overall verification, description level upper conversion can be performed while verifying all states.

【0239】全体検証は、限定条件付きの1命令単位の
検証から、限定条件の適用に関する処理を取り除くこと
で実現できる。
The entire verification can be realized by removing the processing relating to the application of the limiting condition from the verification of the one instruction unit with the limiting condition.

【0240】図27は、全体検証の実施例の論理検証シ
ステムの構成を示す。この構成は、限定条件管理テーブ
ル114と検証プログラム3124以外は、図1の構成
図と同一である。限定条件管理テーブル114は、全体
検証には必要ない。検証プログラム3124について
は、図28に示す。
FIG. 27 shows the configuration of the logic verification system of the embodiment of the overall verification. This configuration is the same as the configuration diagram of FIG. 1 except for the limited condition management table 114 and the verification program 3124. The limited condition management table 114 is not necessary for the overall verification. The verification program 3124 is shown in FIG.

【0241】図28は、検証プログラム3124の処理
手順およびデータの流れを示すフローである。このフロ
ーも、限定条件付きの1命令単位検証のフローである図
2と限定条件の適用に関する処理以外は同一である。図
2において限定条件の適用に関する処理は、限定条件の
適用による次状態の制限224,限定条件の適用時の記
述レベル変換222,外部仕様への限定条件の適用およ
び外部仕様データの抽象化244である。これらの処理
を取り除いたものが図28のフローである。
FIG. 28 is a flow chart showing the processing procedure and data flow of the verification program 3124. This flow is also the same as that of FIG. 2, which is a one-instruction-unit verification flow with a limiting condition, except for the processing relating to the application of the limiting condition. In FIG. 2, the processing relating to the application of the limiting condition is performed by limiting the next state 224 by applying the limiting condition, describing level conversion 222 when applying the limiting condition, applying the limiting condition to the external specification, and abstracting 244 the external specification data. is there. The flow of FIG. 28 is obtained by removing these processes.

【0242】限定条件の適用による次状態の制限224
は、動作記述による状態列挙220(図3)の次状態と
遷移条件の算出308において、if条件にメモリが現わ
れたときに呼ばれる処理である。そこで次状態の算出3
08でこの処理を呼び出さないように変更する。外部仕
様への限定条件の適用および外部仕様データの抽象化2
44については、拡張再帰帰納法の適用234に直接外
部仕様データ110を適用する。
Restricting the next state 224 by applying the restrictive condition 224
Is a process called when a memory appears in the if condition in the calculation 308 of the next state and transition condition of the state enumeration 220 (FIG. 3) by the behavioral description. Then calculate the next state 3
At 08, this process is changed so as not to be called. Application of limiting conditions to external specifications and abstraction of external specification data 2
For 44, the external specification data 110 is directly applied to the application 234 of the extended recursive induction method.

【0243】以上の変更を行うことで、全体検証が可能
になる。この全体検証とは、(6)までの検証において
限定条件が全く入力されていない場合とも等価であり、
これ以上の詳細な説明は行わない。
By making the above changes, the whole verification becomes possible. This whole verification is equivalent to the case where no limiting condition is input in the verification up to (6),
No further detailed description will be given.

【0244】以上説明したように、本実施例によれば、
ブール式レベルの記述のサポートにより、ブール式で記
述された設計仕様と算術式で記述された外部仕様とを比
較することで、ブール式レベルの記述を算術式レベルに
上位変換することができる。
As described above, according to this embodiment,
With the support of Boolean expression level description, the Boolean expression level description can be converted to the arithmetic expression level by comparing the design specification described by the Boolean expression with the external specification described by the arithmetic expression.

【0245】[0245]

【発明の効果】本発明によれば、ブール式レベルの記述
のサポートにより、ブール式で記述された設計仕様と算
術式で記述された外部仕様とを比較することで、ブール
式レベルの記述を算術式レベルに上位変換することがで
きる。また、メモリへのデータ入力(限定条件)をサポ
ートすることにより、論理装置のすべての状態を検証す
るのではなく、メモリに入力された命令がつくる状態に
限定した検証を行うことができる。
According to the present invention, by supporting the description at the Boolean expression level, the description at the Boolean expression level can be obtained by comparing the design specification described by the Boolean expression with the external specification described by the arithmetic expression. Can be converted to the arithmetic expression level. Further, by supporting the data input (limited condition) to the memory, it is possible to perform not only the entire state of the logic device but also the state created by the instruction input to the memory.

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

【図1】論理検証システム(限定条件付き1命令単位検
証)のブロック図。
FIG. 1 is a block diagram of a logic verification system (verification with one instruction unit with limited conditions).

【図2】検証プログラム(限定条件付き1命令単位検
証)の処理手順およびデータの流れを示すフローチャー
ト。
FIG. 2 is a flowchart showing a processing procedure and a data flow of a verification program (verification with one instruction unit with limited condition).

【図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 description level conversion possibility determination processing procedure when a limiting condition is applied.

【図5】限定条件の適用による次状態の制限の処理手順
を示すフローチャート。
FIG. 5 is a flowchart showing a processing procedure for limiting a next state by applying a limiting condition.

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

【図7】メモリ公理適用時の記述レベル変換可能性判定
処理手順を示すフローチャート。
FIG. 7 is a flowchart showing a description level conversion possibility determination processing procedure when a memory axiom is applied.

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

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

【図10】拡張再帰帰納法の適用時の記述レベル変換可
能性判定処理手順を示すフローチャート。
FIG. 10 is a flowchart showing a description level conversion possibility determination processing procedure when the extended recursive induction is applied.

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

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

【図13】例題コンピュータの設計仕様の説明図。FIG. 13 is an explanatory diagram of design specifications of an example computer.

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

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

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

【図17】算術式ライブラリ文法の説明図。FIG. 17 is an explanatory diagram of an arithmetic expression library grammar.

【図18】例題コンピュータの算術式ライブラリデータ
を示す説明図。
FIG. 18 is an explanatory diagram showing arithmetic expression library data of the example computer.

【図19】限定条件文法の説明図。FIG. 19 is an explanatory diagram of a limited condition grammar.

【図20】例題コンピュータの初期状態での限定条件デ
ータを示す説明図。
FIG. 20 is an explanatory diagram showing limiting condition data in the initial state of the example computer.

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

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

【図23】状態列挙後Gデータを示す説明図。FIG. 23 is an explanatory diagram showing G data after state listing.

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

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

【図26】限定条件適用後および抽象化後Fデータを示
す説明図。
FIG. 26 is an explanatory diagram showing F data after application of a limiting condition and after abstraction.

【図27】論理検証システム(全体検証)の説明図。FIG. 27 is an explanatory diagram of a logic verification system (whole verification).

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

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

100…検証システム、102…キーボード、104…
ディスプレイ、106…バス、108…2次記憶用ディ
スク、118…CPU、120…メモリ、110…外部仕
様データ、112…構造記述設計仕様データ、114…
限定条件、116…算術式ライブラリ、122…入力プロ
グラム、124…検証プログラム、128…RT記述設計
仕様データ、130…動作記述設計仕様データ、132
…検証結果。
100 ... Verification system, 102 ... Keyboard, 104 ...
Display, 106 ... Bus, 108 ... Secondary storage disk, 118 ... CPU, 120 ... Memory, 110 ... External specification data, 112 ... Structural description design specification data, 114 ...
Limiting conditions, 116 ... Arithmetic expression library, 122 ... Input program, 124 ... Verification program, 128 ... RT description design specification data, 130 ... Behavior description design specification data, 132
…inspection result.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 五藤 健造 東京都小平市上水本町5丁目20番1号 日 立超エル・エス・アイ・エンジニアリング 株式会社内 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Kenzo Goto 5-20-1 Kamimizuhonmachi, Kodaira-shi, Tokyo Inside Hiritsu Cho-LS Engineering Co., Ltd.

Claims (10)

【特許請求の範囲】[Claims] 【請求項1】外部から設定・参照可能な構成要素を用い
て記述した順序論理装置の外部仕様を表わす外部仕様デ
ータと、外部から設定・参照可能な構成要素だけでなく
外部から設定・参照不可能な構成要素をも用いて記述し
た上記順序論理装置の設計仕様を表わす設計仕様データ
とを入力し、上記設計仕様データで表わされる設計仕様
が上記外部仕様データで表わされる外部仕様を満足して
いるか否かを検証する論理装置の検証方法であって、 上記順序論理装置の動作を限定する限定条件を上記設計
仕様データに与え、上記設計仕様データを用いて、上記
順序論理装置に上記限定条件が与えられたときの上記順
序論理装置の動作を順次模擬していくステップと、上記
設計仕様データを用いた上記順序論理装置の動作の模擬
の過程において、上記順序論理装置の到達可能な異なる
状態を蓄積するステップと、上記限定条件を上記外部仕
様データに与え、上記外部仕様データを用いて、上記順
序論理装置に上記限定条件が与えられたときの上記順序
論理装置の動作を順次模擬していくステップと、上記外
部仕様データを用いた上記順序論理装置の動作の模擬の
過程において、上記順序論理装置の到達可能な異なる状
態を蓄積するステップと、上記設計仕様データ蓄積結果
が、上記外部仕様データ蓄積結果と等価であるか否かを
証明するステップとを備えたことを特徴とする論理装置
の検証方法。
1. External specification data representing the external specifications of a sequential logic device described using externally settable / referenceable components, and not only externally settable / referenceable components but also externally set / referenceable data. Input the design specification data representing the design specification of the sequential logic device described also using the possible constituent elements, and the design specification represented by the design specification data satisfies the external specification represented by the external specification data. A method of verifying whether or not there is a logic device, wherein a limiting condition that limits the operation of the sequential logic device is given to the design specification data, and the limiting condition is applied to the sequential logic device using the design specification data. In the process of sequentially simulating the operation of the sequential logic device when given, and in the process of simulating the operation of the sequential logic device using the design specification data. A step of accumulating different reachable states of the sequential logic device, and giving the limiting condition to the external specification data, and using the external specification data, the above-mentioned condition when the limiting condition is given to the sequential logic device. Sequentially simulating the operation of the sequential logic device; accumulating different reachable states of the sequential logic device in the process of simulating the operation of the sequential logic device using the external specification data; And a step of certifying whether or not the design specification data storage result is equivalent to the external specification data storage result.
【請求項2】外部から設定・参照可能な構成要素とその
機能を算術式をも用いて記述した、順序論理装置の外部
仕様を表わす外部仕様データと、外部から設定・参照可
能な構成要素だけでなく外部から設定・参照不可能な構
成要素とその機能をブール式をも用いて記述した、上記
順序論理装置の設計仕様を表わす設計仕様データとを入
力し、上記設計仕様データで表わされる設計仕様が上記
外部仕様データで表わされる外部仕様を満足しているか
否かを検証する論理装置の検証方法であって、 上記設計仕様データを用いて、上記順序論理装置の動作
を順次模擬していくステップと、上記順序論理装置の動
作の模擬の過程において、上記設計仕様の記述に用いて
いるブール式が動作の模擬の過程で出現する算術式と等
価であるかを判定し、等価であればブール式を算術式に
変換するステップと、上記順序論理装置の動作の模擬の
過程において、上記設計仕様の記述に用いている構成要
素の状態が有効か否かを判別し、有効な状態の構成要素
に着目して上記順序論理装置の到達可能な異なる状態を
蓄積するステップと、上記蓄積結果が、上記外部仕様と
等価であるか否かを証明するステップと、上記等価の証
明の過程において、上記設計仕様の記述に用いているブ
ール式が上記外部仕様の記述に用いている算術式と等価
であるかを判定し、等価であれば上記ブール式を上記算
術式に変換するステップとを備えたことを特徴とする論
理装置の検証方法。
2. External specification data representing external specifications of a sequential logic device, which describes externally settable / referenceable elements and their functions using arithmetic expressions, and only externally settable / referenceable elements. The design represented by the design specification data described above is input by inputting the design specification data representing the design specification of the sequential logic device in which the constituent elements that cannot be set / referenced from outside and their functions are described by using Boolean expressions as well. A verification method of a logic device for verifying whether a specification satisfies an external specification represented by the external specification data, wherein the operation of the sequential logic device is sequentially simulated by using the design specification data. In the step and the process of simulating the operation of the sequential logic device, it is determined whether the Boolean expression used in the description of the design specification is equivalent to the arithmetic expression that appears in the process of simulating the operation, and it is equivalent. If so, in the step of converting a Boolean expression into an arithmetic expression and in the process of simulating the operation of the sequential logic device, it is determined whether or not the states of the components used in the description of the design specification are valid, and A step of accumulating different reachable states of the sequential logic device focusing on the constituent elements of the state, a step of certifying whether the accumulation result is equivalent to the external specification, and a step of proof of the equivalence. In the process, determining whether the Boolean expression used to describe the design specification is equivalent to the arithmetic expression used to describe the external specification, and if they are equivalent, converting the Boolean expression to the arithmetic expression. A method for verifying a logic device, comprising:
【請求項3】請求項1において、上記設計仕様データ
は、その機能をブール式で記述されており、上記限定条
件は、上記順序論理装置が持つ、アドレスを指定するこ
とによってその内容を参照できる記憶装置に与えられて
おり、上記設計仕様データを用いた上記順序論理装置の
動作の模擬のステップで、ブール式で記述されたアドレ
スで上記記憶装置から上記限定条件を参照する場合、上
記記憶装置のアドレスに用いられている算術式と上記ブ
ール式が等価かどうか判定し、等価であれば上記ブール
式を上記算術式に変換するステップを備えた論理装置の
検証方法。
3. The design specification data according to claim 1, wherein the function is described by a Boolean expression, and the limiting condition can refer to the contents of the sequential logic device by designating an address. In the step of simulating the operation of the sequential logic device using the design specification data given to the storage device, if the limiting condition is referred from the storage device with an address described in a Boolean expression, the storage device is A method of verifying a logic device, comprising: determining whether an arithmetic expression used in the address of the above is equivalent to the above Boolean expression, and if they are equivalent, converting the above Boolean expression into the above arithmetic expression.
【請求項4】請求項2において、上記ブール式を算術式
に変換するステップで、書き換えが行われていない記憶
装置を、書き換えが行われた記憶装置に置換可能かどう
かを表わしている算術式と上記設計仕様データのブール
式が等価かどうか判定し、等価であればブール式を算術
式に変換するステップを備えた論理装置の検証方法。
4. The arithmetic expression according to claim 2, wherein in the step of converting the Boolean expression into an arithmetic expression, it is possible to replace a storage device which has not been rewritten with a storage device which has been rewritten. And a Boolean expression of the above design specification data are judged to be equivalent, and if they are equivalent, a method for verifying a logic device comprising a step of converting the Boolean expression into an arithmetic expression.
【請求項5】外部仕様を満足するように回路設計された
複数のレジスタを有する順序論理装置の設計仕様がその
外部仕様を満足することを、計算機により検証する論理
装置の検証方法であって、 上記設計仕様に上記順序論理装置の動作を限定する限定
条件を与え、上記設計仕様を用いて上記設計仕様自身を
書き換えることにより、上記限定条件が与えられた実現
仕様を動作させて、その到達可能状態を上記書き換え結
果として蓄積するステップと、上記外部仕様に上記限定
条件を与え、上記外部仕様を用いて上記外部仕様自身を
書き換えることにより、上記限定条件が与えられた外部
仕様を動作させて、その到達可能状態を上記書き換え結
果として蓄積するステップと、上記設計仕様の上記書き
換え結果が上記外部仕様の上記書き換え結果と等価であ
ることについて、拡張再帰帰納法を用いた検証を試みる
ステップとを備えたことを特徴とする論理装置の検証方
法。
5. A method of verifying a logic device, wherein a computer verifies that the design specification of a sequential logic device having a plurality of registers designed to satisfy the external specification satisfies the external specification, By giving a limiting condition that limits the operation of the sequential logic device to the design specification, and rewriting the design specification itself using the design specification, the realization specification given the limiting condition is operated, and it is possible to reach it. By accumulating the state as the rewriting result, giving the limiting condition to the external specification, and rewriting the external specification itself by using the external specification, the external specification given the limiting condition is operated, Accumulating the reachable state as the rewriting result, and the rewriting result of the design specification is the rewriting result of the external specification. A method of verifying a logic device, comprising the step of attempting verification using extended recursive induction for equality.
【請求項6】外部仕様を満足するようにブール式記述で
回路設計された複数のレジスタを有する順序論理装置設
計仕様がその外部仕様を満足することを、計算機により
検証する論理装置の検証方法であって、 上記設計仕様を用いて上記設計仕様自身を書き換えるこ
とにより設計仕様を動作させるステップと、上記設計仕
様の上記書き換えにおいて、上記設計仕様のブール式と
上記書き換え時に出現した算術式が等価かどうか判定
し、等価であればブール式を算術式に変換するステップ
と、上記設計仕様の上記書き換え結果が上記外部仕様の
上記書き換え結果と等価であることについて、拡張再帰
帰納法を用いた検証を試みるステップと、上記拡張再帰
帰納法を用いた検証において、上記設計仕様のブール式
と上記外部仕様の算術式が等価かどうか判定し、等価で
あればブール式を算術式に変換するステップとを備えた
ことを特徴とする論理装置の検証方法。
6. A logic device verification method for verifying by a computer that a sequential logic device design specification having a plurality of registers whose circuits are designed by Boolean expressions so as to satisfy the external specifications satisfies the external specifications. Therefore, the step of operating the design specification by rewriting the design specification itself using the design specification, and the Boolean expression of the design specification and the arithmetic expression appearing at the time of the rewriting are equal in the rewriting of the design specification. If it is equivalent, the step of converting a Boolean expression into an arithmetic expression, and the verification that the rewriting result of the above design specification is equivalent to the above rewriting result of the above external specification is verified using extended recursive induction. In the step to try and the verification using the extended recursive induction, whether the Boolean expression of the above design specification and the arithmetic expression of the above external specification are equivalent And a step of converting a Boolean expression into an arithmetic expression if they are equivalent.
【請求項7】内部的にはパイプライン的に動作する複数
のステージを備えた順序論理装置の外部から設定・参照
可能な外部記憶領域の取り得る状態の集合である外部記
憶領域状態集合SからSへの再帰関数で表わされた上記
順序論理装置の外部仕様データと、やはり外部記憶領域
状態集合SからSへの再帰関数で表わされるが、外部か
ら設定・参照不可能な内部記憶領域の状態をも引数とし
て構成される再帰関数で表わされた上記順序論理装置の
設計仕様データとを入力し、上記設計仕様データで表わ
される設計仕様が上記外部仕様データで表わされる外部
仕様を満足しているか否かを検証する論理装置の検証方
法であって、 上記外部仕様データは、上記外部記憶領域の現在の状態
から次状態への変換を表わす再帰関数であって、1つ以
上の予め定められた既知関数記号と、1つ以上のif−th
en節とを含む関数で記述され、上記設計仕様データは、
上記外部記憶領域および内部記憶領域の現在の状態から
次状態への変換を表わす再帰関数であって、1つ以上の
予め定められた既知関数記号と、1つ以上のif−then節
とを含む関数で記述されるとともに、上記設計仕様デー
タを用いて、上記外部記憶領域および内部記憶領域の現
在の状態から、その設計仕様データに現われるif節のそ
れぞれが真のときの次状態における外部記憶領域および
内部記憶領域の状態を、if節毎にそれぞれ計算し、その
際に、上記順序論理装置が1命令単位で動作するような
限定条件が上記実現仕様データに与えられている場合、
上記if節に上記限定条件を適用し、上記if節が真のとき
の状態のみを計算することで、次状態を上記順序論理装
置が上記限定条件を与えられたときの状態のみに限定
し、上記if節それぞれをif節に持ち、上記if節それぞれ
が真のときの次状態における外部記憶領域および内部記
憶領域の状態それぞれをthen節として持つif−then節か
らなる、上記現在の状態から上記各if節が真のときの次
状態での外部記憶領域および内部記憶領域の各状態への
変換を表わす記述として記憶する計算・記憶ステップ
と、上記外部記憶領域および内部記憶領域の所定の初期
状態から、上記計算・記憶ステップを実行し、引き続
き、計算された次状態でのif節それぞれが真のときの外
部記憶領域および内部記憶領域の状態それぞれを次々に
現在の状態として上記計算・記憶ステップを反復して実
行するステップと、上記計算・記憶ステップで、if節そ
れぞれが真のときの次状態での外部記憶領域および内部
記憶領域の状態それぞれを計算したときに、上記計算し
た値が既に計算・記憶されているかを調べるために、上
記計算された値が表わす外部記憶領域および内部記憶領
域の状態の記述が、上記計算・記憶ステップで既に記憶
された現在の状態の記述に含まれるかを調べて、含まれ
るときには上記計算した状態以降の状態に関する上記計
算・記憶ステップを中止するステップと、上記外部仕様
データを用いて、上記外部記憶領域の現在の状態から、
その設計仕様データに現われるif節のそれぞれが真のと
きの次状態における外部記憶領域の状態を、if節毎にそ
れぞれ計算し、その際に、上記順序論理装置が1命令単
位で動作するような上記限定条件が上記外部仕様データ
に与えられている場合、上記if節に上記限定条件を適用
し、上記if節が真のときの状態のみを計算することで、
次状態を上記順序論理装置が上記限定条件を与えられた
ときの状態のみに限定し、上記if節それぞれをif節に持
ち、上記if節それぞれが真のときの次状態における外部
記憶領域の状態それぞれをthen節として持つif−then節
からなる、上記現在の状態から上記各if節が真のときの
次状態での外部記憶領域の各状態への変換を表わす記述
として記憶する計算・記憶ステップと、上記外部記憶領
域の所定の初期状態から、上記計算・記憶ステップを実
行し、引き続き、計算された次状態でのif節それぞれが
真のときの外部記憶領域の状態それぞれを次々に現在の
状態として上記計算・記憶ステップを反復して実行する
ステップと、上記計算・記憶ステップで、if節それぞれ
が真のときの次状態での外部記憶領域の状態それぞれを
計算したときに、上記計算した値が既に計算・記憶され
ているかを調べるために、上記計算された値が表わす外
部記憶領域の状態の記述が、上記計算・記憶ステップで
既に記憶された現在の状態の記述に含まれるかを調べ
て、含まれるときには上記計算した状態以降の状態に関
する上記計算・記憶ステップを中止するステップと、上
記設計仕様データを用いた反復ステップと上記外部仕様
データを用いた反復ステップがすべて中止されたとき
に、上記設計仕様データの現在の状態から各if節が真の
ときの次状態における外部記憶領域および内部記憶領域
の各状態への変換を表わす上記記憶されたすべての記述
から、外部記憶領域の初期値を表わす上記変数に施され
た変換を求め、上記変換と、上記変換に対応するif節が
成立したときに、上記外部仕様データが示す上記外部記
憶領域群の現在の状態から次状態への変換とが等しいか
を照合して、検証を試みるステップとを備えたことを特
徴とする論理装置の検証方法。
7. An external storage area state set S, which is a set of states that can be set in an external storage area that can be set / referenced from outside of a sequential logic device that internally has a plurality of stages that operate in a pipeline manner. External specification data of the above-mentioned sequential logic device expressed by a recursive function to S, and an external storage area state set of an internal storage area that cannot be set / referenced externally By inputting the design specification data of the sequential logic device expressed by a recursive function configured by using the state also as an argument, the design specification represented by the design specification data satisfies the external specification represented by the external specification data. The external specification data is a recursive function representing a conversion from the current state of the external storage area to the next state, and the external specification data is one or more. A predetermined known function symbol and one or more if-th
It is described by the function including the en clause and the above design specification data is
A recursive function representing the conversion of the current state of the external storage area and the internal storage area to the next state, which includes one or more predetermined known function symbols and one or more if-then clauses. The external storage area in the next state when each of the if clauses appearing in the design specification data is true from the current state of the external storage area and the internal storage area, which is described by a function and uses the design specification data. And the state of the internal storage area are calculated for each if clause, and at that time, a limiting condition that the sequential logic device operates in units of one instruction is given to the realization specification data,
By applying the limiting condition to the if clause and calculating only the state when the if clause is true, the next state is limited to only the state when the sequential logic unit is given the limiting condition, Each if clause has an if clause, and each if clause has an if-then clause that has the state of the external storage area and the internal storage area in the next state when it is true. Calculation / storing step of storing as a description representing conversion of the external storage area and internal storage area to each state in the next state when each if clause is true, and a predetermined initial state of the external storage area and internal storage area From the above, the calculation / storing step is executed, and subsequently, the calculation / storing is performed on each of the states of the external storage area and the internal storage area when the calculated if clauses are true as the current state. In the step of repeatedly executing the step and 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, the calculated values are In order to check whether or not it has already been calculated / stored, the description of the states of the external storage area and the internal storage area represented by the calculated value is included in the description of the current state already stored in the calculation / storing step. If it is included, the step of canceling the calculation / storing step regarding the state after the calculated state and the current state of the external storage area using the external specification data,
The state of the external storage area in the next state when each of the if clauses appearing in the design specification data is true is calculated for each if clause, and at that time, the sequential logic device operates in units of one instruction. When the above limiting condition is given to the above external specification data, by applying the above limiting condition to the above if clause and calculating only the state when the above if clause is true,
The next state is limited to only the state when the sequential logic unit is given the limiting condition, each of the if clauses has an if clause, and the state of the external storage area in the next state when each of the if clauses is true Computation / storing step, which is composed of if-then clauses each having a then clause, and is stored as a description representing conversion from the current state to each state of the external storage area in the next state when the above if clauses are true Then, the calculation / storing step is executed from a predetermined initial state of the external storage area, and subsequently, the states of the external storage area when the if clauses in the calculated next state are true are successively displayed. The step of repeatedly executing the calculation / storing step as a state and the calculation / storing step when the respective states of the external storage areas in the next states when the if clauses are true are calculated. In order to check whether the calculated value has already been calculated / stored, is the description of the state of the external storage area represented by the calculated value included in the description of the current state already stored in the calculating / storing step? When included, the step of stopping the calculation / storing step for the state after the calculated state, the iterative step using the design specification data and the iterative step using the external specification data are all stopped. Sometimes, the external storage area is converted from all the stored descriptions that represent the conversion from the current state of the design specification data to each state of the external storage area and the internal storage area in the next state when each if clause is true. The conversion applied to the variable that represents the initial value of is calculated, and when the conversion and the if clause corresponding to the conversion are satisfied, the external specification data described above is displayed. A method for verifying a logic device, comprising the step of verifying whether or not the conversion of the partial storage area group from the current state to the next state is equal and attempting verification.
【請求項8】内部的にはパイプライン的に動作する複数
のステージを備えた順序論理装置の外部から設定・参照
可能な外部記憶領域の取り得る状態の集合である外部記
憶領域状態集合SからSへの再帰関数で表わされた上記
順序論理装置の外部仕様データと、やはり外部記憶領域
状態集合SからSへの再帰関数で表わされるが、外部か
ら設定・参照不可能な内部記憶領域の状態をも引数とし
て構成される再帰関数で表わされた上記順序論理装置の
設計仕様データとを入力し、上記設計仕様データで表わ
される設計仕様が上記外部仕様データで表わされる外部
仕様を満足しているか否かを検証する論理装置の検証方
法であって、 上記外部仕様データは、上記外部記憶領域の現在の状態
から次状態への変換を表わす再帰関数であって、1つ以
上の予め定められた既知関数記号と、1つ以上のif−th
en節と、上記外部記憶領域の次状態への変換の演算のた
めの算術式記述をも含む関数で記述され、上記設計仕様
データは、上記外部記憶領域および内部記憶領域の現在
の状態から次状態への変換を表わす再帰関数であって、
1つ以上の予め定められた既知関数記号と、1つ以上の
if−then節と、上記外部記憶領域および内部記憶領域の
次状態への変換の演算のためのブール式記述を含む関数
で記述されるとともに、上記設計仕様データを用いて、
上記外部記憶領域および内部記憶領域の現在の状態か
ら、その設計仕様データに現われるif節のそれぞれが真
のときの次状態における外部記憶領域および内部記憶領
域の状態を、if節毎にそれぞれ計算し、上記if節それぞ
れをif節に持ち、上記if節それぞれが真のときの次状態
における外部記憶領域および内部記憶領域の状態それぞ
れをthen節として持つif−then節からなる、上記現在の
状態から上記各if節が真のときの次状態での外部記憶領
域および内部記憶領域の各状態への変換を表わす記述と
して記憶する計算・記憶ステップと、上記計算・記憶ス
テップの過程において、上記設計仕様データの記述に用
いているブール式が、if節毎の次状態の計算の過程で出
現する算術式と等価であるかを判定し、等価であればブ
ール式を算術式に変換するステップと、上記外部記憶領
域および内部記憶領域の所定の初期状態から、上記計算
・記憶ステップを実行し、引き続き、計算された次状態
でのif節それぞれが真のときの外部記憶領域および内部
記憶領域の状態それぞれを次々に現在の状態として上記
計算・記憶ステップを反復して実行するステップと、上
記計算・記憶ステップで、if節それぞれが真のときの次
状態での外部記憶領域および内部記憶領域の状態それぞ
れを計算したときに、上記計算した値が既に計算・記憶
されているかを調べるために、上記計算された値が表わ
す外部記憶領域および内部記憶領域の状態の記述が、上
記計算・記憶ステップで既に記憶された現在の状態の記
述に含まれるかを調べて、含まれるときには上記計算し
た状態以降の状態に関する上記計算・記憶ステップを中
止するステップと、上記設計仕様データを用いた反復ス
テップと上記外部仕様データを用いた反復ステップがす
べて中止されたときに、上記設計仕様データの現在の状
態から各if節が真のときの次状態における外部記憶領域
および内部記憶領域の各状態への変換を表わす上記記憶
されたすべての記述から、外部記憶領域の初期値を表わ
す上記変数に施された変換を求め、上記変換と、上記変
換に対応するif節が成立したときに、記外部仕様データ
が示す上記外部記憶領域群の現在の状態から次状態への
変換とが等しいかを照合して、検証を試みるステップと
上記検証を試みるステップの過程において、上記設計仕
様データの各状態への変換と上記外部仕様データが示す
次状態への変換とが等しいかを照合するとき、上記設計
仕様データの記述に用いているブール式が上記外部仕様
データの記述に用いている算術式と等価であるかを判定
し、等価であれば上記ブール式を上記算術式に変換する
ステップとを備えたことを特徴とする論理装置の検証方
法。
8. An external storage area state set S, which is a set of states that can be set in an external storage area that can be set / referenced from outside of a sequential logic device that internally has a plurality of stages that operate like pipelines. External specification data of the above-mentioned sequential logic device expressed by a recursive function to S, and an external storage area state set of an internal storage area that cannot be set / referenced externally By inputting the design specification data of the sequential logic device expressed by a recursive function configured by using the state also as an argument, the design specification represented by the design specification data satisfies the external specification represented by the external specification data. The external specification data is a recursive function representing a conversion from the current state of the external storage area to the next state, and the external specification data is one or more. A predetermined known function symbol and one or more if-th
It is described by a function including an en clause and an arithmetic expression description for the calculation of the conversion of the external storage area to the next state. The design specification data is written from the current state of the external storage area and the internal storage area to the next state. A recursive function representing a conversion to a state,
One or more predetermined known function symbols and one or more
If-then clause and described by a function including a Boolean expression description for the operation of conversion to the next state of the external storage area and the internal storage area, using the design specification data,
From the current states of the external storage area and the internal storage area, the states of the external storage area and the internal storage area in the next state when the if clauses appearing in the design specification data are true are calculated for each if clause. , If-then clause having each of the above if clauses in the if clause, and each state of the external storage area and the internal storage area in the next state when each of the above if clauses is true, from the current state A calculation / storing step of storing as a description representing the conversion of the external storage area and the internal storage area to each state in the next state when each of the if clauses is true, and the design specification in the process of the calculation / storing step. Determine whether the Boolean expression used to describe the data is equivalent to the arithmetic expression that appears in the process of calculating the next state for each if clause, and if so, convert the Boolean expression to an arithmetic expression. From the predetermined initial state of the external storage area and the internal storage area, the calculation / storing step is executed, and subsequently, the external storage area and the internal storage when the if clause in the calculated next state is true, respectively. The step of repeatedly executing the calculation / storing step by setting each state of the storage area as the current state one after another, and the external storage area and the internal state in the next state when each if clause is true in the calculation / storing step. When calculating each state of the storage area, in order to check whether the calculated value is already calculated and stored, the description of the state of the external storage area and the internal storage area represented by the calculated value is calculated as described above. -Check whether it is included in the description of the current state already stored in the storing step, and if it is included, calculate / store the above-mentioned calculation / storage step regarding the states after the calculated state. When all the if clauses are true from the current state of the design specification data when all the steps of stopping the design specification data, the iteration step using the design specification data and the iteration step using the external specification data are canceled. The conversion applied to the variable representing the initial value of the external storage area is calculated from all the stored descriptions 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 corresponding to the conversion is established, it is verified 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 and the above verification are performed. In the process of trying steps, when it is verified whether the conversion of the design specification data to each state is equal to the conversion to the next state indicated by the external specification data, the design specification data of The step of determining whether the Boolean expression used in the above description is equivalent to the arithmetic expression used in the description of the external specification data and converting the Boolean expression to the above arithmetic expression if they are equivalent is provided. A method of verifying a characteristic logic device.
【請求項9】請求項7において、上記外部仕様データは
上記外部記憶領域の現在の状態から次状態への変換を表
わす再帰関数であって、1つ以上の予め定められた既知
関数記号と、1つ以上のif−then節と、上記外部記憶領
域の次状態への変換の演算のための算術式記述をも含む
関数で記述され、上記設計仕様データは、上記外部記憶
領域および内部記憶領域の現在の状態から次状態への変
換を表わす再帰関数であって、1つ以上の予め定められ
た既知関数記号と、1つ以上のif−then節と、上記外部
記憶領域および内部記憶領域の次状態への変換の演算の
ためのブール式記述を含む関数で記述されており、上記
順序論理装置が1命令単位で動作するような限定条件
は、上記順序論理装置が持つ、アドレスを指定すること
によってその内容を参照できる記憶装置に与えられてお
り、上記if節に限定条件を適用するためにブール式で記
述されたアドレスで上記算術式と上記ブール式が等価か
どうか判定し、等価であれば上記ブール式を上記算術式
に変換するステップを備えた論理装置の検証方法。
9. The external specification data according to claim 7, wherein the external specification data is a recursive function representing conversion from a current state of the external storage area to a next state, and one or more predetermined known function symbols. It is described by a function that also includes one or more if-then clauses and an arithmetic expression description for the calculation of conversion of the external storage area to the next state, and the design specification data includes the external storage area and the internal storage area. Is a recursive function that represents the conversion of the current state to the next state of the one or more predetermined known function symbols, one or more if-then clauses, and the external storage area and the internal storage area. It is described by a function including a Boolean expression for the operation of conversion to the next state, and the limiting condition that the sequential logic device operates in the unit of one instruction specifies the address of the sequential logic device. Refer to its content by It is given to the storage device, and it is judged whether the above arithmetic expression and the above Boolean expression are equivalent by the address described in the Boolean expression to apply the limiting condition to the above if clause. A method for verifying a logic device, comprising the step of converting the arithmetic expression.
【請求項10】請求項8において、上記設計仕様データ
の記述に用いているブール式が、if節毎の次状態の計算
の過程で出現する算術式と等価であるかを判定するステ
ップで、書き換えが行われていない記憶装置を、書き換
えが行われた記憶装置に置換可能かどうかを表わしてい
る算術式と、上記設計仕様データのif節の条件を表わし
ているブール式が等価かどうか判定し、等価であればブ
ール式を算術式に変換するステップを備えた論理装置の
検証方法。
10. The step of determining whether the Boolean expression used to describe the design specification data is equivalent to an arithmetic expression that appears in the process of calculating the next state for each if clause, Judge whether the arithmetic expression that expresses whether or not the memory device that has not been rewritten can be replaced with the memory device that has been rewritten is equivalent to the Boolean expression that represents the condition of the if clause of the above design specification data. Then, if they are equivalent, a method for verifying a logic device, including a step of converting a Boolean expression into an arithmetic expression.
JP8136187A 1996-05-30 1996-05-30 Logical unit verification method Pending JPH09319782A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8136187A JPH09319782A (en) 1996-05-30 1996-05-30 Logical unit verification method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8136187A JPH09319782A (en) 1996-05-30 1996-05-30 Logical unit verification method

Publications (1)

Publication Number Publication Date
JPH09319782A true JPH09319782A (en) 1997-12-12

Family

ID=15169387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8136187A Pending JPH09319782A (en) 1996-05-30 1996-05-30 Logical unit verification method

Country Status (1)

Country Link
JP (1) JPH09319782A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587993B2 (en) 2000-01-13 2003-07-01 Nec Electronics Corporation Method of designating output “don't care” and processor of processing logic circuit data
JP2007524165A (en) * 2004-01-22 2007-08-23 エヌイーシー ラボラトリーズ アメリカ インク Efficient modeling method for embedded memory in finite memory test

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587993B2 (en) 2000-01-13 2003-07-01 Nec Electronics Corporation Method of designating output “don't care” and processor of processing logic circuit data
JP2007524165A (en) * 2004-01-22 2007-08-23 エヌイーシー ラボラトリーズ アメリカ インク Efficient modeling method for embedded memory in finite memory test

Similar Documents

Publication Publication Date Title
Burch et al. Symbolic model checking: 1020 states and beyond
US7657867B2 (en) System and method for generating a predicate abstraction of a program
Habibi et al. Design and verification of SystemC transaction-level models
US7503027B1 (en) Hardware description language code generation from a state diagram
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
US7146605B2 (en) Automatic abstraction of software source
JPH0760324B2 (en) Sequential circuit, generation method thereof, controller, and finite state machine
US9665674B2 (en) Automating a microarchitecture design exploration environment
JPH11513512A (en) Method of manufacturing digital signal processor
US7124070B2 (en) Method of and apparatus for, and program for verifying equivalence between behavioral description and register transfer level description
US7523029B2 (en) Logic verification and logic cone extraction technique
US20060015858A1 (en) System development method and data processing system
US10839124B1 (en) Interactive compilation of software to a hardware language to satisfy formal verification constraints
US6539345B1 (en) Symbolic simulation using input space decomposition via Boolean functional representation in parametric form
Bhagwati et al. Automatic verification of pipelined microprocessors
Di Natale et al. A Model-based approach for the synthesis of software to firmware adapters for use with automatically generated components
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
JPH09319782A (en) Logical unit verification method
Teich et al. Description and simulation of microprocessor instruction sets using ASMs
Daniel et al. Towards a Highly Interactive Design-Debug-Verification Cycle
Habibi et al. On the transformation of SystemC to AsmL using abstract interpretation
JPH0765046A (en) Logical device verifying method