JP4702357B2 - Method, apparatus, and program for verifying equivalence between behavior level description and register transfer level description - Google Patents

Method, apparatus, and program for verifying equivalence between behavior level description and register transfer level description Download PDF

Info

Publication number
JP4702357B2
JP4702357B2 JP2007320573A JP2007320573A JP4702357B2 JP 4702357 B2 JP4702357 B2 JP 4702357B2 JP 2007320573 A JP2007320573 A JP 2007320573A JP 2007320573 A JP2007320573 A JP 2007320573A JP 4702357 B2 JP4702357 B2 JP 4702357B2
Authority
JP
Japan
Prior art keywords
description
level
state
storage device
register transfer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007320573A
Other languages
Japanese (ja)
Other versions
JP2008090865A (en
Inventor
崇 竹中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2007320573A priority Critical patent/JP4702357B2/en
Publication of JP2008090865A publication Critical patent/JP2008090865A/en
Application granted granted Critical
Publication of JP4702357B2 publication Critical patent/JP4702357B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、複数の論理回路が論理的に等価であるかどうかを検証する論理回路等価検証装置に関し、特に動作合成システムの入力となる動作レベル記述と出力となるレジスタ転送レベル回路が等価であるかどうかを検証するものに関する。   The present invention relates to a logic circuit equivalence verification apparatus that verifies whether or not a plurality of logic circuits are logically equivalent, and in particular, a behavioral level description as an input of a behavioral synthesis system and a register transfer level circuit as an output are equivalent. Whether it is to verify.

一般に、LSI もしくはVLSIの設計にあたっては、設計を自動的に行う、もしくは支援するLSI 設計自動化・支援技術が採用されている。この、LSI 設計自動化・支援技術を採用したVLSI設計のうち、代表的なものとしては、各種EDA(electronic design automation) ツールを利用したトップダウン設計があげられる。この種のトップダウン設計は、その上流工程から、機能設計、論理設計、レイアウト設計と大別することができる。このうち、とくに機能設計の自動化は動作合成(高位合成、機能合成とも呼ばれる)と呼ばれ、論理設計の自動化は論理合成と呼ばれる。   In general, LSI design automation / support technology that automatically performs or supports design is employed in designing LSI or VLSI. A typical VLSI design using LSI design automation / support technology is top-down design using various EDA (electronic design automation) tools. This type of top-down design can be broadly divided into functional design, logic design, and layout design from the upstream process. Among these, automation of functional design is called behavioral synthesis (also called high-level synthesis or functional synthesis), and automation of logic design is called logical synthesis.

詳しくは、前述のトップダウン設計においては、まず、システムの仕様作成として、LSI 全体をシステムと捉え、その動作を記述することが行われる。このようにして作成された記述は、動作レベル記述(behavioral description)と呼ばれる。この動作レベル記述の作成は、たとえば、C言語ライクな言語を用いてなされる。   Specifically, in the above-described top-down design, first, as the system specification creation, the entire LSI is regarded as a system and its operation is described. The description created in this way is called a behavioral description. The behavior level description is created using, for example, a C language-like language.

次に、動作合成フェーズにおいて、作成された動作レベル記述がRTL(register transfer level)記述に自動変換される。なお、従来、このフェーズに関しては、人手により置き換えられ、 HDL(hardware description language) を用いて、直接、RTL 記述を作成される場合が多かった。   Next, in the behavioral synthesis phase, the created behavior level description is automatically converted into an RTL (register transfer level) description. In the past, this phase was often manually replaced, and RTL descriptions were often created directly using HDL (hardware description language).

次いで、論理合成フェーズにおいて、RTL 記述が、ゲートレベルの記述(ゲートレベル論理回路:ネットリスト) に自動変換される。このようにして生成されたネットリストをもとに、レイアウト設計が行われ、ついで、チップ設計が行われる。   Next, in the logic synthesis phase, the RTL description is automatically converted into a gate level description (gate level logic circuit: netlist). Based on the net list generated in this way, layout design is performed, and then chip design is performed.

これら上述した各段階(フェーズ)において合成を行うためのツールの実態は、一般に、ソフトウェアで構成される。しかしながら、それらはソフトウェアである以上必ずしもバグがないとはいえず、各合成段階においては、適切な合成がなされたか否かの検証をする必要がある。   The actual condition of a tool for performing synthesis in each of the above-described steps (phases) is generally configured by software. However, since they are software, they are not necessarily buggy, and it is necessary to verify whether or not appropriate synthesis has been performed at each synthesis stage.

ここで、上述したフェーズの内、論理合成に関しては、比較的、以前から活発に行われていたため、その正当性を確立すべく、論理合成の検証(論理検証)も活発に行われていた。これに対して、動作合成については、上記のように人手により置き換えられることが多いため、その検証についても、論理検証ほどは、検討されていなかった。   Here, among the above-described phases, logic synthesis has been relatively active for a long time. Therefore, verification of logic synthesis (logic verification) has been actively performed in order to establish its validity. On the other hand, since behavioral synthesis is often manually replaced as described above, its verification has not been studied as much as logical verification.

2000年、フォーマルメソッド・イン・システムデザイン、第16号、59-91頁(Formal Methods in System Design, No. 16, pp.59-91, 2000)2000, Formal Methods in System Design, No. 16, pp. 59-91 (Formal Methods in System Design, No. 16, pp. 59-91, 2000) 1999年、インターナショナルカンファレンスオンコンピュータデザイン、458-466頁(International Conference on Computer Design, pp. 458 -466, 1999)1999, International Conference on Computer Design, 458-466 (International Conference on Computer Design, pp. 458-466, 1999)

しかしながら、近年のLSI の高集積化・大規模化に伴い、LSI を構成するゲート数は、数百万になることも珍しくなくなってきており、これに起因して、動作合成に対する要求も高まってきている。また、これに関連して、動作合成フェーズの正当性の検証も非常に重要な研究課題となってきている。   However, with the recent high integration and large scale of LSIs, the number of gates that make up LSIs is becoming uncommon, resulting in an increasing demand for behavioral synthesis. ing. In connection with this, verification of the legitimacy of the behavioral synthesis phase has also become a very important research topic.

ここで、従来最も一般的に行われていた動作合成フェーズにおける正当性の検証は、所定のテストパターンを用いて行われるシミュレーションであったが、このシミュレーションは以下のような問題を含んでいた。   Here, verification of correctness in the behavioral synthesis phase, which has been most commonly performed in the past, is a simulation performed using a predetermined test pattern. However, this simulation has the following problems.

すなわち、テストパターンを用いて行われるシミュレーションを実行するためには、当然ながら、テストパターンの生成を行わなければならず、そのために時間およびコストがかかるといった問題があった。しかも、そのシミュレーションを実行することにより検証できる合成の内容は、テストパターンに依存しており、使用したテストパターンにて考慮されていないエラーを検証することはできない。従って、従来のシミュレーションによる検証では、満足する結果を得られない恐れもあった。   That is, in order to execute a simulation performed using a test pattern, naturally, a test pattern must be generated, which requires time and cost. In addition, the contents of synthesis that can be verified by executing the simulation depend on the test pattern, and errors that are not considered in the used test pattern cannot be verified. Therefore, there is a possibility that satisfactory results cannot be obtained by the verification by the conventional simulation.

また、動作合成において動作レベル記述から生成されたRTL 記述の正当性を検証する他の手法としては、たとえば動作レベル記述との等価性検証によってRTL 記述の正当性を検証するものも研究されている。   In addition, as another method for verifying the validity of the RTL description generated from the behavior level description in behavioral synthesis, for example, a method for verifying the validity of the RTL description by verifying the equivalence with the behavior level description has been studied. .

たとえば、動作合成の検証装置の一例が、非特許文献1に記載されている。非特許文献1に記載された動作合成の検証装置は、動作レベル記述およびRTL 記述、そして動作合成の副産物である対応関係から、PVS という定理証明システムのための、1)形式仕様 記述、2)等価性条件(correctness lemmas), 3)検証スクリプトを出力する。等価性条件とは、動作レベル記述およびRTL 記述の分岐・合流構造を含まない基本ブロック(basic block) 毎に実行パス(状態の系列)を抽出し、実行パスの対応関係と信号の対応関係が与えられたときに、各対応するパス毎に対応する信号値の変化が同じであることを表す論理式のことである。PVS は検証スクリプトにしたがって、各パスを実行したときの各信号値の変化を表す関数を項書換えを用いて生成する。そして、対応するパスにおける対応する信号ペアに対して、その変化を表す関数が等価であることを調べる。全ての対応するパスのペア、全ての対応する信号値のペアに対して、その変化を表す関数が等価であることをしめすことにより、動作レベル記述とRTL 記述が等価であることを検査する。   For example, Non-Patent Document 1 describes an example of a behavioral synthesis verification apparatus. The behavioral synthesis verification device described in Non-Patent Document 1 is based on the behavioral level description and RTL description, and the correspondence that is a byproduct of behavioral synthesis. Equivalence condition (correctness lemmas), 3) Output verification script. The equivalence condition means that the execution path (sequence of states) is extracted for each basic block that does not include the branching / merging structure of the behavior level description and RTL description. It is a logical expression that indicates that the change in the corresponding signal value is the same for each corresponding path when given. PVS generates a function that represents the change of each signal value when each pass is executed using term rewriting according to the verification script. Then, it is checked that the function representing the change is equivalent to the corresponding signal pair in the corresponding path. It is checked that the behavior level description and the RTL description are equivalent by indicating that the function representing the change is equivalent to all the corresponding path pairs and all the corresponding signal value pairs.

また、動作合成の検証装置の別の一例が、非特許文献2に記載されている。非特許文献2に記載された動作合成の検証装置は、実行パスを抽出し、実行パスの対応関係と信号の対応関係が与えられたときに、各パスを実行したときの各信号値の変化を表す関数を生成して、対応するパスの対応する信号に対してこの関数が等価であることを調べるのは非特許文献1と同じであるが、抽出する実行パスが基本ブロックに制限されない。もとの動作レベル記述の繰り返し構造(ループ構造)に対して、RTL 記述に対応する実行パスが見つかるまでループを展開しながら実行パスを抽出する。また、信号値の変化を表す関数の生成は、項書換えではなく、シンボルシミュレーションという技術を用いる。   Another example of a behavioral synthesis verification apparatus is described in Non-Patent Document 2. The behavioral synthesis verification device described in Non-Patent Document 2 extracts an execution path, and changes in signal values when each path is executed when the correspondence between the execution paths and the correspondence between the signals are given. Is the same as in Non-Patent Document 1, but the execution path to be extracted is not limited to the basic block. The execution path is extracted while expanding the loop until the execution path corresponding to the RTL description is found with respect to the repetition structure (loop structure) of the original behavior level description. In addition, generation of a function representing a change in signal value uses a technique called symbol simulation rather than term rewriting.

しかしながら、非特許文献1及び2に記載の従来の検証装置では、次のような問題がある。   However, the conventional verification devices described in Non-Patent Documents 1 and 2 have the following problems.

