[go: up one dir, main page]

JP2000215226A - Logic verification device - Google Patents

Logic verification device

Info

Publication number
JP2000215226A
JP2000215226A JP11016122A JP1612299A JP2000215226A JP 2000215226 A JP2000215226 A JP 2000215226A JP 11016122 A JP11016122 A JP 11016122A JP 1612299 A JP1612299 A JP 1612299A JP 2000215226 A JP2000215226 A JP 2000215226A
Authority
JP
Japan
Prior art keywords
verification
logic
software simulator
hardware emulator
verified
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
Application number
JP11016122A
Other languages
Japanese (ja)
Inventor
Yoshinori Nabeta
芳則 鍋田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP11016122A priority Critical patent/JP2000215226A/en
Publication of JP2000215226A publication Critical patent/JP2000215226A/en
Pending legal-status Critical Current

Links

Landscapes

  • Logic Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

PROBLEM TO BE SOLVED: To shorten the time required for logic verification by exchanging the operated result of verification on a logic to be verified between a hardware emulator and a software simulator. SOLUTION: The software simulator 1 reads logic information held on a recording medium 4 and corresponding to the abstraction level of each module in that logic information, the logic information is divided into a module to be verified by a hardware emulator 2 and a module to be verified by the software simulator 1. At the time of verification, according to this connection relation, the exchange of input data or operated result for logic operation is executed through communication equipment 3 between the software simulator 1 and the hardware emulator 2. Thus, the time required for logic verification can be shortened.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】この発明は、ソフトウェアシ
ミュレータとハードウェアエミュレータを併用して論理
回路の検証を実行する論理検証装置に関するものであ
る。
[0001] 1. Field of the Invention [0002] The present invention relates to a logic verification device for verifying a logic circuit by using a software simulator and a hardware emulator together.

【0002】[0002]

【従来の技術】半導体技術の進歩により、論理LSI
(Large Scale Integrated circuit)の集積度は年々向
上し、大規模システムを1チップに集積することが可能
になり、電子機器などのシステムを1チップまたは数チ
ップのLSIで構築することが可能になりつつある。
2. Description of the Related Art Advances in semiconductor technology have led to the development of logic LSIs.
(Large Scale Integrated circuit) has been improved year by year, and large-scale systems can be integrated into one chip, and systems such as electronic devices can be built with one or several chips of LSI. It is getting.

【0003】LSIの製造コストは極めて高価であると
ともに、その製造期間には1月以上を必要とするため、
製造前に十分な検証を行うことが重要である。
[0003] The manufacturing cost of an LSI is extremely high, and the manufacturing period requires one month or more.
It is important to conduct a thorough verification before manufacturing.

【0004】検証は、設計の様々なフェーズで行われ
る。設計プロセスは、初期設計における抽象的なレベル
から、最終段階における詳細な製造レベルまで多くの段
階を踏み、各レベルに応じた論理情報を取り扱う。例え
ば初期設計段階では入出力関係程度を確定する抽象レベ
ルの論理情報、機能設計段階では論理各部の機能を確定
する機能レベルの論理情報、そして、最終的な詳細設計
段階では論理構造を確定する構造レベルの論理情報が取
り扱われる。一般に使用される各種ハードウェア記述言
語(HDL)により、上述の種々の設計段階の論理情報
を表現することが可能である。
[0004] Verification occurs during various phases of the design. The design process takes many steps from an abstract level in the initial design to a detailed manufacturing level in the final step, and handles logical information corresponding to each level. For example, at the initial design stage, abstract level logic information that determines the degree of input / output relationship, at the function design stage, function level logic information that determines the function of each logical part, and at the final detailed design stage, the structure that determines the logical structure Level logical information is handled. It is possible to express the above-described logic information at various design stages by various commonly used hardware description languages (HDL).

【0005】LSIや、複数のLSIを使用したシステ
ムの論理検証の方法には、従来、ソフトウェアシミュレ
ータによるものと、ハードウェアエミュレータによるも
のがある。一般にソフトウェアシミュレータは、HDL
で記述された論理情報をコンピュータプログラムとして
実行するため、種々の設計段階において使用することが
でき、多くの分野で広く普及している。一方、ハードウ
ェアエミュレータは、FPGA(Field Programmable G
ate Array)やFPID(Field ProgrammableInterconn
ect Device)などで構成され、外部からの入力信号に基
づいて論理構造を再構成可能な装置であり、ハードウェ
アであるので論理演算を高速かつ並列に実行することが
できる。
Conventionally, a method of verifying the logic of an LSI or a system using a plurality of LSIs includes a method using a software simulator and a method using a hardware emulator. Generally, software simulators are HDL
Since the logical information described in (1) is executed as a computer program, it can be used in various design stages and is widely used in many fields. On the other hand, the hardware emulator is an FPGA (Field Programmable G
ate Array) or FPID (Field ProgrammableInterconn)
ect Device), and is a device capable of reconfiguring a logical structure based on an externally input signal. Since the device is hardware, it is possible to execute a logical operation at high speed and in parallel.

【0006】図5は、従来のハードウェア論理エミュレ
ーションシステムを示す図である。図において、201
は、検証対象であるLSIの論理情報を所定の記録媒体
204より読み込み、エミュレーション装置202用の
データに変換した後、エミュレーション装置202に供
給するワークステーションやパーソナルコンピュータな
どの管理用コンピュータである。202は、複数のFP
GA221やFPID222などで構成され、管理用コ
ンピュータ201からのデータに基づいて論理構造を再
構成するエミュレーション装置である。205は、エミ
ュレーション装置202により検証される論理LSIに
関連する部品であるCPU231、メモリ232、他の
LSI233などを備える外部装置である。
FIG. 5 is a diagram showing a conventional hardware logic emulation system. In the figure, 201
Is a management computer such as a workstation or a personal computer that reads logical information of an LSI to be verified from a predetermined recording medium 204, converts the logical information into data for the emulation device 202, and supplies the data to the emulation device 202. 202 indicates a plurality of FPs
The emulation device is configured by the GA 221 and the FPID 222, and reconfigures a logical structure based on data from the management computer 201. Reference numeral 205 denotes an external device including a CPU 231, a memory 232, and another LSI 233, which are components related to a logic LSI to be verified by the emulation device 202.

【0007】次に動作について説明する。図6は、図5
の管理用コンピュータの動作を説明するフローチャート
である。図6に示すように、管理用コンピュータ201
は、検証対象であるLSIの論理情報を所定の記録媒体
204より読み込み(ステップST21)、その論理情
報をコンパイルしてエミュレーション装置202のFP
GA221用の構造データおよびFPID222用の構
造データを生成し(ステップST22)、それらのデー
タをエミュレーション装置202に供給する。
Next, the operation will be described. FIG. 6 shows FIG.
9 is a flowchart for explaining the operation of the management computer of FIG. As shown in FIG. 6, the management computer 201
Reads the logic information of the LSI to be verified from the predetermined recording medium 204 (step ST21), compiles the logic information, and compiles the FP of the emulation device 202.
The structure data for the GA 221 and the structure data for the FPID 222 are generated (step ST22), and the data is supplied to the emulation device 202.

【0008】そして、エミュレーション装置202は、
それらの構造データに基づいて検証対象であるLSIの
論理をエミュレートする。論理検証時には、管理用コン
ピュータ201から入力データを供給され、それに対す
る論理演算を実行し、演算の結果を出力する。また、論
理検証時には、検証される論理によっては外部装置20
5との通信も実行される。
[0008] The emulation device 202
The logic of the LSI to be verified is emulated based on the structural data. At the time of logic verification, input data is supplied from the management computer 201, a logical operation is performed on the input data, and the result of the operation is output. Also, at the time of logic verification, depending on the logic to be verified, the external device 20
5 is also executed.

【0009】次に、図7は、例えば特開平10−171
847号公報に記載の第1の従来の論理検証装置の構成
を示すブロック図である。図において、310は、検証
対象の論理をエミュレートするFPGA装置であり、3
14は、検証対象の論理をシミュレートするシミュレー
ションモジュールであり、312は、各FPGA装置3
10と各シミュレーションモジュール314のFPGA
322とを接続するプログラマブル相互接続器であり、
326はシステムバス328に接続され、FPGA装置
310およびシミュレーションモジュール314への構
造データのダウンロードなどを実行するシステム制御器
である。
Next, FIG. 7 shows, for example, Japanese Patent Application Laid-Open No. 10-171.
FIG. 1 is a block diagram illustrating a configuration of a first conventional logic verification device described in Japanese Unexamined Patent Publication No. 847-847. In the figure, reference numeral 310 denotes an FPGA device that emulates a logic to be verified, and 3
Numeral 14 denotes a simulation module for simulating the logic to be verified. Numeral 312 denotes each FPGA device 3.
10 and FPGA of each simulation module 314
322 is a programmable interconnect that connects
A system controller 326 is connected to the system bus 328 and executes downloading of structural data to the FPGA device 310 and the simulation module 314.

【0010】シミュレーションモジュール314におい
て、320は、行動記述により表現された論理情報など
を記憶するRAMであり、316は、行動記述により表
現された検証対象の論理をフラグメントごとに実行する
CPUであり、322は、実行すべきフラグメント、お
よびその順序を決定するFPGAであり、318はRA
M320、CPU316およびFPGA322を相互に
接続するマイクロプロセッサバスであり、324は、マ
イクロプロセッサバス318およびシステムバス328
に接続されるバス制御器である。
In the simulation module 314, 320 is a RAM for storing logic information and the like expressed by the action description, 316 is a CPU for executing the logic to be verified expressed by the action description for each fragment, 322 is an FPGA that determines the fragments to be executed and their order, and 318 is an RA
M320, a microprocessor bus for interconnecting the CPU 316 and the FPGA 322, and 324 a microprocessor bus 318 and a system bus 328
Is a bus controller connected to.

【0011】次に動作について説明する。この第1の従
来の論理検証装置においては、行動記述により表現され
た論理情報に基づいて検証対象の論理をCPU316が
シミュレートする。このとき、検証対象の論理は、シス
テム制御器326からの構造データに基づく論理構造で
FPGA装置310およびFPGA322によりすべて
エミュレートされる。そして、プログラマブル相互接続
器312はFPGA310装置とFPGA322との間
の通信を適宜実行する。
Next, the operation will be described. In the first conventional logic verification device, the CPU 316 simulates the logic to be verified based on the logic information expressed by the action description. At this time, the logic to be verified is all emulated by the FPGA device 310 and the FPGA 322 in a logical structure based on the structure data from the system controller 326. Then, the programmable interconnector 312 appropriately executes communication between the FPGA 310 device and the FPGA 322.

【0012】このように図7に示す第1の従来の論理検
証装置では、FPGA装置310およびFPGA322
により検証対象の論理のすべてがエミュレートされる。
As described above, in the first conventional logic verification device shown in FIG. 7, the FPGA device 310 and the FPGA 322
Emulates all of the logic to be verified.

【0013】また、図8は、例えば特開平9−2930
02号公報に記載の第2の従来の論理検証装置の構成を
示すブロック図である。図において、402は、制御回
路504、標的プログラム522を記憶するメモリ52
6およびプロセッサ576を有し、標的プロセッサおよ
び標的プログラムをモデル化するプロセッサエミュレー
タであり、406は、標的回路をモデル化するプロセッ
サモデルシェル510を有するハードウェアシミュレー
タであり、410は、トランスレータ414とマッパー
416を有するソフトウェアカーネルである。トランス
レータ414は、プロセッサエミュレータ402用の第
1のデータフォーマットと中間データフォーマットとの
間でフォーマット変換を実行し、マッパー416はハー
ドウェアシミュレータ406用の第2のデータフォーマ
ットと中間データフォーマットとの間でフォーマット変
換を実行するものである。なお、ハードウェアシミュレ
ータ406およびソフトウェアカーネル410はソフト
ウェアとして実現される。
FIG. 8 shows, for example, Japanese Patent Application Laid-Open No. 9-2930.
FIG. 2 is a block diagram showing a configuration of a second conventional logic verification device described in Japanese Patent Application Publication No. 02-2002. In the figure, reference numeral 402 denotes a control circuit 504 and a memory 52 for storing a target program 522.
6, a processor emulator that models the target processor and the target program, 406 is a hardware simulator that has a processor model shell 510 that models the target circuit, and 410 is a translator 414 and a mapper. 416 is a software kernel. Translator 414 performs format conversion between the first data format for processor emulator 402 and the intermediate data format, and mapper 416 performs format conversion between the second data format for hardware simulator 406 and the intermediate data format. Performs format conversion. Note that the hardware simulator 406 and the software kernel 410 are realized as software.

【0014】420は、ハードウェアシミュレータ40
6とソフトウェアカーネル410とを接続する通信リン
クであり、422は、プロセッサエミュレータ402と
ソフトウェアカーネル410とを接続する通信リンクで
ある。
Reference numeral 420 denotes a hardware simulator 40
Reference numeral 422 denotes a communication link connecting the processor emulator 402 and the software kernel 410.

【0015】次に動作について説明する。ハードウェア
シミュレータ406は、標的プログラム522に基づく
処理に対して、外部ハードウェア応答を与えるように動
作する。このときプロセッサモデルシェル510は、ハ
ードウェアシミュレータ406とソフトウェアカーネル
410に対する通信とを同期させる。
Next, the operation will be described. The hardware simulator 406 operates to give an external hardware response to the processing based on the target program 522. At this time, the processor model shell 510 synchronizes communication between the hardware simulator 406 and the software kernel 410.

【0016】ソフトウェアカーネル410では、ハード
ウェアシミュレータ406とプロセッサエミュレータ4
02との間でのデータ通信を、上述のフォーマット変換
を適宜行いつつ実行する。
The software kernel 410 includes a hardware simulator 406 and a processor emulator 4
02 is executed while appropriately performing the format conversion described above.

【0017】プロセッサエミュレータ402は、標的プ
ログラム522を実行し、ソフトウェアカーネル410
を介してハードウェアシミュレータ406との通信を必
要に応じて実行する。
The processor emulator 402 executes the target program 522 and executes the software kernel 410
The communication with the hardware simulator 406 is executed as necessary.

【0018】このように、図8に示す第2の従来の論理
検証装置では、ハードウェアシミュレータ406により
標的回路をシミュレートし、プロセッサエミュレータ4
02で標的プロセッサおよび標的プログラムをエミュレ
ートし、両者間で適宜通信を実行することにより、標的
回路と、標的プロセッサおよび標的プログラムとの相互
作用をシミュレートしている。
As described above, in the second conventional logic verification apparatus shown in FIG. 8, the target circuit is simulated by the hardware simulator 406, and the processor emulator 4
At 02, the target processor and the target program are emulated, and communication between the target processor and the target program is appropriately performed, thereby simulating the interaction between the target circuit and the target processor and the target program.

【0019】なお、他の論理シミュレータとしては特開
平6−96151号公報に記載のものなどがある。
As another logic simulator, there is one described in JP-A-6-96151.

【0020】[0020]

【発明が解決しようとする課題】従来の論理検証装置は
以上のように構成されているので、ハードウェアエミュ
レータにより検証対象の論理のすべてをエミュレートす
るには、論理情報が構造レベルまで確定していなければ
ならず、設計における最終段階になるまで検証を実行す
ることが困難であるとともに、設計の不具合が発見され
た場合には設計の初期段階まで戻らなければならず、論
理LSIなどの開発期間を短縮することが困難であるな
どの課題があった。
Since the conventional logic verification apparatus is configured as described above, in order to emulate all of the logic to be verified by the hardware emulator, the logic information is determined to the structure level. It is difficult to perform verification until the final stage of the design, and if a design defect is found, the process must return to the initial stage of the design. There were problems such as difficulty in shortening the period.

【0021】なお、検証にソフトウェアシミュレータの
みを使用する場合には、種々の抽象度レベルの論理情報
に柔軟に対応して、その論理情報に基づく論理の検証を
実行することができるものの、論理規模が大きくなるほ
ど検証に要する処理時間が増大する。さらに、例えば1
00万ゲート以上のLSIやそれを含むシステム全体の
設計品質を向上するために検証を実行するには、少なく
とも画像処理関連や通信関連などのアプリケーションご
とに機能の検証を実行する必要があるが、アプリケーシ
ョン規模の検証に要する処理時間は大きいため、現実的
な期間で検証を実行することが困難である。また、CP
Uなどの汎用部品のソフトウェアモデル化が困難であ
り、検証対象のシステムを忠実にシミュレーションする
ことが困難である。
When only a software simulator is used for verification, logic verification based on the logic information can be executed while flexibly corresponding to logic information of various levels of abstraction. Becomes larger, the processing time required for verification increases. Further, for example, 1
In order to perform verification to improve the design quality of an LSI with over one million gates or the whole system including it, it is necessary to perform function verification at least for each application such as image processing related or communication related. Since the processing time required to verify the application scale is large, it is difficult to execute the verification in a realistic period. Also, CP
Software modeling of general-purpose components such as U is difficult, and it is difficult to faithfully simulate a system to be verified.

【0022】さらに、上記第1の従来の論理検証装置に
おいては、検証対象の論理すべてがハードウェアにより
エミュレートされるため、設計初期段階の抽象レベルの
論理情報に基づいてシミュレーションを実行する場合、
忠実に論理情報を反映したシミュレーションが実行され
ない可能性がある。また、一般に大規模な論理の設計を
行う場合には、論理をモジュールに分割し、モジュール
ごとに設計を進行するため、各モジュールの開発の進行
状態に応じて、モジュールごとに論理情報の抽象度レベ
ルが異なる場合があるが、そのような場合にも上記第1
の従来の論理検証装置では、忠実に論理情報を反映した
シミュレーションが実行されない可能性がある。
Further, in the first conventional logic verification apparatus, since all the logic to be verified is emulated by hardware, when a simulation is executed based on abstract-level logic information in an initial design stage,
A simulation that faithfully reflects the logic information may not be executed. In general, when designing a large-scale logic, the logic is divided into modules, and the design progresses on a module-by-module basis. The level may be different, but in such a case the first
In the conventional logic verification apparatus of the related art, there is a possibility that the simulation that faithfully reflects the logic information is not executed.

【0023】さらに、上記第2の従来の論理検証装置に
おいては、ハードウェアシミュレータ406により標的
回路をシミュレートし、プロセッサエミュレータ402
で標的プロセッサおよび標的プログラムをエミュレート
し、両者間で適宜通信を実行することにより、標的回路
と、標的プロセッサおよび標的プログラムとの相互作用
をシミュレートしているので、エミュレートされる論理
回路がプロセッサにほぼ限定されており、ソフトウェア
によりシミュレートされるのは、プロセッサの周辺回路
とされ、設計の進行状況に応じたシミュレーションおよ
びエミュレーションを実行することが困難である。
Further, in the second conventional logic verification apparatus, the target circuit is simulated by the hardware simulator 406 and the processor emulator 402
By emulating the target processor and the target program in, and appropriately performing communication between the two, the target circuit and the interaction between the target processor and the target program are simulated. It is almost limited to processors, and what is simulated by software is the peripheral circuits of the processor, and it is difficult to execute simulation and emulation according to the progress of design.

【0024】この発明は上記のような課題を解決するた
めになされたもので、論理情報のうち構造レベルまで確
定している部分についてハードウェアエミュレータで検
証を実行し、その他の部分についてはソフトウェアシミ
ュレータで検証を実行する論理検証装置を得ることを目
的とする。
SUMMARY OF THE INVENTION The present invention has been made to solve the above-described problems. A portion of logic information, which has been determined up to the structure level, is verified by a hardware emulator, and the other portions are verified by a software simulator. It is an object of the present invention to obtain a logic verification device that performs verification by using the following.

【0025】すなわち、例えば大規模なLSIの開発に
おいては、論理全体を複数のモジュールに分割し、それ
ぞれのモジュールを複数の設計者によって開発が進めら
れる。そのため、モジュール毎に設計フェーズが異なる
ことが一般的であり、そのような状況においても論理検
証を実行することが可能な論理検証装置を得ることを目
的とする。
That is, for example, in the development of a large-scale LSI, the whole logic is divided into a plurality of modules, and each module is developed by a plurality of designers. Therefore, the design phase is generally different for each module, and an object of the present invention is to provide a logic verification device capable of executing logic verification even in such a situation.

【0026】[0026]

【課題を解決するための手段】この発明に係る論理検証
装置は、被検証論理の所定の第1の部分についての検証
を実行する再構成可能なハードウェアエミュレータと、
被検証論理のシミュレーションを記述したシミュレーシ
ョンプログラムを記憶する記憶手段と、シミュレーショ
ンプログラムを実行し、被検証論理の残りの第2の部分
の検証を実行する演算処理手段とを有するソフトウェア
シミュレータと、ハードウェアエミュレータとソフトウ
ェアシミュレータとの間で、被検証論理についての検証
の演算結果の授受を実行する通信部とを備えるものであ
る。
A logic verification apparatus according to the present invention includes a reconfigurable hardware emulator for performing verification on a predetermined first part of a logic to be verified,
A software simulator having storage means for storing a simulation program describing a simulation of the logic to be verified, and arithmetic processing means for executing the simulation program and verifying the remaining second part of the logic to be verified; A communication unit is provided between the emulator and the software simulator for transmitting and receiving the operation result of the verification of the verified logic.

【0027】この発明に係る論理検証装置は、被検証論
理の抽象度レベルに応じて、被検証論理を、ハードウェ
アエミュレータにより検証する第1の部分と、ソフトウ
ェアシミュレータにより検証する第2の部分とに分割す
るようにしたものである。
According to the logic verification apparatus of the present invention, a first part for verifying a logic to be verified by a hardware emulator and a second part for verifying the logic by a software simulator are provided according to the level of abstraction of the logic to be verified. Is to be divided.

【0028】この発明に係る論理検証装置は、通信部と
の間のインタフェースのバス幅と同数のビット数単位
で、第1の部分と第2の部分との間で授受されるデータ
を分割するようにしたものである。
The logic verification apparatus according to the present invention divides data transmitted and received between the first part and the second part in units of the same number of bits as the bus width of the interface with the communication unit. It is like that.

【0029】この発明に係る論理検証装置は、ソフトウ
ェアシミュレータが検証の演算結果を通信部に送信し、
通信部がソフトウェアシミュレータからの検証の演算結
果をハードウェアエミュレータに供給し、ハードウェア
エミュレータがソフトウェアシミュレータによる検証の
演算結果をデータとして検証を実行するものである。
[0029] In the logic verification device according to the present invention, the software simulator transmits the operation result of the verification to the communication unit,
The communication unit supplies the calculation result of the verification from the software simulator to the hardware emulator, and the hardware emulator executes the verification using the calculation result of the verification by the software simulator as data.

【0030】この発明に係る論理検証装置は、ソフトウ
ェアシミュレータが、検証の演算結果の値が変化するタ
イミング、およびクロック毎のタイミングのうち、検証
の演算結果の転送時間が短くなる方のタイミングで検証
の演算結果を通信部に送信するものである。
In the logic verifying apparatus according to the present invention, the software simulator performs verification at a timing at which the transfer time of the verification calculation result is shorter among timings at which the value of the verification calculation result changes and timings at each clock. Is transmitted to the communication unit.

【0031】この発明に係る論理検証装置は、ソフトウ
ェアシミュレータによる検証の演算結果を供給される
と、ハードウェアエミュレータが1イベント分だけ検証
を実行するようにしたものである。
In the logic verification apparatus according to the present invention, when a calculation result of verification by a software simulator is supplied, a hardware emulator executes verification for one event.

【0032】この発明に係る論理検証装置は、ソフトウ
ェアシミュレータによる検証の演算結果を供給される
と、ハードウェアエミュレータが時刻0からその検証の
演算結果に対応する時刻までの検証を実行するようにし
たものである。
In the logic verification apparatus according to the present invention, when the operation result of the verification by the software simulator is supplied, the hardware emulator executes the verification from time 0 to the time corresponding to the operation result of the verification. Things.

【0033】この発明に係る論理検証装置は、通信部
に、ソフトウェアシミュレータからの被検証論理につい
ての演算結果を、ハードウェアエミュレータに供給する
まで記憶するバッファメモリを有するものである。
The logic verification device according to the present invention has a communication unit having a buffer memory for storing the operation result of the logic to be verified from the software simulator until it is supplied to the hardware emulator.

【0034】この発明に係る論理検証装置は、通信部
に、ソフトウェアシミュレータからの被検証論理につい
ての演算結果をハードウェアエミュレータに供給するタ
イミングを制御する第1の制御手段を有するものであ
る。
The logic verification apparatus according to the present invention has the communication unit having first control means for controlling the timing of supplying the operation result of the logic to be verified from the software simulator to the hardware emulator.

【0035】この発明に係る論理検証装置は、通信部
に、ハードウェアエミュレータのクロックを制御してソ
フトウェアシミュレータでの処理とハードウェアエミュ
レータでの処理とを同期させる第2の制御手段を有する
ものである。
The logic verification apparatus according to the present invention has a communication unit having second control means for controlling the clock of the hardware emulator to synchronize the processing in the software simulator and the processing in the hardware emulator. is there.

【0036】この発明に係る論理検証装置は、通信部
に、ハードウェアエミュレータに接続される所定の外部
装置を制御し、所定の外部装置での処理とハードウェア
エミュレータでの処理を同期させる第3の制御手段とを
有するものである。
In the logic verification apparatus according to the present invention, the communication unit controls a predetermined external device connected to the hardware emulator, and synchronizes the processing in the predetermined external device with the processing in the hardware emulator. Control means.

【0037】この発明に係る論理検証装置は、被検証論
理のすべてをハードウェアエミュレータにより検証する
第1の部分とした場合には被検証論理への入力データを
すべて通信部に送信し、通信部がソフトウェアシミュレ
ータからのデータを蓄積し、ハードウェアエミュレータ
に供給し、ハードウェアエミュレータがそのデータを使
用して被検証論理のすべてについての検証を実行するも
のである。
The logic verification apparatus according to the present invention transmits all input data to the verified logic to the communication unit when all of the verified logic is the first part to be verified by the hardware emulator. Accumulates data from a software simulator and supplies it to a hardware emulator, and the hardware emulator uses the data to execute verification of all of the logic to be verified.

【0038】[0038]

【発明の実施の形態】以下、この発明の実施の一形態を
説明する。 実施の形態1.図1は、この発明の実施の形態1による
論理検証装置の構成を示すブロック図であり、図2は、
図1の通信装置の詳細な構成例を示すブロック図であ
る。図において、1は、メモリ12にシミュレーション
プログラムを記憶し、CPU11でそのプログラムを実
行するワークステーションやパーソナルコンピュータな
どのソフトウェアシミュレータである。2は、FPGA
やFPIDなどのプログラム可能なデバイスの他、プロ
セッサなどを有し、供給された構造レベルの論理情報に
基づく論理のエミュレートを実行するハードウェアエミ
ュレータである。3は、ソフトウェアシミュレータ1と
ハードウェアエミュレータ2との処理速度の違いを緩衝
しながら、両者間で検証の演算結果などの通信を実行す
る通信装置(通信部)である。4は、被検証論理の論理
情報を保持している記録媒体である。5は、ハードウェ
アエミュレータ2により検証される論理LSIに関連す
る部品であるCPU31、メモリ32、他のLSI33
などを備える外部装置である。6は、イーサネット(登
録商標)などのコンピュータネットワークである。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS One embodiment of the present invention will be described below. Embodiment 1 FIG. FIG. 1 is a block diagram showing a configuration of a logic verification apparatus according to Embodiment 1 of the present invention, and FIG.
FIG. 2 is a block diagram illustrating a detailed configuration example of the communication device in FIG. 1. In FIG. 1, reference numeral 1 denotes a software simulator such as a workstation or a personal computer that stores a simulation program in a memory 12 and executes the program by a CPU 11. 2 is FPGA
It is a hardware emulator that has a processor and the like in addition to a programmable device such as an FPGA and an FPID, and executes emulation of logic based on supplied structural-level logic information. Reference numeral 3 denotes a communication device (communication unit) that executes communication such as a calculation result of verification between the software simulator 1 and the hardware emulator 2 while buffering a difference in processing speed. Reference numeral 4 denotes a recording medium that holds logical information of the logic to be verified. Reference numeral 5 denotes a CPU 31, a memory 32, and other LSIs 33, which are components related to a logic LSI to be verified by the hardware emulator 2.
It is an external device provided with the above. Reference numeral 6 denotes a computer network such as Ethernet (registered trademark).

