JPH11110429A - Event generating device, and hardware simulation device and method therefor - Google Patents

Event generating device, and hardware simulation device and method therefor

Info

Publication number
JPH11110429A
JPH11110429A JP27010097A JP27010097A JPH11110429A JP H11110429 A JPH11110429 A JP H11110429A JP 27010097 A JP27010097 A JP 27010097A JP 27010097 A JP27010097 A JP 27010097A JP H11110429 A JPH11110429 A JP H11110429A
Authority
JP
Japan
Prior art keywords
event
instruction
hardware
simulation
user task
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
JP27010097A
Other languages
Japanese (ja)
Inventor
Yoshihiko Imamura
義彦 今村
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP27010097A priority Critical patent/JPH11110429A/en
Publication of JPH11110429A publication Critical patent/JPH11110429A/en
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Abstract

PROBLEM TO BE SOLVED: To provide a hardware simulation device for carrying out logical inspection with high reliability. SOLUTION: At the time of compile, a listing file 304 is generated by using an event generation keyword described in a text program 301 for instructing for generating an event in a format which does not have any influence on an object program 305. A user task generated based on a listing file 304 is registered in an event synchronization generating module 310. Also, the operation of a simulation model module 400 is monitored by a function program for monitoring, and an instruction which is being executed is specified. Then, when an instruction, by which an event described in the text program 301 should be synchronized, is executed, the user task corresponding to the event is read through an interface to the module 400, and the event is scheduled.

Description

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

【0001】[0001]

【発明が属する技術分野】本発明は、イベント発生装
置、ハードウェアシミュレーション装置およびその方法
に関する。
The present invention relates to an event generation device, a hardware simulation device, and a method thereof.

【0002】[0002]

【従来の技術】マイクロプロセッサやマイクロコントロ
ーラなどのLSI(Large Scale Integration) の設計過
程で、ソフトウェアで記述した動作モデルをコンピュー
タ上で論理シュミレーションして論理検証を行うことが
ある。このような論理検証作業は、例えば、図9に示す
ように、例えば、Verilog−HLDなどのハード
ウェア記述言語を用いて作成された、設計対象であるL
SIの動作モデル28を用いて行われる。動作モデル2
8では、割り込みやバスリクエストなどのイベントを発
生させるためのイベントモジュール25を、Veril
og−HLDなどのハードウェア記述言語で記述して、
実際にターゲットモデル31の信号をドライブしてい
る。また、動作モデル28には、その他に、クロック供
給回路モジュール29、リセット発生回路モジュール3
0、メモリコントローラモジュール33やメモリモデル
モジュール32といったターゲットモデル31を動作さ
せるのに必要なモジュールが備えられている。
2. Description of the Related Art In the course of designing an LSI (Large Scale Integration) such as a microprocessor or a microcontroller, an operation model described by software may be subjected to logic simulation on a computer to perform logic verification. Such a logic verification work is, for example, as shown in FIG. 9, a design target L created using a hardware description language such as Verilog-HLD.
This is performed using the SI operation model 28. Operation model 2
8, an event module 25 for generating an event such as an interrupt or a bus request is provided by a Veril
written in a hardware description language such as og-HLD,
The signal of the target model 31 is actually driven. The operation model 28 further includes a clock supply circuit module 29, a reset generation circuit module 3
0, modules necessary for operating the target model 31 such as the memory controller module 33 and the memory model module 32 are provided.

【0003】また、マイクロプロセッサやマイクロコン
トローラなどのLSIでは、通常、ターゲットモデル3
1を動作させるために、上述したモジュールの他に、ソ
フトウェアプログラムが必要である。このような、ソフ
トウェアプログラムは、ユーザが記述したテキストプロ
グラム21を、コンパイラ22を用いて、動作モデル2
8が読み込めるフォーマット形式のオブジェクトファイ
ル23に変換される。この変換は1回とは限らず、複数
回行われることもある。
[0003] In an LSI such as a microprocessor or a microcontroller, a target model 3 is usually used.
1 requires a software program in addition to the modules described above. Such a software program converts a text program 21 written by a user into an operation model 2 using a compiler 22.
8 is converted into an object file 23 in a format that can be read. This conversion is not limited to once, but may be performed a plurality of times.

【0004】動作モデル28では、イベントの発生をシ
ミューレションするときに、図10に示すように、テキ
ストプログラム21中に、例えば、命令「sw r2,
r5」などの特定の外部メモリのアドレスに対しての書
き込み命令を明示的に記述し、当該書き込み命令を実行
したときに、対応するイベント実行のトリガーを発生さ
せる。イベントモジュール25は、命令「sw r2,
r5」に応じてI/Oマップド外部メモリへの書き込み
動作が行われた時刻を基準としてイベントをスケジュー
ルした後、スケジュールに従ってイベントを発生させ
る。
In the operation model 28, when simulating the occurrence of an event, as shown in FIG. 10, for example, an instruction "sw r2,
A write instruction for a specific external memory address such as "r5" is explicitly described, and when the write instruction is executed, a trigger for executing the corresponding event is generated. The event module 25 executes the instruction “sw r2,
After scheduling the event based on the time at which the write operation to the I / O mapped external memory is performed according to “r5”, the event is generated according to the schedule.

【0005】この例では、I/Oマップド外部メモリへ
の書き込み動作が実行されてから、6サイクル後にイベ
ントが発生する様にスケジュールされている。したがっ
て、実際にイベントが発生するのは、命令「sw r
2,r5」から6命令後の命令「addir6,0x0
001」が実行されるタイミングを想定している。
In this example, the event is scheduled to occur six cycles after the write operation to the I / O mapped external memory is performed. Therefore, the event actually occurs when the instruction “sw r
Instruction "addir6,0x0" after 6 instructions from "2, r5"
"001" is assumed.

【0006】[0006]

【発明が解決しようとする課題】しかしながら、この場
合に、命令「sw r2,r5」の実行から6サイクル
後にイベントが発生することが決定された状態で、ター
ゲットモデル31の動作が何らかの原因で停止(ストー
ル)した場合には、命令「addi r6,0x000
1」が実行されたタイミングではイベントは発生しな
い。すなわち、命令「addi r6,0x0001」
が実行されるタイミングでイベントが確実に発生すると
は限らず、いわゆる同期ずれが起こる可能性がある。
In this case, however, the operation of the target model 31 is stopped for some reason in a state where it is determined that an event occurs six cycles after execution of the instruction "sw r2, r5". (Stall), the instruction “addr r6, 0x000
No event occurs at the timing when "1" is executed. That is, the instruction “addi r6, 0x0001”
The event is not necessarily generated at the timing when is executed, and so-called out-of-synchronization may occur.

【0007】また、上述した論理検証は、テキストプロ
グラム21を動作モデル27上で実行して、LSIの機
能を検証する作業である。したがって、その本来の目的
を達成するためには、テキストプログラム21中に、前
述した命令「sw r2,r5」などのように、本来の
目的以外の命令を含むべきではない。そのため、可能な
限り、テキストプログラム21には、ターゲットモデル
31が本来的に行う動作以外の記述を入れないでシミュ
レーションを実行することが論理検証の信頼性を高める
上で重要である。
[0007] The above-described logic verification is a task of executing the text program 21 on the operation model 27 to verify the function of the LSI. Therefore, in order to achieve the original purpose, the text program 21 should not include an instruction other than the original purpose, such as the above-mentioned instruction “sw r2, r5”. For this reason, it is important to execute the simulation as much as possible without including a description other than the operation originally performed by the target model 31 in the text program 21 in order to enhance the reliability of the logic verification.

【0008】本発明は上述した従来技術の問題点に鑑み
てなされ、テキストプログラム中の命令が実行されるタ
イミングに同期してイベントがスケジュールされ、しか
も高い信頼性の論理検証を行うことができるイベント発
生装置、ハードウェアシミュレーション装置およびその
方法を提供することを目的とする。
The present invention has been made in view of the above-mentioned problems of the prior art, and has an event scheduled in synchronization with the timing at which an instruction in a text program is executed, and which can perform highly reliable logic verification. It is an object to provide a generator, a hardware simulation device, and a method thereof.

【0009】[0009]

【課題を解決するための手段】上述した従来技術の問題
点を解決し、上述した目的を達成するために、本発明の
イベント発生装置は、ハードウェアを制御する論理検証
用の命令を記述したテストプログラムをコンパイルして
生成されたオブジェクトプログラムに基づいて、ハード
ウェア記述言語を用いて記述された前記ハードウェアの
シミュレーションモデルを動作させて論理検証を行うと
きに、前記シミュレーションモデルにイベントを発生さ
せるイベント発生装置であって、前記テストプログラム
中に記述され、前記オブジェクトプログラムには影響を
与えない形式でイベントの発生を指示するイベント発生
キーワードを用いて、コンパイル時に、イベント情報フ
ァイルを生成するコンパイラと、前記イベント情報ファ
イルに基づいて、手続き型の高級プログラミング言語を
用いて記述されたイベントに応じたユーザタスクを生成
し、当該ユーザタスクを登録するユーザタスク生成手段
と、前記ユーザタスク生成手段と前記シミュレーション
モデルとの間のインタフェースと、前記オブジェクトプ
ログラムに応じた前記シミュレーションモデルの動作を
監視し、実行中の命令を特定する動作監視手段と、前記
動作監視手段の監視結果に基づいて、前記テストプログ
ラムに記述されたイベントが同期すべき命令が実行され
るときに、当該イベントに対応するユーザタスクを前記
インタフェースを介して前記ユーザタスク生成手段から
前記シミュレーションモデルに読み出して当該イベント
をスケジュールするスケジュール手段とを有する。
SUMMARY OF THE INVENTION In order to solve the above-mentioned problems of the prior art and to achieve the above-mentioned object, an event generating apparatus of the present invention describes an instruction for logic verification for controlling hardware. Based on an object program generated by compiling a test program, an event is generated in the simulation model when performing a logic verification by operating a hardware simulation model described using a hardware description language. An event generating device, comprising: a compiler that generates an event information file at the time of compilation by using an event generating keyword that is described in the test program and instructs the generation of an event in a format that does not affect the object program. , Based on the event information file, A user task generating means for generating a user task according to an event described using a continuation type high-level programming language, and registering the user task; and an interface between the user task generating means and the simulation model; The operation described in the test program should be synchronized based on the operation monitoring unit that monitors the operation of the simulation model according to the object program and specifies the instruction being executed, and the monitoring result of the operation monitoring unit. And a scheduler for reading a user task corresponding to the event from the user task generation unit to the simulation model via the interface when the instruction is executed, and scheduling the event.

