Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4268620B2 - Circuit description language equivalence checking method and equivalence checking device - Google Patents
[go: Go Back, main page]

JP4268620B2 - Circuit description language equivalence checking method and equivalence checking device - Google Patents

Circuit description language equivalence checking method and equivalence checking device Download PDF

Info

Publication number
JP4268620B2
JP4268620B2 JP2006053918A JP2006053918A JP4268620B2 JP 4268620 B2 JP4268620 B2 JP 4268620B2 JP 2006053918 A JP2006053918 A JP 2006053918A JP 2006053918 A JP2006053918 A JP 2006053918A JP 4268620 B2 JP4268620 B2 JP 4268620B2
Authority
JP
Japan
Prior art keywords
circuit
data
description language
information
design data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006053918A
Other languages
Japanese (ja)
Other versions
JP2007233648A (en
Inventor
昌宏 藤田
Original Assignee
株式会社半導体理工学研究センター
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 株式会社半導体理工学研究センター filed Critical 株式会社半導体理工学研究センター
Priority to JP2006053918A priority Critical patent/JP4268620B2/en
Publication of JP2007233648A publication Critical patent/JP2007233648A/en
Application granted granted Critical
Publication of JP4268620B2 publication Critical patent/JP4268620B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Description

この発明は、回路記述言語の等価性検証方法に関する。特にRTL(Register Transfer Level)と、RTLより上位レベルの記述言語による設計記述との等価性の検証に関するものである。   The present invention relates to a method for verifying equivalence of circuit description languages. In particular, the present invention relates to verification of equivalence between a RTL (Register Transfer Level) and a design description using a description language at a higher level than the RTL.

従来、LSI(Large Scale Integrated circuit)製品の設計には、VHDL等のハードウェア記述言語(HDL:Hardware Description Language)が用いられてきた。このような言語で記述されたLSIの設計データを以下RTL記述と呼ぶことにする(以下、各種言語によるLSIの設計データをまとめてハードウェア設計記述と呼ぶことがある)。   Conventionally, a hardware description language (HDL) such as VHDL has been used for designing an LSI (Large Scale Integrated circuit) product. LSI design data described in such a language is hereinafter referred to as RTL description (hereinafter, LSI design data in various languages may be collectively referred to as hardware design description).

また近年では、C言語など汎用のプログラミング言語をハードウェア用に拡張した言語(例えばSystemC等)が、LSIの設計言語として用いられ始めている。この場合に得られる設計データ(これを以後機能記述と呼ぶ)は、RTL記述と異なり時間の概念を有さず、RTL記述よりも記述量が少なく済むという利点がある。   In recent years, a language in which a general-purpose programming language such as C language is extended to hardware (for example, SystemC) has begun to be used as an LSI design language. The design data obtained in this case (hereinafter referred to as function description) does not have the concept of time unlike the RTL description, and has the advantage that the description amount is smaller than that of the RTL description.

機能記述は、合成ツールを用いてRTL記述に変換され、その後論理回路レベルの設計データに変換される。この際、機能記述とRTL記述とは機能的に等しくなければならず、両者の間の等価性を検証する必要がある。この等価性を検証する方法については、従来いくつかの提案があるが(例えば特許文献1参照)、従来の方法であると非常に膨大な計算量が必要であり、検証に時間がかかるという問題があった。
特開2005−316595号公報
The function description is converted into an RTL description using a synthesis tool, and then converted into design data at a logic circuit level. At this time, the function description and the RTL description must be functionally equivalent, and it is necessary to verify equivalence between the two. There are several proposals for verifying this equivalence (see, for example, Patent Document 1). However, the conventional method requires a very large amount of calculation and requires a long time for verification. was there.
JP 2005-316595 A

この発明は、検証を容易に出来る回路記述言語の等価性検証方法及び等価性検証装置を提供する。 The present invention provides a circuit description language equivalence checking method and an equivalence checking device that can be easily verified.

この発明の態様に係る回路記述言語の等価性検証方法は、CPUが、第1回路記述言語により記述された、半導体集積回路に関する第1設計データを回路合成して、前記第1回記述言語よりも抽象度の低い第2回路記述言語により記述された第2設計データを得、これをメモリ装置に格納するステップと、前記CPUが、前記第2設計データを回路合成して、演算器と該演算器に接続されるデータパスとを含む第1回路情報と、該第1回路情報におけるデータの流れを制御する第1制御情報とを得、これを前記メモリ装置に格納するステップと、前記CPUが、前記第2回路記述言語により記述された第3設計データを回路合成して、演算器と該演算器に接続されるデータパスとを含む第2回路情報と、該第2回路情報におけるデータの流れを制御する第2制御情報とを得、これを前記メモリ装置に格納するステップと、前記CPUが、前記第1、第2回路情報を比較して対応関係を検証し、対応しない部分について形式的検証を行い、該第1、第2回路情報が等価であるか否かを検証するステップと、前記CPUが、前記第1、第2制御情報につき形式的検証を行い、該第1、第2制御情報が等価であるか否かを検証するステップとを具備し、前記第1、第2回路情報が等価であり、且つ前記第1、第2制御情報が等価である場合、前記第1設計データと前記第3設計データとは等価であると判定され、前記CPUは、前記第1、第2回路情報の対応関係を検証する際、前記第2回路記述言語を回路合成して得られる演算器と該演算器に接続されるデータパスと、前記第1回路記述言語との対応関係を保持するライブラリ、を前記メモリ装置から読み出し、これを参照して、前記第1、第2回路情報が少なくとも部分的に対応するか否かを検証し、対応しない部分について前記形式的検証を行い、前記CPUは、前記第1、第2制御情報が等価であるか否かを検証する際、前記第1制御情報の取り得る複数の状態に関する状態遷移条件と、前記第2制御情報の取り得る複数の状態に関する状態遷移条件とを比較し、前記状態遷移条件が同一である部分については等価であると判断し、同一でない部分について前記形式的検証を行う。 In the circuit description language equivalence verification method according to one aspect of the present invention, the CPU synthesizes the first design data related to the semiconductor integrated circuit described in the first circuit description language, and the first description language Obtaining second design data described in a second circuit description language having a lower abstraction level and storing the second design data in a memory device; and the CPU synthesizes the second design data with a circuit, Obtaining first circuit information including a data path connected to the computing unit, and first control information for controlling a data flow in the first circuit information, and storing the first control information in the memory device; CPU synthesizes the third design data described in the second circuit description language, and includes second circuit information including an arithmetic unit and a data path connected to the arithmetic unit, and the second circuit information Data flow Obtaining the second control information for controlling this and storing it in the memory device; the CPU compares the first and second circuit information to verify the correspondence; Verifying whether the first and second circuit information are equivalent, and the CPU performs formal verification on the first and second control information to determine whether the first and second circuit information are equivalent. Verifying whether or not the two control information is equivalent, and if the first and second circuit information are equivalent and the first and second control information are equivalent, the first It is determined that the design data and the third design data are equivalent, and the CPU is obtained by synthesizing the second circuit description language when verifying the correspondence between the first and second circuit information. A computing unit, a data path connected to the computing unit, and the first circuit A library holding a correspondence relationship with a predicate language is read from the memory device, and it is checked whether or not the first and second circuit information are at least partially corresponding to each other. The formal verification is performed, and when the CPU verifies whether or not the first and second control information are equivalent, a state transition condition regarding a plurality of states that the first control information can take, and the first 2 Compare the state transition conditions regarding a plurality of states that can be taken by the control information, determine that the parts having the same state transition conditions are equivalent, and perform the formal verification on the parts that are not the same.

この発明の態様に係る回路記述言語の等価性検証装置は、第1回路記述言語により記述された、半導体集積回路に関する第1設計データと、前記第1回路記述言語よりも抽象度の低い第2回路記述言語により記述された第2設計データとが等価であるか否かを検証する等価性検証装置であって、前記第1設計データを回路合成して、前記第2回路記述言語により記述された第3設計データを得、前記第3設計データを回路合成して、演算器と該演算器に接続されるデータパスとを含む第1回路情報と、該第1回路情報におけるデータの流れを制御する第1制御情報を得、更に前記第2設計データを回路合成して、演算器と該演算器に接続されるデータパスとを含む第2回路情報と、該第2回路情報におけるデータの流れを制御する第2制御情報を得る回路合成手段と、前記第2回路記述言語を回路合成して得られる演算器及び該演算器に接続されるデータパスと、前記第1回路記述言語との対応関係を記録したライブラリを保持するメモリ装置と、前記第1、第2回路情報を比較して対応関係を検証し、対応しない部分について形式的検証を行い、該第1、第2回路情報が等価であるか否かを検証するデータパス比較手段と、前記第1、第2制御情報につき形式的検証を行い、該第1、第2制御情報が等価であるか否かを検証する制御部比較手段とを具備し、前記データパス比較手段は、前記メモリ装置内の前記ライブラリを参照して、前記第1、第2回路情報が少なくとも部分的に対応するか否かを検証し、対応しない部分について前記形式的検証を行い、前記制御部比較手段は、前記第1制御情報の取り得る複数の状態に関する状態遷移条件と、前記第2制御情報の取り得る複数の状態に関する状態遷移条件とを比較し、前記状態遷移条件が同一である部分については等価であると判断し、同一でない部分について前記形式的検証を行うAn equivalence verification apparatus for a circuit description language according to an aspect of the present invention includes first design data related to a semiconductor integrated circuit described in a first circuit description language and a lower abstraction level than the first circuit description language. An equivalence checking device for verifying whether or not second design data described in a two-circuit description language is equivalent, wherein the first design data is synthesized and described in the second circuit description language. First circuit information including a computing unit and a data path connected to the computing unit, and a data flow in the first circuit information First circuit control information is obtained, and the second design data is further synthesized, and second circuit information including a computing unit and a data path connected to the computing unit, and data in the second circuit information Control to control the flow A circuit synthesizing means for obtaining information, a computing unit obtained by synthesizing the second circuit description language, a data path connected to the computing unit, and a library in which a correspondence relationship between the first circuit description language is recorded The memory device to be held and the first and second circuit information are compared to verify the correspondence relationship, and the non-corresponding portion is formally verified to determine whether or not the first and second circuit information are equivalent. Data path comparison means for verification, and control section comparison means for performing formal verification on the first and second control information and verifying whether or not the first and second control information are equivalent, The data path comparison means refers to the library in the memory device to verify whether or not the first and second circuit information corresponds at least partially, and performs the formal verification on the non-corresponding portion. The control unit comparing means The state transition conditions relating to the plurality of states that can be taken by the first control information are compared with the state transition conditions concerning the plurality of states that can be taken by the second control information, and parts having the same state transition conditions are equivalent. And the formal verification is performed for non-identical parts .

本発明によれば、検証を容易に出来る回路記述言語の等価性検証方法及び等価性検証装置を提供出来る。 According to the present invention, it is possible to provide an equivalence checking method and an equivalence checking device for circuit description languages that can be easily verified.

以下、この発明の実施形態を図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。   Embodiments of the present invention will be described below with reference to the drawings. In the description, common parts are denoted by common reference symbols throughout the drawings.

この発明の第1の実施形態に係る回路記述言語の等価性検証方法について説明する。はじめに、本実施形態に係るLSIのおおまかな設計方法について図1を用いて説明する。図1はLSIの設計方法のフローチャートである。   A circuit description language equivalence checking method according to the first embodiment of the present invention will be described. First, a rough design method of an LSI according to this embodiment will be described with reference to FIG. FIG. 1 is a flowchart of an LSI design method.

まず設計すべきLSIのシステム仕様が決定される。そして、その仕様を満たすように、システムレベル設計が行われる(ステップS10)。この際に用いられる記述言語が、ハードウェア記述言語よりも抽象度の高い、ハードウェア用に拡張されたC言語であり、例えばSystemCやSpecCなどである。抽象度とは、設計の詳細度のことであり、詳細度とはLSIの構造と演算の順序付けのことである。ステップS10によって、設計すべきLSIの機能記述(LSIの設計データ)10が得られる。この時点において得られる機能記述10は抽象度が高く、時間の概念を持っていない。すなわちLSIの動作の基準となるクロックと演算とのタイミングについては全く規定されていない。   First, the system specification of the LSI to be designed is determined. Then, system level design is performed so as to satisfy the specifications (step S10). The description language used at this time is a C language having a higher abstraction level than the hardware description language and extended for hardware, such as SystemC and SpecC. The level of abstraction is the level of detail in design, and the level of detail is the order of LSI structure and operations. Through step S10, an LSI function description (LSI design data) 10 to be designed is obtained. The function description 10 obtained at this point has a high level of abstraction and does not have a concept of time. In other words, the timing of the clock and calculation, which is the reference for the operation of the LSI, is not defined at all.

次に機能記述10を、合成ツールを用いて動作合成する(ステップS11)。その結果、機能記述10はRTL記述11に変換される。RTL記述11には、その抽象度にいくつかの段階があるが、それについては後述する。更にRTL記述11は合成ツールにより、機能合成及び論理合成される(ステップS12)。その結果、RTL記述11はゲートレベルの論理回路(ネットリスト)12に変換される。   Next, the function description 10 is behaviorally synthesized using a synthesis tool (step S11). As a result, the function description 10 is converted into the RTL description 11. The RTL description 11 has several levels of abstraction, which will be described later. Further, the RTL description 11 is functionally synthesized and logically synthesized by a synthesis tool (step S12). As a result, the RTL description 11 is converted into a gate-level logic circuit (net list) 12.

その後、ゲートレベル論理回路12についてレイアウト設計を行い(ステップS13)、マスクレイアウトデータ13が得られる。以上によりLSIの設計は終了し、マスクレイアウトデータ13は実際のLSIの製造ラインへ投入される。   Thereafter, layout design is performed for the gate level logic circuit 12 (step S13), and mask layout data 13 is obtained. The LSI design is thus completed, and the mask layout data 13 is input to the actual LSI production line.

上記のLSIの設計方法において、C言語をベースに設計された機能記述10が、RTL記述11と等価であるかを検証する必要がある。換言すれば、ステップS11の動作合成が正しく行われているか否かを検証する必要がある。これが等価性検証である。以下、本実施形態に係る等価性検証方法について図2を用いて説明する。図2は本実施形態に係る等価性検証方法のフローチャートである。   In the above LSI design method, it is necessary to verify whether the function description 10 designed based on the C language is equivalent to the RTL description 11. In other words, it is necessary to verify whether or not the behavioral synthesis in step S11 is performed correctly. This is equivalence verification. Hereinafter, the equivalence checking method according to the present embodiment will be described with reference to FIG. FIG. 2 is a flowchart of the equivalence checking method according to this embodiment.

まず、上記ステップS11で機能記述10を動作合成すると、RTL記述11のうち、最初の段階(最も抽象度が高い)であるスケジュール決定済みデータ14が得られる。スケジュール決定済みデータ14は、機能記述10に含まれる各演算がどのクロックに同期して行われるかが完全に決められた回路記述である。これにより、機能記述10に時間の概念が与えられる。   First, when the function description 10 is behaviorally synthesized in step S11, the schedule-determined data 14 that is the first stage (highest level of abstraction) of the RTL description 11 is obtained. The schedule-determined data 14 is a circuit description in which it is completely determined in which clock each operation included in the function description 10 is performed. This gives the function description 10 the concept of time.

次にスケジュール決定済みデータ14に対して機能合成が行われる(ステップS14)。機能合成においては、まずLSIにおいて使用すべきメモリの構成やレジスタ数等が決定される。次に、実現すべき機能としての演算(例えば加算や減算など)に対して、具体的に使用する演算器が割り付けられる。更に、複数の演算器の間の結線方法として、バスを使うかマルチプレクサを使うかが決定される。このようにしてRTLの抽象度が低下していき、最後に演算器、バス、及びマルチプレクサなどから構成されるデータパス部のデータ15と、それらを制御する信号を生成する制御部のデータ16が得られる。このデータパス部データ15及び制御部データ16が、RTL記述11のうちで最も抽象度の低い、すなわちLSIの構造と演算の実行順序が全て規定され、LSIが最も具体的に記述された設計データである。   Next, function synthesis is performed on the schedule determined data 14 (step S14). In function synthesis, first, the configuration of the memory to be used in the LSI, the number of registers, and the like are determined. Next, an arithmetic unit to be specifically used is assigned to an operation (for example, addition or subtraction) as a function to be realized. Furthermore, it is determined whether to use a bus or a multiplexer as a connection method between a plurality of arithmetic units. In this way, the abstraction level of the RTL decreases, and finally, data 15 of the data path unit composed of an arithmetic unit, a bus, a multiplexer, and the like, and data 16 of the control unit that generates a signal for controlling them are provided. can get. The data path part data 15 and the control part data 16 have the lowest abstraction in the RTL description 11, that is, design data in which the LSI structure and the execution order of operations are all specified and the LSI is most specifically described. It is.

また、ステップS10において用いた仕様を満たすように、ハードウェア記述言語でLSIの設計が行われる(ステップS15)。これにより、スケジュール決定済みデータ20が得られる。これによって得られるスケジュール決定済みデータ20は、機能記述10をベースにして得られるスケジュール決定済みデータ14と同一の抽象度を有し、時間の概念を持った設計データである。引き続き、ステップS14と同様に機能合成を行うことにより(ステップS16)、スケジュール決定済みデータ20に関するデータパス部データ21及び制御部データ22が得られる。   In addition, the LSI is designed with a hardware description language so as to satisfy the specifications used in step S10 (step S15). Thereby, the schedule determined data 20 is obtained. The schedule-determined data 20 obtained in this way is design data having the same abstraction level as the schedule-determined data 14 obtained based on the function description 10 and having the concept of time. Subsequently, by performing functional synthesis in the same manner as in step S14 (step S16), the data path part data 21 and the control part data 22 relating to the schedule determined data 20 are obtained.

なおステップS11における動作合成においては、ステップS15の記述から得られるデータパス部データ21を利用するという制限付きで合成できるか否かをまず試行する。これが不可能な場合には、通常の動作合成を実施する。   In the behavioral synthesis in step S11, it is first tried whether or not the synthesis can be performed with a restriction that the data path portion data 21 obtained from the description in step S15 is used. If this is not possible, normal behavioral synthesis is performed.

次に、両者の等価性検証を行う(ステップS17)。等価性検証方法について図3を用いて説明する。図3は等価性検証方法のフローチャートである。等価性検証は、両者のデータパス部データ15、21及び制御部データ16、22を用いて行われる。
まず等価性検証にあたって、まずデータパス部データ15とデータパス部データ21とが比較される(ステップS18)。両者の対応が取れれば、両者は等価であるとみなされる。もしステップS11において、ステップS15の記述から得られるデータパス部データ21を利用できた場合、当然ながらデータパス部データ15、21は全く同一となり、両者は全て対応が取れることになる。また比較の際、両者が対応するか否かについては、必要に応じて対応関係ライブラリ17が用いられる。対応関係ライブラリ17は、異なるデータパスでありながら実現すべき動作が等しいものの対応関係に関する情報のことである。データパス部データ21において、全てのデータパスについて両者の対応が取れなかった場合(ステップS19、NO)、その取れなかった部分について、形式的検証を行う(ステップS20)。形式的検証は、必要に応じて検証方法ライブラリ18を用いて行われる。形式的検証には、交換法則などを利用した等価性検証方法が多く知られている。これらを登録したものが検証方法ライブラリ19である。なお、検証方法ライブラリ19を利用する場合には、データパス部データ15、21だけでなく、制御部データ16、22も必要に応じて参照する。なぜなら、検証方法ライブラリ19に登録されているものの中には、制御部データを参照するような指示を含むものもあり得るからである。
Next, equivalence verification of both is performed (step S17). The equivalence checking method will be described with reference to FIG. FIG. 3 is a flowchart of the equivalence checking method. Equivalence verification is performed using both data path data 15 and 21 and control data 16 and 22.
First, in the equivalence verification, first, the data path part data 15 and the data path part data 21 are compared (step S18). If the correspondence between the two is obtained, the two are regarded as equivalent. If the data path portion data 21 obtained from the description in step S15 can be used in step S11, the data path portion data 15 and 21 are naturally the same, and both of them can correspond. Also, in the comparison, the correspondence library 17 is used as necessary to determine whether or not both correspond. The correspondence library 17 is information regarding the correspondence between the different data paths that have the same operation to be realized. In the data path data 21, when all the data paths cannot be matched (step S 19, NO), a formal verification is performed for the part that could not be taken (step S 20). Formal verification is performed using the verification method library 18 as necessary. For formal verification, many equivalence verification methods using exchange rules are known. What has been registered is the verification method library 19. When the verification method library 19 is used, not only the data path data 15 and 21 but also the control data 16 and 22 are referred to as necessary. This is because some of those registered in the verification method library 19 may include an instruction for referring to the control unit data.

形式的検証を行った結果、両者は等しくない部分を有する場合(ステップS21、NO)、スケジュール決定済みデータ14と20、すなわち機能記述10とRTL記述20とは等価ではないと判断される(ステップS22)。   As a result of the formal verification, if both have unequal portions (step S21, NO), it is determined that the scheduled data 14 and 20, that is, the function description 10 and the RTL description 20 are not equivalent (step). S22).