【0039】ソフトウェアシミュレータ1において、1
1は、シミュレーションプログラムを実行するCPU
(演算処理手段)であり、12はシミュレーションプロ
グラムや論理情報を一時的に記憶するRAMなどのメモ
リ(記憶手段)であり、13はコンピュータネットワー
ク6に接続され、必要に応じてデータの授受を実行する
ネットワークインタフェースであり、14は記録媒体4
に対するデータの読み書きを実行するインタフェースで
あり、15はCPU11、メモリ12、ネットワークイ
ンタフェース13およびインタフェース14を互いに接
続する例えばPCI(Peripheral Component Interconn
ect)バスなどのシステムバスである。なお、システム
バス15はPCIバスに限定されるものではなく、他の
より高速なバス(インタフェース)でもよい。
In the software simulator 1, 1
1 is a CPU that executes a simulation program
(Arithmetic processing means), 12 is a memory (storage means) such as a RAM for temporarily storing a simulation program and logic information, and 13 is connected to the computer network 6 and executes transmission and reception of data as required 14 is a recording medium 4
An interface 15 reads and writes data from and to a CPU (Peripheral Component Interface) that connects the CPU 11, the memory 12, the network interface 13 and the interface 14 to each other.
ect) A system bus such as a bus. The system bus 15 is not limited to the PCI bus, but may be another higher-speed bus (interface).

【0040】ハードウェアエミュレータ2において、2
1はFPGA、FPID、プロセッサなどを有し、制御
部22による制御に基づいて再構成可能な論理演算部で
あり、22はデータや検証結果の授受を実行するととも
に、構造レベルの論理情報に基づいて論理演算部21の
論理構成を設定する制御部であり、23はコンピュータ
ネットワーク6に接続され、必要に応じてデータの授受
を実行するネットワークインタフェースである。
In the hardware emulator 2, 2
Reference numeral 1 denotes a logic operation unit having an FPGA, an FPID, a processor, and the like, which can be reconfigured under the control of the control unit 22. And a control unit 23 for setting the logical configuration of the logical operation unit 21. A network interface 23 is connected to the computer network 6 and executes transmission and reception of data as necessary.

【0041】通信装置3(図2)において、41は、バ
ッファメモリ42に対するデータの読み書きを行うとと
もに、ソフトウェアシミュレータ1とのデータの送受信
の制御を行うバス制御部であり、42は、ソフトウェア
シミュレータ1からのデータなどを一時的に記憶すると
ともに、ハードウェアエミュレータ2からの演算結果な
どを記憶するバッファメモリであり、43は、ハードウ
ェアエミュレータ2からの演算結果をバッファメモリ4
2に記憶させるとともに、バッファメモリ42に記憶さ
れているデータをハードウェアエミュレータ2に供給す
るタイミングを制御するエミュレータ制御部(第1の制
御手段)であり、44は、バス制御部41、バッファメ
モリ42、エミュレータ制御部43および外部装置制御
部45にそれぞれ供給するクロックを生成し、ソフトウ
ェアシミュレータ1とハードウェアエミュレータ2との
処理速度の違いの緩衝を実行して両者を同期させるとと
もに、外部装置5とハードウェアエミュレータ2との処
理速度の違いの緩衝を実行して両者を同期させるクロッ
ク制御部(第2の制御手段)であり、45は、クロック
制御部44からのクロックに基づいて外部装置5の処理
速度を制御する外部装置制御部(第3の制御手段)であ
る。
In the communication device 3 (FIG. 2), reference numeral 41 denotes a bus control unit for reading / writing data from / to the buffer memory 42 and controlling transmission / reception of data to / from the software simulator 1; And a buffer memory 43 for temporarily storing data from the hardware emulator 2 and for storing operation results from the hardware emulator 2.
An emulator control unit (first control unit) that controls the timing at which the data stored in the buffer memory 42 is supplied to the hardware emulator 2 and 44 is a bus control unit 41, a buffer memory, 42, a clock to be supplied to the emulator control unit 43, and a clock to be supplied to the external device control unit 45, respectively, buffer the difference in processing speed between the software simulator 1 and the hardware emulator 2 to synchronize them, and A clock control unit (second control unit) that buffers the difference in processing speed between the external device 5 and the hardware emulator 2 and synchronizes the two with each other. Is an external device control unit (third control means) that controls the processing speed of the external device.

【0042】なお、バッファメモリ42には、ソフトウ
ェアシミュレータ1に接続されるシステムバス15のバ
ス幅などを考慮した仕様で、ソフトウェアシミュレータ
1とハードウェアエミュレータ2との処理速度の差、実
行するテストパターンの数などを考慮した容量を有する
ものを使用するのが好ましい。
In the buffer memory 42, the difference in processing speed between the software simulator 1 and the hardware emulator 2 and the test pattern to be executed are specified in consideration of the bus width of the system bus 15 connected to the software simulator 1. It is preferable to use one having a capacity taking into consideration the number and the like.

【0043】また、外部装置5は実機と同様のものであ
るため、実機と同一の速度に動作可能であるが、ハード
ウェアエミュレータ2では論理演算部21が対象の論理
をエミュレートしており、実機と同様の速度で動作する
ことが困難であるため、上述のように外部装置5をハー
ドウェアエミュレータ2に同期させるように制御する。
同等にハードウェアエミュレータ2の処理速度より、ソ
フトウェアシミュレータ1の処理速度が遅いため、バッ
ファメモリ42に検証の演算結果を一時的に蓄積して両
者を同期させる。
Since the external device 5 is the same as the actual device, it can operate at the same speed as the actual device. However, in the hardware emulator 2, the logical operation unit 21 emulates the target logic. Since it is difficult to operate at the same speed as the actual device, control is performed so that the external device 5 is synchronized with the hardware emulator 2 as described above.
Similarly, since the processing speed of the software simulator 1 is lower than the processing speed of the hardware emulator 2, the calculation result of the verification is temporarily stored in the buffer memory 42 to synchronize them.

【0044】次に動作について説明する。図3は、実施
の形態1による論理検証装置の動作について説明するフ
ローチャートである。
Next, the operation will be described. FIG. 3 is a flowchart illustrating an operation of the logic verification device according to the first embodiment.

【0045】まず、ステップST1において、ソフトウ
ェアシミュレータ1は、記録媒体4に保持されている論
理情報を読み込む。この論理情報は、設計者により所定
のモジュール毎に作成されている。また、各モジュール
の論理情報の抽象度レベルは、上述の抽象レベル、機能
レベル、構造レベルなどであり、それぞれ異なるレベル
でもよい。
First, in step ST1, the software simulator 1 reads logical information held in the recording medium 4. This logical information is created for each predetermined module by a designer. The abstraction level of the logical information of each module is the above-described abstraction level, function level, structure level, and the like, and may be different levels.

【0046】次に、ステップST2において、ソフトウ
ェアシミュレータ1は、論理情報の各モジュールの抽象
度レベルに応じて、論理情報を、ハードウェアエミュレ
ータ2により検証するモジュール(第1の部分)と、ソ
フトウェアシミュレータ1により検証するモジュール
(第2の部分)とに分割する。すなわち、構造レベルの
論理情報が確定しているモジュールについてはハードウ
ェアエミュレータ2により検証し、構造レベルの論理情
報が確定していないモジュールについてはソフトウェア
シミュレータ1により検証する。構造レベルまで論理情
報が確定している場合には、ハードウェアエミュレータ
2により高速に検証が実行される。ただし、その挙動の
詳細を観測したい場合には、ソフトウェアシミュレータ
1で検証を実行するようにしてもよい。また、モジュー
ルの論理情報が抽象レベルで記述されていても、ハード
ウェアエミュレータ2にそのモジュールの実部品が設け
られている場合にはハードウェアエミュレータ2により
そのモジュールについての検証を実行することができ
る。
Next, in step ST2, the software simulator 1 includes a module (first part) for verifying the logic information by the hardware emulator 2 according to the level of abstraction of each module of the logic information, 1 and a module to be verified (second part). That is, a module whose structural level logical information is determined is verified by the hardware emulator 2, and a module whose structural level logical information is not determined is verified by the software simulator 1. When the logical information is determined up to the structure level, the hardware emulator 2 performs the verification at high speed. However, when it is desired to observe the details of the behavior, the verification may be executed by the software simulator 1. Even when the logic information of a module is described at an abstract level, if the hardware emulator 2 is provided with the actual components of the module, the hardware emulator 2 can execute the verification of the module. .

【0047】論理情報の分割後、ステップST3におい
て、ソフトウェアシミュレータ1は、分割後の論理情報
について再構成を実行する。すなわち、ソフトウェアシ
ミュレータ1により検証されるモジュールと、ハードウ
ェアエミュレータ2により検証されるモジュールとの接
続関係が設定される。検証時には、この接続関係に従っ
て、論理演算のための入力データや演算結果の授受がソ
フトウェアシミュレータ1とハードウェアエミュレータ
2との間で通信装置3を介して実行される。
After the division of the logical information, in step ST3, the software simulator 1 executes the reconstruction of the divided logical information. That is, the connection relationship between the module verified by the software simulator 1 and the module verified by the hardware emulator 2 is set. At the time of verification, transmission and reception of input data for logical operations and operation results are executed between the software simulator 1 and the hardware emulator 2 via the communication device 3 in accordance with the connection relationship.

【0048】そしてステップST4において、ソフトウ
ェアシミュレータ1は、ソフトウェアシミュレータ1と
ハードウェアエミュレータ2との間で授受されるモジュ
ール間の入出力信号の割付をシステムバス15などの仕
様に基づいて行う。すなわち、システムバス15が例え
ば32ビットのPCIバスである場合には、ソフトウェ
アシミュレータ1は、モジュール間(第1の部分のモジ
ュールと第2の部分のモジュールとの間)の入出力信号
を32ビット毎に分割し、送受信の順序を決定する。
In step ST4, the software simulator 1 allocates input / output signals between modules exchanged between the software simulator 1 and the hardware emulator 2 based on the specifications of the system bus 15 and the like. That is, when the system bus 15 is, for example, a 32-bit PCI bus, the software simulator 1 transmits an input / output signal between modules (between the module of the first part and the module of the second part) to 32 bits. For each transmission, the order of transmission and reception is determined.

【0049】図4は、ソフトウェアシミュレータ1によ
り検証されるモジュールの一例を示す図である。図にお
いて、101〜103はハードウェアエミュレータ2の
出力信号、すなわちソフトウェアシミュレータ1への入
力信号であり、110〜112はソフトウェアシミュレ
ータ1の出力信号であり、104〜108はレジスタで
あり、150はその他の内部論理であり、120および
121は組合せ回路である。ソフトウェアシミュレータ
1の出力信号110〜112はレジスタ106〜108
からそれぞれ出力される。レジスタ106のクロック1
09は内部論理150により生成され、レジスタ10
7,108のクロックは入力信号103である。組合せ
回路120により出力信号111は遅延される。
FIG. 4 is a diagram showing an example of a module verified by the software simulator 1. In the figure, 101 to 103 are output signals of the hardware emulator 2, that is, input signals to the software simulator 1, 110 to 112 are output signals of the software simulator 1, 104 to 108 are registers, and 150 are other , And 120 and 121 are combinational circuits. Output signals 110 to 112 of the software simulator 1 are stored in registers 106 to 108
Is output from each. Clock 1 of register 106
09 is generated by the internal logic 150 and the register 10
The clocks 7 and 108 are the input signal 103. The output signal 111 is delayed by the combination circuit 120.

【0050】したがって、出力信号110〜112の出
力タイミングが互いに異なることになるため、ステップ
ST4においては、同一タイミングに出力されるものを
可能な限り同一グループとして分割するようにして、デ
ータ転送の回数が少なくなるようにする。
Therefore, since the output timings of the output signals 110 to 112 are different from each other, in step ST4, the signals output at the same timing are divided into the same group as much as possible to Should be reduced.

【0051】次に、ステップST5において、ソフトウ
ェアシミュレータ1は、ハードウェアエミュレータ2の
セットアップを実行する。すなわち、ソフトウェアシミ
ュレータ1は、通信装置3またはコンピュータネットワ
ーク6を介してハードウェアエミュレータ2の制御部2
2に、ハードウェアエミュレータ2により検証されるモ
ジュールの論理情報を供給し、その論理情報に基づいて
論理演算部21の論理構造を設定させる。
Next, in step ST5, the software simulator 1 executes setup of the hardware emulator 2. That is, the software simulator 1 controls the control unit 2 of the hardware emulator 2 via the communication device 3 or the computer network 6.
2, the logic information of the module to be verified by the hardware emulator 2 is supplied, and the logic structure of the logic operation unit 21 is set based on the logic information.

【0052】上記のように検証の準備が終了した後に、
検証を開始する。すなわち、この時点でソフトウェアシ
ミュレータ1においてシミュレーションプログラムが起
動されて検証が開始され、ソフトウェアシミュレータ1
は、シミュレーションを実行する(ステップST6)。
そして、ソフトウェアシミュレータ1による演算結果
(出力信号)がハードウェアエミュレータ2へ通信装置
3を介して送信され(ステップST7)、ハードウェア
エミュレータ2はそれを受けて論理演算を実行し(ステ
ップST8)、演算結果(出力信号)をソフトウェアシ
ミュレータ1へ通信装置3を介して送信する(ステップ
ST9)。以下、シミュレーションが終了するまで(ス
テップST10)、ソフトウェアシミュレータ1とハー
ドウェアエミュレータ2は交互に論理演算を実行する。
After the preparation for verification is completed as described above,
Start verification. That is, at this point, the simulation program is started in the software simulator 1 to start verification, and the software simulator 1
Executes a simulation (step ST6).
Then, the operation result (output signal) by the software simulator 1 is transmitted to the hardware emulator 2 via the communication device 3 (step ST7), and the hardware emulator 2 receives the signal and executes a logical operation (step ST8). The calculation result (output signal) is transmitted to the software simulator 1 via the communication device 3 (step ST9). Hereinafter, the software simulator 1 and the hardware emulator 2 alternately execute logical operations until the simulation is completed (step ST10).

【0053】なお、例えば、システムバス15および通
信装置3とハードウェアエミュレータ2との間のバスが
PCIバスであり、モジュール間の入出力信号が100
本(すなわち100ビット)であるとすると、通信に要
する時間が数百ナノ秒である。ソフトウェアシミュレー
タ1の処理速度(シミュレーションの進行速度)が10
0ヘルツであり(1クロックサイクルが10ミリ秒)、
ハードウェアエミュレータ2の処理速度が10メガヘル
ツである(1クロックサイクルが100ナノ秒)場合に
は、通信速度がソフトウェアシミュレータ1の処理速度
より十分大きいので、通信による遅延は特に問題にはな
らない。
For example, the system bus 15 and the bus between the communication device 3 and the hardware emulator 2 are PCI buses, and input / output signals between the modules are 100 buses.
If it is a book (ie, 100 bits), the time required for communication is several hundred nanoseconds. Software simulator 1 processing speed (simulation progress speed) is 10
0 Hertz (1 clock cycle is 10 ms),
When the processing speed of the hardware emulator 2 is 10 megahertz (one clock cycle is 100 nanoseconds), the communication speed is sufficiently higher than the processing speed of the software simulator 1, so that the delay due to communication does not cause any particular problem.

【0054】次に、通信装置3の動作の詳細について説
明する。バス制御部41は、ソフトウェアシミュレータ
1からのデータ(出力信号)を受信するとバッファメモ
リ42に書き込む。そして、エミュレータ制御部43は
そのデータを読み出し、所定のタイミングでハードウェ
アエミュレータ2に供給する。例えば、図4における出
力信号111は組合せ回路120により遅延するがデー
タ転送は他の出力信号112と同時に行われるため、エ
ミュレータ制御部43は組合せ回路120による遅延分
だけタイミングをずらして出力信号111をハードウェ
アエミュレータ2に供給する。なお、このような各信号
の遅延の情報は、例えばステップST3の再構成の際に
ソフトウェアシミュレータ1により計算され、検証を実
行する前に予め供給される。
Next, the operation of the communication device 3 will be described in detail. When receiving the data (output signal) from the software simulator 1, the bus control unit 41 writes the data (output signal) in the buffer memory 42. Then, the emulator control unit 43 reads the data and supplies the data to the hardware emulator 2 at a predetermined timing. For example, the output signal 111 in FIG. 4 is delayed by the combinational circuit 120, but the data transfer is performed simultaneously with the other output signals 112. Therefore, the emulator control unit 43 shifts the output signal 111 by shifting the timing by the delay by the combinational circuit 120. It is supplied to the hardware emulator 2. It should be noted that such information on the delay of each signal is calculated by the software simulator 1 at the time of the reconfiguration in step ST3, for example, and is supplied in advance before performing the verification.

【0055】一方、ハードウェアエミュレータ2からの
データ(出力信号)をエミュレータ制御部43が受信す
ると、バッファメモリ42に書き込む。バス制御部41
はそのデータをソフトウェアシミュレータ1に送信す
る。
On the other hand, when the emulator control unit 43 receives the data (output signal) from the hardware emulator 2, it writes it into the buffer memory 42. Bus control unit 41
Transmits the data to the software simulator 1.