【0010】本発明のイベント発生装置では、シミュレ
ーションモデルがオブジェクトプログラムに基づいて動
作する。このとき、シミュレーションモデルにおいて実
行中の命令が動作監視手段によって監視される。そし
て、ユーザタスク生成手段に登録されたユーザタスクに
対応するイベントと同期すべき命令が実行されると、当
該イベントがスケジュールされる。スケジュールされた
イベントは、自らが保持する条件が満たされるか否かを
監視し、条件が満たされたときに発生し、所定のイベン
ト動作が行われる。
In the event generation device according to the present invention, the simulation model operates based on the object program. At this time, the instruction being executed in the simulation model is monitored by the operation monitoring means. Then, when an instruction to be synchronized with an event corresponding to the user task registered in the user task generating means is executed, the event is scheduled. The scheduled event monitors whether or not a condition held by itself is satisfied, occurs when the condition is satisfied, and performs a predetermined event operation.

【0011】また、本発明のハードウェアシミュレーシ
ョン装置は、ハードウェアを制御する論理検証用の命令
を記述したテストプログラムをコンパイルして生成され
たオブジェクトプログラムに基づいて、前記ハードウェ
アのシミュレーションモデルを動作させるハードウェア
シミュレーション装置であって、前記テストプログラム
中に記述され、前記オブジェクトプログラムには影響を
与えない形式でイベントの発生を指示するイベント発生
キーワードを用いて、コンパイル時に、イベント情報フ
ァイルを生成するコンパイラと、ハードウェア記述言語
を用いて記述され、前記オブジェクトプログラムに基づ
いて、対象ハードウェアのシミュレーション動作を行う
シミュレーションモデルと、前記イベント情報ファイル
に基づいて、手続き型の高級プログラミング言語を用い
て記述されたイベントに応じたユーザタスクを生成し、
当該ユーザタスクを登録するユーザタスク生成手段と、
前記ユーザタスク生成手段と前記シミュレーションモデ
ルとの間のインタフェースと、前記オブジェクトプログ
ラムに応じた前記シミュレーションモデルの動作を監視
し、実行中の命令を特定する動作監視手段と、前記動作
監視手段の監視結果に基づいて、前記テストプログラム
に記述されたイベントが同期すべき命令が実行されると
きに、当該イベントに対応するユーザタスクを前記イン
タフェースを介して前記ユーザタスク生成手段から前記
シミュレーションモデルに読み出して当該イベントをス
ケジュールするスケジュール手段とを有する。
Further, the hardware simulation apparatus of the present invention operates the hardware simulation model based on an object program generated by compiling a test program describing a logic verification instruction for controlling the hardware. A hardware simulation device for generating an event information file at compile time by using an event generation keyword described in the test program and indicating generation of an event in a format that does not affect the object program. A compiler, a simulation model which is described using a hardware description language and performs a simulation operation of the target hardware based on the object program, and a procedure based on the event information file. It generates user tasks in accordance with the described event with the type of high-level programming language,
A user task generating means for registering the user task,
An interface between the user task generation unit and the simulation model; an operation monitoring unit that monitors an operation of the simulation model according to the object program, and specifies an instruction being executed; and a monitoring result of the operation monitoring unit. When an instruction to be synchronized with an event described in the test program is executed, a user task corresponding to the event is read out from the user task generating means to the simulation model via the interface, and Scheduling means for scheduling an event.

【0012】また、本発明のハードウェアシミュレーシ
ョン方法は、ハードウェアを制御する論理検証用の命令
を記述したテストプログラムをコンパイルして生成され
たオブジェクトプログラムに基づいて、前記ハードウェ
アのシミュレーションモデルを動作させるハードウェア
シミュレーション方法であって、前記テストプログラム
中に記述され、前記オブジェクトプログラムには影響を
与えない形式でイベントの発生を指示するイベント発生
キーワードを用いて、コンパイルしてイベント情報ファ
イルを生成し、ハードウェア記述言語を用いて記述され
シミュレーションモデルを用いて、前記オブジェクトプ
ログラムに基づいて、対象ハードウェアのシミュレーシ
ョン動作を行い、前記イベント情報ファイルに基づい
て、手続き型の高級プログラミング言語を用いて記述さ
れたイベントに応じたユーザタスクを生成し、前記オブ
ジェクトプログラムに応じた前記シミュレーションモデ
ルの動作を監視して実行中の命令を特定し、前記監視の
結果に基づいて、前記テストプログラムに記述されたイ
ベントが同期すべき命令が実行されるときに、当該イベ
ントに対応するユーザタスクをインタフェースを介して
前記シミュレーションモデルに読み出して当該イベント
をスケジュールする。
Further, the hardware simulation method of the present invention operates the hardware simulation model based on an object program generated by compiling a test program describing a logic verification instruction for controlling the hardware. A hardware simulation method for compiling an event information file by using an event generation keyword described in the test program and indicating generation of an event in a format that does not affect the object program. Performing a simulation operation of the target hardware based on the object program using a simulation model described using a hardware description language, and performing a procedural high-level operation based on the event information file. Generate a user task according to an event described using a programming language, monitor the operation of the simulation model according to the object program, specify an instruction being executed, and, based on a result of the monitoring, When an instruction to be synchronized with an event described in the test program is executed, a user task corresponding to the event is read out to the simulation model via an interface to schedule the event.

【0013】[0013]

【発明の実施の形態】以下、本発明の実施形態に係わる
LSIシミュレーション装置について説明する。図1
は、本実施形態に係わるLSIシミュレーション装置3
00のシステム構成図である。図1に示すように、LS
Iシミュレーション装置300は、イベントリスト抽出
モジュール306、システムコール・メモリロードモジ
ュール307、イベント同期発生モジュール310、シ
ミュレーションモデルモジュール400を有する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, an LSI simulation apparatus according to an embodiment of the present invention will be described. FIG.
Is an LSI simulation device 3 according to the present embodiment.
00 is a system configuration diagram of FIG. As shown in FIG.
The I simulation apparatus 300 includes an event list extraction module 306, a system call / memory load module 307, an event synchronization generation module 310, and a simulation model module 400.

【0014】イベントリスト抽出モジュール306は、
イベントプログラムライブラリ303で定義されている
関数名およびその関数の引数の受け渡し順序などに基づ
いて、リスティングファイル304中にイベントスケジ
ュール宣言によってユーザイベントとして記述されたイ
ベントを、ユーザタスク3081 〜308n に展開す
る。ユーザタスク3081 〜308n は、イベント同期
発生モジュール310に登録される。ここで、1つのイ
ベントから1つのユーザタスクが生成される場合と、1
つのイベントから複数のユーザタスクが生成される場合
とがある。
The event list extraction module 306
Based on the function names defined in the event program library 303 and the transfer order of the arguments of the functions, the events described as user events by the event schedule declaration in the listing file 304 are stored in the user tasks 308 1 to 308 n . expand. The user tasks 308 1 to 308 n are registered in the event synchronization generation module 310. Here, one user task is generated from one event,
A plurality of user tasks may be generated from one event.

【0015】リスティングファイル304は、プロセッ
サで実行される命令に加えてユーザイベントを記述した
テストプログラム301をコンパイラ302でコンパイ
ルしてオブジェクトファイル305を作成する際に同時
に作成される。リスティングファイル304には、コン
パイル後にプロセッサで実行される命令が配置されたア
ドレス、当該命令のコンパイル結果、および、ユーザイ
ベントが指定された直後あるいは直前の命令が記述され
ている。
The listing file 304 is created at the same time that the compiler 302 creates the object file 305 by compiling the test program 301 describing user events in addition to the instructions executed by the processor. The listing file 304 describes an address where an instruction to be executed by the processor after compilation is arranged, a compilation result of the instruction, and an instruction immediately after or immediately before the user event is specified.

【0016】イベント同期発生モジュール310は、ユ
ーザタスク3081 〜308n およびシステムコールモ
ジュール309を備え、例えば、C言語を用いて記述さ
れている。イベント同期発生モジュール310には、イ
ベントのリストをユーザタスク3081 〜308n に展
開する機能が備えられている。また、ユーザタスク30
1 〜308n の一つの関数プログラムとして、シミュ
レーションモデルモジュール400のシミュレーション
の進行を監視し、テストプログラム301における現在
実行中の命令を常に指し示す機能を持つ監視用関数プロ
グラムが備えられている。この監視用関数プログラム
は、ユーザタスク3081 〜308n をシミュレーショ
ンの進み具合に応じて、シミュレーションモデルモジュ
ール400に呼び出すことで、そのユーザタスクに対応
するイベントをスケジュールする。スケジュールされた
イベントは、当該イベント中の記述内容に基づいて、例
えばモニタしている値に応じて、イベントを発生するか
否かを自らで判断する。なお、テストプログラム301
中でユーザイベントは、好ましくは、C言語を用いて記
述される。これは、C言語を用いることで、クロックの
カウント、信号のモニタ、信号の値の設定などを多様な
形式で記述できるためである。
The event synchronization generation module 310 includes user tasks 308 1 to 308 n and a system call module 309, and is described using, for example, the C language. The event synchronization generation module 310 has a function of expanding a list of events to the user tasks 308 1 to 308 n . Also, the user task 30
As 8 1 ~308 n one function program monitors the progress of the simulation of the simulation model module 400, the monitoring function program having always pointing function currently executing instruction in the test program 301 is provided. The monitoring function program calls the user tasks 308 1 to 308 n to the simulation model module 400 in accordance with the progress of the simulation to schedule an event corresponding to the user task. For a scheduled event, whether or not the event is to be generated is determined by itself based on the description content in the event, for example, according to a monitored value. The test program 301
The user event therein is preferably described using C language. This is because, by using the C language, clock count, signal monitoring, signal value setting, and the like can be described in various formats.

【0017】システムコールモジュール309は、登録
されたユーザタスク3081 〜308n を、シミュレー
ションモデルモジュール400に呼び出す。ここで、シ
ステムコールモジュール309とイベントトリガモジュ
ール403とのインタフェースは、例えば、Veril
og−PLI507が提供する機能を用いて実現され
る。すなわち、シミュレーションモデルモジュール40
0からイベントを呼び出すときに、PLI507の機能
を利用して、イベントトリガモジュール403およびシ
ステムコールモジュール309を介して、当該イベント
に対応するユーザタスク3081 〜308n が呼び出さ
れる。
The system call module 309 calls the registered user tasks 308 1 to 308 n to the simulation model module 400. Here, the interface between the system call module 309 and the event trigger module 403 is, for example, Veril
This is realized using a function provided by the og-PLI 507. That is, the simulation model module 40
When an event is called from 0, the user tasks 308 1 to 308 n corresponding to the event are called via the event trigger module 403 and the system call module 309 using the function of the PLI 507.

【0018】また、システムコール・メモリロードモジ
ュール307は、例えば、コンパイラ302を用いてテ
ストプログラム301をコンパイルして生成したオブジ
ェクトファイル305をシミュレーションモデルモジュ
ール400のメモリモデル405にロードする。
The system call / memory load module 307 loads the object file 305 generated by compiling the test program 301 using the compiler 302 into the memory model 405 of the simulation model module 400, for example.

【0019】シミュレーションモデルモジュール400
は、クロック供給回路モジュール401、リセット発生
回路モジュール402、イベントトリガモジュール40
3、メモリコントローラモジュール404、メモリモデ
ルモジュール405およびターゲットモデルモジュール
406を備え、例えば、Verilog−HDLを用い
て記述されている。クロック供給回路モジュール401
は、ターゲットモデルモジュール406に供給されるク
ロックデータを生成する。リセット発生回路モジュール
402は、必要に応じて、ターゲットモデル406のリ
セット動作のシミュレーションを駆動する。イベントト
リガモジュール403は、イベント同期発生モジュール
310に登録されたユーザタスク3081 〜308
n を、シミュレーション起動時に呼び出す機能を有す
る。
Simulation model module 400
Are a clock supply circuit module 401, a reset generation circuit module 402, an event trigger module 40
3, a memory controller module 404, a memory model module 405, and a target model module 406, which are described using, for example, Verilog-HDL. Clock supply circuit module 401
Generates clock data to be supplied to the target model module 406. The reset generation circuit module 402 drives a simulation of a reset operation of the target model 406 as necessary. The event trigger module 403 includes the user tasks 308 1 to 308 registered in the event synchronization generation module 310.
has a function to call n when the simulation is started.

【0020】メモリコントローラモジュール404は、
メモリモデルモジュール405とターゲットモデルモジ
ュール406との間で、データ転送を制御する。メモリ
モデルモジュール405は、ターゲットモデルモジュー
ル406において実行される命令を記憶する。ターゲッ
トモデルモジュール406は、シミュレーションの対象
となるLSIのコア部をシミュレーションするためのプ
ログラムである。ターゲットモデルモジュール406
は、例えば、図3に示すように、IF(命令フェッチ)
ステージ451、DEC(命令デコード)ステージ45
2、ALU(命令実行)ステージ453、MEM(メモ
リアクセス)ステージ454およびWB(書き込み)ス
テージ455からなる5段パイプラインのRISC(Red
uced Instruciton Set Computer)プロセッサをシミュレ
ーションするプログラムである。
The memory controller module 404 includes:
Data transfer is controlled between the memory model module 405 and the target model module 406. The memory model module 405 stores instructions executed in the target model module 406. The target model module 406 is a program for simulating the core of the LSI to be simulated. Target model module 406
Is, for example, as shown in FIG.
Stage 451, DEC (instruction decode) stage 45
2. A five-stage pipeline RISC (Red) comprising an ALU (instruction execution) stage 453, a MEM (memory access) stage 454, and a WB (write) stage 455.
uced Instruciton Set Computer) is a program that simulates a processor.

【0021】LSIシミュレーション装置300では、
リスティングファイル304に、イベントの発生タイミ
ングとプロセッサの命令の実行タイミングと対応を示す
情報を含め、この情報に基づいて生成したユーザタスク
3081 〜308n を、シミュレーションの進行に応じ
てスケジュールして起動させることで、プロセッサにお
ける命令実行とイベントの発生とを同期させてシミュレ
ーションする。
In the LSI simulation apparatus 300,
The listing file 304 includes information indicating the correspondence between the event occurrence timing and the processor instruction execution timing, and the user tasks 308 1 to 308 n generated based on this information are scheduled and activated according to the progress of the simulation. By doing so, simulation is performed by synchronizing instruction execution and event occurrence in the processor.

【0022】イベントスケジュール宣言 イベントスケジュール宣言は、テストプログラム301
中に記述される。本実施形態では、図9に示す従来のテ
ストプログラムにおける場合とは異なり、イベントスケ
ジュール宣言を命令によって明示的に指定しない。具体
的には、図2に示すように、「;」に引き続き「@」を
記述し、それに続いて、イベントのユーザタスク関数名
を記述する。「@」以降は、イベントプログラムライブ
ラリ303において、関数の引き数の受け渡しの順序な
どのフォーマットが予め定義されている。
Event schedule declaration The event schedule declaration corresponds to the test program 301.
Described inside. In the present embodiment, unlike the conventional test program shown in FIG. 9, the event schedule declaration is not explicitly specified by an instruction. Specifically, as shown in FIG. 2, “@” is described following “;”, and the user task function name of the event is described subsequently. After "@", the event program library 303 defines in advance a format such as the order in which function arguments are passed.