第1の問題点は、動作レベル記述とRTL 記述との完全な等価性検証を扱っていないということである。その理由は、動作合成で行なわれる工程をいわゆるスケジューリングやバインディングのみに限っているためである。一般に、動作合成では、かかる工程のみならず、動作レベル記述を受けて後の工程に適した形に変換する前処理工程やバインディングを終えた記述を論理合成可能なRTL 記述に変換する後処理工程がおこなわれる。しかし、動作レベル記述とRTL 記述の間では抽象度の乖離が非常に大きく、これらの工程を含む動作レベル記述とRTL 記述との完全な等価性検証を一度に行うことは困難である。   The first problem is that it does not deal with complete equivalence checking between the behavior level description and the RTL description. This is because the processes performed in behavioral synthesis are limited to so-called scheduling and binding. In general, in behavioral synthesis, not only such a process, but also a pre-processing process that receives a behavior level description and converts it into a form suitable for the subsequent process, and a post-processing process that converts a description after binding into an RTL description that can be logically synthesized. Is done. However, the level of abstraction is very large between the behavior level description and the RTL description, and it is difficult to perform complete equivalence verification between the behavior level description including these steps and the RTL description at one time.

第2の問題点は、検証に時間がかかるということである。その理由は、非特許文献1、2では記述に制御構造があったときは、合流のないパス(実行系列)を抽出し、それぞれのパスに対して信号値の変化を抽出し比較している。実行系列の数は分岐合流構造の個数に対して指数的に増大するため、制御構造が複雑になると抽出されるパスの数が増大し、シンボルシミュレーションや関数値の比較の回数が増大するため、結果として検証に時間がかかるためである。   The second problem is that verification takes time. The reason is that in Non-Patent Documents 1 and 2, when there is a control structure in the description, paths (execution sequences) without merging are extracted, and signal value changes are extracted and compared for each path. . Since the number of execution sequences increases exponentially with respect to the number of branching and merging structures, the number of extracted paths increases when the control structure becomes complex, and the number of symbol simulations and function value comparisons increases. This is because verification takes time as a result.

[発明の目的]
本発明の目的は、動作合成における合成の検証に関し、時間及びコストの経済化を図り、且つ、満足の行く結果を自動的に得ることのできる検証ツールを提供することを目的とする。
[Object of invention]
An object of the present invention relates to verification of synthesis in behavioral synthesis, and an object thereof is to provide a verification tool that can save time and cost and can automatically obtain a satisfactory result.

本発明の発明者は、上記課題を解決するにあたり、動作合成の内部で行われる処理について検討した。   In order to solve the above-mentioned problems, the inventor of the present invention studied processing performed inside behavioral synthesis.

一般に、動作合成装置は、動作レベル記述からRTL 記述の導出を、細かい工程による記述の変形を積み重ねて行う。詳しくは、まず前処理として、動作レベル記述を受けて関数呼び出しの解消などといった後の工程に適した形への変形、不要コードの削除による変形、言語レベル最適化による変形などを行う。次に、これらの前処理された記述を受けて、どのステップ(もしくはステート)でどの動作・演算を実行すべきかを決めるスケジューリング工程を行う。さらに、スケジュールされた記述を受けて、値を保持するためのレジスタを生成し、コストが最小となるように共有化し、このレジスタを変数に割り当て、置き換えるレジスタバインディング工程、演算器の数を最適となるように記述中の演算子に演算器を割り当て、置き換える演算器マッピング(演算器バインディングとも言う)工程、さらに、バインディングを終えた記述を論理合成可能なRTL 記述に変換する後処理工程を行う。そして、これらの工程終了時にはそれぞれ中間レベル記述が得られる。   In general, a behavioral synthesis device derives an RTL description from a behavior level description by accumulating the deformation of the description by fine steps. Specifically, as preprocessing, first, transformation into a form suitable for a later process such as cancellation of a function call by receiving an action level description, transformation by deleting unnecessary code, transformation by language level optimization, and the like are performed. Next, in response to these preprocessed descriptions, a scheduling process is performed to determine which operation (operation) should be executed in which step (or state). Furthermore, it receives a scheduled description, generates a register to hold the value, shares it so as to minimize the cost, assigns this register to a variable, replaces it, and replaces it with the optimal number of arithmetic units. An arithmetic unit mapping (also referred to as arithmetic unit binding) step for assigning and replacing an arithmetic unit to an operator in the description is performed, and a post-processing step for converting the binding-completed description into a logically synthesizable RTL description. At the end of these steps, an intermediate level description is obtained.

本発明は、動作合成装置と密接な連携を取り、各工程終了後の中間レベル記述を出力させ、工程ごとにそれぞれその前後の中間レベル記述間の等価性を検証することを特徴としている。中間レベル記述間の抽象度の乖離は、動作合成装置の入力と出力である動作レベル記述とRTL 記述間の抽象度の乖離よりも小さく、その間で行われる工程が明確にわかっているために等価性検証を容易に行うことができる。動作合成のすべての工程について中間レベル間の等価性検証を行うことにより、動作レベル記述とRTL 記述との完全な等価性検証が可能となる。   The present invention is characterized in that it closely cooperates with the behavioral synthesis device, outputs an intermediate level description after the end of each process, and verifies equivalence between the intermediate level descriptions before and after each process. The level of abstraction between the intermediate level descriptions is smaller than the level of abstraction between the behavioral level description and RTL description, which is the input and output of the behavioral synthesizer, and is equivalent because the process performed between them is clearly known. It is possible to easily perform sex verification. By performing equivalence verification between intermediate levels for all the steps of behavioral synthesis, complete equivalence verification between the behavior level description and the RTL description becomes possible.

さらに、動作合成装置に中間レベル記述間の対応関係を出力させる。動作合成の各工程では記述の変形が行われているが、動作レベル記述とRTL 記述を直接比較する場合には、どの記述がどの記述に置き換えられたのか、どの変数がどのレジスタに置き換えられたのか、といった対応関係を自動的に認識することができないため、その等価性検証には設計者による対話的な操作を必要とする半自動的なものになってしまっている。しかし、これらの情報を動作合成システムが出力することにより、等価性検証を自動で行うことができる。   Furthermore, the behavioral synthesis device is made to output the correspondence between the intermediate level descriptions. In each process of behavioral synthesis, the description is modified, but when directly comparing the behavior level description and the RTL description, which description was replaced by which description, which variable was replaced by which register Since it is not possible to automatically recognize the correspondence relationship such as, the verification of equivalence is semi-automatic which requires an interactive operation by the designer. However, the equivalence verification can be automatically performed by outputting the information by the behavioral synthesis system.

また、本発明では、各工程の前後の記述の等価性の検証は、それぞれの記述から「有限状態機械をベースとする制御構造と信号の更新を表現可能なモデル」を抽出し、このモデル上でシンボリックシミュレーションを行うことで信号値の更新を関数で表し、対応する信号の更新関数が等価であることを検証することで行う。そして、モデルの抽出に際しては合流状態に入射する遷移が必ず2つであるようにモデルに変換し、シンボリックシミュレーションにおいては合流状態に到達したときにif-then-elseによる表現式をもちいて合流後の信号値の更新を関数で表すようにすることにより、記述の制御構造における分岐合流構造をシンボルシミュレーションで扱うことを容易にし、且つ、このモデルのもとで合流構造にも適用可能なシンボルシミュレーションの手順を実現している。このため、制御構造が複雑であっても、実行パスをすべて抽出する必要がなくなり、これにより検証時間の短縮を可能とする。   In the present invention, the equivalence of descriptions before and after each process is extracted from each description by extracting “a model that can represent a control structure based on a finite state machine and signal updates”. A symbolic simulation is performed to express the update of the signal value as a function, and by verifying that the corresponding signal update function is equivalent. When extracting the model, it is converted to a model so that there are always two transitions incident on the merged state. In the symbolic simulation, when the merged state is reached, an expression by if-then-else is used. By representing the update of the signal value as a function, it is easy to handle the branching and merging structure in the described control structure in the symbol simulation, and the symbol simulation can be applied to the merging structure under this model. The procedure is realized. For this reason, even if the control structure is complicated, it is not necessary to extract all execution paths, thereby enabling the verification time to be shortened.

本発明においては、次のような効果を奏する。   The present invention has the following effects.

第1の効果は、動作レベル記述とRTL 記述との完全な等価性検証を扱うことができることにある。その理由は、前述のように動作合成装置が出力する各工程後の中間レベル記述により、動作レベル記述とRTL 記述の等価性検証を、各工程前後の等価性検証という、より容易な問題に帰着しているためである。   The first effect is that it is possible to handle complete equivalence checking between the behavior level description and the RTL description. The reason for this is that the equivalence verification between the behavior level description and the RTL description is reduced to an easier problem of equivalence verification before and after each process by the intermediate level description after each process output from the behavioral synthesis device as described above. It is because it is doing.

第2の効果は、検証に必要となる時間を短縮することができることにある。その理由は、シンボリックシミュレーションを行う上で都合のよいモデルを考案し、その上で、合流構造を扱えるシンボリックシミュレーションの手順を考案したためである。   The second effect is that the time required for verification can be shortened. The reason is that a model convenient for performing symbolic simulation was devised, and then a symbolic simulation procedure capable of handling the merging structure was devised.

次に、本発明の実施の形態について図面を参照して詳細に説明する。   Next, embodiments of the present invention will be described in detail with reference to the drawings.

図1を参照すると、本発明の第一の実施の形態は、動作レベル記述を記憶する記憶装置1と、動作合成装置2と、RTL記述を記憶する記憶装置3と、動作合成の中間レベル記述及び対応関係を記憶する記憶装置4と、モデル抽出装置5と、モデルと対応関係を記憶する記憶装置6と、信号値関数を抽出する装置7と、信号値関数を記憶する装置8と、信号値関数の等価性を比較する装置9とを含んで構成されている。このような装置はパーソナルコンピュータやワークステーション等のコンピュータと等価性検証プログラムとで実現することができる。等価性検証プログラムは磁気ディスク等のコンピュータ可読記録媒体に記録されて提供され、コンピュータに読み込まれることにより、そのコンピュータの動作を制御し、そのコンピュータ上にモデル抽出装置5、信号値関数抽出装置7、関数等価性比較装置9に相当する機能手段を実現する。   Referring to FIG. 1, in the first embodiment of the present invention, a storage device 1 that stores a behavior level description, a behavior synthesis device 2, a storage device 3 that stores an RTL description, and an intermediate level description of behavior synthesis. And a storage device 4 for storing the correspondence relationship, a model extraction device 5, a storage device 6 for storing the correspondence relationship with the model, a device 7 for extracting the signal value function, a device 8 for storing the signal value function, and a signal And a device 9 for comparing the equivalence of the value functions. Such an apparatus can be realized by a computer such as a personal computer or a workstation and an equivalence checking program. The equivalence verification program is provided by being recorded on a computer-readable recording medium such as a magnetic disk and is read by the computer to control the operation of the computer. The model extraction device 5 and the signal value function extraction device 7 are installed on the computer. The functional means corresponding to the function equivalence comparison device 9 is realized.

図2を参照すると、動作レベル記述が例示されている。この動作レベル記述の作成は、たとえば、C言語ライクな言語を用いてなされる。記憶装置1は動作レベル記述をあらかじめ記憶しておく。   Referring to FIG. 2, the behavior level description is illustrated. The behavior level description is created using, for example, a C language-like language. The storage device 1 stores a behavior level description in advance.

動作合成装置2は、動作レベル記述を入力とし、処理の過程で中間レベル記述及び対応関係を出力しながら、最終的にRTL記述を出力とする装置である。RTL記述は動作合成装置2から出力された後、記憶装置3に記憶される。中間レベル記述は、動作合成装置2の各工程終了後に出力される合成中途の記述である。中間レベル記述は動作合成装置2より出力され、記憶装置4に記憶される。中間レベル記述の出力は、例えばC言語ライクな言語を用いてなされる。図3、図4を参照すると中間レベル記述が例示されている。図3は、前処理工程後の中間記述の例である。図4は、スケジューリング・バインディング工程後の中間記述の例である。図3、図4において、“input”と宣言される信号は入力信号を表している。“output”と宣言される信号は出力信号を表している。“variable”と宣言される信号はそれぞれ通常の信号を表している。“terminal”と宣言される信号は通常の配線信号を表している。“register”と宣言される信号はそれぞれレジスタとなる信号を表している。その他はC言語の記述法にのっとっている。対応関係は、動作合成装置2の内部工程において行われる記述変換操作について、その前後の記述間の対応情報である。対応関係は、動作合成装置2によって出力され、記憶装置4に記憶される。   The behavioral synthesis device 2 is a device that receives a behavior level description as an input, outputs an intermediate level description and a correspondence relationship in the course of processing, and finally outputs an RTL description. The RTL description is output from the behavioral synthesis device 2 and then stored in the storage device 3. The intermediate level description is a description in the middle of synthesis that is output after each process of the behavioral synthesis device 2 is completed. The intermediate level description is output from the behavioral synthesis device 2 and stored in the storage device 4. The intermediate level description is output using, for example, a C-like language. With reference to FIGS. 3 and 4, an intermediate level description is illustrated. FIG. 3 is an example of an intermediate description after the preprocessing step. FIG. 4 is an example of an intermediate description after the scheduling and binding process. 3 and 4, a signal declared as “input” represents an input signal. A signal declared as “output” represents an output signal. Each signal declared “variable” represents a normal signal. The signal declared “terminal” represents a normal wiring signal. Each signal declared as “register” represents a register signal. Others follow the C language description method. The correspondence relationship is correspondence information between descriptions before and after the description conversion operation performed in the internal process of the behavioral synthesis device 2. The correspondence relationship is output by the behavioral synthesis device 2 and stored in the storage device 4.

モデル抽出装置5は、動作レベル記述、中間レベル記述、RTL記述から、それぞれ有限状態機械をベースとする制御構造と信号の更新を表現可能なモデルを抽出する装置である。有限状態機械をベースとする制御構造と信号の更新を表現可能なモデルには、たとえば拡張有限状態機械モデル(EFSMモデル, Extended Finite State Machine)が使用される。EFSMモデルは、状態の集合S 、p 次元の入力値の集合I = I1 × I2 × I3× ... ×Ip 、q 次元の出力値の集合O = O1 × O2 ×O3 × ... × Oq 、n 次元の信号値の集合D = D1 × D2 ×D3 ×... × Dn 、遷移条件関数の集合F = { f1, f2, ... }、信号値更新関数の集合U = { u1, u2, ... }、遷移関係の集合Tから構成される順序機械の表現形式である。   The model extraction device 5 is a device that extracts a control structure based on a finite state machine and a model that can represent signal updates from a behavior level description, an intermediate level description, and an RTL description. For example, an extended finite state machine model (EFSM model) is used as a model that can represent a control structure based on a finite state machine and signal updating. The EFSM model consists of a set of states S, a set of p-dimensional input values I = I1 × I2 × I3 × ... × Ip, a set of q-dimensional output values O = O1 × O2 × O3 × ... × Oq , N-dimensional signal value set D = D1 × D2 × D3 × ... × Dn, transition condition function set F = {f1, f2, ...}, signal value update function set U = {u1, u2,...}, an expression form of a sequential machine composed of a set T of transition relationships.

遷移条件関数fiは信号値の集合D と入力値の集合I から真偽値への関数である(D × I ->{0,1 })。   The transition condition function fi is a function from a set D of signal values and a set I of input values to a truth value (D × I-> {0,1}).

信号値更新関数uiは、信号値の集合D と入力値の集合I から信号値の集合D と出力値の集合O への関数である(D× I -> D × O)。   The signal value update function ui is a function from a signal value set D and an input value set I to a signal value set D and an output value set O (D × I-> D × O).

遷移関係は状態の集合S と遷移条件関数の集合F から状態の集合S と信号値更新関数の集合U への関数である(S × F -> S × U)。   The transition relation is a function from the state set S and the transition condition function set F to the state set S and the signal value update function set U (S × F-> S × U).

EFSMモデルは有向グラフを用いて表現する。グラフの頂点が状態に対応し、グラフの枝が遷移に対応する。遷移にはその遷移の遷移条件と動作内容がラベル f/uとして付記される。   The EFSM model is expressed using a directed graph. The vertices of the graph correspond to states, and the graph branches correspond to transitions. The transition condition and action contents of the transition are appended to the transition as a label f / u.

EFSMモデルの入力、出力、信号値はそれぞれ固有の名前を持ち、名前でその値を参照可能である。この名前はそれぞれ、動作レベル記述、RTL 記述および中間レベル記述の、同名の入力ポート名、出力ポート名、信号名(変数やレジスタ)に対応する。   Each input, output, and signal value of an EFSM model has a unique name, and the value can be referred to by name. This name corresponds to the input port name, output port name, and signal name (variable and register) of the same name in the behavior level description, RTL description, and intermediate level description, respectively.

EFSMの状態はいくつかのグループに分割される。このグループをブロックと呼ぶ。ひとつのブロックに属する状態は遷移で連結されている。ブロック中のどの状態からも遷移が入射しない状態をブロック開始状態と呼ぶ。ブロック外の状態への遷移が出射する状態をブロック終了状態と呼ぶ。   The state of EFSM is divided into several groups. This group is called a block. States belonging to one block are connected by transition. A state in which no transition enters from any state in the block is called a block start state. A state where a transition to a state outside the block is emitted is called a block end state.

図5および図6を参照するとEFSMモデルが例示されている。この図5のEFSMモデルは図3に例示されている中間記述から変換したものである。この図6のEFSMモデルは図4に例示されている中間記述から変換したものである。状態および遷移がそれぞれグラフで表現される。グラフの頂点は状態を表し、状態の名前が付記されている。グラフの枝が遷移を表し、遷移条件と信号値更新関数が付記されている。ブロックは破線四角で表現される。   With reference to FIGS. 5 and 6, an EFSM model is illustrated. The EFSM model shown in FIG. 5 is converted from the intermediate description illustrated in FIG. The EFSM model in FIG. 6 is obtained by converting the intermediate description illustrated in FIG. Each state and transition is represented by a graph. The vertices of the graph represent the state, with the state name appended. A branch of the graph represents a transition, and a transition condition and a signal value update function are added. The block is represented by a dashed square.

本発明で扱うEFSMの状態には、分岐状態、合流状態、通常状態がある。これらはすべて排他である。分岐状態は2本の遷移が出射する状態である。合流状態は2つの遷移が入射する状態である。通常状態は入射する遷移も出射する遷移も一つの状態である。   The EFSM states handled in the present invention include a branch state, a merge state, and a normal state. These are all exclusive. The branching state is a state where two transitions are emitted. The merged state is a state where two transitions are incident. In the normal state, both the incident transition and the outgoing transition are one state.

本発明で扱うEFSMの遷移には、通常遷移、分岐遷移、合流遷移がある。これらはすべて排他である。分岐遷移とは分岐状態から出射する遷移である。合流遷移とは合流状態に入射する遷移である。分岐遷移、合流遷移は信号値を変更しないし、何も出力しない。   The EFSM transition handled in the present invention includes a normal transition, a branch transition, and a merge transition. These are all exclusive. A branch transition is a transition that exits from a branch state. A merge transition is a transition that enters a merge state. The branch transition and merge transition do not change the signal value and output nothing.

本発明で扱うEFSMには、ブロック分割についていくつかの制限が設けられている。まず第一に、各ブロックの内部には繰り返し構造を含んでいてはならない。これは、繰り返し構造を持つ記述を対象にしないということではない。繰り返し構造がある記述に対しては、繰り返しの開始部分までのブロック、繰り返しの本体部分のブロック、繰り返し終了後のブロックというブロックに分割すれば、各ブロックは繰り返し構造を持たない。   The EFSM handled by the present invention has some restrictions on block division. First of all, each block must not contain a repeating structure. This does not mean that descriptions with a repetitive structure are not targeted. For a description with a repeat structure, each block does not have a repeat structure if it is divided into a block up to the start part of the repeat, a block of the repeat body part, and a block after the end of the repeat.

次に、任意の状態において出射する遷移は高々2本であり、ブロック開始状態以外の状態において入射する遷移は高々2本でなければならない。もとの記述において3個所以上からの合流がある場合には、新たに生成された合流状態および合流遷移によって分解される。この制約によって、後述するシンボリックシミュレーションにおいて合流のある制御構造を扱うことを可能としている。   Next, at most two transitions should be emitted in any state, and at most two transitions should be incident in states other than the block start state. In the original description, if there are merges from three or more locations, they are resolved by the newly created merge state and merge transition. This restriction makes it possible to handle a confluent control structure in a symbolic simulation described later.

最後に、各ブロックのブロック開始状態はただ一つでなければならない。また、任意の二つのブロックにおいてそのブロック間遷移はただ一つでなければならない。   Finally, each block must have only one block start state. In addition, there must be only one transition between any two blocks.

信号値関数抽出装置7は、モデルから信号値関数を抽出する装置である。信号値関数は、信号値の変化を表した関数であり、任意の変数及び任意の演算により表現される。信号値関数は記憶装置8に記憶される。   The signal value function extraction device 7 is a device that extracts a signal value function from a model. The signal value function is a function that represents a change in the signal value, and is expressed by an arbitrary variable and an arbitrary operation. The signal value function is stored in the storage device 8.

関数等価性比較装置9は、入力された二つの関数を比較し等価な関数であることを判定する装置である。   The function equivalence comparison device 9 is a device that compares two input functions and determines that they are equivalent functions.

次に、図を参照して本実施の形態の動作について詳細に説明する。   Next, the operation of the present embodiment will be described in detail with reference to the drawings.