【0056】また、クロック制御部44は、ハードウェ
アエミュレータ2とソフトウェアシミュレータ1との同
期をとるためにハードウェアエミュレータ2のクロック
を制御し、ソフトウェアシミュレータ1が論理演算を実
行している期間においては、ハードウェアエミュレータ
2による論理演算を停止させる。すなわち、上述のステ
ップST8においてはデータが供給されると、ハードウ
ェアエミュレータ2での演算処理が開始されるが、供給
されたデータによる1イベント分の演算が完了すると、
演算結果の転送後にクロックが停止される。
The clock control unit 44 controls the clock of the hardware emulator 2 in order to synchronize the hardware emulator 2 and the software simulator 1, and during the period when the software simulator 1 is performing a logical operation, Then, the logical operation by the hardware emulator 2 is stopped. That is, in the above-described step ST8, when data is supplied, the arithmetic processing in the hardware emulator 2 is started, but when the operation for one event by the supplied data is completed,
The clock is stopped after the transfer of the operation result.

【0057】以上のように、この実施の形態1によれ
ば、論理情報のうち構造レベルまで確定している部分に
ついてハードウェアエミュレータ2で検証を実行し、そ
の他の部分についてはソフトウェアシミュレータ1で検
証を実行するようにしたので、モジュール毎に設計フェ
ーズが異なる場合においてもエミュレータを効率良く使
用して論理検証に要する時間を低減することができると
いう効果が得られる。
As described above, according to the first embodiment, the hardware emulator 2 verifies the part of the logical information determined to the structure level, and verifies the other part with the software simulator 1. Is executed, the effect that the emulator can be used efficiently and the time required for logic verification can be reduced even when the design phase differs for each module.

【0058】また、実施の形態1によれば、ハードウェ
アエミュレータ2にFPGAなどの再構成可能な回路や
例えばプロセッサのように実部品を設けるようにしたの
で、対象を限定されず様々な回路の検証を実行すること
ができるという効果が得られる。
According to the first embodiment, the hardware emulator 2 is provided with a reconfigurable circuit such as an FPGA or an actual component such as a processor. The effect that the verification can be performed is obtained.

【0059】さらに、実施の形態1によれば、ソフトウ
ェアシミュレータ1におけるシミュレーションプログラ
ムに汎用のシミュレーションプログラムを使用すること
により、装置のコストを低減することができるという効
果が得られる。
Further, according to the first embodiment, the use of a general-purpose simulation program as the simulation program in the software simulator 1 has an effect that the cost of the apparatus can be reduced.

【0060】実施の形態2.この発明の実施の形態2に
よる論理検証装置は、実施の形態1におけるステップS
T7でのソフトウェアシミュレータ1からハードウェア
エミュレータ2へのデータ転送(出力信号の送信)の処
理を変更したものであり、その他の部分については実施
の形態1と同様であるので、その処理についてのみ説明
し、その他の部分についての説明を省略する。
Embodiment 2 The logic verification apparatus according to the second embodiment of the present invention is different from the logic verification apparatus according to the first embodiment in the step S
The processing of data transfer (transmission of output signals) from the software simulator 1 to the hardware emulator 2 in T7 is changed, and the other parts are the same as those in the first embodiment, so only the processing will be described. The description of the other parts is omitted.

【0061】実施の形態2による論理検証装置において
は、データの転送処理が、イベント発生時、すなわち通
信の対象であるデータの値(ソフトウェアシミュレータ
1の出力信号の値)が変化した時のみに実行されるか
(イベントドリブン形式)、または、ソフトウェアシミ
ュレータ1における1クロックサイクルごとに実行され
る(サイクルベース形式)。実際に実行される処理形式
は、総合的にデータ転送に要する時間の少ない方が検証
開始前に予め選択される。
In the logic verification apparatus according to the second embodiment, the data transfer process is executed only when an event occurs, that is, when the value of data to be communicated (the value of the output signal of software simulator 1) changes. Is performed (event driven format) or is executed every clock cycle in the software simulator 1 (cycle based format). As the processing format to be actually executed, the one that requires less time for data transfer overall is selected before the start of verification.

【0062】このようにして、データの転送形式がイベ
ントドリブン形式またはサイクルベース形式に決定され
る。なお、サイクルベース形式においてデータの値が全
く変化しないときにはデータ転送処理を実行しないよう
にして転送回数を低減するようにしてもよい。
In this way, the data transfer format is determined to be the event-driven format or the cycle-based format. When the data value does not change at all in the cycle-based format, the data transfer process may not be performed to reduce the number of transfers.

【0063】以上のように、この実施の形態2によれ
ば、データの転送形式をイベントドリブン形式およびサ
イクルベース形式のうち、総合的にデータ転送に要する
時間の少なくなる方に決定するようにしたので、転送時
間を最適化でき、検証に要する時間をより短くすること
ができるという効果が得られる。
As described above, according to the second embodiment, the data transfer format is determined to be one of the event-driven format and the cycle-based format, whichever reduces the time required for data transfer comprehensively. Therefore, the transfer time can be optimized and the time required for the verification can be further reduced.

【0064】実施の形態3.この発明の実施の形態3に
よる論理検証装置は、実施の形態1におけるステップS
T8でのハードウェアエミュレータ2の動作を変更した
ものであり、その他の部分については実施の形態1と同
様であるので、その処理についてのみ説明し、その他の
部分についての説明を省略する。
Embodiment 3 The logic verification apparatus according to the third embodiment of the present invention is different from the logic verification apparatus in the first embodiment in the step S
This is a modification of the operation of the hardware emulator 2 at T8, and the other parts are the same as those of the first embodiment. Therefore, only the processing will be described, and the description of the other parts will be omitted.

【0065】実施の形態3による論理検証装置において
は、実行を中断できない外部装置5に接続されている場
合など、動作を中断することができない場合には、ハー
ドウェアエミュレータ2は、ソフトウェアシミュレータ
1から供給されるデータに対する演算および演算結果の
転送が完了する毎に、ハードウェアエミュレータ2の論
理演算部21を初期状態(すなわち時刻0での状態)に
し、次にソフトウェアシミュレータ1からデータを供給
されたときに、ソフトウェアシミュレータ1が処理を完
了した時刻まで処理を実行するようにする。この場合、
その時点までのソフトウェアシミュレータ1から供給さ
れたデータをすべてバッファメモリ42に蓄積してお
き、ハードウェアエミュレータ2はそのデータを順次読
み出していき、その時点までの処理を実行する。
In the logic verification device according to the third embodiment, when the operation cannot be interrupted, for example, when the operation is not interrupted, for example, when connected to an external device 5 whose execution cannot be interrupted, the hardware emulator 2 Each time the operation for the supplied data and the transfer of the operation result are completed, the logical operation unit 21 of the hardware emulator 2 is set to the initial state (that is, the state at time 0), and then the data is supplied from the software simulator 1. At this time, the processing is executed until the time when the software simulator 1 completes the processing. in this case,
All data supplied from the software simulator 1 up to that point is stored in the buffer memory 42, and the hardware emulator 2 sequentially reads out the data and executes processing up to that point.

【0066】以上のように、この実施の形態3によれ
ば、ハードウェアエミュレータ2により、ソフトウェア
シミュレータ1からのデータを供給されると、時刻0か
らそのデータに対応する時刻までの検証を実行するよう
にしたので、検証に必要なサイクル数が、ハードウェア
エミュレータ2の処理速度とソフトウェアシミュレータ
1の処理速度との比より小さい場合には、ソフトウェア
シミュレータ1単体より高速にシミュレーションを実行
することができるという効果が得られる。また、シミュ
レーションモデルがないCPUなどを有するシステム全
体を検証することができるという効果が得られる。
As described above, according to the third embodiment, when data is supplied from the software simulator 1 by the hardware emulator 2, the verification from the time 0 to the time corresponding to the data is executed. Thus, when the number of cycles required for verification is smaller than the ratio between the processing speed of the hardware emulator 2 and the processing speed of the software simulator 1, the simulation can be executed faster than the software simulator 1 alone. The effect is obtained. Further, there is an effect that the entire system having a CPU or the like without a simulation model can be verified.

【0067】実施の形態4.この発明の実施の形態4に
よる論理検証装置は、実施の形態1による処理のうち、
論理情報がすべて構造レベルである場合の処理を変更し
たものであり、その他の部分については実施の形態1と
同様であるので、その処理についてのみ説明し、その他
の部分についての説明を省略する。
Embodiment 4 The logic verifying apparatus according to the fourth embodiment of the present invention includes the processing according to the first embodiment,
This is a modification of the processing when the logical information is all at the structure level, and the other parts are the same as in the first embodiment. Therefore, only the processing will be described, and the description of the other parts will be omitted.

【0068】一般に論理回路を検証する場合には、対象
となる論理の正当性を評価するためのテストベンチを作
成する。テストベンチは、対象となる論理に対する入力
データと、その入力データを印加した場合の論理の出力
結果の期待値で構成される。テストベンチには具体的な
論理構造は想定されていないので、設計の最終段階にお
いて論理情報がすべて構造レベルである場合には、論理
演算はすべてハードウェアエミュレータ2に実行される
ことになる。したがって、この場合には、供給されたテ
ストベンチの入力データをすべて検証開始前に通信装置
3のバッファメモリ42に蓄積しておき、バッファメモ
リ42からその入力データをハードウェアエミュレータ
2に供給するようにする。
In general, when verifying a logic circuit, a test bench for evaluating the validity of the target logic is created. The test bench includes input data for a target logic and an expected value of an output result of the logic when the input data is applied. Since no specific logical structure is assumed in the test bench, if all the logical information is at the structural level in the final stage of design, all the logical operations are executed by the hardware emulator 2. Therefore, in this case, all of the supplied input data of the test bench is accumulated in the buffer memory 42 of the communication device 3 before the start of the verification, and the input data is supplied from the buffer memory 42 to the hardware emulator 2. To