【0023】本実施形態では、コンパイラ302で定義
されているコメント行を表すキーワードとして「;」を
用いる。このキーワード以降に記述された文字は、イベ
ントスケジュール宣言以外には意味を持たない。したが
って、「;」以降に記述された文字を論理シュミレーシ
ョン以外の目的に使用することもできる。図2に示すイ
ベントスケジュール宣言「;@event_gen」
は、以下の意味を持つ。すなわち、 〔1〕このイベントは、その直後の命令(図2では、n
op命令)がプロセッサのALUステージで実行された
ときにスケジュールされる。 〔2〕スケジュールされた時点から、5サイクル後にI
NT信号(プロセッサの外部入力端子)をアクティブ
(ON)にする。
In this embodiment, ";" is used as a keyword indicating a comment line defined by the compiler 302. The characters described after this keyword have no meaning except for the event schedule declaration. Therefore, the characters described after ";" can be used for purposes other than the logical simulation. Event schedule declaration ";@event_gen" shown in FIG.
Has the following meaning: That is, [1] This event is executed by the immediately following instruction (in FIG. 2, n
op instruction is executed in the ALU stage of the processor. [2] 5 cycles after the scheduled time
Activate (ON) the NT signal (external input terminal of the processor).

【0024】本実施形態では、図2に示すように、イベ
ントスケジュール宣言「;@event_gen」が記
述された位置から、5命令後には命令「addi r
6,0x0001」が記述されている。従って、プロセ
ッサが内部的にあるいは外部の要因によってストール
(停止)がなければ、イベントがスケジュールされてか
ら5サイクル後にADDI命令が実行されるはずであ
る。しかしながら、このイベントの宣言は、そのような
ストールによるパイプラインの乱れを考慮していない。
ただ単に5サイクル目にイベントを発生することを宣言
しているのみである。
In this embodiment, as shown in FIG. 2, after five instructions from the position where the event schedule declaration “; @event_gen” is described, the instruction “adddir” is issued.
6,0x0001 "is described. Thus, if the processor was not stalled, internally or externally, the ADDI instruction would be executed five cycles after the event was scheduled. However, the declaration of this event does not take into account pipeline disruptions due to such stalls.
It merely declares that an event will occur in the fifth cycle.

【0025】イベントのスケジュールと発生 図2に示したテキストプログラム301中のスケジュー
ル宣言に応じたイベントは、プロセッサの命令に同期し
て実行されなければならない。本実施形態では、イベン
トのスケジュールを命令に同期させるタイミング(時
刻)は、図3に示すように、ターゲットモデルモジュー
ル406によってシミュレーションしているプロセッサ
457のパイプラインにおけるALUステージ453で
命令が処理されるサイクルを基準として決定される。な
お、本実施形態では、イベントのスケジュールを命令に
同期させることができれば、プロセッサのパイプライン
における何れのステージを基準にしてもよい。すなわ
ち、ALUステージ453以外を用いた同期機構も応用
例として考えられる。
Event Scheduling and Occurrence The event corresponding to the schedule declaration in the text program 301 shown in FIG. 2 must be executed in synchronization with the instruction of the processor. In this embodiment, the timing (time) at which the event schedule is synchronized with the instruction is such that the instruction is processed in the ALU stage 453 in the pipeline of the processor 457 being simulated by the target model module 406, as shown in FIG. Determined on a cycle basis. In the present embodiment, any stage in the pipeline of the processor may be used as a reference as long as the event schedule can be synchronized with the instruction. That is, a synchronization mechanism using a unit other than the ALU stage 453 is also considered as an application example.

【0026】1つのスケジュール宣言は、図1に示す1
つのユーザタスク(ユーザタスク3081 〜308n
うちの1つ)に展開される。スケジュール宣言に対応す
るイベントを、それが同期すべき命令に合わせてスケジ
ュールするために、監視用関数プログラムによって、プ
ロセッサのALUステージ453を常に監視している。
すなわち、監視用関数プログラムによって、ある時刻
で、ALUステージ453において、どの命令が実行さ
れているかが認識される。このような機能は、ALUス
テージ453を同期のトリガーとする場合には必要であ
る。
One schedule declaration is shown in FIG.
Is expanded into one user task (one of the user tasks 308 1 to 308 n ). The ALU stage 453 of the processor is constantly monitored by the monitoring function program in order to schedule the event corresponding to the schedule declaration in accordance with the instruction to be synchronized.
That is, the monitoring function program recognizes which instruction is being executed in the ALU stage 453 at a certain time. Such a function is necessary when the ALU stage 453 is used as a trigger for synchronization.

【0027】あるイベントと同期すべきプロセッサの命
令がALUステージ453で実行された時点で、そのイ
ベントがスケジュールされる。ユーザタスク3081
308n は、システムコールモジュール309とメモリ
モデルモジュール405とのインタフェースであるVe
rilog−PLIの機能によってイベントトリガモジ
ュール403から呼びだされて起動される。ALUステ
ージ453の監視には、プロセッサのパイプラインの構
造によって種々の方法を採ることができる。
When an instruction of a processor to be synchronized with an event is executed in the ALU stage 453, the event is scheduled. User tasks 308 1-
308 n is Ve which is an interface between the system call module 309 and the memory model module 405.
The function is called from the event trigger module 403 by the function of rilog-PLI and activated. For monitoring the ALU stage 453, various methods can be adopted depending on the structure of the processor pipeline.

【0028】ターゲットモデルモジュール406がシミ
ュレーションするRISCプロセッサのパイプライン
は、前述したように、図3に示す5段パイプラインであ
る。この5段パイプラインのうち、1段目のIFステー
ジ451では、IMP(Instruction Memory Pointer)4
56によって指し示されるインストラクションメモリモ
ジュール460上のアドレスから命令を読み出す。ま
た、図3に示すパイプラインコントロール回路モジュー
ル461によって、パイプライン462におけるデータ
パスが制御される。ここで、IMP456、パイプライ
ンコントロール回路モジュール461およびパイプライ
ン462によってプロセッサ内部ブロック457が構成
され、プロセッサ内部ブロック457は、図1に示すタ
ーゲットモデルモジュール406内に記述されている。
As described above, the pipeline of the RISC processor simulated by the target model module 406 is the five-stage pipeline shown in FIG. In the first IF stage 451 of the five-stage pipeline, an IMP (Instruction Memory Pointer) 4
The instruction is read from the address on the instruction memory module 460 indicated by 56. The data path in the pipeline 462 is controlled by the pipeline control circuit module 461 shown in FIG. Here, a processor internal block 457 is configured by the IMP 456, the pipeline control circuit module 461, and the pipeline 462, and the processor internal block 457 is described in the target model module 406 shown in FIG.

【0029】ALUステージ453は、IFステージ4
51から数えて3サイクル目であるから、監視用関数プ
ログラムは、IMP456が指し示すアドレスから次に
フェッチされる命令のアドレスを監視し、ストール要因
が発生しているか否かを調べることで、そのフェッチさ
れた命令がALUステージ453において実行されるか
を判断する。そして、監視用関数プログラムは、イベン
トと同期すべき命令がALUステージ453において実
行されると判断した場合には、当該同期すべき命令がA
LUステージ453で実行されるタイミングで、当該イ
ベントをスケジュールする。一旦、スケジュールされた
イベントはユーザタスクとして起動されているので、予
め定められた手続きに沿ってそのタスクを実行する。例
えば、図2に示すイベントは、起動されてから5サイク
ルカウントする。そして、5サイクル目に、プロセッサ
の外部端子であるINTをオンにする。このオンの動作
がイベントの実行(発生)に相当する。実行後は、特に
定めのないかぎり、そのタスクは終了する。
The ALU stage 453 is the IF stage 4
Since this is the third cycle counting from 51, the monitoring function program monitors the address of the instruction to be fetched next from the address indicated by the IMP 456, and checks whether or not a stall factor has occurred. It is determined whether the executed instruction is executed in ALU stage 453. Then, if the monitoring function program determines that the instruction to be synchronized with the event is executed in the ALU stage 453, the instruction to be synchronized is A
The event is scheduled at the timing executed in the LU stage 453. Once the scheduled event has been started as a user task, the task is executed according to a predetermined procedure. For example, the event shown in FIG. 2 counts five cycles after being activated. Then, at the fifth cycle, the external terminal INT of the processor is turned on. This ON operation corresponds to the execution (occurrence) of an event. After execution, the task ends unless otherwise specified.

【0030】ユーザタスク3081 〜308n を起動し
てからイベントを発生するまでの時間(サイクル)や、
イベントを起こす対象(信号をドライブすべき端子)や
その値などは、ユーザタスクのなかに記述されている。
なお、ユーザタスク3081 〜308n が、実際に処理
を実行するときに、更に別なプログラムが必要な場合に
は、必要なプログラムがイベントプログラムライブラリ
303から呼び出される。これは、複数のイベントが同
種類の動作を含む場合に、その動作をイベントプログラ
ムライブラリ303に登録しておくことで、ユーザイベ
ントの記述量を削減するためである。したがって、例え
ば、ドライブする信号名(端子名)やその値、待ち(ウ
ェイト)サイクルのみが異なる場合には、これらに関す
るプログラムをイベントプログラムライブラリ303に
登録しておけばよい。
The time (cycle) from the activation of the user tasks 308 1 to 308 n to the occurrence of an event,
The target of the event (the terminal to drive the signal) and its value are described in the user task.
Note that when the user tasks 308 1 to 308 n actually execute processing, if another program is required, the necessary program is called from the event program library 303. This is because, when a plurality of events include the same type of operation, the operation is registered in the event program library 303 to reduce the amount of description of the user event. Therefore, for example, when only the signal name (terminal name) to be driven, its value, and the wait (wait) cycle are different, a program relating to these may be registered in the event program library 303.

【0031】ユーザタスクの起動 図4は、シミュレーションの過程におけるユーザタスク
の起動方法を説明するための図である。先ず、図4に示
すように、シミュレーションが開始され(ステップS
1)、図1に示すシミュレーションモデルモジュール4
00のイベントトリガモジュール403が実行される
(ステップS2)。これにより、ターゲットモデルモジ
ュール406におけるシミュレーションの状況が、イベ
ントトリガタスクである監視用関数プログラム501に
よって監視される。すなわち、イベントトリガモジュー
ル403が実行された時点では、監視用関数プログラム
501が呼び出されるのみで、その他のイベントのユー
ザタスク3081 〜308n は呼び出されない。
[0031] Starting 4 user tasks are views for explaining a method of starting a user task in the course of the simulation. First, as shown in FIG. 4, the simulation is started (Step S).
1), simulation model module 4 shown in FIG.
The event trigger module 403 of 00 is executed (step S2). Thus, the status of the simulation in the target model module 406 is monitored by the monitoring function program 501, which is an event trigger task. That is, when the event trigger module 403 is executed, only the monitoring function program 501 is called, and the user tasks 308 1 to 308 n of other events are not called.

【0032】ここで、イベントトリガモジュール403
はVerilog−HDL言語で記述されたモジュール
であるが、監視用関数プログラム501はC言語で記述
されている。イベントトリガモジュール403の実行で
は、テストプログラム301中に記述された全てのイベ
ントを、シミュレーションの開始に先立って、予めまと
めておき、ユーザタスク3081 〜308n を呼び出す
ための準備をする。
Here, the event trigger module 403
Is a module described in Verilog-HDL language, while the monitoring function program 501 is described in C language. In the execution of the event trigger module 403, all the events described in the test program 301 are put together in advance before starting the simulation, and preparations are made for calling the user tasks 308 1 to 308 n .

【0033】ターゲットモデルモジュール406が実行
されると(ステップS3)、監視用関数プログラム50
1によるシミュレーションの監視の結果に基づいて、タ
ーゲットモデルモジュール406のパイプラインのAL
Uステージ453において、テストプログラム301に
おいて記述されたイベントと同期すべき命令が実行され
るタイミングで、当該イベントに対応するユーザタスク
3081 〜308n を、PLI507の機能を利用し
て、システムコールモジュール309およびイベントト
リガモジュール403を介して、ターゲットモデルモジ
ュール406に呼び出してイベントをスケジュールす
る。その後、このイベントが発生すると、当該イベント
に対応するユーザタスク3081 〜308n は終了(消
滅)してもよい。これにより、システムの負荷が軽減さ
れる。そして、例えば、図1に示すオブジェクトファイ
ル305に記述された命令の全てが、ターゲットモデル
モジュール406で実行されたときに、シミュレーショ
ンが終了する(ステップS4)。
When the target model module 406 is executed (step S3), the monitoring function program 50
1 based on the result of the simulation monitoring by the target model module 406
At the U stage 453, at the timing when an instruction to be synchronized with the event described in the test program 301 is executed, the user tasks 308 1 to 308 n corresponding to the event are transmitted to the system call module using the function of the PLI 507. Call the target model module 406 via 309 and the event trigger module 403 to schedule the event. Thereafter, when this event occurs, the user tasks 308 1 to 308 n corresponding to the event may end (disappear). Thereby, the load on the system is reduced. Then, for example, when all of the instructions described in the object file 305 shown in FIG. 1 have been executed by the target model module 406, the simulation ends (step S4).

