JP5001126B2 - Hardware verification programming description generation apparatus, hardware verification programming description generation method, control program, and readable recording medium - Google Patents
Hardware verification programming description generation apparatus, hardware verification programming description generation method, control program, and readable recording medium Download PDFInfo
- Publication number
- JP5001126B2 JP5001126B2 JP2007312897A JP2007312897A JP5001126B2 JP 5001126 B2 JP5001126 B2 JP 5001126B2 JP 2007312897 A JP2007312897 A JP 2007312897A JP 2007312897 A JP2007312897 A JP 2007312897A JP 5001126 B2 JP5001126 B2 JP 5001126B2
- Authority
- JP
- Japan
- Prior art keywords
- hardware
- shared resource
- access
- description
- block
- 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
Links
Images
Description
本発明は、ハードウェアの動作を検証可能な汎用プログラミング記述を生成するためのハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、ハードウェア検証用プログラミング記述生成プログラムなどの制御プログラムおよびこれが記録されたコンピュータ読み取り可能な可読記録媒体に関する。 The present invention relates to a control program such as a hardware verification programming description generation device, a hardware verification programming description generation method, and a hardware verification programming description generation program for generating a general-purpose programming description capable of verifying hardware operation. The present invention also relates to a computer-readable readable recording medium on which it is recorded.
従来、システムLSI開発において、設計されたハードウェアの論理的な動作が正しいことを検証するために、アサーション技術が用いられている。アサーションとは、設計者によって指定されたハードウェアの動作において成立すべき正しい動作条件を監視し、シミュレーションによりその条件が満たされない場合には、動作に誤りがあるとして設計者に通知するという技術である。 Conventionally, in system LSI development, an assertion technique is used to verify that the logical operation of designed hardware is correct. Assertion is a technology that monitors the correct operating conditions to be established in the hardware operation specified by the designer, and notifies the designer that there is an error in the operation if the conditions are not met by simulation. is there.
例えば、ハードウェア中に2つの論理回路ブロック(機能ブロック)と、これら2つの論理回路ブロックに共に使用される共有メモリが実装されているものとする。これら2つの論理回路ブロックから共有メモリへの書き込み動作が行われる場合に、それぞれの書き込み動作時にアクティブになる信号を信号Aおよび信号Bとして、書き込み動作が同一のクロックサイクルで重複されず、信号Aと信号Bは任意のクロックサイクルにおいて同時にアクティブな状態にならないものとする。この動作条件が正しい動作であるとするアサーションは、次の(1)〜(3)ように指定される。 For example, it is assumed that two logic circuit blocks (functional blocks) and a shared memory used together for these two logic circuit blocks are mounted in hardware. When a write operation is performed from these two logic circuit blocks to the shared memory, signals A and B are activated at the time of each write operation, and the write operation is not repeated in the same clock cycle. And signal B shall not be active at the same time in any clock cycle. The assertion that the operation condition is a correct operation is specified as the following (1) to (3).
即ち、(1)信号Aが非アクティブであり、かつ信号Bが非アクティブである。または、(2)信号Aがアクティブであり、かつ信号Bが非アクティブである。または、(3)信号Aが非アクティブであり、かつ信号Bがアクティブである。 (1) Signal A is inactive and signal B is inactive. Or (2) signal A is active and signal B is inactive. Or (3) signal A is inactive and signal B is active.
また、LSI設計においては、高位合成技術が用いられている。高位合成とは、ハードウェアの構造に関する情報は含まれず、ハードウェアの処理動作のみが記述された動作記述(動作レベル記述)からRTL(レジスタ・トランスファ・レベル)の論理回路を生成するという技術である。この高位合成技術の具体的な手法は、例えば特許文献1に開示されている。
Further, high-level synthesis technology is used in LSI design. High-level synthesis is a technology that does not include information about the hardware structure, but generates an RTL (register transfer level) logic circuit from an operation description (operation level description) that describes only the hardware processing operations. is there. A specific method of this high-level synthesis technique is disclosed in
さらに、例えば特許文献2および特許文献3には、動作レベル記述に付加されたアサーションなどの情報を高位合成により生成されたRTL記述に反映させる手法が開示されている。
Further, for example,
この特許文献2に開示されている高位合成方法では、動作記述からその動作記述に記述された回路動作を検証する第1アサーション情報を含むCDFG(コントロールデータフローグラフ)が抽出され、そのCDFGから第1アサーション情報が抽出され、そのCDFGから第1アサーション情報を除いたCDFGのスケジューリング結果とアロケーション結果に基づいて第1アサーション情報がRTLレベルで記述可能な第2アサーション情報に変換されて、その第2アサーション情報に基づいてRTLレベルで記述されたアサーション記述が生成される。
In the high-level synthesis method disclosed in
また、特許文献3に開示されている動作合成方法では、動作記述を基にRTLレベル記述が生成され、動作記述とRTLレベル記述からそれらに含まれる信号、演算や記述文などの対応関係を示す情報が生成されて、その対応関係を示す情報と予め設定された変換ルールとを元に、動作記述に付加された付帯情報がRTLレベル記述に付加される付帯情報に変換される。 Further, in the behavioral synthesis method disclosed in Patent Document 3, an RTL level description is generated based on the behavioral description, and the correspondence relationship between the behavioral description and the RTL level description, including signals, operations, description sentences, and the like is shown. Information is generated, and the incidental information added to the behavioral description is converted into incidental information added to the RTL level description based on the information indicating the corresponding relationship and a preset conversion rule.
LSI検証において、汎用プログラミング言語により記述された検証モデルを用いて設計されたハードウェアの動作がサイクル精度で要求仕様を満たすか否かを検証する手法が知られている。ここで述べるサイクル精度とは、ハードウェアの動作について、そのハードウェアの状態をクロックサイクル単位で示すことが可能な精度レベルのことである。例えば、クロックの立ち上がりに同期して動作するハードウェアにおいては、そのクロックの立ち上がりエッジにおけるハードウェア中のレジスタやメモリなどの記憶装置の状態を示すレベルのことである。 In LSI verification, a method for verifying whether or not the operation of hardware designed using a verification model described in a general-purpose programming language satisfies a required specification with cycle accuracy is known. The cycle accuracy described here is an accuracy level at which the hardware state can be indicated in units of clock cycles with respect to the operation of the hardware. For example, in hardware that operates in synchronization with the rising edge of a clock, the level indicates the state of a storage device such as a register or memory in the hardware at the rising edge of the clock.
例えば、特許文献4には、従来、サイクル精度を検証するために用いられていたHDL(Hardware Description Language)シミュレータの代わりに、高位合成により生成されるCDFGから、ハードウェアをサイクル精度レベルで検証可能なモデルを生成し、シミュレーションを行う手法が開示されている。この特許文献4に開示されているハードウェア検証用プログラミング言語モデル生成方法では、ハードウェアの動作記述からCDFGが生成され、ハードウェアに要求される動作周波数でCDFGがスケジューリングされてステート毎に割り振られ、ステート毎にハードウェアの動作モデル(サイクル精度モデル)が汎用プログラミング言語で表現した記述として生成される。このサイクル精度モデルは、CDFGに含まれるノードの動作情報を用いて各ノードの動作モデルが生成され、ノードの接続情報を用いて各ノードの動作モデルを計算する際の順序付けが行われることによって、各ステートでシミュレーション可能なモデルとして生成される。
一般的に、ハードウェアの動作を検証する際には、VHDLなどのRTL記述言語で記述されたハードウェアの動作をシミュレーションするHDLシミュレータが用いらている。このHDLシミュレータにおいては、ハードウェア内の信号変化をクロック周期よりも短い時間単位で監視して、その信号変化を接続する信号に伝搬させるというイベント駆動方式によりシミュレーションが行われる。したがって、ハードウェアのサイクル精度レベルでの動作検証をHDLシミュレータを用いて行う場合、冗長かつ無駄な計算が多くなり、シミュレーション時間が長くなる。 In general, when verifying hardware operation, an HDL simulator for simulating hardware operation described in an RTL description language such as VHDL is used. In the HDL simulator, simulation is performed by an event driving method in which a signal change in hardware is monitored in units of time shorter than a clock cycle and the signal change is propagated to a signal to be connected. Therefore, when operation verification at the hardware cycle accuracy level is performed using an HDL simulator, redundant and useless calculations increase, and simulation time increases.
即ち、アサーションを用いてハードウェアの論理的動作をサイクル精度レベルで検証する際に、例えば特許文献2および特許文献3に開示されているように高位合成により生成されたRTL記述を用いる場合には、HDLシミュレータによりシミュレーションを行うために多大な時間が必要とされる。また、回路規模が大きくなり、テストパターンが長くなると、検証のために多大な時間が必要とされ、これによって、LSIの開発コストが増大する原因となる。
That is, when verifying the logical operation of hardware at the cycle accuracy level using assertions, for example, when using an RTL description generated by high-level synthesis as disclosed in
さらに、特許文献4に開示されている従来技術では、CDFGからハードウェアをサイクル精度レベルで検証可能なモデルが生成されて、シミュレーションが行われるが、アサーションについては考慮されておらず、ハードウェアの動作において共有リソースに重複するアクセスが発生しないようにアサーションにより制御することはできない。
Furthermore, in the prior art disclosed in
本発明は、上記従来の問題を解決するもので、サイクル精度レベルでハードウェアの正しい動作が成立する条件をアサーションにより検証可能な動作モデルを汎用プログラミング言語記述として自動生成することにより、高速かつ安価にハードウェアの動作を検証可能で、LSIの設計・検証期間を短縮できて、開発コストを低減できるハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、ハードウェア検証用プログラミング記述生成プログラムなどの制御プログラムおよび、この制御プログラムを記録したコンピュータ読み出し可能な可読記録媒体を提供することを目的とする。 The present invention solves the above-described conventional problems, and by automatically generating an operation model as a general-purpose programming language description that can verify the conditions under which the correct operation of the hardware is established at the cycle accuracy level by assertion, it is fast and inexpensive. Hardware verification, hardware verification programming description generation device, hardware verification programming description generation method, hardware verification programming description that can reduce LSI design / verification period and reduce development cost It is an object of the present invention to provide a control program such as a generation program and a computer-readable readable recording medium on which the control program is recorded.
本発明のハードウェア検証用プログラミング記述生成装置は、回路構造に関する情報は含まれず、処理動作のみが記述された動作記述から得られたハードウェアの動作情報から該ハードウェアを複数の機能ブロックに分割し、分割した複数の機能ブロックからアクセスされる共有リソースを抽出して、該共有リソースのアクセス情報を作成するブロック分割・共有リソース抽出・アクセス情報作成手段と、該共有リソースのアクセス情報から、アサーションにより該共有リソースへのアクセスが重複されないように制御するアクセス制御モデルを生成する共有リソースのアクセス制御モデル生成手段とを有するものであり、そのことにより上記目的が達成される。 The hardware verification programming description generation apparatus of the present invention does not include information on the circuit structure, and divides the hardware into a plurality of functional blocks from the hardware operation information obtained from the operation description in which only the processing operation is described. Then, the shared resource accessed from the divided plurality of functional blocks is extracted, and access information of the shared resource is generated, and block assertion / shared resource extraction / access information creation means, and the assertion from the access information of the shared resource And a shared resource access control model generating means for generating an access control model for controlling the access to the shared resource so as not to be duplicated, thereby achieving the above object.
また、好ましくは、本発明のハードウェア検証用プログラミング記述生成装置における共有リソースのアクセス制御モデル生成手段は、前記アクセス制御モデルとして、サイクル精度レベルで前記ハードウェアの正しい動作が成立する条件をアサーションにより検証可能な動作モデルを汎用プログラミング言語の記述として生成する。 Preferably, the access control model generating unit for the shared resource in the hardware verification programming description generating apparatus according to the present invention uses, as the access control model, a condition that the correct operation of the hardware is established at the cycle accuracy level by assertion. A verifiable behavior model is generated as a general-purpose programming language description.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成装置における共有リソースのアクセス制御モデルは、前記複数の機能ブロックのうちの少なくとも2つの機能ブロックのアクセスタイミングを示す各信号を前記汎用プログラミング言語によりそれぞれ表現した各変数を加算し、その加算結果をアサーション条件として前記ハードウェアが正しい条件で動作しているか否かを判断するように制御する。 Further preferably, in the hardware verification programming description generation apparatus according to the present invention, the shared resource access control model is configured such that each signal indicating access timing of at least two functional blocks of the plurality of functional blocks is transmitted to the general-purpose programming language. Each variable expressed by the above is added, and the result of addition is controlled as an assertion condition to determine whether the hardware is operating under the correct condition.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成装置における加算結果が“1”以下であるという条件を前記アサーション条件とする。 More preferably, the assertion condition is a condition that the addition result in the hardware verification programming description generation apparatus of the present invention is “1” or less.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成装置における加算結果が“1”よりも大きい場合に、前記ハードウェアの正しい動作条件に合致しないものとしてエラー情報を報知手段に出力して、該ハードウェアの動作が正しく実行されていないことを該報知手段によりユーザに報知する。 Furthermore, preferably, when the addition result in the hardware verification programming description generation apparatus of the present invention is larger than “1”, error information is output to the notifying means as not satisfying the correct operating condition of the hardware. The notification means notifies the user that the operation of the hardware is not being executed correctly.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成装置における共有リソースのアクセス制御モデルは、前記共有リソースがマルチポートメモリの場合に、前記複数の機能ブロックのうちの少なくとも2つの機能ブロックのアクセスタイミングを示す各信号を前記汎用プログラミング言語によりそれぞれ表現した各変数と、該共有リソースにそれぞれアクセスされる各アドレスを比較した結果とをアサーション条件として、前記ハードウェアが正しい条件で動作しているか否かを判断するように制御する。 Furthermore, it is preferable that the shared resource access control model in the hardware verification programming description generation apparatus according to the present invention is configured such that, when the shared resource is a multi-port memory, at least two functional blocks of the plurality of functional blocks. Whether the hardware is operating under the correct condition, with each variable representing the access timing expressed in the general-purpose programming language and the result of comparing each address accessed to the shared resource as an assertion condition Control to determine whether or not.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成装置における各変数が全て”1”でかつ前記各アドレスを比較した結果が等しいという条件が全て成り立つ場合を除くという条件をアサーション条件とする。 Further preferably, the assertion condition is a condition in which all of the variables in the hardware verification programming description generation apparatus according to the present invention are all “1” and the condition that the result of comparing the addresses is equal holds. .
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成装置における各変数が全て”1”でかつ前記各アドレスを比較した結果が等しいという条件が全て成り立つ場合に、前記ハードウェアの正しい動作条件に合致しないものとしてエラー情報を報知手段に出力して、該ハードウェアの動作が正しく実行されていないことをユーザに該報知手段により報知する。 Furthermore, it is preferable that the correct operation condition of the hardware is satisfied when all the conditions that the variables in the hardware verification programming description generation apparatus of the present invention are all “1” and the results of comparing the addresses are all satisfied. Error information is output to the notifying unit as a result of not meeting the above, and the user is notified by the notifying unit that the operation of the hardware is not performed correctly.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成装置における共有リソースのアクセス制御モデルが生成されないようにアクセス制御モデル生成禁止情報を動作記述中に指定可能とする。 Furthermore, preferably, the access control model generation prohibition information can be specified in the operation description so that the access control model of the shared resource in the hardware verification programming description generation apparatus of the present invention is not generated.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成装置における共有リソースのアクセス情報は、該共有リソースにアクセスするブロック名、データ書き込みおよび読み出しのうちの少なくともいずれかのアクセスの方向、および、アクセスに使用する信号として、該ブロック名のブロックと該共有リソース間でアクセス動作を実行するタイミングを示す信号、アクセスするアドレスを示す信号および書き込みデータである。 Further preferably, the access information of the shared resource in the hardware verification programming description generation device of the present invention includes a block name for accessing the shared resource, a direction of access of at least one of data writing and reading, and As signals used for access, there are a signal indicating timing for executing an access operation between the block having the block name and the shared resource, a signal indicating an address to be accessed, and write data.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成装置において、前記動作記述から構文および字句を解析処理する構文解析・字句解析手段をさらに有し、前記ブロック分割・共有リソース抽出・アクセス情報作成手段は、該動作記述から構文および字句を解析処理して得られたハードウェアの動作情報から該ハードウェアを複数の機能ブロックに分割する。 Further preferably, in the hardware verification programming description generation device according to the present invention, the hardware verification programming description generation device further includes syntax analysis / lexical analysis means for analyzing the syntax and lexical from the operation description, and the block division / shared resource extraction / access information is provided. The creation means divides the hardware into a plurality of functional blocks from the hardware operation information obtained by analyzing the syntax and lexical from the operation description.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成装置において、前記複数の機能ブロックの各CDFGをそれぞれ作成するCDFG生成手段と、該各CDFGで回路動作を表すノードをスケジューリングおよびステート割り振りするスケジューリング・ステート割り振り手段と、該機能ブロックの動作をサイクル精度レベルで検証可能なサイクルク精度モデルを生成する機能ブロックのサイクル精度モデル生成手段と、前記共有リソースの動作をサイクル精度レベルで検証可能なサイクル精度モデルを生成する共有リソースのサイクル精度モデル生成手段とをさらに有する。 Further preferably, in the hardware verification programming description generation device according to the present invention, CDFG generation means for creating each CDFG of the plurality of functional blocks, and a node representing a circuit operation by each CDFG are scheduled and state-allocated. Scheduling state allocation means, cycle accuracy model generation means for generating a cycle accuracy model that can verify the operation of the functional block at the cycle accuracy level, and operation of the shared resource can be verified at the cycle accuracy level It further has a cycle accuracy model generation means for shared resources for generating a cycle accuracy model.
本発明のハードウェア検証用プログラミング記述生成方法は、ブロック分割・共有リソース抽出・アクセス情報作成手段が、回路構造に関する情報は含まれず、処理動作のみが記述された動作記述を記憶部から読み出し、読み出された該動作記述から得られたハードウェアの動作情報から該ハードウェアを機能ブロックに分割して分割された該機能ブロックを該記憶部に記憶し、該記憶部に記憶された該分割した複数の機能ブロックを読み出して、読み出された該分割した複数の機能ブロックからアクセスされる共有リソースを抽出して抽出された共有リソースを該記憶部に記憶し、該記憶部に記憶された該共有リソースを読み出して、読み出された該共有リソースのアクセス情報を作成して、該共有リソースの該アクセス情報を該記憶部に記憶するブロック分割・共有リソース抽出・アクセス情報作成ステップと、共有リソースのアクセス制御モデル生成手段が、該記憶部に記憶された該共有リソースの該アクセス情報を読み出して、読み出された該共有リソースのアクセス情報から、アサーションにより該共有リソースへのアクセスが重複されないように制御するアクセス制御モデルを生成して、生成された該アクセス制御モデルを該記憶部に記憶する共有リソースのアクセス制御モデル生成ステップとを有するものであり、そのことにより上記目的が達成される。
In the hardware verification programming description generation method according to the present invention, the block division / shared resource extraction / access information creation means reads from the storage unit an operation description that does not include information on the circuit structure and describes only the processing operation. The hardware is divided into functional blocks from the hardware behavior information obtained from the issued behavior description, and the divided functional blocks are stored in the storage unit, and the divided blocks stored in the storage unit are stored. Read out a plurality of functional blocks, extract shared resources accessed from the divided plurality of functional blocks , store the extracted shared resources in the storage unit, and store the extracted shared resources in the storage unit It reads the shared resources, by creating access information read the shared resource, the access information of the shared resources in the storage unit A block dividing and sharing resources extracted access information generating step of憶, access control model generation means shared resource, reads the access information stored the shared resource in the storage unit, read the shared resource Generating an access control model for controlling the access to the shared resource by duplication from the access information of the shared resource, and storing the generated access control model in the storage unit With this, the above-mentioned object is achieved.
また、好ましくは、本発明のハードウェア検証用プログラミング記述生成方法における前記共有リソースのアクセス制御モデル生成ステップは、前記共有リソースのアクセス制御モデル生成手段が、前記アクセス制御モデルとして、サイクル精度レベルで前記ハードウェアの正しい動作が成立する条件をアサーションにより検証可能な動作モデルを汎用プログラミング言語の記述として生成することを含む。
Also, preferably, the access control model generating step of the shared resources in the hardware verification programming description generation method of the present invention, the access control model generation means shared resources, as the access control model, wherein a cycle precision level This includes generating an operation model that can verify the conditions under which the correct operation of the hardware is established by assertion as a description in a general-purpose programming language.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成方法における共有リソースのアクセス制御モデル生成ステップにおいて、前記アクセス制御モデルは、前記複数の機能ブロックのうちの少なくとも2つの機能ブロックのアクセスタイミングを示す各信号を前記汎用プログラミング言語によりそれぞれ表現した各変数を加算し、その加算結果をアサーション条件として、前記ハードウェアが正しい条件で動作しているか否かを判断するように制御する。 Further preferably, in the access control model generation step of the shared resource in the hardware verification programming description generation method of the present invention, the access control model is configured to determine access timings of at least two functional blocks of the plurality of functional blocks. Each of the signals shown is added to each variable expressed in the general-purpose programming language, and the result of the addition is used as an assertion condition to control whether the hardware is operating under the correct condition.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成方法における加算結果が“1”以下であるという条件を前記アサーション条件とする。 More preferably, the assertion condition is a condition that an addition result in the hardware verification programming description generation method of the present invention is “1” or less.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成方法における加算結果が“1”よりも大きい場合に、前記ハードウェアの正しい動作条件に合致しないものとしてエラー情報を報知手段に出力して、該ハードウェアの動作が正しく実行されていないことを該報知手段によりユーザに報知する。 Further preferably, when the addition result in the hardware verification programming description generation method of the present invention is larger than “1”, error information is output to the notifying means as not satisfying the correct operating condition of the hardware. The notification means notifies the user that the operation of the hardware is not being executed correctly.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成方法における共有リソースのアクセス制御モデル生成ステップにおいて、該共有リソースがマルチポートメモリの場合に、前記アクセス制御モデルは、前記複数の機能ブロックのうちの少なくとも2つの機能ブロックのアクセスタイミングを示す各信号を前記汎用プログラミング言語によりそれぞれ表現した各変数と、該共有リソースにそれぞれアクセスされる各アドレスを比較した結果とをアサーション条件として、前記ハードウェアが正しい条件で動作しているか否かを判断するように制御する。 Further preferably, in the shared resource access control model generation step in the hardware verification programming description generation method of the present invention, when the shared resource is a multi-port memory, the access control model includes the plurality of functional blocks. The hardware representing each of the variables representing the access timings of at least two of the functional blocks in the general-purpose programming language and the result of comparing each address accessed to the shared resource as an assertion condition Is controlled to determine whether or not is operating under correct conditions.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成方法における各変数が全て”1”でかつ前記各アドレスを比較した結果が等しいという条件が全て成り立つ場合を除くという条件をアサーション条件とする。 Further preferably, the assertion condition is a condition in which all the conditions in the hardware verification programming description generation method of the present invention are all “1” and the result of comparing the addresses is all satisfied. .
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成方法における各変数が全て”1”でかつ前記各アドレスを比較した結果が等しいという条件が全て成り立つ場合に、前記ハードウェアの正しい動作条件に合致しないものとしてエラー情報を報知手段に出力して、該ハードウェアの動作が正しく実行されていないことをユーザに該報知手段により報知する。 Furthermore, it is preferable that the correct operation condition of the hardware is satisfied when all the conditions that the variables in the hardware verification programming description generation method of the present invention are all “1” and the results of comparing the addresses are all satisfied. Error information is output to the notifying unit as a result of not meeting the above, and the user is notified by the notifying unit that the operation of the hardware is not performed correctly.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成方法における共有リソースのアクセス制御モデルが生成されないようにアクセス制御モデル生成禁止情報を動作記述中に指定可能とする。 Further preferably, the access control model generation prohibition information can be specified in the operation description so that the access control model of the shared resource in the hardware verification programming description generation method of the present invention is not generated.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成方法における共有リソースのアクセス情報は、該共有リソースにアクセスするブロック名、データ書き込みおよび読み出しのうちの少なくともいずれかのアクセスの方向、および、アクセスに使用する信号として、該ブロック名のブロックと該共有リソース間でアクセス動作を実行するタイミングを示す信号、アクセスするアドレスを示す信号および書き込みデータである。 Further preferably, in the hardware verification programming description generation method of the present invention, the shared resource access information includes a block name for accessing the shared resource, a direction of access of at least one of data writing and reading, and As signals used for access, there are a signal indicating timing for executing an access operation between the block having the block name and the shared resource, a signal indicating an address to be accessed, and write data.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成方法において、構文解析・字句解析手段が、前記動作記述から構文および字句を解析処理する構文解析・字句解析ステップをさらに有し、前記ブロック分割・共有リソース抽出・アクセス情報作成ステップは、前記ブロック分割・共有リソース抽出・アクセス情報作成手段が、該動作記述から構文および字句を解析処理して得られたハードウェアの動作情報から該ハードウェアを複数の機能ブロックに分割することを含む。
Further preferably, in the hardware verification programming description generation method according to the present invention, the syntax analysis / lexical analysis means further includes a syntax analysis / lexical analysis step of analyzing the syntax and the lexical from the operation description, and the block The division / shared resource extraction / access information creation step includes the hardware division information obtained from the hardware division information obtained by the block division / shared resource extraction / access information creation means analyzing the syntax and lexical from the operation description. the involves dividing into a plurality of functional blocks.
さらに、好ましくは、本発明のハードウェア検証用プログラミング記述生成方法において、CDFG生成手段が、前記複数の機能ブロックの各CDFGをそれぞれ作成するCDFG生成ステップと、スケジューリング・ステート割り振り手段が、該各CDFGで回路動作を表すノードをスケジューリングおよびステート割り振りするスケジューリング・ステート割り振りステップと、機能ブロックのサイクル精度モデル生成手段が、該機能ブロックの動作をサイクル精度レベルで検証可能なサイクル精度モデルを生成する機能ブロックのサイクル精度モデル生成ステップと、共有リソースのサイクル精度モデル生成手段が、前記共有リソースの動作をサイクル精度レベルで検証可能なサイクル精度モデルを生成する共有リソースのサイクル精度モデル生成ステップとをさらに有する。 Further preferably, in the method for generating a hardware verification programming description according to the present invention, the CDFG generating means generates a CDFG of each of the plurality of functional blocks, and a scheduling state allocating means includes the CDFG. and scheduling state allocation step of scheduling and state allocation nodes representing circuit operation in, cycle accurate model generating unit of the functional block, to produce a verifiable cycle accuracy model the operation of the functional blocks in a cycle precision level The cycle accuracy model generation step for the functional block and the cycle accuracy model generation means for the shared resource generate a cycle accuracy model for generating a cycle accuracy model that can verify the operation of the shared resource at the cycle accuracy level. And a degree model generation step.
本発明の制御プログラムは、本発明の上記ハードウェア検証用プログラミング記述生成方法の各ステップを計算機システムによって実行可能な処理手順が記述されたものであり、そのことにより上記目的が達成される。 The control program according to the present invention describes a processing procedure that can be executed by the computer system in each step of the hardware verification programming description generation method according to the present invention, thereby achieving the above object.
本発明の可読記録媒体は、本発明の上記制御プログラムが記録されて前記計算機システムによって該制御プログラムを読み取り可能なものであり、そのことにより上記目的が達成される。 The readable recording medium of the present invention records the control program of the present invention and can be read by the computer system, thereby achieving the above object.
上記構成により、以下に、本発明の作用について説明する。 The operation of the present invention will be described below with the above configuration.
本発明にあっては、ハードウェアの動作記述から、ハードウェアを機能ブロックに分割し、分割した複数の機能ブロックのうちの少なくとも2つの機能ブロックからアクセスされる共有リソース(並列動作の共有リソース)を抽出して、その共有リソースのアクセス情報を作成する。その共有リソースのアクセス情報から、アサーションにより共有リソースへのアクセスを制御するアクセス制御モデルを生成する。この共有リソースのアクセス制御モデルにより、検証時間が長いHDLシミュレータを用いずに、アサーションによりハードウェアのサイクル精度での動作検証を高速に行うことが可能となる。 In the present invention, the hardware is divided into functional blocks from the hardware operation description, and shared resources (shared resources for parallel operation) that are accessed from at least two of the divided functional blocks. And access information for the shared resource is created. An access control model for controlling access to the shared resource by assertion is generated from the access information of the shared resource. With this shared resource access control model, it is possible to perform high-speed operation verification with hardware cycle accuracy by assertion without using an HDL simulator with a long verification time.
例えば、各機能ブロックからのアクセスタイミングを示す信号を汎用プログラミング言語により表現した各変数を加算し、その加算結果からハードウェアが正しい条件で動作しているか否かを判断して共有リソースへのアクセスを制御することが可能となる。また、共有リソースとしてマルチポートメモリが実装される場合に、各機能ブロックからのアクセスタイミングを示す信号を汎用プログラミング言語によりそれぞれ表現した各変数と、アクセスされる各アドレスを比較したアドレス比較結果とによって、ハードウェアが正しい条件で動作しているか否かを判断して共有リソースへのアクセスを制御することが可能となる。 For example, each variable that represents the access timing from each functional block is added to each variable expressed in a general-purpose programming language, and access to the shared resource is determined by determining whether the hardware is operating under the correct conditions from the addition result. Can be controlled. In addition, when a multi-port memory is implemented as a shared resource, each variable that represents a signal indicating the access timing from each function block is represented by a general-purpose programming language, and an address comparison result that compares each accessed address. It is possible to determine whether the hardware is operating under correct conditions and control access to the shared resource.
また、機能ブロックのサイクル精度モデルと、共有リソースのサイクル精度モデルと、共有リソースのアクセス制御モデルをコンパイルしたオブジェクトをリンクすることにより、サイクル精度レベルでハードウェアの正しい動作が成立する条件をアサーションにより検証可能な動作モデルが汎用プログラミング言語により記述された制御プログラムとしてのハードウェア検証用プログラミング記述生成プログラムが得られる。 Also, by linking the cycle accuracy model of the functional block, the cycle accuracy model of the shared resource, and the object compiled from the access control model of the shared resource, the condition that the correct hardware operation is established at the cycle accuracy level is asserted. A hardware verification programming description generation program is obtained as a control program in which a verifiable behavior model is described in a general-purpose programming language.
以上により、本発明によれば、アクセス制御モデルとして、サイクル精度でハードウェアの正しい動作が成立する条件をアサーションにより検証可能な動作モデルを汎用プログラミング言語の記述として生成するため、高速でかつ安価にハードウェアの動作を検証することができて、LSIの設計および検証期間を短縮化でき、開発コストを低減することができる。 As described above, according to the present invention, as an access control model, an operation model that can be verified by assertion as a condition in which the correct operation of hardware is achieved with cycle accuracy is generated as a description of a general-purpose programming language. Hardware operation can be verified, LSI design and verification period can be shortened, and development cost can be reduced.
以下に、ハードウェアの動作を検証可能な汎用プログラミング記述を生成するための本発明のハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、制御プログラムとしてのハードウェア検証用プログラミング記述生成プログラムおよび、この制御プログラムが格納されたコンピュータ読み出し可能な可読記録媒体をコンピュータシステム(計算機システム)に適用した本発明の実施形態について、図面を参照しながら詳細に説明する。 A hardware verification programming description generation apparatus, a hardware verification programming description generation method, and a hardware verification programming description as a control program according to the present invention for generating a general-purpose programming description capable of verifying hardware operation. An embodiment of the present invention in which a generation program and a computer-readable readable recording medium storing the control program are applied to a computer system (computer system) will be described in detail with reference to the drawings.
図1は、本発明の実施形態に係るハードウェア検証用プログラミング記述生成装置を実現するためのコンピュータシステムの要部構成図である。 FIG. 1 is a block diagram of a main part of a computer system for realizing a hardware verification programming description generating apparatus according to an embodiment of the present invention.
図1において、本実施形態のハードウェア検証用プログラミング記述生成装置として動作するコンピュータシステム100は、画面表示するためのモニタ装置1、各種の情報を入力可能とする入力装置2および計算機本体3を有しており、計算機本体3には、全体の制御を行う制御手段としてのCPU(中央演算処理ユニット)31、CPU31の起動時に働くRAM32および、可読記録媒体としてのROM33が含まれている。
Referring to FIG. 1, a
モニタ装置1は、表示画面上に、初期画面、選択画面、CPU31による制御結果画面、報知画面および操作入力画面などを表示する。
The
入力装置2は、CPU31に対して入力指令を行うためのキーボード、マウス、項目選択用などのタッチパネルおよびペン入力装置などの操作部や、さらには通信ネットワーク(例えばインターネットやイントラネット)を介して受信入力する入力装置などである。
The
RAM32は、CPU31の起動時に制御プログラムおよびそのデータなどが読み出されて、CPU31による制御毎にデータを読み出し・記憶するワークメモリとして働くICメモリなどの記憶部である。
The
ROM33は、ハードディスク(HDD)の他、携帯自在な光ディスク、光磁気ディスク、磁気ディスクおよびICメモリなどで構成されていてもよい。この制御プログラムおよびそのデータなどがROM33に記憶されるが、この制御プログラムおよびそのデータは、他の可読記録媒体から情報記録再生装置を介してROM33にダウンロードされてもよく、または、無線、有線またはインターネットなどを介してROM33にダウンロードされてもよい。
The
ROM33には、高位合成処理(高位合成プログラム)を含む本発明の実施形態に係る制御プログラムとしてのハードウェア検証用プログラミング記述生成プログラム4が記録されている。
The
高位合成処理は、例えばRTレベル回路を生成するために演算・レジスタ割付処理や制御器生成処理などが含まれ、さらには、各部の動作を検証するシミュレーション処理も含まれる。ハードウェア検証用プログラミング記述生成プログラム4は、本発明の実施形態に係るハードウェア検証用プログラミング記述生成方法を計算機システムであるコンピュータシステム100によって実行可能な処理手順が記述されており、サイクル精度レベルでハードウェアの正しい動作が成立する条件をアサーションにより検証可能な動作モデルを汎用プログラミング言語記述として生成するために用いられる。即ち、ハードウェアの動作記述を高位合成する際に、ハードウェアの動作をサイクル精度で検証可能な動作モデルを汎用プログラミング言語で生成し、アサーションによって検証できる動作について制御モデルを自動生成する。
The high-level synthesis processing includes, for example, calculation / register allocation processing and controller generation processing for generating an RT level circuit, and further includes simulation processing for verifying the operation of each unit. The hardware verification programming
本実施形態のハードウェア検証用プログラミング記述生成プログラム4の起動時には、ROM33としての例えばハードディスクHDDからRAM32にハードウェア検証用プログラミング記述生成プログラム4が読み込まれて、CPU31によってハードウェア検証用プログラミング記述生成処理が実行されるようになっている。
At the time of starting the hardware verification programming
このハードウェア検証用プログラミング記述生成プログラム4はCPU31により実行されて、構文解析・字句解析手段41と、ブロック分割・共有リソース抽出・アクセス情報作成手段42と、CDFG生成手段43と、スケジューリング・ステート割り振り手段44と、機能ブロックのサイクル精度モデル生成手段45と、共有リソースのサイクル精度モデル生成手段46と、共有リソースのアクセス制御モデル生成手段47との各処理機能を有している。
The hardware verification programming
構文解析・字句解析手段41では、回路の構造に関する情報が含まれず、処理動作のみが記述されたハードウェアの動作記述から構文および字句を解析してハードウェアの動作情報(加算および減算などの演算情報や並列動作情報など)を得る構文解析および字句解析処理が行われる。 The syntax analysis / lexical analysis means 41 does not include information related to the structure of the circuit, but analyzes the syntax and lexical from the hardware operation description in which only the processing operation is described, and performs hardware operation information (operations such as addition and subtraction). Information and parallel operation information, etc.) are obtained.
ブロック分割・共有リソース抽出・アクセス情報作成手段42では、ハードウェアの動作情報、例えば並列動作情報からハードウェアを複数の機能ブロックに分割するブロック分割処理を行い、分割された複数の機能ブロックからアクセスされる共有リソースを抽出する共有リソース抽出処理を行って、共有リソースのアクセス情報を作成するアクセス情報作成処理が行われる。 The block division / shared resource extraction / access information creation means 42 performs block division processing for dividing hardware into a plurality of functional blocks from hardware operation information, for example, parallel operation information, and accesses from the plurality of divided function blocks. The shared resource extraction process for extracting the shared resource to be performed is performed, and the access information creation process for creating the access information of the shared resource is performed.
CDFG生成手段43では、各機能ブロックのCDFG(コントロールデータフローグラフ)を作成するCDFG作成処理が行われる。 The CDFG generation means 43 performs a CDFG creation process for creating a CDFG (control data flow graph) for each functional block.
スケジューリング・ステート割り振り手段44では、ハードウェアに与えられた動作周波数などの制約を満たすために、各CDFGで回路動作を表すCDFGのノードをスケジューリングおよびステート割り振りするスケジューリング・ステート割り振り処理が行われる。 The scheduling state allocating means 44 performs scheduling state allocation processing for scheduling and allocating CDFG nodes representing circuit operations in each CDFG in order to satisfy constraints such as operating frequency given to hardware.
機能ブロックのサイクル精度モデル生成手段45では、各機能ブロックの動作をサイクル精度レベルで検証可能なサイクル精度モデルが汎用プログラミング言語記述として生成される。 The function block cycle accuracy model generation means 45 generates a cycle accuracy model capable of verifying the operation of each function block at the cycle accuracy level as a general-purpose programming language description.
共有リソースのサイクル精度モデル生成手段46では、ハードウェア内部の各機能ブロック、または検証対象のハードウェアに接続された外部のハードウェアなどからアクセスされる共有リソースの動作をサイクル精度レベルで検証可能なサイクル精度モデルが汎用プログラミング言語記述として生成される。 The shared resource cycle accuracy model generation means 46 can verify the operation of the shared resource accessed from each functional block inside the hardware or external hardware connected to the hardware to be verified at the cycle accuracy level. A cycle accuracy model is generated as a general purpose programming language description.
共有リソースのアクセス制御モデル生成手段47では、共有リソースのアクセス情報から、アサーションにより共有リソースへのアクセスが重複されないように制御するアクセス制御モデルが汎用プログラミング言語記述として生成される。
The shared resource access control
なお、本実施形態において、これらの構文解析・字句解析手段41、CDFG生成手段43およびスケジューリング・ステート割り振り手段44による処理は、高位合成技術により行われる。また、本実施形態において、ハードウェアの動作記述は、回路の機能単位でブロックに分割された形で記述可能であり、各機能ブロックを並列に動作させることを指定可能とする。さらに、本実施形態において、機能ブロックのサイクル精度モデル、共有リソースのサイクル精度モデルおよび共有リソースのアクセス制御モデルは、汎用プログラミング言語であるC言語で記述されるものとするが、他の言語でも同様に記述することができる。また、本実施形態において、機能ブロックのサイクル精度モデルは、ハードウェアの動作記述からCDFGが生成され、ハードウェアに要求される動作周波数でCDFGがスケジューリングされてステート毎に割り振られ、ステート毎にハードウェアの動作モデル(サイクル精度モデル)が汎用プログラミング言語で表現した記述として生成される。このサイクル精度モデルは、CDFGに含まれるノードの動作情報を用いて各ノードの動作モデルが生成され、ノードの接続情報を用いて各ノードの動作モデルを計算する際の順序付けが行われることによって、各ステートでシミュレーション可能なモデルとして生成される。 In the present embodiment, the processing by the syntax analysis / lexical analysis means 41, the CDFG generation means 43, and the scheduling / state allocation means 44 is performed by a high-level synthesis technique. Further, in the present embodiment, the hardware operation description can be described in a form divided into blocks in units of circuit functions, and it is possible to specify that each function block is operated in parallel. Furthermore, in this embodiment, the cycle accuracy model of the functional block, the cycle accuracy model of the shared resource, and the access control model of the shared resource are described in C language, which is a general-purpose programming language, but the same applies to other languages. Can be described in In the present embodiment, the cycle accuracy model of the functional block is generated by generating a CDFG from the hardware operation description, scheduling the CDFG at the operation frequency required for the hardware, and allocating the CDFG for each state. A wear behavior model (cycle accuracy model) is generated as a description expressed in a general-purpose programming language. In this cycle accuracy model, an operation model of each node is generated using the operation information of the node included in the CDFG, and an ordering is performed when calculating the operation model of each node using the connection information of the node. It is generated as a model that can be simulated in each state.
ハードウェア内部の各機能ブロック、または検証対象のハードウェアに接続された外部のハードウェアなどからアクセスされる共有リソースとしては、LSI内部に実装される組み込みメモリ、またはフリップフロップにより構成されるレジスタなどが挙げられる。 Shared resources accessed from each functional block in the hardware or external hardware connected to the hardware to be verified include embedded memory mounted in the LSI or a register configured by a flip-flop. Is mentioned.
図2は、並列動作する複数の機能ブロックから共有リソースにデータを書き込む動作を表すハードウェア動作記述例を示す図である。 FIG. 2 is a diagram illustrating a hardware operation description example representing an operation of writing data to a shared resource from a plurality of functional blocks operating in parallel.
図2に示すように、動作記述において、“#pragma parallel”は、その後に続く“{ }”で区切られた動作記述を1つの機能ブロックとして高位合成することを高位合成プログラムに指示するための手段とする。 As shown in FIG. 2, in the behavioral description, “#pragma parallel” is used to instruct the high-level synthesis program to perform high-level synthesis of the behavioral description separated by “{}” as one functional block. Means.
また、“int array[2]”は、C言語のデータ型“int”で表され、要素数が2個の共有リソースを宣言している。この動作記述において、1つ目の“{ }”で区切られた機能ブロックをブロックA、2つ目の“{ }”で区切られた機能ブロックをブロックBとする。ブロックAでは、共有リソース“array”にデータを書き込む動作が2回行われる。また、ブロックBでは、共有リソース“array”にデータを書き込む動作が1回行われる。 Further, “int array [2]” is represented by a C data type “int”, and declares a shared resource having two elements. In this behavioral description, the first functional block delimited by “{}” is block A, and the second functional block delimited by “{}” is block B. In block A, the operation of writing data to the shared resource “array” is performed twice. In block B, the operation of writing data to the shared resource “array” is performed once.
上記構成により、以下に、本実施形態のハードウェア検証プログラミング記述生成方法およびハードウェア検証プログラミング記述生成プログラム4の処理手順について説明する。
The hardware verification programming description generation method and the processing procedure of the hardware verification programming
図3は、本実施形態のハードウェア検証プログラミング記述生成方法およびハードウェア検証プログラミング記述生成プログラム4の処理手順を示すフローチャートである。
FIG. 3 is a flowchart showing a processing procedure of the hardware verification programming description generation method and the hardware verification programming
まず、ステップS1では、ハードウェアの回路構造に関する情報が含まれず、処理動作のみが記述されたハードウェアの動作記述51が、構文解析・字句解析手段41によって、構文解析・字句解析処理されてハードウェアの動作情報(加算および減算などの演算情報や並列動作情報など)を得る。
First, in step S1, the
続いて、ステップS2で、ブロック分割・共有リソース抽出・アクセス情報作成手段42によって、解析して得られたハードウェアの動作情報、例えば並列動作情報から、ハードウェアが並列動作する機能ブロック毎に分割処理される。さらに、ブロック分割・共有リソース抽出・アクセス情報作成手段42によって、分割された機能ブロック毎に、組み込みメモリやレジスタなどの共有リソースへのデータ書き込み動作、または共有リソースからのデータ読み出し動作があるか否かが判定されて、共有リソースが抽出されると共に共有リソースへのアクセス情報が作成される。 Subsequently, in step S2, the block division / shared resource extraction / access information creation means 42 divides the hardware operation information obtained by analysis, eg, parallel operation information, into functional blocks on which the hardware operates in parallel. It is processed. Furthermore, whether or not there is a data write operation to a shared resource such as an embedded memory or a register or a data read operation from a shared resource for each of the divided functional blocks by the block division / shared resource extraction / access information creation means 42 Whether the shared resource is extracted and access information to the shared resource is created.
図2に示すハードウェアの動作記述では、機能ブロックAと機能ブロックBの双方からリソース“array”へのデータ書き込み動作が行われるため、“array”が共有リソースとして抽出される。この抽出された共有リソースについて、データの型などを含む共有リソースデータベース、および機能ブロックから共有リソースへのアクセス情報が作成される。 In the hardware operation description shown in FIG. 2, since data write operation to the resource “array” is performed from both the function block A and the function block B, “array” is extracted as a shared resource. For this extracted shared resource, a shared resource database including the data type and access information from the functional block to the shared resource are created.
さらに、ステップS3では、ステップS2で分割された機能ブロックであるか(ブロックAかブロックBか)、共有リソースデータベースであるか、または、共有リソースのアクセス情報であるかどうかが判断される。 Furthermore, in step S3, it is determined whether the functional block is divided in step S2 (block A or block B), a shared resource database, or shared resource access information.
次に、ステップS4では、CDFG生成手段43によって、ブロックAかブロックBかの機能ブロック毎にCDFGが生成される。CDFGとは、ハードウェアの動作がノードとノード間を接続する枝とを用いて表現されたものである。ノードはハードウェア中で動作する演算処理などを示し、ノード間の枝はデータの流れを示している。あるノードから出力されたデータは、そのノードに接続されている枝を通り、接続先のノードの入力として用いられる。
Next, in step S <b> 4, the
その後、ステップS5では、ステップS4で生成されたCDFGがハードウェアに制約として与えられたクロック周期などで動作可能なように、スケジューリング・ステート割り振り手段44によってスケジューリング・ステート割り振り処理が行われる。
After that, in step S5, scheduling state allocation processing is performed by the scheduling
図2および図3に示す事例では、ステップS5でスケジューリング・ステート割り振りされた各機能ブロック(ブロックAかブロックBか)のCDFGとして、機能ブロックAのCDFG52Aおよび機能ブロックBのCDFG52Bが得られる。
In the example shown in FIGS. 2 and 3, the
さらに、ステップS6では、ステップS5で生成されたスケジューリング・ステート割り振り後の機能ブロックAのCDFG52Aおよび機能ブロックBのCDFG52Bを用いて、機能ブロックのサイクル精度モデル生成手段45によって、各機能ブロックのサイクル精度モデルがそれぞれ生成される。
Further, in step S6, the cycle accuracy of each functional block is generated by the cycle accuracy model generation means 45 of the functional block using the
図2および図3に示す事例では、各機能ブロックのサイクル精度モデルとして、ブロックAのサイクル精度モデル53AおよびブロックBのサイクル精度モデル53Bがそれぞれ得られる。機能ブロックのサイクル精度モデルは、任意のステートにおけるブロックへの入力データを用いて、そのステートにおける出力データを求める計算式として構成される。
2 and 3, the
次に、ステップS7では、ステップS2の共有リソース抽出・アクセス情報作成処理により得られた共有リソースデータベース54と共有リソースアクセス情報56とを用いて、共有リソースのサイクル精度モデル生成手段46によって、共有リソースのサイクル精度モデル55が生成される。共有リソースのサイクル精度モデルは、任意のクロックサイクルにおける共有リソースへの入力データから、その共有リソースに保持されるデータを更新する計算式として構成される。
Next, in step S7, the shared resource cycle accuracy
次に、ステップS8では、ステップS2の共有リソースのアクセス情報作成処理により作成された共有リソースアクセス情報56を用いて、共有リソースのアクセス制御モデル生成手段47によって、共有リソースのアクセス制御モデル57が生成される。
Next, in step S8, the shared resource access control
要するに、本実施形態のハードウェア検証用プログラミング記述生成方法は、ハードウェアの構造に関する情報は含まれず、処理動作のみが記述されたハードウェアの動作記述から構文および字句を解析処理する構文解析・字句解析ステップ(S1)と、ハードウェアを機能ブロックに分割し、分割した複数の機能ブロックからアクセスされる共有リソースを抽出して、共有リソースのアクセス情報を作成するブロック分割・共有リソース抽出・アクセス情報作成ステップ(S2)と、複数の機能ブロックの各CDFGをそれぞれ作成するCDFG生成ステップ(S4)と、各CDFGで回路動作を表すノードをスケジューリングおよびステート割り振りするスケジューリング・ステート割り振りステップ(S5)と、各機能ブロックの各CDFGから、各機能ブロックの動作をサイクル精度レベルで検証可能なサイクルク精度モデルを生成する機能ブロックのサイクル精度モデル生成ステップ(S6)と、共有リソースデータベース54から、共有リソースの動作をサイクル精度レベルで検証可能なサイクル精度モデルを生成する共有リソースのサイクル精度モデル生成ステップ(S7)と 共有リソースのアクセス情報から、アサーションにより共有リソースへのアクセスが重複されないように制御するアクセス制御モデルを生成する共有リソースのアクセス制御モデル生成ステップ(S8)とを有している。
In short, the hardware verification programming description generation method of this embodiment does not include information on the hardware structure, and the syntax analysis and lexical analysis processing is performed on the syntax and lexical from the hardware operation description in which only the processing operation is described. Analyzing step (S1), dividing the hardware into functional blocks, extracting shared resources accessed from the plurality of divided functional blocks, and creating shared resource access information Block shared / shared resource extraction / access information A creation step (S2), a CDFG generation step (S4) for creating each CDFG of a plurality of functional blocks, a scheduling state allocation step (S5) for scheduling and state allocation of nodes representing circuit operations in each CDFG, Each C of each functional block The cycle accuracy model generation step (S6) of the functional block that generates a cycle accuracy model that can verify the operation of each functional block at the cycle accuracy level from the FG, and the operation of the shared resource from the shared
以上のようにして生成された機能ブロック毎のサイクル精度モデル53Aおよび53B、共有リソースのサイクル精度モデル55、および共有リソースのアクセス制御モデル57は、汎用プログラミング言語で記述されており、これらの記述をコンパイルして作成されたオブジェクトをリンクすることによって、アサーションを用いたハードウェア検証用プログラムが得られる。このハードウェア検証用プログラムをコンピュータシステム100上で実行することによって、ハードウェアがサイクル精度で要求された仕様を満たしているか否かを検証することができる。
The
以下に、具体的な回路例を用いて、本実施形態のハードウェア検証プログラミング記述生成方法およびハードウェア検証プログラミング記述生成プログラム4の処理手順についてさらに詳細に説明する。
Hereinafter, the hardware verification programming description generation method and the processing procedure of the hardware verification programming
図4は、図2に示すハードウェアの動作記述を図3に示すフローチャートの処理にしたがって高位合成して得られる回路構成例を示すブロック図である。 FIG. 4 is a block diagram showing a circuit configuration example obtained by high-level synthesis of the hardware operation description shown in FIG. 2 according to the processing of the flowchart shown in FIG.
図4に示す回路構成は、ブロックAとブロックBの2つの機能ブロック、および1つの共有リソース(array)から構成されている。2つの機能ブロックAおよびBからは、共有リソースarrayに対してデータ書き込み動作が行われる。書き込み動作をハードウェアとして実現するため、各機能ブロックと共有リソースとの間で、書き込み動作を実行するタイミングを示す信号、書き込むアドレスを示す信号、および書き込みデータを示す信号という3種類の信号が用いられている。 The circuit configuration shown in FIG. 4 includes two functional blocks, block A and block B, and one shared resource (array). From the two functional blocks A and B, a data write operation is performed on the shared resource array. In order to implement the write operation as hardware, three types of signals are used between each functional block and the shared resource: a signal indicating the timing for executing the write operation, a signal indicating the write address, and a signal indicating the write data. It has been.
図4に示す回路構成では、ブロックAから共有リソースarrayへデータを書き込むときの信号として、書き込み動作を実行するタイミングを示す信号“enA”、データが書き込まれるアドレスを示す信号“addrA”、および書き込みデータを示す信号“dataA”が用いられる。これと同様に、ブロックBから共有リソースarrayにデータを書き込むときの信号として、書き込み動作を実行するタイミングを示す信号“enB”、データが書き込まれるアドレスを示す信号“addrB”、および書き込みデータを示す信号“dataB”が用いられる。書き込みタイミングを示す信号“enA”および“enB”はハイアクティブとされ、信号が“1”の状態のときに書き込み動作が行われるものとする。 In the circuit configuration shown in FIG. 4, as a signal for writing data from the block A to the shared resource array, a signal “enA” indicating the timing for executing the write operation, a signal “addrA” indicating the address at which the data is written, and the write A signal “dataA” indicating data is used. Similarly, as a signal for writing data from the block B to the shared resource array, a signal “enB” indicating the timing for executing the write operation, a signal “addrB” indicating the address to which the data is written, and the write data are indicated. The signal “dataB” is used. The signals “enA” and “enB” indicating the write timing are set to high active, and the write operation is performed when the signal is “1”.
図5は、図4に示すブロックAについて、図2に示すハードウェアの動作記述を図3に示すフローチャートにしたがって処理して、ブロックAのスケジューリング・ステート割り振り処理後に得られるCDFGを示す図である。 FIG. 5 is a diagram showing a CDFG obtained after processing of scheduling and state allocation of block A by processing the hardware operation description shown in FIG. 2 according to the flowchart shown in FIG. 3 for block A shown in FIG. .
図5に示すように、ブロックAでは、共有リソースに対してデータを書き込む動作が2回行われ、1回目はデータ“1”が書き込まれ、2回目はデータ“2”が書き込まれる。 As shown in FIG. 5, in block A, the operation of writing data to the shared resource is performed twice, data “1” is written first, and data “2” is written second.
即ち、ブロックAのCDFGでは、ステート“State m”においてデータ“1”を作成するノード61があり、これに続くステート“State m+1”では、ノード61で作成されたデータを入力として共有リソースに書き込む動作を示すノード62がある。これと同様に、ステート“State m+1”においてデータ“2”を作成するノード63があり、これに続くステート“State m+2”においては、ノード63で作成されたデータ“2”を入力として共有リソースに書き込む動作を示すノード64がある。
That is, in the CDFG of block A, there is a
図6は、図4に示すブロックBについて、図2に示すハードウェアの動作記述を図3に示すフローチャートにしたがって処理して、ブロックBのスケジューリング・ステート割り振り処理後に得られるCDFGを示す図である。 FIG. 6 is a diagram showing a CDFG obtained after the scheduling and state allocation processing of block B by processing the hardware operation description shown in FIG. 2 according to the flowchart shown in FIG. 3 for block B shown in FIG. .
図6に示すように、ブロックBでは、共有リソースに対してデータを書き込む動作が1回行われる。 As shown in FIG. 6, in block B, the operation of writing data to the shared resource is performed once.
即ち、ブロックBのCDFGでは、ステート“State n”においてデータ“x”を作成するノード71、およびデータ“y”を作成するノード72がある。これに続くステート“State n+1”において、ステート“State n”のノード71で作成されたデータ“x”と、ノード72で作成されたデータ“y”とを入力として、両データ“x”および“y”を加算する動作を示すノード73がある。これに続くステート“State n+2”において、ノード73で演算(加算)された結果データ(x+y)を入力データとして共有リソースに書き込む動作を示すノード74がある。
That is, in the CDFG of block B, there are a
図7は、図4のブロックAについて、図5のブロックAのCDFGから生成されたサイクル精度モデルをC言語で記述した事例を示す図である。 FIG. 7 is a diagram illustrating an example in which the cycle accuracy model generated from the CDFG of the block A of FIG. 5 is described in the C language for the block A of FIG.
図7では、図5に示すステート“State m+1”のサイクル精度モデルをC言語の関数“state_m1”とし、ステート“State m+2”のサイクル精度モデルを関数“state_m2”とする。なお、図4に示す回路においてブロックAから共有リソースに対して書き込み動作を実行するタイミングを示す信号“enA”は、図7に示すサイクル精度モデルにおいて“eA”というC言語の変数として表現されている。また、図4に示す回路においてデータが書き込まれるアドレスを示す信号“addrA”は、図7に示すサイクル精度モデルにおいて“aA”というC言語の変数として表現されている。さらに、図4に示す回路において書き込みデータを示す信号“dataA”は、図7に示すサイクル精度モデルにおいて“dA”というC言語の変数として表現されている。 In FIG. 7, the cycle accuracy model of the state “State m + 1” illustrated in FIG. 5 is a C-language function “state_m1”, and the cycle accuracy model of the state “State m + 2” is a function “state_m2”. In the circuit shown in FIG. 4, the signal “enA” indicating the timing of executing the write operation from the block A to the shared resource is expressed as a C language variable “eA” in the cycle accuracy model shown in FIG. Yes. Further, the signal “addrA” indicating the address to which data is written in the circuit shown in FIG. 4 is expressed as a C language variable “aA” in the cycle accuracy model shown in FIG. Further, the signal “dataA” indicating write data in the circuit shown in FIG. 4 is expressed as a C language variable “dA” in the cycle accuracy model shown in FIG.
図7に示すサイクル精度モデルの関数“state_m1”では、共有リソースのアドレス“0”にデータ“1”を書き込むため、変数“eA”に値“1”が、また、変数“aA”に値“0”が、さらに、変数“dA”に値“1”が、それぞれ代入される。また、関数“state_m2”では、共有リソースのアドレス“1”にデータ“2”を書き込むため、変数“eA”に値“1”が、また、変数“aA”に値“1”が、さらに、変数“dA”に値“2”が、それぞれ代入される。 In the function “state_m1” of the cycle accuracy model shown in FIG. 7, since the data “1” is written to the shared resource address “0”, the value “1” is written in the variable “eA” and the value “1” is written in the variable “aA”. “0” is further substituted for the variable “dA” with the value “1”. In the function “state_m2”, since the data “2” is written to the shared resource address “1”, the value “1” is stored in the variable “eA”, the value “1” is stored in the variable “aA”, and The value “2” is assigned to the variable “dA”.
図8は、図4のブロックBについて、図6のブロックBのCDFGから生成されたサイクル精度モデルをC言語で記述した事例を示す図である。 FIG. 8 is a diagram illustrating an example in which the cycle accuracy model generated from the CDFG of the block B of FIG. 6 is described in the C language for the block B of FIG.
図8では、図7に示すステート“State n+1”のサイクル精度モデルをC言語の関数“State_n1”とし、ステート“State n+2”のサイクル精度モデルを関数“State_n2”とする。なお、図4に示す回路においてブロックBから共有リソースに対して書き込み動作を実行するタイミングを示す信号“enB”は、図8に示すサイクル精度モデルにおいて“eB”というC言語の変数として表現されている。また、図4に示す回路においてデータが書き込まれるアドレスを示す信号“addrB”は、図8に示すサイクル精度モデルにおいて“aB”というC言語の変数として表現されている。さらに、図4に示す回路において書き込みデータを示す信号“dataB”は、図8に示すサイクル精度モデルにおいて“dB”というC言語の変数として表現されている。 In FIG. 8, the cycle accuracy model of the state “State n + 1” shown in FIG. 7 is a C-language function “State_n1”, and the cycle accuracy model of the state “State n + 2” is a function “State_n2”. In the circuit shown in FIG. 4, the signal “enB” indicating the timing of executing the write operation from the block B to the shared resource is expressed as a C language variable “eB” in the cycle accuracy model shown in FIG. Yes. Further, the signal “addrB” indicating the address to which data is written in the circuit shown in FIG. 4 is expressed as a C language variable “aB” in the cycle accuracy model shown in FIG. Further, the signal “dataB” indicating the write data in the circuit shown in FIG. 4 is expressed as a C language variable “dB” in the cycle accuracy model shown in FIG.
図8に示すサイクル精度モデルの関数“state_n1”では、データ“x”とデータ“y”が加算されて変数“z”に代入される。また、関数“state_n2”では、共有リソースのアドレス“0”にデータ“z”を書き込むため、変数“eB”に値“1”が、また、変数“aB”に値“0”が、さらに、変数“dB”に変数“z”が、それぞれ代入される。 In the function “state_n1” of the cycle accuracy model shown in FIG. 8, the data “x” and the data “y” are added and substituted into the variable “z”. In the function “state_n2”, the data “z” is written to the shared resource address “0”. Therefore, the value “1” is stored in the variable “eB”, the value “0” is stored in the variable “aB”, and The variable “z” is assigned to the variable “dB”.
図9は、図4に示す回路について、共有リソースへのアクセスタイミングを示す各信号のタイミングチャートである。 FIG. 9 is a timing chart of each signal indicating the access timing to the shared resource for the circuit shown in FIG.
図9に示すように、図4に示す回路において、例えばある任意のクロックサイクル“t”で、ブロックAのCDFGのステートが図5に示すステート“State m+1”であり、かつ、ブロックBのCDFGのステートが図6に示すステート“State n+1”であるとすると、これに続くクロックサイクル“t+1”ではブロックAのCDFGのステートは“State m+2”となり、ブロックBのCDFGのステートは“State n+2”となる。 As shown in FIG. 9, in the circuit shown in FIG. 4, for example, in a certain arbitrary clock cycle “t”, the state of the CDFG of the block A is the state “State m + 1” shown in FIG. 6 is the state “State n + 1” shown in FIG. 6. In the subsequent clock cycle “t + 1”, the state of the CDFG of the block A is “State m + 2”, and the state of the CDFG of the block B is “State n + 2”. It becomes.
ブロックAでは、ステート“State m+1”およびステート“State m+2”において共有リソースにデータを書き込むため、図9のタイミングチャートに示すように信号“enA”はクロックサイクル“t”および“t+1”で“1”の状態になっている。 In the block A, data is written to the shared resource in the state “State m + 1” and the state “State m + 2”, so that the signal “enA” is “1” in the clock cycles “t” and “t + 1” as shown in the timing chart of FIG. "".
一方、ブロックBではステート“State n+2”において共有リソースにデータを書き込むため、図9のタイミングチャートに示すように信号“enB”はクロックサイクル“t+1”で“1”の状態になっている。 On the other hand, since data is written to the shared resource in the state “State n + 2” in the block B, the signal “enB” is in the “1” state in the clock cycle “t + 1” as shown in the timing chart of FIG.
これによって、クロックサイクル“t+1”において、ブロックAから共有リソースに対する書き込み動作と、ブロックBから共有リソースに対する書き込み動作とが同時に実行されることになる。 As a result, in the clock cycle “t + 1”, the write operation from the block A to the shared resource and the write operation from the block B to the shared resource are executed simultaneously.
図10は、図4に示す共有リソースについて、図2に示すハードウェアの動作記述を図3に示すフローチャートの処理に従って処理して得られる共有リソースデータベースを示す図である。 10 is a diagram showing a shared resource database obtained by processing the hardware operation description shown in FIG. 2 according to the process of the flowchart shown in FIG. 3 for the shared resource shown in FIG.
図10に示すように、共有リソース“array”のデータベースとして、リソース名が“array”、データの型が“int”、要素数が“2”というデータが格納されている。 As shown in FIG. 10, data having a resource name “array”, a data type “int”, and an element number “2” is stored as a database of the shared resource “array”.
図11は、図4に示す共有リソースについて、図2に示すハードウェアの動作記述を図3に示すフローチャートの処理にしたがって処理して得られる共有リソースデータベースとアクセス情報から生成された共有リソースのサイクル精度モデルを示す図である。 11 shows a cycle of the shared resource generated from the shared resource database obtained by processing the hardware operation description shown in FIG. 2 according to the processing of the flowchart shown in FIG. 3 and the access information for the shared resource shown in FIG. It is a figure which shows an accuracy model.
図11に示す共有リソースのサイクル精度モデルは、共有リソースの記憶領域がC言語の配列“storage_array[2]”として表現されている。この共有リソースには、ブロックAとブロックBからデータ書き込み動作が行われる。図11に示す共有リソースのサイクル精度モデルでは、ブロックAからの書き込みタイミングを示す信号はC言語の変数“eA”と表現されており、ブロックBからの書き込みタイミングを示す信号はC言語の変数“eB”と表現されている。 In the cycle accuracy model of the shared resource shown in FIG. 11, the storage area of the shared resource is expressed as a C language array “storage_array [2]”. A data write operation is performed from block A and block B to this shared resource. In the shared resource cycle accuracy model shown in FIG. 11, a signal indicating the write timing from the block A is expressed as a C language variable “eA”, and a signal indicating the write timing from the block B is a C language variable “eA”. eB ".
図7に示すブロックAのサイクル精度モデルを用いて説明したように、“eA”が“1”のときにブロックAからアドレス“aA”にデータ“dA”が書き込まれる。また、図8に示すブロックBのサイクル精度モデルを用いて説明したように、“eB”が“1”のときにブロックBからアドレス“aB”にデータ“dB”が書き込まれる。 As described using the cycle accuracy model of block A shown in FIG. 7, when “eA” is “1”, data “dA” is written from block A to address “aA”. As described with reference to the cycle accuracy model of block B shown in FIG. 8, when “eB” is “1”, data “dB” is written from block B to address “aB”.
図11に示す共有リソースのサイクル精度モデルの事例では、ブロックAからの書き込みがブロックBからの書き込みよりも優先されるものとする。この優先順位を決定する方法としては、例えば、ハードウェアの制約として設計者が指定する方法、またはブロック分割処理で生成されたブロックの順番をそのまま優先順位とする方法などが考えられる。本発明において、この優先順位の決定は任意である。 In the case of the shared resource cycle accuracy model shown in FIG. 11, it is assumed that writing from block A has priority over writing from block B. As a method for determining the priority order, for example, a method in which a designer designates it as a hardware constraint, or a method in which the order of blocks generated by block division processing is used as it is as a priority order may be considered. In the present invention, the determination of the priority order is arbitrary.
図11に示す共有リソースのサイクル精度モデルにおいて、図9に示すタイミングチャートのクロックサイクル“t”では、ブロックAからの書き込みタイミングを示す“eA”が“1”であるため、配列“storage_array[2]”のアドレス“aA”に示される番地にデータ“dA”が代入される。 In the cycle accuracy model of the shared resource shown in FIG. 11, since “eA” indicating the write timing from the block A is “1” in the clock cycle “t” in the timing chart shown in FIG. 9, the array “storage_array [2] The data “dA” is assigned to the address indicated by the address “aA”.
次に、クロックサイクル“t+1”では、ブロックAからの書き込みタイミングを示す“eA”が“1”であるため、クロックサイクル“t”のときと同様に代入計算が行われる。クロックサイクル“t+1”のときは、ブロックBからの書き込みタイミングを示す“eB”も“1”であるが、書き込みの優先順位からブロックAが優先され、ブロックBからの書き込みは実行されない。よって、ブロックBでは正しく動作が実行されないこととなり、ハードウェアの誤動作の原因となる。 Next, in the clock cycle “t + 1”, since “eA” indicating the write timing from the block A is “1”, the substitution calculation is performed as in the clock cycle “t”. In the clock cycle “t + 1”, “eB” indicating the write timing from the block B is also “1”, but the block A is given priority from the write priority, and the write from the block B is not executed. Therefore, the operation is not executed correctly in the block B, causing a hardware malfunction.
本発明では、このように、ハードウェアの誤動作の原因となる共有リソースへのアクセス動作について、正しい動作が成立する条件を満たすか否かをアサーションによりチェックするため、共有リソースのアクセス情報から汎用プログラミング言語記述により共有リソースのアクセス制御モデルを生成する。 In the present invention, since the access operation to the shared resource that causes the hardware malfunction is checked by the assertion whether the condition for satisfying the correct operation is satisfied, the general-purpose programming is performed from the access information of the shared resource. A shared resource access control model is generated by the language description.
図12は、図4に示す共有リソースarrayについて、図2に示すハードウェアの動作記述を図3に示すフローチャートの処理にしたがって得られる共有リソースのアクセス情報を示す図である。 12 is a diagram showing access information of the shared resource obtained from the hardware resource description shown in FIG. 2 according to the process of the flowchart shown in FIG. 3 for the shared resource array shown in FIG.
図12に示すように、共有リソースのアクセス情報において、共有リソースarrayへはブロックAおよびブロックBからアクセスが行われ、各ブロックからのアクセス方向(アクセス内容)は“書き込み”であることが示されている。各ブロックからのアクセスに使用される信号は、図4の回路構成例に示すように、ブロックAからのアクセスには“enA”、“addrA”および“dataA”が用いられ、ブロックBからのアクセスには“enB”、“addrB”および“dataB”が用いられる。 As shown in FIG. 12, the shared resource access information indicates that the shared resource array is accessed from the block A and the block B, and the access direction (access content) from each block is “write”. ing. As shown in the circuit configuration example of FIG. 4, “enA”, “addrA”, and “dataA” are used for the access from each block, and the access from the block B is used. “EnB”, “addrB”, and “dataB” are used for.
即ち、共有リソースのアクセス情報としては、共有リソースにアクセスするブロック名、データ書き込みおよび読み出しの少なくともいずれかのアクセスの方向、および、アクセスに使用する信号として、ブロック名のブロックと共有リソース間でアクセス動作を実行するタイミングを示す信号“enA”および“enB”、アクセスするアドレスを示す信号“addrA”および“addrB”、および書き込みデータ“dataA” および“dataB”である
本実施形態では、図3に示すフローチャートにおけるステップS2のブロック分割・共有リソースの抽出処理により得られる共有リソースアクセス情報を用いて、アサーションにより共有リソースへのアクセスが重複されないように制御する共有リソースのアクセス制御モデルが生成される。
That is, as access information of a shared resource, a block name that accesses the shared resource, an access direction of at least one of data writing and reading, and a signal used for access are accessed between the block of the block name and the shared resource. Signals “enA” and “enB” indicating the timing for executing the operation, signals “addrA” and “addrB” indicating the addresses to be accessed, and write data “dataA” and “dataB” are shown in FIG. The shared resource access control model for controlling the access to the shared resource by the assertion so as not to be duplicated using the shared resource access information obtained by the block division / shared resource extraction process of step S2 in the flowchart shown in the flowchart shown in FIG. There is generated.
図2に示すハードウェアの動作記述の事例では、図12の共有リソースアクセス情報に示すように、共有リソースarrayに対してブロックAとブロックBから書き込みアクセスが行われる。前述したように、ブロックAからのアクセスには“enA”、“addrA”および“dataA”が用いられ、ブロックBからのアクセスには“enB”、“addrB”および“dataB”が用いられる。これらの共有リソースアクセス情報を元に、共有リソースarrayのアクセス制御モデルが生成される。 In the case of the hardware operation description shown in FIG. 2, as shown in the shared resource access information of FIG. 12, write access is performed from the block A and the block B to the shared resource array. As described above, “enA”, “addrA”, and “dataA” are used for access from the block A, and “enB”, “addrB”, and “dataB” are used for access from the block B. Based on the shared resource access information, an access control model of the shared resource array is generated.
この共有リソースのアクセス制御モデルにより、例えばブロックAおよびBからのアクセスタイミングを示す各信号“enA”および“enB”を汎用プログラミング言語によりそれぞれ表現した各変数“eA”および“eB”を、“eA+eB”として加算し、その加算結果“eA+eB”をアサーション条件としてハードウェアが正しい条件で動作しているか否かを判断するように制御することができる。この一例を図13および図14を用いて詳細に説明する。 With this shared resource access control model, for example, the variables “eA” and “eB” representing the signals “enA” and “enB” indicating the access timing from the blocks A and B, respectively, are expressed by “eA + eB”. And the addition result “eA + eB” can be used as an assertion condition to control whether the hardware is operating under the correct condition. An example of this will be described in detail with reference to FIGS.
図13および図14はそれぞれ、図4に示す共有リソースへのアクセス動作について、正しい動作が成立する条件をアサーションを用いて表現した共有リソースの制御モデルをC言語により記述した事例である。 FIG. 13 and FIG. 14 are examples in which a shared resource control model in which conditions for the correct operation are expressed using assertions is described in C language for the access operation to the shared resource shown in FIG.
図13の共有リソースのアクセス制御モデルの事例は、上記加算結果“eA+eB”が“1”以下であるという条件をアサーション条件とする場合である。 An example of the access control model of the shared resource in FIG. 13 is a case where the condition that the addition result “eA + eB” is “1” or less is an assertion condition.
即ち、ブロックAからの書き込みタイミングを示すC言語の変数“eA”と、ブロックBからの書き込みタイミングを示すC言語の変数“eB”を用いて、C言語の標準ライブラリ関数“assert”によりハードウェアの動作が正しいか否かがチェックされる。ブロックAとブロックBとから同一のクロックサイクルで書き込み動作が実行されない、即ち、変数“eA”と“eB”が同一のクロックサイクルで“1”にならないという条件がハードウェアの正しい動作条件であるとすれば、条件に合致するためには、変数“eA”と“eB”を加算して“1”以下であればよい。したがって、図13に示す共有リソースのアクセス制御モデルでは、“(eA+eB)<=1”という条件がアサーション条件としてチェックされる。 That is, by using a C language variable “eA” indicating the write timing from the block A and a C language variable “eB” indicating the write timing from the block B, the C language standard library function “assert” is used to implement the hardware. It is checked whether the operation is correct. The write operation is not executed from the block A and the block B in the same clock cycle, that is, the condition that the variables “eA” and “eB” do not become “1” in the same clock cycle is the correct operation condition of the hardware. Then, in order to meet the condition, the variables “eA” and “eB” may be added to be “1” or less. Therefore, in the shared resource access control model shown in FIG. 13, the condition “(eA + eB) <= 1” is checked as the assertion condition.
図14の共有リソースのアクセス制御モデルの事例は、上記加算結果“eA+eB”が“1”よりも大きい場合に、ハードウェアの正しい動作条件に合致しないものとしてエラー情報を報知手段に出力して、ハードウェアの動作が正しく実行されていないことを報知手段によりユーザに報知する場合である。 In the case of the access control model of the shared resource in FIG. 14, when the addition result “eA + eB” is larger than “1”, error information is output to the notification unit as not matching the correct operating condition of the hardware, This is a case where the notification means notifies the user that the hardware operation is not being executed correctly.
即ち、図13の場合と同様に、ブロックAからの書き込みタイミングを示すC言語の変数“eA”と、ブロックBからの書き込みタイミングを示すC言語の変数“eB”を用いて、C言語の“if”文によりハードウェアの動作が正しいか否かがチェックされる。図14に示す共有リソースのアクセス制御モデルでは、“eA”と“eB”を加算し、その加算結果が”1”よりも大きい場合にはハードウェアの正しい動作の条件に合致しないものとして、コンピュータシステム100における報知手段としてのモニタ装置1の標準出力にエラー情報を表示させ、ハードウェアの動作が正しく実行されていないことを設計者(ユーザ)に通知する。なお、報知手段としてはモニタ装置1に限らず、エラー情報を音声で警報報知する報知手段であってもよいし、エラー情報をプリントアウトするプリンタであってもよい。
That is, as in the case of FIG. 13, the C language variable “eA” indicating the write timing from the block A and the C language variable “eB” indicating the write timing from the block B are used. The “if” statement checks whether the hardware is operating correctly. In the shared resource access control model shown in FIG. 14, “eA” and “eB” are added, and if the addition result is larger than “1”, it is assumed that the computer does not meet the correct operation conditions of the hardware. Error information is displayed on the standard output of the
ところで、共有リソースとして実装されるLSIの組み込みメモリなどは、マルチポートメモリとして実装される場合がある。マルチポートメモリとは、アドレス線、データ線および制御線が複数設けられ、同一クロックサイクルで複数のアクセスに対応可能なメモリのことである。しかしながら、一般的には、同一アドレスに対して同一クロックサイクルに複数の書き込みアクセスが行われた場合には、メモリの動作が不定になる。例えば、2つの書き込みアクセスが同一アドレスに同一クロックサイクルで発生した場合、どちらの値が書き込まれたかが分からず、ハードウェアの誤動作の原因となる。 Incidentally, an LSI embedded memory or the like mounted as a shared resource may be mounted as a multiport memory. A multi-port memory is a memory that is provided with a plurality of address lines, data lines, and control lines and that can handle a plurality of accesses in the same clock cycle. However, generally, when a plurality of write accesses are made to the same address in the same clock cycle, the operation of the memory becomes unstable. For example, when two write accesses occur at the same address in the same clock cycle, it is not known which value has been written, causing a hardware malfunction.
本発明では、このようにマルチポートメモリとして実装された共有リソースへのアクセス動作についても、正しい動作が成立する条件を満たすか否かをアサーションによりチェックするため、共有リソースのアクセス情報から汎用プログラミング言語記述により共有リソースのアクセス制御モデルを生成する。 In the present invention, since an access operation to a shared resource implemented as a multi-port memory is checked by assertion as to whether or not a condition for satisfying the correct operation is satisfied, a general-purpose programming language is used from the access information of the shared resource. A shared resource access control model is generated by description.
この共有リソースのアクセス制御モデルにより、例えばブロックAおよびBからのアクセスタイミングを示す各信号“enA”および“enB”を汎用プログラミング言語によりそれぞれ表現した各変数“eA”および“eB”と、共有リソースにアクセスされるアドレスを比較した結果とをアサーション条件として、ハードウェアが正しい条件で動作しているか否かを判断するように制御することができる。この一例を図15および図16を用いて詳細に説明する。 According to this shared resource access control model, for example, each variable “eA” and “eB” representing each signal “enA” and “enB” indicating the access timing from the blocks A and B in a general-purpose programming language, and the shared resource It is possible to control whether the hardware is operating under the correct condition, using the result of comparing the addresses accessed as an assertion condition. An example of this will be described in detail with reference to FIGS.
図15は、マルチポートメモリとして実装された共有リソースへのアクセス動作について、正しい動作が成立する条件をアサーションを用いて表現した共有リソースの制御モデルをC言語により記述した事例を示す図である。 FIG. 15 is a diagram illustrating an example in which a shared resource control model in which a condition for a correct operation is expressed using an assertion is described in C language for an access operation to a shared resource implemented as a multi-port memory.
図15の共有リソースのアクセス制御モデルの事例は、上記各変数“eA”および“eB”が全て”1”でかつ、ブロックAからの書き込みアドレスaAとブロックBからの書き込みアドレスaBを比較した結果が互いに等しいという条件aA=aBが全て成り立つ場合を除くという条件をアサーション条件とする場合である。 The example of the access control model of the shared resource in FIG. 15 is a result of comparison between the write address aA from the block A and the write address aB from the block B when the variables “eA” and “eB” are all “1”. This is a case where the assertion condition is a condition that excludes the case where the conditions aA = aB are all satisfied.
即ち、図2に示すハードウェアの動作記述例では、ブロックAとブロックBから書き込みアクセスが行われる。図15に示す共有リソースの制御モデルでは、図13に示すアサーションに用いられている書き込みタイミングを示すC言語の変数“eA”と“eB”に加えて、ブロックAからの書き込みアドレス“aA”とブロックBからの書き込みアドレス“aB”も条件に加えられている。マルチポートメモリとして実装された共有リソースに対して、同一クロックサイクルで同一アドレスに書き込む動作は正しくない動作であるので、“eA==1”、“eB==1”、“aA==aB”の条件が全て成り立つときが正しくない動作であると言える。言い換えると、“eA==1”、“eB==1”、“aA==aB”の全ての条件が成り立つとき以外は正しい動作である。よって、図15に示す共有リソースのアクセス制御モデルでは、C言語の標準ライブラリ関数“assert”を用いて、“! (eA==1 && eB==1 && aA == aB)”という条件がアサーション条件としてチェックされる。 That is, in the hardware operation description example shown in FIG. In the shared resource control model shown in FIG. 15, in addition to the C language variables “eA” and “eB” indicating the write timing used in the assertion shown in FIG. The write address “aB” from the block B is also added to the condition. Since writing to the same address in the same clock cycle for a shared resource implemented as a multi-port memory is an incorrect operation, “eA == 1”, “eB == 1”, “aA == aB” It can be said that the operation is not correct when all the conditions are satisfied. In other words, the operation is correct except when all the conditions of “eA == 1”, “eB == 1”, and “aA == aB” are satisfied. Therefore, in the shared resource access control model shown in FIG. 15, the condition “! (EA == 1 && eB == 1 && aA == aB)” is asserted using the C standard library function “assert”. Checked as a condition.
図16は、図15の場合と同様に、マルチポートメモリとして実装された共有リソースへのアクセス動作について、正しい動作が成立する条件をアサーションを用いて表現した共有リソースの制御モデルをC言語により記述した他の事例を示す図である。 FIG. 16 describes, in C language, a shared resource control model that uses assertions to express the conditions under which the correct operation is established for the access operation to the shared resource implemented as a multiport memory, as in FIG. It is a figure which shows the other example which performed.
図16の共有リソースのアクセス制御モデルの事例は、上記各変数“eA”および“eB”が全て”1”でかつ、ブロックAからの書き込みアドレスaAとブロックBからの書き込みアドレスaBを比較した結果が互いに等しいという条件が全て成り立つ場合に、ハードウェアの正しい動作条件に合致しないものとしてエラー情報を報知手段に出力して、ハードウェアの動作が正しく実行されていないことがユーザに報知手段により報知される場合である。 An example of the access control model of the shared resource in FIG. 16 is a result of comparison between the write address aA from the block A and the write address aB from the block B, in which the variables “eA” and “eB” are all “1”. When all the conditions that are equal to each other are satisfied, error information is output to the notifying means as not satisfying the correct operation condition of the hardware, and the notifying means is notified to the user that the hardware operation is not correctly executed. This is the case.
即ち、図16に示す共有リソースの制御モデルでは、図15の場合と同様に、マルチポートメモリとして実装された共有リソースに対して、ブロックAからの書き込みタイミングを示すC言語の変数“eA”と書き込みアドレス“aA”、およびブロックBからの書き込みタイミングを示すC言語の変数“eB”と書き込みアドレス“aB”とを用いて、C言語の“if”文によりハードウェアの動作が正しいか否かがチェックされる。図16に示す共有リソースのアクセス制御モデルでは、図15を用いて説明したように、“eA==1”、“eB==1”、“aA==aB”の条件が全て成り立つときにハードウェアの正しい動作条件に合致しないものとして、コンピュータシステム100における報知手段としてのモニタ装置1の標準出力にエラー情報を表示させ、ハードウェアの動作が正しく実行されていないことを設計者(ユーザ)に通知する。なお、報知手段としてはモニタ装置1に限らず、エラー情報を音声で警報報知する報知手段であってもよいし、エラー情報をプリントアウトするプリンタであってもよい。
That is, in the shared resource control model shown in FIG. 16, as in the case of FIG. 15, a C language variable “eA” indicating the write timing from the block A is set for the shared resource implemented as a multi-port memory. Whether or not the hardware operation is correct by the C language “if” statement using the write address “aA”, the C language variable “eB” indicating the write timing from the block B, and the write address “aB” Is checked. In the shared resource access control model shown in FIG. 16, as described with reference to FIG. 15, when all of the conditions of “eA == 1”, “eB == 1”, and “aA == aB” are satisfied, The error information is displayed on the standard output of the
ハードウェアをサイクル精度レベルでシミュレーションする際には、各機能ブロックのサイクル精度モデルおよび共有リソースのサイクル精度モデルを計算した後、図13、図14、図15または図16に示す共有リソースのアクセス制御モデルを計算することによって、アサーションにより共有リソースへのアクセス動作を検証することができる。 When simulating the hardware at the cycle accuracy level, after calculating the cycle accuracy model of each functional block and the cycle accuracy model of the shared resource, access control of the shared resource shown in FIG. 13, FIG. 14, FIG. 15 or FIG. By calculating the model, the access operation to the shared resource can be verified by the assertion.
図17は、図2に示すハードウェアの動作記述において、共有リソースのアクセス動作について、アサーションによる検証を行わないように、ハードウェア設計者が指定する方法の事例を説明するための図である。 FIG. 17 is a diagram for explaining an example of a method in which the hardware designer designates the shared resource access operation so as not to perform verification by assertion in the hardware operation description illustrated in FIG. 2.
共有リソースのアクセス制御モデルが生成されないように制御モデル生成禁止情報を指定可能とする場合、図17に示すように、アクセス制御モデル生成禁止情報として動作記述中に“#pragma no_assertion”が指定されると、それに続いて記述された共有リソースについて、図13〜図16に示すような共有リソースのアクセス制御モデルが生成されず、アサーションのチェックが行われないように設定することができる。これによって、ハードウェアのサイクル精度レベルでのシミュレーションにおいて、不必要な場合に、制御モデルの計算時間を削減することができる。ただし、このような制御モデル生成禁止情報の動作記述中での指定は、ハードウェアの動作において共有リソースに重複したアクセスが発生しないことが数学的に立証されているような場合に用いることが好ましい。 When the control model generation prohibition information can be specified so that the access control model of the shared resource is not generated, “#pragma no_assertion” is specified in the operation description as the access control model generation prohibition information as shown in FIG. For the shared resource described subsequently, it is possible to set so that the access control model of the shared resource as shown in FIGS. 13 to 16 is not generated and the assertion check is not performed. As a result, the calculation time of the control model can be reduced when it is unnecessary in the simulation at the hardware cycle accuracy level. However, it is preferable to use such specification in the operation description of the control model generation prohibition information when it is mathematically proved that duplicate access to the shared resource does not occur in the hardware operation. .
以上により、本実施形態によれば、ハードウェアの動作記述から構文・字句を解析する構文・字句解析手段41と、ハードウェアを機能ブロックに分割し、複数のブロックからアクセスされる共有リソースを抽出して共有リソースアクセス情報を作成するブロック分割・共有リソース抽出・アクセス情報作成手段42と、CDFG生成手段43と、スケジューリング・ステート割り振り手段44と、各機能ブロックの動作をサイクル精度レベルで検証可能なモデルを生成する機能ブロックのサイクル精度モデル生成手段45と、共有リソースの動作をサイクル精度レベルで検証可能なモデルを生成する共有リソースのサイクル精度モデル生成手段46と、共有リソースのアクセス情報から、アサーションにより共有リソースへのアクセスを制御するモデルを生成する共有リソースのサイクル制御モデル生成手段47とによって、サイクル精度レベルでハードウェアの正しい動作が成立する条件をアサーションにより検証可能な動作モデルを汎用プログラミング言語記述として生成することができる。
As described above, according to the present embodiment, the syntax / lexical analysis means 41 that analyzes the syntax / lexical analysis from the behavioral description of the hardware, and the hardware is divided into functional blocks, and shared resources accessed from a plurality of blocks are extracted. Block division / shared resource extraction / access information creation means 42 for creating shared resource access information, CDFG generation means 43, scheduling / state allocation means 44, and the operation of each functional block can be verified at the cycle accuracy level. From the cycle accuracy
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。 As mentioned above, although this invention has been illustrated using preferable embodiment of this invention, this invention should not be limited and limited to this embodiment. It is understood that the scope of the present invention should be construed only by the claims. It is understood that those skilled in the art can implement an equivalent range based on the description of the present invention and the common general technical knowledge from the description of specific preferred embodiments of the present invention. Patents, patent applications, and documents cited herein should be incorporated by reference in their entirety, as if the contents themselves were specifically described herein. Understood.
本発明は、ハードウェアの動作を検証可能な汎用プログラミング記述を生成するためのハードウェア検証用プログラミング用記述生成装置、ハードウェア検証用プログラミング記述生成方法、ハードウェア検証用プログラミング記述生成プログラムなどの制御プログラムおよびこれが記録されたコンピュータ読み取り可能な可読記録媒体の分野において、アクセス制御モデルとして、サイクル精度でハードウェアの正しい動作が成立する条件をアサーションにより検証可能な動作モデルを汎用プログラミング言語の記述として生成することができるため、高速かつ安価にハードウェアの動作を検証できて、LSIの設計および検証期間を短縮化でき、開発コストを低減することができる。 The present invention relates to a hardware verification programming description generation device, a hardware verification programming description generation method, a hardware verification programming description generation program, and the like for generating a general-purpose programming description capable of verifying hardware operations. As an access control model in the field of computer-readable computer-readable recording media on which the program is recorded, an operation model that can be verified by assertion as a condition for the correct operation of hardware with cycle accuracy is generated as a description in a general-purpose programming language Therefore, the hardware operation can be verified at high speed and at low cost, the LSI design and verification period can be shortened, and the development cost can be reduced.
1 モニタ装置
2 キーボードなどの入力装置
3 計算機本体
31 CPU(制御部)
32 RAM
33 ROM(可読記録媒体)
4 ハードウェア検証用プログラミング記述生成プログラム
41 構文解析・字句解析手段
42 ブロック分割・共有リソースの抽出・アクセス情報作成手段
43 CDFG生成手段
44 スケジューリング・ステート割り振り手段
45 機能ブロックのサイクル精度モデル生成手段
46 共有リソースのサイクル精度モデル生成手段
47 共有リソースのアクセス制御モデル生成手段
51 ハードウェアの動作記述
52A ブロックAのCDFG
52B ブロックBのCDFG
53A ブロックAのサイクル精度モデル
53B ブロックBのサイクル精度モデル
54 共有リソースのデータベース
55 共有リソースのサイクル精度モデル
56 共有リソースのアクセス情報
57 共有リソースのアクセス制御モデル
100 コンピュータシステム
DESCRIPTION OF
32 RAM
33 ROM (readable recording medium)
4 hardware verification programming
52B Block B CDFG
53A Cycle Accuracy Model of
Claims (26)
該共有リソースのアクセス情報から、アサーションにより該共有リソースへのアクセスが重複されないように制御するアクセス制御モデルを生成する共有リソースのアクセス制御モデル生成手段とを有するハードウェア検証用プログラミング記述生成装置。 Information related to the circuit structure is not included, and the hardware is divided into a plurality of functional blocks from the behavior information of the hardware obtained from the behavior description in which only the processing operation is described. Block division / shared resource extraction / access information creation means for extracting resources and creating access information for the shared resources;
A hardware verification programming description generation device comprising: an access control model generation unit for generating a shared resource access control model for controlling an access to the shared resource not to be duplicated by an assertion from the access information of the shared resource.
該各CDFGで回路動作を表すノードをスケジューリングおよびステート割り振りするスケジューリング・ステート割り振り手段と、
該機能ブロックの動作をサイクル精度レベルで検証可能なサイクルク精度モデルを生成する機能ブロックのサイクル精度モデル生成手段と、
前記共有リソースの動作をサイクル精度レベルで検証可能なサイクル精度モデルを生成する共有リソースのサイクル精度モデル生成手段とをさらに有する請求項1または11に記載のハードウェア検証用プログラミング記述生成装置。 CDFG generation means for creating each CDFG of the plurality of functional blocks,
Scheduling state allocation means for scheduling and state allocation of nodes representing circuit operations in the respective CDFGs;
A cycle accuracy model generation unit for the function block that generates a cycle accuracy model capable of verifying the operation of the function block at a cycle accuracy level;
The hardware verification programming description generation device according to claim 1, further comprising: a shared resource cycle accuracy model generation unit configured to generate a cycle accuracy model capable of verifying the operation of the shared resource at a cycle accuracy level.
共有リソースのアクセス制御モデル生成手段が、該記憶部に記憶された該共有リソースの該アクセス情報を読み出して、読み出された該共有リソースのアクセス情報から、アサーションにより該共有リソースへのアクセスが重複されないように制御するアクセス制御モデルを生成して、生成された該アクセス制御モデルを該記憶部に記憶する共有リソースのアクセス制御モデル生成ステップとを有するハードウェア検証用プログラミング記述生成方法。 The block division / shared resource extraction / access information creation means does not include information about the circuit structure , reads the operation description describing only the processing operation from the storage unit, and reads the hardware description obtained from the read operation description. The hardware is divided into functional blocks from the operation information, and the divided functional blocks are stored in the storage unit, the plurality of divided functional blocks stored in the storage unit are read, and the read Extracting shared resources accessed from a plurality of divided functional blocks , storing the extracted shared resources in the storage unit, reading the shared resources stored in the storage unit, and reading the shared resources create a access information, the access information creation block division, sharing resources extracted access information stored in the storage unit of said shared resource And the step,
The shared resource access control model generation means reads the access information of the shared resource stored in the storage unit, and the access to the shared resource is duplicated by assertion from the read access information of the shared resource A method for generating a programming description for hardware verification , comprising: generating an access control model for performing control so that the access control model is not generated ; and storing the generated access control model in the storage unit .
スケジューリング・ステート割り振り手段が、該各CDFGで回路動作を表すノードをスケジューリングおよびステート割り振りするスケジューリング・ステート割り振りステップと、
機能ブロックのサイクル精度モデル生成手段が、該機能ブロックの動作をサイクル精度レベルで検証可能なサイクル精度モデルを生成する機能ブロックのサイクル精度モデル生成ステップと、
共有リソースのサイクル精度モデル生成手段が、前記共有リソースの動作をサイクル精度レベルで検証可能なサイクル精度モデルを生成する共有リソースのサイクル精度モデル生成ステップとをさらに有する請求項13または23に記載のハードウェア検証用プログラミング記述生成方法。 CDFG generation means, a CDFG generation step of generating the CDFG of said plurality of functional blocks each,
A scheduling state allocating step in which scheduling state allocating means schedules and allocates a node representing a circuit operation in each CDFG;
Cycle accurate model generation means of the functional blocks, and cycle-accurate model generating step of the functional block for generating a verifiable cycle accuracy model the operation of the functional blocks in cycle precision level,
The hardware accuracy according to claim 13 or 23, further comprising: a cycle accuracy model generation step of a shared resource , wherein the shared resource cycle accuracy model generation means generates a cycle accuracy model capable of verifying the operation of the shared resource at a cycle accuracy level. Generation method for hardware verification programming description.
26. A readable recording medium on which the control program according to claim 25 is recorded and readable by the computer system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007312897A JP5001126B2 (en) | 2007-12-03 | 2007-12-03 | Hardware verification programming description generation apparatus, hardware verification programming description generation method, control program, and readable recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007312897A JP5001126B2 (en) | 2007-12-03 | 2007-12-03 | Hardware verification programming description generation apparatus, hardware verification programming description generation method, control program, and readable recording medium |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009140028A JP2009140028A (en) | 2009-06-25 |
JP5001126B2 true JP5001126B2 (en) | 2012-08-15 |
Family
ID=40870604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007312897A Expired - Fee Related JP5001126B2 (en) | 2007-12-03 | 2007-12-03 | Hardware verification programming description generation apparatus, hardware verification programming description generation method, control program, and readable recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5001126B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5233354B2 (en) * | 2008-03-25 | 2013-07-10 | 日本電気株式会社 | Property verification system, property verification method, and program |
JP6969460B2 (en) | 2018-03-15 | 2021-11-24 | オムロン株式会社 | Program development support system, program development support method and program development support program |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3943299B2 (en) * | 1999-11-11 | 2007-07-11 | 富士通株式会社 | Apparatus and method for generating properties to be verified for hardware |
JP4147842B2 (en) * | 2002-07-04 | 2008-09-10 | 日本電気株式会社 | Logic verification system and method, logic cone extraction apparatus and method, logic verification and logic cone extraction program |
JP2006139729A (en) * | 2004-11-15 | 2006-06-01 | Sharp Corp | Hardware verification programming language model generation apparatus, hardware verification programming language model generation method, computer system, hardware simulation method, control program, and readable storage medium |
-
2007
- 2007-12-03 JP JP2007312897A patent/JP5001126B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009140028A (en) | 2009-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8417504B2 (en) | Conversion of circuit description to a transaction model | |
CN1885295B (en) | Building integrated circuits using logical units | |
JP4989629B2 (en) | Method and system for debugging using replication logic and trigger logic | |
JP4994393B2 (en) | System and method for generating multiple models at different levels of abstraction from a single master model | |
US7761272B1 (en) | Method and apparatus for processing a dataflow description of a digital processing system | |
US20060130029A1 (en) | Programming language model generating apparatus for hardware verification, programming language model generating method for hardware verification, computer system, hardware simulation method, control program and computer-readable storage medium | |
CN1716264B (en) | Methods, systems for annotating system traces with control program information and presenting annotated system traces | |
JP4806529B2 (en) | Debugging methods and systems that use replicated logic | |
JPH03257671A (en) | Design uptake system | |
JP4393450B2 (en) | Logic circuit model conversion apparatus and logic circuit model conversion program | |
US11836641B2 (en) | Machine learning-based prediction of metrics at early-stage circuit design | |
JP4175953B2 (en) | High-level synthesis apparatus, hardware verification model generation method, hardware verification method, control program, and readable recording medium | |
JP5034916B2 (en) | Performance evaluation model generation method, system performance evaluation method, and performance evaluation model generation apparatus | |
JP4293562B2 (en) | Hardware verification programming description generation device, high-level synthesis device, hardware verification programming description generation method, hardware verification program generation method, control program, and readable recording medium | |
US7228513B2 (en) | Circuit operation verification device and method | |
JP5001126B2 (en) | Hardware verification programming description generation apparatus, hardware verification programming description generation method, control program, and readable recording medium | |
JP5830955B2 (en) | Verification device, verification method, and verification program | |
US20160085519A1 (en) | Determination of signals for readback from fpga | |
US7454680B2 (en) | Method, system and computer program product for improving efficiency in generating high-level coverage data for a circuit-testing scheme | |
JP2007018313A (en) | Circuit design program, circuit design device and circuit design method | |
JP5071297B2 (en) | Design support program, design support apparatus, and design support method | |
US20240111660A1 (en) | Managing high performance simulation representation of an emulation system | |
KR100928181B1 (en) | Digital system design method | |
JPH1196196A (en) | Circuit converting method and circuit design assisting device | |
JP2007241836A (en) | Multi-cycle path verification method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100218 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110915 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110928 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111125 |
|
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: 20120426 |
|
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: 20120517 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5001126 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150525 Year of fee payment: 3 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D04 |
|
LAPS | Cancellation because of no payment of annual fees |