ステップS21において両者が等しい場合(ステップS21、YES)、及びステップS19において全てのデータパスで対応が取れた場合(ステップS19、YES)、次に制御部データ16について形式的検証が行われる(ステップS23)。この際も、必要に応じて検証方法ライブラリ19が用いられる。そして、形式的検証の結果、制御部データ16、22が等しければ(ステップS24、YES)、機能記述10とRTL記述20とは等価であると判断される(ステップS25)。等しくない場合には(ステップS24、NO)、等価でないと判断される(ステップS22)。   If both are equal in step S21 (step S21, YES), and if all the data paths are matched in step S19 (step S19, YES), then formal verification is performed on the control unit data 16 (step S19). S23). Also in this case, the verification method library 19 is used as necessary. If the control unit data 16 and 22 are equal as a result of formal verification (step S24, YES), it is determined that the function description 10 and the RTL description 20 are equivalent (step S25). If they are not equal (step S24, NO), it is determined that they are not equivalent (step S22).

以上によって等価性の検証が行われる。本実施形態に係る等価性検証方法について、以下具体例を挙げて説明する。図4は、機能記述10とそれを合成して得られるデータパス部データ15及び制御部データ16、並びにハードウェア記述言語を用いて記述されたスケジュール決定済みデータ20とそれを合成して得られるデータパス部データ21及び制御部データ22の模式図である。   The equivalence is verified as described above. The equivalence checking method according to this embodiment will be described below with a specific example. FIG. 4 is obtained by synthesizing the function description 10 and the data path unit data 15 and the control unit data 16 obtained by synthesizing the function description 10 and the scheduled data 20 described using the hardware description language. 4 is a schematic diagram of data path unit data 21 and control unit data 22. FIG.

機能記述10及びスケジュール決定済みデータ20について簡単に説明する。機能記述10は次のような設計データである。すなわち、2〜4行目において、入力In、出力A、B、及び変数X、Yを規定する。そして5、6行目において、変数X、Yは入力Inを取り込む。7、8行目において、出力A、Bにはそれぞれ0、Xが代入される。そして、9〜12行目において、出力Bが変数Y以上の値である期間、出力BからYを減算し、更に出力Aに1を加算する計算を繰り返す。すなわち、BをYで割る除算を行う設計データである。   The function description 10 and the schedule determined data 20 will be briefly described. The function description 10 is the following design data. That is, in the second to fourth lines, input In, outputs A and B, and variables X and Y are defined. In the fifth and sixth lines, variables X and Y take in In. In the seventh and eighth lines, 0 and X are assigned to outputs A and B, respectively. In the ninth to twelfth lines, the calculation for subtracting Y from the output B and adding 1 to the output A is repeated for a period in which the output B is a value equal to or greater than the variable Y. That is, design data for performing division by dividing B by Y.

スケジュール決定済みデータ20は、4行目でクロックCLを規定し、更に機能記述10における3行目と4行目の間、4行目と5行目の間、5行目と6行目の間、6行目と7行目の間、8行目と9行目の間、及び11行目と12行目の間にクロックCLを待つ命令(Waitfor(CL)文)を更に備えるものである。Waitfor(CL)文は、新たにクロックCLが入力されない限りは、次の行の命令を実行させない機能を有する。それ以外は、スケジュール決定済みデータ20は機能記述10と同じである。すなわち、スケジュール決定済みデータ20は、機能記述10において各行のクロックに対する実行タイミングが規定されたものである。   The schedule-determined data 20 defines the clock CL at the fourth line, and further between the third and fourth lines in the function description 10, between the fourth and fifth lines, the fifth and sixth lines. It is further provided with an instruction (Waitfor (CL) statement) that waits for the clock CL between the 6th and 7th lines, the 8th and 9th lines, and the 11th and 12th lines. is there. The Waitfor (CL) statement has a function that does not execute an instruction on the next line unless a new clock CL is input. Other than that, the scheduled data 20 is the same as the function description 10. In other words, the schedule-determined data 20 is defined by the function description 10 in which the execution timing for the clock of each row is specified.

これらを合成ツールに入力することで、図4に示すデータパス部データ15、21、制御部データ16、22が得られる。図示するように、データパス部データ15は、マルチプレクサmux1〜mux4、加算器30、減算器31、及び比較器32を備えている。マルチプレクサmux1、mux2はそれぞれ、制御信号cd1、cd2に応じて入力信号in1を選択し、選択した入力信号in1をそれぞれ変数x、yとする。マルチプレクサmux3は、制御信号cd3に応じて “0”を選択し、制御信号cd4に応じて加算器30の加算結果を選択し、これを出力aとする。マルチプレクサmux4は、制御信号cd5に応じて変数xを選択し、制御信号cd6に応じて減算器31の出力を選択し、これを出力bとする。加算器30は出力aに“1”を加算する。減算器31は出力bから変数yを減算する。比較器32は出力bと変数yとを比較し、比較結果を比較信号dc1として出力する。そして制御部16は、比較信号dc1に応じて制御信号cd1〜cd6を制御する。スケジュール決定済みデータ20から得られるデータパス部データ21、及び制御部データ22も同様である。   By inputting these into the synthesis tool, data path part data 15 and 21 and control part data 16 and 22 shown in FIG. 4 are obtained. As shown in the figure, the data path section data 15 includes multiplexers mux 1 to mux 4, an adder 30, a subtractor 31, and a comparator 32. The multiplexers mux1 and mux2 select the input signal in1 according to the control signals cd1 and cd2, respectively, and set the selected input signal in1 as variables x and y, respectively. The multiplexer mux3 selects “0” according to the control signal cd3, selects the addition result of the adder 30 according to the control signal cd4, and uses this as the output a. The multiplexer mux4 selects the variable x according to the control signal cd5, selects the output of the subtractor 31 according to the control signal cd6, and sets this as the output b. The adder 30 adds “1” to the output a. The subtractor 31 subtracts the variable y from the output b. The comparator 32 compares the output b with the variable y and outputs the comparison result as a comparison signal dc1. Then, the control unit 16 controls the control signals cd1 to cd6 according to the comparison signal dc1. The same applies to the data path portion data 21 and the control portion data 22 obtained from the schedule determined data 20.

以上のようにデータパス部データ15、21及び制御部データ16、22が得られた後、等価性の検証を行う(ステップS17)。まず、データパス部データ間の対応部分を検出する(ステップS18)。すると、図4に示すように機能記述10とスケジュール決定済みデータ20とは、クロックに関する記載以外は全て同じである。従って、対応関係ライブラリ17を参照するまでもなく、両者に関するデータパス部データ15、21は同一となり(ステップS19)、データパスについての形式的検証は不要となる。よって、次に制御部データ16、22について形式的検証を行う(ステップS23)。前述の通り、機能記述10とスケジュール決定済みデータ20とは、クロックに関する記載以外は全て同じであるから、制御部データ16、22についても、クロックについてのみ検証を行えば良い。その結果、制御部データ16、22が等しければ(ステップS24)、機能記述10と、ハードウェア記述言語によって記述されたRTL記述20とは等価であると判断される(ステップS25)。   After the data path part data 15 and 21 and the control part data 16 and 22 are obtained as described above, equivalence is verified (step S17). First, a corresponding portion between data path portion data is detected (step S18). Then, as shown in FIG. 4, the function description 10 and the schedule determined data 20 are all the same except for the description about the clock. Accordingly, without referring to the correspondence library 17, the data path portion data 15 and 21 relating to both are the same (step S19), and formal verification of the data path becomes unnecessary. Therefore, next, formal verification is performed on the control unit data 16 and 22 (step S23). As described above, the function description 10 and the schedule-determined data 20 are all the same except for the description related to the clock, and therefore the control unit data 16 and 22 need only be verified for the clock. As a result, if the control unit data 16 and 22 are equal (step S24), it is determined that the function description 10 is equivalent to the RTL description 20 described in the hardware description language (step S25).

別の例を図5に示す。図5は、機能記述10とそれを合成して得られるデータパス部データ15及び制御部データ16、並びにハードウェア記述言語を用いて記述されたスケジュール決定済みデータ20とそれを合成して得られるデータパス部データ21及び制御部データ22の模式図である。   Another example is shown in FIG. FIG. 5 is obtained by synthesizing the function description 10 and the data path part data 15 and the control part data 16 obtained by synthesizing the function description 10 and the scheduled data 20 described using the hardware description language. 4 is a schematic diagram of data path unit data 21 and control unit data 22. FIG.

機能記述10は図4を用いて説明した通りである。ハードウェア記述言語によって記述されたスケジュール決定済みデータ20は図4とは異なり、図4における14〜16行目が(A,B)=Divider(X,Y)文に置き換えられている。   The function description 10 is as described with reference to FIG. The schedule-determined data 20 described in the hardware description language is different from that in FIG. 4, and the 14th to 16th lines in FIG. 4 are replaced with (A, B) = Divider (X, Y) statements.