【0034】タスクの種類 以下、イベント同期発生モジュール310のユーザタス
ク3081 〜308nが備えている必要がある機能につ
いて説明する。図5は、イベント同期発生モジュール3
10のユーザタスク3081 〜308 n が備えている必
要がある機能について説明するための図である。具体的
には、信号モニタ機能552、イベントスケジュール条
件判断機能553、イベントスケジュール機能554お
よび信号駆動機能555を備えている必要がある。これ
らの機能は、図1に示すPLI507の機能を利用し
て、イベント同期発生モジュール310からシミュレー
ションモデルモジュール400に呼び出される。また、
これらの機能は、全て、イベント同期発生モジュール3
10において、C言語を用いて記述される。
[0034]Task type Hereinafter, the user task of the event synchronization generation module 310 will be described.
3081To 308nWhat features do you need to have
Will be described. FIG. 5 shows the event synchronization generation module 3
Ten user tasks 3081To 308 nMust have
It is a figure for explaining a function which needs. concrete
Has a signal monitoring function 552 and an event schedule
Case determination function 553, event schedule function 554
And a signal drive function 555. this
These functions utilize the functions of the PLI 507 shown in FIG.
From the event synchronization generation module 310
Called by the application model module 400. Also,
These functions are all performed by the event synchronization generation module 3
At 10, it is described using the C language.

【0035】信号モニタ機能552は、図1に示すシミ
ュレーションモデルモジュール400の外部端子および
内部信号を常にモニタする機能である。これにより、図
3に示すプロセッサのパイプラインのALUステージ4
53において実行される命令のインストラクションメモ
リモジュール460上でのアドレスが特定される。イベ
ントスケジュール条件判断機能553は、イベントをス
ケジュールするか否かの条件を判断する機能である。例
えば、ターゲットモデルモジュール406のパイプライ
ン処理において、ストール(停止)が発生しているか否
かを判断する。イベントスケジュール機能554は、イ
ベントスケジュールを実際に実行し、図1に示すシステ
ムコールモジュール309を用いて、ユーザタスク30
1 〜308n を起動する機能である。イベント駆動機
能555は、シミュレーションモデルモジュール400
の外部端子および内部信号を強制的に駆動(ドライブ)
する機能である。
The signal monitoring function 552 is a function for constantly monitoring the external terminals and internal signals of the simulation model module 400 shown in FIG. As a result, ALU stage 4 of the pipeline of the processor shown in FIG.
The address of the instruction executed at 53 on the instruction memory module 460 is specified. The event schedule condition judging function 553 is a function for judging a condition of whether or not to schedule an event. For example, in the pipeline processing of the target model module 406, it is determined whether a stall (stop) has occurred. The event schedule function 554 actually executes the event schedule and uses the system call module 309 shown in FIG.
8 1 is a function to start the ~308 n. The event drive function 555 is provided in the simulation model module 400
External terminals and internal signals are forcibly driven (drive)
Function.

【0036】ところで、前述した監視用関数プログラム
は、信号モニタ機能552、イベントスケジュール条件
判断機能553と、イベントスケジュール機能554の
うちユーザタスクを起動する機能とを用いて実現され
る。ここで、イベントスケジュール機能554のうち、
イベントの発生はユーザタスク3081 〜308n 中で
記述される。また、イベント駆動機能555は、当該機
能を実現するユーザタスクを、イベントプログラムライ
ブラリ303内に用意した方がよい。もちろん、ユーザ
タスク3081 〜308n から、直接、PLI507を
利用して信号を駆動することもできる。
The above-mentioned monitoring function program is realized by using a signal monitoring function 552, an event schedule condition judging function 553, and a function of activating a user task among the event schedule functions 554. Here, of the event schedule function 554,
The occurrence of the event is described in the user tasks 308 1 to 308 n . It is preferable that the event drive function 555 prepares a user task for realizing the function in the event program library 303. Of course, the signals can also be driven directly from the user tasks 308 1 to 308 n using the PLI 507.

【0037】以下、LSIシミュレーション装置300
の動作について説明する。先ず、テストプログラム30
1中に、下記(1)に示すようなイベントスケジュール
宣言があった場合の動作について説明する。
Hereinafter, the LSI simulation apparatus 300
Will be described. First, the test program 30
The operation in the event that an event schedule declaration as shown in (1) below is made in 1 will be described.

【0038】[0038]

【数1】 ;@external_int(int,5,on) …(1)@ external_int (int, 5, on) (1)

【0039】上記(1)に示すイベントスケジュール宣
言は、以下の2つの意味を持つ。・テストプログラム3
01中で、当該イベントスケジュール宣言が記述されて
いる直後の命令がプロセッサのALUステージ453で
実行されたときに、スケジュールされる。・スケジュー
ルされた時点から、5サイクル後に、割り込み信号IN
Tをアクティブ(ON)にする。
The event schedule declaration shown in the above (1) has the following two meanings.・ Test program 3
01, it is scheduled when the instruction immediately after the event schedule declaration is described is executed in the ALU stage 453 of the processor.・ After 5 cycles from the scheduled time, the interrupt signal IN
T is activated (ON).

【0040】このテストプログラム301がコンパイラ
302によってコンパイルされ、リスティングファイル
304およびオブジェクトファイル305が生成され
る。このとき、コンパイラ302によって、テストプロ
グラム301中に記述された記号「;@」が検索され、
それに続く、イベントスケジュール宣言、および、当該
宣言によって生成されるユーザイベントの直後の命令な
どの情報がリスティングファイル304に記述される。
オブジェクトファイル305は、システムコール・メモ
リロードモジュール307によって、シミュレーション
モデルモジュール400のメモリモデルモジュール40
5に読み込まれる。次に、イベントリスト抽出モジュー
ル306によって、イベントプログラムライブラリ30
3で定義されたフォーマットに従い、リスティングファ
イル304中に上記(1)に示すイベントスケジュール
宣言によってユーザイベントとして記述されたイベント
が、例えばユーザタスク3081 に展開され、イベント
同期発生モジュール310に登録される。
The test program 301 is compiled by the compiler 302 to generate a listing file 304 and an object file 305. At this time, the symbol ";記号" described in the test program 301 is searched by the compiler 302,
Subsequently, information such as an event schedule declaration and a command immediately after the user event generated by the declaration is described in the listing file 304.
The object file 305 is stored in the memory model module 40 of the simulation model module 400 by the system call / memory load module 307.
5 is read. Next, the event program library 30 is executed by the event list extraction module 306.
According defined format 3, the event that is described as user event by the event schedule declarations shown above (1) in the listing file 304, for example, are deployed in the user task 3081, it is registered in the event synchronization generator module 310 .

【0041】そして、メモリモデルモジュール405中
の命令がターゲットモデルモジュール406によって実
行される。また、PLI507の機能を用いて、システ
ムコールモジュール309およびイベントトリガモジュ
ール403を介して読み出された監視用関数プログラム
によって、ALUステージ453で実行される命令に基
づいて、シミュレーションモデルモジュール400のシ
ミュレーション動作が監視される。そして、ユーザタス
ク3081 によって生成されるイベントが同期すべき命
令が、ALUステージ453で実行されるタイミングに
なると、ユーザタスク3081 がPLI507の機能に
よってターゲットモデルモジュール406に読み出され
て起動される。具体的には、図2に示す「@evnet
_gen(int,5,on)」の位置に、上記(1)
に示すイベントスケジュール宣言が記述されていた場合
に、その直後の命令であるnop命令が実行されたタイ
ミングで、図6(B)に示すように、ALUステージの
監視信号がオンになり、ユーザタスク3081 がターゲ
ットモデルモジュール406に読み出される(スケジュ
ールされる)。
Then, the instructions in the memory model module 405 are executed by the target model module 406. In addition, using the function of the PLI 507, the simulation operation of the simulation model module 400 is performed based on the instruction executed in the ALU stage 453 by the monitoring function program read via the system call module 309 and the event trigger module 403. Is monitored. The instruction to be event generated by the user task 308 1 synchronization is equal to or timing to be executed by the ALU stage 453, the user task 3081 is started is read to the target model module 406 by the function of PLI507 . Specifically, “@evnet” shown in FIG.
_Gen (int, 5, on) ”at (1)
When the event schedule declaration described in (1) is described, the monitor signal of the ALU stage is turned on as shown in FIG. 308 1 is read in the target model module 406 (scheduled as).

【0042】そして、ユーザタスク3081 が起動され
ると、ユーザタスク3081 内に記述されたイベントを
発生するまでのサイクル、イベントを起こす対象および
値などに基づいて、イベントが発生する。具体的には、
上記(1)に示されるように、図6(C)に示すよう
に、ALUステージの監視信号がオンになってからカウ
ントが開始され、カウント値が「5」になったとき、す
なわち、スケジュールされてから5サイクル後に、図6
(D)に示すように、割り込み信号INTがアクティグ
(ON)になる。これにより、ターゲットモデルモジュ
ール406に割り込みが発生する。
[0042] When the user task 3081 is started, the cycle before generating the described events in the user task 308 1, based on such target and a value causing an event, an event occurs. In particular,
As shown in the above (1), as shown in FIG. 6 (C), the counting is started after the monitor signal of the ALU stage is turned on, and when the count value becomes "5", that is, the schedule After 5 cycles,
As shown in (D), the interrupt signal INT is activated (ON). As a result, an interrupt occurs in the target model module 406.

