JP5492704B2 - Hardware-software co-verification system, method, and program - Google Patents
Hardware-software co-verification system, method, and program Download PDFInfo
- Publication number
- JP5492704B2 JP5492704B2 JP2010190713A JP2010190713A JP5492704B2 JP 5492704 B2 JP5492704 B2 JP 5492704B2 JP 2010190713 A JP2010190713 A JP 2010190713A JP 2010190713 A JP2010190713 A JP 2010190713A JP 5492704 B2 JP5492704 B2 JP 5492704B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- cycles
- software
- hardware
- event
- 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
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明は、組込みシステム開発などにおけるハードウェア−ソフトウェア協調検証方式などに関し、特に、FPGA(Field Programmable Gate Array)ボードとソフトウェアシミュレータの協調検証方式に関する。 The present invention relates to a hardware-software co-verification method for embedded system development, and more particularly to a co-verification method for an FPGA (Field Programmable Gate Array) board and a software simulator.
近年の組込みシステムの高機能化・高性能化に伴い、開発すべきハードウェア・ソフトウェアはますます複雑化しており、開発期間・コストが増加する傾向にある。またその一方で開発サイクルは短期化しており、より短期で低コストな組込みシステム開発が求められている。 With the recent enhancement of functionality and performance of embedded systems, hardware and software to be developed are becoming more and more complex, and the development period and cost tend to increase. On the other hand, the development cycle is becoming shorter, and there is a need for shorter and lower cost embedded system development.
上記の課題を解決するために、仮想プロトタイピング手法が用いられている。仮想プロトタイピング手法は、SoC(System on Chip)の完成前に、仮想SoC上でソフトウェアやファームウェアを検証することができる手法であり、開発段階初期でソフトウェアとシステムの統合が可能になり、開発期間・コストを削減し、品質を向上する効果がある。 In order to solve the above problems, a virtual prototyping technique is used. The virtual prototyping method is a method that enables software and firmware to be verified on the virtual SoC before the completion of SoC (System on Chip), which enables software and system integration at the early stage of development. -It has the effect of reducing costs and improving quality.
上記手法では、具体的には、クロックを発生させ、サイクル精度の動作検証が可能なソフトウェアシミュレータ上で、CPUやメモリといったハードウェアの実動作を模擬したモデルを作成し、そのモデルを組み合わせて実機と同等な機能を持つ仮想SoCを作成する。この仮想SoC上で、ハードウェア開発と並行して、ソフトウェアやファームウェアの検証を行うことができる。 Specifically, the above method creates a model that simulates the actual operation of hardware such as a CPU and memory on a software simulator that can generate a clock and perform operation verification with cycle accuracy. A virtual SoC having the same function as is created. Software and firmware can be verified on the virtual SoC in parallel with hardware development.
しかし、上記のソフトウェアシミュレータ上でSoC(仮想SoC)を構成するハードウェアについてはモデル化が必須であり、既存のRTL(Register Transfer Level)で記述されたハードウェア資産などについてはソフトウェアシミュレータ上では扱えないという問題があった。 However, the hardware that makes up the SoC (virtual SoC) on the software simulator must be modeled, and the hardware assets described in the existing RTL (Register Transfer Level) can be handled on the software simulator. There was no problem.
上記の問題を解決するために、FPGAボードのFPGAに既存のハードウェア資産を実装(プログラミング)し、このFPGAボード(実装回路)とソフトウェアシミュレータ(仮想SoC)とにおける動作の協調検証を行う方式(「ハードウェア−ソフトウェア協調検証方式」)が用いられている。この協調検証方式では、ハードウェアモデルの作成が不要であり、かつ、既存のハードウェア資産やIP(Intellectual Property)をそのまま活用可能である上、FPGAで高速に実行(回路動作)が可能であるというメリットがある。 In order to solve the above-mentioned problem, a method for implementing (programming) existing hardware assets in the FPGA of the FPGA board and performing cooperative verification of the operation of the FPGA board (implemented circuit) and the software simulator (virtual SoC) ( "Hardware-software co-verification method") is used. In this collaborative verification method, it is not necessary to create a hardware model, and the existing hardware assets and IP (Intellectual Property) can be used as they are, and the FPGA can be executed at high speed (circuit operation). There is a merit.
しかし、上記協調検証方式においても以下のような課題がある。FPGAボードに実装されたハードウェアはFPGA内のクロック(第2の時間軸)で動作しており、一方、ソフトウェアシミュレータ上のハードウェアはソフトウェアシミュレータ内のクロック(第1の時間軸)で動作している(FPGA側のクロックの方が高速)。これら異なる時間軸を持つ2つのシステムの自立制御においては、これら2つが異なるクロックで非同期に動作しており、特にメカなどの高精度かつ高速な検証が求められる環境では、お互いの同期をとることが課題となっている。 However, the cooperative verification method has the following problems. The hardware mounted on the FPGA board operates on the clock in the FPGA (second time axis), while the hardware on the software simulator operates on the clock in the software simulator (first time axis). (The clock on the FPGA side is faster). In the independent control of these two systems with different time axes, these two systems operate asynchronously with different clocks, and should be synchronized with each other, especially in an environment that requires high-precision and high-speed verification such as a mechanism. Has become an issue.
上記の課題に対して、従来技術として、(1)毎サイクル同期方式、(2)トランザクション同期方式、及び特開2009−3583号公報(特許文献1)等がある。 In order to deal with the above problems, there are (1) a cycle-by-cycle synchronization method, (2) a transaction synchronization method, and Japanese Patent Application Laid-Open No. 2009-3583 (Patent Document 1).
(1)毎サイクル同期方式は、ソフトウェアシミュレータが発生させたクロックをFPGAボード実装回路(FPGAで実装された回路)に与え、毎サイクル(クロック単位)で両者の同期をとりながら動作の検証を行う方式である。この方式では1サイクル毎に同期をとるため、高精度な検証が可能となる。 (1) In the cycle-by-cycle synchronization method, the clock generated by the software simulator is given to the FPGA board mounting circuit (circuit mounted by FPGA), and the operation is verified while synchronizing both in every cycle (clock unit). It is a method. In this method, synchronization is performed every cycle, so that highly accurate verification is possible.
(2)トランザクション同期方式は、ソフトウェアシミュレータからFPGAボード実装回路へのアクセスをトランザクション単位(READ/WRITEなどのコマンド単位)で行う方式である。ソフトウェアシミュレータからトランザクション(コマンド)が発行されると、FPGAボードに実装されたトランザクタ回路が当該コマンドを解析した後、サイクルレベルの信号に変換し、FPGAボード実装回路を動作させる。この方式において、ハードウェア−ソフトウェア間の同期は、複数サイクル同期実行指示(例えば50サイクル分の同期実行)をトランザクション(コマンド)で発行することにより可能となる。 (2) The transaction synchronization method is a method in which access from the software simulator to the FPGA board mounting circuit is performed in transaction units (command units such as READ / WRITE). When a transaction (command) is issued from the software simulator, a transactor circuit mounted on the FPGA board analyzes the command, converts it to a cycle level signal, and operates the FPGA board mounting circuit. In this system, synchronization between hardware and software can be performed by issuing a multi-cycle synchronous execution instruction (for example, synchronous execution for 50 cycles) as a transaction (command).
また、特許文献1には、ソフトウェア側(ソフトウェアシミュレータ)からのハードウェア側(FPGAボード実装回路)の起動に対し、ソフトウェア側から同期をとる条件として開始条件と終了条件を与え、この条件による同期をとっている区間では毎サイクル同期をとる技術が開示されている。 Patent Document 1 gives a start condition and an end condition as conditions for synchronization from the software side for activation of the hardware side (FPGA board mounting circuit) from the software side (software simulator). A technique for synchronizing each cycle in a section in which is taken is disclosed.
背景技術のハードウェア−ソフトウェア協調検証方式では以下のような問題が挙げられる。 The hardware-software co-verification method of the background art has the following problems.
(1)毎サイクル同期方式では、1サイクル毎に同期をとるため、高精度な検証が可能なメリットがあるが、ハードウェア−ソフトウェア間でサイクル毎の通信が必要であるため、シミュレーション速度の低下の問題が挙げられる。 (1) The cycle-by-cycle synchronization method has a merit that high-accuracy verification can be performed because synchronization is performed for each cycle. However, since the cycle-by-cycle communication is required between hardware and software, the simulation speed decreases. Problem.
(2)トランザクション同期方式は、複数サイクル単位(トランザクション単位)で同期をとるため、高速な検証が可能であるメリットがある。ハードウェア側は高速なクロックで処理(動作)するため、1トランザクション内の複数サイクル単位の処理(動作)は高速で済む。一方、FPGAボード実装回路から割込みなどのイベントが発生する場合に、ソフトウェアシミュレータが正確なタイミングで当該イベント(イベント情報)を取得することが困難であるため、検証精度の低下の問題が挙げられる。従来技術では、ソフトウェア側がハードウェア側からの発生イベント(イベント情報)を適切に取得して処理する手段について考慮されておらず、発生イベント(イベント情報)を取得したサイクル時点よりも後のサイクル時点で処理する仕組みであるため、検証精度が低い。 (2) Since the transaction synchronization method is synchronized in units of multiple cycles (transaction units), there is an advantage that high-speed verification is possible. Since the hardware side performs processing (operation) with a high-speed clock, processing (operation) in units of a plurality of cycles within one transaction is sufficient. On the other hand, when an event such as an interrupt occurs from the FPGA board mounting circuit, it is difficult for the software simulator to acquire the event (event information) at an accurate timing, and thus there is a problem of a decrease in verification accuracy. The prior art does not consider the means for the software side to properly acquire and process the generated event (event information) from the hardware side, and the cycle time after the cycle time at which the generated event (event information) was acquired The accuracy of verification is low because
また、特許文献1では、同期をとる区間が多数ある場合、シミュレーション速度が低下する問題がある。また、(2)の方式と同様に、ソフトウェアシミュレータがFPGAボードからイベントを適切に取得して処理する手段について考慮されていないため、検証精度の低下の問題がある。 Moreover, in patent document 1, when there are many sections to synchronize, there exists a problem that a simulation speed falls. Further, as in the method (2), since the software simulator does not consider means for appropriately acquiring and processing events from the FPGA board, there is a problem that verification accuracy is lowered.
以上を鑑み、本発明の目的は、ハードウェア(FPGAボード実装回路)−ソフトウェア(シミュレータ)間の協調検証において、基本的には上記トランザクション同期方式(複数サイクルで同期をとる方式)を前提とすることで高速・短時間での検証を実現し、更に、ソフトウェア側がハードウェア側からの発生イベント(イベント情報)を適切に取得して処理する手段(イベント情報を正確なタイミングで処理する仕組み)を備えることで高精度な検証を実現できる技術、すなわち、高速で高精度な検証を実現できる技術を提供することである。 In view of the above, the object of the present invention is based on the above-described transaction synchronization method (method for synchronizing in a plurality of cycles) in the cooperative verification between hardware (FPGA board mounting circuit) and software (simulator). In this way, high-speed and short-time verification is realized, and the software side properly acquires and processes the event (event information) generated from the hardware side (a mechanism for processing the event information at an accurate timing). It is to provide a technology that can realize high-precision verification by providing, that is, a technology that can realize high-speed and high-precision verification.
前記目的を達成するため、本発明の代表的な実施の形態は、プログラム可能なハードウェア回路(FPGAボード等)に実装(プログラム)される回路とソフトウェアシミュレータとの間で協調させて対象システム(組込みシステムのSoC等)の動作を検証するハードウェア−ソフトウェア協調検証システムなどであって、以下に示す構成を有することを特徴とする。 In order to achieve the above-described object, a representative embodiment of the present invention is configured such that a target system (in cooperation with a software simulator and a circuit mounted (programmed) on a programmable hardware circuit (FPGA board or the like). A hardware-software co-verification system or the like that verifies the operation of an embedded system (SoC, etc.), and has the following configuration.
本システムでは、ハードウェア回路とソフトウェアシミュレータが通信媒体で接続され各々のクロックで動作し、ソフトウェアシミュレータに構成されるインタフェースモデルと、ハードウェア回路に構成されるトランザクタ回路との間でトランザクションを行うことにより同期する。 In this system, a hardware circuit and a software simulator are connected by a communication medium and operate with each clock, and a transaction is performed between an interface model configured in the software simulator and a transactor circuit configured in the hardware circuit. Synchronize with
本システムは、(1)ソフトウェアシミュレータ(インタフェースモデル)からハードウェア回路(トランザクタ回路)に対し、同期サイクル数の指定を伴う事前動作指示のトランザクションを発行し、当該事前動作指示に従いハードウェア回路(接続回路)を事前動作させることにより、当該同期サイクル数の複数サイクル単位におけるイベント発生有無及びイベント発生サイクル数を含む情報を先行確認する第1の機能を有する。 This system (1) issues a pre-operation instruction transaction with designation of the number of synchronous cycles from the software simulator (interface model) to the hardware circuit (transactor circuit), and the hardware circuit (connection Circuit) has a first function of confirming in advance information including the presence / absence of an event and the number of event occurrence cycles in units of a plurality of synchronization cycles.
本システムは、(2)前記先行確認に応じて、イベント有りの場合は当該イベント発生サイクル数に合わせて前記同期サイクル数を調整し、ソフトウェアシミュレータ(インタフェースモデル)からハードウェア回路(トランザクタ回路)に対し、当該調整した同期サイクル数の指定を伴う動作指示のトランザクションを発行し、当該動作指示に従いハードウェア回路(接続回路)を動作させ、イベント情報を取得して処理する、第2の機能を有する。 In this system, (2) if there is an event, the system adjusts the number of synchronization cycles according to the number of the event occurrence cycles, and changes from the software simulator (interface model) to the hardware circuit (transactor circuit). On the other hand, it has a second function of issuing an operation instruction transaction with designation of the adjusted number of synchronization cycles, operating a hardware circuit (connection circuit) according to the operation instruction, and acquiring and processing event information. .
本発明の代表的な実施の形態によれば、ハードウェア−ソフトウェア間の協調検証において、基本的には上記トランザクション同期方式を前提とすることで高速・短時間での検証を実現し、更に、ソフトウェア側がハードウェア側からの発生イベントを適切に取得して処理する手段(イベント情報を正確なタイミングで処理する仕組み)を備えることで高精度な検証を実現できる。 According to the representative embodiment of the present invention, in the hardware-software collaborative verification, the above-mentioned transaction synchronization method is basically assumed to realize verification at high speed and in a short time. High-precision verification can be realized by providing a means (a mechanism for processing event information at an accurate timing) on the software side to appropriately acquire and process an event generated from the hardware side.
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。以下適宜、HW:ハードウェア、SW:ソフトウェア、TR:トランザクション、E:イベント、等と略す。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. Note that components having the same function are denoted by the same reference symbols throughout the drawings for describing the embodiment, and the repetitive description thereof will be omitted. Hereinafter, HW: hardware, SW: software, TR: transaction, E: event, etc. are abbreviated as appropriate.
<概要>
図1を用いて、本発明の一実施の形態のシステム(HW−SW協調検証システム)の概要などを説明する。本方式(HW−SW協調検証方式)は、図2,図3等に示すシステム構成(検証環境)上で、図1,図4,図5等に示す動作・処理(HW−SW協調検証方法の処理手順)を行う。また図6,図7では本方式での検証の事例・効果について従来技術と比較して示している。
<Overview>
An overview of a system (HW-SW cooperative verification system) according to an embodiment of the present invention will be described with reference to FIG. This method (HW-SW cooperative verification method) is an operation / process (HW-SW cooperative verification method shown in FIGS. 1, 4 and 5) on the system configuration (verification environment) shown in FIGS. (Procedure). 6 and 7 show examples and effects of verification by this method in comparison with the prior art.
図1(a)で、SWシミュレータ(図2、100)とFPGAボード実装回路(図2、200)との間での動作・処理の概要を示している。図1(b)は同期サイクル数(M)などの例を示す。 FIG. 1A shows an outline of operations and processes between the SW simulator (FIGS. 2 and 100) and the FPGA board mounting circuit (FIGS. 2 and 200). FIG. 1B shows an example of the number of synchronization cycles (M).
(A0)検証の際、SWシミュレータ(図2、100)では、FPGAボードI/Fモデル(図2、101)に対し、複数サイクルで同期をとる協調検証方式における単一のコマンド(C0)を発行する。C0は同期サイクル数(M=M1)の指定などを伴う。FPGAボードI/Fモデルでは、コマンド(C0)をもとに、以下の2種類のコマンド(C1,C2)を、FPGAボード実装回路のトランザクタ回路(図2、201)に対してトランザクションとして順に発行する。 (A0) At the time of verification, the SW simulator (FIG. 2, 100) sends a single command (C0) in the cooperative verification method that synchronizes with the FPGA board I / F model (FIG. 2, 101) in multiple cycles. Issue. C0 is accompanied by designation of the number of synchronization cycles (M = M1). In the FPGA board I / F model, based on the command (C0), the following two types of commands (C1, C2) are issued as transactions to the transactor circuit (FIG. 2, 201) of the FPGA board mounting circuit in order. To do.
(A1−1)まず、第1のトランザクションにおいて、事前動作指示のコマンドC1を発行する。C1は、事前動作によりイベントを先行確認するためのコマンドである。指定の同期サイクル数(M=M1)と共にC1を発行する。 (A1-1) First, in the first transaction, a command C1 for a prior operation instruction is issued. C1 is a command for confirming an event in advance by a prior operation. C1 is issued together with the specified number of synchronization cycles (M = M1).
(B1−1)トランザクタ回路は、C1{M1}を受領する。(B1−2)トランザクタ回路は、C1に従う事前動作の前に接続回路(ユーザ回路B)の状態を退避しておく。(B1−3)トランザクタ回路は、C1{M1}に従い、接続回路(ユーザ回路B)を複数サイクル(M1)分で事前動作させることで、当該複数サイクル内におけるイベント有無やイベント発生サイクル数(M2)を確認・保存する。(B1−4)トランザクタ回路は、事前動作の後、接続回路(ユーザ回路B)の状態を、事前動作の前の状態に復元する。(B1−5)トランザクタ回路は、事前動作の後、事前動作完了やイベント有無を示すC1結果応答をFPGAボードI/Fモデルへ通知する。 (B1-1) The transactor circuit receives C1 {M1}. (B1-2) The transactor circuit saves the state of the connection circuit (user circuit B) before the preliminary operation according to C1. (B1-3) The transactor circuit pre-operates the connection circuit (user circuit B) for a plurality of cycles (M1) according to C1 {M1}, so that the presence / absence of events in the plurality of cycles and the number of event generation cycles (M2) ) Is confirmed and saved. (B1-4) The transactor circuit restores the state of the connection circuit (user circuit B) to the state before the pre-operation after the pre-operation. (B1-5) After the pre-operation, the transactor circuit notifies the FPGA board I / F model of the C1 result response indicating completion of the pre-operation and the presence / absence of an event.
(A1−2)SWシミュレータ(FPGAボードI/Fモデル)は、通知(C1結果)を受領する。(A1−3)FPGAボードI/Fモデルは、C1結果から、イベント有無やイベント発生サイクル数(M2)を取得でき、即ちイベント先行確認ができる。 (A1-2) The SW simulator (FPGA board I / F model) receives the notification (C1 result). (A1-3) The FPGA board I / F model can acquire the presence / absence of an event and the number of event occurrence cycles (M2) from the C1 result, that is, the event advance confirmation can be performed.
(A2−1)FPGAボードI/Fモデルは、上記先行確認の結果に応じて、次に、第2のトランザクションとして、本動作指示のコマンドC2を発行する。この際、イベント状況(イベント有無)に応じて同期サイクル数Mを調整し、調整した同期サイクル数Mの指定でC2を発行する。イベント無しの場合は、同期サイクル数MをM1のままとし、イベント有りの場合は、同期サイクル数MをM2に変更する。 (A2-1) The FPGA board I / F model then issues this operation instruction command C2 as a second transaction in accordance with the result of the preceding confirmation. At this time, the number of synchronization cycles M is adjusted according to the event status (the presence or absence of an event), and C2 is issued by specifying the adjusted number of synchronization cycles M. When there is no event, the synchronization cycle number M is kept M1, and when there is an event, the synchronization cycle number M is changed to M2.
(B2−1)トランザクタ回路は、C2{M1/M2}を受領する。(B2−2)トランザクタ回路は、C2で指定された同期サイクル数M(M1/M2)の分、接続回路(ユーザ回路B)を動作させる。(B2−3)トランザクタ回路は、C2結果応答を通知する。(A2−2)SWシミュレータ(FPGAボードI/Fモデル)は、通知(C2結果)を受領し、イベント情報を取得して処理する。 (B2-1) The transactor circuit receives C2 {M1 / M2}. (B2-2) The transactor circuit operates the connection circuit (user circuit B) by the number of synchronization cycles M (M1 / M2) designated by C2. (B2-3) The transactor circuit notifies the C2 result response. (A2-2) The SW simulator (FPGA board I / F model) receives the notification (C2 result) and acquires and processes the event information.
図1(b)で、C0での同期サイクル数Mの指定が例えば50である。C1での同期サイクル数M1の指定が同じく50となる。C1による事前動作(イベント先行確認)により、イベント有りの場合、イベント発生サイクル数M2が例えば20とする。これを受けてC2の同期サイクル数(M2)の指定が20となる。 In FIG. 1B, the designation of the number of synchronization cycles M at C0 is 50, for example. The designation of the number of synchronization cycles M1 in C1 is also 50. If there is an event due to a prior action (event advance confirmation) by C1, the event generation cycle number M2 is set to 20, for example. In response to this, the designation of the number of synchronization cycles (M2) of C2 becomes 20.
<システム>
図2に示す本システム(検証環境)の構成例において、PC10と、FPGAボード20とが、通信媒体30(ケーブルや無線など)を介して接続される構成である。PC10はSWシミュレータ100の実行環境である。FPGAボード20は、ハードウェアシミュレータ(プログラム可能な回路)としてFPGA(実装回路)200を搭載している。
<System>
In the configuration example of the present system (verification environment) illustrated in FIG. 2, the
SWシミュレータ100は、CPUやメモリといったハードウェアの実動作をシミュレーションしたソフトウェアモデルを組み合わせて仮想SoC110(対象システム)を構築し、対象システムの動作検証が可能なソフトウェアである。 The SW simulator 100 is software that can construct a virtual SoC 110 (target system) by combining software models that simulate actual operations of hardware such as a CPU and a memory, and can verify the operation of the target system.
SWシミュレータ100は、同期サイクル数Mなどのパラメータ情報106を入力する。なおMは任意に指定できる。PC10のユーザ(検証者)によりパラメータ情報106及び指示などの入力やその設定などが可能である。本システムによる出力(検証状況や検証結果など)は例えばPC10の画面に表示される。
The SW simulator 100
SWシミュレータ100(仮想SoC110)において、バスモデル103に、CPUモデル104、メモリモデル105、ユーザ回路A102、及びFPGAボードI/F(インタフェース)モデル101が接続されている。ユーザ回路A102は、ユーザによりSWモデルとして設定される。
In the SW simulator 100 (virtual SoC 110), a
FPGAボード20のFPGA200において、トランザクタ回路201、及びユーザ回路B202(既存回路やIPなど)が実装(プログラム)されている。ユーザ回路B202は、RTLの既存回路など、既存のハードウェア資産やIPによる実装回路(接続回路)であり、ユーザにより設定され、検証の対象となる。
In the
FPGAボードI/Fモデル101とFPGA200のトランザクタ回路201との間で通信(トランザクション)が行われる。詳しくは図3等に示す。
Communication (transaction) is performed between the FPGA board I /
検証の際、FPGA200実装回路(ユーザ回路B202)への動作指示は、SWシミュレータ100がFPGAボードI/Fモデル101に対しトランザクションないしその指示(トランザクション情報)を発行することで開始される。それによりFPGAボードI/Fモデル101は、トランザクタ回路201に対しトランザクション(対応するコマンド信号等)を発行し、これによりトランザクタ回路201を介してユーザ回路B202の動作を実行する。SWシミュレータ100から発行されたトランザクションに対し、FPGAボードI/Fモデル101とトランザクタ回路201が、指定された同期サイクル数Mによる複数サイクル単位(M≧1)で同期をとって動作・処理を行う。かつ、本システムでは、ユーザ回路B202が発行するイベント(E情報)を、SWシミュレータ100側に正確なタイミングで取得するために、FPGAボードI/Fモデル101とトランザクタ回路201に、必要な機能を備えている(図3)。
At the time of verification, an operation instruction to the
<従来の問題点>
図7は、従来のトランザクション同期方式の問題点について示す。SWシミュレータ(上側、第1の時間軸T1(サイクル時点))とFPGA実装回路(下側、第2の時間軸T2(サイクル時点))とにおいて、トランザクション毎に、同期サイクル数M=50サイクルで同期して動作・検証した場合を例に説明する。
<Conventional problems>
FIG. 7 shows problems of the conventional transaction synchronization method. In the SW simulator (upper side, first time axis T1 (cycle time point)) and the FPGA mounting circuit (lower side, second time axis T2 (cycle time point)), the number of synchronization cycles M = 50 for each transaction. A case where operation and verification are performed in synchronization will be described as an example.
シミュレーション開始(0サイクル時点)からNサイクル時点(701)で、SWシミュレータからFPGA実装回路へ、動作指示(M=50)のトランザクション(TR)を発行する(702)。FPGA実装回路は、この動作指示を受けて、M=50サイクル分の動作を開始する(703)。FPGA実装回路では、開始(703)から20サイクル経ったN+20サイクル時点(704)で、イベントが発行されたとする(705)。これにより発生イベントを示す信号がソフトウェア側へ送られる(706)。引き続き、FPGA実装回路は、N+50サイクル時点(707)で、M=50サイクル分の動作が完了し、これにより動作完了の通知(動作指示への応答)をソフトウェア側へ発行する(708)。 An operation instruction (M = 50) transaction (TR) is issued from the SW simulator to the FPGA mounting circuit from the simulation start (0 cycle time) to N cycle time (701) (702). Upon receiving this operation instruction, the FPGA mounting circuit starts an operation for M = 50 cycles (703). In the FPGA mounting circuit, it is assumed that an event is issued (705) at the time of N + 20 cycles (704) after 20 cycles from the start (703). As a result, a signal indicating the occurrence event is sent to the software side (706). Subsequently, at the time of N + 50 cycles (707), the FPGA mounting circuit completes the operation for M = 50 cycles, thereby issuing an operation completion notification (response to the operation instruction) to the software side (708).
SWシミュレータは、N+50サイクル時点(707)で、ハードウェア側からの通知(708)を受けて、イベント有無を判定しイベント情報を取得する(709)。 The SW simulator receives a notification (708) from the hardware side at the time of N + 50 cycles (707), determines the presence / absence of an event, and acquires event information (709).
ここで従来技術の問題として、N+20サイクル時点(704)で既にFPGA実装回路がイベントを発行しているにもかかわらず(706)、SWシミュレータが当該イベントを取得・確認できるのはN+50サイクル時点(707)であり、30サイクル分遅れている。この遅れ(ズレ)により、検証精度の低下を招いてしまう。 Here, as a problem of the prior art, although the FPGA implementation circuit has already issued an event at the time of N + 20 cycle (704) (706), the SW simulator can acquire and confirm the event at the time of N + 50 cycle ( 707), which is delayed by 30 cycles. Due to this delay, the verification accuracy is lowered.
上記の問題点を解決するために、本実施の形態では、図2のFPGAボードI/Fモデル101とトランザクタ回路201に図3に示す機能を具備し、イベント先行確認に応じて同期サイクル数を調整するといった特徴的な検証方式を実現している。
In order to solve the above problems, in this embodiment, the FPGA board I /
<機能>
図3では、特に、FPGAボードI/Fモデル101とトランザクタ回路201に備える機能(処理部)の構成例を示している(矢印は機能間の処理関係の一例を示す)。これら各機能は、FPGAボードI/Fモデル101側はプログラム処理により実現され、トランザクタ回路201側は実装回路により実現される。
<Function>
FIG. 3 particularly shows a configuration example of functions (processing units) included in the FPGA board I /
FPGAボードI/Fモデル101は、トランザクション情報解析機能401、トランザクタ回路用信号変換機能402、事前動作指示機能(=イベント先行確認機能)403、動作指示機能404、イベント情報取得・発行機能405、等を備える。
The FPGA board I /
TR情報解析機能401は、上位(SWシミュレータ100)から発行されたTR情報を解析し、WRITE、READ、複数サイクル同期動作などの発行コマンド(C0)、及び当該発行コマンドの実行に伴う必要な情報(パラメータ情報106)等を取得する。
The TR
トランザクタ回路用信号変換機能402は、上記TR情報解析機能401で取得したTR情報を、トランザクタ回路201に対してトランザクション(対応するコマンド等)として発行するための信号に変換する。
The transactor circuit
事前動作指示機能403は、イベント先行確認機能を含み、上記トランザクタ回路用信号変換機能402で変換されたトランザクションの信号を、トランザクタ回路201に対し、事前動作指示(第1のコマンド:C1)として与える。C1の信号は、同期サイクル数(M1)の指定を伴う。そして、事前動作指示機能403は、ハードウェア側から返される結果(通知)をもとに、イベント発生有無、発生サイクル数(M2)などの情報を取得し、イベントを先行確認することができる。
The pre-operation instruction function 403 includes an event advance confirmation function, and gives the transaction signal converted by the transactor circuit
動作指示機能404は、上記トランザクタ回路用信号変換機能402で変換されたトランザクションの信号を、トランザクタ回路201に対し、動作指示(第2のコマンド:C2)として与える。ここで、C2で指定する同期サイクル数Mとして、上記事前動作指示機能403で得たイベント有無などの情報に従い、イベントが無い場合は、事前動作指示(C1)で指定した同期サイクル数(M1)をそのまま設定し、イベントが有る場合は、イベント発生サイクル数(M2)に変更するように設定する。
The operation instruction function 404 gives the transaction signal converted by the transactor circuit
イベント情報取得・発行機能405は、上位(SWシミュレータ100)との間でイベントに関する処理を行う機能であり、上記イベントが有る場合、トランザクタ回路201からイベント情報を取得し、SWシミュレータ100に対し、割込みなどのイベントを発行する(イベント情報を与える)。
The event information acquisition / issuance function 405 is a function for performing processing related to an event with a host (SW simulator 100). When there is an event, the event information is acquired from the
トランザクタ回路201は、トランザクション情報解析機能501、サイクルレベル信号変換機能502、状態退避機能503、接続回路事前動作機能504、状態復元機能505、接続回路動作機能506、記憶領域520等を備える。
The
TR情報解析機能501は、FPGAボードI/Fモデル101から発行されたトランザクションの信号を解析し、WRITE、READ、複数サイクル動作などの発行コマンド、及び発行コマンドの実行に必要な情報(パラメータ情報106など)を取得する。
The TR information analysis function 501 analyzes a signal of a transaction issued from the FPGA board I /
サイクルレベル信号変換機能502は、上記TR情報解析機能501で取得したトランザクションの情報を、トランザクタ回路201に接続された回路(ユーザ回路B202)を動作させるためのサイクルレベルの信号に変換する。
The cycle level signal conversion function 502 converts the transaction information acquired by the TR information analysis function 501 into a cycle level signal for operating the circuit (user circuit B202) connected to the
状態退避機能503は、対象の接続回路(ユーザ回路B202)の現在の状態を、接続回路状態復元情報511として記憶領域520内に格納(退避)する。接続回路状態復元情報511は、上記接続回路の状態を事前動作の直前の状態に復元するための情報である。 The state saving function 503 stores (saves) the current state of the target connection circuit (user circuit B202) in the storage area 520 as connection circuit state restoration information 511. The connection circuit state restoration information 511 is information for restoring the state of the connection circuit to the state immediately before the pre-operation.
接続回路事前動作機能504は、イベント先行確認機能を含み、上記トランザクションの情報で取得した同期サイクル数(M=M1)分、接続回路(ユーザ回路B202)を事前動作(区別のためP1とする)させる。そして、この同期サイクル数(M1)内においてイベントが発生した場合は、当該イベントが発生したイベント発生サイクル数(M2)の情報(512)を記憶領域520内へ格納する。 The connection circuit pre-operation function 504 includes an event advance confirmation function, and the connection circuit (user circuit B 202) is pre-operation (P1 for distinction) for the number of synchronization cycles (M = M1) acquired by the transaction information. Let When an event occurs within the number of synchronization cycles (M1), information (512) of the number of event occurrence cycles (M2) in which the event has occurred is stored in the storage area 520.
状態復元機能505は、記憶領域520に格納された接続回路状態復元情報511を使用して、接続回路における事前動作の後の状態を、事前動作の前の状態へ復元する(戻す)。
The
接続回路動作機能506は、トランザクションの情報で取得した同期サイクル数(M=M1/M2)分、接続回路(ユーザ回路B202)を動作(区別のためP2とする)させる。 The connection circuit operation function 506 operates the connection circuit (user circuit B202) by the number of synchronization cycles (M = M1 / M2) acquired from the transaction information (P2 for distinction).
なお、上記退避・復元(接続回路状態復元情報511の取得など)に関する方法・手段については特に限定されない。例としては、FPGAのリードバック機能を使用する方法、または、接続回路に状態退避機能を具備する構成などが挙げられる。 In addition, the method / means relating to the above-described saving / restoration (acquisition of connection circuit state restoration information 511, etc.) is not particularly limited. Examples include a method of using the FPGA readback function or a configuration in which the connection circuit has a state saving function.
<条件>
図1等に基づき、本実施の形態のシステムでの検証(シミュレーション)の処理や回路構成に関し、条件(前提)や事例などについて以下である。本実施の形態では、上位(SWシミュレータ100)からは、1回の複数サイクル同期動作のために1つのコマンド(C0)が発行され、これを受けて下位(FPGAボードI/Fモデル101、トランザクタ回路201)では、事前動作(イベント先行確認)の指示である第1のコマンド(C1)と、本動作の指示である第2のコマンド(C2)との2つの処理が自動的に行われる。
<Conditions>
Based on FIG. 1 etc., conditions (premises), examples, etc. are as follows regarding the verification (simulation) processing and circuit configuration in the system of the present embodiment. In the present embodiment, one command (C0) is issued from the upper level (SW simulator 100) for one multi-cycle synchronous operation, and in response to this, the lower level (FPGA board I /
SWシミュレータ100からFPGAボードI/Fモデル101に対して発行するトランザクション情報に関して、あるサイクル時点N(シミュレーション開始からNサイクル後の時点)で、「複数サイクル同期動作」のコマンド(C0)が発行される。当該コマンド(C0)には、同期サイクル数Mの指定が伴う。事例としてM=50とする。上記C0,M=50を含むトランザクション情報がFPGAボードI/Fモデル101に対して発行される。
With respect to transaction information issued from the SW simulator 100 to the FPGA board I /
FPGAボードI/Fモデル101からトランザクタ回路201に対するトランザクションにおいては、C0に基づき、第1の指示(C1)、第2の指示(C2)が順に行われる。それぞれで指定される同期サイクル数Mは、C1ではM1、C2ではM1/M2である。これらに対応して、FPGA200側では、事前動作(P1)、本動作(P2)が順に行われる。
In the transaction from the FPGA board I /
また前提・事例として、FPGA200側のユーザ回路B202は、上記コマンド発行(動作開始)によるNサイクル時点から例えば20サイクル後であるN+20サイクル時点に、イベントが発生する回路であるとする(図1(b),後述の図6)。イベント発生有無は「有り」、イベント発生サイクル数(M2)は20である。
Further, as a premise / example, the
<処理フロー>
上記条件等に基づく処理フローについて説明する。図4でFPGAボードI/Fモデル101の処理、及び図5でトランザクタ回路201の処理を示す(図1、図3、図6等も対応)。以下S401等は処理ステップを示す。
<Processing flow>
A processing flow based on the above conditions will be described. FIG. 4 shows the processing of the FPGA board I /
S401: 図4で、FPGAボードI/Fモデル101は、Nサイクル時点で上位からトランザクション情報(C0,M等を含む)を受けると、TR情報解析機能401によりTR情報を解析する処理を行う。即ち、発行コマンド:C0、同期サイクル数:M=50、等の情報を取得する。また必要に応じてサイクルレベル信号変換機能502により、ハードウェア側のクロックに対応した信号への変換処理を行う。
S401: In FIG. 4, when the FPGA board I /
S402: トランザクタ回路用信号変換機能402により、上記取得情報(C0,M)を用いて、トランザクタ回路201へ発行するための信号に変換する処理を行う。
S402: The transactor circuit
S403: 事前動作機能403により、上記信号を用いて、トランザクタ回路201に対し、指定の同期サイクル数(M1=50)分の事前動作指示を第1のコマンド:C1(第1のトランザクション)として発行する。
S403: The pre-operation function 403 issues, as a first command: C1 (first transaction), a pre-operation instruction for the designated number of synchronization cycles (M1 = 50) to the
S404: FPGAボードI/Fモデル101(事前動作指示機能403)は、トランザクタ回路201からのC1結果の通知を待ち受ける。この通知は、事前動作完了(イベント先行確認)の通知であり、少なくともイベント有無を示す情報が含まれる。そしてこの通知を受けると、FPGAボードI/Fモデル101(事前動作指示機能403)は、図3のトランザクタ回路201の記憶領域520のイベント発生サイクル数(M2)の情報を参照して取得する。前述のように接続回路(ユーザ回路B202)はN+20サイクル時点でイベントを発行するので、イベント発生サイクル数(M2)として20が取得される。なお、上記C1結果の通知でイベント有無だけでなくイベント発生サイクル数(M2)を一緒に通知してもよい。
S404: The FPGA board I / F model 101 (preliminary operation instruction function 403) waits for notification of the C1 result from the
S405: 事前動作指示機能403は、上記通知(イベント情報)をもとに、イベント有無などを判定(確認)する。イベント有りの場合(Y)はS406へ、イベント無しの場合(N)はS409へ進む。 S405: The prior operation instruction function 403 determines (confirms) the presence / absence of an event based on the notification (event information). If there is an event (Y), the process proceeds to S406, and if there is no event (N), the process proceeds to S409.
S409: イベント無しの場合(N)、動作指示機能404により、最初(C0,C1)に指定された同期サイクル数(M=50)のままの指定で、動作指示のコマンド(C2)を第2のトランザクションとしてトランザクタ回路201へ発行する。
S409: When there is no event (N), the operation instruction function 404 uses the operation instruction command 404 to specify the operation instruction command (C2) with the number of synchronization cycles (M = 50) initially specified (C0, C1). The transaction is issued to the
S406: イベント有りの場合(Y)、動作指示機能404により、動作指示のコマンド(C2)を発行する前に、指定の同期サイクル数(M)を、イベント発行サイクル数(M2=20)に合わせて変更する。 S406: When there is an event (Y), before issuing the operation instruction command (C2) by the operation instruction function 404, the designated number of synchronization cycles (M) is adjusted to the number of event issuance cycles (M2 = 20). To change.
S407: 動作指示機能404により、上記変更後の同期サイクル数(M2=20)を指定して、動作指示のコマンド(C2)を第2のトランザクションとしてトランザクタ回路201へ発行する。
S407: The operation instruction function 404 designates the number of synchronous cycles (M2 = 20) after the change, and issues an operation instruction command (C2) to the
S408: イベント有りの場合なので、M2分のサイクルの動作後に丁度イベントが発生している。イベント情報取得・発行機能405は、これによるイベント情報を取得し、SWシミュレータ100に対して当該イベント情報を発行する。 S408: Since there is an event, an event has just occurred after the operation for the cycle of M2. The event information acquisition / issuance function 405 acquires event information based on the event information and issues the event information to the SW simulator 100.
S410: 動作指示機能404は、S409またはS408におけるC2結果(通知)を受領し、処理を終了する。 S410: The operation instruction function 404 receives the C2 result (notification) in S409 or S408, and ends the process.
S501: 図5で、トランザクタ回路201に対してFPGAボードI/Fモデル101からのトランザクションが発行される(対応するコマンド等を受領する)。TR情報解析機能501は、事前動作指示(C1)(M1=50)、または、動作指示(C2)(M1=50またはM2=20)を解析により取得する。
S501: In FIG. 5, a transaction from the FPGA board I /
S502: トランザクタ回路201は、上記取得したコマンドがC1かC2か判定する。C1の場合(Y)はS503へ、C2の場合(N)はS510へ進む。
S502: The
S503: 状態退避機能503は、接続回路(ユーザ回路B202)の現在の状態を、接続回路状態復元情報511として記憶領域520内に保存(退避)する。 S503: The state saving function 503 saves (saves) the current state of the connection circuit (user circuit B202) in the storage area 520 as connection circuit state restoration information 511.
S504: 接続回路事前動作機能504は、接続回路(ユーザ回路B202)を、C1で指定された同期サイクル数(M1=50)分、事前動作(P1)させる。 S504: The connection circuit preliminary operation function 504 causes the connection circuit (user circuit B202) to perform a preliminary operation (P1) for the number of synchronization cycles (M1 = 50) designated by C1.
S505: 上記C1の事前動作に伴い、接続回路事前動作機能504は、接続回路(ユーザ回路B202)で発生するイベントがある場合はそのイベント情報を取得する。 S505: With the pre-operation of C1, the connection circuit pre-operation function 504 acquires event information when there is an event that occurs in the connection circuit (user circuit B 202).
S506: 上記イベント情報に基づきイベント有りの場合(Y)は、S507の処理を行う。前述した例では、接続回路(ユーザ回路B202)が例えばN+20サイクル時点でイベントを発生する。 S506: If there is an event based on the event information (Y), the process of S507 is performed. In the example described above, the connection circuit (user circuit B202) generates an event at, for example, N + 20 cycles.
S507: 接続回路事前動作機能504は、上記発生イベントについて、イベント発生サイクル数(M2=20)の情報を、記憶領域520内に設定する。 S507: The connection circuit preliminary operation function 504 sets information on the number of event occurrence cycles (M2 = 20) in the storage area 520 for the occurrence event.
S508: 状態復元機能505は、S503で保存された情報(511)を用いて、接続回路(ユーザ回路B202)の状態を、事前動作の前の状態(Nサイクル時点の状態)に復元する。
S508: The
S509: 一方、前記動作指示(C2)の場合、接続回路動作機能506は、接続回路(ユーザ回路B202)を、C2で指定された同期サイクル数(M1=50またはM2=20)分、動作(P2)させる。 S509: On the other hand, in the case of the operation instruction (C2), the connection circuit operation function 506 operates the connection circuit (user circuit B202) for the number of synchronization cycles (M1 = 50 or M2 = 20) designated by C2. P2).
S510: トランザクタ回路201は、上記S504の事前動作(P1)またはS509の動作(P2)の結果を、応答として、FPGAボードI/Fモデル101へ通知する。
S510: The
<効果等>
本実施の形態によれば、複数サイクルで同期をとることができるため高速・短時間での検証を実現でき、かつ、ソフトウェア側がハードウェア側からの発生イベントを適切に取得して処理する手段(イベント情報を正確なタイミングで処理する仕組み)としてイベント先行確認(事前動作)の機能を備えるため、高精度な検証を実現できる。
<Effects>
According to the present embodiment, since synchronization can be achieved in a plurality of cycles, high-speed and short-time verification can be realized, and the software side appropriately acquires and processes an event generated from the hardware side ( Since it has a function of event advance confirmation (pre-operation) as a mechanism for processing event information at an accurate timing), highly accurate verification can be realized.
従来の毎サイクル同期方式では、複数サイクルの検証のために、HW−SW間のトランザクションの数が増えるため、検証速度が遅くなる。一方、本実施の形態では、複数サイクルの検証のために、C1,C2の2つのトランザクションで済むため、検証速度が早くなる。また、従来のトランザクション同期方式では、イベントの発生と処理のタイミングが異なるため、検証精度が低い。一方、本実施の形態では、イベントの発生に合わせたタイミングで処理できるため、検証精度が高くなる。 In the conventional cycle-by-cycle synchronization method, the number of transactions between HW-SWs increases for verification of a plurality of cycles, so the verification speed is slow. On the other hand, in this embodiment, two transactions C1 and C2 are sufficient for verification of a plurality of cycles, so that the verification speed is increased. In addition, in the conventional transaction synchronization method, since the occurrence of an event is different from the processing timing, the verification accuracy is low. On the other hand, in the present embodiment, since the processing can be performed at the timing according to the occurrence of the event, the verification accuracy is increased.
図6,図7等を用いて例を示す。図6は、本実施の形態の方式の適用結果を、図7の従来技術のトランザクション同期方式の場合と比較して示している。図6で、検証の際、SWシミュレータ100は、シミュレーション開始からNサイクル時点(601)で、「複数サイクル同期動作」の指示(C0)(M=50)を発行する。この際、FPGAボードI/Fモデル101からトランザクタ回路201に対し、イベント先行確認のための事前動作指示(C1)(M1=50)を発行することにより(第1のトランザクション)、イベント情報(イベント有り、M2=20)を取得済みとなる。そのイベント先行確認の結果に応じて、同期サイクル数Mを調整して、FPGAボードI/Fモデル101からトランザクタ回路201に、動作指示(C2)(M2=20)を発行する(第2のトランザクション)(602)。これにより、FPGA200の接続回路(ユーザ回路B202)を丁度イベントが発生する時点まで動作させることになる。FPGA200の接続回路では、Nサイクル時点(601)の動作開始(603)から20サイクル経ったN+20サイクル時点(604)でイベントが発行され(605)、動作完了の通知が行われる(606)。SWシミュレータ100は、N+20サイクル時点(604)で通知(606)を受け、イベント情報を取得して処理することができる(607)。
An example will be described with reference to FIGS. FIG. 6 shows the application result of the method of this embodiment in comparison with the conventional transaction synchronization method of FIG. In FIG. 6, at the time of verification, the SW simulator 100 issues an instruction (C0) (M = 50) of “multiple cycle synchronous operation” at the N cycle time (601) from the start of the simulation. At this time, by issuing a pre-operation instruction (C1) (M1 = 50) for event advance confirmation from the FPGA board I /
前述した図7の従来技術では、イベント取得及び処理がN+50サイクル時点であるのに対し、図6の本実施の形態では、N+20サイクル時点ですぐにイベントを取得して処理することができるため、検証の精度が高くなる。 In the prior art of FIG. 7 described above, the event acquisition and processing are at the time of N + 50 cycles, whereas in the present embodiment of FIG. 6, events can be acquired and processed immediately at the time of N + 20 cycles. Verification accuracy is increased.
同期サイクル数Mはパラメータ(106)で制御できる。他の実施の形態として、複数回の同期にあたり、それぞれの同期サイクル数M(C1で指定するM1)を一定値にするのではなく、パラメータ(106)で可変に制御する。例えば前回までの結果(イベント発生状況)を考慮して次回の好適なM1値を決定する等。それにより、サイクル精度と動作時間を考慮した検証が可能となる。 The number M of synchronization cycles can be controlled by the parameter (106). As another embodiment, the number of synchronization cycles M (M1 specified by C1) is not set to a constant value but is variably controlled by the parameter (106) in the case of multiple synchronizations. For example, the next preferred M1 value is determined in consideration of the result (event occurrence status) up to the previous time. Thereby, verification in consideration of cycle accuracy and operation time becomes possible.
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。 As mentioned above, the invention made by the present inventor has been specifically described based on the embodiment. However, the present invention is not limited to the embodiment, and various modifications can be made without departing from the scope of the invention. Needless to say.
本発明は、組込みシステム開発などにおける検証システム、FPGAボード、ソフトウェアシミュレータ、等に利用可能である。 The present invention can be used for verification systems, FPGA boards, software simulators, and the like in embedded system development.
10…PC、20…FPGAボード、30…通信媒体、100…ソフトウェアシミュレータ、101…FPGAボードI/Fモデル、102…ユーザ回路A、103…バスモデル、104…CPUモデル、105…メモリモデル、106…パラメータ情報、110…仮想SoC、200…FPGA(実装回路)、201…トランザクタ回路、202…ユーザ回路B、401…トランザクション情報解析機能、402…トランザクタ回路用信号変換機能、403…事前動作指示機能、404…動作指示機能、405…イベント情報取得・発行機能、501…トランザクション情報解析機能、502…サイクルレベル信号変換機能、503…状態退避機能、504…接続回路事前動作機能、505…状態復元機能、506…接続回路動作機能、511…接続回路状態復元情報、512…イベント発生サイクル数、520…記憶領域。
DESCRIPTION OF
Claims (6)
前記ハードウェア回路と前記ソフトウェアシミュレータが通信媒体で接続され各々のクロックで動作し、前記ソフトウェアシミュレータに構成されるインタフェースモデルと、前記ハードウェア回路に構成されるトランザクタ回路との間でトランザクションを行うことにより同期し、
(1)前記ソフトウェアシミュレータのインタフェースモデルから前記ハードウェア回路のトランザクタ回路に対し、同期サイクル数の指定を伴う事前動作指示である第1のコマンドによるトランザクションを発行し、当該指示に従い前記ハードウェア回路を事前動作させることにより、当該同期サイクル数の複数サイクル単位におけるイベント発生有無及びイベント発生サイクル数を含む情報を先行確認する第1の機能と、
(2)前記先行確認に応じて、イベント有りの場合は当該イベント発生サイクル数に合わせて前記同期サイクル数を調整し、前記ソフトウェアシミュレータのインタフェースモデルから前記ハードウェア回路のトランザクタ回路に対し、当該調整した同期サイクル数の指定を伴う動作指示である第2のコマンドによるトランザクションを発行し、当該指示に従い前記ハードウェア回路を動作させ、発生イベント情報を取得して処理する第2の機能と、を有すること、を特徴とするハードウェア−ソフトウェア協調検証システム。 A hardware-software co-verification system for verifying the operation of a target system by coordinating a circuit programmed with a programmable hardware circuit and a software simulator,
The hardware circuit and the software simulator are connected by a communication medium and operate with respective clocks, and a transaction is performed between an interface model configured in the software simulator and a transactor circuit configured in the hardware circuit. Synchronized with
(1) Issuing a transaction by a first command, which is a pre-operation instruction with designation of the number of synchronous cycles, from the interface model of the software simulator to the transactor circuit of the hardware circuit, A first function for confirming in advance information including the presence / absence of an event occurrence and the number of event occurrence cycles in a plurality of cycles of the synchronization cycle number by performing a prior operation;
(2) According to the preceding confirmation, if there is an event, the number of synchronization cycles is adjusted in accordance with the number of event generation cycles, and the adjustment is made to the transactor circuit of the hardware circuit from the interface model of the software simulator. A second function for issuing a transaction by a second command, which is an operation instruction accompanied with designation of the number of synchronization cycles, operating the hardware circuit according to the instruction, and acquiring and processing generated event information. A hardware-software co-verification system characterized by the above.
前記ソフトウェアシミュレータから前記インタフェースモデルに対し、複数サイクル単位の同期動作を指示する単一のコマンドを発行し、
前記単一のコマンドに従い、前記インタフェースモデルから前記トランザクタ回路に対し、前記事前動作指示の第1のコマンドを発行し、当該第1のコマンドの結果を受領し、次に、前記インタフェースモデルから前記トランザクタ回路に対し、前記動作指示の第2のコマンドを発行し、当該第2のコマンドの結果を受領すること、を特徴とするハードウェア−ソフトウェア協調検証システム。 The hardware-software co-verification system according to claim 1,
A single command for instructing synchronous operation in units of multiple cycles is issued from the software simulator to the interface model,
In accordance with the single command, the interface model issues a first command for the pre-operation instruction to the transactor circuit, receives a result of the first command, and then receives the result of the first command from the interface model. A hardware-software co-verification system characterized by issuing a second command of the operation instruction to a transactor circuit and receiving a result of the second command.
前記ハードウェア回路のトランザクタ回路から前記ソフトウェアシミュレータのインタフェースモデルに対し、前記イベント発生有無を通知し、当該通知により、前記ソフトウェアシミュレータのインタフェースモデルが前記ハードウェア回路のトランザクタ回路から前記イベント発生サイクル数の情報を取得すること、を特徴とするハードウェア−ソフトウェア協調検証システム。 The hardware-software co-verification system according to claim 1,
The software circuit interface model notifies the software simulator interface model of the occurrence of the event, and the notification causes the software simulator interface model to transmit the event generation cycle count from the hardware circuit transactor circuit. A hardware-software co-verification system characterized by acquiring information.
前記ハードウェア回路のトランザクタ回路は、前記第1のコマンドを受けると、接続回路の状態を退避してから前記事前動作し、その後、前記退避に基づき前記接続回路の状態を前記事前動作の前の状態に復元すること、を特徴とするハードウェア−ソフトウェア協調検証システム。 The hardware-software co-verification system according to claim 2,
Upon receipt of the first command, the transactor circuit of the hardware circuit performs the preliminary operation after saving the state of the connection circuit, and then changes the state of the connection circuit based on the save to the state of the preliminary operation. A hardware-software co-verification system characterized by restoring to a previous state.
前記ハードウェア回路と前記ソフトウェアシミュレータが通信媒体で接続され各々のクロックで動作し、前記ソフトウェアシミュレータに構成されるインタフェースモデルと、前記ハードウェア回路に構成されるトランザクタ回路との間でトランザクションを行うことにより同期し、
(1)前記ソフトウェアシミュレータのインタフェースモデルから前記ハードウェア回路のトランザクタ回路に対し、同期サイクル数の指定を伴う事前動作指示である第1のコマンドによるトランザクションを発行し、当該指示に従い前記ハードウェア回路を事前動作させることにより、当該同期サイクル数の複数サイクル単位におけるイベント発生有無及びイベント発生サイクル数を含む情報を先行確認する第1の処理ステップと、
(2)前記先行確認に応じて、イベント有りの場合は当該イベント発生サイクル数に合わせて前記同期サイクル数を調整し、前記ソフトウェアシミュレータのインタフェースモデルから前記ハードウェア回路のトランザクタ回路に対し、当該調整した同期サイクル数の指定を伴う動作指示である第2のコマンドによるトランザクションを発行し、当該指示に従い前記ハードウェア回路を動作させ、発生イベント情報を取得して処理する第2の処理ステップと、を有すること、を特徴とするハードウェア−ソフトウェア協調検証方法。 A hardware-software co-verification method for verifying the operation of a target system by coordinating a circuit programmed with a programmable hardware circuit and a software simulator,
The hardware circuit and the software simulator are connected by a communication medium and operate with respective clocks, and a transaction is performed between an interface model configured in the software simulator and a transactor circuit configured in the hardware circuit. Synchronized with
(1) Issuing a transaction by a first command, which is a pre-operation instruction with designation of the number of synchronous cycles, from the interface model of the software simulator to the transactor circuit of the hardware circuit, A first processing step of confirming in advance information including the presence / absence of an event occurrence and the number of event occurrence cycles in a plurality of cycles of the number of synchronization cycles by performing a prior operation;
(2) According to the preceding confirmation, if there is an event, the number of synchronization cycles is adjusted in accordance with the number of event generation cycles, and the adjustment is made to the transactor circuit of the hardware circuit from the interface model of the software simulator. A second processing step of issuing a transaction by a second command which is an operation instruction accompanied with designation of the number of synchronization cycles performed, operating the hardware circuit according to the instruction, and acquiring and processing generated event information; A hardware-software co-verification method characterized by comprising:
前記ハードウェア回路と前記ソフトウェアシミュレータが通信媒体で接続され各々のクロックで動作し、前記ソフトウェアシミュレータに構成されるインタフェースモデルと、前記ハードウェア回路に構成されるトランザクタ回路との間でトランザクションを行うことにより同期し、
(1)前記ソフトウェアシミュレータのインタフェースモデルから前記ハードウェア回路のトランザクタ回路に対し、同期サイクル数の指定を伴う事前動作指示である第1のコマンドによるトランザクションを発行し、当該指示に従い前記ハードウェア回路を事前動作させることにより、当該同期サイクル数の複数サイクル単位におけるイベント発生有無及びイベント発生サイクル数を含む情報を先行確認する第1の処理と、
(2)前記先行確認に応じて、イベント有りの場合は当該イベント発生サイクル数に合わせて前記同期サイクル数を調整し、前記ソフトウェアシミュレータのインタフェースモデルから前記ハードウェア回路のトランザクタ回路に対し、当該調整した同期サイクル数の指定を伴う動作指示である第2のコマンドによるトランザクションを発行し、当該指示に従い前記ハードウェア回路を動作させ、発生イベント情報を取得して処理する第2の処理と、をコンピュータに実行させること、を特徴とするプログラム。 A program for realizing the software simulator in a hardware-software co-verification system that verifies the operation of a target system by coordinating a circuit programmed with a programmable hardware circuit and a software simulator,
The hardware circuit and the software simulator are connected by a communication medium and operate with respective clocks, and a transaction is performed between an interface model configured in the software simulator and a transactor circuit configured in the hardware circuit. Synchronized with
(1) Issuing a transaction by a first command, which is a pre-operation instruction with designation of the number of synchronous cycles, from the interface model of the software simulator to the transactor circuit of the hardware circuit, A first process for confirming in advance information including the presence / absence of an event occurrence and the number of event occurrence cycles in a plurality of cycles of the synchronization cycle number by performing a prior operation;
(2) According to the preceding confirmation, if there is an event, the number of synchronization cycles is adjusted in accordance with the number of event generation cycles, and the adjustment is made to the transactor circuit of the hardware circuit from the interface model of the software simulator. A second process of issuing a transaction by a second command, which is an operation instruction accompanied with designation of the number of synchronized cycles, operating the hardware circuit according to the instruction, and acquiring and processing the generated event information. A program characterized by having the program executed.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2010190713A JP5492704B2 (en) | 2010-08-27 | 2010-08-27 | Hardware-software co-verification system, method, and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2010190713A JP5492704B2 (en) | 2010-08-27 | 2010-08-27 | Hardware-software co-verification system, method, and program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2012048539A JP2012048539A (en) | 2012-03-08 |
| JP5492704B2 true JP5492704B2 (en) | 2014-05-14 |
Family
ID=45903317
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2010190713A Expired - Fee Related JP5492704B2 (en) | 2010-08-27 | 2010-08-27 | Hardware-software co-verification system, method, and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5492704B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6184217B2 (en) * | 2013-07-19 | 2017-08-23 | サイプレス セミコンダクター コーポレーション | Simulation control method, simulation control program, and simulation control apparatus |
| CN114330220A (en) * | 2020-09-30 | 2022-04-12 | Oppo广东移动通信有限公司 | Method, device, electronic device and storage medium for simulation verification |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3492105B2 (en) * | 1996-08-30 | 2004-02-03 | 株式会社東芝 | Hardware / software co-simulation apparatus and simulation method |
| JP2003022296A (en) * | 2001-07-06 | 2003-01-24 | Matsushita Electric Ind Co Ltd | Co-simulation method and co-simulation device |
| JP4470582B2 (en) * | 2004-05-19 | 2010-06-02 | 日本電気株式会社 | Hardware / software co-simulation method and method |
| JP2009223762A (en) * | 2008-03-18 | 2009-10-01 | Toshiba Corp | Cooperation verification device |
-
2010
- 2010-08-27 JP JP2010190713A patent/JP5492704B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2012048539A (en) | 2012-03-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3105761B1 (en) | Memory physical layer interface logic for generating dynamic random access memory (dram) commands with programmable delays | |
| KR102222420B1 (en) | Integrated controller for training memory physical layer interface | |
| JP3131177B2 (en) | Method and apparatus for design verification using emulation and simulation | |
| JP5784263B1 (en) | Simulation system, programmable controller, simulation device, engineering tool | |
| JP2002063050A (en) | Control program development support device | |
| EP2098969A1 (en) | Logic circuit designing device for asynchronous logic circuit, logic circuit designing method, and logic circuit designing program | |
| JP5492704B2 (en) | Hardware-software co-verification system, method, and program | |
| WO2018070041A1 (en) | Simulation device | |
| CN101308521B (en) | Simulators and Simulation Methods | |
| JP2001282327A (en) | Simulation system and simulator, management server and recording medium | |
| US7228513B2 (en) | Circuit operation verification device and method | |
| JP5056511B2 (en) | Verification support program, recording medium storing the program, verification support apparatus, and verification support method | |
| US12405842B2 (en) | Apparatus and method for synchronizing participants of a simulation | |
| CN110109372B (en) | Apparatus and method for simulating a machine or installation to be controlled | |
| JP2025529819A (en) | Clock timing in replicated arrays | |
| CN116227396A (en) | Method and simulation platform for post-simulation of system on chip | |
| CN116594830A (en) | Hardware simulation tool, debugging method and storage medium | |
| JP2006163657A (en) | Playback simulator | |
| Abbes et al. | IP integration methodology for SoC design | |
| JP4484048B2 (en) | Hardware / software co-verification system | |
| JP4743427B2 (en) | Circuit operation verification method | |
| JP2972499B2 (en) | Logic circuit delay simulator | |
| US20070214443A1 (en) | Circuit Verification Apparatus, Circuit Verification Method, And Signal Distribution Method For The Same | |
| JP6317603B2 (en) | Information processing apparatus, information processing apparatus control method, and program | |
| JPH05324754A (en) | Gate logic circuit generation method for logic simulation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130814 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140116 |
|
| 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: 20140204 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140303 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5492704 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |