JP2015011363A - Cooperation verification device and cooperation verification method - Google Patents
Cooperation verification device and cooperation verification method Download PDFInfo
- Publication number
- JP2015011363A JP2015011363A JP2013133725A JP2013133725A JP2015011363A JP 2015011363 A JP2015011363 A JP 2015011363A JP 2013133725 A JP2013133725 A JP 2013133725A JP 2013133725 A JP2013133725 A JP 2013133725A JP 2015011363 A JP2015011363 A JP 2015011363A
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- data
- transmission
- electronic circuit
- verification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
Description
この発明は、ソフトウェアシミュレーションとハードウェアエミュレーションを組み合わせて電子回路の動作を検証する協調検証装置及び協調検証方法に関する。 The present invention relates to a collaborative verification apparatus and a collaborative verification method for verifying the operation of an electronic circuit by combining software simulation and hardware emulation.
従来から、集積回路を設計する際に、その集積回路の機能や性能が期待通りに発揮されるか否かをシミュレーションにより検証することが行われている。そして、このシミュレーションは、回路の構造をHDL(Hardware Description Language)により記述し、コンピュータ上でその回路の動作をシミュレートするHDLシミュレーションにより行われていた。このHDLシミュレーションには、デバッグ性がよいという利点がある。 Conventionally, when designing an integrated circuit, it has been verified by simulation whether or not the function and performance of the integrated circuit are exhibited as expected. This simulation is performed by HDL simulation in which the circuit structure is described in HDL (Hardware Description Language) and the operation of the circuit is simulated on a computer. This HDL simulation has the advantage of good debugability.
しかし、SOC(System On a Chip)など、回路に多数の機能を搭載する場合、回路の規模が大きくなり、それに伴ってHDLシミュレーションに必要なデータやプログラムが増加して、処理に長時間がかかるようになってきた。そしてこのため、OS(Operating System)込みの検証や網羅的な検証項目の検証を行うのが難しく、HDLシミュレーションにより回路の全ての動作を検証することが難しくなってきた。 However, when many functions are installed in a circuit such as SOC (System On a Chip), the scale of the circuit increases, and the data and programs necessary for the HDL simulation increase accordingly, and the processing takes a long time. It has become like this. For this reason, it is difficult to perform verification including OS (Operating System) and verification of comprehensive verification items, and it has become difficult to verify all operations of the circuit by HDL simulation.
このような問題に対処するため、検証対象回路の論理の一部をFPGA(Field-Programmable Gate Array)に組み込み、このFPGAによるエミュレーションとHDLシミュレーションとを組み合わせて検証を行う協調検証という手法が用いられるようになってきた。
この協調検証に関する技術としては、例えば特許文献1乃至3に記載のものが知られている。
In order to cope with such a problem, a technique called collaborative verification is used in which part of the logic of the circuit to be verified is incorporated into an FPGA (Field-Programmable Gate Array), and verification is performed by combining emulation by this FPGA and HDL simulation. It has become like this.
As technologies related to this cooperative verification, for example, those described in
特許文献1には、FPGAエミュレータがエミュレートする回路とHDLシミュレータがシミュレートする回路の構成を動的に変更することにより、協調検証装置の処理速度を向上させる技術が開示されている。
特許文献2には、ハードウェアエミュレータからシステムシミュレータに出力する出力信号が変化した場合のみシステムシミュレータがその出力信号を取り込むようにすることにより、ハードウェアエミュレータとシステムシミュレータとの間の通信量を減らす技術が開示されている。
In Patent Document 2, the amount of communication between the hardware emulator and the system simulator is reduced by causing the system simulator to capture the output signal only when the output signal output from the hardware emulator to the system simulator changes. Technology is disclosed.
特許文献3には、エミュレータにCPUコアを除く検証対象回路とCPUコアをマッピングしつつ、通常動作モードとデバッグモードを切り替えながら検証を行うことが開示されている。このうち通常動作モードはエミュレータのCPUコアが動作させて高速処理を可能とし、デバッグモードは、エミュレータを動かしながらソフトウェアの実行はコンピュータ上の命令セットシミュレータで検証することにより、効果的なデバッグを行うものである。
なお、特許文献3の技術は、高速性を優先したモードとデバッグ性を優先したモードとを切り替えることができるものであるが、高速性とデバッグ性を兼ね備えたモードが用意されているものではない。
Patent Document 3 discloses that verification is performed while switching a normal operation mode and a debug mode while mapping a verification target circuit excluding a CPU core and a CPU core on an emulator. Of these, the normal operation mode allows the emulator's CPU core to operate and enables high-speed processing, while the debug mode enables effective debugging by running the emulator and verifying software execution with an instruction set simulator on the computer. Is.
The technique of Patent Document 3 can switch between a mode that prioritizes high speed and a mode that prioritizes debugging, but a mode that combines high speed and debugging is not prepared. .
ところで、協調検証を行うための協調検証装置は、従来、例えば図17乃至図19に示す構成であった。図17は、その協調検証装置のハードウェア構成を示す図である。図18は、図17のPCが備える機能を示す図である。図19は、図17の協調検証装置による検証動作の様子を模式的に示す図である。 By the way, the cooperation verification apparatus for performing a cooperation verification was conventionally the structure shown, for example in FIG. 17 thru | or FIG. FIG. 17 is a diagram illustrating a hardware configuration of the cooperative verification apparatus. FIG. 18 is a diagram showing functions provided in the PC of FIG. FIG. 19 is a diagram schematically illustrating a verification operation performed by the cooperative verification apparatus in FIG.
まず、ハードウェアとしては、図17に示すように、ハードウェアエミュレーションに用いるFPGA220を搭載したFPGAボード210を、HDLシミュレーションを行うコンピュータであるPC(パーソナルコンピュータ)230と、通信ケーブル240により接続により接続していた。
First, as hardware, as shown in FIG. 17, an FPGA board 210 equipped with an FPGA 220 used for hardware emulation is connected to a PC (personal computer) 230, which is a computer that performs HDL simulation, by a
またPC230においては、図18に示すように、CPU231がLinux(登録商標)等のOS(オペレーティングシステム)250を実行すると共に、そのOS250上で動作するアプリケーションであるHDLシミュレータ260及びテストベンチアプリ
270を実行する。また、CPU231はFPGAボード210及びFPGA220との間のデータ送受信を、PC230が備えるバス及び通信I/Fを介し、さらに通信ケーブル240を介して行う。
In the PC 230, as shown in FIG. 18, the
HDLシミュレータ260は、回路の構成をHDLにより記述したHDLデータに基づき、その回路の動作をシミュレートする機能を備える。
テストベンチアプリ270は、回路の動作を検証するための入力信号あるいは入力データを生成してHDLシミュレータ260又はFPGA220に供給する機能を備える。また、その入力信号あるいは入力データに応じてHDLシミュレータ260及びFPGA220が出力する出力データ及び出力信号し、その内容が適切であるかを監視する機能を備える。HDLシミュレータ260及びFPGA220から、入力に対して想定通りの出力が帰ってくれば、検証対象の回路は想定通りに動作すると判断することができる。
The
The
ここで、検証対象の回路が第1〜第3モジュールにより構成されるとする。
この場合、図19に示すように、そのうち一部のモジュール(ここでは第1及び第2モジュール)と対応する回路を、FPGA220をプログラムすることにより第1モジュール221及び第2モジュール222としてFPGA220中に形成する。このことにより、FPGA220はこれらのモジュールの機能をエミュレートする。
また、残りの第3モジュールの構成をHDLにより記述し、PC230が実行するアプリケーション(アプリ)であるHDLシミュレータ260に入力する。このことにより、HDLシミュレータは第3モジュールの機能を第3モジュール233としてシミュレートする。
Here, it is assumed that the circuit to be verified is configured by the first to third modules.
In this case, as shown in FIG. 19, circuits corresponding to some of the modules (here, the first and second modules) are programmed into the FPGA 220 as the
Further, the configuration of the remaining third module is described in HDL, and is input to the
そして、テストベンチアプリ270により実現されるテストベンチ132が、第1モジュール221、第2モジュール222及び第3モジュール233にそれぞれ入力データあるいは入力信号を供給する。また、テストベンチ232は、これらの各モジュールから出力データ及び出力信号を収集する。さらに、各モジュールは、動作中に他のモジュールとの間でデータあるいは信号を送受信する場合もある。
Then, the test bench 132 realized by the
これらのうち、第1モジュール221と第2モジュール222との間の送受信は、FPGA220内の信号線を用いて行うことができる。第3モジュール233とテストベンチ232との間の送受信は、PC230内のプロセス間通信により行うことができる。これらの通信路については、FPGA220のプログラムあるいはHDLシミュレータ260及びテストベンチアプリ270のプログラムにより、比較的容易に広い通信帯域を確保することができる。
Among these, transmission / reception between the
しかし、PC230とFPGA220をまたぐ送受信、すなわち、第3モジュール233及びテストベンチ232と、第1及び第2モジュール221,222との間の通信は、通信ケーブル240を介して行うことになる。この通信ケーブル240を介した通信については、通信ケーブル240の通信規格に従ったデータ形式の変換が必要であったり、構成の変更が困難であったりすることから、通信帯域に制約があり、またその拡張も容易に行うことができなかった。
However, transmission / reception across the PC 230 and the FPGA 220, that is, communication between the
従って、PC230とFPGA220をまたぐ送受信の回数やデータ量が大きくなる場合、通信速度が制約となり、協調検証の速度が低下してしまうという問題があった。
このような問題を解決する技術については、特許文献1乃至3にも記載されていない。
この発明は、このような問題を解決し、協調検証の速度を向上させることを目的とする。
Therefore, when the number of times of transmission / reception across the PC 230 and the FPGA 220 and the amount of data increase, there is a problem that the communication speed is restricted and the speed of cooperative verification is reduced.
An object of the present invention is to solve such problems and improve the speed of collaborative verification.
以上の目的を達成するため、この発明は、ソフトウェアシミュレーションとハードウェアエミュレーションを組み合わせて電子回路の動作を検証する協調検証装置において、上記ハードウェアエミュレーションを行うプログラマブル回路にCPUを内蔵し、そのCPUに上記ソフトウェアシミュレーションを実行させるようにしたものである。 In order to achieve the above object, the present invention provides a collaborative verification apparatus that verifies the operation of an electronic circuit by combining software simulation and hardware emulation, and incorporates a CPU in the programmable circuit that performs the hardware emulation. The software simulation is executed.
上記構成によれば、協調検証の速度を向上させることができる。 According to the above configuration, the speed of cooperative verification can be improved.
以下、この発明を実施するための形態について、具体的に説明する。
〔第1の実施形態:図1乃至図9〕
まず、図1に、この発明の協調検証装置の一実施形態のハードウェア構成を示す。
この実施形態の協調検証装置は、図1に示すFPGA(Field-Programmable Gate Array)ボード10及びメモリ40として構成される。また、FPGAボード10は、接続ケーブル60によりPC50と接続され、PC50が協調検証装置のユーザインタフェースとして機能する。従って、PC50も含めて協調検証装置であると捉えることもできる。
Hereinafter, embodiments for carrying out the present invention will be specifically described.
[First Embodiment: FIGS. 1 to 9]
First, FIG. 1 shows a hardware configuration of an embodiment of the cooperative verification apparatus of the present invention.
The cooperative verification apparatus of this embodiment is configured as an FPGA (Field-Programmable Gate Array) board 10 and a
このうちFPGAボード10は、通信インタフェース(I/F)11及びFPGA20を備える。
通信I/F11は、PC50と通信するための通信線60を接続するインタフェースであり、任意の規格のものを採用することができる。ここでは有線で示したが、無線通信も採用可能である。
Among these, the FPGA board 10 includes a communication interface (I / F) 11 and an
The communication I /
FPGA20は、論理ゲートを多数配置すると共にゲート間の接続回路をプログラムにより書き換え可能としたプログラマブル回路である。このプログラムの設定は、PC50から通信I/F11を介して行うことができる。
また、FPGA20はCPU30を内蔵している。CPU30は、回路構成は固定であるが、所望のプログラムを読み込ませて実行させることにより、様々な情報処理を柔軟に実行させることができる。
The
The
また、FPGAボード10には、メモリ40が接続される。このメモリ40は、CPU30が実行するプログラム、協調検証に用いるデータ及び協調検証の実行結果ログ等を記憶する記憶手段である。DDR(Double-Data-Rate)RAM、SD(Synchronous Dynamic)RAM、USB(Universal Serial Bus)メモリ、NAND型フラッシュメモリなど、任意の規格のメモリを用いることができる。
Further, the
メモリ40に記憶させるプログラムには、CPU30に回路の動作をシミュレートする機能を実現させるためのHDLシミュレータ、CPU30にテストベンチの機能を実現させるためのテストベンチアプリ、及びこれらの実行環境を提供するOSが含まれる。OSとしては、例えばLinux(登録商標)を用いることができる。
また、メモリ40に記憶させるデータには、HDLシミュレータのアプリデータであるHDLデータ、およびHDLシミュレータにシミュレートさせる回路の構成をRTL(Register Transfer Level)で記述したRTLデータが含まれる。また、テストベンチアプリに各モジュールへの入力を行わせる信号及びデータや、想定される出力信号及び出力データを記述したテストベンチデータも含まれる。
The program stored in the
The data stored in the
図2に模式的に示すように、CPU30は、FPGA20上の配線を通じてデータ及び信号を入出力する。メモリ40へのアクセスもこれに含まれる。そして、CPU30はOS36、HDLシミュレータ37及びテストベンチアプリ38をメモリ40から読み出して実行することにより、検証対象の回路の機能をシミュレートする機能及びテストベンチの機能を実現する。
As schematically shown in FIG. 2, the
なお、メモリ40へは、PC50からもFPGAボート10を介してアクセス可能である。従って、HDLデータ及びテストベンチデータは、ユーザがPC50を操作してメモリ40へ設定することができる。また、ユーザは、PC50を操作してメモリ40から協調検証の実行ログを読み出すことにより、実行結果を参照することができる。
Note that the
また、協調検証の実行開始指示や中断指示も、PC50からFPGAボード10に必要な信号を送信することにより、行うことができる。FPGAボード10は、この信号を受け取ると、FPGA20の配線を通じてCPU30に実行開始や中断を指示する信号を入力する。CPU30は、例えば検証の開始を指示する信号の入力を受け付けると、メモリ40から必要なプログラム及びデータを読み出して、回路の動作のシミュレートを開始すると共に、テストベンチによる動作検証を開始する。また、その結果をログとしてメモリ40に記録する。
In addition, the execution start instruction and the interruption instruction of the cooperative verification can be performed by transmitting a necessary signal from the PC 50 to the FPGA board 10. Upon receiving this signal, the FPGA board 10 inputs a signal instructing the
ここで、図3に、図1の協調検証装置による検証動作の様子を模式的に示す。
ここで、検証対象の回路は、図19の場合と同様に第1〜第3モジュールにより構成されるとする。
Here, FIG. 3 schematically shows a verification operation by the cooperative verification apparatus of FIG.
Here, it is assumed that the circuit to be verified is constituted by the first to third modules as in the case of FIG.
この場合、図3に示すように、そのうち一部のモジュール(ここでは第1及び第2モジュール)と対応する回路を、FPGA20をプログラムすることにより第1モジュール21及び第2モジュール22としてFPGA20中に形成する。このことにより、FPGA20はこれらのモジュールの機能をエミュレートする。FPGA20へのプログラムの設定は、PC50から通信I/F11を介して行うことができる。
また、残りの第3モジュールの構成をHDLにより記述し、そのHDLデータをメモリ40に記憶させておく。このことにより、CPU30がそのHDLデータを読み出し、第3モジュールの動作を第3モジュール31としてシミュレートする。
In this case, as shown in FIG. 3, circuits corresponding to some of the modules (here, the first and second modules) are programmed into the
Further, the configuration of the remaining third module is described in HDL, and the HDL data is stored in the
そして、テストベンチアプリ38により実現されるテストベンチ32が、第1モジュール21、第2モジュール22及び第3モジュール31にそれぞれ入力データあるいは入力信号を供給する。また、テストベンチ32は、これらの各モジュールから出力データ及び出力信号を収集する。さらに、各モジュールは、動作中に他のモジュールとの間でデータあるいは信号を送受信する場合もある。
The
これらのうち、第1モジュール21と第2モジュール22との間の送受信は、FPGA20内の信号線を用いた信号送受信によりシミュレートすることができる。第3モジュール31とテストベンチ32との間の送受信は、PC30内のプロセス間通信によりシミュレートすることができる。
また、CPU30とFPGA20をまたぐ送受信、すなわち、第3モジュール31及びテストベンチ32と、第1及び第2モジュール21,22との間の信号送受信は、CPU30とFPGA20との間の信号送受信によりシミュレートすることができる。この信号送受信は、図では破線で示しており、CPU30が接続されるFPGA20の配線を介して行うことができる。
Among these, transmission / reception between the
Further, transmission / reception between the
従って、通信線60のように通信I/F11を介して通信を行う場合に比べ、高速に通信を行うことができる。また、通信すべきデータ及び信号の量や通信の頻度が多い場合、FPGA20のプログラムを変更することにより、CPU30の端子数の制約はあるものの、通信バッファを増加させる等して、帯域の拡大を比較的容易に行うことができる。
Therefore, communication can be performed at a higher speed than when communication is performed via the communication I /
このため、CPU30をFPGA20の外部、特にFPGAボード10の外部に設ける図17のような構成の場合と比べ、CPUとFPGAとの間の通信速度の制約による検証速度の低下が起こりにくくなる。そして、ソフトウェアシミュレーションとハードウェアエミュレーションを組み合わせて電子回路の動作を協調検証する場合の検証速度を向上させることができる。
For this reason, compared with the case of the configuration as shown in FIG. 17 in which the
なお、図1に示した協調検証装置は、メモリ40に記憶させるプログラムやデータを変更することにより、図3とは異なる環境での協調検証を行うこともできる。
例えば、図4に示すように、CPU30に、回路の動作をシミュレートするためのアプリとして、HDLシミュレータ37に加えて仮想ハードウェア(HW)アプリ39を実行させることが考えられる。仮想HWアプリ39は、SystemC等の言語で書かれた、RTL記述よりも抽象度の高いモデルを用いたシミュレーション環境を提供するアプリである。
The cooperative verification apparatus shown in FIG. 1 can also perform cooperative verification in an environment different from that shown in FIG. 3 by changing programs and data stored in the
For example, as shown in FIG. 4, it is conceivable to cause the
この場合、図5に示すように、CPU30内において、HDLシミュレータ37と仮想HWアプリ39とにより、それぞれ別個のモジュールの動作をシミュレートすることができる。
図5の例では、検証対象の回路は、第1〜第4のモジュールにより構成されるとしている。そのうち第1,第2モジュールの機能は図3の場合と同じくFPGA20がエミュレートする。第3モジュールの動作はCPU30がHDLシミュレータ37によりシミュレートする。第4モジュールの動作はCPU30が仮想HWアプリ39によりシミュレートする。テストベンチについては図3の場合と同様である。
In this case, as shown in FIG. 5, the operation of separate modules can be simulated by the
In the example of FIG. 5, the circuit to be verified is configured by first to fourth modules. Among them, the functions of the first and second modules are emulated by the
この場合、CPU30が複数のモジュールの動作をシミュレートするが、それらのモジュール間の通信については、CPU30が実行するプロセス同士のプロセス間通信によりシミュレートすることができる。
また、FPGA20がエミュレートするモジュールと、CPU30がシミュレートするモジュールとの間の信号送受信は、図3の場合と同様CPU30とFPGA20との間の信号送受信によりシミュレートすることができる。もちろん、この信号送受信をCPU30が接続されるFPGA20の配線を介して行うことができることも図3の場合と同様である。従って、図3の場合と同様、協調検証の速度を向上させることができる。
In this case, the
Further, signal transmission / reception between the module emulated by the
また、図6に示すように、CPU30における回路の動作のシミュレートを、仮想HWアプリ39のみにより行うこともできる。しかし、シミュレートに用いるアプリが変わっても、図7に示すように、シミュレートの大枠は図5の場合と変わらない。
すなわち、CPU30が、検証対象回路のうち一部のモジュールの動作をシミュレートし、FPGA20が検証対象回路のうち他のモジュールの動作をエミュレートする。また、FPGA20とCPU30との間での信号送受信により、CPU30がシミュレートするモジュールとFPGA20がエミュレートするモジュールとの間の信号送受信をシミュレートする。
図5との違いは、第3モジュール31′を仮想HWアプリ39によりシミュレートする点のみである。
Further, as shown in FIG. 6, the operation of the circuit in the
That is, the
The only difference from FIG. 5 is that the
そして、協調検証の速度向上の効果は、CPU30がシミュレートに用いるアプリの種類によらず得ることができる。
実際の電子回路の設計に当たっては、抽象度の違う記述方式を用いて回路の構成を記載し、それぞれその動作を検証することが行われる。しかし、本実施形態の協調検証装置を用いることにより、メモリ40に、適当なアプリ及び回路構成のデータ等を記憶させておくことにより、抽象度によらず、高速な協調検証が可能である。
The effect of improving the speed of cooperative verification can be obtained regardless of the type of application used by the
In designing an actual electronic circuit, a circuit configuration is described using a description method having different abstraction levels, and each operation is verified. However, by using the collaborative verification device of this embodiment and storing data of an appropriate application and circuit configuration in the
また、本実施形態の協調検証装置は、等価性検証にも用いることができる。等価性検証とは、異なる方式の記述に基づきシミュレートあるいはエミュレートした回路が同じ入力に対して同じ出力を返すかに基づき、各方式の記述が等価であるか否かを検証するものである。
この等価性検証を行う場合、図8に示すように、CPU30にはテストベンチアプリ38に代えて等価性検証アプリ41を実行させる。回路の動作をシミュレートするためのアプリについては、FPGA20の回路構成を記述するゲートレベル記述との間で等価性を検証したい記述方式に対応したアプリを用いる。
Moreover, the cooperative verification apparatus of this embodiment can also be used for equivalence verification. Equivalence verification is to verify whether the description of each method is equivalent based on whether the circuit simulated or emulated based on the description of different methods returns the same output for the same input. .
When performing this equivalence verification, as shown in FIG. 8, the
そして、図9に示すように、FPGA20にはある回路モジュール(ここでは第1モジュール)の動作をエミュレートさせ、CPU30にも、それと同じ回路モジュールの動作をシミュレートさせる。ここで、FPGA20においてエミュレーション回路を形成する際には、回路の構成はゲートレベルで記述する。CPU30にシミュレーションを行わせる際には、回路の構成はこれより抽象度の高いHDL又はRTLで記述する。仮想HW環境を用いれば、さらに抽象度の高い方式で記述することもできる。
Then, as shown in FIG. 9, the
また、CPU30は等価性検証アプリ41を実行することにより等価性検証用テストベンチ35の機能を実現する。そして、FPGA20がエミュレートする第1モジュール21と、CPU30がシミュレートする第1モジュール34に対し、同じ入力信号(又はそのデータ)を与え、出力信号(又はそのデータ)を取得する。そして、等価性検証用テストベンチ35は、双方からの出力信号を比較して、一致していれば、FPGA20に与えたゲートレベルの記述とCPU30に与えたより抽象度の高い記述とは等価であると判断する。一致していなければ、等価でないと判断する。
The
このとき、等価性検証用テストベンチ35は、CPU30側の第1モジュール34との通信は、CPU30内のプロセス間通信により行い、FPGA20側の第1モジュール21との通信は、CPU30が接続されるFPGA20の配線を介して行う。
ここで、等価性検証用テストベンチ35が、多種類の入力を各モジュールに与えてその出力を逐一取得する場合、FPGA20とCPU30との間で多量の通信が発生することになる。しかし、本実施形態のようにFPGA20にCPU30を内蔵することにより、CPUとFPGAとの間の通信速度の制約による検証速度の低下が起こりにくくなる。従って、等価性検証の速度も図3の場合と同様に向上させることができる。
At this time, the equivalence
Here, when the equivalence
〔第2の実施形態:図10乃至図14〕
次に、この発明の協調検証装置の第2の実施形態について説明する。
図10に、この発明の協調検証装置の第2の実施形態による検証動作の様子を模式的に示す。
第2の実施形態においても、FPGAボード10上にCPU30を内蔵したFPGA20を設け、さらにFPGAボード10にメモリ40を接続して協調検証装置を構成している点は、第1の実施形態の場合と同様である。
[Second Embodiment: FIGS. 10 to 14]
Next, a second embodiment of the cooperative verification apparatus of the present invention will be described.
FIG. 10 schematically shows a verification operation according to the second embodiment of the cooperative verification apparatus of the present invention.
Also in the second embodiment, the
ただし、ユーザインタフェースとしては、第1の実施形態におけるPC50に代えて、モニタ51を設けている。このモニタ51は、FPGAボード10から送信される検証結果のデータに基づき、その内容をユーザが参照できるように波形や数値等として表示する機能を備える。また、検証内容を示すパラメータ等の設定を受け付けるGUIを表示すると共に、そのGUIに対するユーザの操作を受け付け、操作内容をFPGAボード10に渡す機能を備える。 However, as a user interface, a monitor 51 is provided instead of the PC 50 in the first embodiment. The monitor 51 has a function of displaying the content as a waveform, a numerical value, or the like so that the user can refer to the content based on the verification result data transmitted from the FPGA board 10. In addition, it has a function of displaying a GUI for accepting settings such as parameters indicating verification contents, receiving a user operation on the GUI, and passing the operation contents to the FPGA board 10.
モニタ51に対して表示に必要なデータを提供し、またモニタ51から送信される操作内容のデータに従いFPGA20を含むFPGAボード10の各部の設定を行う機能は、CPU30が必要なプログラムを実行することにより実現する。
ところで、この第2の実施形態において、協調検証装置は、2つの送受信モジュール間のデータ送受信機能に関する検証を行う。そして、その一方のモジュールの機能を、第1送受信モジュール61としてFPGA20がエミュレートする。また、他方のモジュールの機能を、第2送受信モジュール71としてCPU30がシミュレートする。
The function of providing data necessary for display to the monitor 51 and setting each part of the FPGA board 10 including the
By the way, in this 2nd Embodiment, a cooperation verification apparatus performs verification regarding the data transmission / reception function between two transmission / reception modules. Then, the
また、これらの送受信モジュールの間には、通信状況の監視及び操作を行うための転送部を設けている。第1送受信モジュール61側では、第1転送手段である第1転送部62の機能をFPGA20に実現させる。第2送受信モジュール71側では、第2転送手段である第2転送部72の機能をCPU30に実現させる。
In addition, a transfer unit for monitoring and operating the communication status is provided between these transmission / reception modules. On the first transmission /
そして、第1送受信モジュール61から第2送受信モジュール71へのデータ送信をシミュレートする場合、第1送受信モジュール61にはまず第2送受信モジュール71へ送信すべきデータを第1転送部62へ送信させる。ここで、第1転送部62はそのデータを一旦保持し、後でポストデバッグ等の際にログとして送受信順に参照できるように第1蓄積部63に蓄積する。第1蓄積部63は、メモリ40に設けることができる。
When simulating data transmission from the first transmission /
また、第1転送部62は、第1送受信モジュール61から受け取ったデータを第2転送部72に転送する。第2転送部72は、そのデータを一旦保持し、後でポストデバッグ等の際にログとして送受信順に参照できるように第2蓄積部73に蓄積する。第2蓄積部73は、CPU30が実現する機能として示したが、CPU30の内部メモリではなく、メモリ40に設けてもよい。
その後、第2転送部72は、第1転送部62から受け取ったデータを第2送受信モジュール71に転送する。
The
Thereafter, the
以上で、第1送受信モジュール61から第2送受信モジュール71へのデータ送信が完了する。第2送受信モジュール71から第1送受信モジュール61へのデータ送信は、この逆順で行う。以上の送信過程において、第1転送部62及び第2転送部72は、送受信したデータを後で送受信順に参照できるように記憶手段に蓄積する蓄積手段としても機能する。
Thus, data transmission from the first transmission /
なお、以上の送信過程において、第1転送部62及び第2転送部72は、連続して送信されるデータの転送順序を故意に変更したり、データのヘッダ情報を変更したり、データの送信を遅延させたりするといった、エラーモードの動作を行うことができる。各蓄積部に蓄積したデータは、これらの動作を行う際のデータの転送順管理に用いることができる。もちろん、正常な送信を行う場合の送信順管理にも用いることができる。
後でログを参照する必要がないのであれば、蓄積部を設ける記憶手段の容量に制約が大きい等の場合、上記の送信順管理に必要な量のデータのみ各蓄積部に蓄積するようにしてもよい。
In the above transmission process, the
If there is no need to refer to the log later, if there is a large limitation on the capacity of the storage means provided with the storage unit, only the amount of data necessary for the above transmission order management is stored in each storage unit. Also good.
また、図10において、ISS(Instruction Set Simulator)74は、インストラクション精度で動くCPUモデルである。FPGAボード10を用いた検証を行う場合、このISS74が、シミュレーション対象の各モジュール(FPGA20がエミュレートするものも含む)の動作を制御する。図10では、第1送受信モジュール61、第1転送部62、第2送受信モジュール71及び第2転送部72が制御対象に該当する。
In FIG. 10, an ISS (Instruction Set Simulator) 74 is a CPU model that moves with instruction accuracy. When verification using the FPGA board 10 is performed, the
ワークメモリ75は、ISS74が制御動作に使用するメモリである。
周辺機器76は、UART(Universal Asynchronous Receiver Transmitter)やタイマなど、ISS74が制御を行うために用いる高抽象度のモジュール群である。
これらのISS74、ワークメモリ75及び周辺機器76の機能も、CPU30が所要のプログラムを実行することにより実現する。
The
The
The functions of the
次に、図10に示した協調検証装置において第1送受信モジュール61と第2送受信モジュール71との間のデータ送受信をシミュレートする際に図10に示した各部が実行する動作について、図11乃至図13のフローチャートを用いて説明する。
これらのフローチャートに示す動作のうち、FPGA20に設けた各部が実行する動作は、FPGA20がプログラムされたハードウェアロジックにより、ISS74の制御に基づき行うものである。CPU30に設けた各部が実行する動作は、CPU30が所要のプログラムを実行することにより行うものである。
Next, the operations performed by the units shown in FIG. 10 when simulating data transmission / reception between the first transmission /
Of the operations shown in these flowcharts, the operations performed by each unit provided in the
まず図11に、第1送受信モジュール61が第2送受信モジュール71にデータを送信する際の動作を示す。
この動作においてはまず、ISS74が第1送受信モジュール61へデータ送信を指示する(S11)。このとき、送信すべきデータの指定も行う。
First, FIG. 11 shows an operation when the first transmission /
In this operation, first, the
第1送受信モジュール61はこれを受けて、自身がデータ送信可能な状態か否か判断する(S12)。送信可能な状態であれば、送信すべきデータに対し、送信時処理を行う(S13)。この処理は、例えばTOE(TCP/IP Offload Engine)を用いる場合にはヘッダ処理等である。この送受信処理が完了すると、第1送受信モジュール61は第1転送部62へ処理後のデータを送信する(S14)。
In response to this, the first transmission /
これを受信した第1転送部62は、第1蓄積部63へそのデータを書き込む(S15)。そして、第1転送部62において前のデータ転送が完了しているか否か判断する(S16)。ここで完了していれば、第1転送部62はステップS14で受信したデータを第2転送部72へ送信する(S17)。
Receiving this, the
これを受信した第2転送部72は、第2蓄積部73へそのデータを書き込む(S18)と共に、受信したデータを第2送受信モジュール71の受信部へ送信する(S19)。
第2送受信モジュール71がここで受信したデータに対して受信時処理を実行し(S20)、以上で第1送受信モジュール61から第2送受信モジュール71への1回のデータ送信のシミュレートが完了する。
Receiving this, the
The second transmission /
なお、ステップS12でNOの場合、第1送受信モジュール61は直ちにデータ送信を行うことができない。この場合、レジスタにおいて第1送受信モジュール61が送信不能時にデータを破棄する設定がなされていれば(S21のYES)、第1送受信モジュール61は送信を指示されたデータを破棄する(S22)。この場合、ここまででステップS11のISS74からの指示に係るデータ送信動作は終了する。
ステップS21で破棄する設定がされていなければ、ステップS12に戻って処理を繰り返す。
In the case of NO in step S12, the first transmission /
If it is not set to be discarded in step S21, the process returns to step S12 and is repeated.
また、ステップS16でNOの場合、第1転送部62は直ちにデータ送信を行うことができない。この場合、レジスタにおいて第1転送部62が送信不能時にデータを破棄する設定がなされていれば(S23のYES)、第1転送部62は送信を指示されたデータを破棄する(S24)。この場合、ここまででステップS11のISS74からの指示に係るデータ送信動作は終了する。
If NO in step S16, the
ステップS23で破棄する設定がされていなければ、ステップS16に戻って処理を繰り返す。
第1送受信モジュール61と第1転送部62のいずれにおいてもデータを破棄する設定がなされていなければ、最終的にはステップS17以下に進んで第1送受信モジュール61から第2送受信モジュール71へのデータ送信が実行されることになる。
If it is not set to be discarded in step S23, the process returns to step S16 and is repeated.
If neither the first transmission /
次に図12に、第2送受信モジュール71が第1送受信モジュール61にデータを送信する際の動作を示す。この動作は、図11と逆向きに同様な手順でデータを送信するものである。
この動作においてはまず、ISS74が第2送受信モジュール71へデータ送信を指示する(S31)。このとき、送信すべきデータの指定も行う。
Next, FIG. 12 shows an operation when the second transmission /
In this operation, first, the
第2送受信モジュール71はこれを受けて、自身がデータ送信可能な状態か否か判断する(S32)。送信可能な状態であれば、送信すべきデータに対し、送信時処理を行う(S33)。この処理は、例えばTOE(TCP/IP Offload Engine)を用いる場合にはヘッダ処理等である。この送受信処理が完了すると、第2送受信モジュール71は第2転送部72へ処理後のデータを送信する(S34)。
In response to this, the second transmission /
これを受信した第2転送部72は、第2蓄積部73へそのデータを書き込む(S35)。そして、第2転送部72において前のデータ転送が完了しているか否か判断する(S36)。ここで完了していれば、第2転送部72はステップS34で受信したデータを第1転送部62へ送信する(S37)。
Receiving this, the
これを受信した第1転送部62は、第1蓄積部63へそのデータを書き込む(S38)と共に、受信したデータを第1送受信モジュール61の受信部へ送信する(S39)。
第1送受信モジュール61がここで受信したデータに対して受信時処理を実行し(S40)、以上で第2送受信モジュール71から第1送受信モジュール61への1回のデータ送信のシミュレートが完了する。
Receiving this, the
The first transmission /
なお、ステップS32でNOの場合、第2送受信モジュール71は直ちにデータ送信を行うことができない。この場合、レジスタにおいて第2送受信モジュール71が送信不能時にデータを破棄する設定がなされていれば(S41のYES)、第2送受信モジュール71は送信を指示されたデータを破棄する(S42)。この場合、ここまででステップS31のISS74からの指示に係るデータ送信動作は終了する。
In the case of NO in step S32, the second transmission /
ステップS41で破棄する設定がされていなければ、ステップS32に戻って処理を繰り返す。
また、ステップS36でNOの場合、第2転送部72は直ちにデータ送信を行うことができない。この場合、レジスタにおいて第2転送部72が送信不能時にデータを破棄する設定がなされていれば(S43のYES)、第2転送部72は送信を指示されたデータを破棄する(S44)。この場合、ここまででステップS31のISS74からの指示に係るデータ送信動作は終了する。
If it is not set to be discarded in step S41, the process returns to step S32 and the process is repeated.
If NO in step S36, the
ステップS43で破棄する設定がされていなければ、ステップS36に戻って処理を繰り返す。
第1送受信モジュール61と第1転送部62のいずれにおいてもデータを破棄する設定がなされていなければ、最終的にはステップS37以下に進んで第1送受信モジュール61から第2送受信モジュール71へのデータ送信が実行されることになる。
If it is not set to discard in step S43, the process returns to step S36 and the process is repeated.
If neither the first transmission /
次に図13及び図14に、第2送受信モジュール71がエラーモードで第1送受信モジュール61にデータを送信する際の動作を示す。
この動作においてはまず、ISS74がレジスタにエラーモードを設定する(S51)。このとき、発生させるエラーの種類も設定する。
Next, FIGS. 13 and 14 show an operation when the second transmission /
In this operation, first, the
その後、ISS74が第2送受信モジュール71へデータ送信を指示してから、第2転送部72が第2蓄積部73へ送信データを書き込む動作までは、図12のステップS31乃至S35及びS41、S42と同様である(S52〜S58)。
ステップS56の後は、動作は図14に示す部分に進む。そして、第2転送部72が、設定されているエラーモードの種類を判定し、以下、エラーモードの種類に応じた動作を行う。なお、図示を省略したが、エラーモードが設定されていない場合には図12の場合と同じ処理を行う。
Thereafter, from the time when the
After step S56, the operation proceeds to the portion shown in FIG. Then, the
ステップS59で順序変更である場合、第2転送部72は、次のデータが第2送受信モジュール71から送信されてくるまで待機する(S60)。順序変更のエラーモードは、シーケンシャルに複数のデータを送信する場合に設定されるものであり、第2送受信モジュール71からは、ISS74の指示に基づき次のデータが送信されてくるはずである。
If the order is changed in step S59, the
この次のデータを受信すると、第2転送部72は、第1転送部62へ後から送信されてきた(次の)データを送信する(S61)。これを受信した第1転送部62は、第1蓄積部63へそのデータを書き込む(S62)と共に、受信したデータを第1送受信モジュール61の受信部へ送信する(S63)。
When the next data is received, the
第1送受信モジュール61がここで受信したデータに対して受信時処理を実行し(S40)、以上で第2送受信モジュール71から第1送受信モジュール61への「次のデータ」の送信のシミュレートが完了する。なお、第2転送部72は、ステップS61で後から送信されてきたデータを送信する際にも、そのデータを第2蓄積部73に書き込むようにしてもよい。
The first transmission /
ステップS64の後、第2転送部72は、ステップS55で受信した「先に送信されてきたデータ」を、第1転送部62へ送信する(S65)。第2転送部72に、このデータをステップS61〜S64の間保持しておくメモリがない場合、送信すべきデータは、第2蓄積部73から読み出してくればよい。
After step S64, the
これを受信した第1転送部62は、第1蓄積部63へそのデータを書き込む(S70)と共に、受信したデータを第1送受信モジュール61の受信部へ送信する(S71)。
第1送受信モジュール61がここで受信したデータに対して受信時処理を実行し(S72)、以上で第2送受信モジュール71から第1送受信モジュール61への「先に送信されてきたデータ」の送信のシミュレートが完了する。
また、以上で、第2送受信モジュール71から第1送受信モジュール61への、エラーにより2つのデータの順序が入れ替わってしまった送信のシミュレートが完了する。
Receiving this, the
The first transmission /
In addition, the transmission simulation from the second transmission /
また、ステップS59でヘッダ情報変更の場合、第2転送部72は、ステップS55で受信したデータのヘッダ情報を変更する。ヘッダ情報とは、例えばデータ転送にIP(Internet Protocol)を用いる場合はIPアドレスやバージョン等である。ヘッダの任意の箇所を変更可能である。
When the header information is changed in step S59, the
その後、第2転送部72は、ヘッダ情報変更後のデータを第1転送部62へ送信する(S67)。以後、第1転送部62及び第1送受信モジュール61は上述の順序変更の場合と同じステップS70乃至S72の動作を実行する。
以上で、第2送受信モジュール71から第1送受信モジュール61への、エラーによりヘッダ情報が変更されてしまった送信のシミュレートが完了する。
Thereafter, the
This completes the transmission simulation from the second transmission /
また、ステップS59で遅延の場合、第2転送部72は、通常の送信時よりも長い所定時間だけ待機することにより、データ送信に遅延を付与する(S68)。その後、第2転送部72は、ステップS55で受信したデータを第1転送部62へ送信する(S69)。以後、第1転送部62及び第1送受信モジュール61は上述の順序変更の場合と同じステップS70乃至S72の動作を実行する。
Further, in the case of a delay in step S59, the
以上で、第2送受信モジュール71から第1送受信モジュール61への、エラーや処理集中等により遅延が発生してしまった送信のシミュレートが完了する。なお、ここでは第2転送部72がエラーモードの動作を行う例について説明したが、第1送受信モジュール61から第2送受信モジュール71にデータを送信する場合に、第1転送部62が同様なエラーモードの動作を行うことができるようにするとよい。
This completes the simulation of transmission from the second transmission /
第2の実施形態の協調検証装置によれば、以上のようなエラーの発生も考慮したモジュール間通信動作の検証を行うことができる。
また、以上の構成でも、第1の実施形態の場合と同様、シミュレータを起動するPCは必要なく、また、PCとFPGAとの間のデータ転送を行う必要がないため、CPUとFPGAとの間の通信速度の制約による検証速度の低下が起こりにくくなる。すなわち、検証速度を向上させることができる。
According to the cooperative verification apparatus of the second embodiment, it is possible to verify the inter-module communication operation in consideration of the occurrence of the error as described above.
Also in the above configuration, as in the case of the first embodiment, there is no need for a PC for starting the simulator, and there is no need to transfer data between the PC and the FPGA. It is difficult for the verification speed to decrease due to restrictions on the communication speed. That is, the verification speed can be improved.
さらに、FPGAに設ける送受信モジュールの対向となる送受信モジュールも、同じFPGAボード内に設けることができるため、1つのFPGAボードで検証が行える。このため、対向モジュールを設けるために追加のFPGAボードを用意する必要がなく、手間とコストが低減する。 Furthermore, since the transmission / reception module opposite to the transmission / reception module provided in the FPGA can also be provided in the same FPGA board, verification can be performed with one FPGA board. For this reason, it is not necessary to prepare an additional FPGA board for providing the opposing module, and labor and cost are reduced.
また、CPUにシミュレートさせる送受信モジュールについては、レジスタアクセスや関数実行やメモリ情報等を容易に可視化でき、解析情報を取得することができる。さらに、第1及び第2の転送部を設け、これによって転送するデータを蓄積するようにしているため、転送内容を後で容易に分析することができる。 In addition, for the transmission / reception module to be simulated by the CPU, register access, function execution, memory information, and the like can be easily visualized, and analysis information can be acquired. Further, since the first and second transfer units are provided to store the data to be transferred, the transfer contents can be easily analyzed later.
〔第2の実施形態の比較例:図15及び図16〕
次に、上述した第2の実施形態の比較例について説明する。
まず図15に、第1の比較例のハードウェア構成及び各ハードウェアに実現させる機能の構成を示す。
この第1の比較例は、PC150に、第1FPGAボード110及び第2FPGAボード130を順次接続して構成している。このうち第1FPGAボード110のFPGA120にはCPUを内蔵せず、第2FPGAボード130のFPGA140はCPU142を内蔵している。
[Comparative example of the second embodiment: FIGS. 15 and 16]
Next, a comparative example of the above-described second embodiment will be described.
First, FIG. 15 shows a hardware configuration of the first comparative example and a configuration of functions realized by each hardware.
In the first comparative example, a first FPGA board 110 and a second FPGA board 130 are sequentially connected to a
そして、FPGA120をプログラムすることにより、第1送受信モジュール121の機能をエミュレートさせる。また、FPGA140をプログラムすることにより、第1送受信モジュール121の対向となる第2送受信モジュール141の機能をエミュレートさせる。
Then, by programming the FPGA 120, the function of the first transmission /
また。PC150においては、CPUに所要のプログラムを実行させることにより、ISS161、ワークメモリ162及び周辺装置163の機能を実現させる。これらの各部の機能は、図10に示したものと同様である。第2送受信モジュール141の制御は、ISS161が担当しても、CPU142が担当してもよい。
Also. In the
このように、FPGAに送受信モジュールの機能をエミュレートさせる構成では、FPGAボードを2枚用いて、2つの送受信モジュールの機能をエミュレートすることになる。このため、協調検証装置を構築する手間とコストが大きくなる。さらに、ISS161の機能をPC150に実現させるとすると、PC150を用意する分コスト高となる。さらに、送受信モジュール間のデータ転送をシミュレータで可視化できないため、デバッグ性が悪いという課題がある。さらに、PC150とFPGAボード110,130間のデータ転送が多くなると、通信速度の制約により検証速度が低下してしまう。
In this way, in the configuration in which the FPGA emulates the functions of the transmission / reception module, the functions of the two transmission / reception modules are emulated using two FPGA boards. For this reason, the effort and cost which construct | assemble a cooperation verification apparatus become large. Further, if the function of the
次に図16に、第2の比較例のハードウェア構成及び各ハードウェアに実現させる機能の構成を示す。
この第2の比較例は、第1のFPGAボード110に搭載するFPGA120′にCPU122を内蔵し、CPU122に所要のプログラムを実行させることにより、ISS161、ワークメモリ162及び周辺装置163の機能を実現させる点が第1の比較例と異なる。
このため、PC150は不要であり、これに代えて、第2の実施形態の場合と同様なモニタ51を設けている。
Next, FIG. 16 shows a hardware configuration of the second comparative example and a configuration of functions realized by each hardware.
In the second comparative example, the functions of the
For this reason, the
この構成では、シミュレータを起動するPCは必要なく、また、PCとFPGAボード間のデータ転送がないので、第1の比較例の構成と比べ、検証速度の低下は起こりにくい。しかし、FPGAボードを2枚用いて、2つの送受信モジュールの機能をエミュレートする点は変わらない。このため、協調検証装置を構築する手間とコストが大きくなる。また、送受信モジュール間のデータ転送をシミュレータで可視化できないため、デバッグ性が悪いという課題も同じく残る。
しかしながら、上述した第2の実施形態の構成であれば、1枚のFPGAボードで検証が行えるため、また、第1及び第2の転送部を設けているため、このような問題は発生しない。
In this configuration, a PC for starting the simulator is not necessary, and there is no data transfer between the PC and the FPGA board, so that the verification speed is less likely to decrease compared to the configuration of the first comparative example. However, there is no change in the use of two FPGA boards to emulate the functions of the two transmission / reception modules. For this reason, the effort and cost which construct | assemble a cooperation verification apparatus become large. Moreover, since the data transfer between the transmission / reception modules cannot be visualized by the simulator, the problem that the debugging performance is poor also remains.
However, with the configuration of the second embodiment described above, verification can be performed with a single FPGA board, and since the first and second transfer units are provided, such a problem does not occur.
〔変形例〕
以上で実施形態の説明を終了するが、この発明において、各部の具体的な構成や処理の内容、データの形式、検証対象回路の構成等は、実施形態で説明したものに限るものではない。
例えば、上述の実施形態ではFPGAボード10の外部にメモリ40を設ける例について説明したが、メモリ40はFPGAボード10に搭載されていてもよい。
[Modification]
Although the description of the embodiment has been completed above, in the present invention, the specific configuration of each unit, the contents of processing, the data format, the configuration of the verification target circuit, and the like are not limited to those described in the embodiment.
For example, in the above-described embodiment, the example in which the
また、CPU30が回路の動作のシミュレートに用いるアプリは、HDLシミュレータ37及び仮想HWアプリ39には限られない。
また、仮想HWアプリは、仮想モデルとしてCPUやバス等をシミュレートすることができる。仮想HWモデルを繋げて仮想プラットフォームを構築し、その環境でOSを動かすこともできる。従って、仮想HWアプリにテストベンチの振る舞いをさせることもできる。
Further, the application that the
The virtual HW application can simulate a CPU, a bus, and the like as a virtual model. A virtual platform can be constructed by connecting virtual HW models, and the OS can be run in that environment. Accordingly, it is possible to make the virtual HW application behave as a test bench.
また、協調検証装置のユーザインタフェースは、PC50には限られず、表示手段と操作手段とを備えた専用の制御装置であってもよい。例えば、FPGAボード10にキーボード(あるいはコンソール)及びディスプレイを接続するためのインタフェースを設けることが考えられる。そして、キーボードの操作によりこのインタフェースを介してCPU30に実行開始や中断を指示する信号を入力し、CPU30が生成した実行結果をディスプレイに表示できるようにすることが考えられる。このようにすれば、PC50を設ける必要はない。
Further, the user interface of the cooperative verification apparatus is not limited to the PC 50, and may be a dedicated control apparatus including a display unit and an operation unit. For example, it is conceivable to provide an interface for connecting a keyboard (or console) and a display to the FPGA board 10. Then, it is conceivable to input a signal for instructing the
また、協調検証装置が行う検証は、上述の実施形態で説明したものに限られない。FPGA20がエミュレートするモジュールの数及びCPU30がシミュレートするモジュールの数も、上述の実施形態で説明したものに限られない。
また、検証対象回路のエミュレートを行うプログラマブル回路も、FPGAに限られない。さらに、プログラマブル回路にCPUを複数内蔵することも可能である。
また、以上説明してきた実施形態及び変形例の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることは勿論である。
Further, the verification performed by the cooperative verification apparatus is not limited to that described in the above embodiment. The number of modules emulated by the
Further, the programmable circuit that emulates the verification target circuit is not limited to the FPGA. Furthermore, it is possible to incorporate a plurality of CPUs in the programmable circuit.
Moreover, it is needless to say that the configurations of the embodiment and the modified examples described above can be arbitrarily combined and implemented as long as they do not contradict each other.
10,210:FPGAボード、11:通信I/F、20,120,140,220:FPGA、21,34,221:第1モジュール、22,222:第2モジュール、30,122,142,231:CPU、31,31′,233:第3モジュール、32,232:テストベンチ、33:第4モジュール、35:等価性検証用テストベンチ、36,250:OS、37,260:HDLシミュレータ、38,270:テストベンチアプリ、39:仮想HWアプリ、40:メモリ、41:等価性検証アプリ、50,150,230:PC、51:ディスプレイ、60:通信線、240:通信ケーブル、61、121:第1送受信モジュール、62:第1転送部、63:第1蓄積部、71,141:第2送受信モジュール、72:第2転送部、73:第2蓄積部、74,161:ISS、75,162:ワークメモリ、76,163:周辺装置、110:第1FPGAボード、130:第2FPGAボード、160:シミュレータ
10, 210: FPGA board, 11: Communication I / F, 20, 120, 140, 220: FPGA, 21, 34, 221: First module, 22, 222: Second module, 30, 122, 142, 231:
Claims (10)
前記ハードウェアエミュレーションを行うプログラマブル回路にCPUを内蔵し、該CPUに前記ソフトウェアシミュレーションを実行させることを特徴とする協調検証装置。 A collaborative verification device that verifies the operation of an electronic circuit by combining software simulation and hardware emulation,
A co-verification apparatus, wherein a CPU is built in a programmable circuit that performs hardware emulation, and the CPU executes the software simulation.
前記CPUが、前記電子回路の一部の動作をシミュレートし、前記プログラマブル回路が前記電子回路の他の部分の動作をエミュレートし、前記プログラマブル回路と前記CPUとの間での信号送受信により、前記電子回路の一部と他の部分との間の信号送受信をシミュレートすることを特徴とする協調検証装置。 The collaborative verification device according to claim 1,
The CPU simulates the operation of a part of the electronic circuit, the programmable circuit emulates the operation of another part of the electronic circuit, and transmits and receives signals between the programmable circuit and the CPU. A cooperative verification apparatus simulating signal transmission / reception between a part of the electronic circuit and another part.
前記プログラマブル回路が、エミュレートした前記電子回路の前記他の部分が送受信するデータを一旦保持する第1転送手段を備え、
前記CPUが、シミュレートした前記電子回路の前記一部が送受信するデータを一旦保持する第2転送手段の機能を実現し、
前記電子回路の一部と他の部分との間の信号送受信を、前記第1転送手段と前記第2転送手段との間の信号送受信によりシミュレートすることを特徴とする協調検証装置。 The collaborative verification device according to claim 2,
The programmable circuit comprises first transfer means for temporarily holding data transmitted and received by the other part of the emulated electronic circuit;
The CPU realizes a function of second transfer means for temporarily holding data transmitted and received by the part of the simulated electronic circuit,
A cooperative verification apparatus simulating signal transmission / reception between a part of the electronic circuit and another part by signal transmission / reception between the first transfer means and the second transfer means.
前記第1転送手段及び前記第2転送手段が、送受信したデータを後で送受信順に参照できるように記憶手段に蓄積する蓄積手段を備えることを特徴とする協調検証装置。 The collaborative verification device according to claim 3,
The cooperative verification apparatus, wherein the first transfer unit and the second transfer unit include a storage unit that stores the transmitted and received data in a storage unit so that the transmitted and received data can be referred to in the order of transmission and reception later.
前記第1転送手段及び前記第2転送手段の少なくとも一方が、
送信するデータの順序を変更する手段、送信するデータのヘッダ情報を変更する手段、及びデータの送信を遅延させる手段の少なくとも1つを備えることを特徴とする協調検証装置。 The collaborative verification device according to claim 3 or 4,
At least one of the first transfer means and the second transfer means is
A collaborative verification apparatus comprising: at least one of means for changing the order of data to be transmitted, means for changing header information of data to be transmitted, and means for delaying data transmission.
前記CPUが、前記ハードウェアエミュレーションによりエミュレートする電子回路と同じ電子回路の動作をシミュレートするソフトウェアシミュレーションを実行し、前記ソフトウェアシミュレーションの結果と前記ハードウェアエミュレーションの結果とを比較して等価性検証を行うことを特徴とする協調検証装置。 The collaborative verification device according to claim 1,
The CPU executes a software simulation that simulates the operation of the same electronic circuit as that emulated by the hardware emulation, and compares the result of the software simulation with the result of the hardware emulation to verify equivalence. The collaborative verification apparatus characterized by performing.
CPUを内蔵したプログラマブル回路のうち、前記プログラマブル回路に前記ハードウェアエミュレーションを実行させ、前記CPUに前記ソフトウェアシミュレーションを実行させることを特徴とする協調検証方法。 A collaborative verification method that verifies the operation of an electronic circuit by combining software simulation and hardware emulation,
A cooperative verification method, comprising: a programmable circuit having a CPU built therein; causing the programmable circuit to execute the hardware emulation; and causing the CPU to execute the software simulation.
前記CPUに、前記電子回路の一部の動作をシミュレートさせ、前記プログラマブル回路に前記電子回路の他の部分の動作をエミュレートさせ、前記プログラマブル回路と前記CPUとの間での信号送受信により、前記電子回路の一部と他の部分との間の信号送受信をシミュレートさせることを特徴とする協調検証方法。 The cooperative verification method according to claim 7,
By causing the CPU to simulate the operation of a part of the electronic circuit, to cause the programmable circuit to emulate the operation of another part of the electronic circuit, and by transmitting and receiving signals between the programmable circuit and the CPU, A cooperative verification method characterized by simulating signal transmission / reception between a part of the electronic circuit and another part.
前記プログラマブル回路に、エミュレートした前記電子回路の前記他の部分が送受信するデータを一旦保持する第1転送手段の機能を実現させ、
前記CPUに、シミュレートした前記電子回路の前記一部が送受信するデータを一旦保持する第2転送手段の機能を実現させ、
前記電子回路の一部と他の部分との間の信号送受信を、前記第1転送手段と前記第2転送手段との間の信号送受信によりシミュレートさせることを特徴とする協調検証方法。 It is the cooperation verification method of Claim 8, Comprising:
Realizing the function of the first transfer means for temporarily holding the data transmitted and received by the other part of the emulated electronic circuit in the programmable circuit;
Causing the CPU to realize a function of second transfer means for temporarily holding data transmitted and received by the part of the simulated electronic circuit;
A cooperative verification method, wherein signal transmission / reception between a part of the electronic circuit and another part is simulated by signal transmission / reception between the first transfer means and the second transfer means.
前記CPUに、前記ハードウェアエミュレーションによりエミュレートする電子回路と同じ電子回路の動作をシミュレートするソフトウェアシミュレーションを実行させ、前記ソフトウェアシミュレーションの結果と前記ハードウェアエミュレーションの結果とを比較して等価性検証を行うことを特徴とする協調検証方法。 The cooperative verification method according to claim 7,
The CPU is caused to execute a software simulation for simulating the operation of the same electronic circuit as the electronic circuit to be emulated by the hardware emulation, and the equivalence verification is performed by comparing the result of the software simulation with the result of the hardware emulation. A collaborative verification method characterized by
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013133725A JP2015011363A (en) | 2013-06-26 | 2013-06-26 | Cooperation verification device and cooperation verification method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013133725A JP2015011363A (en) | 2013-06-26 | 2013-06-26 | Cooperation verification device and cooperation verification method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015011363A true JP2015011363A (en) | 2015-01-19 |
Family
ID=52304507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013133725A Pending JP2015011363A (en) | 2013-06-26 | 2013-06-26 | Cooperation verification device and cooperation verification method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015011363A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110472289A (en) * | 2019-07-17 | 2019-11-19 | 陕西千山航空电子有限责任公司 | A kind of FDR system test verification method based on Dynamic Signal emulation |
CN111832737A (en) * | 2019-04-18 | 2020-10-27 | 中科寒武纪科技股份有限公司 | Data processing method and related product |
US11847554B2 (en) | 2019-04-18 | 2023-12-19 | Cambricon Technologies Corporation Limited | Data processing method and related products |
-
2013
- 2013-06-26 JP JP2013133725A patent/JP2015011363A/en active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111832737A (en) * | 2019-04-18 | 2020-10-27 | 中科寒武纪科技股份有限公司 | Data processing method and related product |
JP2021182176A (en) * | 2019-04-18 | 2021-11-25 | カンブリコン テクノロジーズ コーポレーション リミテッドCambricon Technologies Corporation Limited | Data processing method and related product |
JP7045357B2 (en) | 2019-04-18 | 2022-03-31 | カンブリコン テクノロジーズ コーポレーション リミテッド | Data processing methods and related products |
US11762690B2 (en) | 2019-04-18 | 2023-09-19 | Cambricon Technologies Corporation Limited | Data processing method and related products |
US11847554B2 (en) | 2019-04-18 | 2023-12-19 | Cambricon Technologies Corporation Limited | Data processing method and related products |
CN111832737B (en) * | 2019-04-18 | 2024-01-09 | 中科寒武纪科技股份有限公司 | Data processing method and related product |
US11934940B2 (en) | 2019-04-18 | 2024-03-19 | Cambricon Technologies Corporation Limited | AI processor simulation |
CN110472289A (en) * | 2019-07-17 | 2019-11-19 | 陕西千山航空电子有限责任公司 | A kind of FDR system test verification method based on Dynamic Signal emulation |
CN110472289B (en) * | 2019-07-17 | 2023-06-30 | 陕西千山航空电子有限责任公司 | Flight parameter system test verification method based on dynamic signal simulation |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302950B (en) | A kind of programmable logic device crosslinking emulation test method of soft and hardware collaboration | |
US8041553B1 (en) | Generic software simulation interface for integrated circuits | |
US20080306722A1 (en) | Logic verification system | |
US9495492B1 (en) | Implementing synchronous triggers for waveform capture in an FPGA prototyping system | |
US10628548B2 (en) | Flow control in networking system-on-chip verification | |
US7930162B1 (en) | Accelerating hardware co-simulation using dynamic replay on first-in-first-out-driven command processor | |
US10180850B1 (en) | Emulating applications that use hardware acceleration | |
US8239708B2 (en) | System on chip (SoC) device verification system using memory interface | |
JP2005174349A (en) | Device for emulating operation of electronic apparatus | |
CN113342583B (en) | Chip verification system, method, device, equipment and storage medium | |
CN101504692A (en) | System and method for validating and testing on-chip system | |
JP4468410B2 (en) | Software execution device and cooperative operation method | |
CN116029242A (en) | Cloud native hardware logic simulation FPGA acceleration method and system | |
JP2015011363A (en) | Cooperation verification device and cooperation verification method | |
Koczor et al. | Verification approach based on emulation technology | |
CN108228965B (en) | Simulation verification method, device and equipment for memory cell | |
Lin et al. | Functional verifications for SoC software/hardware co-design: From virtual platform to physical platform | |
US7228513B2 (en) | Circuit operation verification device and method | |
US20200371843A1 (en) | Framework for application driven exploration and optimization of hardware engines | |
US8954312B2 (en) | Hardware emulation proxy for hardware software co-emulation | |
Cho et al. | A full-system VM-HDL co-simulation framework for servers with PCIe-connected FPGAs | |
CN104679963B (en) | A kind of simulating, verifying apparatus and method based on TCL | |
US20140325468A1 (en) | Storage medium, and generation apparatus for generating transactions for performance evaluation | |
US20230035673A1 (en) | Information processing system, information processing apparatus, use method of information processing apparatus, user terminal, and program therefor | |
CN113177388B (en) | Device, system and method for testing and verifying IP (Internet protocol) core |