【0069】以上のように、この実施の形態4によれ
ば、論理情報がすべて構造レベルである場合には、対象
となる論理への入力データをすべて通信装置3に蓄積さ
せた後に検証を開始するようにしたので、データの転送
時間を低減することができ、検証に要する時間も低減す
ることができるという効果が得られる。
As described above, according to the fourth embodiment, when all the logical information is at the structural level, the verification is started after all the input data to the target logic is stored in the communication device 3. As a result, the data transfer time can be reduced, and the time required for verification can be reduced.

【0070】[0070]

【発明の効果】以上のように、この発明によれば、被検
証論理の所定の第1の部分についての検証を実行する再
構成可能なハードウェアエミュレータと、被検証論理の
シミュレーションを記述したシミュレーションプログラ
ムを記憶する記憶手段と、シミュレーションプログラム
を実行し、被検証論理の残りの第2の部分の検証を実行
する演算処理手段とを有するソフトウェアシミュレータ
と、ハードウェアエミュレータとソフトウェアシミュレ
ータとの間で、被検証論理についての検証の演算結果の
授受を実行する通信部とを備えるように構成したので、
モジュール毎に設計フェーズが異なる場合においてもエ
ミュレータを効率良く使用して論理検証に要する時間を
低減することができるという効果がある。
As described above, according to the present invention, a reconfigurable hardware emulator that executes verification of a predetermined first part of a logic to be verified, and a simulation that describes a simulation of the logic to be verified. A software simulator having storage means for storing the program, and arithmetic processing means for executing the simulation program and executing the verification of the remaining second part of the logic to be verified; and And a communication unit for transmitting and receiving the operation result of the verification for the verified logic.
Even when the design phase differs for each module, there is an effect that the time required for logic verification can be reduced by using the emulator efficiently.

【0071】この発明によれば、通信部との間のインタ
フェースのバス幅と同数のビット数単位で、第1の部分
と第2の部分との間で授受されるデータを分割するよう
に構成したので、インタフェースによるデータ転送の回
数を最適化することができるという効果がある。
According to the present invention, data transmitted and received between the first part and the second part is divided in units of the same number of bits as the bus width of the interface with the communication unit. Therefore, there is an effect that the number of times of data transfer by the interface can be optimized.

【0072】この発明によれば、ソフトウェアシミュレ
ータが、検証の演算結果の値が変化するタイミング、お
よびクロック毎のタイミングのうち、検証の演算結果の
転送時間が短くなる方のタイミングで検証の演算結果を
通信部に送信するように構成したので、転送時間を最適
化でき、検証に要する時間をより短くすることができる
という効果がある。
According to the present invention, the software simulator provides the verification operation result at the timing at which the value of the verification operation result changes and the timing of each clock, whichever is shorter in the transfer time of the verification operation result. Is transmitted to the communication unit, so that the transfer time can be optimized and the time required for verification can be further reduced.

【0073】この発明によれば、ソフトウェアシミュレ
ータによる検証の演算結果を供給されると、ハードウェ
アエミュレータが時刻0からその検証の演算結果に対応
する時刻までの検証を実行するように構成したので、検
証に必要なサイクル数が、ハードウェアエミュレータの
処理速度とソフトウェアシミュレータの処理速度との比
より小さい場合には、ソフトウェアシミュレータ単体よ
り高速にシミュレーションを実行することができるとい
う効果がある。また、シミュレーションモデルがないC
PUなどを有するシステム全体を検証することができる
という効果がある。
According to the present invention, when the operation result of the verification by the software simulator is supplied, the hardware emulator performs the verification from time 0 to the time corresponding to the operation result of the verification. When the number of cycles required for verification is smaller than the ratio between the processing speed of the hardware emulator and the processing speed of the software simulator, there is an effect that the simulation can be executed faster than the software simulator alone. In addition, C with no simulation model
There is an effect that the entire system having a PU or the like can be verified.

【0074】この発明によれば、被検証論理のすべてを
ハードウェアエミュレータにより検証する第1の部分と
した場合には被検証論理への入力データをすべて通信部
に送信し、通信部がソフトウェアシミュレータからのデ
ータを蓄積し、ハードウェアエミュレータに供給し、ハ
ードウェアエミュレータがそのデータを使用して被検証
論理のすべてについての検証を実行するように構成した
ので、データの転送時間を低減することができ、検証に
要する時間も低減することができるという効果がある。
According to the present invention, when all of the logic to be verified is the first part to be verified by the hardware emulator, all the input data to the logic to be verified is transmitted to the communication unit, and the communication unit is connected to the software simulator. The data transfer time can be reduced by accumulating data from the HMI and supplying it to the hardware emulator, and the hardware emulator is configured to use that data to perform verification on all of the logic under test. And the time required for verification can be reduced.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 この発明の実施の形態1による論理検証装置
の構成を示すブロック図である。
FIG. 1 is a block diagram showing a configuration of a logic verification device according to a first embodiment of the present invention.

【図2】 図1の通信装置の詳細な構成例を示すブロッ
ク図である。
FIG. 2 is a block diagram illustrating a detailed configuration example of the communication device in FIG. 1;

【図3】 実施の形態1による論理検証装置の動作につ
いて説明するフローチャートである。
FIG. 3 is a flowchart illustrating an operation of the logic verification device according to the first embodiment;

【図4】 ソフトウェアシミュレータにより検証される
モジュールの一例を示す図である。
FIG. 4 is a diagram showing an example of a module verified by a software simulator.

【図5】 従来のハードウェア論理エミュレーションシ
ステムを示す図である。
FIG. 5 is a diagram showing a conventional hardware logic emulation system.

【図6】 図5の管理用コンピュータの動作を説明する
フローチャートである。
FIG. 6 is a flowchart illustrating an operation of the management computer of FIG. 5;

【図7】 第1の従来の論理検証装置の構成を示すブロ
ック図である。
FIG. 7 is a block diagram showing a configuration of a first conventional logic verification device.

【図8】 第2の従来の論理検証装置の構成を示すブロ
ック図である。
FIG. 8 is a block diagram showing a configuration of a second conventional logic verification device.

【符号の説明】[Explanation of symbols]

1 ソフトウェアシミュレータ、2 ハードウェアエミ
ュレータ、3 通信装置(通信部)、5 外部装置、1
1 CPU(演算処理手段)、12 メモリ(記憶手
段)、42 バッファメモリ、43 エミュレータ制御
部(第1の制御手段)、44 クロック制御部(第2の
制御手段)、45 外部装置制御部(第3の制御手
段)。
1 software simulator, 2 hardware emulator, 3 communication device (communication section), 5 external device, 1
1 CPU (arithmetic processing means), 12 memory (storage means), 42 buffer memory, 43 emulator control section (first control means), 44 clock control section (second control means), 45 external device control section ( 3 control means).

Claims (12)