【0043】また、その他の例として、イベントスケジ
ュール宣言が下記(2)のように記述されていた場合を
説明する。
As another example, a case where the event schedule declaration is described as in the following (2) will be described.

【数2】 ;@external2_int(int,5,on,2) …(2)@ external2_int (int, 5, on, 2) (2)

【0044】この場合には、テストプログラム301中
のイベントスケジュール宣言が記述された位置の直後の
命令がプロセッサのALUステージ453で実行された
ときに、図7(B)に示すように、ALUステージの監
視信号がオンになり、対応するユーザタスク3082
スケジュールされる。そして、カウントが開始され、図
7(C)に示すように、カウント値が5になったとき
に、すなわち、ユーザタスク3082 がスケジュールさ
れたタイミングから5サイクル後に、図7(D)に示す
ように、割り込み信号INTがアクティブ(ON)にな
り、2サイクル経過後に、デアクティブ(OFF)にな
る。
In this case, when the instruction immediately after the position where the event schedule declaration is described in the test program 301 is executed in the ALU stage 453 of the processor, as shown in FIG. monitoring signal is turned on, the corresponding user task 308 2 schedule. Then, the count is started, as shown in FIG. 7 (C), shown when the count value becomes 5, i.e., after 5 cycles from the timing that the user task 308 2 is scheduled, in FIG. 7 (D) Thus, the interrupt signal INT becomes active (ON), and becomes deactive (OFF) after two cycles.

【0045】ここで、割り込み信号INTをアクティブ
にする動作と、デアクティブにする動作とを単体のユー
ザタスク3082 によって行ってもよいし、割り込み信
号INTをアクティブにするユーザタスクと、デアクテ
ィブにするユーザタスクとを用いてもよい。
[0045] Here, the operation of the interrupt signal INT to the active, to the operation and to de-activate may be performed by a single user task 308 2, and the user task of the interrupt signal INT is activated, deactivated May be used.

【0046】また、その他の例として、イベントスケジ
ュール宣言が下記(3)のように記述されていた場合を
説明する。
As another example, a case where the event schedule declaration is described as in the following (3) will be described.

【数3】 ;@bus_wait(wait,0,on,3,write,0x1234 ,0x1253,10) …(3)@ bus_wait (wait, 0, on, 3, write, 0x1234, 0x1253, 10) (3)

【0047】この場合には、テストプログラム301中
のイベントスケジュール宣言が記述された位置の直後の
命令がプロセッサのALUステージ453で実行された
ときに、図8(B)に示すように、ALUステージの監
視信号がオンになり、対応するユーザタスク3083
スケジュールされる。そして、ユーザタスク3083
スケジュールされた後の10サイクルの期間中に、外部
端子writeがアクティブ(ON)の状態になり、か
つ、そのときアクセスしているアドレスが「0x123
4」〜「0x1253」の範囲であるときに、外部端子
waitを3サイクル分アクティブ(ON)にし、その
後、デアクティブにする。
In this case, when the instruction immediately after the position where the event schedule declaration is described in the test program 301 is executed in the ALU stage 453 of the processor, as shown in FIG. monitoring signal is turned on, the corresponding user task 308 3 is scheduled. Then, during 10 cycles of after the user task 308 3 was scheduled, will the external terminals write the state of the active (ON), and the address being accessed at that time, "0x123
When the value is in the range of “4” to “0x1253”, the external terminal “wait” is activated (ON) for three cycles and then deactivated.

【0048】例えば、図8(B)に示すように、ALU
ステージの監視信号がアクティブになった後に、タイミ
ングt1 で、図8(D)に示すように、外部端子wri
teがアクティブになり、そのときのアドレスが図8
(E)に示すように「0x1234」〜「0x125
3」の範囲であることから、図8(F)外部端子wai
tが3サイクルだけアクティブになる。ここで、図8
(C)に示すカウント値Aによって、イベント発生から
10サイクルがカウントされ、図8(F)に示すカウン
トBによって、外部端子waitがアクティブになる3
サイクルがカウントされる。
For example, as shown in FIG.
After the monitoring signal of the stage becomes active, at timing t 1 , as shown in FIG.
te becomes active, and the address at that time is shown in FIG.
As shown in (E), “0x1234” to “0x125”
3 ”, the external terminal“ wai ”in FIG.
t becomes active for only three cycles. Here, FIG.
10 cycles are counted from the event occurrence by the count value A shown in (C), and the external terminal wait becomes active by the count B shown in FIG.
The cycle is counted.

【0049】以上説明したように、LSIシミュレーシ
ョン装置300によれば、イベントの発生を伴うような
シミュレーションを実行するための命令に応じたコード
がオブジェクトファイル中に現れることを回避でき、論
理検証を正確に行うことができる。すなわち、テストプ
ログラム301中で、イベント発生をコメント文などの
実際にオブジェクトコードに影響を与えない形式で記述
し、シミュレーション時にのみ、そのイベントの記述を
用いてイベントをスケジュールする。
As described above, according to the LSI simulation apparatus 300, it is possible to prevent the code corresponding to the instruction for executing the simulation accompanied by the occurrence of the event from appearing in the object file, and the logic verification can be performed accurately. Can be done. That is, in the test program 301, the occurrence of an event is described in a format that does not actually affect the object code, such as a comment statement, and the event is scheduled using the description of the event only during simulation.

【0050】また、LSIシミュレーション装置300
によれば、イベントを、当該イベントが同期すべき命令
と確実に同期させて発生させることができる。
The LSI simulation device 300
According to the above, the event can be generated in a sure synchronization with the instruction to be synchronized with the event.

【0051】なお、テストプログラム301は、シミュ
レーションモデルモジュール400と共に、可能な限り
変更を加えないことが好ましい。これは、LSIの開発
工程において、論理検証作業時やその後のテスターなど
を用いた実チップの測定時に、一貫して共通したシミュ
レーション環境を提供するである。すなわち、シミュレ
ーション環境の変更は、LSIの開発規模が大きくなる
ほど膨大になる。従って、変更による間違えが介在する
可能性を低減し、結果として、開発期間の短縮化を実現
できる。
It is preferable that the test program 301 is not changed as much as possible together with the simulation model module 400. This is to provide a simulation environment that is consistently common in the LSI development process at the time of logic verification work and at the time of actual chip measurement using a tester or the like. That is, the change in the simulation environment becomes enormous as the LSI development scale increases. Therefore, it is possible to reduce the possibility that a mistake due to the change is involved, thereby shortening the development period.

【0052】また、LSIシミュレーション装置300
によれば、イベント同期発生モジュール310におい
て、イベントのスケジュールや発生のプログラムをC言
語などの高級言語で記述するため、ユーザが意図した複
雑な仕様を極めて簡単に記述することができる。
The LSI simulation apparatus 300
According to this, in the event synchronization generation module 310, the event schedule and the generation program are described in a high-level language such as C language, so that a complicated specification intended by the user can be described very easily.

【0053】また、LSIシミュレーション装置300
は、一度、作成しておけば、複数の開発過程で、プログ
ラムの一部を改変することで、既存のプログラムを共有
でき、開発リソースの工数削減を図れる。
The LSI simulation apparatus 300
Once created, the existing program can be shared by modifying a part of the program in a plurality of development processes, and the man-hours of development resources can be reduced.

【0054】さらに、LSIシミュレーション装置30
0によれば、作成したイベントを予め別の環境でテスト
することも可能である。すなわち、C言語を用いたプロ
グラムは、汎用のワークステーションやパーソナルコン
ピュータで、そのプログラムのみを実行できる。従っ
て、高価なVerilog−XLを用いたシミュレーシ
ョン環境を効率的に使用できる。
Further, the LSI simulation device 30
According to 0, it is possible to test the created event in another environment in advance. That is, a program using the C language can be executed only by a general-purpose workstation or personal computer. Therefore, a simulation environment using expensive Verilog-XL can be used efficiently.

【0055】本発明は上述した実施形態には限定されな
い。例えば、上述した実施形態では、イベントを記述す
る高級言語としてC言語を用いたが、例えば、Pasc
alなどのその他の高級言語を用いてもよい。また、シ
ミュレーションのプログラムを記述するハードウェア記
述言語としてVerilog−HDLを用いたが、その
他、vHDLなどのハードウェア記述言語を用いてもよ
い。なお、他の言語を用いた場合には、それに応じて、
イベント同期発生モジュール310とシミュレーション
モデルモジュール400とのインタフェースの機能も変
更する。
The present invention is not limited to the above embodiment. For example, in the above-described embodiment, the C language is used as a high-level language for describing an event.
Other high-level languages such as al may be used. Although Verilog-HDL is used as a hardware description language for describing a simulation program, a hardware description language such as vHDL may be used. If you use another language,
The function of the interface between the event synchronization generation module 310 and the simulation model module 400 is also changed.

【0056】なお、上述した実施形態では、ターゲット
モデルモジュール406で実行中の命令と同期してイベ
ントを発生させる場合を例示したが、LSIシミュレー
ション装置300は、実行中の命令と非同期でイベント
を発生させる機能をさらに備えていてもよい。
In the above-described embodiment, the case where the event is generated in synchronization with the instruction being executed by the target model module 406 is exemplified. However, the LSI simulation apparatus 300 generates the event asynchronously with the instruction being executed. It may further include a function for causing the user to perform the operation.

【0057】また、本発明では、監視用関数プログラム
の機能を全てユーザタスクに持たせ、ユーザタスクがシ
ミュレーションの起動時に自動的にスケジュールされる
ようにしてもよい。さらに、本発明は、イベント毎にユ
ーザタスクを生成するのではなく、1つのイベントを実
行するための複数のユーザタスクを機能毎に生成しても
よい。この場合には、イベントリストをテーブルに作成
し、そのテーブルを参照しながら、イベントのスケジュ
ール、その実行および終了などを制御する。
Further, in the present invention, all the functions of the monitoring function program may be provided to the user task, and the user task may be automatically scheduled when the simulation is started. Further, in the present invention, instead of generating a user task for each event, a plurality of user tasks for executing one event may be generated for each function. In this case, an event list is created in a table, and the schedule of the event and its execution and termination are controlled while referring to the table.

【0058】[0058]

【発明の効果】以上説明したように、本発明によれば、
イベントの発生を伴うようなシミュレーションを実行す
るための命令のコードがオブジェクトプログラム中に現
れることを回避でき、論理検証を正確に行うことができ
る。また、本発明によれば、イベントを、当該イベント
が同期すべき命令と確実に同期させて発生させることが
できる。
As described above, according to the present invention,
The code of an instruction for executing a simulation that involves an event can be prevented from appearing in the object program, and the logic verification can be accurately performed. Further, according to the present invention, it is possible to generate an event by reliably synchronizing with an instruction to be synchronized with the event.

【0059】[0059]

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

【図1】図1は、本発明の実施形態に係わるLSIシミ
ュレーション装置のシステム構成図である。
FIG. 1 is a system configuration diagram of an LSI simulation apparatus according to an embodiment of the present invention.

【図2】図2は、図1に示すテストプログラムの一例を
説明するための図である。
FIG. 2 is a diagram for explaining an example of a test program shown in FIG. 1;

【図3】図3は、図1に示すターゲットモデルモジュー
ルの機能を説明するための図である。
FIG. 3 is a diagram for explaining a function of a target model module shown in FIG. 1;

【図4】図4は、シミュレーションの過程におけるユー
ザタスクの起動方法を説明するための図である。
FIG. 4 is a diagram for explaining a method of activating a user task in a simulation process.

【図5】図5は、イベント同期発生モジュールのユーザ
タスクが備えている必要がある機能を説明するための図
である。
FIG. 5 is a diagram for explaining a function that the user task of the event synchronization generation module needs to have;

【図6】図6は、イベントスケジュール宣言の例および
その宣言を用いた場合の図1に示すLSIシミュレーシ
ョン装置の動作を説明するための図である。
FIG. 6 is a diagram for explaining an example of an event schedule declaration and an operation of the LSI simulation apparatus shown in FIG. 1 when the declaration is used;

【図7】図7は、イベントスケジュール宣言のその他の
例およびその宣言を用いた場合の図1に示すLSIシミ
ュレーション装置の動作を説明するための図である。
FIG. 7 is a diagram for explaining another example of the event schedule declaration and the operation of the LSI simulation apparatus shown in FIG. 1 when the declaration is used.

【図8】図8は、イベントスケジュール宣言のその他の
例およびその宣言を用いた場合の図1に示すLSIシミ
ュレーション装置の動作を説明するための図である。
FIG. 8 is a diagram for explaining another example of the event schedule declaration and the operation of the LSI simulation apparatus shown in FIG. 1 when the declaration is used.

【図9】図9は、従来のLSIシミュレーション装置の
システム構成図である。
FIG. 9 is a system configuration diagram of a conventional LSI simulation apparatus.

【図10】図2は、図9に示すテストプログラムの一例
を説明するための図である。
FIG. 2 is a diagram for explaining an example of a test program shown in FIG. 9;

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

300…LSIシミュレーション装置、301…テスト
プログラム、302…コンパイラ、303…イベントプ
ログラムライブラリ、304…リスティングファイル、
305…オブジェクトファイル、306…イベントリス
ト抽出モジュール、307…システムコール・メモリロ
ードモジュール、3081 〜308n …ユーザタスク、
309…システムコールモジュール、310…イベント
同期発生モジュール、400…シミュレーションモデル
モジュール、401…クロック供給回路モジュール、4
02…リセット発生回路モジュール、403…イベント
トリガモジュール、404…メモリコントローラモジュ
ール、405…メモリモデルモジュール、406…ター
ゲットモデルモジュール
300: LSI simulation apparatus, 301: Test program, 302: Compiler, 303: Event program library, 304: Listing file,
305: Object file, 306: Event list extraction module, 307: System call / memory load module, 308 1 to 308 n : User task,
309: System call module, 310: Event synchronization generation module, 400: Simulation model module, 401: Clock supply circuit module, 4
02: Reset generation circuit module, 403: Event trigger module, 404: Memory controller module, 405: Memory model module, 406: Target model module

Claims (18)