これらを合成ツールに入力することで、図5に示すデータパス部データ15、21、制御部データ16、22が得られる。図示するように、機能記述10を合成して得られるデータパス部データ15及び制御部データ16は図4と同様である。これに対してハードウェア記述言語によって記述されたRTL記述20を合成して得られるデータパス部データ21は次のような構成を有している。すなわちデータパスはマルチプレクサmux11〜mux14及び除算器33を備えている。マルチプレクサmux11、mux12はそれぞれ、制御信号cd11、cd12に応じて入力信号in1を選択し、選択した入力信号in1をそれぞれ変数x、yとする。マルチプレクサmux13、mux14はそれぞれ、制御信号cd13、cd14に応じて除算器33における除算結果及びその余りを出力a、bとする。そして制御部16は制御信号cd11〜cd14を制御する。   By inputting these into the synthesis tool, the data path part data 15 and 21 and the control part data 16 and 22 shown in FIG. 5 are obtained. As shown in the figure, the data path part data 15 and the control part data 16 obtained by synthesizing the function description 10 are the same as those in FIG. On the other hand, the data path portion data 21 obtained by synthesizing the RTL description 20 described in the hardware description language has the following configuration. That is, the data path includes multiplexers mux 11 to mux 14 and a divider 33. The multiplexers mux11 and mux12 select the input signal in1 according to the control signals cd11 and cd12, respectively, and set the selected input signal in1 as variables x and y, respectively. The multiplexers mux13 and mux14 output the division results in the divider 33 and the remainders as outputs a and b in accordance with the control signals cd13 and cd14, respectively. Then, the control unit 16 controls the control signals cd11 to cd14.

上記のデータパス部データ15、21及び制御部データ16、22が得られた後、等価性の検証を行う(ステップS17)。まず、データパス部データ間の対応部分を検出する(ステップS18)。すると、図4の場合と異なり、データパス部データ15において除算を行うブロック34が除算器33に置き換えられている。すなわち両者の構成は異なる。しかし、両者の構成は違っていても機能として同一であることが既知であれば、形式的検証を行う必要はない。そこで、ブロック34と除算器33とが等価であるかについて、対応関係ライブラリ17を参照する。図6は対応関係ライブラリ17の一例を示す模式図である。図示するように、対応関係ライブラリ17には、機能記述10における7〜12行目の記述がデータパス部データにおける除算器と等しいことが登録されていたと仮定する。すると、図5においてブロック34と除算器33が等価であることが分かるので、形式的検証を行う必要はない。以上の結果、データパス部データ15、21は等価であることが分かる(ステップS19)。   After the data path part data 15 and 21 and the control part data 16 and 22 are obtained, the equivalence is verified (step S17). First, a corresponding portion between data path portion data is detected (step S18). Then, unlike the case of FIG. 4, the block 34 that performs division in the data path portion data 15 is replaced with a divider 33. That is, the configuration of the two is different. However, if it is known that the two functions are the same but the functions are the same, formal verification is not necessary. Therefore, the correspondence library 17 is referred to as to whether the block 34 and the divider 33 are equivalent. FIG. 6 is a schematic diagram showing an example of the correspondence library 17. As shown in the figure, it is assumed that it is registered in the correspondence library 17 that the descriptions on the 7th to 12th lines in the function description 10 are equal to the divider in the data path portion data. Then, since it is understood that the block 34 and the divider 33 are equivalent in FIG. 5, there is no need to perform formal verification. As a result, it can be seen that the data path data 15 and 21 are equivalent (step S19).

よって、次に制御部データ16、22について形式的検証を行う(ステップS23)。図7は制御部データ16の模式図である。図示するように制御部16は、6つの状態sr1〜sr6を有する。図7において、各状態間に記載されているスラッシュ(/)前後の信号名は、それらの信号に基づいて状態遷移することを示しており、スラッシュ前が比較信号dc1、スラッシュ後が制御信号cd1〜cd6を示す。なお、“−”は比較信号dc1について不問であることを示し、“done”は計算終了を示す。   Therefore, next, formal verification is performed on the control unit data 16 and 22 (step S23). FIG. 7 is a schematic diagram of the control unit data 16. As shown in the figure, the control unit 16 has six states sr1 to sr6. In FIG. 7, the signal names before and after the slash (/) described between the states indicate that the state transitions based on those signals, the comparison signal dc1 before the slash, and the control signal cd1 after the slash. ~ Cd6. “-” Indicates that there is no question regarding the comparison signal dc1, and “done” indicates the end of the calculation.

まず初期状態sr1において、制御信号cd1が“1”になると、マルチプレクサmux1は入力in1を選択してこれをxとし、状態はsr2へと遷移する。状態sr2において制御信号cd2が“1”になると、マルチプレクサmux2が入力in1を選択してこれをyとし、状態はsr3へと遷移する。状態sr3においてcd3、cd5が“1”になると、マルチプレクサmux3、mux4はそれぞれ“0”及び変数xをそれぞれ出力a、bとし、状態sr4へと遷移する。状態sr4において、cd4、cd6が“1”となり、比較信号dc1が“1”となると、状態sr6に遷移する。比較信号dc1が“1”とは、出力bが変数y未満であることを示す。状態sr6では、dc1が“1”であるかぎり、除算を繰り返す。そして比較信号cd1が“0”となった場合、すなわち計算が終了した場合(done)、最終状態sr5に遷移する。状態sr4においても、比較信号dc1が“0”となった場合、計算終了となり、状態sr6に移ることなく状態sr5へ遷移する。   First, in the initial state sr1, when the control signal cd1 becomes “1”, the multiplexer mux1 selects the input in1, sets it to x, and the state transitions to sr2. When the control signal cd2 becomes “1” in the state sr2, the multiplexer mux2 selects the input in1, sets it to y, and the state transits to sr3. When cd3 and cd5 become “1” in the state sr3, the multiplexers mux3 and mux4 set “0” and the variable x to the outputs a and b, respectively, and transition to the state sr4. In the state sr4, when cd4 and cd6 become “1” and the comparison signal dc1 becomes “1”, the state transitions to the state sr6. The comparison signal dc1 being “1” indicates that the output b is less than the variable y. In the state sr6, division is repeated as long as dc1 is “1”. When the comparison signal cd1 becomes “0”, that is, when the calculation is completed (done), the state transits to the final state sr5. Also in the state sr4, when the comparison signal dc1 becomes “0”, the calculation is completed, and the state sr5 is entered without moving to the state sr6.

図8は制御部データ22の模式図である。図示するように制御部22は、4つの状態sr11〜sr14を有する。まず初期状態sr11において、制御信号cd11が“1”になると、マルチプレクサmux11は入力in1を選択してこれをxとし、状態はsr12へと遷移する。状態sr12において制御信号cd12が“1”になると、マルチプレクサmux12が入力in1を選択してこれをyとし、状態はsr13へと遷移する。状態sr13においてcd13、cd14が“1”になると、状態sr14へと遷移し、除算器33が除算を行って、計算は終了する(done)。   FIG. 8 is a schematic diagram of the control unit data 22. As illustrated, the control unit 22 has four states sr11 to sr14. First, in the initial state sr11, when the control signal cd11 becomes “1”, the multiplexer mux11 selects the input in1, sets it to x, and the state transitions to sr12. When the control signal cd12 becomes “1” in the state sr12, the multiplexer mux12 selects the input in1 and sets it to y, and the state transits to sr13. When cd13 and cd14 become “1” in the state sr13, the state transitions to the state sr14, the divider 33 performs division, and the calculation ends (done).

上記図7及び図8に示す制御部16を比較すると、制御部16における状態sr1〜sr3までの状態遷移条件と、制御部22における状態sr11〜sr13までの状態遷移条件とは全く同一である。つまり、両者の制御方法とそれによるデータの流れは等しい。従って制御部16における状態sr1〜sr3までの制御と、制御部22における状態sr11〜sr13までの制御とは等価であることが分かる。よって、制御部16における状態sr4〜sr6と、制御部22におけるsr4の制御とが等価であるか否かについて、形式的検証を行う(ステップS23)。形式的検証には、等価性検証方法が登録された検証方法ライブラリ19を用いて形式的検証は行われる。そして形式的検証の結果、両者が等しい制御を行っていることが導かれると、図5における機能記述10とRTL記述20とが等価であると判断される。   When comparing the control unit 16 shown in FIGS. 7 and 8, the state transition condition from the state sr1 to sr3 in the control unit 16 and the state transition condition from the state sr11 to sr13 in the control unit 22 are exactly the same. That is, both control methods and the data flow by them are the same. Therefore, it can be understood that the control from the state sr1 to sr3 in the control unit 16 and the control from the control unit 22 to the states sr11 to sr13 are equivalent. Therefore, a formal verification is performed as to whether or not the states sr4 to sr6 in the control unit 16 and the control of sr4 in the control unit 22 are equivalent (step S23). Formal verification is performed using a verification method library 19 in which equivalence verification methods are registered. As a result of formal verification, if it is derived that both are performing the same control, it is determined that the function description 10 and the RTL description 20 in FIG. 5 are equivalent.