動作合成装置2では入力である動作レベル記述がRTL 記述に自動変換される。動作合成に関しては、例えば文献「2000年、アイ・イー・イー・イー・トランザクションズ・オン・コンピュー タ・エイディッド・デザイン・オブ・インテグレイティッド・サーキット・アンド・システムズ、第19巻、第11号、1507-1522 頁(IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems, Vol.19, No.11, pp.1507-1522, 2000)」に示されている既知の方法を用いる。   The behavioral synthesis apparatus 2 automatically converts the behavior level description as an input into an RTL description. Regarding behavioral synthesis, for example, the document “2000, IEE Transactions on Computer Aided Design of Integrated Circuit and Systems, Vol. 19, No. 11, 1507 -1522 (IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems, Vol. 19, No. 11, pp. 1507-1522, 2000) ”is used.

動作合成の内部では細かい工程が記述の変形を順に行っており、各工程終了時にはそれぞれ中間レベル記述が得られる。
図1に例示される動作合成装置2は、「前処理工程」「スケジューリング・レジスタバインディング工程」「演算器バインディング工程」「後処理工程」の工程毎に中間レベル記述を出力する。
動作合成装置は、各工程における処理によって、工程前の中間記述におけるどの信号が、工程後の中間記述におけるどの信号に変換されたかという情報を持っている。また、工程前の中間記述におけるどの記述群が、工程後の中間記述におけるどの記述群に変換されたかという情報ももっている。動作合成装置は、これらの情報を対応関係として出力する。図7を参照すると対応関係が例示されている。図7に例示される対応関係においては、図3に例示される中間記述におけるラベルL01,L02から始まる記述群それぞれに対して、図4に例示される中間記述におけるラベルL11,L12から始まる記述群が対応することを表している。また、それぞれの記述群の開始時点における信号の対応関係が示されている。たとえば、ラベルL01の時点における信号i1は、ラベルL11における信号in0に対応していることが指定されている。その他の信号についても同様である。
Inside the behavioral synthesis, detailed processes are sequentially changing the description, and an intermediate level description is obtained at the end of each process.
The behavioral synthesis device 2 illustrated in FIG. 1 outputs an intermediate level description for each of the “pre-processing step”, “scheduling / register binding step”, “operation unit binding step”, and “post-processing step”.
The behavioral synthesis device has information on which signal in the intermediate description before the process is converted into which signal in the intermediate description after the process by the process in each process. It also has information on which description group in the intermediate description before the process is converted to which description group in the intermediate description after the process. The behavioral synthesis device outputs these pieces of information as correspondences. FIG. 7 illustrates the correspondence relationship. In the correspondence illustrated in FIG. 7, for each of the description groups starting from the labels L01 and L02 in the intermediate description illustrated in FIG. 3, the description group starting from the labels L11 and L12 in the intermediate description illustrated in FIG. Indicates that it corresponds. In addition, the correspondence of signals at the start time of each description group is shown. For example, it is specified that the signal i1 at the time of the label L01 corresponds to the signal in0 at the label L11. The same applies to other signals.

論理等価性検証装置は、図8に示される処理フロー中のステップ1の繰り返しによって、各工程における、その前後の中間レベル記述が等価であることを調べる。ただし、最初の工程では前の記述は動作合成装置2の入力である動作レベル記述であり、最後の工程では後の記述は動作合成装置2の出力であるRTL 記述であるが、以下の説明では統一的に中間レベル記述と呼ぶ。以下の説明では、検証の対象として注目する工程の前の中間レベル記述を中間レベル記述H とよび、この工程の後の中間レベル記述を中間レベル記述L とよぶ。   The logical equivalence verification apparatus checks that the intermediate level descriptions before and after each process are equivalent by repeating step 1 in the processing flow shown in FIG. However, in the first step, the previous description is a behavior level description that is an input of the behavioral synthesis device 2, and in the last step, the subsequent description is an RTL description that is the output of the behavioral synthesis device 2, but in the following explanation, Unifiedly called intermediate level description. In the following description, the intermediate level description before the process to be verified is called the intermediate level description H, and the intermediate level description after this process is called the intermediate level description L.

図9を参照するとステップ1の詳細が示されている。   Referring to FIG. 9, the details of step 1 are shown.

ステップ11で、中間レベル記述H および中間レベル記述L からそれぞれEFSMモデルを抽出する。ステップ11の詳細な手順を以下に示す。   In step 11, EFSM models are extracted from the intermediate level description H and the intermediate level description L, respectively. The detailed procedure of step 11 is shown below.

中間レベル記述中の全ての文は、信号への代入を定義する「代入文」、条件分岐による制御構造を表現する「条件分岐文」(if 文) 、非条件分岐による制御構造を表現する「非条件分岐文」(goto文およびlabel 文)に帰着して表現されているものとする。ただし、他の構文はすべてこれらに読み替えることができるため一般性を失わない。   All statements in the intermediate level description are “assignment statements” that define assignment to signals, “conditional branch statements” (if statements) that express control structures by conditional branches, and “control statements that use unconditional branches” It is assumed that it is expressed as a result of “unconditional branch statement” (goto statement and label statement). However, all other syntaxes can be read as these, so they do not lose generality.

記述の実行順序である上から下に順に、文の種類に従って以下のようにEFSMに変換する。   From the top to the bottom of the description execution order, it is converted into EFSM as follows according to the type of statement.

「代入文」に対して、通常遷移を生成する。代入文の内容から通常遷移の信号値更新関数を定義する。この定義は、代入文の代入定義式をそのまま用いる。   A normal transition is generated for the “assignment statement”. Define a normal transition signal value update function from the contents of the assignment statement. This definition uses the assignment definition expression of the assignment statement as it is.

図10を参照すると代入文のEFSMへの変換の処理が例示されている。この例では、代入文「e=a+b+d 」の前の文まで変換処理が終わっている。このときの状態がS7である。これに続き、これからこの代入文の処理が行われる。代入文に対しては通常遷移が生成され、遷移条件がTRUEに、信号値更新関数が「e=a+b+d 」となり、遷移後の状態がS8である。これ以後は、この代入文につづく文が続いて変換される。   Referring to FIG. 10, a process for converting an assignment statement to EFSM is illustrated. In this example, the conversion process is completed up to the sentence before the assignment sentence “e = a + b + d”. The state at this time is S7. Following this, the assignment statement is processed. A normal transition is generated for the assignment statement, the transition condition is TRUE, the signal value update function is “e = a + b + d”, and the state after the transition is S8. Thereafter, the sentence following the assignment statement is subsequently converted.

「条件分岐文」に対して、分岐状態、合流状態と、分岐遷移、合流遷移を生成する。分岐内部の文に対する処理は再帰的に行う。ただし、if文以下の文に制御が移ることがない場合には合流状態および合流遷移は生成しない。合流状態が生成される時は、分岐状態と合流状態の間に相互リンクを張っておき、対応する分岐状態や合流状態がわかるようにしてもよい。これは、分岐状態から合流状態までの遷移系列により決定される。たとえば、分岐状態から合流状態までの遷移系列に、相互リンクのない合流状態がない、などである。先に述べたように、分岐遷移、合流遷移では信号値は更新されない。すなわち、各信号値は保存されるように信号値更新関数が定義される。 For a “conditional branch statement”, a branch state, a merge state, a branch transition, and a merge transition are generated. Processing for statements inside branches is performed recursively. However, if the control does not move to a sentence below the if statement, the merge state and merge transition are not generated. When the merge state is generated, a mutual link may be provided between the branch state and the merge state so that the corresponding branch state or merge state can be known. This is determined by the transition sequence from the branching state to the merging state. For example, the transition sequence from the branch state to the merge state does not have a merge state without a mutual link. As described above, the signal value is not updated in the branch transition and the merge transition. That is, a signal value update function is defined so that each signal value is stored.

図11を参照すると条件分岐文のEFSMへの変換の処理が例示されている。この例では、条件分岐文「if(a<b) {... }else{... }」の前の文までの変換処理が終わっており、このときの状態がS1である。これからこの条件分岐文の処理が行われる。この条件分岐文に対しては分岐状態と分岐遷移が生成される、条件成立側の分岐遷移の遷移条件は「a<b 」となる。信号値は更新されない。条件非成立側の分岐遷移の遷移条件は「!(a<b)」となる。これも信号値は更新されない。分岐遷移後の状態はそれぞれS2, S14 となる。条件成立側、非成立側の分岐の内部の処理はそれぞれ再帰的に行われる。変換後の状態はそれぞれS13, S15となっている。その後合流遷移が生成される。合流遷移の遷移条件は共にTRUE, 信号値は更新されない。合流後の状態はS16 となっている。その後、条件分岐文に続く文の変換を続けて行う。   Referring to FIG. 11, a process of converting a conditional branch sentence to EFSM is illustrated. In this example, the conversion processing up to the sentence before the conditional branch sentence “if (a <b) {...} else {...}” has been completed, and the state at this time is S1. From now on, this conditional branch statement is processed. A branch state and a branch transition are generated for this conditional branch sentence, and the transition condition of the branch transition on the condition establishment side is “a <b”. The signal value is not updated. The transition condition of the branch transition on the condition non-fulfilled side is “! (A <b)”. Again, the signal value is not updated. The states after the branch transition are S2 and S14, respectively. The internal processing of the branch on the condition satisfaction side and the non-satisfaction side is performed recursively. The converted states are S13 and S15, respectively. A merge transition is then generated. Both transition conditions of merge transition are TRUE, and the signal value is not updated. The state after joining is S16. After that, the conversion of the sentence following the conditional branch sentence is continued.

「非条件分岐文」に対して、合流状態と合流遷移を生成する。このとき、その合流方法が飛び先のラベルに合流する他の遷移に依存して2種類ある。   For the “unconditional branch statement”, a merge state and a merge transition are generated. At this time, there are two types of merge methods depending on other transitions that merge with the jump destination label.

飛び先のラベルに合流する他の遷移の中に、もっとも最近の分岐(合流状態と相互リンクが張られているものを除く)が同じものどうしのペアが存在する場合は、このペアに対して合流状態および合流遷移を生成する。さらに、このとき、分岐状態と合流状態の相互リンクを張る。   If there is a pair of other transitions that join the destination label that have the same most recent branch (excluding those that are linked to each other), this pair Generate merging states and merging transitions. Further, at this time, a mutual link is established between the branching state and the joining state.

このようなペアがつくれないときは、分岐の履歴が似ているものどうしでペアをつくり合流状態を生成する。分岐の履歴が似ているとは、履歴のはじめの部分系列が同じであることのことである。このときは、分岐状態が特定できないので分岐状態と合流状態の間に相互リンクはつくらない。   When such a pair cannot be created, a pair is created between those having similar branching histories and a merged state is generated. Similar branching history means that the first partial series in the history is the same. At this time, since the branching state cannot be specified, no mutual link is formed between the branching state and the joining state.

以上を繰り返して、ひとつのラベルに遷移する複数のgoto文に対して合流状態に入射する遷移がつねに2本であることを保証しながら合流する。   By repeating the above, a plurality of goto statements transitioning to one label are merged while guaranteeing that there are always two transitions incident on the merged state.

「条件分岐文」と同様に、分岐遷移、合流遷移では信号値は更新されない(各信号値は保存されるように信号値更新関数が定義される)。   Similarly to the “conditional branch statement”, the signal value is not updated in the branch transition and the merge transition (the signal value update function is defined so that each signal value is saved).