【特許請求の範囲】[Claims] 【請求項1】ハードウェアを制御する論理検証用の命令
を記述したテストプログラムをコンパイルして生成され
たオブジェクトプログラムに基づいて、ハードウェア記
述言語を用いて記述された前記ハードウェアのシミュレ
ーションモデルを動作させて論理検証を行うときに、前
記シミュレーションモデルにイベントを発生させるイベ
ント発生装置であって、 前記テストプログラム中に記述され、前記オブジェクト
プログラムには影響を与えない形式でイベントの発生を
指示するイベント発生キーワードを用いて、コンパイル
時に、イベント情報ファイルを生成するコンパイラと、 前記イベント情報ファイルに基づいて、手続き型の高級
プログラミング言語を用いて記述されたイベントに応じ
たユーザタスクを生成し、当該ユーザタスクを登録する
ユーザタスク生成手段と、 前記ユーザタスク生成手段と前記シミュレーションモデ
ルとの間のインタフェースと、 前記オブジェクトプログラムに応じた前記シミュレーシ
ョンモデルの動作を監視し、実行中の命令を特定する動
作監視手段と、 前記動作監視手段の監視結果に基づいて、前記テストプ
ログラムに記述されたイベントが同期すべき命令が実行
されるときに、当該イベントに対応するユーザタスクを
前記インタフェースを介して前記ユーザタスク生成手段
から前記シミュレーションモデルに読み出して当該イベ
ントをスケジュールするスケジュール手段とを有するイ
ベント発生装置。
1. A hardware simulation model described by using a hardware description language based on an object program generated by compiling a test program describing a logic verification instruction for controlling hardware. An event generating device for generating an event in the simulation model when performing logic verification by operating the device, the event generating device being described in the test program and instructing the generation of the event in a format that does not affect the object program. A compiler that generates an event information file at the time of compilation using an event generation keyword; and, based on the event information file, generates a user task corresponding to an event described using a high-level procedural programming language. User tasks User task generating means for recording, an interface between the user task generating means and the simulation model, operation monitoring means for monitoring the operation of the simulation model according to the object program, and specifying an instruction being executed. When an instruction to synchronize an event described in the test program is executed based on a monitoring result of the operation monitoring unit, a user task corresponding to the event is transmitted to the user task generation unit via the interface. And a scheduler that reads the simulation model into the simulation model and schedules the event.
【請求項2】前記コンパイラは、前記イベント情報ファ
イルに、イベントが指定された直前あるいは直後の命令
を記述し、 前記スケジュール手段は、前記イベントが指定された直
前あるいは直後の命令が実行されるときに、当該イベン
トをスケジュールする請求項1に記載のイベント発生装
置。
2. The method according to claim 1, wherein the compiler describes, in the event information file, an instruction immediately before or immediately after the event is specified, and the scheduling means executes the instruction immediately before or immediately after the event is specified. 2. The event generator according to claim 1, wherein the event is scheduled.
【請求項3】前記イベントは、当該イベントを発生させ
る条件を保持し、スケジュールされた後に当該条件が満
たされたときに、発生する請求項1に記載のイベント発
生装置。
3. The event generating apparatus according to claim 1, wherein the event holds a condition for generating the event, and occurs when the condition is satisfied after being scheduled.
【請求項4】前記イベントは、イベントをスケジュール
してからイベントを発生するまでの時間、イベントを起
こす対象およびその値を保持している請求項1に記載の
イベント発生装置。
4. The event generation apparatus according to claim 1, wherein the event holds a time from when the event is scheduled to when the event is generated, an object that causes the event, and a value thereof.
【請求項5】前記テストプログラム中に、前記イベント
発生キーワードがコメント文として記述されている請求
項1に記載のイベント発生装置。
5. The event generating apparatus according to claim 1, wherein the event generating keyword is described as a comment sentence in the test program.
【請求項6】イベントの発生が終了すると、当該イベン
トに対応するユーザタスクを消滅させる請求項1に記載
のイベント発生装置。
6. The event generator according to claim 1, wherein when the occurrence of the event ends, the user task corresponding to the event disappears.
【請求項7】ハードウェアを制御する論理検証用の命令
を記述したテストプログラムをコンパイルして生成され
たオブジェクトプログラムに基づいて、前記ハードウェ
アのシミュレーションモデルを動作させるハードウェア
シミュレーション装置であって、 前記テストプログラム中に記述され、前記オブジェクト
プログラムには影響を与えない形式でイベントの発生を
指示するイベント発生キーワードを用いて、コンパイル
時に、イベント情報ファイルを生成するコンパイラと、 ハードウェア記述言語を用いて記述され、前記オブジェ
クトプログラムに基づいて、対象ハードウェアのシミュ
レーション動作を行うシミュレーションモデルと、 前記イベント情報ファイルに基づいて、手続き型の高級
プログラミング言語を用いて記述されたイベントに応じ
たユーザタスクを生成し、当該ユーザタスクを登録する
ユーザタスク生成手段と、 前記ユーザタスク生成手段と前記シミュレーションモデ
ルとの間のインタフェースと、 前記オブジェクトプログラムに応じた前記シミュレーシ
ョンモデルの動作を監視し、実行中の命令を特定する動
作監視手段と、 前記動作監視手段の監視結果に基づいて、前記テストプ
ログラムに記述されたイベントが同期すべき命令が実行
されるときに、当該イベントに対応するユーザタスクを
前記インタフェースを介して前記ユーザタスク生成手段
から前記シミュレーションモデルに読み出して当該イベ
ントをスケジュールするスケジュール手段とを有するハ
ードウェアシミュレーション装置。
7. A hardware simulation device for operating a simulation model of the hardware based on an object program generated by compiling a test program describing a logic verification instruction for controlling the hardware, A compiler that generates an event information file at the time of compilation using an event generation keyword that is described in the test program and that indicates generation of an event in a format that does not affect the object program; and a hardware description language. A simulation model that simulates the target hardware based on the object program, and an simulation model that is described using a procedural high-level programming language based on the event information file. A user task generating means for generating a user task corresponding to the user task, and registering the user task; an interface between the user task generating means and the simulation model; and an operation of the simulation model according to the object program. An operation monitoring unit that monitors and specifies an instruction being executed; and, when an instruction to be synchronized with an event described in the test program is executed based on the monitoring result of the operation monitoring unit, the operation monitoring unit responds to the event. And a scheduler for reading a user task to be performed from the user task generator to the simulation model via the interface and scheduling the event.
【請求項8】前記コンパイラは、前記イベント情報ファ
イルに、イベントが指定された直前あるいは直後の命令
を記述し、 前記スケジュール手段は、前記イベントが指定された直
前あるいは直後の命令が実行されるときに、当該イベン
トをスケジュールする請求項7に記載のハードウェアシ
ミュレーション装置。
8. The compiler describes instructions immediately before or immediately after an event is specified in the event information file, and the scheduling means executes an instruction immediately before or immediately after the event is specified. 8. The hardware simulation device according to claim 7, wherein said event is scheduled.
【請求項9】前記イベントは、当該イベントを発生させ
る条件を保持し、スケジュールされた後に当該条件が満
たされたときに、発生する請求項7に記載のハードウェ
アシミュレーション装置。
9. The hardware simulation apparatus according to claim 7, wherein the event holds a condition for generating the event, and occurs when the condition is satisfied after being scheduled.
【請求項10】前記イベントは、イベントをスケジュー
ルしてからイベントを発生するまでの時間、イベントを
起こす対象およびその値を保持している請求項8に記載
のハードウェアシミュレーション装置。
10. The hardware simulation apparatus according to claim 8, wherein the event holds a time from when the event is scheduled to when the event is generated, a target that causes the event, and a value thereof.
【請求項11】前記テストプログラム中に、前記イベン
ト発生キーワードがコメント文として記述されている請
求項7に記載のハードウェアシミュレーション装置。
11. The hardware simulation device according to claim 7, wherein the event occurrence keyword is described as a comment sentence in the test program.
【請求項12】イベントの発生が終了すると、当該イベ
ントに対応するユーザタスクを消滅させる請求項7に記
載のハードウェアシミュレーション装置。
12. The hardware simulation device according to claim 7, wherein when the occurrence of the event ends, the user task corresponding to the event disappears.
【請求項13】ハードウェアを制御する論理検証用の命
令を記述したテストプログラムをコンパイルして生成さ
れたオブジェクトプログラムに基づいて、前記ハードウ
ェアのシミュレーションモデルを動作させるハードウェ
アシミュレーション方法であって、 前記テストプログラム中に記述され、前記オブジェクト
プログラムには影響を与えない形式でイベントの発生を
指示するイベント発生キーワードを用いて、コンパイル
してイベント情報ファイルを生成し、 ハードウェア記述言語を用いて記述されシミュレーショ
ンモデルを用いて、前記オブジェクトプログラムに基づ
いて、対象ハードウェアのシミュレーション動作を行
い、 前記イベント情報ファイルに基づいて、手続き型の高級
プログラミング言語を用いて記述されたイベントに応じ
たユーザタスクを生成し、 前記オブジェクトプログラムに応じた前記シミュレーシ
ョンモデルの動作を監視して実行中の命令を特定し、 前記監視の結果に基づいて、前記テストプログラムに記
述されたイベントが同期すべき命令が実行されるとき
に、当該イベントに対応するユーザタスクをインタフェ
ースを介して前記シミュレーションモデルに読み出して
当該イベントをスケジュールするハードウェアシミュレ
ーション方法。
13. A hardware simulation method for operating a simulation model of the hardware based on an object program generated by compiling a test program describing a logic verification instruction for controlling the hardware, comprising: Generate an event information file by compiling using an event generation keyword that is described in the test program and instructs the generation of an event in a format that does not affect the object program, and is described using a hardware description language Using a simulation model, based on the object program, perform a simulation operation of the target hardware, and, based on the event information file, generate an event described using a high-level procedural programming language. Generating a user task, monitoring the operation of the simulation model in accordance with the object program, specifying an instruction being executed, and synchronizing an event described in the test program based on a result of the monitoring. A hardware simulation method for reading a user task corresponding to the event into the simulation model via an interface when the instruction to be executed is executed, and scheduling the event.
【請求項14】前記コンパイルによって、前記イベント
情報ファイルに、イベントが指定された直前あるいは直
後の命令を記述し、 前記イベントが指定された直前あるいは直後の命令が実
行されるときに、当該イベントをスケジュールする請求
項13に記載のハードウェアシミュレーション方法。
14. An instruction immediately before or immediately after an event is specified in the event information file by the compilation, and when the instruction immediately before or immediately after the event is executed is executed, the event is written. 14. The hardware simulation method according to claim 13, wherein scheduling is performed.
【請求項15】前記イベントは、当該イベントを発生さ
せる条件を保持し、スケジュールされた後に当該条件が
満たされたときに、発生する請求項13に記載のハード
ウェアシミュレーション方法。
15. The hardware simulation method according to claim 13, wherein the event holds a condition for generating the event, and occurs when the condition is satisfied after being scheduled.
【請求項16】前記イベントは、イベントをスケジュー
ルしてからイベントを発生するまでの時間、イベントを
起こす対象およびその値を保持している請求項13に記
載のハードウェアシミュレーション方法。
16. The hardware simulation method according to claim 13, wherein the event holds a time from when the event is scheduled to when the event is generated, an object that causes the event, and a value thereof.
【請求項17】前記テストプログラム中に、前記イベン
ト発生キーワードがコメント文として記述されている請
求項13に記載のハードウェアシミュレーション方法。
17. The hardware simulation method according to claim 13, wherein the event occurrence keyword is described as a comment sentence in the test program.
【請求項18】イベントの発生が終了すると、当該イベ
ントに対応するユーザタスクを消滅させる請求項17に
記載のハードウェアシミュレーション方法。
18. The hardware simulation method according to claim 17, wherein when the occurrence of the event ends, the user task corresponding to the event disappears.
JP27010097A 1997-10-02 1997-10-02 Event generating device, and hardware simulation device and method therefor Pending JPH11110429A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27010097A JPH11110429A (en) 1997-10-02 1997-10-02 Event generating device, and hardware simulation device and method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27010097A JPH11110429A (en) 1997-10-02 1997-10-02 Event generating device, and hardware simulation device and method therefor

Publications (1)

Publication Number Publication Date
JPH11110429A true JPH11110429A (en) 1999-04-23

Family

ID=17481542

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27010097A Pending JPH11110429A (en) 1997-10-02 1997-10-02 Event generating device, and hardware simulation device and method therefor

Country Status (1)

Country Link
JP (1) JPH11110429A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100119961A (en) * 2009-05-04 2010-11-12 삼성전자주식회사 Method for executing simulation using function
CN112256573A (en) * 2020-10-21 2021-01-22 中国人民解放军国防大学联合作战学院 SIMSCRIPT-language-oriented simulation program visualization method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100119961A (en) * 2009-05-04 2010-11-12 삼성전자주식회사 Method for executing simulation using function
CN112256573A (en) * 2020-10-21 2021-01-22 中国人民解放军国防大学联合作战学院 SIMSCRIPT-language-oriented simulation program visualization method
CN112256573B (en) * 2020-10-21 2022-10-11 中国人民解放军国防大学联合作战学院 SIMSCRIPT language oriented simulation program visualization method

Similar Documents

Publication Publication Date Title
US4811345A (en) Methods and apparatus for providing a user oriented microprocessor test interface for a complex, single chip, general purpose central processing unit
US7246052B2 (en) Bus master and bus slave simulation using function manager and thread manager
US8180620B2 (en) Apparatus and method for performing hardware and software co-verification testing
US8903703B2 (en) Dynamically adjusting speed versus accuracy of computer platform simulation
Closse et al. Taxys: A tool for the development and verification of real-time embedded systems?
Ceng et al. A high-level virtual platform for early MPSoC software development
JP2513417B2 (en) Information processing device
JPH11110429A (en) Event generating device, and hardware simulation device and method therefor
JPH1078887A (en) Debug system and debug method
US20080300846A1 (en) Methods and apparatus for hardware simulation and design verification
JP4152659B2 (en) Data processing system and design system
US8914274B1 (en) Method and system for instruction set simulation with concurrent attachment of multiple debuggers
CN117422026B (en) RISC-V architecture-based processor verification system
JP2803090B2 (en) MPU simulation method and MPU simulator
Luth et al. HW/SW cosynthesis using Statecharts and symbolic timing diagrams
CN117422025B (en) Random interrupt debugging verification system based on RISC-V architecture
Devins SoC Verification Software–Test Operating System
JP2940309B2 (en) Microcomputer for program development
JPH1165885A (en) Device and method for debugging software
JP2007156728A (en) Logic verification method and logic verification system
JP2002366378A (en) Method and device for debugging program and storage medium
JP2912269B2 (en) Debug system and method
JPH10154084A (en) Instruction simulation method and instruction simulation system
Budde et al. Complex reactive control with simple synchronous models
JPH07121405A (en) Simulation system