なお、上記等価性の検証方法は、説明した全ての処理を計算機が主体となって行うことが出来る。図9は、上記等価性検証を行う計算機の内部構成を示すブロック図である。図示するように計算機40は、CPU41、メインメモリ42、メモリ43、ディスプレイ44、及び入力装置(キーボード)45を備えている。メモリ43は設計データ46、制御部比較プログラム47、パス比較プログラム48、回路合成プログラム49、及び各種ライブラリ50等を保持する。設計データ46には、上記した機能記述10やRTL記述(スケジュール決定済みデータ、データパス部データ、及び制御部データを含む)12が含まれる。また各種ライブラリ50とは、上記対応関係ライブラリ17や検証方法ライブラリ18、19のことである。メインメモリ42は、メモリ43内の各プログラム、データなどを一時的に保持する。CPU41は、回路合成プログラム49によって合成ツールを実行し、上記説明した動作合成(ステップS11)、機能合成(ステップS14、S16)、論理合成(ステップS12)を行う回路合成手段として機能する。更にCPU41は等価性の検証の際、パス比較プログラム48、各種ライブラリ50、及び設計データ46をメインメモリ42に読み出し、上記ステップS18〜S21の処理を行うデータパス比較検証手段として機能する。更にパス比較プログラム48の代わりに制御部比較プログラム47を読み出すことにより、上記ステップS23、S24を行う制御部比較手段としても機能する。ディスプレイ44は、上記CPU41による処理結果を表示する。入力装置45は、ユーザの命令入力を受け取る。   In the equivalence checking method, all the processes described can be performed mainly by a computer. FIG. 9 is a block diagram showing an internal configuration of a computer that performs the equivalence verification. As illustrated, the computer 40 includes a CPU 41, a main memory 42, a memory 43, a display 44, and an input device (keyboard) 45. The memory 43 holds design data 46, a control unit comparison program 47, a path comparison program 48, a circuit synthesis program 49, various libraries 50, and the like. The design data 46 includes the function description 10 and the RTL description (including schedule determined data, data path part data, and control part data) 12 described above. The various libraries 50 are the correspondence library 17 and the verification method libraries 18 and 19. The main memory 42 temporarily holds each program, data, etc. in the memory 43. The CPU 41 executes a synthesis tool by the circuit synthesis program 49 and functions as circuit synthesis means for performing the above-described behavioral synthesis (step S11), function synthesis (steps S14 and S16), and logic synthesis (step S12). Further, when verifying equivalence, the CPU 41 reads the path comparison program 48, various libraries 50, and design data 46 into the main memory 42, and functions as a data path comparison verification unit that performs the processes of steps S18 to S21. Furthermore, by reading out the control unit comparison program 47 instead of the path comparison program 48, it also functions as a control unit comparison means for performing the above steps S23 and S24. The display 44 displays the processing result by the CPU 41. The input device 45 receives a user command input.

以上のように、この発明の第1の実施形態に係る回路記述言語の等価性検証方法であると、等価性の検証を容易にすることが出来る。本効果について以下詳細に説明する。
以下、説明の簡略化のために、スケジュール決定済みデータを単に「RTL記述」と呼ぶこととし、データパス部データ及び制御部データを一括して「データ・制御情報」と呼ぶことにする。従来、ハードウェア記述言語によりRTL記述を作成し、それを合成ツールで機能・論理合成を行う場合でも、RTL記述とデータ・制御情報との間における等価性検証が必要である。従来の両者の間の等価性検証は合成ツールが自ら行っており、その等価性検証の信頼性は比較的高い。従って、合成ツールによって得られるデータ・制御情報は、RTL記述とほぼ等価と考えて良い。
As described above, the equivalence verification method of the circuit description language according to the first embodiment of the present invention can facilitate the verification of equivalence. This effect will be described in detail below.
Hereinafter, for simplification of description, the schedule-determined data is simply referred to as “RTL description”, and the data path portion data and the control portion data are collectively referred to as “data / control information”. Conventionally, even when an RTL description is created by a hardware description language and the function / logic synthesis is performed using a synthesis tool, it is necessary to verify equivalence between the RTL description and the data / control information. Conventionally, the synthesizing tool performs equivalence verification between the two, and the reliability of the equivalence verification is relatively high. Therefore, the data / control information obtained by the synthesis tool can be considered to be almost equivalent to the RTL description.

それに対して近年、C言語をベースに用いた設計手法が用いられ始めている。この場合、C言語をベースに用いた記述言語で記述された機能記述が、合成ツールによってデータ・制御情報に変換される。従って、機能記述とデータ・制御情報との間の等価性検証が重要となる。この点、従来の方法であるとRTL記述と機能記述との間でシミュレーションを行い、その結果によって等価性を検証する方法が知られている。しかし、シミュレーションを用いて等価性を判断する場合、100%の等価性を保証するためには、想定される全ての信号の組み合わせについて行わなければならない。このためには、膨大な計算量が必要となり、現実的ではない。   On the other hand, in recent years, a design method based on the C language has begun to be used. In this case, the function description described in the description language based on the C language is converted into data / control information by the synthesis tool. Therefore, it is important to verify equivalence between the function description and the data / control information. In this regard, a conventional method is known in which a simulation is performed between an RTL description and a function description, and equivalence is verified based on the result. However, when determining equivalence using simulation, in order to guarantee 100% equivalence, it is necessary to perform all possible combinations of signals. This requires an enormous amount of calculation and is not realistic.

しかし本実施形態であると、まずシミュレーションを用いることなく、形式的検証を用いて等価性を検証する。形式的検証を用いることにより、シミュレーションを用いた場合に比べて容易に100%の等価性を保証することが出来る。そのため、本実施形態では次のような方法を用いている。まず機能記述を作成し、合成ツールによりデータ・制御情報を得る(これを第1データ・制御情報と呼ぶ)。同時に、機能記述と同じ機能を実現するRTL記述を、従来のハードウェア記述言語により作成し、合成ツールによりデータ・制御情報を得る(これを第2データ・制御情報と呼ぶ)。上記したように、第2データ・制御情報はRTL記述と等価であることがほぼ保証される。従って、この第2データ・制御情報と第1データ・制御情報との等価性を検証することによって、機能記述が所望の機能を満たしているか、つまり機能記述と第1データ・制御情報とが等価であるかを検証する。両者が等価であることが分かると、上記機能記述は当該合成ツールによって正しいデータ・制御情報が得られることが分かる。   However, in this embodiment, equivalence is first verified using formal verification without using simulation. By using formal verification, 100% equivalence can be easily guaranteed as compared with the case of using simulation. Therefore, in the present embodiment, the following method is used. First, a function description is created and data / control information is obtained by a synthesis tool (this is called first data / control information). At the same time, an RTL description that realizes the same function as the function description is created using a conventional hardware description language, and data / control information is obtained by a synthesis tool (this is referred to as second data / control information). As described above, it is almost guaranteed that the second data / control information is equivalent to the RTL description. Therefore, by verifying the equivalence between the second data / control information and the first data / control information, whether the function description satisfies the desired function, that is, the function description and the first data / control information are equivalent. It verifies whether it is. If it turns out that both are equivalent, it turns out that the said function description can obtain correct data and control information by the said synthesis tool.

第1データ・制御情報と第2データ・制御情報との等価性を検証する際、上記実施形態で説明したように、互いに等価な箇所を部分毎に見つけていく。そして、従来の蓄積データを用いても等価であるか否かが分からない箇所についてのみ形式的検証を適用する。つまり、等価性の検証をボトムアップに行う。これにより、形式的検証を行うべき箇所を最小限にすることが出来、等価性検証のための計算量を削減し、等価性検証を容易に行うことが出来る。   When verifying the equivalence between the first data / control information and the second data / control information, as described in the above-described embodiment, mutually equivalent parts are found for each part. Formal verification is applied only to portions where it is not known whether the stored data is equivalent even if conventional stored data is used. In other words, equivalence is verified from the bottom up. As a result, the number of places where formal verification should be performed can be minimized, the amount of calculation for equivalence verification can be reduced, and equivalence verification can be easily performed.

更に本実施形態であると、データ・制御情報をデータパス部と制御部とに分けて考える。すなわち、回路構成と、その回路におけるデータの流れとに分けて、それぞれについて等価性を検証する。回路構成については、上記のようにボトムアップに等価な箇所を検出(演算器の対応を取る)し、必要な箇所についてのみ形式的検証を行う。従って、回路構成について両者が完全に一致した場合には、データの流れについてのみ形式的検証を行えば良い。データの流れに着目するということは、すなわち回路構成に対する制御方法に着目することと同意であり、制御信号がどのようなタイミングで“1”または“0”になるかを検証すれば良い。そして回路構成に対して形式的検証を適用しようとした場合には、例えば16ビットや32ビットなどデータ幅が大きいため計算量が多くなるのに対して、制御信号は通常1ビットであるから計算量が非常に少ない。つまり、回路構成に対する形式的検証を少なくし、または完全に省くことによって、等価性検証のための計算量を圧倒的に少なくすることが出来る。
以上のような方法を用いることで、抽象度が高いために少ない記述量で済むC言語ベースの回路記述言語を用いたLSI設計の信頼性が向上される。勿論、データパス部と制御部とにわけることなくボトムアップに検証を行うことも出来る。
Further, in the present embodiment, data / control information is divided into a data path part and a control part. That is, the equivalence is verified for each of the circuit configuration and the data flow in the circuit. As for the circuit configuration, a portion equivalent to bottom-up is detected as described above (corresponding to a computing unit), and formal verification is performed only for necessary portions. Therefore, if both of the circuit configurations completely match, formal verification may be performed only for the data flow. Focusing on the data flow is equivalent to focusing on the control method for the circuit configuration, and it is sufficient to verify at what timing the control signal becomes “1” or “0”. When formal verification is applied to the circuit configuration, the calculation amount increases because the data width is large, for example, 16 bits or 32 bits, whereas the control signal is usually 1 bit. The amount is very small. In other words, the amount of calculation for equivalence verification can be greatly reduced by reducing formal verification for the circuit configuration or omitting it completely.
By using the method as described above, the reliability of LSI design using a C language-based circuit description language that requires a small amount of description due to its high level of abstraction is improved. Of course, verification can be performed from the bottom up without being divided into the data path unit and the control unit.

