JP2010140255A - Reconfigurable logic circuit, verification method and verification program - Google Patents
Reconfigurable logic circuit, verification method and verification program Download PDFInfo
- Publication number
- JP2010140255A JP2010140255A JP2008315898A JP2008315898A JP2010140255A JP 2010140255 A JP2010140255 A JP 2010140255A JP 2008315898 A JP2008315898 A JP 2008315898A JP 2008315898 A JP2008315898 A JP 2008315898A JP 2010140255 A JP2010140255 A JP 2010140255A
- Authority
- JP
- Japan
- Prior art keywords
- assertion
- verification
- circuit
- design target
- reconfigurable logic
- 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.)
- Withdrawn
Links
Images
Abstract
Description
本発明は、再構成可能論理回路ならびに検証方法および検証プログラムに関し、特に、アサーションベース検証に係る再構成可能論理回路ならびに検証方法及び検証プログラムに関する。 The present invention relates to a reconfigurable logic circuit, a verification method, and a verification program, and more particularly to a reconfigurable logic circuit, a verification method, and a verification program related to assertion-based verification.
大規模化および複雑化するシステムLSIの設計において、シミュレーションおよびシミュレーション結果の確認に要する時間が増大している。したがって、シミュレーション高速化およびシミュレーション結果確認の自動化をすることが課題となっている。これらの課題を解決するために、ソフトウェアシミュレータの機能の拡張に基づくアサーションベース検証(Assertion Based Verification)が広く用いられている。 In the design of system LSIs that are becoming larger and more complicated, the time required for simulation and confirmation of simulation results is increasing. Therefore, it is a problem to speed up simulation and automate simulation result confirmation. In order to solve these problems, assertion-based verification based on the expansion of the function of the software simulator is widely used.
アサーション(Assertion)とは、設計対象である回路において本来成立すべき条件を表現したものである。回路がどのように振舞うべきか、または振舞ってはならないかは、アサーション記述言語(例えば、PSL、System Verilog Assertion)によって定義される。アサーションベース検証とは、シミュレーション実行中、設計対象である回路の動作をつねに監視し、アサーションの成否を確認することによって、設計対象である回路における不具合の発生時刻及び発生箇所を特定することをいう。 An assertion expresses a condition that should originally be satisfied in a circuit to be designed. How a circuit should or should not be defined is defined by an assertion description language (eg, PSL, System Verilog Assertion). Assertion-based verification refers to identifying the occurrence time and location of a malfunction in a circuit to be designed by constantly monitoring the operation of the circuit to be designed during simulation and checking the success or failure of the assertion. .
しかし、アサーションベース検証を適用した場合には、ソフトウェアシミュレータにより回路の動作を監視するための負荷が大きいため、アサーションベース検証を適用しない場合と比較して、シミュレーション時間が長くなるという問題がある。そこで、シミュレーションを高速化するために、ソフトウェアシミュレータとハードウェアエミュレータを接続した協調シミュレーションに基づくアサーションベース検証を実現することが望ましい。 However, when the assertion-based verification is applied, a load for monitoring the operation of the circuit by the software simulator is large. Therefore, there is a problem that the simulation time is longer than that when the assertion-based verification is not applied. Therefore, in order to speed up the simulation, it is desirable to realize assertion-based verification based on cooperative simulation in which a software simulator and a hardware emulator are connected.
特許文献1において、ハードウェア及びソフトウェアの協調シミュレーションが記載されている。特許文献1の図2を参照すると、シミュレーション装置は、サイクル動作を行う設計対象回路3aが実装されるプログラマブル回路1aと、時間制約のない動作記述として作成されたプログラムを実行するコンピュータ2とを備える。
In
プログラマブル回路1aは、コンピュータ2及び設計対象回路3a間のデータ転送をトランザクション単位で行うデータ転送回路41a、41bと、設計対象回路3aの動作が仕様を満たしているかを検証し、設計対象回路3aの動作が仕様を満たしていないときにエラー検出として通知する検証回路31_1〜31_n、31_1〜31_kと、エラーの検出が通知された場合に設計対象回路3aの動作を一時的に停止させて、検証回路31_1〜31_n、31_1〜31_kによる検証の結果をコンピュータ2に転送する検証結果転送回路42a、42bとを備える。
The programmable circuit 1a verifies whether the operations of the data transfer circuits 41a and 41b that perform data transfer between the
以下の分析は、本発明者によってなされたものである。特許文献1に記載されたシミュレーション装置においては、第1ないし第n検証回路31_1〜31_nおよび第1ないし第k検証回路32_1〜32_kの個数は、(例えば、HDL記述中に挿入される)アサーションの数に対応している。すなわち、設計対象回路3aに対するアサーションは、それぞれ別個の検証回路として実装される。
The following analysis was made by the present inventors. In the simulation apparatus described in
したがって、特許文献1に記載されたシミュレーション装置においては、設計対象回路3aの規模が増大するのに伴ってアサーションの数も増加した場合に、プログラマブル回路(再構成可能論理回路ともいう。)に実装される検証回路の規模が増大するという問題がある。
Therefore, in the simulation apparatus described in
そこで、アサーションベース検証におけるアサーションの数が増大した場合における、再構成可能論理回路に実装される検証回路の規模の増大を抑えることが課題となる。 Therefore, it becomes a problem to suppress an increase in the scale of the verification circuit mounted on the reconfigurable logic circuit when the number of assertions in the assertion-based verification increases.
本発明の第1の視点に係る再構成可能論理回路は、設計対象回路と該設計対象回路を検証する検証回路とを備え、前記検証回路は、アサーションベース検証に含まれる複数のアサーションに基づく検証に共用される。 A reconfigurable logic circuit according to a first aspect of the present invention includes a design target circuit and a verification circuit that verifies the design target circuit, and the verification circuit performs verification based on a plurality of assertions included in assertion-based verification. Shared by
本発明の第2の視点に係る検証方法は、設計対象回路と該設計対象回路を検証する検証回路とを備える再構成可能論理回路による検証方法であって、前記検証回路によって、アサーションベース検証に含まれる第1のアサーションに基づく検証を行う工程と、前記検証回路によって、前記アサーションベース検証に含まれる第2のアサーションに基づく検証を行う工程とを含む。 A verification method according to a second aspect of the present invention is a verification method using a reconfigurable logic circuit including a design target circuit and a verification circuit for verifying the design target circuit, and the verification circuit performs assertion-based verification. A step of performing verification based on the first assertion included, and a step of performing verification based on the second assertion included in the assertion base verification by the verification circuit.
本発明の第3の視点に係る検証プログラムは、設計対象回路と該設計対象回路を検証する検証回路とを備え、アサーションベース検証に含まれる複数のアサーションに基づく検証に該検証回路が共用されるように構成された再構成可能論理回路に接続されたコンピュータに、該複数のアサーションのうちのいずれのアサーションに基づいて該設計対象回路を検証すべきかを選択する制御コードを送信させる。 A verification program according to a third aspect of the present invention includes a design target circuit and a verification circuit for verifying the design target circuit, and the verification circuit is shared for verification based on a plurality of assertions included in assertion-based verification. A computer connected to the reconfigurable logic circuit configured as described above is caused to transmit a control code for selecting which of the plurality of assertions is to be used to verify the design target circuit.
本発明に係る再構成可能論理回路ならびに検証方法および検証プログラムにより、アサーションベース検証におけるアサーションの数が増大した場合において、再構成可能論理回路に実装される検証回路の規模の増大を抑えることができる。 With the reconfigurable logic circuit, the verification method, and the verification program according to the present invention, when the number of assertions in the assertion-based verification increases, it is possible to suppress an increase in the size of the verification circuit mounted on the reconfigurable logic circuit. .
(第1の実施形態)
本発明の第1の実施形態に係る検証回路について図面を参照して説明する。図1は、本実施形態に係る検証回路の構成を示すブロック図である。図1を参照すると、再構成可能論理回路20とコンピュータ10との間で協調シミュレーションが行われる。再構成可能論理回路20は、検証回路27および設計対象回路21を備える。
(First embodiment)
A verification circuit according to a first embodiment of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing a configuration of a verification circuit according to the present embodiment. Referring to FIG. 1, a co-simulation is performed between the
検証回路27は、設計対象回路21を検証する。検証回路27は、アサーションベース検証に含まれる複数のアサーションに基づく検証に共用される。
The
検証回路27は、アサーションベース検証に含まれる複数のアサーションのうちの互いに類似するものに基づく検証に共用されることが好ましい。
The
再構成可能論理回路20は、さらに設定レジスタ28を備えるようにしてもよい。設定レジスタ28は、アサーションベース検証に含まれる複数のアサーションのうちのいずれのアサーションに基づいて設計対象回路21を検証すべきかを選択する制御コードを記録する。検証回路27は、設定レジスタ28に記録された制御コードにより選択されたアサーションに基づいて設計対象回路21を検証する。
The
また、コンピュータ10は、再構成可能論理回路20に接続される。検証プログラム11は、複数のアサーションのうちのいずれのアサーションに基づいて設計対象回路21を検証すべきかを選択する制御コードをコンピュータ10に送信させるようにしてもよい。
The
アサーションベース検証に含まれる複数のアサーションの間で検証回路27を共有することによって、アサーションの数が増大した場合において、再構成可能論理回路20に実装される検証回路27の規模の増大を抑えることができる。
By sharing the
また、アサーションの記述に誤りが含まれる場合であっても、再構成可能論理回路20を再構成することなく誤りを修正することができる。なぜなら、検証プログラム11により検証回路27に対する設定レジスタ28を書き換えることによって、検証回路27の機能を修正することができるからである。
Even if the assertion description includes an error, the error can be corrected without reconfiguring the
本発明に係る検証回路の実施例について、図面を参照して説明する。図2は、本実施例の検証回路を含むシミュレーション装置の構成を示すブロック図である。シミュレーション装置は、コンピュータ60と再構成可能論理回路70を備え、両者は再構成可能論理回路70のIOポート50を介して接続される。
Embodiments of a verification circuit according to the present invention will be described with reference to the drawings. FIG. 2 is a block diagram showing a configuration of a simulation apparatus including the verification circuit of this embodiment. The simulation apparatus includes a
再構成可能論理回路70は、設計対象回路71、検証回路77、クロック制御回路73、ブレイク制御回路72およびIOポート50を備える。設計対象回路は、例えばHDLによって設計される。検証回路77は、設計対象回路71に対して定義されたアサーションに応じて生成される。クロック制御回路73は、検証回路77および設計対象回路71を動作させるクロックを生成する。ブレイク信号76は、アサーション発生やエラー発生をブレイク制御回路72およびクロック制御回路73に通知する信号である。ブレイク制御回路72は、ブレイク要求信号75を生成する。ブレイク要求信号75は、チェック結果をコンピュータ60上の検証プログラム61に転送することを要求する信号である。IOポート50は、コンピュータ60上の検証プログラム61と再構成可能論理回路70間の通信を制御する。
The
検証回路77は、第1ないし第nアサーション回路74_1〜74_n、第1ないし第n設定レジスタ78_1〜78_n、第1ないし第n検証結果レジスタ79_1〜79_nおよび検証プログラムI/F51を備える。第1ないし第nアサーション回路74_1〜74_nは、設計対象回路71を観測し、期待する動作であるか否かをチェックする。第1ないし第n設定レジスタ78_1〜78_nは、第1ないし第nアサーション回路74_1〜74_nの機能を制御する。第1ないし第n検証結果レジスタ79_1〜79_nは、検証結果を格納する。検証プログラムI/F51は、コンピュータ60上の検証プログラム61から検証回路77にアクセスするためのI/Fである。
The verification circuit 77 includes first to nth assertion circuits 74_1 to 74_n, first to nth setting registers 78_1 to 78_n, first to nth verification result registers 79_1 to 79_n, and a verification program I / F51. The first to nth assertion circuits 74_1 to 74_n observe the
コンピュータ60に設けた検証プログラム61は、第1ないし第nアサーション回路74_1〜74_nの機能を変更するための設定コードである第1アサーション制御コード62_1_1〜62_1_m、…、第nアサーション制御コード62_n_1〜62_n_kを備える。
The verification program 61 provided in the
第1アサーション制御コード62_1_1〜62_1_m、…、第nアサーション制御コード62_n_1〜62_n_kは、IOポート50および検証プログラムI/F51を介して、第1ないし第n設定レジスタ78_1〜78_nに設定される。第1ないし第nアサーション回路74_1〜74_nは、第1ないし第n設定レジスタ78_1〜78_nに設定されたアサーション制御コードにしたがって動作する。
The first assertion control codes 62_1_1 to 62_1_m,..., Nth assertion control codes 62_n_1 to 62_n_k are set in the first to nth setting registers 78_1 to 78_n via the
IOポート50は、検証回路77の検証プログラムI/F51、ブレイク制御回路72およびクロック制御回路73に接続される。ブレイク制御回路72およびクロック制御回路73は、検証回路77の出力であるブレイク信号76を受信する。
The
検証プログラム61は、ブレイク要求信号75を受信する。検証回路77の第1ないし第nアサーション回路74_1〜74_nは、設計対象回路71の内部信号を受信する。
The verification program 61 receives the
図3を参照して、図2に示したシミュレーション装置の動作を説明する。コンピュータ60に設けた検証プログラム61は、第1アサーション回路に対するアサーションコードである第1アサーション制御コード62_1_1〜62_1_mのいずれか1つをIOポート50および検証プログラムI/F51を介して検証回路77の第1設定レジスタ78_1に設定する。同様に、検証プログラム61は、第nアサーション回路に対するアサーションコードである第nアサーション制御コード62_n_1〜62_n_kのいずれか1つを第n設定レジスタ78_nに設定する(ステップS10)。
The operation of the simulation apparatus shown in FIG. 2 will be described with reference to FIG. The verification program 61 provided in the
次に、クロック制御回路73は、設計対象回路71および検証回路77にクロックを供給し、シミュレーションを開始する(ステップS11)。
Next, the clock control circuit 73 supplies a clock to the
シミュレーションが終了したか否かを判定し(ステップS14)、シミュレーションが終了した場合には(ステップS14のYes)、検証を終了する。 It is determined whether or not the simulation is finished (step S14). When the simulation is finished (Yes in step S14), the verification is finished.
一方、シミュレーションが終了していない場合には(ステップS14のNo)、アサーションチェック(ステップS15)を行う。ここでは、アサーションの成否のチェックとして、第1ないし第nアサーション回路74_1〜74_nが、設計対象回路71の内部信号を受信して、第1ないし第n設定レジスタ78_1〜78_nに設定されたアサーション制御コードに応じたアサーションが成立するか否かをチェックする(ステップS15)。アサーションが成立しない場合には(ステップS15のNo)、ステップS14の処理へ戻ってシミュレーションを継続する。
On the other hand, if the simulation has not ended (No in step S14), an assertion check (step S15) is performed. Here, as a check for the success or failure of the assertion, the first to nth assertion circuits 74_1 to 74_n receive the internal signal of the
アサーションが成立した場合には(ステップS15のYes)、第1ないし第nアサーション回路74_1〜74_nは、ブレイク信号76によってアサーション検証の発生をブレイク制御回路72に通知する。ブレイク制御回路72は、検証プログラム61にブレイク要求信号75を通知する(ステップS16)。クロック制御回路73は、ブレイク信号76を受信した場合には、設計対象回路71に供給しているクロックを停止する(ステップS17)。
When the assertion is established (Yes in step S15), the first to nth assertion circuits 74_1 to 74_n notify the
検証プログラム61は、ブレイク制御回路72からブレイク要求信号75を受信した場合には、IOポート50を介してブレイク制御回路72の要因レジスタ(非図示)を読み取り(リードし)、検証回路77内の第1ないし第nアサーション回路74_1〜74_nのいずれのアサーション回路からの通知であるのかを判定し、判定後にブレイク要因をクリア(消去)する(ステップS18)。
When the verification program 61 receives the
検証プログラム61は、IOポート50を介して、上記の判定結果に応じて第1ないし第n検証結果レジスタ79_1〜79_nのいずれかに格納された検証結果を読み出す(ステップS19)。 The verification program 61 reads the verification result stored in any of the first to nth verification result registers 79_1 to 79_n according to the determination result via the IO port 50 (step S19).
次に、ステップS11に戻り、クロック供給を再開し、上記ステップS11ないしS19の工程をシミュレーションの終了条件が成立する(ステップS14のYes)まで繰り返す。 Next, returning to step S11, the clock supply is resumed, and the above steps S11 to S19 are repeated until the simulation end condition is satisfied (Yes in step S14).
シミュレーション終了後、次に、検証すべきアサーションがある場合、すなわち、チェックが完了していないアサーション制御コードがある場合には、第1アサーション制御コード62_1_1〜62_1_mのいずれか1つ、…、第nアサーション制御コード62_n_1〜62_n_kのいずれか1つを、それぞれIOポート50および検証プログラムI/F51を介して、それぞれ、第1ないし第n設定レジスタ78_1〜78_nに設定する(ステップS10)。
After the simulation, when there is an assertion to be verified next, that is, when there is an assertion control code that has not been checked, one of the first assertion control codes 62_1_1 to 62_1_m,. Any one of the assertion control codes 62_n_1 to 62_n_k is set in the first to nth setting registers 78_1 to 78_n via the
再度、シミュレーション(ステップS11ないしS19)を行う。検証すべきアサーションが全て終了するまで、上記のシミュレーションの工程を繰り返す。 The simulation (steps S11 to S19) is performed again. The simulation process is repeated until all the assertions to be verified are completed.
本発明に係る検証回路の第2の実施例として、アサーション回路の共有化について説明する。図4は、アサーション定義におけるプロパティ宣言を示し、特に、設計者によって定義されたLib1という名前のプロパティを示す。図4のプロパティ宣言は、「ARG1とARG2の値が一致してから3クロック後にARG3とARG4が一致していれば仕様を満たす」ということを示す。 As a second embodiment of the verification circuit according to the present invention, sharing of an assertion circuit will be described. FIG. 4 shows property declarations in the assertion definition, and in particular, shows a property named Lib1 defined by the designer. The property declaration in FIG. 4 indicates that “the specification is satisfied if ARG3 and ARG4 match after 3 clocks after the values of ARG1 and ARG2 match”.
以下、図4のようにARG1とARG2の値が一致することをアサーション前提条件という。また、アサーション前提条件が成立してから3クロック後にARG3とARG4が一致することをアサーション発生という。 Hereinafter, the fact that the values of ARG1 and ARG2 match as shown in FIG. 4 is referred to as an assertion precondition. The fact that ARG3 and ARG4 match three clocks after the assertion precondition is satisfied is called assertion generation.
図5は、設計者によって定義されたLib1というプロパティを呼び出して、check1とcheck2という異なるアサーション定義をインスタンス化した例である。 FIG. 5 is an example in which a property called Lib defined by the designer is called to instantiate different assertion definitions called check1 and check2.
図5のアサーションは、check1において、「aとbの値が一致してから3クロック後にcとdが一致している」ことを検証するものである。一方、check2では、「eとfの値が一致してから3クロック後にgとhが一致している」ことを検証する。
The assertion of FIG. 5 verifies that “c and d match after 3 clocks after the values of a and b match” in
図6は、本実施例に係るアサーション回路の構成を示すブロック図である。図6は、図5のアサーションのインスタンスcheck1およびcheck2を1つのアサーション回路に変換したものである。図6のアサーション回路80は、検証回路部81と入力選択部82により構成されている。
FIG. 6 is a block diagram illustrating the configuration of the assertion circuit according to the present embodiment. FIG. 6 is a diagram in which the assertion instances check1 and check2 in FIG. 5 are converted into one assertion circuit. The
検証回路部81は、第1比較器83、第2比較器84、コントローラ86および結果判定回路85を備えている。コントローラ86は、結果判定のタイミングを制御する。
The
また、入力選択部82の第1のセレクタは、入力信号aおよび入力信号eはセレクタを受信し、入力選択信号CNT1により選択された入力信号を第1比較器83に出力する。入力選択部82の第2のセレクタは、入力信号bおよび入力信号fを受信し、入力選択信号CNT2により選択された入力信号を第1比較器83に出力する。入力選択部82の第3のセレクタは、入力選択部82の入力信号cおよび入力信号gを受信し、入力選択信号CNT3により選択された入力信号を第2比較器84に出力する。入力選択部82の第4のセレクタは、入力信号dおよび入力信号hを受信し、入力選択信号CNT4により選択された入力信号を第2比較器84に出力する。
The first selector of the
図6のアサーション回路80の動作を説明する。入力選択部82は、入力選択信号CNT1〜CNT4の設定に応じて、入力信号を選択し、第1比較器83および第2比較器84に出力する。
The operation of the
コントローラ86は、第1比較器83の比較結果を受信して、入力が一致してから3クロック後に、結果判定回路85に結果判定指示を送信する。
The controller 86 receives the comparison result of the
結果判定回路85は、コントローラ86からの結果判定指示を受信すると同時に、第2比較器84の比較結果を受信する。結果判定回路85は、第2比較器84の比較結果(以下、判定結果という)を端子RESULTに出力する。
The
図6のアサーション回路80を図2のシミュレーション装置の第1アサーション回路74_1として搭載した場合には、第1設定レジスタ78_1は、アサーション回路80の入力選択信号CNT1〜CNT4を出力する。一方、第1検証結果レジスタ79_1は、端子RESULTに接続され、判定結果を受信する。検証プログラム61は、第1検証結果レジスタ79_1から検証結果を読み出す。
When the
上記の構成によると、アサーション制御コードを複数用意することにより、アサーション検証内容の切り替えを行なうことができる。したがって、複数のアサーションの間で、アサーション回路80を共有することができる。
According to the above configuration, the assertion verification contents can be switched by preparing a plurality of assertion control codes. Therefore, the
なお、本実施例において、図4の仕様のように「ARG1とARG2の値が一致してから3クロック後にARG3とARG4が一致していれば仕様を満たす」旨の設定をし、アサーションが参照する信号名を引数として変更できるものとしている。なお、「ARG1とARG2の値が一致してからnクロック後にARG3とARG4が一致していれば仕様を満たす」旨の設定を行い、クロック数nも引数として指定することにより、共用化できるアサーションの数をさらに増やすこともできる。 In this embodiment, as shown in the specification of FIG. 4, a setting is made that “the specification is satisfied if ARG3 and ARG4 match after 3 clocks after the values of ARG1 and ARG2 match”, and the assertion is referred to The signal name to be changed can be changed as an argument. Assertion that can be shared by setting "ARG3 and ARG4 meet the specifications if ARG3 and ARG4 match after n clocks after the values of ARG1 and ARG2 match" and specifying the number of clocks n as an argument The number of can also be increased.
本実施例に係るシミュレーション装置は、検証プログラムから制御可能な設定レジスタと、設定レジスタにより機能を変更することのできるアサーション回路と、設定レジスタにアサーション制御コードを転送し制御する検証プログラムと、アサーション回路の検証結果を格納するレジスタとを備える。特許文献1に記載されたシミュレーション装置においては、アサーションの数の増加に伴い、再構成可能論理回路に実装される検証回路の規模が増大するという問題があった。しかし、本実施例に係るシミュレーション装置により、かかる問題を解決することできる。
The simulation apparatus according to the present embodiment includes a setting register that can be controlled from a verification program, an assertion circuit whose function can be changed by the setting register, a verification program that transfers and controls an assertion control code to the setting register, and an assertion circuit And a register for storing the verification result. In the simulation apparatus described in
本発明の実施例に係る検証回路について図面を参照して説明する。図7は、本実施例に係る検証回路を備えるシミュレーション装置の構成を示すブロック図である。図7を参照すると、シミュレーション装置は、検証プログラム91および検証回路92を備える。
A verification circuit according to an embodiment of the present invention will be described with reference to the drawings. FIG. 7 is a block diagram illustrating a configuration of a simulation apparatus including a verification circuit according to the present embodiment. Referring to FIG. 7, the simulation apparatus includes a verification program 91 and a
本実施例においては、10個のアサーションが定義されたものとする。なお、10個のアサーションのうち、第1、第2、第4、第8および第9のアサーションによる検証内容が類似し、アサーション定義の第3、第5、第6、第7および第10のアサーションによる検証内容が類似するものとする。特許文献1に記載のシミュレーション装置においては、定義されたアサーションの数と同数の検証回路が再構成可能論理回路上に必要とされるため、再構成可能論理回路上に10個の検証回路を実現する必要がある。
In this embodiment, it is assumed that 10 assertions are defined. Of the 10 assertions, the verification contents by the first, second, fourth, eighth and ninth assertions are similar, and the third, fifth, sixth, seventh and tenth of the assertion definition The contents of verification by assertion are similar. In the simulation apparatus described in
本実施例のシミュレーション装置においては、検証内容が互いに類似するアサーションをグループ化し、グループ化されたアサーションは検証回路92における単一のアサーション回路を共有する。また、検証プログラム91によって設定されるアサーション制御コードに基づいてアサーション回路の動作を変更することにより、アサーション機能を実現する。
In the simulation apparatus of this embodiment, assertions whose verification contents are similar to each other are grouped, and the grouped assertions share a single assertion circuit in the
10個のアサーションは、検証プログラム91において、第1アサーション制御コード91aと第2アサーション制御コード91bの2つのグループに分割される。第1アサーション制御コード91aは第1アサーション回路92aを共有し、第2アサーション制御コード91bは第2アサーション回路92bを共有する。
The ten assertions are divided into two groups of the first assertion control code 91a and the second assertion control code 91b in the verification program 91. The first assertion control code 91a shares the first assertion circuit 92a, and the second assertion control code 91b shares the
第1アサーション回路92aは、設定レジスタ92cおよび検証結果レジスタ92dに接続される。第2アサーション回路92bは、設定レジスタ92eおよび検証結果レジスタ92fに接続される。
The first assertion circuit 92a is connected to the
検証プログラム91は、設定レジスタ92cに設定される第1アサーション制御コード91aを変更するとともに、設定レジスタ92eに設定される第2アサーション制御コード91bを変更する。これにより、2つのアサーション回路、すなわち、第1アサーション回路92aおよび第2アサーション回路92bにより、10個のアサーションに関する設計対象回路の検証が可能となる。このとき、アサーションの増加に伴う、再構成可能論理回路に実現される検証回路の回路規模の増大を抑えることができる。したがって、特許文献1に記載されたシミュレーション装置における問題が解消される。
The verification program 91 changes the first assertion control code 91a set in the
本発明の第4の実施例に係るシミュレーション装置について図面を参照して説明する。図8は、本実施例に係る検証回路を備えるシミュレーション装置の構成を示すブロック図である。 A simulation apparatus according to a fourth embodiment of the present invention will be described with reference to the drawings. FIG. 8 is a block diagram illustrating a configuration of a simulation apparatus including the verification circuit according to the present embodiment.
図8を参照すると、本実施例に係るシミュレーション装置と、第1の実施例に係るシミュレーション装置との違いは、以下の通りである。すなわち、検証回路77は、アサーション回路のそれぞれ対して、さらに、第1ないし第nアサーション前提条件確認レジスタ100_1〜100_nを備える。また、検証プログラム61は、さらに、第1ないし第nアサーション発生スケジュール101_1〜101_nを備える。 Referring to FIG. 8, the difference between the simulation apparatus according to the present embodiment and the simulation apparatus according to the first embodiment is as follows. That is, the verification circuit 77 further includes first to n-th assertion precondition checking registers 100_1 to 100_n for each of the assertion circuits. The verification program 61 further includes first to nth assertion generation schedules 101_1 to 101_n.
図9は、本実施例に係る検証回路を備えるシミュレーション装置におけるアサーション発生スケジュールを生成するためのフローチャートである。図9を参照すると、シミュレーションが終了したか否かを判定し(ステップS30)、シミュレーションが終了した場合には(ステップS30のYes)、処理を終了する。シミュレーションが終了していない場合には(ステップS30のNo)、検証プログラム61におけるアサーション制御コードを各アサーション回路の第1ないし第n設定レジスタ78_1〜78_nに設定する(ステップS31)。 FIG. 9 is a flowchart for generating an assertion generation schedule in the simulation apparatus including the verification circuit according to the present embodiment. Referring to FIG. 9, it is determined whether or not the simulation is finished (step S30), and when the simulation is finished (Yes in step S30), the process is finished. If the simulation has not ended (No in step S30), the assertion control code in the verification program 61 is set in the first to nth setting registers 78_1 to 78_n of each assertion circuit (step S31).
次に、第1ないし第nアサーション前提条件確認レジスタ100_1〜100_nをリードして、現時刻におけるアサーション前提条件の発生有無をチェックし(ステップS32)、アサーション前提条件が発生しているときには発生時刻(またはタイミング)と、何番目のアサーション回路の何番目の制御コードにおいて発生したのかをアサーション発生スケジュールに登録する(ステップS36)。 Next, the first to nth assertion precondition checking registers 100_1 to 100_n are read to check whether or not the assertion precondition is generated at the current time (step S32), and when the assertion precondition is generated, the generation time ( Or the timing) and what control code of the assertion circuit is registered in the assertion generation schedule (step S36).
アサーション回路を共有する複数のアサーションがある場合には、全てのアサーション制御コードを順にアサーション回路の第1ないし第n設定レジスタ78_1〜78_nに設定し、同一時刻におけるすべてのアサーション前提条件の発生の有無をチェックする(ステップS33)。すべてのアサーション前提条件の発生の有無をチェックした場合には(ステップS33のYes)、1クロックのみクロックを供給する(ステップS34)。 When there are a plurality of assertions sharing the assertion circuit, all the assertion control codes are sequentially set in the first to nth setting registers 78_1 to 78_n of the assertion circuit, and whether all the assertion preconditions are generated at the same time Is checked (step S33). If all the assertion preconditions are checked (Yes in step S33), only one clock is supplied (step S34).
シミュレーション終了時刻までステップS30ないしS34を繰り返すことにより、全時刻におけるアサーション発生スケジュールを抽出する(ステップS36)。 By repeating steps S30 to S34 until the simulation end time, the assertion generation schedule at all times is extracted (step S36).
図10は、本実施例におけるアサーション(プロパティ宣言)の例を示す。図10を参照すると、プロパティLib3は設計者によって定義されるプロパティであり、「ARG9とARG10が一致する場合において、同サイクルにおけるARG11とARG12が一致するときには仕様が満たされる」ことを表す。 FIG. 10 shows an example of assertion (property declaration) in this embodiment. Referring to FIG. 10, the property Lib3 is a property defined by the designer, and indicates that “when ARG9 and ARG10 match, the specification is satisfied when ARG11 and ARG12 match in the same cycle”.
図10のアサーションの場合には、アサーション発生確認(図9のステップS32)は次のように行われる。すなわち、「ARG9=ARG10」が成立するか否か確認することによって、アサーション発生時刻におけるアサーション前提条件の発生の有無を確認する。図10に示したアサーションの場合には、1サイクル内においてチェックが完結する。しかし、アサーションは複数クロックのシーケンスを含むものであってもよい。 In the case of the assertion in FIG. 10, the assertion occurrence confirmation (step S32 in FIG. 9) is performed as follows. That is, whether or not the assertion precondition is generated at the assertion occurrence time is confirmed by confirming whether or not “ARG9 = ARG10” is satisfied. In the case of the assertion shown in FIG. 10, the check is completed within one cycle. However, the assertion may include a sequence of multiple clocks.
図11は、本実施例におけるアサーション呼び出し(プロパティのインスタンス化)の例を示す。図11を参照すると、設計者によって定義されたLib3を呼び出して、check5ないしcheck8というアサーションがインスタンス化される。図11の場合には、4つのアサーション制御コードが、1つのアサーション回路を共有することになる。 FIG. 11 shows an example of assertion call (property instantiation) in this embodiment. Referring to FIG. 11, Lib3 defined by the designer is called, and assertions of check5 to check8 are instantiated. In the case of FIG. 11, four assertion control codes share one assertion circuit.
図12は、本実施例に係るアサーション回路の構成を示すブロック図である。アサーション回路180は、図10のアサーションを回路化したものである。図12を参照すると、アサーション回路180には、図6のアサーション回路80に対して、さらにOCCUR信号が追加される。アサーション回路180においては、ARG9とARG10によって選択される観測信号が一致する場合には、OCCUR信号がアクティブとなる。
FIG. 12 is a block diagram illustrating the configuration of the assertion circuit according to the present embodiment. The
図12のアサーション回路180を図8のシミュレーション装置に搭載した場合には、OCCUR信号は第1ないし第nアサーション前提条件確認レジスタ100_1〜100_nのいずれかに接続される。検証プログラム60は、検証プログラムI/F51を介して第1ないし第nアサーション前提条件確認レジスタ100_1〜100_nの内容を読み出すことによって、アサーション前提条件の発生の有無を確認する。
When the
図13は、本実施例におけるアサーション発生スケジュールの例を示す図である。図13を参照すると、図9のアサーション発生スケジュールの抽出フローにしたがって生成された1つのアサーション回路に対するアサーション発生スケジュールが示される。図13における各行はシミュレーション時刻を示し、各列はアサーション定義式を示す。また、各シミュレーション時刻におけるアサーション前提条件の発生を丸印で示す。 FIG. 13 is a diagram illustrating an example of an assertion generation schedule in the present embodiment. Referring to FIG. 13, an assertion generation schedule for one assertion circuit generated according to the assertion generation schedule extraction flow of FIG. 9 is shown. Each row in FIG. 13 indicates a simulation time, and each column indicates an assertion definition formula. In addition, the occurrence of assertion preconditions at each simulation time is indicated by a circle.
アサーション前提条件の発生が重複しない時刻(クロック)1、3、5、7、8、11、12、13、14、17および18においては、アサーション前提条件の発生時刻までに該当するアサーション制御コードを各アサーション回路の第1ないし第n設定レジスタ78_1〜78_nに設定する。一方、同時刻においてアサーション前提条件の発生が重複する時刻4、6および10においては、いずれか1つのアサーション制御コードを選択して、各アサーション回路の第1ないし第n設定レジスタ78_1〜78_nに設定し、シミュレーションを実行する。
At times (clocks) 1, 3, 5, 7, 8, 11, 12, 13, 14, 17, and 18 when the assertion preconditions do not overlap, the assertion control code corresponding to the generation time of the assertion preconditions is displayed. The first to nth setting registers 78_1 to 78_n of each assertion circuit are set. On the other hand, at
アサーション定義式が同時刻において重複したために設定されなかったアサーション制御コードについては、上記のシミュレーションが終了した後、次のシミュレーションにおいて、アサーション制御コードを各アサーション回路の第1ないし第n設定レジスタ78_1〜78_nに設定してシミュレーションを実行する。すべてのアサーション制御コードが設定されるまで、シミュレーションを繰り返す。 For the assertion control codes that are not set because the assertion definition formulas overlap at the same time, after the above simulation is completed, the assertion control codes are assigned to the first to nth setting registers 78_1 to 78_1 of each assertion circuit in the next simulation. Set to 78_n and execute the simulation. The simulation is repeated until all assertion control codes are set.
図14は、本実施例に係る検証方法のフローチャートである。図14におけるステップS10ないしS19は、第1の実施例におけるフローチャートと同様であることから、説明を省略する。 FIG. 14 is a flowchart of the verification method according to the present embodiment. Steps S10 to S19 in FIG. 14 are the same as those in the flowchart in the first embodiment, and thus description thereof is omitted.
検証プログラム61は、アサーション発生スケジュール101_1ないし101_nを参照し、次のクロックでアサーション制御コードを変更するものがあるか否かを判定する(ステップS40)。変更すべきものが無い場合には(ステップS40のNo)、ステップS11に進む。 The verification program 61 refers to the assertion generation schedules 101_1 to 101_n and determines whether or not there is one that changes the assertion control code at the next clock (step S40). If there is nothing to change (No in step S40), the process proceeds to step S11.
一方、アサーション制御コードにおいて変更すべきものがある場合には(ステップS40のYes)、アサーション発生スケジュール101_1〜101_nに基づいて、何番目のアサーション回路に対応する何番目のアサーション制御コードであるのかを判定し、該当するアサーション制御コードを第1アサーション制御コード62_1_1〜62_1_mないし第nアサーション制御コード62_n_1〜62_n_kのいずれか一つを選択し、該当するアサーション制御コードをIOポート50および検証プログラムI/F51を介して、検証回路77上の第1ないし第n設定レジスタ78_1〜78_nに設定し(ステップS41)、ステップS11に進む。
On the other hand, if there is a change in the assertion control code (Yes in step S40), it is determined which number of the assertion control code corresponds to the number of the assertion circuit based on the assertion generation schedules 101_1 to 101_n. Then, any one of the first assertion control code 62_1_1 to 62_1_m to the nth assertion control code 62_n_1 to 62_n_k is selected as the corresponding assertion control code, and the
シミュレーションの終了後、アサーション発生スケジュール101_1〜101_nを参照し、検証すべきアサーションが残存している場合には、再度ステップS10ないしS41の処理を行い、検証すべきアサーションが無くなるまで、シミュレーションを繰り返す。 After the simulation is completed, the assertion generation schedules 101_1 to 101_n are referred to, and when the assertion to be verified remains, the processes of steps S10 to S41 are performed again, and the simulation is repeated until there is no assertion to be verified.
本実施例によると、アサーション回路180を共有しているアサーションの発生時刻が重複しない場合には、アサーション発生時刻の前にアサーション制御コードをアサーション回路180の設定レジスタに設定し、シミュレーションを行うことで、シミュレーションの回数を削減することができる。
According to the present embodiment, when the generation time of the assertion sharing the
以上の記載は実施例に基づいて行ったが、本発明は、上記実施例に限定されるものではない。 Although the above description has been made based on examples, the present invention is not limited to the above examples.
10、60 コンピュータ
11、61、91 検証プログラム
20、70 再構成可能論理回路
21、71 設計対象回路
27、77、92 検証回路
28、78、92c、92e 設定レジスタ
50 IOポート
51 検証プログラムI/F
62_1_1〜62_1_m 第1アサーション制御コード
62_n_1〜62_n_k 第nアサーション制御コード
72 ブレイク制御回路
73 クロック制御回路
74 アサーション回路
74_1〜74_n 第1ないし第nアサーション回路
75 ブレイク要求信号
76 ブレイク信号
78_1〜78_n 第1ないし第n設定レジスタ
79_1〜79_n 第1ないし第n検証結果レジスタ
80、180 アサーション回路
81、181 検証回路部
82、182 入力選択部
83、183 第1比較器
84、184 第2比較器
85、185 結果判定回路
86、186 コントローラ
91a 第1アサーション制御コード
91b 第2アサーション制御コード
92a 第1アサーション回路
92b 第2アサーション回路
92d、92f 検証結果レジスタ
100_1〜100_n 第1ないし第nアサーション前提条件確認レジスタ
101_1〜101_n 第1ないし第nアサーション発生スケジュール
10, 60
62_1_1 to 62_1_m first assertion control code 62_n_1 to 62_n_k n
Claims (7)
前記検証回路は、アサーションベース検証に含まれる複数のアサーションに基づく検証に共用されることを特徴とする再構成可能論理回路。 A design target circuit and a verification circuit for verifying the design target circuit;
The reconfigurable logic circuit is characterized in that the verification circuit is shared for verification based on a plurality of assertions included in assertion-based verification.
前記検証回路は、前記設定レジスタに記録された制御コードにより選択されたアサーションに基づいて前記設計対象回路を検証することを特徴とする、請求項1又は2に記載の再構成可能論理回路。 A setting register for recording a control code for selecting which of the plurality of assertions included in the assertion-based verification is to be used to verify the design target circuit;
The reconfigurable logic circuit according to claim 1, wherein the verification circuit verifies the design target circuit based on an assertion selected by a control code recorded in the setting register.
前記検証回路によって、アサーションベース検証に含まれる第1のアサーションに基づく検証を行う工程と、
前記検証回路によって、前記アサーションベース検証に含まれる第2のアサーションに基づく検証を行う工程とを含むことを特徴とする検証方法。 A verification method using a reconfigurable logic circuit comprising a design target circuit and a verification circuit for verifying the design target circuit,
Performing verification based on a first assertion included in the assertion-based verification by the verification circuit;
And a step of performing verification based on a second assertion included in the assertion-based verification by the verification circuit.
前記検証回路によって、前記設定レジスタに記録された制御コードにより選択されたアサーションに基づいて前記設計対象回路を検証する工程とを含むことを特徴とする、請求項4又は5に記載の検証方法。 Recording a control code for selecting which of the plurality of assertions included in the assertion-based verification should verify the design target circuit in a setting register provided in the reconfigurable circuit;
The verification method according to claim 4, further comprising a step of verifying the design target circuit based on an assertion selected by the control circuit recorded in the setting register by the verification circuit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008315898A JP2010140255A (en) | 2008-12-11 | 2008-12-11 | Reconfigurable logic circuit, verification method and verification program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008315898A JP2010140255A (en) | 2008-12-11 | 2008-12-11 | Reconfigurable logic circuit, verification method and verification program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010140255A true JP2010140255A (en) | 2010-06-24 |
Family
ID=42350351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008315898A Withdrawn JP2010140255A (en) | 2008-12-11 | 2008-12-11 | Reconfigurable logic circuit, verification method and verification program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010140255A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013200745A (en) * | 2012-03-26 | 2013-10-03 | Fujitsu Semiconductor Ltd | Information processing device, information processing method, and program |
JP2015069549A (en) * | 2013-09-30 | 2015-04-13 | 富士通セミコンダクター株式会社 | Semiconductor integrated circuit and verification method of semiconductor integrated circuit |
US10401826B2 (en) | 2016-03-23 | 2019-09-03 | Fanuc Corporation | Numerical controller facilitating measure to be taken after detection of interference |
-
2008
- 2008-12-11 JP JP2008315898A patent/JP2010140255A/en not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013200745A (en) * | 2012-03-26 | 2013-10-03 | Fujitsu Semiconductor Ltd | Information processing device, information processing method, and program |
JP2015069549A (en) * | 2013-09-30 | 2015-04-13 | 富士通セミコンダクター株式会社 | Semiconductor integrated circuit and verification method of semiconductor integrated circuit |
US10401826B2 (en) | 2016-03-23 | 2019-09-03 | Fanuc Corporation | Numerical controller facilitating measure to be taken after detection of interference |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1885295B (en) | Building integrated circuits using logical units | |
US6536031B2 (en) | Method for generating behavior model description of circuit and apparatus for logic verification | |
CN104732001A (en) | Online design validation for electronic devices | |
US10055363B2 (en) | Method for configuring an interface unit of a computer system | |
JP2010140255A (en) | Reconfigurable logic circuit, verification method and verification program | |
US7228513B2 (en) | Circuit operation verification device and method | |
JP2009230392A (en) | Simulation device, simulation method, and program | |
WO2011125280A1 (en) | Debugging support device, debugging support method and debugging support program | |
JP5056511B2 (en) | Verification support program, recording medium storing the program, verification support apparatus, and verification support method | |
CN101866373A (en) | Execution monitor for electronic design automation | |
JP2009009318A (en) | Asynchronous circuit-verifying program data generation method, asynchronous circuit verification method and asynchronous circuit verification device | |
JP2008305079A (en) | Requirement specification automatic verification method | |
US10162913B2 (en) | Simulation device and simulation method therefor | |
JP2010250365A (en) | Cooperative simulation system, hardware emulator, and cooperative simulation method | |
CN106781867B (en) | Experiment platform based on IP core and EDA software | |
JP2007329586A (en) | Semiconductor integrated circuit device, and design apparatus and design method thereof | |
CN115983171B (en) | Method and simulation platform for post-simulation of system on chip | |
JP2003067010A (en) | Bit arithmetic controller and programmable logic controller equipped with same | |
JP2007156728A (en) | Logic verification method and logic verification system | |
JP2009146175A (en) | Clock wiring processor, clock wiring processing method, and program | |
JP2009301192A (en) | Simulation device and simulation method | |
JP2010237858A (en) | High-level synthesis apparatus, high-level synthesis method, method for manufacturing semiconductor integrated circuit, control program, and readable storage medium | |
JP2007257313A (en) | Business process execution management device, business process definition information forming device, dynamic process change device, and business process management system | |
JP2006146332A (en) | Data processing system verification device, method, and program | |
US8205186B1 (en) | Incremental modification of instrumentation logic |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20120306 |