【特許請求の範囲】[Claims] 【請求項1】 被検証論理の所定の第1の部分について
の検証を実行する再構成可能なハードウェアエミュレー
タと、 前記被検証論理のシミュレーションを記述したシミュレ
ーションプログラムを記憶する記憶手段と、前記シミュ
レーションプログラムを実行し、前記被検証論理の残り
の第2の部分の検証を実行する演算処理手段とを有する
ソフトウェアシミュレータと、 前記ハードウェアエミュレータと前記ソフトウェアシミ
ュレータとの間で、前記被検証論理についての検証の演
算結果の授受を実行する通信部とを備えた論理検証装
置。
1. A reconfigurable hardware emulator that executes verification of a predetermined first part of logic to be verified, storage means for storing a simulation program describing a simulation of the logic to be verified, and the simulation A software simulator having an arithmetic processing unit for executing a program and executing a verification of the remaining second part of the logic to be verified; and a software simulator between the hardware emulator and the software simulator. A logic verification device comprising: a communication unit configured to transmit and receive a calculation result of verification.
【請求項2】 被検証論理の抽象度レベルに応じて、前
記被検証論理を、ハードウェアエミュレータにより検証
する第1の部分と、前記ソフトウェアシミュレータによ
り検証する第2の部分とに分割することを特徴とする請
求項1記載の論理検証装置。
2. A method according to claim 1, wherein said verification target logic is divided into a first part to be verified by a hardware emulator and a second part to be verified by said software simulator according to an abstraction level of the verification target logic. The logic verification device according to claim 1, wherein
【請求項3】 ソフトウェアシミュレータは、通信部と
の間のインタフェースのバス幅と同数のビット数単位
で、第1の部分と第2の部分との間で授受されるデータ
を分割することを特徴とする請求項1記載の論理検証装
置。
3. The software simulator according to claim 1, wherein the software simulator divides the data transmitted and received between the first part and the second part in units of the same number of bits as the bus width of the interface with the communication unit. The logic verification device according to claim 1, wherein
【請求項4】 ソフトウェアシミュレータは、検証の演
算結果を通信部に送信し、 前記通信部は、前記ソフトウェアシミュレータからの前
記検証の演算結果をハードウェアエミュレータに供給
し、 前記ハードウェアエミュレータは、前記ソフトウェアシ
ミュレータによる検証の演算結果をデータとして検証を
実行することを特徴とする請求項1記載の論理検証装
置。
4. The software simulator transmits a calculation result of the verification to a communication unit. The communication unit supplies the calculation result of the verification from the software simulator to a hardware emulator. 2. The logic verification device according to claim 1, wherein the verification is performed by using a calculation result of the verification by the software simulator as data.
【請求項5】 ソフトウェアシミュレータは、検証の演
算結果の値が変化するタイミング、およびクロック毎の
タイミングのうち、前記検証の演算結果の転送時間が短
くなる方のタイミングで前記検証の演算結果を通信部に
送信することを特徴とする請求項4記載の論理検証装
置。
5. The software simulator communicates the operation result of the verification at a timing at which a transfer time of the operation result of the verification is shorter among timings at which a value of the operation result of the verification changes and timing at each clock. 5. The logic verification device according to claim 4, wherein the data is transmitted to a unit.
【請求項6】 ハードウェアエミュレータは、ソフトウ
ェアシミュレータによる検証の演算結果を供給される
と、1イベント分だけ検証を実行することを特徴とする
請求項4記載の論理検証装置。
6. The logic verification device according to claim 4, wherein the hardware emulator executes the verification for one event when supplied with the operation result of the verification by the software simulator.
【請求項7】 ハードウェアエミュレータは、ソフトウ
ェアシミュレータによる検証の演算結果を供給される
と、時刻0からその検証の演算結果に対応する時刻まで
の検証を実行することを特徴とする請求項4記載の論理
検証装置。
7. The hardware emulator according to claim 4, wherein, when supplied with the operation result of the verification by the software simulator, the hardware emulator executes the verification from time 0 to a time corresponding to the operation result of the verification. Logic verification device.
【請求項8】 通信部は、ソフトウェアシミュレータか
らの被検証論理についての検証の演算結果を、ハードウ
ェアエミュレータに供給するまで記憶するバッファメモ
リを有することを特徴とする請求項1記載の論理検証装
置。
8. The logic verification device according to claim 1, wherein the communication unit has a buffer memory for storing the operation result of the verification of the logic to be verified from the software simulator until the operation result is supplied to the hardware emulator. .
【請求項9】 通信部は、ソフトウェアシミュレータか
らの被検証論理についての検証の演算結果をハードウェ
アエミュレータに供給するタイミングを制御する第1の
制御手段を有することを特徴とする請求項1記載の論理
検証装置。
9. The communication unit according to claim 1, wherein the communication unit has a first control unit that controls a timing at which a calculation result of verification of the verified logic from the software simulator is supplied to the hardware emulator. Logic verification device.
【請求項10】 通信部は、ハードウェアエミュレータ
のクロックを制御して前記ソフトウェアシミュレータで
の処理と前記ハードウェアエミュレータでの処理とを同
期させる第2の制御手段を有することを特徴とする請求
項1記載の論理検証装置。
10. The communication unit according to claim 1, further comprising second control means for controlling a clock of a hardware emulator to synchronize the processing in the software simulator with the processing in the hardware emulator. 2. The logic verification device according to 1.
【請求項11】 通信部は、ハードウェアエミュレータ
に接続される所定の外部装置を制御し、前記所定の外部
装置での処理と前記ハードウェアエミュレータでの処理
を同期させる第3の制御手段とを有することを特徴とす
る請求項1記載の論理検証装置。
11. The communication unit controls a predetermined external device connected to a hardware emulator, and includes a third control unit that synchronizes processing in the predetermined external device with processing in the hardware emulator. 2. The logic verification device according to claim 1, further comprising:
【請求項12】 ソフトウェアシミュレータは、被検証
論理のすべてをハードウェアエミュレータにより検証す
る第1の部分とした場合に、前記被検証論理への入力デ
ータをすべて通信部に送信し、 前記通信部は、前記ソフトウェアシミュレータからの前
記データを蓄積し、ハードウェアエミュレータに供給
し、 前記ハードウェアエミュレータは、前記データを使用し
て前記被検証論理のすべてについての検証を実行するこ
とを特徴とする請求項1記載の論理検証装置。
12. The software simulator transmits all input data to the logic to be verified to a communication unit when all of the logic to be verified is a first part to be verified by a hardware emulator. Accumulating the data from the software simulator and supplying the data to a hardware emulator, wherein the hardware emulator uses the data to execute verification of all of the verified logic. 2. The logic verification device according to 1.
JP11016122A 1999-01-25 1999-01-25 Logic verification device Pending JP2000215226A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11016122A JP2000215226A (en) 1999-01-25 1999-01-25 Logic verification device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11016122A JP2000215226A (en) 1999-01-25 1999-01-25 Logic verification device

Publications (1)

Publication Number Publication Date
JP2000215226A true JP2000215226A (en) 2000-08-04

Family

ID=11907717

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11016122A Pending JP2000215226A (en) 1999-01-25 1999-01-25 Logic verification device

Country Status (1)

Country Link
JP (1) JP2000215226A (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7228513B2 (en) 2003-09-09 2007-06-05 Nec Corporation Circuit operation verification device and method
US7395197B2 (en) 2003-09-09 2008-07-01 Nec Corporation Verification method and system for logic circuit
JP2008262552A (en) * 2007-03-19 2008-10-30 Fujitsu Ltd File information creation program, file information creation method, and file information creation device
JP2009524138A (en) * 2006-01-20 2009-06-25 メンター グラフィックス コーポレイション Modeling and simulation methods
US7610569B2 (en) 2004-02-17 2009-10-27 Dong-goo YUN Chip design verification apparatus and data communication method for the same
US8074192B2 (en) 2008-03-17 2011-12-06 Fujitsu Limited Verification support apparatus, verification support method, and computer product
JP5884729B2 (en) * 2010-04-27 2016-03-15 日本電気株式会社 Logic circuit emulator and control method of logic circuit emulator
CN108646713A (en) * 2018-05-24 2018-10-12 广东戈兰玛汽车系统有限公司 Simulation system for program logic verification of P-gear controller based on CANoe
CN119720890A (en) * 2025-02-28 2025-03-28 北京开源芯片研究院 A hardware verification method, device, electronic device and storage medium

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7228513B2 (en) 2003-09-09 2007-06-05 Nec Corporation Circuit operation verification device and method
US7395197B2 (en) 2003-09-09 2008-07-01 Nec Corporation Verification method and system for logic circuit
US7610569B2 (en) 2004-02-17 2009-10-27 Dong-goo YUN Chip design verification apparatus and data communication method for the same
JP2009524138A (en) * 2006-01-20 2009-06-25 メンター グラフィックス コーポレイション Modeling and simulation methods
JP2008262552A (en) * 2007-03-19 2008-10-30 Fujitsu Ltd File information creation program, file information creation method, and file information creation device
US8074192B2 (en) 2008-03-17 2011-12-06 Fujitsu Limited Verification support apparatus, verification support method, and computer product
JP5884729B2 (en) * 2010-04-27 2016-03-15 日本電気株式会社 Logic circuit emulator and control method of logic circuit emulator
US9639639B2 (en) 2010-04-27 2017-05-02 Nec Corporation Logic circuit emulator and control method therefor
CN108646713A (en) * 2018-05-24 2018-10-12 广东戈兰玛汽车系统有限公司 Simulation system for program logic verification of P-gear controller based on CANoe
CN119720890A (en) * 2025-02-28 2025-03-28 北京开源芯片研究院 A hardware verification method, device, electronic device and storage medium

Similar Documents

Publication Publication Date Title
KR100483636B1 (en) Method and apparatus for design verification using emulation and simulation
JP4804620B2 (en) System on chip design verification method and apparatus
US6993469B1 (en) Method and apparatus for unified simulation
JP4456420B2 (en) Network-based hierarchical emulation system
US6202044B1 (en) Concurrent hardware-software co-simulation
US6539522B1 (en) Method of developing re-usable software for efficient verification of system-on-chip integrated circuit designs
CN102521444A (en) Cooperative simulation/verification method and device for software and hardware
WO2024130861A1 (en) Cloud native hardware logic simulation fpga acceleration method and system
US8352242B2 (en) Communication scheme between programmable sub-cores in an emulation environment
US7050958B1 (en) Method and apparatus for accelerating hardware simulation
EP0410502B1 (en) Method and apparatus for emulating interaction between application specific integrated circuit (asic) under development and target system
JP2000215226A (en) Logic verification device
US9581643B1 (en) Methods and circuits for testing partial circuit designs
US7386827B1 (en) Building a simulation environment for a design block
US20050144436A1 (en) Multitasking system level platform for HW/SW co-verification
US20040230934A1 (en) System and method for emulating systems with multiple field programmable gate arrays
CN117272883A (en) Distributed simulation synchronization of circuit designs
US10664637B2 (en) Testbench restoration based on capture and replay
Sayinta et al. A mixed abstraction level co-simulation case study using systemc for system on chip verification
Chevalier et al. SPACE: A hardware/software SystemC modeling platform including an RTOS
CN116594830A (en) Hardware simulation tool, debugging method and storage medium
EP1859372A1 (en) Cross-bar switching in an emulation environment
JP2004310568A (en) Simulator device, simulation method and performance analysis method
Brown et al. Rapid prototyping and evaluation of high-performance computers
Kurula A FRAMEWORK FOR EARLY SYSTEM-ON-CHIP CO-VALIDATION