次に、この発明の第2の実施形態に係る回路記述言語の等価性検証方法について説明する。本実施形態は、上記第1の実施形態においてデータの流れ(制御部)に着目して等価性を判断する際、等価性を判断すべきタイミングに関するものである。図10はクロックとデータA、データBのタイミングチャートである。LSIにおいてあるデータA、Bがあったとして、これらのデータA、Bが常時、意味のある値を持つとは限らない。例えばデータAは時刻t0から時刻t3までは意味のある値を有するが、その前後の値は特定の値に定まるものではない。またデータBについても、時刻t1から時刻t2までは意味のある値を有するが、その前後は定まらない。このような場合、データA、Bが定まらない時間帯までも等価であることが求められる必要はない。そこで、いずれのタイミングで等価性を判断するかを決定する必要がある。   Next, a circuit description language equivalence checking method according to a second embodiment of the present invention will be described. The present embodiment relates to the timing at which equivalence is to be determined when determining equivalence by focusing on the data flow (control unit) in the first embodiment. FIG. 10 is a timing chart of the clock, data A, and data B. Assuming that there is certain data A and B in the LSI, these data A and B do not always have meaningful values. For example, the data A has a meaningful value from time t0 to time t3, but the values before and after that are not determined to be specific values. Data B also has a meaningful value from time t1 to time t2, but before and after that is not determined. In such a case, it is not necessary to require that the data A and B be equivalent even to a time zone where the data A and B are not determined. Therefore, it is necessary to determine at which timing the equivalence is judged.

この点、RTL記述はクロックの概念を有しており、既に上記タイミングの規定を有している。しかし、機能記述にはクロックの概念が無いため、上記タイミングをクロックで定義することは不可能である。本実施形態はこのような事情の基、機能記述において上記タイミングを規定する方法に関するものである。   In this respect, the RTL description has the concept of a clock, and already has the above-mentioned timing definition. However, since there is no concept of clock in the function description, it is impossible to define the timing with the clock. The present embodiment relates to a method for defining the timing in the function description under such circumstances.

図11は、本実施形態に係る機能記述10の一例である。図示するように、第1の実施形態で説明した図4、図5の機能記述10において、13行目及び14行目の記述が追加されている。13行目で出力すべきデータが指定され、14行目でいずれのタイミングで出力すべきデータを出力するかが指定される。以下、13行目及び14行目の記述を読み出し命令と呼ぶことにする。図11に示す機能記述10が与えられると、合成ツールは動作合成(ステップS11)及び機能合成(ステップS14)において、読み出し命令を検索する。そして、読み出し命令を発見した場合、読み出し命令中において指定されたデータが、指定されたタイミングにおいて出力されるように、データパス部データ15及び制御部データ16を生成する。前述のように機能記述は時間の概念が無いので、機能記述内における行数や、または信号に対する応答として出力タイミングが指定される。すなわち、次のような指定方法が考えられる。例えば図11の場合には、データ(A、B)の出力タイミングを、「12行目の処理が終了した後」と指定する。または「信号Aの値が変化した時」と指定する。   FIG. 11 is an example of the function description 10 according to the present embodiment. As shown in the figure, in the function description 10 of FIGS. 4 and 5 described in the first embodiment, descriptions of the 13th and 14th lines are added. The data to be output is specified in the 13th line, and at which timing data to be output is specified in the 14th line. Hereinafter, the description on the 13th and 14th lines is referred to as a read command. When the function description 10 shown in FIG. 11 is given, the synthesis tool searches for a read command in behavioral synthesis (step S11) and function synthesis (step S14). When a read command is found, the data path unit data 15 and the control unit data 16 are generated so that the data specified in the read command is output at the specified timing. As described above, since the function description has no concept of time, the output timing is specified as the number of lines in the function description or as a response to the signal. In other words, the following designation method can be considered. For example, in the case of FIG. 11, the output timing of the data (A, B) is designated as “after the processing of the 12th row is completed”. Alternatively, “when the value of signal A changes” is designated.

上記のように、この発明の第2の実施形態に係る等価性検証方法であると、上記第1の実施形態に比べて更に等価性の検証を容易とすることが出来る。本効果について以下説明する。
前述のように、等価性は全ての時間(タイミング)において満たされなければならないものではなく、特定のタイミングにおいて満たされれば十分であることが通常である。そこで本実施形態では、機能記述において読み出し命令を用いることにより、等価性検証に必要なデータの出力タイミングを指定する。そして、読み出し命令で指定されたタイミングでのみ等価性を検証出来るようにデータパス部データ及び制御部データを生成することで、検証を簡略化出来る。
As described above, the equivalence verification method according to the second embodiment of the present invention can further facilitate the verification of equivalence as compared with the first embodiment. This effect will be described below.
As described above, equivalence does not have to be satisfied at all times (timing), but it is usually sufficient if it is satisfied at a specific timing. Therefore, in this embodiment, the output timing of data necessary for equivalence verification is specified by using a read command in the function description. The verification can be simplified by generating the data path part data and the control part data so that the equivalence can be verified only at the timing specified by the read command.

また、例えば機能記述においてX=A+B+Cという式が存在したとして、等価性検証のために(A+B)の値が必要だったと仮定する。このような内部変数は、外部には出力されなくても等価性の検証には非常に役立つ場合や、または必須である場合がある。しかし、合成ツールはXの値を一括して計算してしまい、(A+B)の値はデータパス部データ及び制御部データに反映されない可能性がある。この点、本実施形態であると読み出し命令によってデータパス部データ及び制御部データに反映されるべき値を指定する。すなわち上記の場合、(A+B)の値をデータパス部データ及び制御部データで観測出来るようになる。従って、等価性検証に必要な値を確実にデータパス部データ及び制御部データに反映させることが出来、等価性の検証を容易にすることが出来る。   Further, for example, assuming that an expression X = A + B + C exists in the function description, it is assumed that a value of (A + B) is necessary for equivalence verification. Such an internal variable may be very useful for verification of equivalence even if it is not output to the outside, or may be essential. However, the synthesis tool collectively calculates the value of X, and the value of (A + B) may not be reflected in the data path part data and the control part data. In this respect, in the present embodiment, a value to be reflected in the data path portion data and the control portion data is designated by a read command. That is, in the above case, the value of (A + B) can be observed by the data path part data and the control part data. Therefore, values necessary for equivalence verification can be reliably reflected in the data path portion data and the control portion data, and the equivalence verification can be facilitated.

なお、前述の通り機能記述は時間の概念を有しない。従って、例えば機能記述における行数を指定すること、またはいずれの命令に応答して得られる信号であるかを指定することによって、タイミングを指定することが出来る。また、読み出し命令は機能記述の外にあっても良い。すなわち、機能記述とは別のファイルに読み出し命令を保持させる。そして回路合成を行う際、CPU41が読み出し命令を保持したファイルをメインメモリ42に読み出し、このファイル内の読み出し命令と設計データ46とに基づいて回路合成を行っても良い。   As described above, the function description has no concept of time. Therefore, for example, the timing can be designated by designating the number of lines in the function description or designating which command is a signal obtained in response to the command. Further, the read command may be outside the function description. That is, the read command is held in a file different from the function description. When performing circuit synthesis, the CPU 41 may read a file holding a read command into the main memory 42 and perform circuit synthesis based on the read command in the file and the design data 46.

図12は、第2の実施形態の変形例に係る機能記述10の模式図である。図12に示す機能記述10は、図11に示す機能記述とは異なる読み出し命令を有する。すなわち、図4に示す機能記述10において、指定範囲の最初を示す第1読み出し命令(CareStart(A, B))が8行目と9行目との間に設けられ、指定範囲の最後を示す第2読み出し命令(CareEnd(A, B))が最終行に設けられている。第1、第2読み出し命令は、これらに挟まれた10〜13行目の文で得られる値A、Bが変化する度に、その値A、Bを観測することを意味する。すなわち、10〜13行目で示される除算が行われる度に、その除算結果A、Bが観測されるように、データパス部データ及び制御部データが生成されることになる。   FIG. 12 is a schematic diagram of the function description 10 according to a modification of the second embodiment. The function description 10 shown in FIG. 12 has a read command different from the function description shown in FIG. That is, in the function description 10 shown in FIG. 4, the first read command (CareStart (A, B)) indicating the beginning of the specified range is provided between the 8th and 9th lines, and indicates the end of the specified range. A second read instruction (CareEnd (A, B)) is provided in the last line. The first and second read commands mean that the values A and B are observed each time the values A and B obtained in the sentence between the 10th and 13th lines sandwiched between them change. That is, each time the division shown in the 10th to 13th lines is performed, the data path part data and the control part data are generated so that the division results A and B are observed.

以上のように、この発明の第1、第2の実施形態に係る回路記述言語の等価性検証法であると、形式的検証技術を用いて等価性を検証する。そして、RTL記述同士を比較する際、等価性について過去に得られた情報を元に、全体の構成の中から等価である箇所を個々に見つけていく。その結果、等価であることが証明されなかった部分についてのみ、形式的検証を行う。これにより、等価性検証に必要な計算量を削減出来る。また、RTL記述においてデータパス部データと制御部データの段階で等価性が検証される。従って、データパス部データに関して等価性が証明された場合、制御部データについてのみ形式的検証を行えば良く、計算量を削減出来る。これにより、検証を容易に出来るハードウェア設計記述の等価性検証方法を提供出来る。   As described above, in the circuit description language equivalence verification method according to the first and second embodiments of the present invention, equivalence is verified using a formal verification technique. Then, when comparing RTL descriptions, based on the information obtained in the past about equivalence, the equivalent parts are found individually from the entire configuration. As a result, formal verification is performed only for the parts that have not been proved to be equivalent. Thereby, the amount of calculation required for equivalence verification can be reduced. Also, equivalence is verified at the stage of data path part data and control part data in the RTL description. Therefore, when equivalence is proved with respect to the data path part data, it is sufficient to perform formal verification only for the control part data, and the amount of calculation can be reduced. Thus, it is possible to provide a hardware design description equivalence verification method that facilitates verification.