図12を参照すると非条件分岐文のEFSMへの変換の処理が例示されている。この例には3つの分岐先が同じ非条件分岐文「goto STXX 」が含まれている。それぞれ、非条件分岐文の前までの変換処理が終了しており、状態がそれぞれSa, Sb, Sdである。この3つの非条件分岐文のうち、非条件分岐文(1) および(2) が最も最近の分岐が同じであるためにペアとなる。そこで、これらに対し合流遷移を生成する。合流遷移の遷移条件は共にTRUE, 信号値は更新されない。合流後の状態はScとなっている。さらに、最も最近の分岐と相互リンクが張られる。つぎに、これ以上最も最近の分岐が同じであるペアが作れないので、合流後のScと非条件分岐文(3) とのペアを作る。これらに対して合流遷移を生成する。合流遷移の遷移条件は共にTRUE, 信号値は更新されない。合流後の状態はSeとなっている。分岐状態が特定できないので分岐状態との相互リンクは作らない。   Referring to FIG. 12, the process of converting an unconditional branch sentence to EFSM is illustrated. This example includes an unconditional branch statement “goto STXX” having the same three branch destinations. In each case, the conversion processing up to before the unconditional branch sentence has been completed, and the states are Sa, Sb, and Sd, respectively. Of these three unconditional branch statements, unconditional branch statements (1) and (2) are paired because the most recent branch is the same. Therefore, a merging transition is generated for these. Both transition conditions of merge transition are TRUE, and the signal value is not updated. The state after joining is Sc. In addition, the most recent branch and interconnection is established. Next, since a pair with the same most recent branch cannot be made any more, a pair of Sc after joining and the unconditional branch sentence (3) is made. A merging transition is generated for these. Both transition conditions of merge transition are TRUE, and the signal value is not updated. The state after joining is Se. Since the branch state cannot be specified, a mutual link with the branch state is not created.

RTLに近いレベルでは、複数の連続する複数の文を同時に実行することが指定されている場合がある。このような場合、レジスタと内部端子の別が明示されたり、信号値の更新のタイミングを明示的に指定したり(クロックバウンダリに対応する)、更新の依存関係が上から下へとなっていない場合がある。このようなときには、一つの状態における信号(レジスタ値)の更新関係を項書換え手法を用いて抽出し、これから得られた信号値更新関数により通常遷移を生成する。   At a level close to RTL, it may be specified that multiple consecutive statements are executed simultaneously. In such a case, the distinction between the register and the internal terminal is clearly indicated, the update timing of the signal value is explicitly specified (corresponding to the clock boundary), and the update dependency is not from top to bottom There is a case. In such a case, the update relationship of the signal (register value) in one state is extracted using the term rewriting method, and the normal transition is generated by the signal value update function obtained therefrom.

かかる手順で得られたEFSMモデルをEHおよびELと呼ぶこととする。EHは中間レベル記述H に対応するEFSMモデル、ELは中間レベル記述L に対応するEFSMモデルである。   The EFSM model obtained by such a procedure will be called EH and EL. EH is an EFSM model corresponding to the intermediate level description H, and EL is an EFSM model corresponding to the intermediate level description L.

先に述べたように動作合成装置2は、対応関係により中間レベル記述における記述群を指定している。この記述群の情報を元にEFSM EH,ELのブロック分割の情報とする。ただし、記述群それぞれに対応してブロックを分割する必要はなく、先に述べたEFSMモデルの制限を満たす限り幾つかの処理単位を集めて一つのブロックとすることが可能である。これら情報により、EFSM EH,ELのそれぞれについてブロック開始状態、ブロック終了状態が指定される。   As described above, the behavioral synthesis device 2 designates the description group in the intermediate level description by the correspondence relationship. Based on this description group information, EFSM EH and EL block division information is used. However, it is not necessary to divide the block in correspondence with each description group, and it is possible to collect several processing units as one block as long as the above-mentioned restriction of the EFSM model is satisfied. With these pieces of information, the block start state and block end state are designated for each of EFSM EH and EL.

ブロック開始状態、ブロック終了状態が指定されると、記憶装置4に格納された対応関係からブロック開始状態、終了状態の対応関係がさらに指定される。得られた対応関係は記憶装置6に記憶される。   When the block start state and the block end state are designated, the correspondence relationship between the block start state and the end state is further designated from the correspondence relationship stored in the storage device 4. The obtained correspondence relationship is stored in the storage device 6.

図3に例示されている中間記述から変換されたEFSMを例示した図5を参照すると、EFSMが二つのブロックL01 とL02 に分割されている様子が例示されている。同様に、図4に例示されている中間記述から変換されたEFSMを例示した図6を参照すると、EFSMが二つのブロックL 11とL 12に分割されている様子が例示されている。   Referring to FIG. 5 illustrating the EFSM converted from the intermediate description illustrated in FIG. 3, the EFSM is divided into two blocks L01 and L02. Similarly, referring to FIG. 6 illustrating the EFSM converted from the intermediate description illustrated in FIG. 4, a state in which the EFSM is divided into two blocks L 11 and L 12 is illustrated.

さらに動作合成装置2によって出力されている記述群の対応関係により、EHのブロック開始状態SsとELのブロック開始状態Ss'の組(対応関係)及び、EHのブロック終了状態SeとELのブロック終了状態の組(対応関係)が指定される。   Further, depending on the correspondence between the description groups output by the behavioral synthesis device 2, the combination of the EH block start state Ss and the EL block start state Ss' (correspondence) and the EH block end state Se and EL block end A set of states (correspondence) is specified.

また、信号の対応関係からEHの信号r とELの信号r'の組(対応関係)が指定される。ここで、 EFSM EHのすべての信号に対して対応関係が与えられているわけではない。対応関係が与えられていない信号は、後に述べる信号関数比較において、比較対象信号とはしない。   Also, a set (correspondence relationship) of the signal r of EH and the signal r ′ of EL is designated from the correspondence relationship of signals. Here, correspondence is not given to all signals of EFSM EH. A signal to which no correspondence relationship is given is not a signal to be compared in a signal function comparison described later.

図18を参照すると、対応関係が例示されている。ブロックの対応関係からEFSM2のブロックL1における状態S0,状態S16がそれぞれEFSM3のブロックL11における状態S0,状態18に対応することが示されている。また、このブロックにおいて、i1とin0が、i2とin1が、oとout0がそれぞれ対応していることなどが示されている。   Referring to FIG. 18, the correspondence relationship is illustrated. From the block correspondence relationship, it is shown that the state S0 and the state S16 in the block L1 of the EFSM2 correspond to the state S0 and the state 18 in the block L11 of the EFSM3, respectively. In this block, i1 and in0 correspond to i2 and in1, and o and out0 correspond to each other.

ステップ12では、両方のEFSMモデルEH、ELから、各ブロックの開始状態Ss、終了状態Se、信号r のペアごとに、信号値更新関数V(Ss,Se)(x) 及び遷移条件関数C(Ss,Se)(x) を生成する。信号値更新関数とはブロックの開始状態Ssから終了状態Seまで実行したときの信号値の変化を、開始状態Ssにおける信号値のベクトルx で表す関数である。遷移条件関数とはブロックの開始状態Ssから終了状態Seまで実行するための条件をブロック開始状態Ssにおける信号値のベクトルx で表す関数である。   In step 12, from both EFSM models EH and EL, the signal value update function V (Ss, Se) (x) and the transition condition function C (for each pair of the start state Ss, end state Se, and signal r of each block. Ss, Se) (x) is generated. The signal value update function is a function that represents a change in signal value when executed from the start state Ss to the end state Se of the block as a signal value vector x in the start state Ss. The transition condition function is a function that represents a condition for executing from the block start state Ss to the end state Se by a signal value vector x in the block start state Ss.

図13は、ステップ12の詳細な手順である。かかる手順では、EFSMの各状態に対して、ブロック開始状態Ssから状態s まで実行したときの信号値の変化を状態Ssにおける信号値のベクトルx で表す信号値更新関数V(Ss,s)(x)とブロック開始状態Ssから状態s まで到達する条件である遷移条件関数C(Ss,s)(x)を順に求める。   FIG. 13 is a detailed procedure of step 12. In such a procedure, for each state of EFSM, a signal value update function V (Ss, s) that represents a change in signal value when executed from the block start state Ss to the state s as a signal value vector x in the state Ss ( x) and a transition condition function C (Ss, s) (x), which is a condition for reaching from the block start state Ss to the state s, are obtained in order.

ステップ121では、EFSMから未処理のブロックをひとつ選択する。   In step 121, one unprocessed block is selected from EFSM.

ステップ122では、ブロックの開始状態Ssに対して信号値更新関数および遷移条件関数を以下のように設定する。
V(Ss,Ss)(x) = x
C(Ss,Ss) = TRUE
さらに、Ssから一遷移で到達可能な状態を処理候補集合に追加する。
In step 122, the signal value update function and the transition condition function are set as follows for the block start state Ss.
V (Ss, Ss) (x) = x
C (Ss, Ss) = TRUE
Furthermore, a state that can be reached by one transition from Ss is added to the processing candidate set.

ステップ123では、処理候補集合から状態s をひとつ取り出し、これに信号値更新関数および遷移条件関数を設定する。これの関数は、処理対象の状態s に入射する遷移の種類によって以下の(a)、(b)、(c)、(d)のように決定される。   In step 123, one state s is extracted from the processing candidate set, and a signal value update function and a transition condition function are set therein. These functions are determined as in the following (a), (b), (c), and (d) depending on the type of transition incident on the processing target state s.

(a)入射する遷移Tが通常遷移である場合。
遷移Tの出射元の状態をs1とする。状態s1から遷移して状態sに到達するとき各信号値は遷移Tの信号値更新関数U(t)(x)に依って更新される。したがって、ブロックの開始状態から状態sまで到達したときの信号値更新関数は、状態s1までの信号値更新関数と遷移Tの信号値更新関数の合成関数となる。
ただし、信号値更新関数U(t)(x)において入力信号の値を読み出すことが指定されている場合には代入される信号の値だけでなく、入力信号の値も、値が読み出されたことをあらわすために、関数による表現を用いて更新する。具体的には、入力信号iの値がexpであるとき、更新後の値は入力を読み出すことを表す関数inp()を用いてinp(exp)とあらわす。
(A) The incident transition T is a normal transition.
The state of the emission source of transition T is s1. When the state transitions from the state s1 and reaches the state s, each signal value is updated by the signal value update function U (t) (x) of the transition T. Therefore, the signal value update function when reaching the state s from the start state of the block is a composite function of the signal value update function up to the state s1 and the signal value update function of the transition T.
However, if it is specified in the signal value update function U (t) (x) that the value of the input signal is to be read, not only the value of the assigned signal but also the value of the input signal is read. In order to show that, it is updated using a function expression. Specifically, when the value of the input signal i is exp, the updated value is expressed as inp (exp) using a function inp () indicating reading of the input.

また、遷移T は状態s1から無条件に実行されるので(遷移T の遷移条件がTRUEである)、遷移条件関数は状態s1のそれが保存される。
V(Ss,s)(x) = ( U(t) 〇 V(Ss,s1))(x)
C(Ss,s)(x) = C(Ss,s1)(x)
Since the transition T is unconditionally executed from the state s1 (the transition condition of the transition T is TRUE), the transition condition function stores that of the state s1.
V (Ss, s) (x) = (U (t) 〇 V (Ss, s1)) (x)
C (Ss, s) (x) = C (Ss, s1) (x)

図14には、通常遷移に対するシンボルシミュレーションが例示されている。この例では、図5に例示されているEFSM2のブロックL01 が選択されている。このブロックの開始状態S0に対して、V(S0,S0)(x), C(S0,S0)(x)がそれぞれ割り当てられている。S0からS1への通常遷移では、a, bに入力信号i, jの値がそれぞれ読み込まれ、その他の信号は1 で初期化される。従って、遷移後にa, bの値がそれぞれi, jとなり、b, c, d の値がそれぞれ1 となる。入力信号i, jからは値が読み込まれたので、それぞれinp(i), inp(j)に更新される。   FIG. 14 illustrates symbol simulation for normal transition. In this example, the block L01 of EFSM2 illustrated in FIG. 5 is selected. V (S0, S0) (x) and C (S0, S0) (x) are respectively assigned to the start state S0 of this block. In the normal transition from S0 to S1, the values of the input signals i and j are read into a and b, respectively, and the other signals are initialized with 1. Therefore, after the transition, the values of a and b are i and j, respectively, and the values of b, c and d are 1 respectively. Since values are read from the input signals i and j, they are updated to inp (i) and inp (j), respectively.

(b)入射する遷移T が分岐遷移である場合。
遷移Tの出射元の状態をs1とする。EFSMへの制約により遷移Tにおいて信号値は更新されない。したがって、ブロックの開始状態から状態sまで到達したときの信号値更新関数は、状態s1までの信号値更新関数が保存される。また、遷移Tは状態s1において遷移条件C(t)(x)が成り立つときに実行される。したがって、状態sに到達するための遷移条件関数は状態s1での遷移条件関数と遷移Tの遷移条件の論理積となる。
V(Ss,s)(x)=V(Ss,s1)(x)
C(Ss,s)(x)=C(Ss,s1)(x)∧C(t)(V(Ss,s1)(x))
(B) The incident transition T is a branch transition.
The state of the emission source of transition T is s1. The signal value is not updated at transition T due to the restriction on EFSM. Therefore, the signal value update function up to state s1 is stored as the signal value update function when reaching the state s from the block start state. Transition T is executed when transition condition C (t) (x) is satisfied in state s1. Therefore, the transition condition function for reaching the state s is a logical product of the transition condition function in the state s1 and the transition condition of the transition T.
V (Ss, s) (x) = V (Ss, s1) (x)
C (Ss, s) (x) = C (Ss, s1) (x) ∧C (t) (V (Ss, s1) (x))

図15には、分岐遷移に対するシンボルシミュレーションが例示されている。S1からS2への分岐遷移の遷移条件は(a<b) である。したがって、状態S2への遷移条件は、この遷移の遷移条件を状態S1での書く信号の値で読み替えた論理式と、状態S1までの遷移条件の論理積(i<j) となる。   FIG. 15 illustrates symbol simulation for a branch transition. The transition condition of the branch transition from S1 to S2 is (a <b). Therefore, the transition condition to the state S2 is a logical product (i <j) of the logical expression obtained by replacing the transition condition of the transition with the value of the signal written in the state S1 and the transition condition up to the state S1.

(c)状態sが合流状態であり、入射する遷移T1,T2が合流遷移であるとき、かつ、合流状態sから分岐状態sdに相互リンクが張られているとき。
遷移T1,T2の出射元の状態をそれぞれs1,s2とする。EFSMへの制約により遷移T1、T2において信号値は更新されない。
(C) When the state s is a merging state, the incident transitions T1 and T2 are merging transitions, and a mutual link is established from the merging state s to the branching state sd.
Let s1 and s2 be the emission source states of transitions T1 and T2, respectively. The signal value is not updated at transitions T1 and T2 due to restrictions on EFSM.

しかし、どちらの遷移を経由して状態s に到達したかに依ってブロックの開始状態から状態s まで到達したときの信号値は異なる。これは、分岐状態sd から出射する遷移の遷移条件に依存する。   However, the signal value when reaching the state s from the start state of the block differs depending on which transition is used to reach the state s. This depends on the transition condition of the transition emitted from the branch state sd.

ここで、分岐状態sdから出射する遷移Td1, Td2の遷移条件がそれぞれh, ¬ hであり、遷移T1, T2はそれぞれ遷移Td1, Td2を経由してs に到達しているものとする。このとき、ブロックの開始状態から状態s まで到達したときの信号r の信号値更新関数はite(if-then-else) に基づく表現式を用いて、下記のように表される。(ite c a b) の値は、c が真であるときa, cが偽であるときb である。また、(ite c, a, b) のa とb が同じであるとき、a と表現される。また、状態s に到達するための遷移条件関数は合流元の状態s1, s2での遷移条件関数の論理和になる。
V(Ss,s)(x) = (ite h(V(Ss,sd)(x)), V(Ss,s1)(x), V(Ss,s2)(x))
C(Ss,s)(x) = C(Ss,s1)(x) ∨ C(Ss,s2)(x)
Here, it is assumed that the transition conditions of transitions Td1 and Td2 emitted from the branch state sd are h and ¬ h, respectively, and the transitions T1 and T2 reach s via the transitions Td1 and Td2, respectively. At this time, the signal value update function of the signal r when reaching the state s from the start state of the block is expressed as follows using an expression based on ite (if-then-else). The value of (ite cab) is a when c is true and b when c is false. When a and b in (ite c, a, b) are the same, it is expressed as a. The transition condition function for reaching the state s is a logical sum of the transition condition functions in the merging states s1 and s2.
V (Ss, s) (x) = (ite h (V (Ss, sd) (x)), V (Ss, s1) (x), V (Ss, s2) (x))
C (Ss, s) (x) = C (Ss, s1) (x) ∨ C (Ss, s2) (x)

図16には、分岐状態と相互リンクが張られている合流状態への合流遷移に対するシンボルシミュレーションが例示されている。合流状態S7と相互リンクを張られている分岐状態はS 2であり、この状態から出射する分岐状態の遷移条件はそれぞれ(a>0), !(a>0) である。したがって、状態S7での信号値更新関数は(a>0) を条件とするite の表現式で表されている。   FIG. 16 illustrates a symbol simulation for a merge transition to a merge state in which a bifurcation state and a mutual link are extended. The branch state that is mutually linked to the merge state S7 is S2, and the transition conditions of the branch state that exits from this state are (a> 0) and! (A> 0), respectively. Therefore, the signal value update function in the state S7 is expressed by an expression of ite on the condition (a> 0).

(d)状態sが合流状態であり、入射する遷移T1,t2が合流遷移であるときかつ、合流状態sから分岐状態sdに相互リンクが張られていないとき。
遷移T1,t2の出射元の状態をそれぞれs1,s2とする。EFSMへの制約により遷移T1、t2において信号値は更新されない。
(D) When the state s is a merging state, the incident transitions T1 and t2 are merging transitions, and no mutual link is established from the merging state s to the branching state sd.
Let s1 and s2 be the emission source states of transitions T1 and t2, respectively. The signal value is not updated at transitions T1 and t2 due to restrictions on EFSM.

しかし、どちらの遷移を経由して状態s に到達したかに依ってブロックの開始状態から状態s まで到達したときの信号値は異なる。これは、合流元の状態 s1, s2 での遷移条件関数に依存する。   However, the signal value when reaching the state s from the start state of the block differs depending on which transition is used to reach the state s. This depends on the transition condition function in the merging source states s1 and s2.

ブロックの開始状態から状態s まで到達したときの信号r の信号値更新関数はite(if-then-else) に基づく表現式と、不定値を表す変数dcを用いて以下のように表される。また、状態s に到達するための遷移条件関数は合流元の状態s1, s2での遷移条件関数の論理和になる。
V(Ss,s)(x) = (ite C(Ss,s1)(x), V(Ss,s1)(x), (ite C(Ss,s2)(x), V(Ss,s2)(x), dc))
C(Ss,s)(x) = C(Ss,s1)(x) ∨ C(Ss,s2)(x)
The signal value update function of the signal r when it reaches the state s from the start state of the block is expressed as follows using an expression based on ite (if-then-else) and a variable dc representing an indefinite value . The transition condition function for reaching the state s is a logical sum of the transition condition functions in the merging states s1 and s2.
V (Ss, s) (x) = (ite C (Ss, s1) (x), V (Ss, s1) (x), (ite C (Ss, s2) (x), V (Ss, s2) (x), dc))
C (Ss, s) (x) = C (Ss, s1) (x) ∨ C (Ss, s2) (x)

ブロックの最終状態に到達したときは、ブロックの開始状態Ss、ブロックの終了状態Se、信号r 、信号値更新関数V(Ss,Se)(x) の組と遷移条件関数C(Ss,Se)(x) を記憶装置に記憶する(ステップ124)。   When the final state of the block is reached, the block start state Ss, block end state Se, signal r, signal value update function V (Ss, Se) (x) and transition condition function C (Ss, Se) (x) is stored in the storage device (step 124).

ステップ13では、対応する開始状態、対応する終了状態、対応する信号の組に対して、信号値更新関数が等価であることを関数等価性比較装置により調べる。   In step 13, the function equivalence comparison device checks that the signal value update function is equivalent to the corresponding start state, corresponding end state, and corresponding signal set.

図17は、ステップ13の詳細な手順である。ステップ131では、EFSM EHのブロック開始状態Ss, ブロック終了状態Se, 対応関係が与えられている信号の名から信号r をひとつ選ぶ。これにより組(Ss, Se, r) が指定され、これに対応付けられた信号値関数と遷移条件関数が、記憶装置8から選ばれる。   FIG. 17 shows the detailed procedure of step 13. In step 131, one signal r is selected from the block start state Ss, block end state Se, and the name of the signal to which the correspondence is given in EFSM EH. As a result, a set (Ss, Se, r) is designated, and a signal value function and a transition condition function associated therewith are selected from the storage device 8.

ステップ132では、動作合成装置2により出力された対応関係から、(Ss, Se, r) に対応する、ブロック開始状態、ブロック終了状態、信号の組(Ss', Se', r')を選択し、これに対応付けられた信号値関数と遷移条件関数が、記憶装置8から選ばれる。   In step 132, the block start state, block end state, and signal set (Ss', Se ', r') corresponding to (Ss, Se, r) are selected from the correspondence output by the behavioral synthesis device 2 Then, the signal value function and the transition condition function associated therewith are selected from the storage device 8.

ステップ133では、取り出した信号値関数、遷移条件関数がそれぞれ等価であることを検査する。この検査にはたとえば文献「1995年、プロシーディングス・オブ・インターナショナル・ カンファレンス・オン・コンピュータ・エイディッド・デザイン、2-6頁(Proceedings of International Conference on Computer Aided Design, pp.2-6, 1995)」に記された既知の技術を使用する。   In step 133, it is checked that the extracted signal value function and transition condition function are equivalent. For example, the document “1995, Proceedings of International Conference on Computer Aided Design, pp. 2-6, 1995” Use the known techniques described in.

すべてのEFSM EH のブロック開始状態Ss, ブロック終了状態Se、信号r の組に対して比較を行うまで、かかる手順を繰り返す。   Such a procedure is repeated until comparison is performed for a set of the block start state Ss, block end state Se, and signal r of all EFSM EHs.

次に、本実施の形態の効果について説明する。   Next, the effect of this embodiment will be described.

本実施の形態では、動作合成装置から出力される中間レベル記述を利用して、動作レベル記述とRTL記述との比較を、いくつかの中間レベル記述間の比較に帰着し、さらに、動作合成による記述変換の過程の情報である対応関係を検証のために使用することにより、動作レベル記述とRTL記述との完全な等価性の比較を行うことができる。   In the present embodiment, using the intermediate level description output from the behavioral synthesis device, the comparison between the behavioral level description and the RTL description is reduced to a comparison between several intermediate level descriptions. By using the correspondence, which is information of the description conversion process, for verification, it is possible to compare the complete equivalence between the behavior level description and the RTL description.

さらに、EFSMモデル変換手順において合流状態に入射する遷移が必ず2つであるようにEFSMモデルに変換し、シンボルシミュレーション手順において合流状態に到達したときにiteによる表現式をもちいて合流後の信号値の更新を関数であらわすことにより、制御構造に分岐合流構造があってもすべての実行パスを抽出することなく信号値の変化を関数であらわすことが可能となる。実行パスを抽出しなくてもよいことにより、シンボルシミュレーションを行う回数や、信号値更新関数を比較する回数を減らすことができ、検証のために必要となる実行時間を削減することができる。   Furthermore, in the EFSM model conversion procedure, it is converted to an EFSM model so that there are always two transitions that enter the merged state. When the symbol simulation procedure reaches the merged state, the signal value after merging is expressed using the expression by ite. Thus, even if the control structure has a branching / merging structure, it is possible to represent the change in signal value as a function without extracting all execution paths. Since it is not necessary to extract the execution path, the number of symbol simulations and the number of signal value update functions to be compared can be reduced, and the execution time required for verification can be reduced.

次に、本発明の第二の実施の形態について詳細に説明する。   Next, a second embodiment of the present invention will be described in detail.

本発明の第二の実施の形態では、動作合成装置が対応関係において処理単位の対応関係、信号の対応関係に加えて、分岐構造の対応関係を与え、論理検証装置がこの対応情報を利用することが異なる。   In the second embodiment of the present invention, the behavioral synthesis device gives the correspondence relationship of the branch structure in addition to the correspondence relationship of the processing units and the signal correspondence relationship in the correspondence relationship, and the logic verification device uses this correspondence information. That is different.

動作合成装置は、2つの注目する中間レベル記述に対して、分岐条件が等価である分岐のペア(b, b') を出力する。   The behavioral synthesis device outputs a pair of branches (b, b ′) whose branch conditions are equivalent to two target intermediate level descriptions.

論理検証装置は、シンボルシミュレーションにおいてこの分岐のペア(b, b') に対して仮想的な信号(B, B') を用意しこれについても他の信号と同様にシミュレーションを行う。   In the symbol simulation, the logic verification device prepares a virtual signal (B, B ′) for this pair of branches (b, b ′), and performs simulation for this as well as other signals.

シンボルシミュレーションの手順は第一の実施の形態と同じであるが、ステップ123の処理対象が分岐遷移であるときおよび相互リンクが存在する合流状態に入射する合流遷移であるときのみ異なる。   The procedure of the symbol simulation is the same as that of the first embodiment, but is different only when the processing target of step 123 is a branch transition and when it is a merge transition that enters a merge state where a mutual link exists.

分岐遷移の場合は、信号値更新関数および遷移条件関数が以下のように更新される。
V(Ss,s)(x) = V(Ss,s1)(x) : 信号B 以外の信号に対応する要素
= C(t)(V(Ss,s1)(x)) : 信号B に対応する要素
C(Ss,s)(x) = C(Ss,s1)(x) ∧ V(Ss,s1)(x)(B)
ここで、V(Ss,s1)( x)(B)はV(Ss,s1)( x) の信号B の要素である関数をあらわす。
In the case of branch transition, the signal value update function and the transition condition function are updated as follows.
V (Ss, s) (x) = V (Ss, s1) (x): Elements corresponding to signals other than signal B
= C (t) (V (Ss, s1) (x)): Element corresponding to signal B
C (Ss, s) (x) = C (Ss, s1) (x) ∧ V (Ss, s1) (x) (B)
Here, V (Ss, s1) (x) (B) represents a function which is an element of the signal B of V (Ss, s1) (x).

相互リンクが存在する合流状態に入射する合流遷移に対しては、信号値更新関数が以下のように更新される。
V(Ss,s)(x) = (ite V(Ss,sd)(x)(B), V(Ss,s1)(x), V(Ss,s2)(x))
The signal value update function is updated as follows for the merge transition that enters the merge state where the mutual link exists.
V (Ss, s) (x) = (ite V (Ss, sd) (x) (B), V (Ss, s1) (x), V (Ss, s2) (x))

そして、最後にステップ13においては、分岐のペアに対して生成された仮想的な信号についても信号値関数の比較処理の対象とする。   Finally, in step 13, the virtual signal generated for the pair of branches is also subject to signal value function comparison processing.

次に、本実施の形態の効果について説明する。   Next, the effect of this embodiment will be described.

本実施の形態では、動作合成装置が等価であると考えられる中間端子のペアを指定し、論理検証装置がこれらの中間端子のペアが確かに等価であることを確かめ、さらに、信号値更新関数や遷移条件関数を中間端子を用いて簡単化する。一般に関数の等価性比較は関数が複雑になれば、比較に必要とする時間が増大する。したがって、中間端子をもちいて比較すべき関数を簡単化することにより検証に要する時間を削減することができる。   In the present embodiment, the behavioral synthesis device specifies intermediate terminal pairs that are considered to be equivalent, the logic verification device confirms that these intermediate terminal pairs are indeed equivalent, and further includes a signal value update function. And transition condition functions are simplified using intermediate terminals. In general, in the function equivalence comparison, if the function becomes complicated, the time required for the comparison increases. Therefore, the time required for verification can be reduced by simplifying the functions to be compared using the intermediate terminals.

本発明の実施の形態において例示されるシステムの構成を説明するために用いられる図である。It is a figure used in order to demonstrate the structure of the system illustrated in embodiment of this invention. 本発明の実施の形態において例示される動作レベル記述を説明するために用いられる図である。It is a figure used in order to demonstrate the behavior level description illustrated in embodiment of this invention. 本発明の実施の形態において例示される中間レベル記述を説明するために用いられる図である。It is a figure used in order to demonstrate the intermediate level description illustrated in embodiment of this invention. 本発明の実施の形態において例示される中間レベル記述を説明するために用いられる図である。It is a figure used in order to demonstrate the intermediate level description illustrated in embodiment of this invention. 本発明の実施の形態において例示されるEFSMモデルを説明するために用いられる図である。It is a figure used in order to demonstrate the EFSM model illustrated in embodiment of this invention. 本発明の実施の形態において例示されるEFSMモデルを説明するために用いられる図である。It is a figure used in order to demonstrate the EFSM model illustrated in embodiment of this invention. 本発明の実施の形態において例示される対応関係を説明するために用いられる図である。It is a figure used in order to demonstrate the correspondence illustrated in the embodiment of the present invention. 本発明の実施の形態において例示されるシステムの処理の流れを説明するために用いられる図である。It is a figure used in order to explain the flow of processing of the system illustrated in the embodiment of the present invention. 図4に示されるステップ1を説明するために用いられる図である。It is a figure used in order to explain step 1 shown in FIG. 本発明の実施の形態において例示される代入文の処理を説明するために用いられる図である。It is a figure used in order to explain the processing of the assignment statement illustrated in the embodiment of the present invention. 本発明の実施の形態において例示される条件分岐文の処理を説明するために用いられる図である。It is a figure used in order to explain processing of a conditional branch sentence illustrated in an embodiment of the invention. 本発明の実施の形態において例示される非条件分岐文の処理を説明するために用いられる図である。It is a figure used in order to demonstrate the process of the unconditional branch sentence illustrated in embodiment of this invention. 図5に示されるステップ12を説明するために用いられる図である。FIG. 6 is a diagram used for explaining step 12 shown in FIG. 5. 本発明の実施の形態において例示される通常遷移に対するシンボルシミュレーションの処理を説明するために用いられる図である。It is a figure used in order to demonstrate the process of the symbol simulation with respect to the normal transition illustrated in embodiment of this invention. 本発明の実施の形態において例示される分岐遷移に対するシンボルシミュレーションの処理を説明するために用いられる図である。It is a figure used in order to demonstrate the process of the symbol simulation with respect to the branch transition illustrated in embodiment of this invention. 本発明の実施の形態において例示される分岐状態と相互リンクが張られている合流状態へ入射する合流遷移に対するシンボルシミュレーションの処理を説明するために用いられる図である。It is a figure used in order to demonstrate the process of the symbol simulation with respect to the merging transition which injects into the merging state in which the bifurcation state illustrated in the embodiment of this invention and the mutual link are extended. 図5に示されるステップ13を説明するために用いられる図である。FIG. 6 is a diagram used for explaining step 13 shown in FIG. 5. 本発明の実施の形態において例示される対応関係を説明するために用いられる図である。It is a figure used in order to demonstrate the correspondence illustrated in the embodiment of the present invention.

符号の説明Explanation of symbols

1…記憶装置
2…動作合成装置
3…記憶装置
4…記憶装置
5…モデル抽出装置
6…記憶装置
7…信号値関数抽出装置
8…記憶装置
9…関数等価性比較装置
DESCRIPTION OF SYMBOLS 1 ... Storage device 2 ... Behavioral synthesis device 3 ... Storage device 4 ... Storage device 5 ... Model extraction device 6 ... Storage device 7 ... Signal value function extraction device 8 ... Storage device 9 ... Function equivalence comparison device

Claims (6)

動作レベルの記述に対するレジスタ転送レベルの記述の等価性を検証する動作レベル記述とレジスタ転送レベル記述間の等価性検証方法であって、
動作合成手段が、第1の記憶装置から動作レベルの記述を読み出し、前記動作レベルの記述から1つ又は複数の工程を経てレジスタ転送レベルの記述を生成し、前記各工程後の中間レベルの記述を生成し、前記各工程前後の記述の対応関係を生成し、前記レジスタ転送レベルの記述と前記中間レベルの記述と前記対応関係とを第2の記憶装置に記憶するステップと、
モデル抽出手段が、前記第1および第2の記憶装置から前記動作レベルの記述と前記レジスタ転送レベルの記述と前記中間レベルの記述とを読み出し、有限状態機械をベースとする制御構造と信号の更新を表現可能なモデルを抽出し、第3の記憶装置に記録するステップと、
信号値抽出手段が、前記第3の記憶装置から前記モデルを読み込み、当該モデル上でシンボリックシミュレーションを行い、信号値の更新関数を抽出し、第4の記憶装置に記録するステップと、
関数等価性比較手段が、前記第2および第4の記憶装置から前記更新関数と前記対応関係を読み出し、前記対応関係に基づき対応する信号の更新関数を比較するステップとを含む
動作レベル記述とレジスタ転送レベル記述間の等価性検証方法。
An equivalence verification method between a behavior level description and a register transfer level description for verifying equivalence of a register transfer level description to a behavior level description,
The behavioral synthesis means reads the description of the behavior level from the first storage device, generates a description of the register transfer level through one or a plurality of steps from the description of the behavior level, and describes the intermediate level after each step. Generating a correspondence relationship between descriptions before and after each step, and storing the description of the register transfer level, the description of the intermediate level, and the correspondence relationship in a second storage device ;
Model extraction means reads the description of the operation level, the description of the register transfer level, and the description of the intermediate level from the first and second storage devices, and updates the control structure and signal based on a finite state machine Extracting a model capable of expressing the information and recording it in a third storage device ;
A signal value extraction unit reads the model from the third storage device, performs symbolic simulation on the model, extracts an update function of the signal value, and records it in a fourth storage device;
A behavioral level description and a register including a step of comparing the update function and the corresponding relationship from the second and fourth storage devices and comparing the update function of the corresponding signal based on the corresponding relationship. Equivalence verification method between transfer level descriptions.
前記シンボリックシミュレーションにおいては、入力端子からの値の入力及び出力端子への値の出力を関数で表現する請求項1記載の動作レベル記述とレジスタ転送レベル記述間の等価性検証方法。 In the above symbolic simulation, equivalence checking method between the operation level description of claim 1, wherein the register transfer level description to represent a function of the output values of the input and output terminals of the values from the input terminal. 動作レベルの記述に対するレジスタ転送レベルの記述の等価性を検証する動作レベル記述とレジスタ転送レベル記述間の等価性検証装置であって、
第1の記憶装置から動作レベルの記述を読み出し、前記動作レベルの記述から1つ又は複数の工程を経てレジスタ転送レベルの記述を生成し、前記各工程後の中間レベルの記述を生成し、前記各工程前後の記述の対応関係を生成し、前記レジスタ転送レベルの記述と前記中間レベルの記述と前記対応関係とを第2の記憶装置に記憶する動作合成手段と、
前記第1および第2の記憶装置から前記動作レベルの記述と前記レジスタ転送レベルの記述と前記中間レベルの記述とを読み出し、有限状態機械をベースとする制御構造と信号の更新を表現可能なモデルを抽出し、第3の記憶装置に記録するモデル抽出手段と、
前記第3の記憶装置から前記モデルを読み込み、当該モデル上でシンボリックシミュレーションを行い、信号値の更新関数を抽出し、第4の記憶装置に記録する信号値抽出手段と、
前記第2および第4の記憶装置から前記更新関数と前記対応関係を読み出し、前記対応関係に基づき対応する信号の更新関数を比較する関数等価性比較手段と
を含む動作レベル記述とレジスタ転送レベル記述間の等価性検証装置。
An equivalence verification apparatus between a behavior level description and a register transfer level description for verifying equivalence of a register transfer level description to a behavior level description,
Reading a description of an operation level from a first storage device, generating a description of a register transfer level through one or more steps from the description of the operation level, generating an intermediate level description after each step, and A behavioral synthesis means for generating a correspondence relationship between descriptions before and after each step, and storing the register transfer level description, the intermediate level description, and the correspondence relationship in a second storage device;
A model that can read the description of the operation level, the description of the register transfer level, and the description of the intermediate level from the first and second storage devices, and represent the control structure based on the finite state machine and the update of the signal Model extracting means for extracting and recording in a third storage device;
A signal value extracting means for reading the model from the third storage device, performing a symbolic simulation on the model, extracting an update function of the signal value, and recording it in a fourth storage device;
An operation level description and a register transfer level description including function equivalence comparison means for reading the update function and the correspondence relationship from the second and fourth storage devices and comparing the update functions of corresponding signals based on the correspondence relationship Equivalence verification device between.
前記シンボリックシミュレーションにおいては、入力端子からの値の入力及び出力端子への値の出力を関数で表現する請求項3記載の動作レベル記述とレジスタ転送レベル記述間の等価性検証装置。   4. The equivalence verification apparatus between a behavior level description and a register transfer level description according to claim 3, wherein in the symbolic simulation, a value input from an input terminal and a value output to an output terminal are expressed by functions. コンピュータを、
第1の記憶装置から動作レベルの記述を読み出し、前記動作レベルの記述から1つ又は複数の工程を経てレジスタ転送レベルの記述を生成し、前記各工程後の中間レベルの記述を生成し、前記各工程前後の記述の対応関係を生成し、前記レジスタ転送レベルの記述と前記中間レベルの記述と前記対応関係とを第2の記憶装置に記憶する動作合成手段と、
前記第1および第2の記憶装置から前記動作レベルの記述と前記レジスタ転送レベルの記述と前記中間レベルの記述とを読み出し、有限状態機械をベースとする制御構造と信号の更新を表現可能なモデルを抽出し、第3の記憶装置に記録するモデル抽出手段と、
前記第3の記憶装置から前記モデルを読み込み、当該モデル上でシンボリックシミュレーションを行い、信号値の更新関数を抽出し、第4の記憶装置に記録する信号値抽出手段と、
前記第2および第4の記憶装置から前記更新関数と前記対応関係を読み出し、前記対応関係に基づき対応する信号の更新関数を比較する関数等価性比較手段と
して機能させるプログラム。
Computer
Reading a description of an operation level from a first storage device, generating a description of a register transfer level through one or more steps from the description of the operation level, generating an intermediate level description after each step, and A behavioral synthesis means for generating a correspondence relationship between descriptions before and after each step, and storing the register transfer level description, the intermediate level description, and the correspondence relationship in a second storage device;
A model that can read the description of the operation level, the description of the register transfer level, and the description of the intermediate level from the first and second storage devices, and represent the control structure based on the finite state machine and the update of the signal Model extracting means for extracting and recording in a third storage device;
A signal value extracting means for reading the model from the third storage device, performing a symbolic simulation on the model, extracting an update function of the signal value, and recording it in a fourth storage device;
A program that reads the update function and the correspondence relationship from the second and fourth storage devices and functions as a function equivalence comparison unit that compares an update function of a corresponding signal based on the correspondence relationship.
前記シンボリックシミュレーションにおいては、入力端子からの値の入力及び出力端子への値の出力を関数で表現する請求項5項に記載のプログラム。   The program according to claim 5, wherein in the symbolic simulation, a value input from an input terminal and a value output to an output terminal are expressed by functions.
JP2007320573A 2007-12-12 2007-12-12 Method, apparatus, and program for verifying equivalence between behavior level description and register transfer level description Expired - Fee Related JP4702357B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007320573A JP4702357B2 (en) 2007-12-12 2007-12-12 Method, apparatus, and program for verifying equivalence between behavior level description and register transfer level description

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007320573A JP4702357B2 (en) 2007-12-12 2007-12-12 Method, apparatus, and program for verifying equivalence between behavior level description and register transfer level description

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001332604A Division JP4099974B2 (en) 2001-10-30 2001-10-30 Method, apparatus, and program for verifying equivalence between behavior level description and register transfer level description

Publications (2)

Publication Number Publication Date
JP2008090865A JP2008090865A (en) 2008-04-17
JP4702357B2 true JP4702357B2 (en) 2011-06-15

Family

ID=39374878

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007320573A Expired - Fee Related JP4702357B2 (en) 2007-12-12 2007-12-12 Method, apparatus, and program for verifying equivalence between behavior level description and register transfer level description

Country Status (1)

Country Link
JP (1) JP4702357B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5893954B2 (en) 2012-02-24 2016-03-23 ルネサスエレクトロニクス株式会社 Equivalence verification method, equivalence verification program, and equivalence verification device
KR102545171B1 (en) 2016-10-12 2023-06-19 삼성전자주식회사 Computing system and method for performing verification of circuit design

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999050766A1 (en) * 1998-03-30 1999-10-07 Siemens Aktiengesellschaft Method for comparing electric circuits
JP2001142937A (en) * 1999-10-08 2001-05-25 Nec Corp Scheduling correctness checking method and schedule verifying method for circuit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999050766A1 (en) * 1998-03-30 1999-10-07 Siemens Aktiengesellschaft Method for comparing electric circuits
JP2001142937A (en) * 1999-10-08 2001-05-25 Nec Corp Scheduling correctness checking method and schedule verifying method for circuit

Also Published As

Publication number Publication date
JP2008090865A (en) 2008-04-17

Similar Documents

Publication Publication Date Title
JP4099974B2 (en) Method, apparatus, and program for verifying equivalence between behavior level description and register transfer level description
US7890901B2 (en) Method and system for verifying the equivalence of digital circuits
Van Eijk Sequential equivalence checking based on structural similarities
US6038392A (en) Implementation of boolean satisfiability with non-chronological backtracking in reconfigurable hardware
US6530073B2 (en) RTL annotation tool for layout induced netlist changes
JP2001142937A (en) Scheduling correctness checking method and schedule verifying method for circuit
JP2000148808A (en) Method for verifying correctness of structural rtl for scheduled motion description
CN104620242A (en) Relative timing architecture
CN102598001A (en) Techniques for analysis of logic designs with transient logic
US7523029B2 (en) Logic verification and logic cone extraction technique
JP2004013720A (en) Method and program for generating timing constraint model for logic circuit and timing-driven layout method using timing constraint model
CN113642285A (en) Determining and verifying metastability in clock domain crossings
US8418119B2 (en) Logical circuit netlist reduction and model simplification using simulation results containing symbolic values
Wahba et al. Design error diagnosis in sequential circuits
JP4702357B2 (en) Method, apparatus, and program for verifying equivalence between behavior level description and register transfer level description
Jose et al. SMT based false causal loop detection during code synthesis from polychronous specifications
Savoj et al. Sequential equivalence checking for clock-gated circuits
JP5025542B2 (en) Property extraction apparatus and method
CN112632890B (en) Verification of hardware design for data transformation component
JP2008197883A (en) Lsi analytic program, recording medium with program recorded, lsi analytic device, and lsi analytic method
US20210064790A1 (en) Scalable formal security verification of circuit designs
Kim et al. Automated formal verification of scheduling with speculative code motions
JP2845154B2 (en) How to create a logic simulation model
JP5262678B2 (en) Behavioral synthesis system, behavioral synthesis method, and behavioral synthesis program
JP2010257003A (en) Logic equivalence verification system, logic equivalence verification method, method for manufacturing semiconductor integrated circuit, control program and readable storage medium

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090615

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100914

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101028

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110221

LAPS Cancellation because of no payment of annual fees