なお、上記実施形態ではC言語ベースで記述された機能記述と、ハードウェア記述言語で記述されたRTL記述との間の等価性検証を例に挙げて説明した。しかし、例えば機能記述同士、またはRTL記述同士の等価性検証を行う場合でも、上記検証方法を適用出来る。図13は機能記述同士で等価性検証を行う場合のフローチャートである。これは具体的には次のようなケースが考えられる。例えば、C言語ベースの回路記述言語を用いてある設計データ(第1設計データと呼ぶ)をプログラムしたとする。この場合、合成ツールに投入しても比較的良い回路が得られないが、両者の等価性は保証されているとする。そして、C言語ベースの回路記述言語を用いて、第1設計データと同一の機能を達成出来るように設計データ(第2設計データと呼ぶ)をプログラムしたとする。勿論、プログラムの記述内容は第1設計データと異なる。そして、第2設計データを合成ツールに投入して得られる回路は、第1設計データよりも優れていたとする。しかし第2設計データとRTL記述との間の等価性は検証されていない。このような場合、第1設計データと第2設計データとの等価性を検証し、等価である場合には第2設計データを以後用いることが出来る。   In the above embodiment, the equivalence verification between the function description written in the C language base and the RTL description written in the hardware description language has been described as an example. However, for example, the above verification method can be applied even when equivalence verification is performed between function descriptions or between RTL descriptions. FIG. 13 is a flowchart when equivalence checking is performed between function descriptions. Specifically, the following cases can be considered. For example, it is assumed that certain design data (referred to as first design data) is programmed using a C language-based circuit description language. In this case, it is assumed that a relatively good circuit cannot be obtained even if it is input to the synthesis tool, but the equivalence between the two is guaranteed. Then, it is assumed that design data (referred to as second design data) is programmed using a C language-based circuit description language so that the same function as the first design data can be achieved. Of course, the program description is different from the first design data. It is assumed that the circuit obtained by inputting the second design data into the synthesis tool is superior to the first design data. However, the equivalence between the second design data and the RTL description has not been verified. In such a case, the equivalence between the first design data and the second design data is verified. If they are equivalent, the second design data can be used thereafter.

すなわち図13に示すように、C言語ベースの回路記述言語を用いてそれぞれ機能記述10、60を作成する(ステップS10、S30)。そして、それぞれについて動作合成及び機能合成を行って(ステップS14、S32)、データパス部データ15、62及び制御部データ16、63を得る。その後、データパス部データ15と62との間の等価性、及び制御部データ16と63との間の等価性を、上記第1、第2の実施形態で説明した方法により検証する。   That is, as shown in FIG. 13, function descriptions 10 and 60 are created using a C language-based circuit description language (steps S10 and S30), respectively. Then, behavioral synthesis and functional synthesis are performed for each of them (steps S14 and S32), and data path unit data 15 and 62 and control unit data 16 and 63 are obtained. Thereafter, the equivalence between the data path unit data 15 and 62 and the equivalence between the control unit data 16 and 63 are verified by the method described in the first and second embodiments.

図14はハードウェア記述言語で記述されたRTL記述同士を検証する場合のフローチャートである。図示するように、ハードウェア記述言語を用いてそれぞれRTL記述20、70を作成する(ステップS15、S40)。そして、それぞれについて機能合成を行って(ステップS16、S41)、データパス部データ21、72及び制御部データ22、71を得る。その後、データパス部データ21と72との間の等価性、及び制御部データ22と71との間の等価性を、上記第1、第2の実施形態で説明した方法により検証する。   FIG. 14 is a flowchart for verifying RTL descriptions written in a hardware description language. As shown in the figure, RTL descriptions 20 and 70 are created using a hardware description language, respectively (steps S15 and S40). Then, function synthesis is performed for each of them (steps S16 and S41), and data path part data 21 and 72 and control part data 22 and 71 are obtained. Thereafter, the equivalence between the data path data 21 and 72 and the equivalence between the control data 22 and 71 are verified by the method described in the first and second embodiments.

また上記実施形態では、システムレベル設計に用いる記述言語としてC言語をベースに用いた言語の場合を例に説明したが、ハードウェア記述言語よりも抽象度の高い言語であれば特に限定されるものでは無い。   In the above-described embodiment, the description has been given by taking as an example the language based on the C language as the description language used in the system level design. Not.

なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。   Note that the present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the scope of the invention in the implementation stage. Furthermore, the above embodiments include inventions at various stages, and various inventions can be extracted by appropriately combining a plurality of disclosed constituent elements. For example, even if some constituent requirements are deleted from all the constituent requirements shown in the embodiment, the problem described in the column of the problem to be solved by the invention can be solved, and the effect described in the column of the effect of the invention Can be extracted as an invention.

この発明の第1の実施形態に係る半導体集積回路の設計方法のフローチャート。1 is a flowchart of a semiconductor integrated circuit design method according to a first embodiment of the present invention. この発明の第1の実施形態に係る回路記述言語の等価性検証方法のフローチャート。3 is a flowchart of a circuit description language equivalence verification method according to the first embodiment of the present invention; この発明の第1の実施形態に係る回路記述言語の等価性検証方法のフローチャート。3 is a flowchart of a circuit description language equivalence verification method according to the first embodiment of the present invention; この発明の第1の実施形態に係る回路記述言語の等価性検証方法の模式図であり、機能記述とRTL記述の一例を示す図。It is a schematic diagram of the equivalence verification method of the circuit description language according to the first embodiment of the present invention, showing an example of a function description and an RTL description. この発明の第1の実施形態に係る回路記述言語の等価性検証方法の模式図であり、機能記述とRTL記述の一例を示す図。It is a schematic diagram of the equivalence verification method of the circuit description language according to the first embodiment of the present invention, showing an example of a function description and an RTL description. この発明の第1の実施形態に係る回路記述言語の等価性検証方法で用いられる対応関係ライブラリの模式図。The schematic diagram of the correspondence library used with the equivalence verification method of the circuit description language which concerns on 1st Embodiment of this invention. この発明の第1の実施形態に係る回路記述言語の等価性検証方法の模式図であり、RTL記述における制御部の一例を示す図。It is a schematic diagram of the equivalence verification method of the circuit description language concerning the 1st Embodiment of this invention, and is a figure which shows an example of the control part in RTL description. この発明の第1の実施形態に係る回路記述言語の等価性検証方法の模式図であり、RTL記述における制御部の一例を示す図。It is a schematic diagram of the equivalence verification method of the circuit description language concerning the 1st Embodiment of this invention, and is a figure which shows an example of the control part in RTL description. この発明の第1の実施形態に係る回路記述言語の等価性検証方法を実現する計算機の内部構成のブロック図。1 is a block diagram of an internal configuration of a computer that realizes a circuit description language equivalence checking method according to a first embodiment of the present invention. クロックと、それに同期するデータ信号のタイミングチャート。The timing chart of a clock and the data signal synchronized with it. この発明の第2の実施形態に係る回路記述言語の等価性検証方法における機能記述の模式図。The schematic diagram of the function description in the equivalence verification method of the circuit description language which concerns on 2nd Embodiment of this invention. この発明の第2の実施形態の変形例に係る回路記述言語の等価性検証方法における機能記述の模式図。The schematic diagram of the function description in the equivalence verification method of the circuit description language which concerns on the modification of the 2nd Embodiment of this invention. この発明の第1、第2の実施形態の第1変形例に係る回路記述言語の等価性検証方法のフローチャート。The flowchart of the equivalence verification method of the circuit description language which concerns on the 1st modification of 1st, 2nd embodiment of this invention. この発明の第1、第2の実施形態の第2変形例に係る回路記述言語の等価性検証方法のフローチャート。The flowchart of the equivalence verification method of the circuit description language which concerns on the 2nd modification of 1st, 2nd embodiment of this invention.

符号の説明Explanation of symbols

10…機能記述、11…RTL記述、12…ゲートレベル論理回路、13…マスクレイアウトデータ、14、20…スケジュール決定済みデータ、15、21…データパス部データ、16、22…制御部データ、17…対応関係ライブラリ、18、19…検証方法ライブラリ、30…加算器、31…減算器、32…比較器、33…除算器、40…計算機、41…CPU、42…メインメモリ、43…メモリ、44…ディスプレイ、45…入力装置、46…設計データ、47…制御部比較プログラム、48…パス比較プログラム、49…回路合成プログラム、50…各種ライブラリ   DESCRIPTION OF SYMBOLS 10 ... Function description, 11 ... RTL description, 12 ... Gate level logic circuit, 13 ... Mask layout data, 14, 20 ... Schedule determined data, 15, 21 ... Data path part data, 16, 22 ... Control part data, 17 ... correspondence library, 18, 19 ... verification method library, 30 ... adder, 31 ... subtractor, 32 ... comparator, 33 ... divider, 40 ... calculator, 41 ... CPU, 42 ... main memory, 43 ... memory, 44 ... display, 45 ... input device, 46 ... design data, 47 ... control unit comparison program, 48 ... path comparison program, 49 ... circuit synthesis program, 50 ... various libraries

Claims (5)

CPUが、第1回路記述言語により記述された、半導体集積回路に関する第1設計データを回路合成して、前記第1回記述言語よりも抽象度の低い第2回路記述言語により記述された第2設計データを得、これをメモリ装置に格納するステップと、
前記CPUが、前記第2設計データを回路合成して、演算器と該演算器に接続されるデータパスとを含む第1回路情報と、該第1回路情報におけるデータの流れを制御する第1制御情報とを得、これを前記メモリ装置に格納するステップと、
前記CPUが、前記第2回路記述言語により記述された第3設計データを回路合成して、演算器と該演算器に接続されるデータパスとを含む第2回路情報と、該第2回路情報におけるデータの流れを制御する第2制御情報とを得、これを前記メモリ装置に格納するステップと、
前記CPUが、前記第1、第2回路情報を比較して対応関係を検証し、対応しない部分について形式的検証を行い、該第1、第2回路情報が等価であるか否かを検証するステップと、
前記CPUが、前記第1、第2制御情報につき形式的検証を行い、該第1、第2制御情報が等価であるか否かを検証するステップと
を具備し、前記第1、第2回路情報が等価であり、且つ前記第1、第2制御情報が等価である場合、前記第1設計データと前記第3設計データとは等価であると判定され
前記CPUは、前記第1、第2回路情報の対応関係を検証する際、前記第2回路記述言語を回路合成して得られる演算器と該演算器に接続されるデータパスと、前記第1回路記述言語との対応関係を保持するライブラリ、を前記メモリ装置から読み出し、これを参照して、前記第1、第2回路情報が少なくとも部分的に対応するか否かを検証し、対応しない部分について前記形式的検証を行い、
前記CPUは、前記第1、第2制御情報が等価であるか否かを検証する際、前記第1制御情報の取り得る複数の状態に関する状態遷移条件と、前記第2制御情報の取り得る複数の状態に関する状態遷移条件とを比較し、前記状態遷移条件が同一である部分については等価であると判断し、同一でない部分について前記形式的検証を行う
ことを特徴とする回路記述言語の等価性検証方法。
The CPU synthesizes the first design data related to the semiconductor integrated circuit described in the first circuit description language, and the second description described in the second circuit description language having a lower abstraction level than the first description language. give the design data, the steps that stores in the memory device,
The CPU synthesizes the second design data, and first circuit information including an arithmetic unit and a data path connected to the arithmetic unit, and first data for controlling a data flow in the first circuit information. Obtaining control information and storing it in the memory device ;
The CPU synthesizes third design data described in the second circuit description language, and includes second circuit information including an arithmetic unit and a data path connected to the arithmetic unit, and the second circuit information obtain a second control information for controlling the flow of data in a step that stores it in the memory device,
The CPU compares the first and second circuit information to verify the correspondence, performs formal verification on the non-corresponding portion, and verifies whether the first and second circuit information is equivalent. Steps,
The CPU performing formal verification on the first and second control information and verifying whether or not the first and second control information are equivalent, and the first and second circuits When the information is equivalent and the first and second control information are equivalent, it is determined that the first design data and the third design data are equivalent ,
The CPU, when verifying the correspondence between the first and second circuit information, an arithmetic unit obtained by synthesizing the second circuit description language, a data path connected to the arithmetic unit, and the first A library that holds a correspondence relationship with a circuit description language is read from the memory device, is referred to to verify whether or not the first and second circuit information are at least partially corresponding, and a portion that does not correspond Formal verification for
When the CPU verifies whether or not the first and second control information are equivalent, a state transition condition regarding a plurality of states that can be taken by the first control information and a plurality that can be taken by the second control information. Circuit description language equivalence by comparing the state transition conditions with respect to the states of the two, determining that the portions having the same state transition conditions are equivalent, and performing the formal verification on the portions that are not the same Method of verification.
前記第1回路記述言語により記述された第4設計データを回路合成して、前記第2回路記述言語により記述された前記第3設計データを得るステップを更に備える
ことを特徴とする請求項1記載の回路記述言語の等価性検証方法。
Said fourth design data and circuit synthesis described by the first circuit description language, claim 1 Symbol, characterized by further comprising the step of obtaining the third design data described by the second circuit description language Method for verifying equivalence of circuit description languages
前記第1、第2回路記述言語のうち前記第2回路記述言語は、時間の概念を有し、
前記第1乃至第3設計データのうち前記第2、第3設計データは、前記半導体集積回路の動作の基準となるクロック信号と、該第2、第3設計データ内に含まれる演算とのタイミングに関する情報を含む
ことを特徴とする請求項1または2記載の回路記述言語の等価性検証方法。
Of the first and second circuit description languages, the second circuit description language has a concept of time,
Among the first to third design data, the second and third design data are timings of a clock signal serving as a reference for the operation of the semiconductor integrated circuit and operations included in the second and third design data. claim 1 or 2 equivalence checking method of a circuit description language, wherein the containing information about.
前記第1設計データは、該第1設計データに含まれる演算のうち、前記第2設計データにおいて出力すべき変数に関する情報と、該変数を出力するタイミングを指定する情報とを含む
ことを特徴とする請求項記載の回路記述言語の等価性検証方法。
The first design data includes information related to a variable to be output in the second design data among operations included in the first design data, and information designating a timing for outputting the variable. The circuit description language equivalence checking method according to claim 3 .
第1回路記述言語により記述された、半導体集積回路に関する第1設計データと、前記第1回路記述言語よりも抽象度の低い第2回路記述言語により記述された第2設計データとが等価であるか否かを検証する等価性検証装置であって、  The first design data relating to the semiconductor integrated circuit described in the first circuit description language is equivalent to the second design data described in the second circuit description language having a lower abstraction level than the first circuit description language. An equivalence verification device for verifying whether or not
前記第1設計データを回路合成して、前記第2回路記述言語により記述された第3設計データを得、該第3設計データを回路合成して、演算器と該演算器に接続されるデータパスとを含む第1回路情報と、該第1回路情報におけるデータの流れを制御する第1制御情報を得、更に前記第2設計データを回路合成して、演算器と該演算器に接続されるデータパスとを含む第2回路情報と、該第2回路情報におけるデータの流れを制御する第2制御情報を得る回路合成手段と、  Circuit synthesis of the first design data to obtain third design data described in the second circuit description language, circuit synthesis of the third design data, and data connected to the computing unit and the computing unit First circuit information including a path and first control information for controlling the flow of data in the first circuit information are obtained, and further, the second design data is synthesized with a circuit and connected to the computing unit and the computing unit. Circuit synthesizing means for obtaining second circuit information including a data path and second control information for controlling a data flow in the second circuit information;
前記第2回路記述言語を回路合成して得られる演算器及び該演算器に接続されるデータパスと、前記第1回路記述言語との対応関係を記録したライブラリを保持するメモリ装置と、  An arithmetic unit obtained by synthesizing the second circuit description language, a data path connected to the arithmetic unit, and a memory device holding a library in which a correspondence relationship between the first circuit description language is recorded;
前記第1、第2回路情報を比較して対応関係を検証し、対応しない部分について形式的検証を行い、該第1、第2回路情報が等価であるか否かを検証するデータパス比較手段と、  Data path comparing means for comparing the first and second circuit information to verify the correspondence, performing formal verification on the non-corresponding portion, and verifying whether or not the first and second circuit information are equivalent When,
前記第1、第2制御情報につき形式的検証を行い、該第1、第2制御情報が等価であるか否かを検証する制御部比較手段と  Control unit comparing means for performing formal verification on the first and second control information and verifying whether or not the first and second control information are equivalent;
を具備し、前記データパス比較手段は、前記メモリ装置内の前記ライブラリを参照して、前記第1、第2回路情報が少なくとも部分的に対応するか否かを検証し、対応しない部分について前記形式的検証を行い、  And the data path comparison means refers to the library in the memory device to verify whether or not the first and second circuit information corresponds at least partially and Perform formal verification,
前記制御部比較手段は、前記第1制御情報の取り得る複数の状態に関する状態遷移条件と、前記第2制御情報の取り得る複数の状態に関する状態遷移条件とを比較し、前記状態遷移条件が同一である部分については等価であると判断し、同一でない部分について前記形式的検証を行う  The control unit comparing means compares a state transition condition relating to a plurality of states that can be taken by the first control information with a state transition condition relating to a plurality of states that can be taken by the second control information, and the state transition conditions are the same. Are determined to be equivalent, and the formal verification is performed for non-identical parts.
ことを特徴とする回路記述言語の等価性検証装置。  A circuit description language equivalence verification device characterized by the above.
JP2006053918A 2006-02-28 2006-02-28 Circuit description language equivalence checking method and equivalence checking device Expired - Fee Related JP4268620B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006053918A JP4268620B2 (en) 2006-02-28 2006-02-28 Circuit description language equivalence checking method and equivalence checking device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006053918A JP4268620B2 (en) 2006-02-28 2006-02-28 Circuit description language equivalence checking method and equivalence checking device

Publications (2)

Publication Number Publication Date
JP2007233648A JP2007233648A (en) 2007-09-13
JP4268620B2 true JP4268620B2 (en) 2009-05-27

Family

ID=38554187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006053918A Expired - Fee Related JP4268620B2 (en) 2006-02-28 2006-02-28 Circuit description language equivalence checking method and equivalence checking device

Country Status (1)

Country Link
JP (1) JP4268620B2 (en)

Also Published As

Publication number Publication date
JP2007233648A (en) 2007-09-13

Similar Documents

Publication Publication Date Title
JP6995451B2 (en) Circuit optimization device and circuit optimization method
US7076751B1 (en) Chip debugging using incremental recompilation
JP4147842B2 (en) Logic verification system and method, logic cone extraction apparatus and method, logic verification and logic cone extraction program
JP2003016122A (en) Logic circuit design method
US7266791B2 (en) High level synthesis device, method for generating a model for verifying hardware, method for verifying hardware, control program, and readable recording medium
JP4492803B2 (en) Behavioral synthesis apparatus and program
JP5830955B2 (en) Verification device, verification method, and verification program
JP4268620B2 (en) Circuit description language equivalence checking method and equivalence checking device
JP2008299464A (en) Power consumption calculation method, power consumption calculation program, and power consumption calculation device
US20070266361A1 (en) Logic verification method, logic verification apparatus and recording medium
JP2008123056A (en) Timing constraint generation system for logic circuit, timing constraint generation method for logic circuit, control program, and readable recording medium
JP7045921B2 (en) Semiconductor LSI design device and design method
US7971167B2 (en) Semiconductor design support device, semiconductor design support method, and manufacturing method for semiconductor integrated circuit
JP2007102631A (en) Logic circuit design support apparatus and logic circuit design support method using the same
JP4886559B2 (en) Semiconductor design support apparatus, semiconductor design support method, and semiconductor design support program
JP4881769B2 (en) Semiconductor integrated circuit design support apparatus, semiconductor integrated circuit design support method, semiconductor integrated circuit design support program
JP5059657B2 (en) Design method and program for predicting signal delay time by netlist considering terminal wiring in macro
JP5310397B2 (en) Behavioral synthesis verification auxiliary device, behavioral synthesis verification auxiliary method, program, and recording medium
JP4891807B2 (en) High level synthesis apparatus and high level synthesis method
JP5849973B2 (en) Data processing apparatus, data processing system, data processing method, and data processing program
Chang et al. InVerS: an incremental verification system with circuit similarity metrics and error visualization
JPH09282341A (en) LSI layout design method and design apparatus
JP5347995B2 (en) Behavioral synthesis apparatus, behavioral synthesis method, and program
JP2006338090A (en) Semiconductor integrated circuit design method and design apparatus
JP2006201825A (en) Integrated circuit delay analysis method and delay analysis program

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090119

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090210

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090220

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140227

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees