JP3162321B2 - Logic simulation method and computer-readable recording medium recording program for implementing the logic simulation method - Google Patents

Logic simulation method and computer-readable recording medium recording program for implementing the logic simulation method

Info

Publication number
JP3162321B2
JP3162321B2 JP12220597A JP12220597A JP3162321B2 JP 3162321 B2 JP3162321 B2 JP 3162321B2 JP 12220597 A JP12220597 A JP 12220597A JP 12220597 A JP12220597 A JP 12220597A JP 3162321 B2 JP3162321 B2 JP 3162321B2
Authority
JP
Japan
Prior art keywords
cache
bus
test
circuit
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.)
Expired - Fee Related
Application number
JP12220597A
Other languages
Japanese (ja)
Other versions
JPH10312311A (en
Inventor
康人 近江谷
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 JP12220597A priority Critical patent/JP3162321B2/en
Publication of JPH10312311A publication Critical patent/JPH10312311A/en
Application granted granted Critical
Publication of JP3162321B2 publication Critical patent/JP3162321B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Description

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

【0001】[0001]

【発明の属する技術分野】この発明は、コンピュータ等
に用いられるディジタル回路LSIの論理の正当性をシ
ミュレーションで確認する設計検証方法に関するもので
ある。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a design verification method for verifying the validity of logic of a digital circuit LSI used in a computer or the like by simulation.

【0002】[0002]

【従来の技術】従来技術を説明するにあたり、LSIの
設計と論理シミュレーションの関係、論理シミュレーシ
ョンの実現方法、論理シミュレーションと実機デバッグ
との関係、論理シミュレーションの試験データ、論理シ
ミュレーションの試験データ生成の自動化、について説
明する。
2. Description of the Related Art Prior art is described in relation to LSI design and logic simulation, how to implement logic simulation, relationship between logic simulation and real machine debugging, test data for logic simulation, and automatic generation of test data for logic simulation. Will be described.

【0003】一般に、LSIを設計する時の基本的な設
計フローとしては、まず、上位の仕様をLSIの内部仕
様に具現化し、その内部仕様からモジュールに論理分割
を行ってその仕様を決める。次に各モジュールのハード
ウェアリソースとなるレジスタ、選択回路、加減回路、
エンコード・デコード回路を決め、それらをどの様に制
御するかを決定する。そのリソースと制御情報をレジス
タ転送レベルの記述言語(RTL)で記述する。RTL
記述言語の文法上の誤りと意味上の誤りを適宜修正後に
RTL言語を理解できるシミュレータに入力させて論理
シミュレーションにより記述の誤りまたは仕様レベルの
誤りを修正する。
In general, as a basic design flow when designing an LSI, first, a higher-level specification is embodied in an internal specification of the LSI, and the internal specification is logically divided into modules to determine the specification. Next, registers, selection circuits, addition and subtraction circuits, which are hardware resources for each module,
An encoding / decoding circuit is determined, and how to control them is determined. The resources and control information are described in a register transfer level description language (RTL). RTL
After correcting the grammatical error and the semantic error of the description language as appropriate, the grammatical error and the semantic error are input to a simulator that can understand the RTL language, and the description error or specification level error is corrected by logic simulation.

【0004】論理シミュレーションの単位は、モジュー
ル単体から始め、複数モジュール、上位モジュール、L
SI単体、複数LSI,LSIを搭載したプリント基
板、システムと徐々に上げて行く。論理シミュレーショ
ンによる記述のあやまりがなくなった時点で論理合成ツ
ールを使用しRTLをソース言語としてゲート論理を合
成する。ツール自体の機能や人手指定データにより、ゲ
ート数やゲート遅延または配線遅延を仕様に合致するよ
う最適化をかける。必要によってはモジュール間の接続
を変更したりレジスタ間の転送方法を変えたりなど大元
のアーキテクチャを変えて改善しそのためRTLソース
まで変更することもある。その場合はシミュレーション
もやり直す。
[0004] The unit of the logic simulation starts with a single module, a plurality of modules, a higher-level module, and a L module.
Increasingly the SI alone, a plurality of LSIs, a printed circuit board on which the LSIs are mounted, and a system. When the description by the logic simulation is no longer incorrect, the logic logic is used to synthesize the gate logic using RTL as a source language. The number of gates and gate delay or wiring delay are optimized so as to conform to the specification by the function of the tool itself and manually specified data. If necessary, the original architecture may be changed, such as changing the connection between modules or changing the transfer method between registers, so that the RTL source may be changed. In that case, the simulation is redone.

【0005】論理、タイミング、熱設計の条件が整うと
そのゲート回路に対してLSIメーカが、LSIのマス
ク作成、LSIの製造を行い、接続情報や人手作成デー
タに基づきLSIのウェハーレベルでのDC試験/機能
動作試験とAC試験、パッケージに装着後の同試験後、
ユーザDC試験を行い、良品をユーザにサンプル出荷す
る。
When the conditions of logic, timing, and thermal design are satisfied, an LSI maker creates an LSI mask and manufactures an LSI for the gate circuit, and performs DC at the wafer level of the LSI based on connection information and manually created data. Test / Functional operation test and AC test, after the same test after mounting on the package,
A user DC test is performed and non-defective products are sampled and shipped to users.

【0006】ユーザでは、そのLSIをプリント基板に
装着し実システム上で試験を行う。この試験はハードウ
ェア試験、診断プログラムによる機能試験、システム診
断プログラムと呼ばれる実使用環境の試験を加速した負
荷の重く多様性のある試験、オペレーティングシステム
とアプリケーションによる総合試験といった順でデバッ
グをして行く。これらの試験の過程では、LSIの製造
上の不良は少なく、プリント基板への取り付け上の問題
や他の部品の不良、LSIの論理設計誤り、論理仕様の
誤り、タイミング設計誤りやノイズや信号波形伝幡に依
存する設計不良が見つかる。特に論理設計や論理仕様の
不具合に関してはLSIの内部を変更しないと直らない
ものが多く、論理検証をいかにうまく行うかが重要であ
る。LSIのサンプルを何回も作り直すとLSIメーカ
に払う開発費用と変更からサンプル入手までのターンア
ラウンドタイムが長くなるという問題を有している。
A user mounts the LSI on a printed circuit board and performs a test on an actual system. In this test, debugging is performed in the order of hardware test, functional test by diagnostic program, heavy load and diversified test that accelerated the test of actual use environment called system diagnostic program, and comprehensive test by operating system and application. . In the course of these tests, there are few defects in the manufacture of the LSI, problems with the attachment to the printed circuit board, defects in other components, errors in the logic design of the LSI, errors in the logic specifications, timing design errors, noise and signal waveforms. A design defect that depends on the transmission is found. In particular, with regard to defects in logic design and logic specifications, there are many things that cannot be corrected unless the inside of the LSI is changed, and it is important how to perform logic verification well. If the LSI sample is re-created many times, there is a problem that the development cost to be paid to the LSI maker and the turnaround time from the change to the sample acquisition become long.

【0007】論理シミュレーションの方法としては、 (1)エンジニアリングワークステーション上のソフト
ウェアでゲートシミュレーションを行う方法 (2)エンジニアリングワークステーション上のソフト
ウェアでRTLシミュレーションを行う方法 (3)シミュレーション専用マシン上でゲートシミュレ
ーションを行う方法 (4)FPGA(フィールドプログラマブルゲートアレ
イ)を用いたシミュレーション用のハードウェアを用い
て擬似的にLSIと同等な論理を実現して実際のLSI
の替わりにシステムに搭載し、実際の数分の1のクロッ
ク周波数で動作をエミュレーションさせる方法 (5)上記の任意の組み合わせをとるのが一般的であ
り、上記の順に使用形態が移行しつつある。
As logic simulation methods, (1) a method of performing a gate simulation with software on an engineering workstation (2) a method of performing an RTL simulation with software on an engineering workstation (3) a gate simulation on a dedicated simulation machine (4) Pseudo realization of logic equivalent to LSI using simulation hardware using FPGA (field programmable gate array) and actual LSI
(5) It is general to take any combination of the above and emulate the operation at a fraction of the actual clock frequency instead of the above, and the usage pattern is shifting in the above order .

【0008】上記(1)で述べたようなゲートシミュレ
ーションはイベントドリブン方式として古くから知られ
た方法でありCAD(Computer AidedDesign)関連の本に
その原理は紹介され、市販の論理シミュレータはこの方
法を基本としているものが多い。(2)は、上記(1)
の変形として特開平6-274564号公報などに示されるよう
にシミュレーション速度を改善したもの、またシミュレ
ーション対象回路が同期回路であるという制限のもとに
動作評価順序をレベル付けしたものなどがある。(3)
は論理シミュレーションに適したアーキテクチャをもつ
専用計算機として、命令・データ・アドレスの構造を最
適化したもの、パイプライン処理を最適化させたもの、
並列処理を使用したものなどがある。特開平6-96152号
公報はその一例である。(4)は特開平6-160482号公報
の従来例に示されるようにFPGAを用いてシミュレー
ション対象回路の動作は実際の数分の1のクロックで実
現するものである。
[0008] The gate simulation as described in the above (1) is a method which has been known for a long time as an event driven method, and its principle is introduced in a book related to CAD (Computer Aided Design), and a commercially available logic simulator uses this method. There are many basic ones. (2) is the above (1)
As modifications, there are a method in which the simulation speed is improved as shown in Japanese Patent Application Laid-Open No. 6-274564 and a method in which the operation evaluation order is given a level under the restriction that the circuit to be simulated is a synchronous circuit. (3)
Is a special-purpose computer with an architecture suitable for logic simulation, one that optimizes the structure of instructions, data and addresses, one that optimizes pipeline processing,
Some use parallel processing. JP-A-6-96152 is one example. In (4), as shown in the conventional example of JP-A-6-160482, the operation of the circuit to be simulated is realized using an FPGA with a fraction of the actual clock.

【0009】論理検証とシステムデバッグをどう実現し
ているかという観点では (1) 論理検証はLSI単体シミュレーションにとど
め、実機デバッグの結果から、いかに早くLSIの製造
をするかに比重を置く方法。 (2) 論理シミュレーションでシステムレベル動作の
かなりの部分まで行い、実機デバッグ期間を比較的短く
する方法。 (3) 論理シミュレーションは最低限にとどめて、F
PGAを用いた上記(4)の方法を使用して実使用環境
に近い動作で不具合を見つける方法。 がある。
From the viewpoint of how to implement logic verification and system debugging: (1) A method in which logic verification is limited to a simple LSI simulation, and the emphasis is placed on how quickly the LSI is manufactured based on the results of actual machine debugging. (2) A method in which a considerable part of the system level operation is performed in the logic simulation to relatively shorten the actual machine debug period. (3) Minimize the logic simulation, and
A method of finding a defect by an operation close to the actual use environment using the method (4) using PGA. There is.

【0010】論理シミュレーションに使用する試験デー
タは、シミュレーションの対象回路規模により次のよう
な形態を採るのが一般的である。 (1)組み合わせ回路の入力データの組み合わせに従っ
た出力データの期待値との一致 (2)順序回路に対して、クロックと入力データを時系
列に与えた時の出力データの変化 (3)動作上意味のある論理ブロックに対して、クロッ
クとともにデータと制御信号を与えることにより他の論
理ブロックとの信号のやりとりを部分的に実現してその
論理ブロックの出力応答を検査する (4)LSIに対して、クロックとともにデータと制御
信号を与えることにより他の論理ブロックとの信号のや
りとりを部分的に実現してその論理ブロックの出力応答
を検査する
Test data used for logic simulation generally takes the following form depending on the scale of a circuit to be simulated. (1) Matching of expected value of output data according to combination of input data of combinational circuit (2) Change of output data when clock and input data are given in time series to sequential circuit (3) Operation By giving data and control signals together with a clock to a logical block having the above meaning, signal exchange with another logical block is partially realized, and the output response of the logical block is inspected. (4) LSI On the other hand, by providing data and a control signal together with a clock, signal exchange with another logic block is partially realized, and the output response of the logic block is inspected.

【0011】(5)他のLSIや周辺回路と混在して、
クロックとともにデータと制御信号を与えることにより
他の論理ブロックとの信号のやりとりを部分的に実現し
てその論理ブロックの出力応答を検査する (6)他のLSIや周辺回路のシミュレーションモデル
と混在した状態で、周辺回路のレジスタまたは動作コマ
ンドを設定して周辺回路より起動を行い、その結果とし
て検証対象とするLSIにデータと制御信号を間接的に
与えることにより、検証対象回路と他のLSIや周辺回
路との規約動作を検査する。結果の検査方法は、LSI
の応答信号波形の目視チェック、周辺回路の受信応答値
を記憶しておきシミュレーションの後で検査する、LS
I内部レジスタの値をシミュレーションの後で検査する
など。
(5) Mixed with other LSIs and peripheral circuits,
By providing data and control signals together with the clock, signal exchange with other logic blocks is partially realized, and the output response of the logic blocks is inspected. (6) Mixed with other LSI and peripheral circuit simulation models In this state, a register or an operation command of the peripheral circuit is set and the peripheral circuit is started up. As a result, the data to be verified and the control signal are indirectly applied to the LSI to be verified, thereby enabling the verification of the circuit to be verified and other LSIs and the like. Check the protocol operation with the peripheral circuit. The result inspection method is LSI
Check of the response signal waveform of the above, and the reception response value of the peripheral circuit is stored and inspected after the simulation, LS
Check the value of the I internal register after simulation, etc.

【0012】(7)他のLSI、主記憶、I/O回路の
実際のシミュレーションモデルまたは簡易化したシミュ
レーションモデルと混在した状態でコンピュータとして
の機能を持たせ、診断プログラム、オペレーティングシ
ステム、アプリケーションプログラムを主記憶にロード
してコンピュータ全体としての動作を行わせる。ロード
するプログラムは、I/Oなどの動作を一部だけ除去し
たもの、処理上可能な部分のみ切り出したもの、動作上
繰り返しの多い部分を除去したものなどシミュレーショ
ンで効率よく使用できるものに限定する。診断プログラ
ムの場合は期待値をもって自動比較できる。他のプログ
ラムの場合はハードウェアおよびプログラムがハングし
ない、プログラムが終了する、プログラムの実行結果の
I/O上または主記憶上のデータを期待値として比較す
る、といった手段で正常動作できたか判定する。
(7) A function as a computer is provided in a state of being mixed with an actual simulation model or a simplified simulation model of another LSI, main memory, I / O circuit, and a diagnostic program, an operating system, and an application program are provided. The data is loaded into the main memory and the operation of the entire computer is performed. The programs to be loaded are limited to those that can be used efficiently in simulations, such as those in which operations such as I / O are partially removed, those in which only portions that can be processed are cut out, and those in which operations are frequently repeated are removed. . In the case of a diagnostic program, automatic comparison can be performed with expected values. In the case of another program, it is determined whether the normal operation can be performed by means such as the hardware and the program not hanging, the program ending, and comparing the data on the I / O or the main storage of the execution result of the program as an expected value. .

【0013】このようにシミュレーションの対象回路規
模を大きくするに従い次のような傾向がある。 (a)テストデータは客観的になり、論理設計上のケア
レスミスから仕様誤りのよる不具合検出に移る。 (b)一般的にはテストデータの生産性は高くなる。 (c)原因解析はより困難になる。 (d)データやアドレスパターンに依存する制御の単純
な不具合は見つけにくなる。 (e)テスト内容の比重が、設計者が意図したテストか
らより客観的なテストに移る。 (f)テストによるカバレッジがわかりにくくなる。 (g)クロック数に対して不具合を検出できる割合が大
幅に減少する。 (h)「動作を高速化する工夫を施した」回路のテスト
データの生産性が減少する。
As described above, there is the following tendency as the scale of the circuit to be simulated is increased. (A) Test data becomes objective, and shifts from careless mistakes in logic design to defect detection due to specification errors. (B) Generally, the productivity of test data is high. (C) Cause analysis becomes more difficult. (D) Simple defects in control depending on data and address patterns are difficult to find. (E) The specific gravity of the test content shifts from the test intended by the designer to a more objective test. (F) The coverage by the test becomes difficult to understand. (G) The rate at which a defect can be detected with respect to the number of clocks is greatly reduced. (H) The productivity of test data of a circuit "contrived to speed up the operation" is reduced.

【0014】上記の(6)で示したように実際のプログ
ラムを用いて試験データとする方法は、前記のFPGA
によるエミュレーションではよく使用される方法である
が診断プログラムなどのカバレッジに依存してしまう。
特にシステム診断プログラムと呼ばれるプログラムで
は、多重度を上げたテストを使用しかつI/O動作のば
らつきなどの外部要因によって動作のパターンを尽くし
その結果実際のオペレーティングシステム下での動作を
極く短時間に圧縮して試験する効果があるが、そのエミ
ュレーションによる方法ではテスト環境の相違などから
その効果はあまり望めない。
As shown in the above (6), the method of making test data using an actual program is based on the above-mentioned FPGA.
This is a method that is often used in emulation, but depends on the coverage of a diagnostic program or the like.
In particular, a program called a system diagnostic program uses a test with an increased multiplicity and exhausts an operation pattern due to an external factor such as variation in I / O operation. As a result, an operation under an actual operating system is performed for a very short time. However, the effect of emulation cannot be expected due to differences in the test environment.

【0015】プロトタイピングによる実機テストでは、
不具合解析から修正に到るターンアラウンドタイムがL
SIの開発工程上の大きな問題となる。エミュレーショ
ン方式では実機テストほどカバレッジが確保できない一
方、解析の困難さを含めたターンアラウンドタイムの問
題が残る。それは膨大なクロック数を経て矛盾として検
出された状態から、その原因の発生した時刻まで如何に
さかのぼって動作が狂った時点を見つけるかといった試
行錯誤的な作業を伴うからである。従ってかなりの不具
合はシミュレーションを使用して次に述べる自動化され
たテストデータで検出し、実機テストやエミュレーショ
ンによるテストは最終確認とする方法が今後の方向と思
われる。
In the actual machine test by prototyping,
Turnaround time from defect analysis to correction is L
This is a major problem in the SI development process. In the emulation method, the coverage cannot be secured as much as the actual machine test, but the problem of the turnaround time including the difficulty of analysis remains. This is because it involves trial and error work such as how to go back to the time when the cause occurs from the state detected as inconsistency after an enormous number of clocks and find a point in time when the operation becomes erratic. Therefore, it is likely that considerable problems will be detected by the following automated test data using simulation, and that final tests will be performed on actual equipment tests and emulation tests.

【0016】一方、シミュレーションに用いるテストデ
ータの自動化として、情報処理学会第50回全国大会の
6B−3「テストプログラム自動生成ツール『MTS
T』の開発」および6B−4「テストプログラム自動生
成ツール『MTST』によるシステムレベル検証」で開
示されているように、テスト対象のLSIとテスト非対
象の回路を挟み込む形でシミュレーション環境を構築
し、乱数により指定したパラメータと指定したバスリク
エストとリクエスト間隔のバストランザクションのパタ
ーンを尽くす方法もある。
[0016] On the other hand, as automation of test data used for the simulation, 6B-3 "Test program automatic generation tool" MTS "
As described in “Development of T” and 6B-4 “System Level Verification Using Automatic Test Program Generation Tool“ MTST ””, a simulation environment is constructed by sandwiching the LSI to be tested and the circuit to be tested. There is also a method of exhausting a bus transaction pattern between a parameter specified by a random number, a specified bus request, and a request interval.

【0017】また、情報処理学会第53回全国大会の4
F−07「Pentium Pro SMP BridgeChip Set 大規模論
理検証技術」では、検証対象回路が持つ3次キャッシュ
に対して2次キャッシュ制御を含めたオペレーションの
使用、データの一貫性とデータ値の確認が開示されてい
る。しかし、3次キャッシュレベルのオペレーションと
2次キャッシュレベルのオペレーションの混在による期
待値確定のアルゴリズムとそのための初期設定方法、同
一アドレスを互いにアクセスしたときの期待値確定方法
については、その機能の有無を含めて開示されていな
い。
In addition, 4 of the 53rd National Convention of IPSJ
F-07 "Pentium Pro SMP BridgeChip Set Large-Scale Logic Verification Technology" discloses use of operations including secondary cache control for the tertiary cache of the circuit to be verified, confirmation of data consistency and data value Have been. However, the algorithm for determining the expected value by mixing the operation of the tertiary cache level and the operation of the secondary cache level, the initial setting method therefor, and the method of determining the expected value when the same address is mutually accessed are determined by the presence or absence of the function. Not disclosed.

【0018】図9は情報処理学会第50回全国大会の6
B−4「テストプログラム自動生成ツール『MTST』
によるシステムレベル検証」に示された従来のテストデ
ータ自動生成ツールの構造を示す図である。図9におい
て、51は試験対象のLSI,2は非試験対象の回路、6
は試験生成部、54はシミュレーション実行時に他の回路
とインターフェイスを取りながら動的に信号の取り込み
や駆動を行う部分、8は動作の状態や違いが外部に見え
るバスである。
FIG. 9 shows the information processing system of the 50th National Convention of the Information Processing Society of Japan.
B-4 "Test program automatic generation tool" MTST "
Is a diagram showing the structure of a conventional test data automatic generation tool shown in "System Level Verification by Test". In FIG. 9, reference numeral 51 denotes an LSI to be tested, 2 denotes a circuit to be tested, 6
Is a test generation unit, 54 is a unit that dynamically captures and drives signals while interfacing with other circuits during simulation execution, and 8 is a bus whose operation state and differences are visible to the outside.

【0019】次に従来例の動作について説明する。ま
ず、試験生成に依存しない回路動作を説明する。図10
では、プロセッサ2aからプロセッサバス8aを介して
メモリリードアクセス要求がアドレスとともにN次キャ
ッシュ1aに対して送出される。N次キャッシュ1aが
ヒットすればそのトランザクションに対してレスポンス
とデータが返され動作は終了する。また、N次キャッシ
ュ1aもミスすればさらにN次キャッシュ1aはシステ
ムバス8bを介してメモリ1bに対して発行される。メ
モリ1bはレスポンスとデータをシステムバス8bを介
してN次キャッシュ1aに返し、N次キャッシュ1aは
N次キャッシュ1aに格納すると同時にプロセッサ2a
にレスポンスとデータを返す。データはデータの存在を
示すDRDY信号によって有効なタイミングが示され
る。
Next, the operation of the conventional example will be described. First, a circuit operation that does not depend on test generation will be described. FIG.
Then, a memory read access request is sent from the processor 2a to the N-level cache 1a together with the address via the processor bus 8a. If the N-th cache 1a hits, a response and data are returned for the transaction, and the operation ends. If the N-th cache 1a also misses, the N-th cache 1a is issued to the memory 1b via the system bus 8b. The memory 1b returns a response and data to the N-th cache 1a via the system bus 8b.
Returns the response and data to For data, valid timing is indicated by a DRDY signal indicating the presence of data.

【0020】また、図11ではI/Oモデル からのメ
モリリード要求に対してデータがメモリではなくN次キ
ャッシュ上にMESIステートにおけるM(モディファ
イ)状態である時のデータ転送を示している。I/Oモ
デル2bからメモリリード要求とアドレスがバス8cに
対して出され、バスブリッジ1cがこれを受信し、シス
テムバス8bに送出する。メモリ1bは主記憶データを
準備しバス8cに送出する準備をしN次キャッシュ1a
からのスヌープ信号HITMを待つ。N次キャッシュ1
aはキャッシュを引きそのアドレスがN次キャッシュ内
にM状態にあることを認知し、「メモリデータが古い」
こと示すスヌープ信号HITMをアサートし、レスポン
ス信号をアサートしN次キャッシュのデータとDRDY
信号をシステムバス上に送出し、N次キャッシュのその
ラインを無効化する。
FIG. 11 shows a data transfer when the data is in the M (modify) state in the MESI state in the MESI state instead of the memory in response to the memory read request from the I / O model. A memory read request and an address are issued from the I / O model 2b to the bus 8c, and the bus bridge 1c receives this and sends it to the system bus 8b. The memory 1b prepares the main storage data and prepares to send it to the bus 8c, and the N-level cache 1a
Wait for a snoop signal HITM from Nth cache 1
"a" pulls the cache, recognizes that the address is in the M state in the Nth cache, and reads "memory data is old".
Assert a snoop signal HITM, assert a response signal, and
Send a signal on the system bus to invalidate that line in the Nth cache.

【0021】メモリ1bはスヌープ信号のアサートを見
てシステムバス上への送出を取りやめる一方、レスポン
ス信号を受信しDRDY信号がアサートされているとき
のデータを取り込み主記憶に書き戻しデータを更新す
る。バスブリッジ1cはレスポンス信号を受信しDRD
Y信号がアサートされているときのデータを取り込む。
N次キャッシュは無効化すると同時にプロセッサ2aに
対してそのキャッシュラインの無効化要求を行うリクエ
ストとアドレスをバス8aに送出する。なおこの例では
説明の簡略化のため、プロセッサ内のN−1次キャッシ
ュはライトスルー方式、N次キャッシュはライトバック
方式を仮定した説明にしてある。
The memory 1b sees the assertion of the snoop signal and cancels the transmission on the system bus, receives the response signal, captures the data when the DRDY signal is asserted, and updates the data back to the main memory. The bus bridge 1c receives the response signal and receives the DRD
The data when the Y signal is asserted is captured.
At the same time as the Nth cache is invalidated, the request and the address for making the processor 2a invalidate the cache line are sent to the bus 8a. Note that, in this example, for simplicity of explanation, the description is based on the assumption that the N-1st cache in the processor is a write-through system and the Nth cache is a write-back system.

【0022】また、図12では上記の説明で使用したシ
ステムバスの信号について接続例をを、図13では信号
間の関係を示している。この例では説明を省略するがバ
スのアクセス権を調停する信号が別途ある。その調停の
結果バスの使用権を得たバス8a〜8c上のLSIが、
リクエストの種類とリクエストの有効を示す信号REQ
をアドレスADDRとともに駆動する。そのアドレスと
リクエストの種類からN次キャッシュを持つLSIはキ
ャッシュの内容を参照して主記憶よりキャッシュが最新
のデータを持っているM状態かどうか判定する。またメ
モリの機能を持つLSIはアドレスとリクエストの種類
を見てメモリデータの読み出し起動または書き込み準備
を行う。キャッシュ機能を持つLSIはリクエストから
固定サイクル以内にHITM信号にてM状態であるか否
かをメモリに対して知らせる。メモリはキャッシュスヌ
ープ結果のHITM信号を見て応答であるRESP信号
を駆動する。またデータ転送はメモリまたはM状態のキ
ャッシュLSIが駆動する。その時データの有意を示す
DRDYが駆動される。図13の例は最初のバストラン
ザクションはメモリからの読み出しを、次のバストラン
ザクションはキャッシュからの読み出しを示している。
FIG. 12 shows a connection example of the system bus signals used in the above description, and FIG. 13 shows the relationship between the signals. Although the description is omitted in this example, there is a separate signal for arbitrating the bus access right. As a result of the arbitration, the LSIs on the buses 8a to 8c, which have obtained the right to use the bus,
Signal REQ indicating request type and request validity
Is driven together with the address ADDR. From the address and the type of request, the LSI having the N-th cache refers to the contents of the cache and determines whether or not the cache has the latest data in the M state from the main memory. The LSI having the function of the memory performs read start of the memory data or preparation for writing by looking at the address and the type of the request. The LSI having the cache function notifies the memory whether or not it is in the M state by the HITM signal within a fixed cycle from the request. The memory drives the RESP signal which is a response by seeing the HITM signal as a result of the cache snoop. The data transfer is driven by the memory or the M-state cache LSI. At that time, DRDY indicating the significance of the data is driven. In the example of FIG. 13, the first bus transaction indicates reading from the memory, and the next bus transaction indicates reading from the cache.

【0023】この例のように最近の設計はバス動作にパ
イプライン化したアーキテクチャを採用している。図1
3の例のようにリクエスト、スヌープ、レスポンス、デ
ータ転送と別々の信号を使用し4段パイプラインを実現
し、スヌープ、レスポンス、データ転送信号の駆動タイ
ミングに自由度を持たせた設計の場合にはバス上の動作
の条件は膨大になる。具体的にはそれらの信号の値の組
み合わせ、タイミングの組み合わせに加えて、各LSI
のビジー状態、キャッシュステート状態の組み合わせと
なる。
Recent designs, such as this example, employ a pipelined architecture for bus operation. FIG.
In the case of a design that implements a four-stage pipeline using separate signals for request, snoop, response, and data transfer as in the example of 3, and has flexibility in the drive timing of the snoop, response, and data transfer signals. The condition of operation on the bus becomes enormous. Specifically, in addition to the combination of the signal values and the timing,
In the busy state and the cache state.

【0024】次に試験データの生成例を示す。試験のタ
ーゲットをシステムバス上の2つの連続したトランザク
ションについて組み合わせを尽くす例について説明す
る。 (1)バス上の最初のトランザクションについて人手で
指定した条件からリクエストを発行するLSIとリクエ
ストを選択する。またアドレスを乱数を用いて決める。
この時アドレスの一部は動作上特別な意味を持つ場合は
人手指定データを用いるかもしれない。 (2)次にそのトランザクションを発生させるためにL
SIに接続された別のバスのリクエストとLSIのキャ
ッシュ状態を決定する。その実現方法が複数ある場合は
乱数によって選択する。 (3)次にシステムバス上でのレスポンス値を決める。
リクエストと矛盾無い範囲で指定されていればその値を
採用し矛盾すれば警告を発するか矛盾しない値に調整す
る。
Next, an example of generating test data will be described. An example will be described in which the targets of the test are combined for two consecutive transactions on the system bus. (1) For the first transaction on the bus, select the LSI that issues the request and the request from the conditions manually specified. The address is determined using a random number.
At this time, if part of the address has a special meaning in operation, manual designation data may be used. (2) Next, to generate the transaction,
The request of another bus connected to the SI and the cache state of the LSI are determined. If there are a plurality of realization methods, the method is selected by using a random number. (3) Next, a response value on the system bus is determined.
If the value is specified within a range that does not conflict with the request, the value is adopted. If the value conflicts, a warning is issued or the value is adjusted to a value that does not conflict.

【0025】(4)レスポンス値とリクエストに矛盾し
ない範囲でスヌープ値を乱数で決定する。 (5)スヌープ値に基づいてキャッシュとメモリの初期
値を乱数で決める。リクエストがライト系の場合はバッ
ファに格納する値を決める。 (6)上記の値からトランザクション終了時点のキャッ
シュメモり、メモリ、バッファの値を計算する。 (7)2番目のトランザクションについて(1)から
(6)と同様に決める。但しキャッシュのライン(キャ
ッシュの管理単位のことでブロックともいう)が完全に
一致しないように乱数を選択する。そうしないとタイミ
ングによってはレスポンスの値が予測できなくなるから
である。 8)システムバス上でのリクエスト信号の間隔を人手指
定または乱数により決定する。この間隔を実現するため
には、あらかじめバス8aからバス8bの遅延、バス8
cからバス8bの遅延を計算しておきその差分をDRV
xとDRVyのいづれかにウェイト時間として使用す
る。
(4) A snoop value is determined by a random number within a range not inconsistent with the response value and the request. (5) Initial values of the cache and the memory are determined by random numbers based on the snoop value. If the request is a write request, determine the value to be stored in the buffer. (6) Calculate the cache memory, memory, and buffer values at the end of the transaction from the above values. (7) The second transaction is determined in the same manner as (1) to (6). However, a random number is selected so that the cache line (a cache management unit and also referred to as a block) does not completely match. Otherwise, the response value cannot be predicted depending on the timing. 8) The interval between request signals on the system bus is manually specified or determined by random numbers. In order to realize this interval, the delay of the bus 8a to the bus 8b, the bus 8
c, the delay of the bus 8b is calculated, and the difference is calculated by the DRV.
It is used as a wait time for either x or DRVy.

【0026】以上が試験生成部 の処理である。アダプ
タ部は試験開始前に、リクエストコード、アドレス、リ
クエスト発行までの待ち時間をDRV1〜4に対してセ
ットし、メモリおよびキャッシュの初期値もセットす
る。図には示していないが試験制御部が生成部に起動を
かけ、生成終了後にリセットとアダプタ部を介して設定
を行う。次に試験制御部はクロックを発生し、アダプタ
部経由で各DRVが待ち状態がなくかつアイドルであり
試験対象回路のアイドルになるタイミングまでクロック
発生を続ける。この待ち状態が完了した時点で、試験制
御部は試験生成部で決めた期待値と一致するかどうか、
メモリ、キャッシュ、DRVのバッファの値を検査す
る。
The above is the processing of the test generator. Before starting the test, the adapter unit sets the request code, the address, the waiting time until the request is issued for the DRVs 1 to 4, and also sets the initial values of the memory and the cache. Although not shown in the drawing, the test control unit activates the generation unit, and after the generation is completed, performs reset and setting via the adapter unit. Next, the test control unit generates a clock, and continues to generate a clock via the adapter unit until each DRV has no waiting state and is idle and becomes idle in the circuit under test. When this waiting state is completed, the test control unit checks whether the expected value determined by the test generation unit matches the expected value.
Check the values of the memory, cache, and DRV buffers.

【0027】システムバス上のスヌープタイミングやレ
スポンスタイミングを決定して実現するのは困難であ
り、かなりの動作上の制約を与えることによってのみ実
現でき、テストカバレッジの低下を招く。但し、非試験
対象回路に接続されたバス 、を試験対象とする場合は
ヌープタイミングやレスポンスタイミングの決定した非
試験対象のモデルに応答遅延値を設定することによりテ
ストは可能である。2つのバスに挟まれた試験対象回路
の内部の動作競合を起こすテストは上記の方法と似た形
で実現できるが、タイミングの制御については試験対象
回路の細かな設計時の条件に左右されやすく現実には簡
単には計算できないため、試行錯誤やおおまかなタイミ
ングでの制御しか期待できない。
It is difficult to determine and implement the snoop timing and response timing on the system bus, and it can be realized only by giving a considerable operation restriction, which causes a decrease in test coverage. However, when the bus connected to the non-test target circuit is to be tested, the test can be performed by setting a response delay value in the non-test target model for which the noop timing and the response timing have been determined. A test that causes an operation conflict in the circuit under test sandwiched between two buses can be implemented in a similar manner to the above method, but the timing control is easily affected by the detailed design conditions of the circuit under test. In reality, it cannot be calculated easily, so only trial and error and rough timing control can be expected.

【0028】次に、情報処理学会第53回全国大会の4
F−07「Pentium Pro SMP BridgeChip Set 大規模論
理検証技術」で開示されている方法、すなわち試験対象
回路が含むN次キャッシュに対してN次キャッシュレベ
ルのバスオペレーションとN−1次キャッシュレベルの
オペレーションを併用してより自然発生的に多様な動作
条件を実現させる方法について説明する。図14に示す
構成により、乱数を使用して次のようなテスト項目に対
して試験を自動生成すると開示されている。 (1)バスに発生させるオペレーションの種類 (2)同一バス上のオペレーションの発生間隔 (3)同一バス上のオペレーションの応答間隔 (4)上下2つのバスの競合 (5)3次キャッシュメモリのMESIステート またテスト結果の確認の項目としては (1)キャッシュ・主記憶に格納された値 (2)データの一貫性 である。
Next, 4 of the 53rd National Convention of the Information Processing Society of Japan
F-07 “Pentium Pro SMP BridgeChip Set Large-Scale Logic Verification Technique”, ie, bus operation at the Nth cache level and N-1 cache level operation for the Nth cache included in the circuit under test The method of realizing various operating conditions more spontaneously by using the above will be described. It is disclosed that a test shown in FIG. 14 is automatically generated for the following test items using random numbers. (1) Type of operation to be generated on the bus (2) Interval between operations on the same bus (3) Response interval between operations on the same bus (4) Contention between upper and lower buses (5) MESI of tertiary cache memory State Also, items to check the test result are (1) Value stored in cache / main memory and (2) Data consistency.

【0029】上記情報処理学会第53回全国大会の4F
−07で開示されている方法では、N−1次レベルのア
クセスからN次レベルのバスリクエストを自然発生させ
るため、試験生成部の代わりに各モデルが動作に対応し
生成ツールの作成が容易になる、また同一アドレスに関
する動作実行が可能になる、といった改善は見られるが
次の点で第50回全国大会の6B−4で開示されている
方法に比べて不利になっている。 (1)N−1次動作で閉じてしまいN次のバスにリクエ
ストが現れるよう制御しにくい。 (2)N−1次のオペーレーションによりN次のキャッ
シュが使用されるため、同一テストで混在して発行する
N次バスアクセス動作で明示的にキャッシュの指定をす
ると矛盾が発生してしまう。従ってより直接的に試験で
きるN次バス動作がその長所を失う。
The above information processing society 53rd national convention 4F
In the method disclosed in -07, since the Nth level bus request is naturally generated from the (N-1) th level access, each model corresponds to the operation instead of the test generation unit, and the generation tool can be easily created. However, there is an improvement in that the operation can be executed for the same address, but the following points are disadvantageous compared to the method disclosed in 6B-4 of the 50th National Convention. (1) It is difficult to control so that the request is closed by the N-1st operation and a request appears on the Nth bus. (2) Since the N-th cache is used by the (N-1) -th operation, inconsistency occurs if the cache is explicitly specified in the N-th bus access operation that is issued in the same test. . Thus, an Nth bus operation that can be more directly tested loses its advantages.

【0030】(3)シミュレーション完了時の最終的な
データ値の確認では、途中の動作で不良があっても結果
の確認が不十分である。 (4)シミュレーション完了時に誤りを検出しても、解
析に時間が掛かる、非試験対象回路の誤りやテストデー
タの誤りと試験対象回路の不具合の切り分けに時間が係
るといった問題点がある。 (5)N次キャッシュおよびN−1次キャッシュの初期
設定を行って動作条件を実現するまでのシミュレーショ
ン時間の節約を行おうとすると、キャッシュの包含関係
を保つように試験生成するのが困難になり制約が多くな
る、せっかく行った初期設定が別のバストランザクショ
ンで追い出されるなど試験効果が薄れる、といった問題
点があるので、それらを回避するに1つのテストのクロ
ック数を多くしてキャッシュの初期状態はリセット後の
無効状態から始まりプロセッサが自らキャッシュへのデ
ータロードとリプレースを繰り返すような使い方になる
ので、試験効率が低下する。
(3) In the final data value confirmation at the completion of the simulation, even if there is a defect during the operation, the confirmation of the result is insufficient. (4) Even if an error is detected when the simulation is completed, it takes a long time to analyze, and it takes time to distinguish an error in a non-test target circuit or an error in test data from a defect in the test target circuit. (5) If an attempt is made to save the simulation time until the operating conditions are realized by performing the initial setting of the N-th cache and the N-first cache, it is difficult to generate a test so as to maintain the cache inclusion relation. There is a problem that the test effect is weakened, for example, the restrictions are increased, and the initial settings performed are evicted by another bus transaction, so that the number of clocks in one test is increased to avoid them, and the initial state of the cache is increased. Is used in such a way that the processor repeats the loading and replacement of data into the cache by itself starting from the invalid state after the reset, so that the test efficiency is reduced.

【0031】[0031]

【発明が解決しようとする課題】従来の論理シミュレー
ション方法は上記のように構成されているので、以下に
示すような問題点があった。 (1)条件を殆どランダムにしてしまうと動作が平均化
してしまい特定の条件が発生しないと動作しない部分の
活性化がされず結果として回路の検証のカバレッジを上
げるような条件が発生できない。そこで人手指定を多く
すると指定条件間で矛盾条件が多くできてしまう。矛盾
条件を避けながら木目細かく条件を人手指定するとカバ
レッジの問題は緩和されるが、試験抜けが発生し易くな
る。 (2)複数のバストランザクションの組み合わせを扱え
るようにするとその条件を満足させるために、試験生成
のアルゴリズムが複雑になりアルゴリズム自体の不具合
の収束が悪い、試験対象の回路の外部仕様には見えない
論理設計依存の動作が増え試験生成部の改訂が頻繁にな
る。 (3)試験生成アルゴリズムの不具合と試験対象回路の
不具合の切り分けに時間を要し、ともに不具合をもって
いるときに不具合検出のターンアラウンドが悪い。
Since the conventional logic simulation method is configured as described above, there are the following problems. (1) If the conditions are made almost random, the operations will be averaged out, and unless a specific condition occurs, the part that does not operate will not be activated, and as a result, a condition that increases the coverage of circuit verification cannot be generated. Therefore, if the number of manual designations is increased, inconsistency between the designated conditions is increased. If the conditions are manually specified finely while avoiding inconsistent conditions, the problem of coverage is alleviated, but test omissions are more likely to occur. (2) When a combination of a plurality of bus transactions can be handled, the test generation algorithm is complicated to satisfy the condition, the convergence of the algorithm itself is poor, and the external specification of the circuit to be tested is invisible. The number of operations dependent on the logic design increases, and the test generator is frequently revised. (3) It takes time to distinguish between a defect in the test generation algorithm and a defect in the circuit under test, and when both have a defect, the turnaround of the defect detection is poor.

【0032】(4)試験生成アルゴリズムを複数用意し
て適宜それを選択して試験カバレッジが低下しないよう
に制御するのが望ましいが、因果関係がつかみ難く試行
錯誤要素が多く現実にはかなり難しい。 (5)結果として生成ツールの作成変更に要する延べ日
数に比べて、不具合の検出件数が低く自動化の効果が低
い。 (6)生成ツールを多人数で分担開発しにくい。 (7)タイミングの制御が複雑であり試行錯誤要素が多
い (8)同一アドレスの検証などタイミングが変わると期
待値が変わるものについてはテストが有効でない。
(4) It is desirable to prepare a plurality of test generation algorithms and select them as appropriate to control the test coverage so as not to lower the test coverage. However, it is difficult to grasp the causal relationship, and there are many trial and error elements, which is actually quite difficult. (5) As a result, the number of detected failures is lower and the effect of automation is lower than the total number of days required to change the creation of the generation tool. (6) It is difficult to share and develop the generation tool with many people. (7) The control of the timing is complicated and there are many trial and error factors. (8) The test is not effective for the one whose expected value changes when the timing changes, such as verification of the same address.

【0033】この発明は、上記のような問題点を解消す
るためになされたもので、以下に示す目的を有する。 (1)非検証対象回路はシステム動作の全体を見ずに個
々の閉じた動作仕様内の動作を行い、基本的には独立し
たパラメータで動作するが、バス接続された情報とあら
かじめ設定された情報によってのみ周辺回路又は検証対
象回路との依存動作関係を持たせてるようなモデルとし
て実現しそのモデルの開発を単純化して、複数人による
同時開発、仕様の独立性を高めて開発期間の短縮化、開
発延べ日数の削減をする。 (2)複雑なアルゴリズムを使用せずに、検証対象回路
に接続された非検証対象回路間の相互作用をより客観的
にかつ自然発生的に起こすことによりテストカバレッジ
の低下を招かないようにする。 (3)上記に加えて検証対象回路の活性化の観点から見
たカバレッジを平均化するためにバス上のリクエスト、
アドレスなどを限定したりその頻度を指定できるように
する。
The present invention has been made to solve the above problems, and has the following objects. (1) The non-verification target circuit operates within each closed operation specification without observing the whole system operation, and operates basically with independent parameters. Realized as a model that has a dependent operation relationship with the peripheral circuit or the circuit to be verified only by information, simplifying the development of the model, simultaneous development by multiple people, increasing the independence of specifications, and shortening the development period And reduce the total number of development days. (2) To prevent a reduction in test coverage by causing an objective and spontaneous interaction between non-verified circuits connected to a circuit to be verified without using a complicated algorithm. . (3) In addition to the above, requests on the bus to average coverage from the viewpoint of activation of the circuit to be verified,
Make it possible to limit addresses and the like and specify their frequency.

【0034】(4)検証対象回路に接続されたバスコマ
ンドレベルで発生させると客観性が損なわれるので、バ
スレベルに対応したN次キャッシュより階層が異なるN
−1次キャッシュレベルのアクセスを混在して発生させ
結果としてバスに間接的にリクエストが出てくるように
し客観性を高める、など条件発生アルゴリズムの特定化
を行わない。混在による矛盾が発生しないようにアドレ
ス管理を行う。 (5)タイミングの制御を自動で行うため、非検証対象
回路はバスを介して接続される他の回路とのバスプロト
コルは完全に自動応答とし基本的には因果関係のある信
号から最短クロック数で応答するように論理を組み、さ
らにその最短クロック数に指定されたクロック数の遅延
を加えて応答するように遅延値を設け、複数の因果関係
がある時は個々に遅延値を指定しその組み合わせのもっ
とも遅いものに合せて応答するようにして、タイミング
の制御性を高め、かつ指定の矛盾により誤動作すること
がない。
(4) Since the objectivity is impaired if the command is generated at the bus command level connected to the circuit to be verified, N is different from the N-level cache corresponding to the bus level.
The specification of the condition generation algorithm is not performed, for example, such that the access of the primary cache level is mixed and the request is indirectly output to the bus as a result to improve the objectivity. Address management is performed so that inconsistency due to coexistence does not occur. (5) Since the timing control is performed automatically, the non-verification target circuit has a completely automatic response for the bus protocol with other circuits connected via the bus, and basically the shortest number of clocks from the causal signal. Logic is set up so that it responds with a delay value, and a delay value is provided so as to respond by adding a delay of the specified number of clocks to the shortest clock number. By responding according to the slowest combination, the controllability of the timing is improved, and malfunction does not occur due to inconsistency in designation.

【0035】(6)アドレスが一致して動作の遅延が予
測できなくなったり、バストランザクションのリトライ
によりバス動作上の順序が乱れて期待値生成が困難にな
るのを避けるため、実行順序によらず主記憶又はキャッ
シュメモリの最終値を期待値とし、かつ主記憶又はキャ
ッシュメモリのデータの途中状態の値を検査せず最終値
をもって検査しても同等の効果が得られる。 (7)自然発生的な動作のランダム性を実現するために
ランダムな安定状態に達するのに通常は多くのクロック
数を要するがその状態を高速に実現し、クロック数を削
減する。 (8)主記憶の最終値を検査するだけでは通常はテスト
カバレッジが大幅に低下するがその低下を補完する。 (9)同一アドレスのデータの管理を確実かつ簡易化し
て、テストの制約を削減してテストカバレッジを拡大す
る。 (10)乱数を用いた自動試験で問題となる試験の再現性
を高める。 (11) テストデータの誤り、非検証対象回路の誤り、検
証対象回路の不具合を発生時点で検出して切り分けや解
析の時間を短縮するためにエラーチェック及び矛盾チェ
ック機能を強化し、解析の方法を提供する。
(6) In order to prevent the operation delay from being unpredictable due to the matching of the addresses and the bus operation order being disturbed due to the retry of the bus transaction, making it difficult to generate expected values, The same effect can be obtained by setting the final value of the main memory or the cache memory as the expected value, and checking the intermediate value of the data of the main memory or the cache memory with the final value without checking the value. (7) Usually, a large number of clocks are required to reach a random stable state in order to realize a spontaneous operation randomness, but this state is realized at high speed and the number of clocks is reduced. (8) Inspection of the final value of the main memory alone usually lowers the test coverage significantly, but complements the reduction. (9) The management of data at the same address is reliably and simplified, the test constraints are reduced, and the test coverage is expanded. (10) Improve the reproducibility of tests that are problematic in automatic tests using random numbers. (11) Enhanced error check and inconsistency check functions to reduce errors in test data, errors in the non-verification target circuit, and defects in the verification target circuit at the time of occurrence and reduce the time for analysis and analysis. I will provide a.

【0036】[0036]

【課題を解決するための手段】この発明に係る論理シミ
ュレーション方法は、MESI(Modified、E
xcluseived、Shared、Invalid
ated)と称されるキャッシュのステートが4状態ま
でのライトバック形式のキャッシュであるMESIステ
ートにより構成されN次キャッシュがN−1次キャッシ
ュを包含するキャッシュシステムからなるシミュレーシ
ョンモデル、テストデータを生成する試験生成部、生成
されたテストデータに含まれる指示に従って上記シミュ
レーションモデルのリセット及び内部設定とクロック供
給制御及び停止制御とテストごとのシミュレーション完
了後の期待値比較及びテスト結果判定を行うモニター部
を備え、検証に用いる動作としての動作条件とキャッシ
ュのステート値を指定し、上記シミュレーションモデル
に対するデータ値をキャッシュのステートに応じて動作
誤りが検出できるように各テストの始めに初期値として
設定しテストの終わりにそれらの最終値を期待値と比較
し検証対象回路の動作の正当性を確認するものである。
According to the present invention, there is provided a logic simulation method comprising the steps of: MESI (Modified, ESI);
xclosed, shared, invalid
Attended), there are four cache states.
A simulation model including a cache system including a MESI state which is a write-back type cache in which the N-th cache includes the N-th primary cache, a test generation unit for generating test data, and a test data included in the generated test data A monitor unit for resetting and setting the simulation model, controlling clock supply and stopping, and comparing expected values after completion of simulation for each test and determining test results in accordance with instructions. Specify the state values, set the data values for the above simulation model as initial values at the beginning of each test so that operation errors can be detected according to the state of the cache, and compare their final values with expected values at the end of the test. Of the circuit to be verified It is intended to confirm the validity of the work.

【0037】また、上記N次キャッシュがステートE又
はステートSのとき上記N次キャッシュに上記主記憶の
N次キャッシュと同一アドレス上とは異なるデータ値を
設定しバイパス命令をテストするものである。
When the Nth cache is in the state E or the state S, a different data value is set in the Nth cache from the same address as that of the Nth cache in the main memory, and a bypass instruction is tested.

【0038】さらに、上記N次キャッシュがステートE
又はステートSのとき上記主記憶に上記N次キャッシュ
の上記主記憶と同一アドレス上とは異なるデータ値を設
定しキャッシュをバイパスしないアクセスをテストする
ものである。
Further, the above-mentioned N-th cache is in the state E
Alternatively, in the state S, a data value different from that on the same address as that of the main memory of the N-th cache is set in the main memory to test access without bypassing the cache.

【0039】 さらにまた、MSI(Modifie
d、Shared、Invalidated)と称され
るキャッシュのステートが3状態までのライトバック形
式のキャッシュであるMSIステートにより構成されN
次キャッシュがN−1次キャッシュを包含するキャッシ
ュシステムからなるシミュレーションモデル、テストデ
ータを生成する試験生成部、生成されたテストデータに
含まれる指示に従って上記シミュレーションモデルのリ
セット及び内部設定とクロック供給制御及び停止制御と
テストごとのシミュレーション完了後の期待値比較及び
テスト結果判定を行うモニター部を備え、検証に用いる
動作としての動作条件とキャッシュのステート値を指定
し、上記シミュレーションモデルに対するデータ値をキ
ャッシュのステートに応じて動作誤りが検出できるよう
に各テストの始めに初期値として設定しテストの終わり
にそれらの最終値を期待値と比較し検証対象回路の動作
の正当性を確認するものである。
Further, MSI (Modify)
d, Shared, Invalidated)
Write-back type with up to three cache states
The MSI state, which is a cache of
A simulation model composed of a cache system in which the next cache includes an N-1 primary cache; a test generation unit for generating test data; resetting and internal setting of the simulation model and clock supply control in accordance with instructions included in the generated test data; A monitor unit for stopping control, comparing expected values after completion of simulation for each test, and judging test results is provided. Operating conditions and cache state values as operations used for verification are specified, and data values for the simulation model are cached. At the beginning of each test, initial values are set so that an operation error can be detected according to the state, and at the end of the test, the final values are compared with expected values to confirm the validity of the operation of the circuit to be verified.

【0040】また、上記N−1次キャッシュがステート
MのときN次キャッシュ及び主記憶の各同一アドレス上
には上記ステートMのデータ値とは異なるデータ値を設
定するものである。
When the (N-1) th cache is in the state M, a data value different from the data value in the state M is set on each of the same addresses in the Nth cache and the main memory.

【0041】さらに、上記N次キャッシュがステートS
のとき上記N次キャッシュに上記主記憶のN次キャッシ
ュと同一アドレス上とは異なるデータ値を設定しバイパ
ス命令をテストするものである。
Further, the N-th cache is in the state S
At this time, a data value different from that on the same address as that of the N-th cache in the main memory is set in the N-th cache and a bypass instruction is tested.

【0042】 また、上記N次キャッシュがステートS
のとき上記主記憶に上記N次キャッシュの上記主記憶と
同一アドレス上とは異なるデータ値を設定しキャッシュ
をバイパスしないアクセスをテストするものである。
[0042] In addition, the N-order cache gas Tate S
At this time, a data value different from that on the same address as that of the main memory of the N-th cache is set in the main memory to test access without bypassing the cache.

【0043】 さらにまた、リクエスト及びレスポンス
応答を駆動するエージェントが接続されたバス、このバ
スに接続されバスプロトコルのチェックを行うバスモニ
タから構成されるシミュレーションモデル、テストデー
タを生成する試験生成部、生成されたテストデータに含
まれる指示に従って上記シミュレーションモデルのリセ
ット及び内部設定とクロック供給制御及び停止制御とテ
ストごとのシミュレーション完了後の期待値比較及びテ
スト結果判定を行うモニター部を備え、検証に用いる動
作としての動作条件を指定し、上記シミュレーションモ
デルに対するデータ値を各テストの始めに初期値として
設定しテストの途中でバスプロトコルの矛盾エラーがな
いことを期待値として動作の正当性を確認するものであ
る。
Furthermore, a bus to which an agent for driving a request and a response is connected, a simulation model including a bus monitor connected to the bus for checking a bus protocol, a test generation unit for generating test data, A monitor unit that resets and sets the simulation model, controls clock supply and stops, and compares expected values after completion of simulation for each test and determines test results in accordance with the instructions included in the performed test data. Specifies the operating conditions as, those inconsistencies errors middle bus protocol test data values for the simulation model is set as an initial value at the beginning of each test to verify the validity of the operation as an expected value that there are no It is.

【0044】また、上記バスモニタは各バスのバストラ
ンザクションをチェックしそのバスプロトコルについて
バス調停結果とリクエスト発行エージェントの合致、リ
クエストコードとアドレス範囲の矛盾、リクエストコー
ドとデータ転送長の矛盾、未定義コード値でない、応答
が分離不可能なトランザクションの分離応答、これらの
プロトコル違反の内のいずれかの有無をチェックし、違
反検出時にモニター部に通知後、モニター部によりシミ
ュレーションを中断させるものである。
The bus monitor checks the bus transaction of each bus and, for the bus protocol, matches the bus arbitration result with the request issuing agent, inconsistency in the request code and address range, inconsistency in the request code and data transfer length, undefined It checks whether there is any of these protocol violations, which are not code values, and for which a response whose response cannot be separated, and notifies the monitor unit when a violation is detected, and then interrupts the simulation by the monitor unit.

【0045】さらに、上記バスモニタは各バスのバスト
ランザクションをチェックしそれらのバストランザクシ
ョンについて既に発行済のN個から1個前までのバスト
ランザクションとの間の、シェークハンド信号間の矛
盾、パイプラインステージの追い越し、応答信号のタイ
ムアウト、分離型バストランザクションの応答トランザ
クション抜け、分離応答トランザクションによる元のト
ランザクションの追い越し、各パイプラインステージの
溢れ、これらのプロトコル違反の内のいずれかの有無を
チェックし、違反検出時にモニター部に通知後、モニタ
ー部によりシミュレーションを中断させるものである。
Further, the bus monitor checks the bus transactions of each bus and inconsistencies between the shake hand signals and the pipeline between N bus transactions and N bus bus transactions which have already been issued for those bus transactions. Check for any of the following: stage overtaking, response signal timeout, detached bus transaction response transaction omission, detached response transaction overtaking original transaction, overflow of each pipeline stage, protocol violation, The simulation is interrupted by the monitor unit after notifying the monitor unit when a violation is detected.

【0046】また、上記バスモニタは各バスの信号につ
いて複数のエージェントが同時に異なる値を上記バスに
対して駆動したとき上記シミュレーションモデル上の信
号値より不定値又は信号強度の異常をチェックし、異常
検出時にモニター部に通知後、モニター部によりシミュ
レーションを中断させるものである。
When a plurality of agents simultaneously drive different values for the signals of each bus with respect to the buses, the bus monitor checks the signal values on the simulation model for undefined values or abnormal signal strengths. After notification to the monitor unit at the time of detection, the simulation is interrupted by the monitor unit.

【0047】さらにまた、上記バスモニタは各バスの信
号についてパリティーやECCチェックコードなど冗長
コードが付加されているときスイッチ設定をみてコード
誤りの有無をチェックし、コード誤り検出時にモニター
部に通知後、モニター部によりシミュレーションを中断
させるものである。
Further, the bus monitor checks the presence or absence of a code error by checking the switch setting when a redundant code such as a parity or an ECC check code is added to each bus signal, and notifies the monitor unit when a code error is detected. The simulation is interrupted by the monitor unit.

【0048】また、上記シミュレーションモデルに信号
と信号間のサイクル数を計数する計数回路を接続し、ト
ランザクション単位に信号のサイクル数の履歴を記録
し、試験終了時に上記モニター部がその蓄積された履歴
を取り出し期待値と比較するものである。
Also, a counter circuit for counting the number of cycles between signals is connected to the simulation model, and the history of the number of cycles of the signal is recorded in transaction units. Is taken out and compared with the expected value.

【0049】さらに、上記シミュレーションモデルにト
ランザクション数を計数する計数回路を接続し、トラン
ザクション数の履歴を記録し、試験終了時に上記モニタ
ー部がその蓄積された履歴を取り出し期待値と比較する
ものである。
Further, a counting circuit for counting the number of transactions is connected to the simulation model, a history of the number of transactions is recorded, and at the end of the test, the monitor section takes out the accumulated history and compares it with an expected value. .

【0050】また、上記シミュレーションモデルとは別
にエラーチェックを行うシミュレーション専用付加回路
を備え、このシミュレーション専用付加回路は上記エー
ジェントの動作がアイドル状態でない不正状態を識別す
る回路又は上記エージェントの回路内のフラグレジスタ
がセットされた不正状態を検出する回路を有し、テスト
終了時に上記エージェントの動作が不正状態であること
を上記モニター部に通知後、モニター部によりシミュレ
ーションを中断させるものである。
In addition to the above-mentioned simulation model, there is provided an additional circuit dedicated to simulation for performing an error check. The additional circuit dedicated to simulation includes a circuit for identifying an improper state in which the operation of the agent is not idle or a flag in the circuit of the agent. It has a circuit for detecting an improper state in which a register is set, and notifies the monitor section that the operation of the agent is in an improper state at the end of the test, and then interrupts the simulation by the monitor section.

【0051】さらにまた、上記テスト終了時に上記エー
ジェントが不正状態であることを上記モニター部が判定
するものである。
Further, at the end of the test, the monitor unit determines that the agent is in an invalid state.

【0052】 また、検証対象回路と非検証対象回路と
の間を接続するバスから構成されるシミュレーションモ
デル、テストデータを生成する試験生成部、生成された
テストデータに含まれる指示に従って上記シミュレーシ
ョンモデルのリセット及び内部設定とクロック供給制御
及び停止制御とテストごとのシミュレーション完了後の
期待値比較及びテスト結果判定を行うモニター部を備
え、検証に用いる動作としての動作条件を指定し、上記
シミュレーションモデルに対するデータ値を各テストの
始めに初期値として設定しテスト実行中に上記検証対象
回路の故障を示すエラーが発生しないことにより上記検
証対象回路の正当性を確認するものである。
Further, a simulation model composed of a bus connecting between the circuit to be verified and the non-verification circuit, a test generation unit for generating test data, and a simulation model of the simulation model according to instructions included in the generated test data. A monitor unit for reset and internal settings, clock supply control and stop control, and comparison of expected values after completion of simulation for each test and test result determination, specifies operating conditions as operations used for verification, and data for the simulation model. Set the value as the initial value at the beginning of each test and verify the above during the test execution
The validity of the circuit to be verified is confirmed by the absence of an error indicating a circuit failure .

【0053】さらに、上記検証対象回路はエラーの内容
を判別できるフラグを備え、上記モニタ部は上記検証対
象回路のリセット動作中およびリセット動作直後に誤動
作しないように上記フラグのセット状態を無視又はリセ
ットする手段を具備し上記フラグの種別がセットされた
状態であるときはシミュレーションを中断させるもので
ある。
Further, the circuit to be verified has a flag capable of determining the content of the error, and the monitor section ignores or resets the set state of the flag so as not to malfunction during and immediately after the reset operation of the circuit to be verified. The simulation is interrupted when the type of the flag is set.

【0054】また、上記シミュレーションモデルとは別
にエラーチェックを行うシミュレーション専用付加回路
を備え、エラー検出時にモニター部に通知後、モニター
部によりシミュレーションを中断させるものである。
In addition to the above simulation model, there is provided an additional circuit dedicated to simulation for performing an error check, and when an error is detected, the monitor is notified and then the simulation is interrupted by the monitor.

【0055】 さらにまた、MESI(Modifie
d、Excluseived、Shared、Inva
lidated)と称されるキャッシュのステートが4
状態までのライトバック形式のキャッシュであるMES
Iステート又はMSI(Modified、Share
d、Invalidated)と称されるキャッシュの
ステートが3状態までのライトバック形式のキャッシュ
であるMSIステートにより構成されN次キャッシュが
N−1次キャッシュを包含するキャッシュシステム、リ
クエスト及びレスポンス応答を駆動するエージェント、
上記キャッシュシステム及び上記エージェント間を接続
するバス、このバスに接続されバスプロトコルとキャッ
シュのステートの矛盾のチェックを行うバスモニタから
構成されるシミュレーションモデル、テストデータを生
成する試験生成部、生成されたテストデータに含まれる
指示に従って上記シミュレーションモデルのリセット及
び内部設定とクロック供給制御及び停止制御とテストご
とのシミュレーション完了後の期待値比較及びテスト結
果判定を行うモニター部を備え、検証に用いる動作とし
ての動作条件を指定し、上記シミュレーションモデルに
対するデータ値を各テストの始めに初期値として設定し
テストの途中又はテストの終わりに上記バスモニタによ
り検出されるキャッシュのステートとバスプロトコルの
矛盾がないことを期待値として検証対象回路の動作の正
当性を確認するものである。
Furthermore, MESI (Modify)
d, Exclusive, Shared, Inva
The state of the cache, called
MES that is a write-back cache to state
I-state or MSI (Modified, Share)
d, Invalidated)
Write-back cache with up to three states
A cache system in which the Nth cache includes the N-1st cache, the agent driving the request and response,
A bus connecting the cache system and the agent, a simulation model including a bus monitor connected to the bus and checking a conflict between a bus protocol and a cache state, a test generation unit for generating test data, A monitor unit that performs reset and internal setting of the simulation model, clock supply control and stop control, comparison of expected values after completion of simulation for each test, and determination of test results in accordance with instructions included in the test data. Specify the operating conditions, set the data value for the simulation model as an initial value at the beginning of each test, and make sure that there is no conflict between the cache state detected by the bus monitor and the bus protocol during the test or at the end of the test. It confirms the legitimacy of the operation of the verification circuit as waiting value.

【0056】また、上記バスモニタは各バスのバストラ
ンザクションをチェックしそのバスプロトコルについて
バス調停結果とリクエスト発行エージェントの合致、リ
クエストコードとアドレス範囲の矛盾、リクエストコー
ドとデータ転送長の矛盾、未定義コード値でない、応答
が分離不可能なトランザクションの分離応答、これらの
プロトコル違反の内のいずれかの有無をチェックし、違
反検出時にモニター部に通知後、モニター部によりシミ
ュレーションを中断させる論理シミュレーション方法に
おいて、上記バスモニタは各バスのバストランザクショ
ンをチェックしそれらのバストランザクションについて
バスリクエスト元の発行時点のキャッシュ状態値と上記
バスリクエストのリクエストコードの矛盾をチェック
し、矛盾検出時にモニター部に通知後、モニター部によ
りシミュレーションを中断させるものである。
The bus monitor checks the bus transaction of each bus, and for the bus protocol, matches the bus arbitration result with the request issuing agent, inconsistency between the request code and the address range, inconsistency between the request code and the data transfer length, and undefined. A logic simulation method in which a transaction response that is not a code value and whose response cannot be separated, checks for any of these protocol violations, notifies the monitor unit when a violation is detected, and interrupts the simulation by the monitor unit. The bus monitor checks the bus transactions of each bus, checks for a conflict between the cache status value at the time of issuing the bus request source and the request code of the bus request for those bus transactions, and monitors the bus when a conflict is detected. After notification to the coater unit, it is intended to interrupt the simulation by the monitor unit.

【0057】さらに、上記バスモニタは各バスのバスト
ランザクションをチェックしそれらのバストランザクシ
ョンについてバスリクエストの終了時点から一定時間後
のキャッシュ状態値と上記バスリクエストのリクエスト
コードの矛盾をチェックし、矛盾検出時にモニター部に
通知後、モニター部によりシミュレーションを中断させ
るものである。
Further, the bus monitor checks the bus transactions of each bus, and checks for inconsistency between the cache status value of the bus transaction and the request code of the bus request after a predetermined time from the end of the bus request, for the bus transactions. The simulation is interrupted by the monitor unit after the notification to the monitor unit.

【0058】また、上記バスモニタは各バスのバストラ
ンザクションをチェックしそれらのバストランザクショ
ンについてバスリクエストに対応して同一バス上の他の
エージェントのスヌープ結果の応答と上記バスリクエス
トのリクエスト発行元のキャッシュ状態値との矛盾をチ
ェックし、矛盾検出時にモニター部に通知後、モニター
部によりシミュレーションを中断させるものである。
The bus monitor checks the bus transactions of each bus, responds to the bus request for the bus transaction, responds to the snoop result of another agent on the same bus, and caches the request source of the bus request. The inconsistency with the status value is checked, and when the inconsistency is detected, the monitor is notified and the simulation is interrupted by the monitor.

【0059】さらにまた、上記バスモニタは各バスのバ
ストランザクションをチェックしリクエストに対応する
それらのバストランザクションの最終的な動作を規定す
る応答を同一バス上の他のエージェントのスヌープ結果
又はリクエスト発行元のキャッシュ状態値から矛盾をチ
ェックし、矛盾検出時にモニター部に通知後、モニター
部によりシミュレーションを中断させるものである。
Further, the bus monitor checks the bus transaction of each bus and sends a response defining the final operation of the bus transaction corresponding to the request to a snoop result of another agent on the same bus or a request issuing source. The inconsistency is checked from the cache state value of the above, and when the inconsistency is detected, the monitor is notified and then the simulation is interrupted by the monitor.

【0060】また、検証対象回路と非検証対象回路との
間を接続するバスから構成されるシミュレーションモデ
ル、テストデータを生成する試験生成部、生成されたテ
ストデータに含まれる指示に従って上記シミュレーショ
ンモデルのリセット処理と上記検証対象回路の内部設定
とクロック供給制御及び停止制御とテストごとのシミュ
レーション完了後の期待値比較及びテスト結果判定を行
うモニター部を備え、検証に用いる動作としての動作条
件を指定し、上記シミュレーションモデルに対するデー
タ値を各テストの始めに初期値として設定しテストの終
わりにそれらの最終値を期待値と比較し検証対象回路の
動作の正当性を確認する論理シミュレーション方法にお
いて、上記検証対象回路と上記非検証対象回路に対して
各テスト毎にリセット処理を行うものである。
Also, a simulation model composed of a bus connecting between the circuit to be verified and the non-verification target circuit, a test generation unit for generating test data, and a simulation model of the simulation model in accordance with instructions included in the generated test data. A monitor unit that performs reset processing, internal setting of the circuit to be verified, clock supply control and stop control, comparison of expected values after simulation for each test, and determination of test results, and specifies operating conditions as operations used for verification. A logic simulation method for setting a data value for the simulation model as an initial value at the beginning of each test and comparing the final value with an expected value at the end of the test to confirm the validity of the operation of the circuit to be verified. Reset the target circuit and the non-verification target circuit for each test. And performs the door processing.

【0061】さらに、上記検証対象回路のリセット処理
において多数のクロックを要するリセット処理について
は上記検証対象回路に繰り返し処理を行わないスイッチ
を設けるか又は上記検証対象回路の繰り返し回路のカウ
ンタの値を上記モニター部にて強制的に変更し上記リセ
ット処理の一部を上記モニター部にて代行するものであ
る。
Further, for the reset processing requiring a large number of clocks in the reset processing of the circuit to be verified, a switch that does not perform repetitive processing is provided in the circuit to be verified, or the value of the counter of the repetitive circuit of the circuit to be verified is set to the above value. The monitor section is forcibly changed and a part of the reset processing is performed by the monitor section.

【0062】また、上記検証対象回路内にありリセット
処理後クロックを用いた動作シーケンスによって設定さ
れるフラグやレジスタについて、上記モニター部により
任意の値に設定するものである。
The flags and registers in the circuit to be verified, which are set by the operation sequence using the clock after the reset processing, are set to arbitrary values by the monitor unit.

【0063】さらにまた、上記検証対象回路がN次のキ
ャッシュを備えているとき、そのN次キャッシュのデー
タ値とキャッシュのステート値について、上記モニター
部により任意の値にセットすることにより初期状態を設
定するものである。
Further, when the circuit to be verified has an N-order cache, the data value of the N-order cache and the state value of the cache are set to arbitrary values by the monitor unit to initialize the initial state. To set.

【0064】また、上記検証対象回路がN次のキャッシ
ュを備えそのN次キャッシュが上記バスに接続されたプ
ロセッサ内のN−1次キャッシュを包含するとき、その
N−1次キャッシュのデータ値とキャッシュ状態値につ
いて、上記モニター部により任意の値にセットすること
により初期状態を設定するものである。
When the circuit to be verified has an N-th order cache and the N-th order cache includes an N-th order cache in a processor connected to the bus, the data value of the N-th order cache is The initial state is set by setting the cache state value to an arbitrary value by the monitor unit.

【0065】さらに、N次キャッシュを保有する検証対
象回路、キャッシュを保有しない検証対象回路、非検証
対象回路でありN−1次以下のキャッシュを保有するプ
ロセッサ、非検証対象回路である主記憶と主記憶を制御
する主記憶制御装置、上記検証対象回路と上記プロセッ
サと上記主記憶制御装置との間をそれぞれ接続するバス
から構成されるシミュレーションモデル、テストデータ
を生成する試験生成部、生成されたテストデータに含ま
れる指示に従って上記シミュレーションモデルのリセッ
トと上記検証対象回路の内部設定とクロック供給制御及
び停止制御とテストごとのシミュレーション完了後の期
待値比較及びテスト結果判定を行うモニター部を備え、
検証に用いる動作としての動作条件を指定し、上記シミ
ュレーションモデルに対するデータ値を各テストの始め
に初期値として設定しテストの終わりにそれらの最終値
を期待値と比較し上記検証対象回路の動作の正当性を確
認する論理シミュレーション方法において、上記N次キ
ャッシュが上記N−1次キャッシュを包含し、上記プロ
セッサへのデータの書き込み順序がバス上に現れたとき
そのプロトコルの順序が変更されることを許可した条件
において、複数回書き込みアクセスが行われるアドレス
の選択は、1回だけ使用可能な非共有アドレス領域と複
数回使用可能な共有アドレス領域に分離し、非共有アド
レス領域に対してはすでに登録されたアドレスを選択し
ないように決定し、共有アドレス領域に対しては非共有
アドレス領域に該当しないアドレスを選択するよう試験
生成し、試験終了時に非共有アドレス領域についてはキ
ャッシュの最終値を比較し、共有アドレス領域について
はキャッシュを特定した比較は行わないものである。
Further, a circuit to be verified having an N-order cache, a circuit to be verified having no cache, a processor which is a circuit to be verified and has a cache of N-1 or less, a main memory which is a circuit to be verified and A main storage control device for controlling main storage, a simulation model including a bus connecting the circuit to be verified with the processor and the main storage control device, a test generation unit for generating test data, A monitor unit that resets the simulation model, sets internal settings of the circuit to be verified, controls clock supply and stops, and compares expected values after completion of simulation for each test and determines test results according to instructions included in the test data;
Designate the operating conditions as the operation used for verification, set the data value for the above simulation model as an initial value at the beginning of each test, compare those final values with the expected value at the end of the test, and compare the final value with the expected value. In the logic simulation method for checking validity, it is preferable that the N-th cache includes the N-l-th cache and that the protocol order is changed when the data write order to the processor appears on the bus. Under the permitted condition, the selection of the address where the write access is performed a plurality of times is separated into a non-shared address area that can be used only once and a shared address area that can be used multiple times, and the non-shared address area is already registered. Is determined not to be selected, and the shared address area is assigned to the non-shared address area. Tested product to select an address that does not, for non-shared address region at the end of the study compared the final value of the cache, the shared address space is not conducted comparison identifying the cache.

【0066】また、上記非共有アドレス領域と上記共有
アドレス領域について生成するごとにテーブルにアドレ
スを登録し上記非共有アドレス領域と上記共有アドレス
領域の区別をテーブル上で判定するものである。
Each time the non-shared address area and the shared address area are generated, an address is registered in a table, and the distinction between the non-shared address area and the shared address area is determined on the table.

【0067】さらにまた、上記非共有アドレス領域と上
記共有アドレス領域についてアドレスのビットパターン
により共有非共有の区別を行うか又は非共有アドレスの
生成にプロセッサ番号またはプロセッサ番号から連想で
きる値を使用するものである。
Further, the non-shared address area and the shared address area are distinguished between shared and non-shared by the bit pattern of the address, or a processor number or a value associated with the processor number is used to generate the non-shared address. It is.

【0068】また、上記N次キャッシュのインデックス
値を上記N−1次キャッシュのインデックス値に対し排
他的になるようにビットパターンまたは複数ビットによ
って構成された値の範囲によりアドレスを管理するもの
である。
The address is managed by a bit pattern or a range of values constituted by a plurality of bits so that the index value of the N-th cache is exclusive to the index value of the N-first cache. .

【0069】さらに、上記N次キャッシュのインデック
ス値が上記N−1次キャッシュに対し排他的になるよう
にそれぞれN次キャッシュには第1のテーブルを備えて
非共有アドレスを保持しN−1次キャッシュには第2の
テーブルと第3のテーブルを備え第2のテーブルは非共
有アドレスを第3のテーブルは共有アドレスを保持し、
非共有アドレスを使用する場合はそれらのいずれのテー
ブルにも存在しないインデックス値をもつアドレスを選
択し、共有アドレスを使用する場合は第3のテーブル又
は上記いずれのテーブルにも存在しないインデックス値
をもつアドレスを選択し、その選択したアドレスを第3
のテーブルに格納して管理するものである。
Further, each of the N-th caches has a first table and holds a non-shared address so that the index value of the N-th cache is exclusive with respect to the N-first cache. The cache has a second table and a third table, the second table holds a non-shared address, the third table holds a shared address,
If a non-shared address is used, an address having an index value that does not exist in any of those tables is selected, and if a shared address is used, an address having an index value that does not exist in the third table or any of the above tables is selected. Select an address and place the selected address in the third
Are stored and managed in a table.

【0070】また、上記共有アドレスに対する読み出し
専用又は非変更領域のアドレスと書き込みによる変更可
能領域のアドレスをそのアドレスのビットパターンから
一意的に求まるように定め、上記プロセッサにより発行
するリクエストのアドレスを決定後それらのアドレスか
らアクセスする領域が読み出し専用又は非変更領域か又
はそれ以外の変更可能領域かを判定してリクエストの種
別を決定し、試験終了時に読み出し専用又は非変更領域
についてはキャッシュの最終値を比較し変更可能領域に
ついては比較しないものである。
The address of the read-only or non-change area for the shared address and the address of the changeable area by writing are determined so as to be uniquely determined from the bit pattern of the address, and the address of the request issued by the processor is determined. After that, the type of request is determined by determining whether the area accessed from those addresses is a read-only or non-changeable area or another changeable area, and at the end of the test, the final value of the cache for the read-only or non-changeable area Are compared and the changeable area is not compared.

【0071】さらにまた、上記プロセッサのデータの書
き込み順序がバス上に現れたときにそのプロトコルの順
序が変更されることを許可した条件下では、同一プロセ
ッサの異なるコマンド間ではバスのビット幅に整合した
アドレスにおいて同一のアドレスに異なるデータを書き
込まないようにしてキャッシュの最終値の比較をするも
のである。
Further, under the condition that the protocol order is allowed to be changed when the data write order of the processor appears on the bus, different commands of the same processor match the bit width of the bus. At this address, the final value of the cache is compared without writing different data to the same address.

【0072】また、上記プロセッサはデータバスのビッ
ト幅の1/Kのビット幅の単位のメモリ書き込みコマン
ドを有するものである。
Further, the above processor has a memory write command in a unit of a bit width of 1 / K of the bit width of the data bus.

【0073】さらに、上記同一のプロセッサから同一の
キャッシュラインに対するアクセスにおいて上記プロセ
ッサがN−1次キャッシュに対して読み出しまたは書き
込みコマンドでアクセスするとき、アクセスするアドレ
スの選択は1回のみ使用可能なアドレスに限定しすでに
使用済みのアドレスを避けるものである。
Further, when the same processor accesses the same cache line with the read or write command to the (N-1) th cache, the address to be accessed is selected only once. To avoid addresses that have already been used.

【0074】また、上記プロセッサは同一のキャッシュ
ラインアドレスをアクセスするリクエストを発行すると
き、各プロセッサの書き込み対象のアドレス範囲はバス
のビット幅に整合したアドレスとしてバス幅の単位で書
き込みコマンドを有しバス幅の単位で同一のデータを書
き込まないようにしてキャッシュの最終値の比較をする
ものである。
When the processor issues a request to access the same cache line address, the address range to be written by each processor has a write command in the unit of a bus width as an address matching the bit width of the bus. This is to compare the final value of the cache without writing the same data in units of bus width.

【0075】さらにまた、上記各プロセッサの書き込み
対象のアドレス範囲はデータバスのビット幅の1/Kの
ビット幅とするものである。
Furthermore, the address range to be written by each of the processors has a bit width of 1 / K of the bit width of the data bus.

【0076】また、上記プロセッサがN−1次キャッシ
ュまたはN−2次キャッシュにアクセスするリクエスト
を用いて上記検証対象回路が有するN次キャッシュとの
一致性を検証するとき、上記共有アドレスについて個々
のプロセッサ毎にリクエスト実行後のデータ値を管理
し、上記共有アドレスに関与するキャッシュラインアド
レスとそのラインを構成するデータ値の組み合わせを複
数個保持できるテーブルを使用し、試験生成時にライト
リクエストのトランザクションを生成する度にデータ値
を更新してテストし、テスト終了時に上記主記憶と全て
のキャッシュの状態値をみて有効であればデータ値を比
較するものである。
Further, when the processor verifies the consistency with the N-level cache of the circuit to be verified by using a request for accessing the N-1 level cache or the N-second level cache, each of the shared addresses is A data value after executing a request is managed for each processor, and a table that can hold a plurality of combinations of cache line addresses related to the shared address and data values constituting the line is used. Each time the data value is generated, the data value is updated and a test is performed. At the end of the test, the status values of the main memory and all the caches are checked, and if valid, the data values are compared.

【0077】さらに、上記非検証対象回路から発行され
たバストランザクションに対し上記検証対象回路が受け
付けを拒絶しリクエストの再発行を促すリトライ要求を
するとき、上記非検証対象回路はリトライ要求されたト
ランザクションをすでにキューイングされたトランザク
ションの最後に再キューイングするものである。
Further, when the verification target circuit rejects the bus transaction issued from the non-verification target circuit and makes a retry request for prompting the reissue of the request, the non-verification target circuit performs the retry requested transaction. Is requeued at the end of a transaction already queued.

【0078】また、上記非検証対象回路が発行したリク
エストコードの内容又は次に発行するトランザクション
の発行前に逐次化指定を検出したときに上記検証対象回
路の応答がリトライ要求でないことを確認してから次の
トランザクションのリクエストを発行するものである。
Also, when detecting the contents of the request code issued by the non-verification target circuit or the serialization designation before issuing the next transaction to be issued, it is confirmed that the response of the verification target circuit is not a retry request. Issues a request for the next transaction.

【0079】さらにまた、N次キャッシュを保有する検
証対象回路、キャッシュを保有しない検証対象回路、非
検証対象回路でありN−1次以下のキャッシュを保有す
るプロセッサ、非検証対象回路である主記憶と主記憶を
制御する主記憶制御装置、上記検証対象回路と上記プロ
セッサと上記主記憶制御装置との間をそれぞれ接続する
バス、このバスに接続されバスプロトコルのチェックを
行うバスモニタから構成され、上記非検証対象回路又は
上記バスモニタにバスプロトコルの遅延動作の設定と遅
延動作回路を有するシミュレーションモデル、上記バス
のバスプロトコルの動作遅延を含むテストデータを生成
する試験生成部、生成されたテストデータに含まれる指
示に従って上記シミュレーションモデルのリセットと上
記検証対象回路の内部設定とクロック供給制御及び停止
制御とテストごとのシミュレーション完了後の期待値比
較及びテスト結果判定を行うモニター部を備え、検証に
用いる動作としての動作条件を指定し、上記シミュレー
ションモデルに対するデータ値を各テストの始めに初期
値として設定しテストの終わりにそれらの最終値を期待
値と比較し上記検証対象回路の動作の正当性を確認する
ものである。
Further, a circuit to be verified having an N-order cache, a circuit to be verified having no cache, a processor which is a circuit to be verified and has a cache of N-1 or less, and a main memory which is a circuit not to be verified. And a main memory control device for controlling the main memory, a bus for connecting the circuit to be verified with the processor and the main memory control device, and a bus monitor connected to this bus for checking a bus protocol, A simulation model having a delay operation setting and a delay operation circuit of a bus protocol in the non-verification target circuit or the bus monitor, a test generation unit that generates test data including an operation delay of the bus protocol of the bus, and the generated test data Resets the simulation model according to the instructions contained in It has a monitor unit that performs unit setting, clock supply control, stop control, comparison of expected values after completion of simulation for each test, and judgment of test results, specifies operating conditions as operations used for verification, and sets data values for the simulation model. At the beginning of each test, it is set as an initial value, and at the end of the test, the final value is compared with an expected value to confirm the validity of the operation of the circuit to be verified.

【0080】また、上記検証対象回路が上記非検証対象
である上記プロセッサからリクエストを受けて動作しか
つ上記検証対象回路が以前受信したリクエストに対応し
てその内部状態が決定され新たなリクエストの受信と内
部状態の組み合わせによるさらに新たな内部状態を持つ
とき、上記プロセッサのN−1次キャッシュの状態とN
−1次キャッシュへのアクセス・コマンドによりリクエ
ストが上記プロセッサから発生するときは上記プロセッ
サから上記バスへのリクエストを間接的に遅らせるもの
である。
The circuit to be verified operates in response to a request from the processor to be verified and the internal state of the circuit to be verified is determined in response to a previously received request, and a new request is received. And a new internal state by a combination of the internal state and the internal state,
When a request is generated from the processor by an access command to the primary cache, the request from the processor to the bus is indirectly delayed.

【0081】さらに、上記プロセッサのコマンド遅延条
件としてコマンドとコマンドの間に遅延を指示するコマ
ンドを挿入するか又はバスの信号値や信号値の変化が指
定した条件になるまで上記プロセッサからN−1次キャ
ッシュへのアクセスを遅らせるものである。
Further, as a command delay condition of the processor, a command designating a delay between commands is inserted, or until the signal value of the bus or a change in the signal value reaches the designated condition, the processor may execute N-1. This delays access to the next cache.

【0082】また、上記プロセッサのN−1次キャッシ
ュと上記バスとの間にバス・コマンド・キューを備え、
上記アクセス・コマンドでは遅延を指定せずに上記バス
・コマンド・キューに遅延対象及び遅延条件及び遅延サ
イクル数を指定しバス上でリクエスト発行時に遅延させ
るものである。
A bus command queue is provided between the N-1 level cache of the processor and the bus,
In the access command, a delay target, a delay condition, and the number of delay cycles are designated in the bus command queue without designating a delay, and the request is delayed when the request is issued on the bus.

【0083】さらにまた、上記検証対象回路が上記バス
に対してリクエストを発行後上記検証対象回路以外のエ
ージェントのバッファへのキューイング動作とその溢れ
状態により上記エージェントからの遅れた応答を受け又
上記バッファの状態によりリクエストを抑止する信号を
受けてリクエストを発行するとき、上記エージェントの
バッファサイズを実際に使用するバッファサイズより小
さく設定し応答タイミングやリクエスト抑止タイミング
を変化させるものである。
Further, after the circuit to be verified issues a request to the bus, the circuit other than the circuit to be verified receives a delayed response from the agent due to the queuing operation of the agents other than the circuit to be verified into the buffer and the overflow state. When a request is issued in response to a signal that suppresses a request depending on the state of the buffer, the buffer size of the agent is set smaller than the buffer size actually used, and the response timing and the request suppression timing are changed.

【0084】また、上記バッファサイズを設定する機能
が上記シミュレーションモデル上に備えられているとき
はその機能を使用し備えられていないときはシミュレー
ション時に設定するものである。
When the function for setting the buffer size is provided on the simulation model, the function is used. When the function is not provided, the function is set at the time of simulation.

【0085】さらに、上記検証対象回路が上記シミュレ
ーションモデル以外の第1のエージェントからのリクエ
ストに対しリクエスト発行元又は第2のエージェントの
応答を受けた上記検証対象回路がそれぞれ応答を返すと
き、上記リクエスト発行元又は上記第2のエージェント
に応答サイクルの遅れを指示する条件をバスプロトコル
で定義されるバスパイプラインのキューが予め設定され
た値以上又は予め設定された値以下のときとするもので
ある。
Further, when the circuit to be verified returns a response to a request from the first agent other than the simulation model from the first agent or the second circuit, the circuit to be verified returns a response to the request. The condition for instructing the issuer or the second agent to delay the response cycle is when the queue of the bus pipeline defined by the bus protocol is equal to or greater than a preset value or equal to or less than a preset value. .

【0086】また、上記検証対象回路が上記シミュレー
ションモデル以外の第1のエージェントからのリクエス
トに対しリクエスト発行元または第2のエージェントの
応答を受けて上記検証対象回路が応答を返すとき、上記
リクエスト発行元又は上記第2のエージェントに応答サ
イクルの遅れを指示するとき、上記バス上のテスト開始
から数えて予め設定された個数目のトランザクションに
ついて遅延動作を適用するものである。
When the circuit to be verified returns a response from a request issuing source or a second agent to a request from the first agent other than the simulation model, and the circuit to be verified returns a response, When instructing the original or the second agent to delay the response cycle, the delay operation is applied to a predetermined number of transactions counted from the start of the test on the bus.

【0087】さらにまた、上記検証対象回路が上記シミ
ュレーションモデル以外の第1のエージェントからのリ
クエストに対しリクエスト発行元または第2のエージェ
ントの応答を受けて上記検証対象回路が応答を返すと
き、上記リクエスト発行元又は上記第2のエージェント
に応答サイクルの遅れを指示するとき、上記バス上のト
ランザクションのアドレスが一致したとき遅延動作を適
用するものである。
Further, when the circuit to be verified receives a response from the request issuing source or the second agent in response to a request from the first agent other than the simulation model, and the circuit to be verified returns a response, When instructing the issuer or the second agent to delay the response cycle, the delay operation is applied when the addresses of the transactions on the bus match.

【0088】また、上記検証対象回路がバス上の第1の
信号を処理中に上記検証対象回路以外のエージェントが
上記バス上の第2の信号に対して予め設定されたサイク
ル数待ちその信号のプロトコルを満足する最初のサイク
ルでその信号を駆動するものである。
While the circuit to be verified is processing the first signal on the bus, an agent other than the circuit to be verified waits for a predetermined number of cycles for the second signal on the bus. Drive that signal in the first cycle that satisfies the protocol.

【0089】さらに、複数のバスに接続された上記検証
対象回路が第1のバス上の第1の信号を処理中に上記検
証対象回路以外のエージェントが第2のバス上の第2の
信号に対して予め設定されたサイクル数待ちその信号の
プロトコルを満足する最初のサイクルでその信号を駆動
するものである。
Further, while the circuit to be verified connected to the plurality of buses is processing the first signal on the first bus, an agent other than the circuit to be verified changes the second signal on the second bus. On the other hand, the signal is driven in the first cycle which satisfies the protocol of the signal after waiting a preset number of cycles.

【0090】また、上記検証対象回路が上記シミュレー
ションモデル上の他のエージェントの信号を受信して動
作するとき、上記エージェントの信号値のビット数で表
現できる全ての値の個々についてまたはグループ化した
値の個々についてそれぞれ個別に上記エージェントの信
号の駆動を遅らせるサイクル数を指定するものである。
When the circuit to be verified operates by receiving a signal of another agent on the simulation model, all the values that can be expressed by the number of bits of the signal value of the agent are individually or grouped. , The number of cycles for delaying the driving of the signal of the agent is individually designated.

【0091】さらにまた、上記検証対象回路が上記シミ
ュレーションモデル上の他のエージェントのリクエスト
を受信して動作するとき、上記エージェントの発行する
リクエストのアドレスが予め設定されたアドレスと一致
したとき上記エージェントは予め設定されたサイクル数
待って上記リクエストを発行するものである。
Further, when the circuit to be verified operates upon receiving a request from another agent on the simulation model, when the address of the request issued by the agent matches a preset address, the agent The request is issued after a preset number of cycles.

【0092】また、上記検証対象回路以外の上記エージ
ェントの動作条件及び上記バス上の信号の遅延条件は第
1の条件を適用後第2の条件を適用するように段階的に
設定可能としたものである。
The operating conditions of the agent other than the circuit to be verified and the signal delay conditions on the bus can be set stepwise so that the first condition is applied and then the second condition is applied. It is.

【0093】さらに、上記バスモニタはトランザクショ
ン単位に信号の履歴を記録し、試験終了または試験途中
でその履歴を表示するものである。
Further, the bus monitor records the history of signals in transaction units and displays the history at the end of the test or during the test.

【0094】また、上記非検証対象回路から上記バス上
にエラー信号を注入又は上記バス上のエラー報告信号を
駆動して上記検証対象回路又は上記シミュレーションモ
デル上の他のエージェントにリトライ動作を行わせるも
のである。
Further, an error signal is injected from the non-verification target circuit onto the bus or an error report signal on the bus is driven to cause the verification target circuit or another agent on the simulation model to perform a retry operation. Things.

【0095】 さらにまた、MESI(Modifie
d、Excluseived、Shared、Inva
lidated)と称されるキャッシュのステートが4
状態までのライトバック形式のキャッシュであるMES
Iステート又はMSI(Modified、Share
d、Invalidated)と称されるキャッシュの
ステートが3状態までのライトバック形式のキャッシュ
であるMSIステートにより構成されるN次キャッシュ
を保有する検証対象回路、キャッシュを保有しない検証
対象回路、非検証対象回路でありN−1次以下のキャッ
シュを保有するプロセッサ、非検証対象回路である主記
憶と主記憶を制御する主記憶制御装置、上記検証対象回
路と上記プロセッサと上記主記憶制御装置との間をそれ
ぞれ接続し外部から検証対象回路の制御と結果の過程の
調査を行うバスから構成されるシミュレーションモデ
ル、テストデータを生成する試験生成部、生成されたテ
ストデータに含まれる指示に従って上記シミュレーショ
ンモデルのリセットと上記検証対象回路の内部設定とク
ロック供給制御及び停止制御とテストごとのシミュレー
ション完了後の期待値比較及びテスト結果判定を行うモ
ニター部を備え、検証に用いる動作としての動作条件を
乱数と人手により指定した条件の組み合わせで決定し、
上記シミュレーションモデルに対するデータ値を各テス
トの始めに初期値として設定しテストの終わりにそれら
の最終値を期待値と比較し上記検証対象回路の動作の正
当性を確認するものである。
Further, MESI (Modify)
d, Exclusive, Shared, Inva
The state of the cache, called
MES that is a write-back cache to state
I-state or MSI (Modified, Share)
d, Invalidated)
Write-back cache with up to three states
, A circuit to be verified having an N-order cache, a circuit to be verified having no cache, a processor to be a non-verified circuit, a processor having a cache of N-1 or less, and a circuit not to be verified. A main memory and a main memory controller that controls the main memory, from a bus that connects the circuit to be verified with the processor and the main memory controller and controls the circuit to be verified from outside and investigates the result process A simulation model to be configured, a test generation unit for generating test data, resetting of the simulation model according to an instruction included in the generated test data, internal setting of the circuit to be verified, clock supply control and stop control, and simulation for each test Equipped with a monitor that compares expected values after completion and judges test results. Determined by a combination of specified conditions by a random number and manually operating conditions as operation using the,
A data value for the simulation model is set as an initial value at the beginning of each test, and at the end of the test, the final value is compared with an expected value to confirm the validity of the operation of the circuit to be verified.

【0096】また、上記N次キャッシュが上記N−1次
キャッシュを包含し、上記検証対象回路が上記シミュレ
ーションモデル上の他のエージェントの信号を受信して
動作するとき、上記検証対象回路の動作を遅延させるサ
イクル数を予め設定された分布テーブルに基づく乱数に
従って決定するものである。
Further, when the N-order cache includes the N-first-order cache, and the circuit to be verified operates by receiving a signal of another agent on the simulation model, the operation of the circuit to be verified is performed. The number of cycles to be delayed is determined according to random numbers based on a preset distribution table.

【0097】さらに、上記分布テーブルを複数備え、個
々の遅延要素に対して分布テーブルを指定するものであ
る。
Further, a plurality of the distribution tables are provided, and a distribution table is designated for each delay element.

【0098】また、上記プロセッサがN−1次キャッシ
ュに対して読み出し及び書き込みコマンドでアクセスす
ることにより上記検証対象回路の検証を行うとき、上記
N次キャッシュの初期値を乱数で決めその値に対して取
り得るN−1次キャッシュの初期状態を乱数で選択する
ものである。
When the processor performs verification of the circuit to be verified by accessing the N-1 primary cache with read and write commands, an initial value of the N cache is determined by a random number, and In this case, the initial state of the N-1 level cache that can be taken is selected by a random number.

【0099】さらにまた、上記プロセッサから上記バス
に対してリクエストを発行するとき、そのリクエストの
種類を乱数により選択し、そのリクエスト値は予め設定
された分布テーブルに基づく乱数に従って決定するもの
である。
Further, when a request is issued from the processor to the bus, the type of the request is selected by a random number, and the request value is determined according to a random number based on a preset distribution table.

【0100】また、上記プロセッサが上記バス上のリク
エストに対して上記プロセッサが包含するキャッシュの
スヌープ結果を上記バス上に応答するとき、その応答値
であるスヌープ値は予め設定された分布テーブルに基づ
く乱数に従って決定するものである。
When the processor responds to the bus with a snoop result of the cache included in the processor in response to the request on the bus, the snoop value as the response value is based on a preset distribution table. It is determined according to a random number.

【0101】さらに、上記非検証対象回路が上記バス上
のリクエストに対して受け付けの可否又はデータ転送の
有無又はデータ転送経路又はエラーの有無の指示を行う
レスポンス応答をするとき、その応答値であるレスポン
ス応答値は予め設定された分布テーブルに基づく乱数に
従って決定するものである。
Further, when the non-verification target circuit responds to the request on the bus, the response value indicates whether the request can be accepted, whether or not there is a data transfer, or whether there is a data transfer path or an error. Response The response value is determined according to random numbers based on a preset distribution table.

【0102】また、上記プロセッサ内から発行されたリ
クエストの対象アドレスにおけるキャッシュのインデッ
クスの決定及びそのキャッシュの最終状態をチェックす
るウェイの決定に乱数を用いるとき、割り付け可能な上
記インデックス及びウェイに識別記号を付し既に割り付
け済みの識別記号を除いた識別記号から乱数に従って決
定するものである。
When a random number is used to determine the index of the cache at the target address of the request issued from within the processor and to determine the way to check the final state of the cache, an identification symbol is assigned to the index and the way that can be allocated. Are determined according to random numbers from the identification symbols excluding the already assigned identification symbols.

【0103】さらにまた、上記検証対象回路が上記バス
に対して上記シミュレーションモデル上の他のエージェ
ントの信号を受信して動作するとき、上記非検証対象回
路が決定するコマンド又はアドレス又は応答値又は遅延
サイクル数に乱数から一意的に求まる値を採用し、その
乱数は上記モニタ部にて管理又は共通に管理するもので
ある。
Further, when the circuit to be verified operates upon receiving a signal of another agent on the simulation model with respect to the bus, a command or address determined by the circuit to be verified or a response value or delay is determined. A value uniquely determined from the random number is adopted as the cycle number, and the random number is managed or commonly managed by the monitor unit.

【0104】また、上記乱数の生成には上記モニタ部に
て管理する乱数生成ルーチンを使用するものである。
The random number is generated by using a random number generation routine managed by the monitor unit.

【0105】さらに、上記乱数のシードをテスト結果の
ログデータとして残すものである。
Further, the random number seed is left as log data of the test result.

【0106】また、シミュレーション実行中に生成した
乱数と乱数を使用したルーチン識別子をそれぞれ保存す
るものである。
Further, a random number generated during the execution of the simulation and a routine identifier using the random number are stored.

【0107】さらにまた、上記乱数は予め生成されファ
イルにデータとして格納されているものである。
Further, the random numbers are generated in advance and stored as data in a file.

【0108】また、N次キャッシュを保有する検証対象
回路、キャッシュを保有しない検証対象回路、非検証対
象回路でありN−1次以下のキャッシュを保有するプロ
セッサ、非検証対象回路である主記憶と主記憶を制御す
る主記憶制御装置、上記検証対象回路と上記プロセッサ
と上記主記憶制御装置との間をそれぞれ接続するバスか
ら構成されるシミュレーションモデル、テストデータを
生成する試験生成部、生成されたテストデータに含まれ
る指示に従って上記シミュレーションモデルのリセット
と上記検証対象回路の内部設定とクロック供給制御及び
停止制御とテストごとのシミュレーション完了後の期待
値比較及びテスト結果判定を行うモニター部を備え、検
証に用いる動作としての動作条件を指定し、クロック供
給前のキャッシュのエントリの使用状況を制御し、クロ
ック供給後のキャッシュのエントリの使用状況とエント
リを決定するアドレスとコマンドの発生を制御し、一様
乱数発生で決定するアドレス又はコマンドからは確率的
に発生しにくい事象を高確率で発生するようデータ値を
生成し、上記シミュレーションモデルに対するデータ値
を各テストの始めに初期値として設定しテストの終わり
にそれらの最終値を期待値と比較し上記検証対象回路の
動作の正当性を確認するものである。
A circuit to be verified having an N-order cache, a circuit to be verified having no cache, a processor which is a circuit to be verified and has a cache of N-1 or less, and a main memory which is a circuit not to be verified include: A main storage control device for controlling main storage, a simulation model including a bus connecting the circuit to be verified with the processor and the main storage control device, a test generation unit for generating test data, A monitor unit for resetting the simulation model, setting internal settings of the circuit to be verified, controlling clock supply and stopping, and comparing expected values after completion of simulation for each test and determining test results in accordance with instructions included in the test data; Specify the operating conditions for the operation used for Controls the usage status of entries, controls the usage status of cache entries after clock supply, and the generation of addresses and commands that determine entries, and is unlikely to occur stochastically from addresses or commands determined by uniform random number generation A data value is generated so that an event occurs with a high probability, and a data value for the simulation model is set as an initial value at the beginning of each test, and at the end of the test, the final value is compared with an expected value. This is to confirm the validity of the operation.

【0109】さらに、上記N次キャッシュが上記N−1
次キャッシュを包含し、上記プロセッサがN−1次キャ
ッシュに対して読み出し及び書き込みコマンドによりア
クセスし、上記プロセッサ又は上記検証対象回路に接続
された他のエージェントがリクエストとして使用するア
ドレスの内キャッシュのインデックスを決定するアドレ
スのビットパターンを限定しその限定された範囲におい
て乱数によりアドレスを選択するものである。
Further, when the N-th cache is the N-1
An index of the cache among addresses used as requests by the processor or another agent connected to the circuit to be verified, wherein the processor accesses the (N-1) th cache by read and write commands, and Is determined, and the address is selected by a random number within the limited range.

【0110】また、上記他のエージェントがリクエスト
として使用するアドレスの内キャッシュのインデックス
に使用されるビットより上位のビットから構成されるア
ドレスビットパターンの種類を制限しその制限された中
から乱数でアドレスを選択するものである。
Further, of the addresses used as requests by the other agents, the type of address bit pattern composed of bits higher than the bit used for the index of the cache is limited, and the address is determined by a random number from the restricted ones. Is to select.

【0111】さらにまた、上記検証対象回路がN次のセ
ットアソシアティブ方式のキャッシュを備えそのキャッ
シュのウェイの使用可能な個数又はウェイごとに使用の
可否を選択して設定するものである。
Further, the above-mentioned circuit to be verified has an N-order set associative type cache, and the number of usable ways of the cache or the availability of each way is selected and set.

【0112】また、上記検証対象回路が上記プロセッサ
から強制的にキャッシュの内容を無効化又は主記憶へ書
き戻すコマンドが発行され上記検証対象回路がその内部
のカウンタを順次加算又は減算しながらその無効化また
は書き戻し動作を処理するとき、上記カウンタの値が予
め設定された値になったらそのカウンタの値を強制的に
変更することによりシミュレーションを省略しその省略
されたアドレスの使用を制限するものである。
Further, a command is issued by the processor from the processor to forcibly invalidate the contents of the cache or write back to the main memory, and the circuit to be verified adds or subtracts the internal counter sequentially to invalidate the contents of the cache. When processing the conversion or write-back operation, when the value of the counter reaches a preset value, the value of the counter is forcibly changed to omit the simulation and restrict the use of the omitted address. It is.

【0113】さらに、上記カウンタの値を強制的に変更
することにより省略されたアドレスに関する無効化又は
書き戻しを上記モニター部又は上記シミュレーションモ
デルがクロックを進めずに代行するものである。
Further, the monitor unit or the simulation model substitutes invalidation or write-back for the omitted address by forcibly changing the value of the counter without advancing the clock.

【0114】[0114]

【発明の実施の形態】BEST MODE FOR CARRYING OUT THE INVENTION

実施の形態1.図1にこの発明の実施の形態1である論
理シミュレーション方法を実施するためのシミュレータ
(図示せず)の内部のシステム構成図を示す。この構成
図における各構成要素は全てソフトウェアにより実現し
ているもので、ソフトウェアによるシミュレーションモ
デルを採用している。1は検証対象であるブリッジ回路
のモデルで、N次キャッシュ1cを含むブリッジ回路1a、
N次キャッシュ1cとその制御回路が分離されたブリッジ
回路1b、キャッシュを含まないブリッジ回路1dから構成
されている。2は検証対象でないN−1次以下のキャッ
シュを含むプロセッサのモデル、3は検証対象回路でな
い主記憶のモデル、4は主記憶制御装置のモデル、5は
検証対象回路でない入出力プロセッサ(以下I/Oプロ
セッサと称する)のモデル、6はテストデータを生成す
る試験生成部、7は生成されたテストデータに含まれる
指示に従ってリセットと回路の内部設定とクロック供給
制御と停止制御とテスト毎のシミュレーション完了後の
期待値比較とテスト結果判定を行うモニター部、8は上
記検証対象回路1と上記プロセッサ2と上記主記憶制御
装置4上記I/Oプロセッサ5との間をそれぞれ接続し
外部から上記検証対象回路1の制御と結果の過程の調査
を行うバス、9はバスプロトコルのチェックを行いかつ
統計情報やトランザクション毎の事象やトランザクショ
ン間の事象を計数検証対象しかつバス8上の信号に対し
てエラー値を駆動する機能をもつバスモニタ、10は検証
対象回路の内部信号を観測し実際の製品には存在せずに
シミュレーション時にのみ存在し、シミュレーションの
ための回路動作を行うシミュレーション専用付加回路で
ある。
Embodiment 1 FIG. FIG. 1 shows a system configuration diagram of a simulator (not shown) for implementing a logic simulation method according to the first embodiment of the present invention. All the components in this block diagram are realized by software, and employ a software simulation model. Reference numeral 1 denotes a bridge circuit model to be verified, which includes a bridge circuit 1a including an N-level cache 1c,
It comprises an N-level cache 1c, a bridge circuit 1b in which its control circuit is separated, and a bridge circuit 1d not including a cache. Reference numeral 2 denotes a processor model including a cache of order N-1 or lower which is not a verification target, reference numeral 3 denotes a main memory model which is not a verification target circuit, reference numeral 4 denotes a main storage control device model, and reference numeral 5 denotes an input / output processor which is not a verification target circuit. , A test generation unit for generating test data, and a reset, an internal setting of a circuit, a clock supply control, a stop control, and a simulation for each test according to an instruction included in the generated test data. A monitor unit 8 for comparing the expected value after completion and judging the test result connects the circuit under test 1, the processor 2, the main memory control device 4, and the I / O processor 5, and performs the verification from outside. A bus 9 for controlling the target circuit 1 and examining the process of the result. A bus monitor which counts and verifies events and events between transactions and has a function of driving an error value to a signal on the bus 8. A bus monitor 10 observes an internal signal of a circuit to be verified and does not exist in an actual product. Is an additional circuit dedicated to simulation that exists only at the time of simulation and performs circuit operations for simulation.

【0115】本実施の形態は、多階層(N次)のキャッ
シュメモリを実現した場合であり、主記憶3を含めると
「(N+1)階層の記憶」として説明している。また、
この例におけるN次キャッシュはMESI(Modified、E
xcluseived、Shared、Invalidated)と呼ばれているキャ
ッシュのステートが4状態までのライトバック形式のキ
ャッシュを前提にしている。また多階層キャッシュの実
現方法としてm次キャッシュとk次キャッシュ(kは1
〜m−1の範囲)は以下の表1の関係にあること、すな
わち「包含関係がある」ことを前提にし、リプレースの
ためm次キャッシュを無効化するときは強制的にk次キ
ャッシュの無効化を行うものとする。また、MESIス
テートとは別にMSI(Modified、Shared、Invalidate
d)と呼ばれているキャッシュのステートが3状態までの
キャッシュもあり、MESIステートとはE状態が存在
しないことのみ異なるもので、使用条件により使い分け
られている。
This embodiment is a case where a multi-level (N-th) cache memory is realized, and is described as “(N + 1) -level storage” when the main memory 3 is included. Also,
The N-level cache in this example is MESI (Modified, E
It is premised on a cache of a write-back type having up to four cache states called xcluseived, Shared, and Invalidated. As a method of realizing a multi-level cache, an m-th cache and a k-th cache (k is 1
Is assumed to be in the relationship shown in Table 1 below, that is, "there is an inclusive relationship". When invalidating the m-th cache for replacement, the k-th cache is invalidated forcibly. Shall be performed. In addition to the MESI state, MSI (Modified, Shared, Invalidate)
There is also a cache called d) with up to three cache states, which differs from the MESI state only in that there is no E state, and is selectively used depending on use conditions.

【0116】[0116]

【表1】 [Table 1]

【0117】図2と図3はMESIステートにおけるキ
ャッシュシステムを説明するためのもので、図2はキャ
ッシュシステムにおけるメモリの階層構造を示してお
り、主記憶3、ブリッジ1のメモリ11、プロセッサ2の
メモリ12、13にそれぞれデータが格納されている様子を
黒色にて表示してある。図3(a)は、各階層ごとの同
一アドレスを示すキャッシュラインについて、2つのキ
ャッシュラインAとキャッシュラインBとに格納されて
いるデータを各階層別に示してある。図3(b)はキャ
ッシュラインAとキャッシュラインBとに格納されてい
るデータ間の包含関係を図示してある。
FIGS. 2 and 3 are diagrams for explaining the cache system in the MESI state. FIG. 2 shows the hierarchical structure of the memory in the cache system. The main memory 3, the memory 11 of the bridge 1, and the processor 2 The manner in which the data is stored in the memories 12 and 13 is displayed in black. FIG. 3A shows data stored in two cache lines A and B for each cache line indicating the same address for each hierarchy. FIG. 3B illustrates the inclusion relationship between data stored in the cache lines A and B.

【0118】図2と図3において、記憶アドレスである
キャッシュラインAに関しては主記憶、N次キャッシュ
11aを含むブリッジ1a、N次キャッシュ11bを含むブリッ
ジ1bがそれぞれデータAでそれぞれ正しいデータを持っ
ている。またプロセッサ2内のN−1次記憶は、11aと
包含関係のN−1次キャッシ12aは有効であるが12aより
下位の13aはデータが存在せず無効であり、11bに包含さ
れる12bと13bはそれぞれデータAで有効である例を示し
ている。これら3、11a、12a、11b、12b、13bの6個はと
もにS状態を示す。一方、キャッシュラインBに関して
は、プロセッサ2内のN−2次キャッシュ13aがM状態
であるとき、それを包含する上位キャッシュ12a、11aに
M状態として保持され他のキャッシュ及び主記憶には一
切存在しない。また図に示すように13aのみがデータB
でダーティー状態の時は12aおよび11a上のデータCは
「古く」意味を持たないことになる。
In FIG. 2 and FIG. 3, the cache line A, which is the storage address, is the main memory and the N-th cache.
The bridge 1a including the 11a and the bridge 1b including the N-th cache 11b have correct data A respectively. The N-1 primary storage in the processor 2 is such that the N-1 primary cache 12a, which is inclusive with 11a, is valid, but 13a, which is lower than 12a, has no data and is invalid. 13b shows an example in which each data A is valid. Six of these 3, 11a, 12a, 11b, 12b, and 13b all show the S state. On the other hand, with respect to the cache line B, when the N-secondary cache 13a in the processor 2 is in the M state, it is held as the M state in the upper caches 12a and 11a including the N-secondary cache 13a and does not exist in any other caches and main memories. do not do. Also, as shown in FIG.
In the dirty state, the data C on 12a and 11a is "old" and has no meaning.

【0119】図1に基づき、試験生成、回路の初期化、
動作中の試験監視、シミュレーションの終了の順に実施
の形態1の動作を説明する。まず、試験生成は図1に示
したように、バス動作制御、タイミング制御、割付制
御、期待値生成・確定制御、タイムアウト制御、乱数制
御、生成制御などの機能がある。バス動作制御はバス上
のリクエスト、スヌープ応答、レスポンス応答、それら
の応答やリクエストをどのエージェントが駆動するかと
いった条件を決定する。ここで、上記エージェントと
は、バスの「送受信局」の局ともいうべきもので、バス
に接続され、リクエストを出したりリクエストに対して
応答する装置・モジュール・回路等を指す。具体的に図
1のシミュレーションモデルにおいてはブリッジ1、プ
ロセッサ2、主記憶3、主記憶制御装置4、I/Oプロ
セッサ5、バスモニタ9が該当する。
Based on FIG. 1, test generation, circuit initialization,
The operation of the first embodiment will be described in the order of test monitoring during operation and termination of simulation. First, as shown in FIG. 1, test generation has functions such as bus operation control, timing control, allocation control, expected value generation / confirmation control, timeout control, random number control, and generation control. The bus operation control determines a request on the bus, a snoop response, a response response, and conditions such as which agent drives those responses and requests. Here, the agent is also called a "transmitting / receiving station" of the bus, and refers to a device, a module, a circuit, or the like that is connected to the bus and issues a request or responds to the request. Specifically, the bridge 1, the processor 2, the main memory 3, the main memory control device 4, the I / O processor 5, and the bus monitor 9 correspond to the simulation model of FIG.

【0120】タイミング制御は、個々の信号の遅延時間
の選択と信号間の順番や時間間隔の制約関係を制御し、
リクエスト・スヌープ応答・レスポンス応答の種類毎に
遅延値を管理し、異なるトランザクションにまたがる信
号間の時間を決定し、また異なるバス間にまたがる信号
間の時間を決定する。割付制御は、キャッシュラインに
どのMESIステート値を割り付けるか、そのアドレス
がすでに割り付けたアドレスと重複したり矛盾しない
か、リクエストと初期ステートの矛盾はないか、キャッ
シュのインデックス部(キャッシュメモリのセットを決
定するアドレスビット群)の重複と空き管理、キャッシ
ュのウェイの初期状態の空き管理とリプレースを考慮し
たウェイの初期設定を行う。期待値生成・確定制御は、
生成条件による期待値の確定ができるかできないかの判
定、他のトランザクションに依存せず独立に決定できる
期待値の生成、他のトランザクションの履歴やアドレス
の使用状況や前のトランザクションからの時間間隔から
テーブル情報に基づく決定処理を行う。
The timing control controls the selection of the delay time of each signal and the constraint relationship of the order and time interval between the signals.
The delay value is managed for each type of request / snoop response / response response, the time between signals over different transactions is determined, and the time between signals over different buses is determined. The assignment control determines which MESI state value is assigned to the cache line, whether the address is duplicated or inconsistent with the already assigned address, whether there is no conflict between the request and the initial state, the index part of the cache (the cache memory set is Duplicate and empty management of the determined address bits), empty management of the initial state of the cache way, and initial setting of the way in consideration of replacement are performed. The expected value generation and confirmation control
Judgment of whether the expected value can be determined by generation conditions or not, generation of expected value that can be determined independently without depending on other transactions, history of other transactions, usage of addresses, and time interval from previous transaction Perform a decision process based on the table information.

【0121】タイムアウト制御は、シミュレーション時
には短めのサイクル数を想定してタイムアウト検出を行
うので、タイミング制御に依存してタイムアウト検出を
抑止したりタイムアウト値を延ばす。乱数制御は、試験
の再現性を確保する目的で乱数の生成の基となる数であ
る乱数シードやそのシードより生成した乱数値の再現性
を保持するよう乱数の使用を制御し、一様分布でない確
立分布を行う計算、個々に乱数を使用すると目的が達成
されない従属条件であるパラメータの乱数値の生成を行
う。生成制御は、テスト(リセット、初期設定、シミュ
レーション、結果の比較の固まりをテストと呼ぶ)の中
で発生させるトランザクション数、クロック数を他の条
件と合せて決定し、生成するテスト数を決めその数だけ
生成する、生成条件を順次変更してゆく、テスト間での
乱数シードの変更制御などを行う。これらの処理は互い
に従属関係があり、生成時に外部より指定された条件に
より優先度が変わり、制御の適用順番や適用アルゴリズ
ムが変わる。
In the timeout control, the timeout is detected by assuming a shorter cycle number during the simulation. Therefore, the timeout detection is suppressed or the timeout value is extended depending on the timing control. Random number control controls the use of random numbers to maintain the reproducibility of random number seeds, which are the numbers on which random numbers are generated, and the random number values generated from the seeds, in order to ensure the reproducibility of the test. Is performed, and random numbers are generated for parameters that are dependent conditions that do not achieve the purpose if random numbers are used individually. The generation control determines the number of transactions and the number of clocks to be generated in a test (a set of reset, initialization, simulation, and comparison of the results is called a test) along with other conditions, and determines the number of tests to be generated. The number of generations is changed, the generation conditions are sequentially changed, and the control of changing the random number seed between tests is performed. These processes have a dependency relationship with each other, and the priority changes according to a condition externally specified at the time of generation, and the control application order and the application algorithm change.

【0122】次に試験生成の簡単な例について説明す
る。生成制御においては外部指定のパラメータより、ク
ロック数の最大値とバストランザクション数の数を決め
る。バス動作制御では、外部指定パラメータよりリクエ
スト毎の確立分布、リクエスト毎に決められた存在する
応答の確立分布を計算する。一様乱数より求めた値を上
記の分布にマッピングしてリクエストを決定する。ま
た、スヌープ応答とレスポンス応答はそのリクエスト毎
の分布テーブルから決定する。具体的には各信号値の相
対頻度を正規化し、各信号値が取りうる範囲を0から1
の間のデータとしてテーブルに格納し、次に0から1の
一様乱数からテーブルに指定された範囲に該当する信号
値(リクエスト、応答など)を求める。図6の例では最
初の乱数値が0.370であれば「リクエスト分布定義」か
ら0.25以上0.60未満であるBがリクエストとして選択さ
れる。次の乱数値0.28より「レスポンス応答分布定義」
からレスポンス値Xが選択され、次の乱数値0.887より
「スヌープ応答分布定義」中の「XかつA以外のとき」
の条件に合致する表の行からスヌープ値nが選択され
る。また、次のような表をあらかじめ作成して総合的な
確率表にして一回の乱数で求めても同様である。
Next, a simple example of test generation will be described. In the generation control, the maximum value of the number of clocks and the number of bus transactions are determined from parameters specified externally. In the bus operation control, a probability distribution of each request and a probability distribution of an existing response determined for each request are calculated from externally designated parameters. The request determined by mapping the value obtained from the uniform random numbers to the above distribution. Further, the snoop response and the response response are determined from the distribution table for each request. Specifically, the relative frequency of each signal value is normalized, and the range that each signal value can take is from 0 to 1.
Then, a signal value (request, response, etc.) corresponding to the range specified in the table is obtained from a uniform random number from 0 to 1 from the table. In the example of FIG. 6, if the first random number value is 0.370, B that is 0.25 or more and less than 0.60 is selected as a request from the “request distribution definition”. "Response response distribution definition" from the next random value 0.28
Response value X is selected from the following, and from the next random number value 0.887, "when the value is other than X and A" in the "snoop response distribution definition"
The snoop value n is selected from the table row that satisfies the above condition. The same applies to the case where the following table is created in advance and a comprehensive probability table is obtained by one random number.

【0123】[0123]

【表2】 [Table 2]

【0124】次にキャッシュの初期状態を決める。すで
に決めたリクエストに対して取りうるN次キャッシュの
ステート値を確率分布に従い乱数より決定する。さらに
N次キャッシュのステート値に矛盾しない範囲でN−1
次キャッシュのステート値を同様に確率分布に従い乱数
により決定する。
Next, the initial state of the cache is determined. The state value of the N-order cache that can be taken for the already determined request is determined from random numbers according to the probability distribution. Further, N-1 within a range not inconsistent with the state value of the N-th cache.
Similarly, the state value of the next cache is determined by a random number according to the probability distribution.

【0125】次にアドレスとキャッシュに初期設定する
ウェイを決める。上記のキャッシュのステート値、アド
レス、ウェイを別々に乱数で決定すると、別のトランザ
クション用に求めた条件と矛盾して割り付けられなくな
ることがある。その状態を避ける簡単な方法はすでに割
り付けたキャッシュ情報を覚えておき「使用ずみ」であ
ることが判った時点で乱数を振り直して空きが見つかる
まで繰り返す。また、乱数にてアドレスを求める時にキ
ャッシュのインデックス部に制限を加えてN次レベルの
リクエスト発生とN−1次レベルのリクエスト発生で使
用するアドレスのインデックスと重複しないようにす
る。簡単な例としては、キャッシュラインサイズが32
BでN−1次キャッシュが64KB×4、N次キャッシ
ュが1MB×4の時はアドレスインデックスのビットが
それぞれ15〜5と19〜5で、ビット15が0ならば
N次キャッシュレベルに1ならばN−1次レベルのリク
エストに使用すると決めればよい。またN次レベルのア
クセスではN−1次キャッシュにまったく影響を与えな
いならば19〜16の任意のビットをこの選択条件に使
用するとN−1次キャッシュの選択の幅が広がる。
Next, an address and a way to be initialized in the cache are determined. If the state value, address, and way of the cache are separately determined by random numbers, they may not be allocated inconsistently with the conditions obtained for another transaction. A simple way to avoid this situation is to remember the cache information you have already allocated, and when it is determined that it is "used", repeat the random number and repeat until a free space is found. In addition, when an address is obtained by using a random number, the index portion of the cache is restricted so that the index does not overlap with the index of the address used in the generation of the Nth level request and the generation of the (N-1) th level request. A simple example is a cache line size of 32
In B, when the N-1st cache is 64 KB × 4 and the Nth cache is 1 MB × 4, the bits of the address index are 15 to 5 and 19 to 5 respectively. For example, it may be determined that the request is used for the (N-1) th level request. If the N-th level access does not affect the N-1st cache at all, use of any of the bits 19 to 16 for this selection condition widens the range of selection of the N-1th cache.

【0126】次にリクエスト発行元を包含するN次キャ
ッシュのステート値とレスポンス応答・スヌープ応答値
に矛盾しない範囲で同一バスに接続された他のプロセッ
サに属するN−1次キャッシュのステート値を決めそれ
に合うようにアドレスを選択する。また、リクエスト発
行元を包含しないN次キャッシュとそれに接続されたプ
ロセッサのN−1次キャッシュは、先に決めたN次キャ
ッシュに矛盾しないようにキャッシュのステート値を決
める。データ値については基本的に全ビットを乱数で決
めれば良い。
Next, the state value of the (N−1) -th order cache belonging to another processor connected to the same bus is determined within a range that does not contradict the state value of the N-order cache including the request issuing source and the response response / snoop response value. Choose an address to match. In addition, the N-th cache that does not include the request issuing source and the N-first cache of the processor connected thereto determine the state value of the cache so as not to contradict the N-cache determined in advance. As for the data value, basically all bits may be determined by random numbers.

【0127】次に上記のバスに着目したトランザクショ
ンとは別にN−1次またはN−2次レベルのアクセスに
よる生成を行う。記憶アクセスアドレスを決定する。ア
ドレスの一部を形成するN次レベルのキャッシュインデ
ックス値は上記のようにN次キャッシュのインデックス
がここで選択するN−1次及びN−2次キャッシュイン
デックスと重複しないように選んでおり、この排他制御
は、インデックス値の範囲または特定ビット値で決めれ
ばよく、1つのテストの中で使用するトランザクション
数は一般にインデックス数の数%以下であるため選択で
条件が見つからなくなることはない。また、上記N−1
次キャッシュに対するプロセッサ2内のリクエスト発行
により上記N次キャッシュに接続されたバス動作とN次
キャッシュ動作を検証するとき、各プロセッサ2の発行
するリクエストのアドレスのビットの一部を各プロセッ
サ2のプロセッサ番号またはプロセッサ番号から連想で
きる値としてアドレス生成することも可能である。
Next, in addition to the above-mentioned transaction focusing on the bus, generation is performed by N-1 or N-second level access. Determine the storage access address. The N-th level cache index value forming a part of the address is selected so that the index of the N-th cache does not overlap with the N-1 and N-second cache indexes selected here, as described above. The exclusive control may be determined based on the range of the index value or the specific bit value, and the number of transactions used in one test is generally several percent or less of the number of indexes, so that no condition can be found by selection. The above N-1
When verifying the bus operation connected to the N-level cache and the N-level cache operation by issuing a request in the processor 2 to the next cache, a part of the bit of the address of the request issued by each processor 2 It is also possible to generate an address as a value that can be associated with a number or a processor number.

【0128】次にN−1次またはN−2次レベルの記憶
アクセスで使用するアドレスのコマンドを決定する。ま
た次にN−1次またはN−2次レベルの記憶アクセスで
使用するアドレスのキャッシュ初期ステートをコマンド
に矛盾しない範囲で決定するる。N−2次レベルのコマ
ンドの場合はN−2次、N−1次、N次の順に包含関係
に矛盾がないように選択してゆく。このレベルのコマン
ドのシステムバス上での実行順序は予測できないため、
単純な方法は乱数要素を持たないプロセッサ番号の値に
依存するビット値をアドレスの一部に挿入し、個々のト
ランザクションで独立にキャッシュの初期値を決定す
る。これらのアドレスを非共有アドレスと呼ぶ。非共有
アドレスが共有アドレスと排他的になるように決定する
簡単な例はアドレスの特定ビットが0ならば非共有、1
ならば共有と決め、すでに使用しているN次/N−1次
のビット、プロセッサ番号のビットとは分ける事であ
る。上記のように、プロセッサ2へのデータの書き込み
順序がバス8上に現れたときそのプロトコルの順序が変
更されることを許可した条件において、複数回書き込み
アクセスが行われるアドレスの選択は、1回だけ使用可
能な非共有アドレス領域と複数回使用可能な共有アドレ
ス領域に分離し、非共有アドレス領域に対してはすでに
登録されたアドレスを選択しないように決定し、共有ア
ドレス領域に対しては非共有アドレス領域に該当しない
アドレスを選択するよう試験生成し、試験終了時に非共
有アドレス領域についてはキャッシュの最終値を比較
し、共有アドレス領域についてはキャッシュを特定した
比較は行わない。
Next, the command of the address to be used for the N-1 or N-second order storage access is determined. Next, the cache initial state of the address used in the N-1 or N-2 order storage access is determined within a range not inconsistent with the command. In the case of the command of the (N−2) th level, the commands are selected in the order of the (N−2) th order, the (N−1) th order, and the Nth order so that there is no contradiction in the inclusion relation. Because the order of execution of commands at this level on the system bus is unpredictable,
A simple method inserts a bit value depending on the value of the processor number having no random number element into a part of the address, and independently determines the initial value of the cache in each transaction. These addresses are called non-shared addresses. A simple example of determining that a non-shared address is exclusive to a shared address is non-shared if a specific bit of the address is 0, 1
If so, it is determined to be shared, and the Nth / N-1th order bits and the processor number bits which are already used are separated. As described above, under the condition that the order of writing the data to the processor 2 appears on the bus 8 and the order of the protocol is allowed to be changed, the selection of the address where the write access is performed a plurality of times is once. It is divided into a non-shared address area that can be used only and a shared address area that can be used multiple times, and it is determined not to select an address that has already been registered for the non-shared address area. A test is generated so as to select an address that does not correspond to the shared address area. At the end of the test, the final value of the cache is compared for the non-shared address area, and the cache-specific comparison is not performed for the shared address area.

【0129】N−1次またはN−2次レベルの記憶アク
セスで使用するアドレスでしかもプロセッサ2間でMデ
ータが移動する条件を生成する。これらのアドレスを共
有アドレスと呼びテストの中で何個そのようなキャッシ
ュラインを使用するかを決める。共有アドレスへの書き
込みは、プロセッサ番号と同一プロセッサ内での何回目
の書き込みかという情報に従って、書き込むバイト位置
を決定する。例えばキャッシュラインが64バイトでシ
ステム中に8個のプロセッサ2があり同一ラインへの書
き込みアクセス単位が1バイトならば、短アドレスとし
てのバスのビット幅の1/Kとしては、64バイト/
(8個×1バイト)= 8であり、プロセッサ2あたり8
回まで書き込みアクセスができる。その書き込みデータ
は簡単化して、プロセッサ番号×8+アクセス番号+ラ
インアドレスのビット13〜6と決める。アクセス単位
がバス幅の64ビットであればプロセッサ2あたり1回
ということになる。
An address used for the N-1 or N-2 order storage access and a condition for moving M data between the processors 2 are generated. These addresses are called shared addresses and determine how many such cache lines are used in the test. For writing to the shared address, the byte position to be written is determined according to the processor number and the information indicating the number of times of writing in the same processor. For example, if the cache line is 64 bytes and there are eight processors 2 in the system and the unit of write access to the same line is 1 byte, 1 / K of the bit width of the bus as a short address is 64 bytes /
(8 × 1 byte) = 8, and 8 per processor 2
Write access is allowed up to times. The write data is simplified and determined as processor number × 8 + access number + bits 13 to 6 of the line address. If the access unit is 64 bits of the bus width, it means one time per processor 2.

【0130】共有アドレスと非共有アドレスの区別は容
易であるが共有アドレスの数をかなり絞らないとプロセ
ッサ2間での移動は確率的に発生しにくい。そこで共有
アドレス数hを先に決め、あらかじめそれらのアドレス
をテーブル上にh個保持し、乱数のhのモジュロをテー
ブル内のエントリ番号としてアドレスを得る。共有アド
レスのリクエスト生成は、非共有アドレスのリクエスト
生成と別に行い処理順番が偏らないように後で順番を入
れ替えてもよいし、プロセッサ内での処理順番に従いバ
ス上のリクエストの直接生成と非共有アドレスによる生
成とこの共有アドレスの生成を並行して行っても良い。
共有アドレスのキャッシュ初期状態はシステム全体で、
N次、N−1次、N−2次キャッシュの順に決めて行
く。
Although it is easy to distinguish between a shared address and a non-shared address, movement between processors 2 is unlikely to occur stochastically unless the number of shared addresses is considerably reduced. Therefore, the number h of the shared addresses is determined first, and h addresses are previously stored in the table, and the modulo of the random number h is obtained as an entry number in the table. Request generation for a shared address may be performed separately from request generation for a non-shared address, and the order may be changed later so that the processing order is not biased. The generation by the address and the generation of the shared address may be performed in parallel.
The initial state of the shared address cache is the entire system,
The N-th order, the N-th order, and the N-th order cache are determined in this order.

【0131】リクエストは、リクエスト発生を行うプロ
セッサ2又はI/Oプロセッサ5毎に発生順に、同プロ
セッサ2又はI/Oプロセッサ5内の命令記憶に格納す
る時のアドレスを割り付ける。命令に対応するリクエス
トAがバス上でリトライを促す「リトライ応答」された
時にそのプロセッサ2にとって次の命令に対応するバス
リクエストB発行以前にそのリトライ応答されたリクエ
ストAを再発行させる場合は、AとBの間に順序性を保
証して全体として矛盾なく動作するための「逐次化」命
令を挿入するか、Aの前に「逐次化モード開始」をBの
前に「逐次化モード終了」を指示する、リクエストAを
「逐次化処理必要な命令」と定義する、のいづれかにて
実現する。これらのいづれの指定もないときは、シミュ
レーションの実行時に命令実行キューの最後に処理要求
が付加されるようにプロセッサ2のモデルを作成し生成
時には特別の処理はない。逐次化をしないときはN−1
次キャッシュのリプレースが予測できなくなりキャッシ
ュのウェイを特定した期待値生成ができなくなるので、
データ値を対象とした期待値に制限されるが、多様な動
作を実現できる長所もある。両者は適当に選択して使用
する。
Requests are assigned to the processor 2 or the I / O processor 5 that issues the request, in the order in which they are generated, at which addresses are stored in the instruction storage in the processor 2 or the I / O processor 5. When the request A corresponding to the instruction is "retry-response" for prompting a retry on the bus, the processor 2 reissues the request A to which the retry response has been issued before issuing the bus request B corresponding to the next instruction. Insert a "serialization" instruction between A and B to guarantee order and operate as a whole without inconsistency, or insert "serialization mode start" before A and "serialization mode end" before B The request A is defined as an “instruction requiring serialization processing”. When neither of these is specified, a model of the processor 2 is created so that a processing request is added to the end of the instruction execution queue at the time of executing a simulation, and no special processing is performed at the time of generation. N-1 for no serialization
Since the replacement of the next cache cannot be predicted and the expected value that specified the cache way cannot be generated,
Although it is limited to the expected value for the data value, there is an advantage that various operations can be realized. Both are appropriately selected and used.

【0132】リクエスト発生にともなう遅延処理は、プ
ロセッサ2またはI/Oプロセッサ5の命令記憶中のバ
スリクエストそのものを示す命令またはバスリクエスト
を発生する可能性のあるN−1次キャッシュやN−2次
キャッシュ・レベルのメモリアクセス命令の前に遅延を
指示する命令を挿入する。命令としては、固定サイクル
待つ、指定されたサイクル数待つ、バス8上パイプライ
ンフェーズ・キューの指定されたキューが指定された値
以下になるまで待つ、そのプロセッサ2が接続されてい
ない別の指定されたバスのパイプラインフェーズ・キュ
ーの指定されたキューが指定された値以下になるまで待
つ、バス8上のトランザクションであるリクエスト数を
カウントしその個数が指定された値になるまで待つ、そ
のプロセッサが接続されていない別の指定されたバス8
のリクエスト数をカウントしその個数が指定された値に
なるまで待つ、バス8上に発行されたリクエストに対応
したアドレスと指定されたアドレスを比較し一致するま
で待つ、そのプロセッサ2が接続されていない別の指定
されたバス8上のリクエストに対応したアドレスと指定
されたアドレスを比較し一致するまで待つ、などでそれ
らの命令を続けて設定することにより複雑な条件の指定
ができる。また、検証対象回路1に接続された第1のバ
スとしてのバス8上の第1の信号を処理中に上記検証対
象回路1以外のエージェントが上記第1のバス以外の第
2のバス上の第2の信号に対して予め設定したサイクル
数待ち、その後、その信号のプロトコルを満足する最初
のサイクルが到来した時点でその信号を駆動する遅延条
件を設定することも可能である。
The delay processing accompanying the generation of the request includes an N-1 level cache or an N-2 level cache which may generate an instruction or bus request indicating the bus request itself stored in the instruction of the processor 2 or the I / O processor 5. An instruction indicating a delay is inserted before the cache-level memory access instruction. The instructions include waiting for a fixed cycle, waiting for a specified number of cycles, waiting until the specified queue of the pipeline phase queue on the bus 8 becomes equal to or less than a specified value, another specification for which the processor 2 is not connected. Wait until the specified queue of the pipeline phase queue of the bus becomes less than the specified value, count the number of requests that are transactions on the bus 8 and wait until the number reaches the specified value. Another designated bus 8 to which no processor is connected
, And waits until the number reaches the specified value, compares the address corresponding to the request issued on the bus 8 with the specified address, waits for a match, and the processor 2 is connected. A complicated condition can be specified by setting those instructions continuously, such as comparing the address corresponding to the request on another specified bus 8 with the specified address and waiting until they match. Further, during processing of the first signal on the bus 8 as the first bus connected to the circuit to be verified 1, an agent other than the circuit to be verified 1 is connected to a second bus other than the first bus. It is also possible to wait for a preset number of cycles for the second signal, and then set a delay condition for driving the signal when the first cycle that satisfies the signal protocol arrives.

【0133】また、バス・リクエストの前動作であるバ
ス・アービトレーション(バス調停)で優先的に使用し
続ける「バス・パーキング」指定も同命令にて開始と終
了を指定するか、バス・パーキング命令後の何個のバス
リクエスト発行後にバス・パーキングを解除するかを指
定する。
[0133] The designation of "bus parking", which is to be used preferentially in the bus arbitration (bus arbitration), which is the pre-operation of the bus request, can also be performed by designating the start and end with the same command or the bus parking command. Specify the number of bus requests issued after which bus parking is released.

【0134】リクエスト発生にともなう遅延処理で、上
記のようにプロセッサ2またはI/Oプロセッサ5の命
令記憶中で遅延処理を指定する他に、命令記憶の外のレ
ジスタにテスト毎に直接指定を行い、命令がバスリクエ
ストとして発生する時にその指示を適用する機能もあ
る。この機能は上記方法と異なり確実にバス8に現れる
リクエストに適用できより直接的に遅延制御ができるが
反面常に読み出しをする必要がありメモリではなくレジ
スタとして実現するために、同一テスト内で遅延設定の
数が増えると設定レジスタを多く保持する必要がありモ
デルが大きくかつ複雑になるので、上記と併用する。指
定できる内容は上記の命令で指定するものと同様である
が、開始や終了の条件はテスト開始からに限る。
In the delay processing accompanying the request generation, in addition to specifying the delay processing in the instruction storage of the processor 2 or the I / O processor 5 as described above, the delay processing is directly specified in a register outside the instruction storage for each test. , There is also a function to apply the instruction when the instruction occurs as a bus request. Unlike the above method, this function can be applied to requests appearing on the bus 8 without fail, and delay control can be performed more directly. On the other hand, it is necessary to always read data. When the number increases, it is necessary to hold many setting registers, and the model becomes large and complicated. The contents that can be specified are the same as those specified by the above instructions, but the start and end conditions are limited to the start of the test.

【0135】具体的には、どのバスリクエストも固定サ
イクル数待つ、どのバスリクエストも指定されたサイク
ル数待つ、バス8上に発行するリクエスト数をカウント
して指定された個数に一致したバスリクエストのみ指定
されたサイクル数待つ、バス8上に発行するリクエスト
のアドレスと指定されたアドレスが一致したら指定され
たサイクル数待つ、バス8上パイプラインフェーズ・キ
ューの指定されたキューが指定された値以下になるまで
常に待つ、そのプロセッサ2が接続されていない別の指
定されたバス8のパイプラインフェーズ・キューの指定
されたキューが指定された値以下になるまで常に待つ、
バス8上のリクエスト数をカウントしその個数が指定さ
れた値になるまで常に待つ、そのプロセッサ2が接続さ
れていない別の指定されたバス8のリクエスト数をカウ
ントしその個数が指定された値になるまで常に待つ、バ
ス8上のリクエストに対応したアドレスと指定されたア
ドレスを比較し一致するまで待つ、そのプロセッサ2が
接続されていない別の指定されたバス上のリクエストに
対応したアドレスと指定されたアドレスを比較し一致す
るまで待つ、遅延サイクル数は指定された数を最大とし
かつ指定された分布に基づく乱数とする、などでそれら
の条件の判定順番を決めて組み合わせることにより複雑
な条件の指定ができる。
More specifically, every bus request waits for a fixed number of cycles, every bus request waits for a specified number of cycles, and counts the number of requests issued on the bus 8 to match only the specified number of bus requests. Wait for the specified number of cycles, wait for the specified number of cycles if the address of the request issued on the bus 8 matches the specified address, and specify the specified queue of the pipeline phase queue on the bus 8 below the specified value Always waits until the specified queue of the pipeline phase queue of another specified bus 8 to which the processor 2 is not connected is equal to or less than the specified value.
Counts the number of requests on the bus 8 and always waits until the number reaches the specified value. Counts the number of requests on another specified bus 8 to which the processor 2 is not connected, and sets the number to the specified value. , The address corresponding to the request on the bus 8 is compared with the specified address, and the system waits until the addresses match. The address corresponding to the request on another specified bus to which the processor 2 is not connected is Comparing the specified addresses and waiting until they match, the number of delay cycles is a maximum of the specified number and a random number based on the specified distribution, etc. Conditions can be specified.

【0136】同じような条件を別のリクエストに関連付
けるため、情報を付加したり、他の条件との連携の組み
合わせを決めて別々の条件として定義する。また、バス
・リクエストの前動作であるバス・アービトレーション
(バス調停)で優先的に使用し続ける「バス・パーキン
グ」指定もアドレスや何個目という指定で開始と終了を
指定するか、バス・パーキング適用後の何個のバスリク
エスト発行後にバス・パーキングを解除するという指定
を行う。
In order to associate a similar condition with another request, information is added or a combination of cooperation with other conditions is determined and defined as separate conditions. In addition, the "bus parking" designation, which continues to be used preferentially in the bus arbitration (bus arbitration) that is the pre-operation of the bus request, can be specified by specifying the start and end by specifying the address and the number of buses, or by bus parking Specify that how many bus requests are issued after the application and that the bus parking is released.

【0137】バス・スヌープへの遅延指定は、プロセッ
サ2またはI/Oプロセッサ5のレジスタにテスト毎に
埋め込んで行う。その指定の仕方は、バス8上のリクエ
ストをカウントしその個数が指定された値と一致したら
指定されたサイクル数(またはバス規約上の最低の応答
単位数)待って応答する、バス8上のリクエストのアド
レスが指定されたアドレスと一致したら指定されたサイ
クル数(またはバス規約上の最低の応答単位数)待って
応答する、バス8上のリクエスト発行エージェントが指
定されたエージェント番号と一致したら指定されたサイ
クル数(またはバス規約上の最低の応答単位数)待って
応答する、バス8上のリクエストの動作を示すリクエス
トコードが指定されたコードと一致したら指定されたサ
イクル数(またはバス規約上の最低の応答単位数)待っ
て応答する、バス上パイプラインフェーズ・キューの指
定されたキューが指定された値以下になるまで待ちその
後指定されたサイクル数またはバス規約上の最低の応答
単位数)待って応答する、遅延サイクル数は指定された
数を最大としかつ指定された分布に基づく乱数とするな
どがある。その分布は、通常、既に述べた分布テーブル
によるものである。
The delay designation to the bus snoop is performed by embedding it in the register of the processor 2 or the I / O processor 5 for each test. The specification method is to count the requests on the bus 8 and, if the number matches the specified value, wait for the specified number of cycles (or the minimum number of response units in the bus protocol) to respond. If the address of the request matches the specified address, it waits for the specified number of cycles (or the minimum number of response units in the bus protocol) and responds. If the request issuing agent on the bus 8 matches the specified agent number, specify it. When the request code indicating the operation of the request on the bus 8 that responds after waiting for the specified number of cycles (or the minimum number of response units according to the bus protocol) matches the specified code, the specified number of cycles (or the bus protocol) The lowest number of response units) wait for a response, the specified queue of pipeline phase queues on the bus is less than or equal to the specified value Made to respond to wait then specified number of cycles or minimum number of response units on the bus Terms) wait till, the number of delay cycles there is such a random number that is based to the maximum Toshikatsu specified the specified number distribution. The distribution is usually based on the distribution table already described.

【0138】バス8の終了動作を示すレスポンス応答の
遅延は、主記憶制御装置4またはプロセッサのレジスタ
にテスト毎に埋め込んで行う。その指定の仕方は、バス
8上のリクエストをカウントしその個数が指定された値
と一致したら指定されたサイクル数(またはバス規約上
の最低の応答単位数)待って応答する、バス8上のリク
エストのアドレスが指定されたアドレスと一致したら指
定されたサイクル数(またはバス規約上の最低の応答単
位数)待って応答する、バス8上のリクエスト発行エー
ジェントが指定されたエージェント番号と一致したら指
定されたサイクル数(またはバス規約上の最低の応答単
位数)待って応答する、バス8上のリクエストの動作を
示すリクエストコードが指定されたコードと一致したら
指定されたサイクル数(またはバス規約上の最低の応答
単位数)待って応答する、バス8上パイプラインフェー
ズ・キューの指定されたキューが指定された値以下にな
るまで待ちその後指定されたサイクル数(またはバス規
約上の最低の応答単位数)待って応答する、自分から見
た駆動データでありリクエスト発行元から読み出しデー
タについて最初のデータが容易できるまで応答を遅延さ
せる、リクエスト発行元から見て書き込みデータで自分
から見て受信データについての最初のデータが駆動され
てから指定されたサイクル数待って応答する、リクエス
ト発行元から見て書き込みデータで自分から見て受信デ
ータについての最後のデータが駆動されてから指定され
たサイクル数待って応答する、遅延サイクル数は指定さ
れた数を最大としかつ指定された分布に基づく乱数とす
るなどがある。また、検証対象回路1が上記シミュレー
ションモデル上の他のエージェントの信号を受信して動
作するとき、上記エージェントの信号値のビット数で表
現できる全ての値の個々についてまたはそれらをグルー
プ化した値の個々についてそれぞれ個別に上記エージェ
ントの信号の駆動を遅らせるサイクル数を指定すること
により、結果的に上記検証対象回路1の動作を遅延させ
ることができる。
The response indicating the end operation of the bus 8 is delayed by embedding it in the main memory control device 4 or the register of the processor for each test. The specification method is to count the requests on the bus 8 and, if the number matches the specified value, wait for the specified number of cycles (or the minimum number of response units in the bus protocol) to respond. If the address of the request matches the specified address, it waits for the specified number of cycles (or the minimum number of response units in the bus protocol) and responds. If the request issuing agent on the bus 8 matches the specified agent number, specify it. When the request code indicating the operation of the request on the bus 8 that responds after waiting for the specified number of cycles (or the minimum number of response units in the bus protocol) matches the specified code, the specified number of cycles (or in the bus protocol) Waits for a response, waits for a response, and the specified queue of the pipeline phase queue on the bus 8 is equal to or less than the specified value. And then waits for the specified number of cycles (or the minimum number of response units in the bus protocol) and responds. This is the drive data as seen by the user and responds until the first data can be easily read from the request source. Delay the response, wait for a specified number of cycles after the first data has been driven for the received data as seen from the request source and write data as seen from the self, respond with the written data as seen from the request originator For example, a response is made after waiting for a specified number of cycles since the last data of the received data is driven, and the number of delay cycles is a random number based on a specified distribution with the specified number being maximized. When the circuit 1 to be verified operates upon receiving a signal of another agent on the simulation model, all values that can be represented by the number of bits of the signal value of the agent are individually or grouped. By individually designating the number of cycles for delaying the driving of the signal of the agent, the operation of the verification target circuit 1 can be delayed.

【0139】リクエスト発行元のデータ転送遅延は、プ
ロセッサ2またはI/Oプロセッサ5に個々に持ってい
るレジスタ(図示せず)に設定することで指定する。指
定の仕方は、バスプロトコルで定めた最速のタイミング
より固定サイクル数後れて駆動する、複数サイクルに渡
ってデータを駆動する場合に常に何個目のデータは前の
データより何サイクル後れて駆動する、遅延サイクル数
は指定された数を最大としかつ指定された分布に基づく
乱数とするなどがある。
The data transfer delay of the request issuer is specified by setting it in a register (not shown) individually provided in the processor 2 or the I / O processor 5. The specification method is to drive after a fixed number of cycles from the fastest timing defined by the bus protocol. For example, the number of delay cycles to be driven is such that the specified number is maximized and a random number based on the specified distribution is used.

【0140】主記憶制御装置4またはI/Oプロセッサ
5が読み出しリクエストに対してデータを返す時にバス
プロトコル上で定められた最速のタイミングに対して遅
延サイクルの挿入を、プロセッサ2またはI/Oプロセ
ッサに個々に持っているレジスタに設定することで指定
する。その指定の仕方は、「レスポンス応答」との相対
的な固定サイクル数、データ転送の対象となるリクエス
トのアドレスが指定されたアドレスと一致したら指定さ
れたサイクル数待って駆動する、バス8上のリクエスト
発行エージェントが指定されたエージェント番号と一致
したら指定されたサイクル数待って駆動する、バス8上
のリクエストの動作を示すリクエストコードが指定され
たコードと一致したら指定されたサイクル数待って駆動
する、遅延サイクル数は指定された数を最大としかつ指
定された分布に基づく乱数で計算されたサイクル数待っ
て駆動する。
When the main memory control device 4 or the I / O processor 5 returns data in response to a read request, the delay cycle is inserted for the fastest timing determined on the bus protocol by the processor 2 or the I / O processor. Is specified by setting in the register that each has. The method of designation is as follows: the number of cycles relative to the “response response”, and when the address of the request to be transferred is equal to the designated address, the system waits for the designated number of cycles to drive. If the request issuing agent matches the designated agent number, the device waits for a specified number of cycles, and if the request code indicating the operation of the request on the bus 8 matches the specified code, the device waits for the specified number of cycles to drive. The number of delay cycles is set at the maximum value of the designated number, and is driven after waiting for the number of cycles calculated by random numbers based on the designated distribution.

【0141】プロセッサ2がバス8上のリクエストに対
してN−1次キャッシュにMデータをもっていたためそ
のデータをブリッジ1のN次キャッシュ代わりにバス8
上にデータを送出する「書き戻し」処理時に、バスプロ
トコル上で規定された最速タイミングに対して遅延サイ
クル数の挿入を、プロセッサ2が個々に持っているレジ
スタに設定することで指定する。その指定の仕方は、プ
ロセッサ2毎に固定サイクル数を指定する、バス8上の
「書き戻し処理」数をカウントしその個数が指定された
値と一致したら指定されたサイクル数待って駆動する、
「書き戻し」処理のアドレスが指定されたアドレスと一
致したら指定されたサイクル数待って駆動する、遅延サ
イクル数は指定された数を最大としかつ指定された分布
に基づく乱数から計算されるサイクル数待って駆動す
る、などがある。
Since the processor 2 has M data in the (N−1) -th order cache in response to the request on the bus 8, the data is transferred to the bus 8 instead of the N-th order cache of the bridge 1.
At the time of the "write-back" process of sending data upward, the insertion of the number of delay cycles with respect to the fastest timing specified on the bus protocol is designated by setting the register which the processor 2 has individually. The designation method is to specify a fixed number of cycles for each processor 2, count the number of “write-back processes” on the bus 8, and wait for the specified number of cycles when the number matches the specified value to drive the bus 8.
If the address of the "write back" process matches the specified address, it will wait for the specified number of cycles to drive. The number of delay cycles is the maximum number specified, and the number of cycles calculated from random numbers based on the specified distribution Wait and drive.

【0142】主記憶制御装置4又はI/Oプロセッサが
読み出しまたは書き込み処理を受け付けて処理するとき
に先行制御を行うためにアドレス・リクエストコード・
要求元エージェント番号などをバッファにためて置くが
その要求動作と処理速度や別処理のため新たな要求を抑
止する「リクエスト抑止信号」がある。その信号を駆動
する条件を、主記憶制御装置4やI/Oプロセッサ5の
レジスタにテスト毎に設定を行う。設定の仕方は、読み
出しリクエストに対して読み出しバッファがあふれたら
(またはあふれる可能性がある場合)駆動する、書き込
みリクエストに対して書き込みバッファがあふれたら
(またはあふれる可能性がある場合)駆動する、読み出
しバッファのサイズをモデルのサイズより小さく指定さ
れたサイズにする、書き込みバッファのサイズをモデル
のサイズより小さく指定されたサイズにする、バス上の
リクエストのアドレスが指定されたアドレスと一致した
ら駆動する、駆動開始と駆動終了の敷居値を同じにせず
ヒステリシス特性を持たせるために終了条件に該当する
バッファサイズを別途指定する、指定された数を最大と
しかつ指定された分布に基づく乱数から計算されるバッ
ファサイズが実際に使用されたバッファサイズより小さ
いと駆動する、バッファの使用状態に無関係に乱数より
求めた値が指定された値より大きい(または小さい)時
に駆動する、などがある。
When the main memory control device 4 or the I / O processor receives and processes read or write processing, it performs an address request code
There is a “request suppression signal” that stores a requesting agent number or the like in a buffer, but suppresses a new request due to the requested operation, processing speed, or another process. The conditions for driving the signal are set in the registers of the main storage controller 4 and the I / O processor 5 for each test. The setting method is to drive when the read buffer overflows (or may overflow) for a read request, to drive when the write buffer overflows (or to overflow) for a write request, or to read. Make the size of the buffer a specified size smaller than the size of the model, make the size of the write buffer smaller than the size of the model, and drive it when the address of the request on the bus matches the specified address. Separately specifies the buffer size corresponding to the end condition in order to have hysteresis characteristics without making the threshold values of drive start and drive end the same, calculated from random numbers based on the specified distribution with the specified number maximum and maximum Buffer size is smaller than the buffer size actually used Driven and, irrespective of the value is greater than (or less than) the specified value determined from random use state of the buffer during driving, and the like.

【0143】上記とは別にバスモニタ9内のレジスタ
(図示せず)に設定して行うバスモニタ9による「リク
エスト抑止信号」の駆動条件を指定する。指定は、バス
8上パイプラインフェーズ・キューの指定されたキュー
が指定された値以上になると指定された値以下になるま
での間駆動する、乱数より求めた値が指定された値より
大きい(または小さい)時に駆動する、などがある。
In addition to the above, the driving condition of the “request suppression signal” by the bus monitor 9 to be set by setting it in a register (not shown) in the bus monitor 9 is specified. When the designated queue of the pipeline phase queue on the bus 8 is equal to or greater than the designated value, the drive is performed until the designated queue becomes equal to or less than the designated value. Or when it is small).

【0144】N次キャッシュレベルのバス動作について
は期待値は、バス・リクエストの生成時の内容により決
まる。具体的にはプロセッサ2から主記憶3へのライト
命令では、プロセッサ2内のバッファに初期設定したア
ドレスとデータ値が主記憶3上のアドレスとデータ値に
該当し、バス幅の一部のビットのみライトする時はプロ
セッサ2内に初期設定したその書き込みバイト情報で示
されたバイト位置が比較対象になる。プロセッサ2から
I/Oプロセッサ5へのライト動作は検査する対象がI
/Oプロセッサ5内のバッファ記憶である以外は同様で
ある。主記憶3からのリード命令では、プロセッサ2内
のバッファに指定したアドレスに相当する主記憶3に初
期設定したデータ値が、プロセッサ2内のバッファとN
-1次キャッシュに格納されることを検査する。この場合
N次キャッシュの検査ではどのウェイに入ったかは予測
が難しく全ウェイを検索対象として指示する。プロセッ
サ2からI/Oプロセッサ5へのリード動作ではプロセ
ッサ2内のバッファに格納されたことを検査する。
For an Nth cache level bus operation, the expected value is determined by the contents at the time of generation of the bus request. Specifically, in the write instruction from the processor 2 to the main memory 3, the address and data value initially set in the buffer in the processor 2 correspond to the address and data value in the main memory 3, and some bits of the bus width When writing only, the byte position indicated by the write byte information initialized in the processor 2 is to be compared. In the write operation from the processor 2 to the I / O processor 5, the target to be inspected is I
The same is true except for buffer storage in the / O processor 5. In the read instruction from the main memory 3, the data value initially set in the main memory 3 corresponding to the address specified in the buffer in the processor 2 is stored in the buffer in the processor 2.
-Check that the data is stored in the L1 cache. In this case, it is difficult to predict which way has entered in the inspection of the N-th cache, and all the ways are designated as search targets. In the read operation from the processor 2 to the I / O processor 5, it is checked that the data is stored in the buffer in the processor 2.

【0145】N−1次キャッシュレベルまたはそれ以下
のレベルの動作では、その動作が行われた瞬間はその結
果が残っているがそれ以後は他の動作の影響で直接的に
検査はできなくなる。具体的にはN−1次キャッシュに
対して読み込み動作を行いN−1次キャッシュがミスを
しN次キャッシュにアクセスしてそれもミスし主記憶3
にアクセスし、N次、N−1次キャッシュに一旦はデー
タがつめられても後の動作によりリプレース対象として
キャッシュから消えることもある。そこで読み込み動作
の結果が格納されるプロセッサ2内のバッファを検査対
象にし、キャッシュは検査対象としない。また、プロセ
ッサ2内のN−1次キャッシュへの書き込み動作に於い
ても一旦N-1次キャッシュにデータを読み込みプロセ
ッサ2のバッファの値をキャッシュに書き込むがその内
容がリプレース動作が発生するとN次キャッシュに書き
戻され、主記憶3に書き戻される。
In the operation at the level of the (N-1) th cache level or lower, the result remains at the moment when the operation is performed, but cannot be directly checked after that due to the influence of other operations. Specifically, a read operation is performed on the N-1st cache, the N-1st cache makes a miss, accesses the Nth cache, and also makes a miss, and the main memory 3
, And even if data is once stored in the Nth and N-1st caches, it may disappear from the cache as a replacement target by a later operation. Therefore, the buffer in the processor 2 in which the result of the read operation is stored is set as the inspection target, and the cache is not set as the inspection target. In the write operation to the N-1 primary cache in the processor 2, data is read into the N-1 primary cache once and the value of the buffer of the processor 2 is written into the cache. The data is written back to the cache and written back to the main memory 3.

【0146】従って「プログラムの世界から見たデータ
の値」を検査する処理をモニター部7に持たせて各キャ
ッシュのステートを判別しながら正しいデータを持って
いる主記憶3またはキャッシュの内容を期待値と比較す
る。その時に同じキャッシュライン全体を書き換える命
令を各プロセッサ2で発行したり同じプロセッサであっ
ても複数回発行すると最後に実行された命令の結果しか
検査したことにならないので、命令単位に書き換える
「語」やバイトを変えてあり、その値を期待値とする。
同一ラインの全部のビット情報をマージして一度に検査
する方法、期待値生成の複雑さを避けてバイト位置マス
クを使用したり語単位の比較を指示する方法がある。
Accordingly, the monitor unit 7 is provided with a process for inspecting “the value of data viewed from the world of the program”, and while judging the state of each cache, the contents of the main memory 3 or the cache having the correct data are expected. Compare with value. At that time, if an instruction to rewrite the same cache line as a whole is issued by each processor 2 or is issued a plurality of times even in the same processor, only the result of the last executed instruction is checked, so the "word" to be rewritten in instruction units And bytes are changed, and the value is set as the expected value.
There are a method of merging all the bit information of the same line and checking at once, and a method of using a byte position mask or instructing a word-by-word comparison while avoiding the complexity of expected value generation.

【0147】期待値の比較は上記の考え方で生成され、
モニター部7に対して、比較検査の対象(どのキャッシ
ュやバッファか)、比較対象のアドレス(キャッシュア
ドレス、バッファアドレス)、付随情報(キャッシュの
ウェイなど)、その値(キャッシュのステート値やデー
タ値)、マスク情報から構成される期待値が与えられ
る。また、不一致時の解析情報として生成時の参照番号
を付与し解析用のリストにその番号を残す。
The comparison of the expected value is generated based on the above idea,
For the monitor unit 7, the comparison target (which cache or buffer), comparison target address (cache address, buffer address), accompanying information (cache way, etc.), its value (cache state value or data value) ), An expected value composed of mask information is given. Also, a reference number at the time of generation is given as analysis information at the time of mismatch, and the number is left in the analysis list.

【0148】エラー機能の試験ではバスモニタ9や検証
対象回路1内のレジスタが検査対象となり、上記と同様
に指示される。
In the test of the error function, the bus monitor 9 and the register in the circuit 1 to be verified are to be inspected, and instructions are given in the same manner as described above.

【0149】次にシミュレーションの実行について述べ
る。上記の試験データの生成とは別にシミュレータに起
動を掛け、シミュレータは検証対象回路1の接続情報、
非検証対象回路のゲート間の接続情報、非検証対象回路
の動作記述、モニター部7の動作記述、これらの関係を
示す接続情報を読み込みシミュレータ内のデータを構築
する。試験生成部6はシミュレータの動作記述で表現さ
れ論理シミュレーションとして行う処理の他、シミュレ
ータを使用しない別のソフトウェア処理、、シミュレー
タの動作記述で表現されるが別の計算機上で動作しファ
イルインターフェイスやプロセス間通信でシミュレーシ
ョンと同期を取る、のいづれかの方法を取り得るように
構成されている。
Next, the execution of the simulation will be described. The simulator is started separately from the generation of the test data described above.
The connection information between the gates of the non-verification target circuit, the operation description of the non-verification target circuit, the operation description of the monitor unit 7, and the connection information indicating these relationships are read to construct data in the simulator. The test generator 6 is a process which is expressed by a simulator operation description and is performed as a logic simulation, another software process which does not use a simulator, and which is expressed by a simulator operation description but operates on another computer, and operates on a different computer. It is configured to be able to take any one of the methods of synchronizing with the simulation in intercommunication.

【0150】シミュレータ自身の初期化完了の後は、各
回路の信号の初期値の評価が行われそれが済んだ後にモ
ニター部7に制御が移る。モニター部7ではまず、各テ
ストに共通な初期化処理を行う。全回路にリセットを供
給、主記憶3のRAMの値のように初期化に時間がかか
る処理、初期化にクロック数を多く必要とするリセット
または初期設定処理、検証対象回路1にリセットとパワ
ーオンリセットの区別がある時のパワーオンリセット処
理、乱数の初期化処理、テストの通過状況管理などの初
期化処理がある。
After the initialization of the simulator itself is completed, the initial value of the signal of each circuit is evaluated, and after that, the control is transferred to the monitor unit 7. The monitor unit 7 first performs an initialization process common to each test. A reset is supplied to all circuits, a process that takes a long time for initialization like the value of the RAM in the main memory 3, a reset or initialization process that requires a large number of clocks for initialization, a reset and power-on for the circuit to be verified 1 When there is a distinction between resets, there are power-on reset processing, random number initialization processing, and initialization processing such as test pass status management.

【0151】次にモニター部7は試験情報を読み込む。
具体的には各試験毎に別れたファイルの一覧表を読む、
一覧表に間接指定してあるファイルを読むといった操作
である。そのデータに従ったテストについて記述された
ファイルをオープンしてモニター部に対する指示をモニ
ター部7内のメモリ配列(図示せず)に格納してファイ
ルクローズ後、以下の実行を行い次のテストに移る。テ
ストが全部実行し終ったか、試験フェイル数がある敷居
値を超えたか致命的なエラーを検出した場合などの中断
条件が検出されたか、終了時刻などの外部要因による終
了条件等に遭遇するまでテストを実行し続ける。
Next, the monitor section 7 reads the test information.
Specifically, read the list of files separated for each test,
It is an operation such as reading a file specified indirectly in the list. A file describing a test according to the data is opened, an instruction to the monitor unit is stored in a memory array (not shown) in the monitor unit 7, and after the file is closed, the following execution is performed and the next test is performed. . Tests are performed until all tests have been executed, the number of test failures exceeds a certain threshold value, or an interrupt condition such as when a fatal error is detected is detected, or an end condition due to an external factor such as an end time is encountered. Keep running.

【0152】テストの初めではリセット処理を行う。基
本的にはリセット信号をモニター部7が生成し、複数サ
イクルかけて行う。リセットでは他のテストの動作履歴
に依存しないのが望ましく、非検証対象回路と検証対象
回路にリセットを掛け、前のテストでフェイルしてシミ
ュレーションモデルがどんな状態であってもごく一部の
回路を除き初期化されるようにする。しかしながら、検
証対象回路1に、カウンタを用いて長い時間をかけて初
期化する回路があると本来の試験に必要なサイクル数よ
りはるかに多くのクロックサイクル数を必要としシミュ
レーション時間がかかる。
At the beginning of the test, a reset process is performed. Basically, the monitor unit 7 generates a reset signal and performs the reset signal over a plurality of cycles. It is desirable that the reset does not depend on the operation history of other tests.Therefore, reset the non-verified circuit and the verified circuit, and fail in the previous test to reset a small part of the circuit regardless of the simulation model state. Except to be initialized. However, if the verification target circuit 1 includes a circuit that initializes over a long period of time using a counter, it requires a much larger number of clock cycles than the number of cycles required for the original test, which takes a long simulation time.

【0153】それを避ける目的で、図7のように検証対
象回路1内のカウンタの出力信号11をシミュレーション
専用の回路内の一致検出回路12と一致条件が発生したと
きにモニター部7からの条件信号13からカウンタのデー
タ入力値14を強制的に変更する一致検出回路12を用い
て、図7左下にあるタイミング例で示すようにカウンタ
の値を途中で強制的に別の値(この場合は2の時に25
3)に変えてリセット処理を少ないサイクル数で実現す
る。また、この例でいう3〜252に対応する初期化が
されないのでその分はモニター部7自身または上記の一
致検出回路12で起動された動作記述で該当するレジスタ
の値などをクロックを消費せずに初期化する。さらに
は、上記検証対象回路1内にありリセット処理後クロッ
クを用いた動作シーケンスによって設定されるフラグや
レジスタについては、上記モニター部7により任意の値
に設定することにより初期状態を高速に実現することも
可能である。
For the purpose of avoiding this, as shown in FIG. 7, the output signal 11 of the counter in the circuit 1 to be verified is output from the monitor unit 7 when the match condition is generated with the match detection circuit 12 in the circuit dedicated to simulation. As shown in the timing example at the lower left of FIG. 7, the counter value is forcibly changed to another value in the middle by using the coincidence detection circuit 12 forcibly changing the data input value 14 of the counter from the signal 13 (in this case, 25 at 2
In place of 3), the reset processing is realized with a small number of cycles. Further, since initialization corresponding to 3 to 252 in this example is not performed, the value of the corresponding register or the like in the operation description started by the monitor unit 7 or the coincidence detection circuit 12 is not consumed without using the clock. Initialize to Further, the initial state can be realized at high speed by setting the flags and registers in the circuit under verification 1 which are set by the operation sequence using the clock after the reset processing to arbitrary values by the monitor unit 7. It is also possible.

【0154】テストの初めではリセット処理の一環とし
て非検証対象回路については、単一サイクルまたは数サ
イクルのクロック以内でレジスタやメモリの初期化を行
う。非検証対象回路であるプロセッサ2がバス8より受
信するデータや応答を格納するバッファも初期化され
る。
At the beginning of the test, as a part of the reset process, the register and the memory of the non-verification target circuit are initialized within a single cycle or within a clock of several cycles. A buffer for storing data and a response received by the processor 2 as a non-verification target circuit from the bus 8 is also initialized.

【0155】次に、試験生成部6で初期値として選択し
た主記憶3のデータ、N−1次キャッシュのアドレスと
ステート値、N次キャッシュのアドレスとステート値を
個々にセットする。また、N−1次キャッシュ及びN次
キャッシュのステート値「S状態」または「E状態」で
あれば主記憶3と同じ値がセットされる。N−1次キャ
ッシュが「M状態」の時にはN−1次キャッシュに正し
い値がセットされ、N次キャッシュ及び主記憶3にはわ
ざと誤ったデータがセットされる。N−1次キャッシュ
が「M状態」以外でN次キャッシュが「M状態」の時は
主記憶3のみ誤ったデータにしておく。これらの「誤っ
たデータ」はパリティーやECCデータの誤りではなく
「データパターンが異なる」ことを意味している。
Next, the data of the main memory 3, the address and the state value of the (N-1) -th primary cache, and the address and the state value of the N-th cache selected as the initial values by the test generator 6 are individually set. If the state value of the N-1st cache and the Nth cache is “S state” or “E state”, the same value as the main memory 3 is set. When the N-1st cache is in the "M state", a correct value is set in the N-1st cache and erroneous data is intentionally set in the Nth cache and the main memory 3. When the N-1st cache is other than the "M state" and the Nth cache is the "M state", only the main memory 3 is set to erroneous data. These “wrong data” do not mean errors in parity or ECC data, but mean “data patterns are different”.

【0156】N−1次レベルの記憶アクセスではなくN
次レベルのバスコマンドを直接発行させる試験では、N
次キャッシュが「SまたはE状態」の時に主記憶3をわ
ざと誤った状態にしてN次キャッシュをアクセスする、
主記憶3を正しくしてN次キャッシュに誤ったデータを
セットしてキャッシュバイパス命令を試験するなど、目
的によりわざと異なるデータ値をセットして動作不良を
検出し易くする。また、N次キャッシュのステート値が
「Iステート」時にアドレスをわざとセットしてステー
トが正しく反映されているかどうか試験できる。以上の
ようなセットは、試験生成部6によりシミュレータ内の
データ構造、シミュレータ外のバイナリー形式のファイ
ル、またはASCII文字で表現されたファイルによ
り、記憶のレベル、場所、キャッシュのウェイ、アドレ
ス、ステート、データについて個々にまたは統括した表
現で指定される。モニター部7はデータ構造から直接ま
たはファイルを一旦シミュレータのデータ構造に変換し
て順番にそのセットする情報を解読し、セットをする対
象とセットする値を決定する。モニター部7はセットす
る対象毎に用意されているアクセス・ルーチンを呼び出
し、アクセス・ルーチンは記憶に該当するシミュレータ
上の変数に指定された値をセットする。
N instead of N-1st level storage access
In the test for directly issuing the next level bus command, N
When the next cache is in the “S or E state”, the N main cache 3 is accessed by intentionally setting the main memory 3 to an incorrect state.
For example, by setting the main memory 3 correctly and setting erroneous data in the N-th cache and testing a cache bypass instruction, a data value that is intentionally different depending on the purpose is set to facilitate detection of an operation failure. When the state value of the N-th cache is "I state", the address can be set intentionally to test whether the state is correctly reflected. The set as described above is stored in the storage level, location, cache way, address, state, The data is specified individually or in an integrated expression. The monitor unit 7 directly converts the data structure or a file into a data structure of the simulator once, decodes the information to be set in order, and determines a set target and a value to be set. The monitor unit 7 calls an access routine prepared for each object to be set, and the access routine sets a specified value to a variable on the simulator corresponding to the storage.

【0157】非検証対象回路であるプロセッサ2及びI
/Oプロセッサ5にはN次記憶レベルのコマンド、N−
1次レベルのコマンド、それらの発行タイミングを示す
トリガ条件と遅延情報をセットする。この情報は一連の
データまたはアドレスとデータが対になった形式で試験
生成部6が作成したものであり、アクセスルーチン経由
でセットされる。
Processors 2 and I as Non-verification Target Circuits
/ O processor 5 has an N-th storage level command, N-
The primary-level commands, trigger conditions indicating their issuance timing, and delay information are set. This information is created by the test generator 6 in a series of data or a format in which an address and data are paired, and is set via an access routine.

【0158】非検証対象回路やバスモニタ9には、試験
生成部6で決定したスヌープ応答、レスポンス応答など
について応答遅延値と適用条件またはトリガ条件が合せ
て、アクセスルーチン経由でセットされる。セットされ
ない場合は既定値が使用される。
The snoop response, response response, and the like determined by the test generator 6 are set in the non-verification target circuit and the bus monitor 9 via the access routine together with the response delay value and the application condition or trigger condition. If not set, the default value is used.

【0159】バスモニタ9には既定値で決められた各種
のタイムアウト値、バス信号のエラー条件をテスト毎に
変える場合にはその値がそれぞれセットされる。試験終
了検出条件は、モニター部7内の変数をセットする。
The bus monitor 9 is set with various timeout values determined by default and the values when the error condition of the bus signal is changed for each test. As the test end detection condition, a variable in the monitor unit 7 is set.

【0160】以上で、リセット値に加えて初期条件の設
定が終了し、シミュレーションのモニタ動作に入る。モ
ニター部7は「動作開始」を指示する。この指示は試験
生成部6により直接指示される場合と暗黙の内に開始さ
れる場合がある。この「動作開始」から「終了条件検
出」または「中断条件検出」まで、モニター部7はバス
モニタ9の信号、試験対象回路1に付加した異常条件検
出信号、非検証対象回路が駆動する異常条件検出信号を
モニタしながら、クロックを供給し続ける。終了条件は
非検証対象回路より出力される「終了状態」をモニター
部7が判定し、非検証対象回路および検証対象回路1の
ステートマシンなどがアイドル状態になりすべての動作
の結果がメモリに反映されるまで待って「終了条件」に
よりクロックを停止する。
As described above, the setting of the initial condition in addition to the reset value is completed, and the monitoring operation of the simulation is started. The monitor unit 7 instructs “operation start”. This instruction may be issued directly by the test generator 6 or may be started implicitly. From this “operation start” to “end condition detection” or “interruption condition detection”, the monitor unit 7 outputs a signal of the bus monitor 9, an abnormal condition detection signal added to the test target circuit 1, and an abnormal condition driven by the non-verification target circuit. Continue to supply the clock while monitoring the detection signal. As for the end condition, the monitor unit 7 determines the “end state” output from the non-verification target circuit, and the non-verification target circuit and the state machine of the verification target circuit 1 enter an idle state, and the results of all operations are reflected in the memory. After that, the clock is stopped by the "end condition".

【0161】バスモニタ9は図4に示したようなエラー
チェックを行っている。すなわち、バスプロトコルで規
定されている各トランザクション内の信号間の規則につ
いてチェックする。例えば、図4において2つの信号間
の駆動タイミングの最低の間隔、2つの信号間の間隔の
最大値、信号の駆動の順番のチェック20など。また、あ
るトランザクションと他のトランザクションにおいて、
同一信号間の間隔のチェック21、別の信号間の間隔。ま
た、リクエスト発行元の発行時点におけるキャッシュの
状態とリクエストコードの矛盾のチェック22は、バスモ
ニタ9がリクエスト受信時にバスより受信したアドレス
と送信元を示す信号をもとにシミュレーションモニタの
関数を呼び出してリクエスト元のキャッシュ状態を調べ
て矛盾していればエラーとなる。また、上記バスモニタ
9は各バス8のバストランザクションをチェックしその
バスプロトコルについてバス調停結果とリクエスト発行
エージェントの合致、リクエストコードとアドレス範囲
の矛盾、リクエストコードとデータ転送長の矛盾、未定
義コード値でない、応答が分離不可能なトランザクショ
ンの分離応答、これらのプロトコル違反の内のいずれか
の有無をチェックし、違反検出時にモニター部7に通知
後、モニター部7によりシミュレーションを中断させ
る。
The bus monitor 9 performs an error check as shown in FIG. That is, the rules between signals in each transaction specified by the bus protocol are checked. For example, in FIG. 4, the minimum interval of the drive timing between the two signals, the maximum value of the interval between the two signals, the check 20 of the order of driving the signals, and the like. Also, in one transaction and another transaction,
Check the spacing between identical signals 21, the spacing between different signals. The check 22 for the inconsistency between the cache state at the time of issuing the request source and the request code is performed by the bus monitor 9 calling the function of the simulation monitor based on the address received from the bus and the signal indicating the source at the time of receiving the request. Check the cache state of the request source and if an inconsistency is found, an error occurs. The bus monitor 9 checks the bus transaction of each bus 8 and matches the bus arbitration result with the request issuing agent for the bus protocol, inconsistency in request code and address range, inconsistency in request code and data transfer length, undefined code. A check is made to determine whether any of these protocol violations, which is not a value, and a response whose response cannot be separated, or any of these protocol violations, is notified to the monitor unit 7 when a violation is detected, and then the monitor unit 7 interrupts the simulation.

【0162】また、上記バスモニタ9は各バス8のバス
トランザクションをチェックしそれらのバストランザク
ションについて既に発行済のN個から1個前までのバス
トランザクションとの間の、シェークハンド信号間の矛
盾、パイプラインステージの追い越し、応答信号のタイ
ムアウト、分離型バストランザクションの応答トランザ
クション抜け、分離応答トランザクションによる元のト
ランザクションの追い越し、各パイプラインステージの
溢れ、これらのプロトコル違反の内のいずれかの有無を
チェックし、違反検出時にモニター部7に通知後、モニ
ター部7によりシミュレーションを中断させる。また、
バスリクエストを保存しておきバストランザクションの
終了を受信した後、一定時間としての固定サイクル待っ
たあとで23のようにリクエスト発行元のキャッシュ状態
をシミュレーションモニタの関数を呼び出してチェック
し矛盾があればエラーとする。また、バス上でスヌープ
応答やレスポンス応答が24や25のようにリクエストコー
ドまたはリクエストコードとリクエスト元の発行時点の
キャッシュ状態に矛盾する応答を受信したらエラーとす
る。またバス上の信号を安定したタイミングとして既定
されたクロックのエッジでサンプリングして、「1」、
「0」、「不定値」からなる3値シミュレーションで表
現される「不定値」であれば26のようにエラーとする。
また意味のある信号値としてサンプリングされる条件の
時にハイインピーダンス値も同様にエラーとする。さら
には、上記バスモニタ9は各バス8の信号について複数
のエージェントが同時に異なる値を上記バスに対して駆
動したとき上記シミュレーションモデル上の信号値より
不定値又は信号強度の異常をチェックし、異常検出時に
モニター部7に通知後、モニター部7によりシミュレー
ションを中断させる。
Further, the bus monitor 9 checks the bus transactions of each bus 8, and finds inconsistencies between the shake hand signals between the N bus transactions and the bus transactions that have already been issued for these bus transactions. Checks for any of the following: pipeline overtaking, response signal timeout, detached bus transaction response transaction omission, detached response transaction overtaking original transaction, overflow of each pipeline stage, protocol violation Then, after the violation is detected, the monitor 7 is notified and then the simulation is interrupted by the monitor 7. Also,
After saving the bus request and receiving the end of the bus transaction, after waiting for a fixed cycle as a fixed time, check the cache state of the request issuer by calling the simulation monitor function as shown in 23 and if there is an inconsistency, an error And If a snoop response or a response such as 24 or 25 is received on the bus, the request code or a response inconsistent with the request code and the cache state at the time of issuing the request source is regarded as an error. Also, the signal on the bus is sampled at a predetermined clock edge as a stable timing, and "1",
If the value is “undefined value” expressed by a ternary simulation consisting of “0” and “undefined value”, an error is generated as indicated by 26.
Similarly, a high impedance value is regarded as an error when the signal is sampled as a meaningful signal value. Further, when a plurality of agents simultaneously drive different values for the signals on each bus 8 to the buses, the bus monitor 9 checks the signal values on the simulation model for indefinite values or abnormal signal strengths. After notifying the monitor unit 7 at the time of detection, the monitor unit 7 interrupts the simulation.

【0163】またパリティーやECCコードのような冗
長ビットを持つ信号に対してはその信号が意味あるサイ
クルでかつクロックのエッジでサンプルして不正データ
であればエラーとするチェック27を行う。このようなエ
ラーチェック条件は「エラー処理」の検証時には生成時
点で個々に抑止するよう設定される。またタイムアウト
値についても規定値では不足する可能性があるときには
試験生成部6が適切に設定する。また前のテストでエラ
ーになった後は次のテストの開始時点ではその状態が残
っていることがあるのでテストの開始からリセットの終
了迄の時間に固定サイクルを加えた期間はこれらのエラ
ー検出はシミュレーションモニタからの信号によりバス
モニタ9が抑止する。ここで検出されたエラーは異常条
件としてモニター部7に伝えられ、モニター部7により
シミュレーションを中断させる。
For a signal having a redundant bit such as a parity or an ECC code, the signal is sampled in a meaningful cycle and at a clock edge, and if the data is invalid data, a check 27 is performed to determine an error. Such error check conditions are set to be individually suppressed at the time of generation at the time of “error processing” verification. Also, when there is a possibility that the timeout value is insufficient with the specified value, the test generation unit 6 appropriately sets the timeout value. Also, after an error in the previous test, the state may remain at the start of the next test, so these errors are detected during the period from the start of the test to the end of reset plus a fixed cycle. Is suppressed by the bus monitor 9 by a signal from the simulation monitor. The detected error is transmitted to the monitor unit 7 as an abnormal condition, and the monitor unit 7 interrupts the simulation.

【0164】また、図5に示すように検証対象回路1に
具備されているエラー検出信号30をモニター部7が毎サ
イクルチェックしてエラーを示す値になったときまたは
その信号が「不定値」になった時に期待しないエラーと
して試験中断する。エラー検出の試験をする時はエラー
信号が駆動されるLSI毎にチェックの抑止を行い期待
しないエラーのみ異常条件として拾う。また、上記検証
対象回路1はエラーの内容を判別できるフラグを備え、
上記モニタ部は上記検証対象回路1のリセット動作中お
よびリセット動作直後に誤動作しないように上記フラグ
のセット状態を無視又はリセットする手段を具備し上記
フラグの種別がセットされた状態のときはシミュレーシ
ョンを中断させる。
Also, as shown in FIG. 5, when the monitor unit 7 checks the error detection signal 30 provided in the circuit under test 1 every cycle and reaches a value indicating an error, or when the signal indicates an “undefined value”. The test is aborted as an unexpected error when When testing for error detection, check is suppressed for each LSI driven by the error signal, and only unexpected errors are picked up as abnormal conditions. The verification target circuit 1 includes a flag that can determine the content of the error.
The monitor unit has means for ignoring or resetting the set state of the flag so as not to malfunction during the reset operation of the circuit under test 1 and immediately after the reset operation. When the type of the flag is set, a simulation is performed. Interrupt.

【0165】また、図5に示すように検証対象回路1に
はもともと含まれていないエラーチェック回路としての
シミュレーション専用付加回路10を外部に付加して動作
の矛盾を見つける。具体的にはフラグレジスタなどの矛
盾条件やステートマシンの不正な遷移状態がある。また
図示していない信号で「試験終了」をモニター部7から
連絡を受け検証対象回路1中の指定されたフラグ類を全
部チェックしてアイドル状態に戻っていることをチェッ
クし、モニター部7に伝えられ、モニター部7によりシ
ミュレーションを中断させる。ここで、モニター部7が
上記検証対象回路1中の指定されたフラグ類を全部チェ
ックしてアイドル状態に戻っていることをチェックして
もよい。
As shown in FIG. 5, an additional circuit dedicated to simulation 10 as an error check circuit which is not originally included in the circuit under test 1 is added to the outside to find inconsistencies in operation. Specifically, there are inconsistent conditions such as a flag register and an illegal transition state of a state machine. In addition, a signal (not shown) indicating “test completed” is received from the monitor unit 7, all designated flags in the circuit under verification 1 are checked, and it is checked that the circuit has returned to the idle state. Then, the simulation is interrupted by the monitor unit 7. Here, the monitor unit 7 may check all of the designated flags in the circuit under verification 1 to check that it has returned to the idle state.

【0166】以上でモニタ動作は完了し、テストの結果
の検査に入る。試験生成部6により指定された、レジス
タ、バッファ、キャッシュ、主記憶3について値を検査
して行く。キャッシュについては、N次レベルのコマン
ド実行の結果はウェイも指定されステート値も細かく比
較される。N−1次レベルのコマンド実行の結果は、す
べてのキャッシュに対してアドレスをキーにしてステー
トがSかEならばデータ値が比較される。Mの時はM状
態を持つ最下位のキャッシュのみデータ値がチェックさ
れそれ以外のM状態を持つキャッシュのデータ値は比較
されない。主記憶についてはN次がM状態以外であれば
データ値が比較される。以上の比較については、試験生
成部6よりマスク指定があればマスク値と比較対象の値
のANDをとりその結果と、指定がなければ比較対象値
と、それぞれ比較値が一致しているかどうか検査し、不
一致であればその旨をファイル出力してテスト毎のエラ
ーカウントを+1する。
Thus, the monitor operation is completed, and the inspection of the result of the test is started. The values of the register, buffer, cache, and main memory 3 specified by the test generator 6 are checked. As for the cache, the result of the execution of the command at the Nth level is specified by the way and the state value is compared in detail. As for the result of the execution of the (N-1) th level command, if the state is S or E, the data value is compared for all the caches using the address as a key. In the case of M, the data value is checked only for the lowest cache having the M state, and the data values of the other caches having the M state are not compared. As for the main memory, the data value is compared if the Nth order is other than the M state. For the above comparison, if the mask is designated by the test generation unit 6, an AND operation is performed between the mask value and the value to be compared, if not, and whether the comparison value matches the comparison value if there is no designation is checked. If they do not match, that fact is output to a file and the error count for each test is incremented by one.

【0167】エラーもなく、またキャッシュやメモリの
値に矛盾がない場合であっても「性能が低下する」不具
合というものがある。これはリトライなどの条件に誤り
があり必要以上に無駄な動きをする場合があり、そのよ
うな不具合を検出する場合は、バスモニタ9がバス8上
のトランザクション数をカウントしておきこの値を期待
値と比較する。また、トランザクション数は同じであっ
てもクロックサイクル数レベルで余分な動作が入り性能
が低下する場合があり、そのような不具合を検出する時
は、バスモニタ9がトランザクション単位に信号と信号
間のサイクル数を計数し、シミュレーション終了時点で
読み出して期待値と比較する。
Even if there is no error and there is no inconsistency in cache and memory values, there is a problem that "performance is reduced". This may cause an error in the retry or other conditions and cause unnecessary movement. If such a defect is detected, the bus monitor 9 counts the number of transactions on the bus 8 and calculates this value. Compare with expected value. In addition, even if the number of transactions is the same, extra operations may occur at the level of the number of clock cycles and the performance may be degraded. The number of cycles is counted, read at the end of the simulation, and compared with the expected value.

【0168】テストのシミュレーション終了が「終了条
件」ではなく「異常条件検出」による場合は、検出元が
その旨をモニター部7経由でファイル出力し、一方モニ
ター部7はエラーカウントを+1する。
If the end of the test simulation is based on "abnormal condition detection" instead of "end condition", the detection source outputs the fact to the file via the monitor unit 7, while the monitor unit 7 increments the error count by +1.

【0169】以上で、一つのテストの実行が完了し、モ
ニター部7のテスト管理では、エラーカウントを見てそ
のテストの合格・不合格を認識し、不合格であれば全体
のエラーテストカウント値を+1し、その結果が予め定
めた値を超したら次のテストの実行を止めて試験全体を
終了させる。そうでないときは次のテストの実行に移
る。全部のテストを完了すればシミュレータに終了を告
げシミュレーションを完了する。
As described above, the execution of one test is completed. In the test management of the monitor unit 7, the pass / fail of the test is recognized by looking at the error count. Is incremented by 1, and when the result exceeds a predetermined value, the execution of the next test is stopped and the entire test is terminated. If not, proceed to the next test. When all tests are completed, the simulator is notified and the simulation is completed.

【0170】実施の形態2.図1に示した論理シミュレ
ーション方法を実施するためのシミュレータの内部シス
テムにおいて、試験生成部6で、共有アドレスと非共有
アドレスの管理、共有アドレス同士の管理、最終データ
値の管理など色々な制御を統一的に行うために、使用し
た全てのキャッシュラインアドレスについてテーブル上
に情報を持ち、非共有アドレスに関するあらたなリクエ
スト生成時にそのテーブルに無いアドレスを選択し、共
有アドレスでかつ新規アドレスに関するあらたなリクエ
スト生成時にそのテーブルに無いアドレスを選択し、共
有アドレスで既存アドレスに関するあらたなリクエスト
生成時にはそのテーブルに存在するアドレス群の中から
任意のものを選択し、ライト系リクエストではテーブル
上のエントリに書き込み値を更新してゆく。
Embodiment 2 In the internal system of the simulator for performing the logic simulation method shown in FIG. 1, the test generation unit 6 performs various controls such as management of shared addresses and non-shared addresses, management of shared addresses, and management of final data values. In order to perform unified processing, information on all used cache line addresses is stored in a table, and when a new request for a non-shared address is generated, an address that is not in the table is selected, and a new request for a shared address and a new address is selected. Select an address that does not exist in the table at the time of generation, select an arbitrary address from the group of addresses existing in the table when generating a new request for an existing address with a shared address, and write a value to the entry on the table for a write request Will be updated.

【0171】また、試験カバレッジは若干低下するが、
共有アドレスについてはリクエストとしてはライト系で
はあるが値を変更しないコマンドをプロセッサに用意し
てデータの期待値確定を簡略化して試験しても良い。そ
の場合、動作がハングしなければ試験の目的はほぼ達成
できる。即ち、上記共有アドレスに対する読み出し専用
領域のアドレスをそのアドレスのビットパターンから一
意的に求まるように定め、プロセッサ2により発行する
リクエストのアドレスを決定後それらのアドレスからア
クセスする領域が読み出し専用領域か又はそれ以外の変
更可能領域かを判定してリクエストの種別を決定するも
のである。
Further, although the test coverage is slightly lowered,
For the shared address, a command that is a write-related but does not change the value may be prepared in the processor as a request, and the determination of the expected value of the data may be simplified and tested. In that case, if the operation does not hang, the purpose of the test can be almost achieved. That is, the address of the read-only area for the shared address is determined so as to be uniquely determined from the bit pattern of the address, and after the address of the request issued by the processor 2 is determined, the area accessed from those addresses is the read-only area or The type of the request is determined by determining whether the area is a changeable area other than the above.

【0172】また、試験カバレッジは若干低下するが、
共有アドレスについて同一テスト内で同一プロセッサか
ら同一アドレスへのリクエストを禁止することにより、
命令動作の逐次化制御などの複雑さがなくなり、試験生
成が簡素化する。
Further, although the test coverage slightly decreases,
By prohibiting requests from the same processor to the same address in the same test for shared addresses,
Complexity such as control of serialization of instruction operation is eliminated, and test generation is simplified.

【0173】試験生成部6で、N次キャッシュレベルの
アクセスとN−1次キャッシュレベルのアクセスの混在
を可能にするためにN次キャッシュのインデックス値に
該当するアドレスビットをそれぞれのアクセスで排他に
なるように制御しているが、実施の形態1のような簡単
な区別では無くN次キャッシュレベルのアクセスアドレ
スとN−1次キャッシュレベルのアクセスアドレスのそ
れぞれにテーブルを持ち、すでに割り付けたアドレスの
全ビットまたはインデックスに相当した部分をテーブル
に記録し、互いに他のアクセスで生成したインデックス
値を使用しないようにアドレスを選択してもよい。また
このような2種のテーブルではなく数種の情報を入れた
テーブルにし、乱数などで選んだアドレスがて他のアク
セスで既に使用したインデックスにぶつからないように
チェックしながらぶつかったら再選択する方法でも良
い。
In order to enable the mixture of the access of the N-th cache level and the access of the N-1th cache level, the test generation unit 6 exclusively sets the address bits corresponding to the index value of the N-th cache in each access. However, this is not a simple distinction as in the first embodiment, but a table is provided for each of the access address of the Nth cache level and the access address of the N-1th cache level. All bits or a portion corresponding to an index may be recorded in a table, and an address may be selected such that an index value generated by another access is not used. Also, instead of these two types of tables, make a table containing several types of information, check if the address selected by random numbers does not collide with the index already used for other access, and reselect it if it collides But it is good.

【0174】バス8上の信号を遅延動作するときに、遅
延要素となるある信号の挙動が時刻とともに変わらない
と多様な条件が発生できない。実施の形態1で示したよ
うな木目細かな条件を同一信号に対して複数個、個別に
指定できるようにしても良い。そうすることにより他の
条件を固定してある条件を中心にタイミングを色々と振
った試験が効率よく生成できる。また、検証対象回路1
以外のエージェントの動作条件及びバス8上の信号の遅
延条件は第1の条件を適用後第2の条件を適用するよう
に段階的に設定可能とすることにより、更に多様な条件
下でのテストが実施可能となる。
When a signal on the bus 8 is delayed, various conditions cannot be generated unless the behavior of a signal serving as a delay element changes with time. A plurality of fine-grained conditions as described in the first embodiment may be individually specified for the same signal. By doing so, it is possible to efficiently generate a test in which the timing is variously varied around a certain condition where other conditions are fixed. In addition, the verification target circuit 1
The operating conditions of the agents other than the above and the delay condition of the signal on the bus 8 can be set stepwise so that the first condition is applied and then the second condition is applied, so that the test under more various conditions can be performed. Can be implemented.

【0175】試験生成部6で使用する遅延値は基本的に
乱数と分布定数を指定して使用するが、ある遅延項目に
ついて複数の乱数分布表をもってもよい。ひとつの例は
単一のテストの中であっても、現実の動作に合せたもっ
ともらしい振る舞いの確率を高める場合がある。それは
2つの要素、例えばリクエストがr1とr2、スヌープ
がs1とs2がありそれぞれについて個別に頻度を決め
ると50%づつになってしまうが、r1/s1が40
%、r2/s2が40%、r1/s2が10%、r2/
s1が10%にしたい場合でも組み合せの指定ができな
いとすべて50%づつにしないと偏ってしまい結果とし
て25%、25%、25%、25%となり比重を上げて
行いたい試験の比重が下がってしまい、無駄を生じる。
Although the delay value used in the test generator 6 is basically used by designating a random number and a distribution constant, a plurality of random number distribution tables may be provided for a certain delay item. One example may be to increase the probability of plausible behavior tailored to real-world behavior, even within a single test. There are two elements, for example, requests are r1 and r2, snoops are s1 and s2, and if the frequency is determined individually for each, it will be 50%, but r1 / s1 is 40
%, R2 / s2 is 40%, r1 / s2 is 10%, r2 /
Even if s1 is set to 10%, unless the combination can be specified, all of them are biased unless they are set to 50%. As a result, the specific gravity becomes 25%, 25%, 25%, and 25%. It is wasteful.

【0176】従って、個々にカスタマイズした条件で乱
数分布を規定できると生成は複雑化するがシミュレーシ
ョン効率は向上する。また、試験生成部6で指定せずに
シミュレーションモデルがシミュレーション実行時に使
用する遅延値の乱数に於いても同様である。2点目は、
各テストにより複数用意した乱数分布を切り替えながら
試験生成とシミュレーションを行うものである。それ
は、テストの条件を特定化した複数の条件について順に
行うのではなく、一様に舐めて行く方法に必要な機能で
あり、合否判定を行いたいときにどれか一つでもエラー
になったらすぐにテストを中断したい場合に有効で最も
早く結果を知りたいときに効果を発揮する。
Therefore, if the random number distribution can be defined under individually customized conditions, the generation becomes complicated, but the simulation efficiency is improved. The same applies to the random number of the delay value used by the simulation model at the time of executing the simulation without specifying it in the test generator 6. The second point is
Test generation and simulation are performed while switching a plurality of random number distributions prepared for each test. It is a function necessary for a method of licking uniformly, rather than sequentially performing multiple conditions that specify test conditions, as soon as one of the errors occurs when you want to make a pass / fail judgment It is effective when you want to interrupt the test and is effective when you want to know the result as soon as possible.

【0177】検証対象回路1がセットアソシアティブ方
式のキャッシュを使用しかつパイプライン処理を行って
いるときには、アドレスの一致性の制御が複雑になりセ
ットを決定するキャッシュタグのRAMのインデックス
相当のアドレスまたはその一部が同一のアクセスは互い
に干渉しあって不具合を引き起こしたり、設計上敢えて
動作を鈍らせて確実に処理することが多く、他の条件と
異なる挙動を示す。また、キャッシュラインのリプレー
ス動作を起こすには同一セットへのアクセス頻度を上げ
る必要がある。実際の確率では1/100〜1/数万の
確率ではあるが、動作の難しさという点では検証条件の
半分以上を占めることが経験上分かっている。そこで検
証の確率を改善するためにインデックス値を制限してそ
のなかで乱数を使用してインデックス値を決定する。
When the circuit 1 to be verified uses a cache of the set associative system and performs pipeline processing, the control of the coincidence of the addresses becomes complicated and an address or an index corresponding to the index of the RAM of the cache tag for determining the set is determined. A part of the same accesses interfere with each other to cause a problem, and the operation is often deliberately deliberately deliberately processed, and thus behaves differently from other conditions. Further, in order to cause a cache line replacement operation, it is necessary to increase the frequency of access to the same set. Although the actual probability is a probability of 1/100 to 1 / tens of thousands, it is empirically known that it occupies more than half of the verification condition in terms of the difficulty of operation. Therefore, in order to improve the probability of verification, the index value is limited, and the index value is determined using random numbers.

【0178】例を挙げるとタグRAMのインデックスが
16ビットの時に、テストあたり20個のバストランザ
クションを発生すると同一テスト内で同じインデックス
のトランザクションが出現する確率は近似的には20/
65536となり3000個に1回しか発生しなくなり
しかも互いに影響しあう確率は0に近くなる。そこでテ
ストの中で使用するインデックス値を10個に限定すれ
ばテストあたり同一インデックスが平均2回は出現する
ことになり、さらに動作に影響のあるタイミング条件に
ついて考えると1/3ぐらいはインデックス一致条件を
作れることになる。具体的な生成時の処理としては、イ
ンデックス値を0〜4と65531〜65535に限定
して10個に制限する、16ビット中のビット13〜2
を2進数の010101010110に固定して残りの
4ビットから生成できる16個に制限する、乱数を10
個選択してテーブル上に登録してそのどれを選ぶかをさ
らに乱数で決めるなどである。このようにプロセッサ又
は上記検証対象回路に接続された他のエージェントがリ
クエストとして使用するアドレスの内キャッシュのイン
デックスを決定するアドレスのビットパターンを限定し
その限定された範囲において乱数によりアドレスを選択
することにより各セットに対応した複雑な動作を高い確
率で実現できる。また、キャッシュのインデックスの上
位部のアドレスビットパターンの種類を制限してもよ
い。
For example, when the index of the tag RAM is 16 bits, if 20 bus transactions are generated per test, the probability that the transaction of the same index appears in the same test is approximately 20 /.
65536, which occurs only once in 3,000 pieces, and the probability of mutual influence is close to zero. Therefore, if the number of index values used in the test is limited to 10, the same index will appear twice on average per test. Further, considering the timing conditions that affect the operation, about 1/3 of the index matching conditions Can be made. As a specific processing at the time of generation, the index values are limited to 0 to 4 and 65531 to 65535, and are limited to 10 bits.
Is fixed to 010101010110 of a binary number and limited to 16 which can be generated from the remaining 4 bits.
Individuals are selected, registered on a table, and which of them is selected is further determined by a random number. In this way, the bit pattern of the address that determines the index of the cache among the addresses used as requests by the processor or the other agent connected to the circuit to be verified is limited, and the address is selected by a random number within the limited range. Thus, a complicated operation corresponding to each set can be realized with a high probability. Further, the type of the address bit pattern in the upper part of the cache index may be limited.

【0179】また、単純にインデックス値を制限すると
インデックス一致の動作比率が高くなりすぎ偏ることも
想定される。その時はインデックス一致と不一致の確率
をあらかじめ試験生成部6に指示しておき、一致制御の
時のみ制限されたしたインデックス値を選択すれば動作
は多様化する。
It is also assumed that simply limiting the index value may cause an excessively high index matching operation ratio to be biased. At this time, the operation is diversified by instructing the test generation unit 6 in advance on the probability of index match and mismatch, and selecting a restricted index value only during match control.

【0180】また、実施の形態1で示した共有アドレス
の選択を行う時に、乱数を単純に使用すると確率的にア
ドレスの一致は発生し得ない。そこで上記インデックス
の制限に併せてアドレス上位部のパターンを制限すると
同一アドレスへのアクセスが確率が飛躍的に高くなる。
制限の仕方は、殆どのビットのビットパターンを固定す
る、ビットで表現される値の範囲を小さくする、あらか
じめ制限した数だけ乱数によりアドレス上位部のビット
パターンを求めておき乱数でどれを使用するか決める。
また、インデックスの制御と独立に行わず、制限した数
だけ共有アドレスの全ビットをあらかじめ決めておき、
共有アドレスと非共有アドレスの頻度にしたがってどち
らのアドレスを生成するか乱数でまず決めておき、共有
アドレスの時はあらかじめ決めた中から選ぶようにすれ
ばより直接的に頻度を制御できる。
In addition, when a shared address is selected as described in the first embodiment, if a random number is simply used, an address match cannot be stochastically generated. Therefore, if the pattern of the upper part of the address is restricted in accordance with the restriction of the index, the probability of accessing the same address is dramatically increased.
The method of restriction is to fix the bit pattern of most bits, to reduce the range of the value represented by the bits, to obtain the bit pattern of the upper address part of the address by a limited number of random numbers in advance, and to use any of the random numbers Decide.
In addition, all bits of the shared address are determined in advance by a limited number without performing independently of index control,
It is possible to control the frequency more directly by first determining which address is to be generated according to the frequency of the shared address or the non-shared address by using a random number, and selecting a shared address from among predetermined ones.

【0181】また、キャッシュラインのリプレース処理
やリプレースによる追い出し直後のアクセスの検証を行
おうとすると、4ウェイ以上のセットアソシアティブ方
式のキャッシュではリプレース頻度が低く試験に適さな
い。そこで非検証対象回路または検証対象回路のウェイ
縮退機能を用いて2ウェイや1ウェイに制限してその発
生頻度を高める。ウェイ単位でなくライン毎に縮退機能
があればそれを用いても良い。このように動作しうるウ
ェイの個数を選択してリプレース頻度を上げることも確
率を含めた試験カバレッジの改善に効果がある。
Further, if an attempt is made to verify cache line replacement processing or access immediately after eviction by replacement, a set-associative cache having four or more ways has a low replacement frequency and is not suitable for testing. Therefore, the frequency of occurrence is increased by limiting the number of ways to two or one using the way reduction function of the non-verification target circuit or the verification target circuit. If a degeneration function is provided for each line instead of for each way, it may be used. Increasing the replacement frequency by selecting the number of ways that can operate in this manner is also effective in improving test coverage including probability.

【0182】バス8上に現れるトランザクションとし
て、キャッシュの全エントリを無効化する、キャッシュ
の全エントリについてM状態のものは主記憶3へ書き戻
すといったトランザクションがあるとキャッシュ容量が
大きいとかなりのクロックサイクル数を必要とする。そ
のような動作においては単一動作では1エントリ分の動
作を検証すれば他の動作は同じである。他のトランザク
ションとの組み合わせということでは先頭の処理と最後
の処理と中間の処理について実現すれば検証としてはカ
バレッジを達成できるのに、全エントリの処理を行うと
非常に時間が掛かり、この処理と他の処理の組み合わせ
条件を検証しないカバレッジ抜けを残すという問題があ
る。そこで、図8に示した検証対象回路中にあるエント
リの位置を変えてゆくカウンタの出力信号41の加算して
行く値を監視しその値が4になったらカウンタの次の値
が65532になるようにカウンタ値を65531に強
制的にセットし、0、1、2、3、65532、655
33、65534、65535の8エントリのみ検証対
象実行しシミュレーションを省略する。その時に、イン
デックス値4〜65531に対応するキャッシュエント
リが埋まらないように生成するかもしくは比較しないよ
うにアドレスの使用を制限する。そうすることにより短
時間でカバレッジを拡大できる。
As transactions appearing on the bus 8, all transactions in the cache are invalidated, and all entries in the cache are written back to the main memory 3 for all entries in the M state. Need a number. In such an operation, if the operation for one entry is verified in the single operation, the other operations are the same. In terms of combination with other transactions, if the first processing, the last processing, and the intermediate processing are realized, coverage can be achieved as verification, but processing all entries takes a lot of time, and this processing and There is a problem that a coverage omission which does not verify a combination condition of other processing remains. Therefore, the value added to the output signal 41 of the counter changing the position of the entry in the circuit to be verified shown in FIG. 8 is monitored, and when the value becomes 4, the next value of the counter becomes 65532. , The counter value is forcibly set to 65531, and 0, 1, 2, 3, 65532, 655
Only eight entries of 33, 65534, and 65535 are to be verified and the simulation is omitted. At this time, the use of addresses is restricted so that cache entries corresponding to index values 4 to 65531 are generated so as not to be filled or are not compared. By doing so, coverage can be expanded in a short time.

【0183】また、上記の制限、すなわち飛ばしたイン
デックスに対応するキャッシュエントリが埋まらないよ
うに生成するかもしくは比較しないようにする、を緩和
してもよい。具体的には、カウンタで飛ばしたエントリ
に関してキャッシュが状態Mかどうかの判定を行う、状
態Mの時にN次キャッシュが正しいかN−1次キャッシ
ュが正しいか判定をする、状態Mのデータ値を得て、そ
のデータを主記憶3に書き込む、カウンタで飛ばしたエ
ントリに関するN次キャッシュ及びN−1次キャッシュ
の無効化をモニター部7がクロックを消費せずに代行す
る。このようにすることで制限を取り払い制限によるカ
バレッジの低下を阻止できる。
In addition, the above-mentioned restriction, that is, generation or non-comparison of a cache entry corresponding to a skipped index may be relaxed. More specifically, a determination is made as to whether the cache is in state M with respect to the entry skipped by the counter. In the state M, it is determined whether the N-order cache is correct or the N-1st cache is correct. Then, the monitor 7 writes the data to the main memory 3 and invalidates the N-th and N-th primary caches for the entries skipped by the counter without consuming the clock. By doing so, it is possible to remove the restriction and prevent a decrease in coverage due to the restriction.

【0184】試験生成部6で、アドレスやキャッシュ・
ウェイを乱数を引いて決定する時に、求めた値に該当す
るキャッシュのインデックス、ウェイ、やその他のアド
レスの一部を決めるビット値がすでに「使用済み」の時
に実施の形態1のように「空き」を見つけるまで乱数を
引き続けるのではなく、「空き」の数を識別記号により
インデックス、ウェイ等を管理可能なテーブルで管理し
て使用の度に−1して常に残りの空きを把握して空き全
体を100%として乱数値の%に対応する値を計算して
も良い。具体的には、使用済みの値を飛ばしながらカウ
ントし該当するカウント値を求める。ウェイ数が8で、
すでにウェイ0と2が使用済みの実例を示すと次のよう
になる。
In the test generator 6, the address and the cache
When the way is determined by subtracting a random number, when the bit value that determines a part of the cache index, way, and other addresses corresponding to the obtained value is already “used”, as in the first embodiment, “empty” Instead of continuing to pull the random number until finding "," manage the number of "free" in the table that can manage the index, way, etc. by the identification symbol, and decrement by 1 each time it is used, and always grasp the remaining free The value corresponding to% of the random number value may be calculated with the entire vacancy as 100%. Specifically, counting is performed while skipping the used value, and a corresponding count value is obtained. The number of ways is 8,
An example in which ways 0 and 2 have already been used is as follows.

【0185】乱数値を求めた結果が0.42とすると、
8個中6個しか空きがないので、6×0.42=2.5
2となり空きの3個目(1オリジンで考えて)を使用す
ることになる。使用済みのテーブルをウェイ0から7に
向かって使用済みかどうか検索しながら空きのカウント
をしてゆくと、ウェイ0は使用済みなのでカウントは0
のまま、ウェイ1は空きなので1、ウェイ2は使用済み
なので1のまま、ウェイ3は空きなので2である。ここ
で割り付けたい値は2.52なのでカウント値3に相当
する。従ってウェイ4を選択することになる。
Assuming that the result of calculating the random number value is 0.42,
6 × 0.42 = 2.5
It becomes 2, and the third empty one (think of 1 origin) will be used. As the used table is counted from way 0 to way 7 to see if it has been used, the count becomes 0 because way 0 is used.
As it is, way 1 is empty and thus 1 is used, and way 2 is already used because it is already used. Here, the value to be assigned is 2.52, which corresponds to the count value 3. Therefore, way 4 is selected.

【0186】このような方法を用いると、いたずらに乱
数を引くことなく一定の処理時間で解が求まり生成処理
時間が確定する。特に使用するアドレス数などに制限を
与えた条件を使用ししかもひとつのテストで実行するバ
ストランザクション数が多い場合にはこの方法が生成処
理時間を短縮する効果がある。インデックスや他のビッ
トについても同様な処理がされる。
Using such a method, a solution is obtained in a fixed processing time without unnecessarily drawing random numbers, and the generation processing time is determined. This method has the effect of shortening the generation processing time, especially when conditions that limit the number of addresses to be used are used and the number of bus transactions executed in one test is large. Similar processing is performed on the index and other bits.

【0187】従来は実機で論理不具合をデバッグしたの
と同様な効果を、乱数を用いて種種のパラメータを決定
してシミュレーションで不具合を見つけて行くことがで
きる。その時に、正常に動作したテストデータは捨てて
ゆき、動作不良を起こしたテストデータは再現試験のた
めに残して置く。しかしながら自動的に生成と実行を繰
り返して行っても動作不良のテストデータが溜まってゆ
き、解析作業が間に合わないとディスクのデータ量が膨
らんでゆく。それを改善するため、乱数要素を含んでい
ない乱数を使用したルーチンである「生成の指示情報」
と使用した「乱数情報」をシミュレーションの実行ログ
に残しておけば、再現はできる。そのために、シードを
設定後にそのテスト生成前に発生した「乱数の数」をロ
グに残せばよい。また、各テストの当初に得た乱数を新
たな「乱数シード」として再設定しその値をログに記録
後に乱数生成してもよい。そうすることによりそのデー
タを元にテストデータの再現ができる。
Conventionally, it is possible to determine various parameters by using random numbers and find the defect by simulation, in the same manner as the effect of debugging a logical defect on a real machine. At that time, the test data that normally operates is discarded, and the test data that causes the operation failure is left for a reproduction test. However, even if the generation and execution are automatically repeated, test data of operation failure accumulates, and if the analysis work cannot be completed in time, the data amount of the disk increases. In order to improve it, "Generation instruction information" is a routine that uses random numbers that do not include random number elements.
If the "random number information" used is left in the simulation execution log, it can be reproduced. For this purpose, the “number of random numbers” generated before setting the seed and before generating the test may be left in the log. Further, the random number obtained at the beginning of each test may be reset as a new “random number seed”, and the random number may be generated after recording the value in a log. By doing so, test data can be reproduced based on the data.

【0188】乱数を用いてシミュレーションを行う場合
に、テスト生成時に動作遅延や値について細かく条件を
決めてシミュレーションモデルがそれをデータとして受
け取り実現すると、解析の上ではわかりやすいが機能拡
張性に劣る。そこでシミュレーションモデル内の各エー
ジェントが勝手に乱数を呼び出して使用するとより簡単
にはなるが試験の再現が困難になる。具体的には、同一
時刻のイベントによる評価では各エージェントやシミュ
レータの動作が少しでも変更されるとシミュレータの実
際の評価順序が保証され無いことが多く再現が困難とな
る。そこでモニター部7が乱数の一括管理を行い、乱数
を使用したいエージェントがモニター部7の関数を呼び
出して乱数を貰うようにしモニター部7はイベントの逐
次化を行ってその弊害を除き乱数生成を行うことができ
る。その乱数生成には乱数生成ルーチンを使用する。ま
た、モニター部7が乱数生成を行わずに、あらかじめシ
ミュレーション前に試験生成部6が乱数テーブルを作成
しておき、モニター部7はそのテーブルへのポインタの
みを管理する様にしてもよい。
In the case of performing a simulation using random numbers, if detailed conditions for operation delays and values are determined at the time of test generation and the simulation model receives and implements them as data, it is easy to understand in terms of analysis, but has poor function expandability. Therefore, if each agent in the simulation model calls and uses a random number without permission, it becomes easier, but it becomes difficult to reproduce the test. Specifically, in the event-based evaluation at the same time, if the operation of each agent or simulator is slightly changed, the actual evaluation order of the simulator is often not guaranteed, and it is difficult to reproduce. Then, the monitor unit 7 manages the random numbers collectively, and the agent who wants to use the random numbers calls the function of the monitor unit 7 to receive the random numbers, and the monitor unit 7 performs the serialization of the events and generates the random numbers without the adverse effect. be able to. A random number generation routine is used for the random number generation. Alternatively, the test generation unit 6 may create a random number table in advance before simulation without the monitor unit 7 generating random numbers, and the monitor unit 7 may manage only pointers to the table.

【0189】また、乱数をテーブル化したデータファイ
ルを用意してシミュレーション時に乱数発生を行わなけ
れば、シミュレータが動作するコンピュータ、オペレー
ティングシステム、ライブラリに依存して乱数が変わっ
てしまい再現できないという弊害から回避できる長所も
ある。また乱数をファイルにデータとして格納する乱数
のデータファイル化を行い動作不良を検出したテストデ
ータを元に一部の乱数値のみ人手または簡易ツールで変
更することにより、不具合を検出した条件に近い条件を
網羅的に試験できるので人手試験強化が簡単に実現でき
る。
If a data file in which random numbers are tabulated is prepared and random numbers are not generated at the time of simulation, the random numbers change depending on the computer, operating system, and library on which the simulator operates, thereby avoiding the problem that the random numbers cannot be reproduced. There is also an advantage that can be done. In addition, random numbers are stored as data in a file. A random number is converted into a data file, and only some of the random numbers are changed manually or with a simple tool based on test data that has detected a malfunction. Can be comprehensively tested, so that manual testing can be easily enhanced.

【0190】また、乱数をモニター部7で一括管理した
ときに、乱数の使用者と乱数を使用したルーチン及び乱
数の値を乱数用のログとして記録することにより、乱数
の偏りをチェックしたり乱数の使用誤りなどのデバッグ
が容易にできる。またシミュレーションモデルの改訂な
どによりシミュレーションモデルに誤りが混入しないか
どうかを判定する時に上記の、乱数データのファイル化
と合せて同じ試験を投入してシミュレーション後の最終
値が一致していることと合せて乱数のログが同一である
ことを確認すれば、機能劣化が無く同等の機能の維持の
確認や修正による動作の差異が容易に判定できシミュレ
ーションモデルの品質維持が可能となる。
When the random number is collectively managed by the monitor unit 7, the user of the random number and a routine using the random number and the random number value are recorded as a log for the random number, thereby checking the random number bias or checking the random number. It is possible to easily debug a mistake in the use of a program. Also, when determining whether errors occur in the simulation model due to the revision of the simulation model, etc., the same test is performed in addition to the filing of the random number data, and the final value after simulation matches. If the logs of the random numbers are confirmed to be the same, it is possible to easily confirm the maintenance of equivalent functions without functional deterioration and to judge the difference in operation due to correction, and to maintain the quality of the simulation model.

【0191】各バス8毎に、バストランザク単位のバッ
ファとパイプラインフェーズに対応したフィールドを持
ち、バス8上の信号動作をモニタしながらその信号がど
のトランザクションに属するものか判定をし、各フィー
ルドには、その信号値、事象が発生した時刻を示すリセ
ットからの相対クロック数、最短応答タイミングとのク
ロック数差を格納し、信号に依存せず各フィールドに共
通した情報としては、アドレス値とデータ値を格納す
る。そして、テストの開始時点でそのテーブルのパイプ
ラインフェーズに対応した複数のポインタを初期化し、
各信号が変化した時点でパイプライン・フェーズのポイ
ンタを+1し、テストがエラーとなった時には全エント
リのデータをシミュレーションログにダンプする。
Each bus 8 has a buffer corresponding to each bus transaction and a field corresponding to a pipeline phase. While monitoring the signal operation on the bus 8, it is determined which transaction the signal belongs to. Stores the signal value, the relative clock number from reset indicating the time at which the event occurred, and the clock number difference from the shortest response timing. Stores data values. Then, at the start of the test, initialize a plurality of pointers corresponding to the pipeline phase of that table,
When each signal changes, the pointer of the pipeline phase is incremented by 1, and when an error occurs in the test, the data of all entries is dumped to the simulation log.

【0192】このようにすることにより、主記憶3やキ
ャッシュの最終データが期待値と比較エラーを起こした
時にそのキャッシュラインアドレスのデータ値を個々の
トランザクション毎に見てゆくとどのトランザクション
の結果から狂ったかまたはどのバストランザクションの
結果がそのバストランザクションに反映できずに狂った
かを解明できる。また、データの比較エラーにならない
矛盾エラーなどの場合であっても動作不良の引き金にな
ったトランザクションの動作が特定でき解析作業が加速
される。特にパイプラインバスの場合はそのような機能
がないとリセット後から不具合発生に至る全クロックに
渡って信号波形を見てゆく必要がありその効果は大き
い。
In this way, when the final data in the main memory 3 or the cache has a comparison error with the expected value, the data value of the cache line address is looked up for each transaction, and the result of any transaction It is possible to ascertain whether the data has gone out of order or which bus transaction has gone wrong because the result of the bus transaction cannot be reflected in the bus transaction. Further, even in the case of a contradiction error that does not result in a data comparison error, the operation of the transaction that triggered the operation failure can be specified, and the analysis work is accelerated. In particular, in the case of a pipeline bus, without such a function, it is necessary to look at the signal waveform over all clocks from the time of reset to the occurrence of a malfunction, and the effect is great.

【0193】複雑な動作を行うハードウェアにとって、
リトライなどの要因は通常の動作では発生しにくい条件
を確率高く発生できることが多い。そこで、ある種のエ
ラーでリトライ処理を促すエラー信号を駆動したり、バ
ストランザクションのレスポンス応答でリトライ応答を
強制的に駆動させて、そのような条件生成を行う。
For hardware performing complicated operations,
Factors such as retries can often occur with high probability under conditions that are unlikely to occur in normal operation. Therefore, such a condition is generated by driving an error signal for prompting a retry process with a certain kind of error or forcibly driving a retry response with a bus transaction response response.

【0194】以上述べた本発明に係わる論理シミュレー
ション方法は、プログラムとして磁気テープ、CD、F
Dシート等の可搬型の記録媒体に格納可能である。
The logic simulation method according to the present invention described above uses a magnetic tape, CD, F
It can be stored in a portable recording medium such as a D sheet.

【0195】[0195]

【発明の効果】この発明に係る論理シミュレーション方
法は以上のように検証対象回路に接続されたN次キャッ
シュレベルのバスリクエスト動作とN−1次キャッシュ
レベルリクエストを混在して実行できるシミュレーショ
ンモデル環境と乱数による各種のパラメータを使用して
検証するように構成されているので、以下に示す効果を
奏する。
As described above, the logic simulation method according to the present invention provides a simulation model environment in which the bus request operation of the Nth cache level and the N-1st cache level request connected to the circuit to be verified can be executed in a mixed manner. Since it is configured to perform verification using various parameters based on random numbers, the following effects can be obtained.

【0196】エラーチェック回路を使用することにより
誤動作を検出できるカバレッジを拡大することができ
た。
By using the error check circuit, the coverage for detecting a malfunction can be expanded.

【0197】また、期待値確定が容易な一回しかアクセ
スしない非共有アドレスと複数回アクセス可能な共有ア
ドレスとに分けて管理することにより、非共有アドレス
のカバレッジを拡大した。
Further, the non-shared address which can be easily determined only once and the shared address which can be accessed a plurality of times are managed separately, so that the coverage of the non-shared address is expanded.

【0198】さらに、共有アドレスの試験生成に制限の
少ないN−1次キャッシュ・レベルのリクエストを多用
しキャッシュインデックスに該当するアドレスビットを
管理することにより、N次キャッシュレベルのリクエス
トと相互に干渉して試験カバレッジが低下することがな
いようした。
Further, by using N-1 primary cache level requests with few restrictions on test generation of shared addresses and managing the address bits corresponding to the cache index, mutual interference with the Nth cache level requests occurs. Test coverage was not reduced.

【0199】また、同一アドレスに対するアクセスがデ
ータの最終値を見て成否が判断できるように構成したの
で、同一アドレスに対する試験カバレッジが向上した。
Further, since the access to the same address can be determined by checking the final value of the data, the test coverage for the same address is improved.

【0200】さらにまた、リクエスト動作を始め各種応
答信号の遅延動作に種々の条件を多数与えることにより
試験条件が多様化し、乱数を用いた試験生成でありなが
ら制御性を高めることができた。
Furthermore, by giving various conditions to the delay operation of various response signals including the request operation, the test conditions are diversified, and the controllability can be improved even though the test is generated using random numbers.

【0201】また、バス動作、キャッシュ状態、信号遅
延に使用する乱数は個々に乱数分布を指定したりキャッ
シュ特有のアドレスビットの範囲を制御することによ
り、平均的な動作ではなく回路全般の試験項目に対して
平均化するように構成したことにより、乱数による試験
の効率を改善することができた。
The random numbers used for the bus operation, cache state, and signal delay are individually specified by the random number distribution or by controlling the range of address bits specific to the cache. As a result, the efficiency of the test using random numbers can be improved.

【0202】さらに、リセットや時間の掛かる処理を飛
ばすように検証対象回路を制御し、条件設定のために行
っていたキャッシュの初期設定をモニター部に行わせる
ことにより、シミュレーション時間を短縮することがで
きた。
Furthermore, the simulation time can be reduced by controlling the circuit to be verified so as to skip the reset and time-consuming processing, and by causing the monitor unit to perform the initial setting of the cache which has been performed for the condition setting. did it.

【0203】また、乱数の再現を可能にし解析支援機能
を付加することにより、不具合の切り分けと解析作業と
同様の試験への拡大を容易にした。
Further, by enabling the reproduction of random numbers and adding an analysis support function, it is easy to isolate a defect and expand the test to the same test as the analysis work.

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

【図1】 この発明の実施の形態1におけるシミュレー
ションモデルを構成する検証対象回路、非検証対象回
路、検証動作上大きな意味を持つバスと各回路上に点在
するキャッシュメモリと主記憶メモリとバスモニタ、試
験生成部とモニター部を示す接続関係図である。
FIG. 1 is a circuit to be verified, a circuit to be verified, a bus having a significant meaning in a verification operation, a cache memory, a main memory, and a bus scattered on each circuit, which constitute a simulation model according to Embodiment 1 of the present invention. FIG. 4 is a connection relationship diagram showing a monitor, a test generation unit, and a monitor unit.

【図2】 この発明の実施の形態1におけるシミュレー
ションモデル上の各レベルのキャッシュの包含関係を示
すブロック図である。
FIG. 2 is a block diagram showing an inclusion relationship of caches at each level on a simulation model according to Embodiment 1 of the present invention;

【図3】 この発明の実施の形態1この発明の実施の形
態1におけるシミュレーションモデル上の各レベルのキ
ャッシュのシミュレーションでの試験カバレッジを上げ
るための設定例を示すブロック図である。
FIG. 3 is a block diagram showing a setting example for increasing test coverage in a simulation of a cache at each level on a simulation model according to the first embodiment of the present invention;

【図4】 この発明の実施の形態1におけるシミュレー
ションモデル上のバス信号を観測して、バス信号規約違
反、バストランザクション間の信号規約違反(または矛
盾)、バスリクエストとそのアドレスに該当するキャッ
シュステートの矛盾、バストランザクション完了後のキ
ャッシュステートとリクエストの矛盾、バスのスヌープ
応答と他の信号や状態との矛盾、バスの終了応答と他の
信号や状態との矛盾、サンプルタイミングでのシミュレ
ータで表現している0でも1でもない不定値状態、冗長
コードをもつ信号が不正値状態、といった正常でない状
態の有無をチェックする動作を示す説明図である。
FIG. 4 is a diagram illustrating a bus signal on a simulation model according to the first embodiment of the present invention, in which a bus signal protocol violation, a signal protocol violation (or inconsistency) between bus transactions, a bus request and a cache state corresponding to the address thereof. Inconsistency, inconsistency between cache state and request after completion of bus transaction, inconsistency between bus snoop response and other signals and states, inconsistency between bus end response and other signals or states, expressed by simulator at sample timing FIG. 9 is an explanatory diagram showing an operation of checking whether there is an abnormal state such as an undefined state other than 0 or 1 and a signal having a redundant code being an incorrect value state.

【図5】 この発明の実施の形態1におけるシミュレー
ションモデル上の検証対象回路に元々含まれているエラ
ー検出信号をシミュレーション用のモニタがその信号を
見て停止条件にする、検証対象回路に付加した実際には
無い矛盾チェック回路やフラグのアイドルチェック回路
の結果によりシミュレーションを停止する方法を示すブ
ロック図である。
FIG. 5 shows an error detection signal originally included in the circuit to be verified on the simulation model according to the first embodiment of the present invention, which is added to the circuit to be verified in which the simulation monitor monitors the signal and sets the stop condition. FIG. 11 is a block diagram illustrating a method of stopping a simulation based on a result of an inconsistency check circuit or a flag idle check circuit that does not actually exist.

【図6】 この発明の実施の形態1におけるシミュレー
ションモデル上でリクエスト生成時の確率分布の制御を
示した分類図である。を示す図である。
FIG. 6 is a classification diagram showing control of a probability distribution when a request is generated on a simulation model according to the first embodiment of the present invention. FIG.

【図7】 この発明の実施の形態1におけるシミュレー
ションモデル上でリセット処理サイクル数を削減するた
めにシミュレーション専用に付加した回路とその動作を
示すタイミング図である。
FIG. 7 is a timing chart showing a circuit added exclusively for simulation in order to reduce the number of reset processing cycles on the simulation model in the first embodiment of the present invention, and a timing chart showing the operation thereof.

【図8】 この発明の実施の形態1におけるシミュレー
ションモデル上でN次キャッシュの書き戻し処理サイク
ル数を削減するためにシミュレーション専用に付加した
回路とモニター部とその動作を示すタイミング図であ
る。を示す図である。
FIG. 8 is a timing chart showing a circuit and a monitor unit added exclusively for simulation in order to reduce the number of write-back processing cycles of the N-th cache on the simulation model according to the first embodiment of the present invention, and the operation of the monitor unit; FIG.

【図9】 従来例の検証対象回路、検証非対象である周
辺回路、試験生成部のシミュレーションモデルの全体を
示す構成図である。
FIG. 9 is a configuration diagram showing an entire simulation model of a circuit to be verified, a peripheral circuit not to be verified, and a test generation unit in the conventional example.

【図10】 従来例のバスブリッジを説明したもので、
プロセッサからのキャッシュ・ミス・リクエストが主記
憶制御装置を介してN次キャッシュ経由でプロセッサに
データが返る様子を示すブロック図である。
FIG. 10 illustrates a conventional bus bridge.
FIG. 9 is a block diagram showing a state in which a cache miss request from a processor returns data to the processor via an N-level cache via a main storage control device.

【図11】 従来例のバスブリッジを説明したもので、
I/Oからの主記憶データの読み出しで該当するデータ
がN次キャッシュ中にあり、そのデータが主記憶データ
に代わって使用されプロセッサ内のキャッシュデータが
無効化される様子を示す図である。
FIG. 11 illustrates a conventional bus bridge.
FIG. 11 is a diagram showing a state in which data corresponding to reading of main storage data from an I / O is present in an N-level cache, and the data is used instead of the main storage data and cache data in the processor is invalidated.

【図12】 従来例のバスブリッジを説明したもので、
バスに接続された回路間で使用される信号の例と接続を
示す関係図である。
FIG. 12 illustrates a conventional bus bridge.
FIG. 2 is a relationship diagram showing an example of signals used between circuits connected to a bus and connections.

【図13】 従来例のバスブリッジを説明したもので、
バスに接続された回路間で使用される信号について動作
タイミング例を示すタイミング図である。
FIG. 13 illustrates a conventional bus bridge.
FIG. 5 is a timing chart showing an example of operation timing of signals used between circuits connected to a bus.

【図14】 従来例の検証対象回路、非検証対象回路で
ある周辺回路、試験生成部のシミュレーションモデルの
全体を示す図である。
FIG. 14 is a diagram illustrating an entire simulation model of a test target circuit, a peripheral circuit that is a non-verification target circuit, and a test generation unit in a conventional example.

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

1 検証対象回路、2 プロセッサ、3 主記憶、4
主記憶制御装置、6試験生成部、7 モニター部、8
バス、9 バスモニタ、10 シミュレーション専用付
加回路。
1 circuit to be verified, 2 processor, 3 main memory, 4
Main memory controller, 6 test generator, 7 monitor, 8
Bus, 9 bus monitor, 10 additional circuit dedicated to simulation.

───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平7−28668(JP,A) 特開 平7−271834(JP,A) 特開 平5−94492(JP,A) 特開 平3−138774(JP,A) 特開 平6−236293(JP,A) 特開 平6−59939(JP,A) 特開 平5−174097(JP,A) 特開 平9−190379(JP,A) 特開 平10−105463(JP,A) ”システムレベル大規模論理シミュレ ーション手法”,三菱電機技報,1996年 2月,Vol.70,No.2,p.11− 16 (58)調査した分野(Int.Cl.7,DB名) G06F 11/22 - 11/277 G06F 17/50 G01R 31/28 - 31/30 CSDB(日本国特許庁)──────────────────────────────────────────────────続 き Continuation of the front page (56) References JP-A-7-28668 (JP, A) JP-A-7-271834 (JP, A) JP-A-5-94492 (JP, A) JP-A-3-28 138774 (JP, A) JP-A-6-236293 (JP, A) JP-A-6-59939 (JP, A) JP-A-5-174097 (JP, A) JP-A-9-190379 (JP, A) JP-A-10-105463 (JP, A) "System-level large-scale logic simulation method", Mitsubishi Electric Technical Report, February 1996, Vol. 70, No. 2, p. 11-16 (58) Fields investigated (Int. Cl. 7 , DB name) G06F 11/22-11/277 G06F 17/50 G01R 31/28-31/30 CSDB (Japan Patent Office)

Claims (88)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 MESI(Modified、Excl
useived、Shared、Invalidate
d)と称されるキャッシュのステートが4状態までのラ
イトバック形式のキャッシュであるMESIステートに
より構成されN次キャッシュがN−1次キャッシュを包
含するキャッシュシステムからなるシミュレーションモ
デル、テストデータを生成する試験生成部、生成された
テストデータに含まれる指示に従って上記シミュレーシ
ョンモデルのリセット及び内部設定とクロック供給制御
及び停止制御とテストごとのシミュレーション完了後の
期待値比較及びテスト結果判定を行うモニター部を備
え、検証に用いる動作としての動作条件とキャッシュの
ステート値を指定し、上記シミュレーションモデルに対
するデータ値をキャッシュのステートに応じて動作誤り
が検出できるように各テストの始めに初期値として設定
しテストの終わりにそれらの最終値を期待値と比較し検
証対象回路の動作の正当性を確認することを特徴とする
論理シミュレーション方法。
1. MESI (Modified, Excl)
used, shared, invalidate
Lad up to four cache states called d)
A simulation model composed of a cache system in which an N-level cache includes an N-1 level cache, a MESI state which is a cache of a write-back type, a test generation unit for generating test data, and an instruction included in the generated test data. It has a monitor unit that resets and sets internal settings of the simulation model, controls clock supply and stops, and compares expected values after completion of simulation for each test and determines test results. Specify the data value for the above simulation model as an initial value at the beginning of each test so that an operation error can be detected according to the state of the cache. Behavior of Logic simulation method characterized by confirming the skilled sex.
【請求項2】 上記N次キャッシュがステートE又はス
テートSのとき上記N次キャッシュに上記主記憶のN次
キャッシュと同一アドレス上とは異なるデータ値を設定
しバイパス命令をテストすることを特徴とする請求項1
記載の論理シミュレーション方法。
2. The method according to claim 1, wherein when the N-th cache is in the state E or S, a different data value is set in the N-th cache from the same address as that of the N-th cache in the main memory, and a bypass instruction is tested. Claim 1
The described logic simulation method.
【請求項3】 上記N次キャッシュがステートE又はス
テートSのとき上記主記憶に上記N次キャッシュの上記
主記憶と同一アドレス上とは異なるデータ値を設定しキ
ャッシュをバイパスしないアクセスをテストすることを
特徴とする請求項1記載の論理シミュレーション方法。
3. When the N-level cache is in the state E or S, a data value different from that on the same address as the main memory of the N-level cache is set in the main memory, and an access which does not bypass the cache is tested. 2. The logic simulation method according to claim 1, wherein:
【請求項4】 MSI(Modified、Share
d、Invalidated)と称されるキャッシュの
ステートが3状態までのライトバック形式のキャッシュ
であるMSIステートにより構成されN次キャッシュが
N−1次キャッシュを包含するキャッシュシステムから
なるシミュレーションモデル、テストデータを生成する
試験生成部、生成されたテストデータに含まれる指示に
従って上記シミュレーションモデルのリセット及び内部
設定とクロック供給制御及び停止制御とテストごとのシ
ミュレーション完了後の期待値比較及びテスト結果判定
を行うモニター部を備え、検証に用いる動作としての動
作条件とキャッシュのステート値を指定し、上記シミュ
レーションモデルに対するデータ値をキャッシュのステ
ートに応じて動作誤りが検出できるように各テストの始
めに初期値として設定しテストの終わりにそれらの最終
値を期待値と比較し検証対象回路の動作の正当性を確認
することを特徴とする論理シミュレーション方法。
4. An MSI (Modified, Share)
d, Invalidated)
Write-back cache with up to three states
, A simulation model comprising a cache system in which the N-th cache includes the N-th primary cache, a test generation unit for generating test data, and a reset of the simulation model in accordance with an instruction included in the generated test data And a monitor unit for performing internal settings, clock supply control and stop control, and comparing expected values after completion of simulation for each test and determining test results, and specifying operating conditions and cache state values as operations used for verification, The data value for the simulation model is set as an initial value at the beginning of each test so that an operation error can be detected according to the state of the cache. At the end of the test, the final value is compared with the expected value and the operation of the circuit under test is verified. The characteristic is to confirm the nature Logic simulation how.
【請求項5】 上記N−1次キャッシュがステートMの
ときN次キャッシュ及び主記憶の各同一アドレス上には
上記ステートMのデータ値とは異なるデータ値を設定す
ることを特徴とする請求項1又は請求項4に記載の論理
シミュレーション方法。
5. A data value different from the data value of the state M is set on each of the same addresses of the N-th cache and the main memory when the N-1st cache is in the state M. The logic simulation method according to claim 1.
【請求項6】 上記N次キャッシュがステートSのとき
上記N次キャッシュに上記主記憶のN次キャッシュと同
一アドレス上とは異なるデータ値を設定しバイパス命令
をテストすることを特徴とする請求項4記載の論理シミ
ュレーション方法。
6. The bypass instruction is set by setting a data value different from that on the same address as that of the N-th cache of the main memory in the N-th cache when the N-th cache is in the state S. 5. The logic simulation method according to item 4.
【請求項7】 上記N次キャッシュがステートSのとき
上記主記憶に上記N次キャッシュの上記主記憶と同一ア
ドレス上とは異なるデータ値を設定しキャッシュをバイ
パスしないアクセスをテストすることを特徴とする請求
項4記載の論理シミュレーション方法。
7. characterized in that test access not bypass the cache and set the different data values from the N-th order cache gas Tate on the main memory in the same address of the N-th order cache to the main memory when S The logic simulation method according to claim 4, wherein
【請求項8】 リクエスト及びレスポンス応答を駆動す
るエージェントが接続されたバス、このバスに接続され
バスプロトコルのチェックを行うバスモニタから構成さ
れるシミュレーションモデル、テストデータを生成する
試験生成部、生成されたテストデータに含まれる指示に
従って上記シミュレーションモデルのリセット及び内部
設定とクロック供給制御及び停止制御とテストごとのシ
ミュレーション完了後の期待値比較及びテスト結果判定
を行うモニター部を備え、検証に用いる動作としての動
作条件を指定し、上記シミュレーションモデルに対する
データ値を各テストの始めに初期値として設定しテスト
の途中でバスプロトコルの矛盾エラーがないことを期待
値として動作の正当性を確認することを特徴とする論理
シミュレーション方法。
8. A bus to which an agent for driving a request and a response is connected, a simulation model including a bus monitor connected to the bus for checking a bus protocol, a test generation unit for generating test data, A monitor unit that performs reset and internal setting of the simulation model, clock supply control and stop control, comparison of expected values after completion of simulation for each test, and determination of test results in accordance with instructions included in the test data, and an operation used for verification. Specifies the operating conditions, that conflict error in the middle of the bus protocol of test data values for the simulation model is set as an initial value at the beginning of each test to verify the validity of the operation as an expected value that there are no Characteristic logic simulation method Law.
【請求項9】 上記バスモニタは各バスのバストランザ
クションをチェックしそのバスプロトコルについてバス
調停結果とリクエスト発行エージェントの合致、リクエ
ストコードとアドレス範囲の矛盾、リクエストコードと
データ転送長の矛盾、未定義コード値でない、応答が分
離不可能なトランザクションの分離応答、これらのプロ
トコル違反の内のいずれかの有無をチェックし、違反検
出時にモニター部に通知後、モニター部によりシミュレ
ーションを中断させることを特徴とする請求項8記載の
論理シミュレーション方法。
9. The bus monitor checks a bus transaction of each bus, and for the bus protocol, matches the bus arbitration result with the request issuing agent, inconsistency in request code and address range, inconsistency in request code and data transfer length, undefined. Checks whether any of these protocol violations is a transaction response whose response is not a code value and whose response cannot be separated, notifies the monitor unit when a violation is detected, and then interrupts the simulation by the monitor unit. The logic simulation method according to claim 8, wherein:
【請求項10】 上記バスモニタは各バスのバストラン
ザクションをチェックしそれらのバストランザクション
について既に発行済のN個から1個前までのバストラン
ザクションとの間の、シェークハンド信号間の矛盾、パ
イプラインステージの追い越し、応答信号のタイムアウ
ト、分離型バストランザクションの応答トランザクショ
ン抜け、分離応答トランザクションによる元のトランザ
クションの追い越し、各パイプラインステージの溢れ、
これらのプロトコル違反の内のいずれかの有無をチェッ
クし、違反検出時にモニター部に通知後、モニター部に
よりシミュレーションを中断させることを特徴とする請
求項9記載の論理シミュレーション方法
10. The bus monitor checks the bus transactions of each bus and inconsistencies between the shake hand signals and the pipeline between N bus transactions and N bus bus transactions which have already been issued for those bus transactions. Stage overtaking, response signal timeout, detached bus transaction response transaction omission, original transaction overtaking by detached response transaction, overflow of each pipeline stage,
10. The logic simulation method according to claim 9, wherein the presence or absence of any of these protocol violations is checked, and when a violation is detected, the monitor is notified and then the simulation is interrupted by the monitor.
【請求項11】 上記バスモニタは各バスの信号につい
て複数のエージェントが同時に異なる値を上記バスに対
して駆動したとき上記シミュレーションモデル上の信号
値より不定値又は信号強度の異常をチェックし、異常検
出時にモニター部に通知後、モニター部によりシミュレ
ーションを中断させることを特徴とする請求項8記載の
論理シミュレーション方法
11. The bus monitor checks an undefined value or an abnormal signal strength from a signal value on the simulation model when a plurality of agents simultaneously drive different values for the signals on each bus to the bus. 9. The logic simulation method according to claim 8, wherein after the detection is notified to the monitor unit, the simulation is interrupted by the monitor unit.
【請求項12】 上記バスモニタは各バスの信号につい
てパリティーやECCチェックコードなど冗長コードが
付加されているときスイッチ設定をみてコード誤りの有
無をチェックし、コード誤り検出時にモニター部に通知
後、モニター部によりシミュレーションを中断させるこ
とを特徴とする請求項8記載の論理シミュレーション方
12. The bus monitor checks the presence or absence of a code error by checking the switch setting when a redundant code such as a parity or an ECC check code is added to each bus signal, and notifies the monitor unit when a code error is detected. 9. The logic simulation method according to claim 8, wherein the simulation is interrupted by the monitor unit.
【請求項13】 上記シミュレーションモデルに信号と
信号間のサイクル数を計数する計数回路を接続し、トラ
ンザクション単位に信号のサイクル数の履歴を記録し、
試験終了時に上記モニター部がその蓄積された履歴を取
り出し期待値と比較することを特徴とする請求項8記載
の論理シミュレーション方法
13. A circuit for counting the number of cycles between signals is connected to the simulation model, and a history of the number of cycles of the signal is recorded in transaction units.
9. The logic simulation method according to claim 8, wherein at the end of the test, the monitor retrieves the accumulated history and compares it with an expected value.
【請求項14】 上記シミュレーションモデルにトラン
ザクション数を計数する計数回路を接続し、トランザク
ション数の履歴を記録し、試験終了時に上記モニター部
がその蓄積された履歴を取り出し期待値と比較すること
を特徴とする請求項8記載の論理シミュレーション方
法。
14. The simulation model according to claim 1, wherein a counting circuit for counting the number of transactions is connected, a history of the number of transactions is recorded, and at the end of the test, the monitor section takes out the accumulated history and compares it with an expected value. The logic simulation method according to claim 8, wherein
【請求項15】 上記シミュレーションモデルとは別に
エラーチェックを行うシミュレーション専用付加回路を
備え、このシミュレーション専用付加回路は上記エージ
ェントの動作がアイドル状態でない不正状態を識別する
回路又は上記エージェントの回路内のフラグレジスタが
セットされた不正状態を検出する回路を有し、テスト終
了時に上記エージェントの動作が不正状態であることを
上記モニター部に通知後、モニター部によりシミュレー
ションを中断させることを特徴とする請求項8記載の論
理シミュレーション方法
15. An additional circuit dedicated to simulation for performing an error check separately from the simulation model, wherein the additional circuit dedicated to simulation includes a circuit for identifying an improper state in which the operation of the agent is not idle or a flag in the circuit of the agent. A circuit for detecting an improper state in which a register is set, wherein when the test ends, the monitor section notifies the monitor section that the operation of the agent is in an improper state, and then the monitor section interrupts the simulation. Logic simulation method described in 8
【請求項16】 上記テスト終了時に上記エージェント
が不正状態であることを上記モニター部が判定すること
を特徴とする請求項15記載の論理シミュレーション方
16. The logic simulation method according to claim 15, wherein at the end of the test, the monitor unit determines that the agent is in an invalid state.
【請求項17】 検証対象回路と非検証対象回路との間
を接続するバスから構成されるシミュレーションモデ
ル、テストデータを生成する試験生成部、生成されたテ
ストデータに含まれる指示に従って上記シミュレーショ
ンモデルのリセット及び内部設定とクロック供給制御及
び停止制御とテストごとのシミュレーション完了後の期
待値比較及びテスト結果判定を行うモニター部を備え、
検証に用いる動作としての動作条件を指定し、上記シミ
ュレーションモデルに対するデータ値を各テストの始め
に初期値として設定しテスト実行中に上記検証対象回路
の故障を示すエラーが発生しないことにより上記検証対
象回路の正当性を確認することを特徴とする論理シミュ
レーション方法。
17. A simulation model comprising a bus connecting between a circuit to be verified and a circuit not to be verified, a test generator for generating test data, A monitor unit that performs reset and internal setting, clock supply control and stop control, and comparison of expected values after completion of simulation for each test and test result determination,
Specifies the operating conditions of the operation using the verification, the verification circuit data value during the set test run as an initial value at the beginning of each test for the simulation model
A logic simulation method characterized by confirming the validity of the circuit to be verified by not generating an error indicating a failure of the logic circuit.
【請求項18】 上記検証対象回路はエラーの内容を判
別できるフラグを備え、上記モニタ部は上記検証対象回
路のリセット動作中およびリセット動作直後に誤動作し
ないように上記フラグのセット状態を無視又はリセット
する手段を具備し上記フラグの種別がセットされた状態
であるときはシミュレーションを中断させることを特徴
とする請求項17記載の論理シミュレーション方法
18. The circuit to be verified has a flag capable of determining the content of an error, and the monitor ignores or resets the set state of the flag so as not to malfunction during and immediately after a reset operation of the circuit to be verified. 18. The logic simulation method according to claim 17, further comprising means for performing a simulation, wherein the simulation is interrupted when the type of the flag is set.
【請求項19】 上記シミュレーションモデルとは別に
エラーチェックを行うシミュレーション専用付加回路を
備え、エラー検出時にモニター部に通知後、モニター部
によりシミュレーションを中断させることを特徴とする
請求項17記載の論理シミュレーション方法
19. The logic simulation according to claim 17, further comprising an additional circuit dedicated to simulation for performing an error check separately from the simulation model, wherein when an error is detected, the monitor is notified and the simulation is interrupted by the monitor. Method
【請求項20】 MESI(Modified、Exc
luseived、Shared、Invalidat
ed)と称されるキャッシュのステートが4状態までの
ライトバック形式のキャッシュであるMESIステート
又はMSI(Modified、Shared、Inv
alidated)と称されるキャッシュのステートが
3状態までのライトバック形式のキャッシュであるMS
Iステートにより構成されN次キャッシュがN−1次キ
ャッシュを包含するキャッシュシステム、リクエスト及
びレスポンス応答を駆動するエージェント、上記キャッ
シュシステム及び上記エージェント間を接続するバス、
このバスに接続されバスプロトコルとキャッシュのステ
ートの矛盾のチェックを行うバスモニタから構成される
シミュレーションモデル、テストデータを生成する試験
生成部、生成されたテストデータに含まれる指示に従っ
て上記シミュレーションモデルのリセット及び内部設定
とクロック供給制御及び停止制御とテストごとのシミュ
レーション完了後の期待値比較及びテスト結果判定を行
うモニター部を備え、検証に用いる動作としての動作条
件を指定し、上記シミュレーションモデルに対するデー
タ値を各テストの始めに初期値として設定しテストの途
中又はテストの終わりに上記バスモニタにより検出され
るキャッシュのステートとバスプロトコルの矛盾がない
ことを期待値として検証対象回路の動作の正当性を確認
することを特徴とする論理シミュレーション方法。
20. MESI (Modified, Exc)
used, shared, invalidat
ed) up to four cache states
MESI state or MSI (Modified, Shared, Inv) which is a write-back type cache
The state of the cache, referred to as
MS that is a write-back cache up to 3 states
A cache system including an I-state and an N-level cache including an N-1 level cache, an agent for driving a request and a response, a bus connecting the cache system and the agent,
A simulation model comprising a bus monitor connected to this bus for checking a conflict between a bus protocol and a cache state, a test generation unit for generating test data, and resetting the simulation model in accordance with an instruction included in the generated test data A monitor unit for performing internal settings, clock supply control and stop control, and comparing expected values after completion of simulation for each test and determining test results, specifying operating conditions as operations used for verification, and data values for the simulation model. Is set as an initial value at the beginning of each test. The feature is to check Logic simulation how.
【請求項21】 上記バスモニタは各バスのバストラン
ザクションをチェックしそのバスプロトコルについてバ
ス調停結果とリクエスト発行エージェントの合致、リク
エストコードとアドレス範囲の矛盾、リクエストコード
とデータ転送長の矛盾、未定義コード値でない、応答が
分離不可能なトランザクションの分離応答、これらのプ
ロトコル違反の内のいずれかの有無をチェックし、違反
検出時にモニター部に通知後、モニター部によりシミュ
レーションを中断させる論理シミュレーション方法にお
いて、上記バスモニタは各バスのバストランザクション
をチェックしそれらのバストランザクションについてバ
スリクエスト元の発行時点のキャッシュ状態値と上記バ
スリクエストのリクエストコードの矛盾をチェックし、
矛盾検出時にモニター部に通知後、モニター部によりシ
ミュレーションを中断させることを特徴とする請求項2
0記載の論理シミュレーション方法
21. The bus monitor checks a bus transaction of each bus, and for the bus protocol, matches the bus arbitration result with the request issuing agent, inconsistency in request code and address range, inconsistency in request code and data transfer length, undefined. A logic simulation method in which a transaction response that is not a code value and whose response cannot be separated, checks for any of these protocol violations, notifies the monitor unit when a violation is detected, and interrupts the simulation by the monitor unit. The bus monitor checks the bus transactions of each bus, and checks for inconsistencies between the cache status value at the time of issuing the bus request source and the request code of the bus request for those bus transactions.
3. The simulation is interrupted by the monitor unit after notifying the monitor unit when inconsistency is detected.
0 logic simulation method
【請求項22】 上記バスモニタは各バスのバストラン
ザクションをチェックしそれらのバストランザクション
についてバスリクエストの終了時点から一定時間後のキ
ャッシュ状態値と上記バスリクエストのリクエストコー
ドの矛盾をチェックし、矛盾検出時にモニター部に通知
後、モニター部によりシミュレーションを中断させるこ
とを特徴とする請求項20記載の論理シミュレーション
方法
22. The bus monitor checks the bus transactions of each bus, and checks for inconsistencies between the cache status value of the bus transactions and the request code of the bus request after a fixed time from the end of the bus request, for the bus transactions. 21. The logic simulation method according to claim 20, wherein the simulation is interrupted by the monitor after the notification to the monitor at the time.
【請求項23】 上記バスモニタは各バスのバストラン
ザクションをチェックしそれらのバストランザクション
についてバスリクエストに対応して同一バス上の他のエ
ージェントのスヌープ結果の応答と上記バスリクエスト
のリクエスト発行元のキャッシュ状態値との矛盾をチェ
ックし、矛盾検出時にモニター部に通知後、モニター部
によりシミュレーションを中断させることを特徴とする
請求項20記載の論理シミュレーション方法
23. The bus monitor checks bus transactions of each bus, responds to the bus request with respect to the bus transaction, responds to a snoop result of another agent on the same bus, and caches the request source of the bus request. 21. The logic simulation method according to claim 20, wherein the inconsistency with the state value is checked, and when the inconsistency is detected, the monitor is notified and the simulation is interrupted by the monitor.
【請求項24】 上記バスモニタは各バスのバストラン
ザクションをチェックしリクエストに対応するそれらの
バストランザクションの最終的な動作を規定する応答を
同一バス上の他のエージェントのスヌープ結果又はリク
エスト発行元のキャッシュ状態値から矛盾をチェック
し、矛盾検出時にモニター部に通知後、モニター部によ
りシミュレーションを中断させることを特徴とする請求
項20記載の論理シミュレーション方法
24. The bus monitor checks a bus transaction of each bus and sends a response defining the final operation of the bus transaction corresponding to the request to a snoop result of another agent on the same bus or a request issuing source. 21. The logic simulation method according to claim 20, wherein a contradiction is checked based on the cache state value, and when the contradiction is detected, the monitor is notified and the simulation is suspended by the monitor.
【請求項25】 検証対象回路と非検証対象回路との間
を接続するバスから構成されるシミュレーションモデ
ル、テストデータを生成する試験生成部、生成されたテ
ストデータに含まれる指示に従って上記シミュレーショ
ンモデルのリセット処理と上記検証対象回路の内部設定
とクロック供給制御及び停止制御とテストごとのシミュ
レーション完了後の期待値比較及びテスト結果判定を行
うモニター部を備え、検証に用いる動作としての動作条
件を指定し、上記シミュレーションモデルに対するデー
タ値を各テストの始めに初期値として設定しテストの終
わりにそれらの最終値を期待値と比較し検証対象回路の
動作の正当性を確認する論理シミュレーション方法にお
いて、上記検証対象回路と上記非検証対象回路に対して
各テスト毎にリセット処理を行うことを特徴とする論理
シミュレーション方法。
25. A simulation model comprising a bus connecting between a circuit to be verified and a circuit not to be verified, a test generation unit for generating test data, and a simulation model of the simulation model according to an instruction included in the generated test data. A monitor unit that performs reset processing, internal setting of the circuit to be verified, clock supply control and stop control, comparison of expected values after simulation for each test, and determination of test results, specifies operating conditions as operations used for verification. A logic simulation method for setting a data value for the simulation model as an initial value at the beginning of each test and comparing the final value with an expected value at the end of the test to confirm the validity of the operation of the circuit to be verified. Reset the target circuit and the above non-verification target circuit for each test A logic simulation method comprising performing processing.
【請求項26】 上記検証対象回路のリセット処理にお
いて多数のクロックを要するリセット処理については上
記検証対象回路に繰り返し処理を行わないスイッチを設
けるか又は上記検証対象回路の繰り返し回路のカウンタ
の値を上記モニター部にて強制的に変更し上記リセット
処理の一部を上記モニター部にて代行することを特徴と
する請求項25記載の論理シミュレーション方法。
26. A reset processing which requires a large number of clocks in the reset processing of the circuit to be verified, a switch which does not perform repetitive processing is provided in the circuit to be verified, or the value of the counter of the repetitive circuit of the circuit to be verified is set to 26. The logic simulation method according to claim 25, wherein a forcible change is performed by a monitor, and a part of the reset processing is performed by the monitor.
【請求項27】 上記検証対象回路内にありリセット処
理後クロックを用いた動作シーケンスによって設定され
るフラグやレジスタについて、上記モニター部により任
意の値に設定することを特徴とする請求項25記載の論
理シミュレーション方法。
27. The flag according to claim 25, wherein a flag or a register in the circuit to be verified and set by an operation sequence using a clock after reset processing is set to an arbitrary value by the monitor unit. Logic simulation method.
【請求項28】 上記検証対象回路がN次のキャッシュ
を備えているとき、そのN次キャッシュのデータ値とキ
ャッシュのステート値について、上記モニター部により
任意の値にセットすることにより初期状態を設定するこ
とを特徴とする請求項25記載の論理シミュレーション
方法。
28. When the circuit to be verified has an N-order cache, an initial state is set by setting the data value of the N-order cache and the state value of the cache to arbitrary values by the monitor unit. 26. The logic simulation method according to claim 25, further comprising:
【請求項29】 上記検証対象回路がN次のキャッシュ
を備えそのN次キャッシュが上記バスに接続されたプロ
セッサ内のN−1次キャッシュを包含するとき、そのN
−1次キャッシュのデータ値とキャッシュ状態値につい
て、上記モニター部により任意の値にセットすることに
より初期状態を設定することを特徴とする請求項25記
載の論理シミュレーション方法。
29. When the circuit to be verified includes an N-th order cache and the N-th order cache includes an N-1st order cache in a processor connected to the bus, the N-th order cache is included in the N-th order cache.
26. The logic simulation method according to claim 25, wherein the initial state is set by setting the data value and the cache state value of the primary cache to arbitrary values by the monitor unit.
【請求項30】 N次キャッシュを保有する検証対象回
路、キャッシュを保有しない検証対象回路、非検証対象
回路でありN−1次以下のキャッシュを保有するプロセ
ッサ、非検証対象回路である主記憶と主記憶を制御する
主記憶制御装置、上記検証対象回路と上記プロセッサと
上記主記憶制御装置との間をそれぞれ接続するバスから
構成されるシミュレーションモデル、テストデータを生
成する試験生成部、生成されたテストデータに含まれる
指示に従って上記シミュレーションモデルのリセットと
上記検証対象回路の内部設定とクロック供給制御及び停
止制御とテストごとのシミュレーション完了後の期待値
比較及びテスト結果判定を行うモニター部を備え、検証
に用いる動作としての動作条件を指定し、上記シミュレ
ーションモデルに対するデータ値を各テストの始めに初
期値として設定しテストの終わりにそれらの最終値を期
待値と比較し上記検証対象回路の動作の正当性を確認す
る論理シミュレーション方法において、上記N次キャッ
シュが上記N−1次キャッシュを包含し、上記プロセッ
サへのデータの書き込み順序がバス上に現れたときその
プロトコルの順序が変更されることを許可した条件にお
いて、複数回書き込みアクセスが行われるアドレスの選
択は、1回だけ使用可能な非共有アドレス領域と複数回
使用可能な共有アドレス領域に分離し、非共有アドレス
領域に対してはすでに登録されたアドレスを選択しない
ように決定し、共有アドレス領域に対しては非共有アド
レス領域に該当しないアドレスを選択するよう試験生成
し、試験終了時に非共有アドレス領域についてはキャッ
シュの最終値を比較し、共有アドレス領域についてはキ
ャッシュを特定した比較は行わないことを特徴とする論
理シミュレーション方法。
30. A circuit to be verified having an Nth-order cache, a circuit to be verified having no cache, a processor having a non-verification target and having a cache of N-1 or less, and a main memory being a non-verification target circuit. A main memory control device for controlling main memory, a simulation model including a bus connecting the circuit to be verified with the processor and the main memory control device, a test generation unit for generating test data, A monitor unit for resetting the simulation model, setting internal settings of the circuit to be verified, controlling clock supply and stopping, and comparing expected values after completion of simulation for each test and determining test results according to instructions included in the test data; Specify the operating conditions for the operation to be used for In the logic simulation method for setting a data value to be performed as an initial value at the beginning of each test and comparing the final value with an expected value at the end of the test to confirm the validity of the operation of the circuit to be verified, Selection of an address that includes the N-1 level cache and that allows a plurality of write accesses to be performed on condition that the protocol order is changed when the data write order to the processor appears on the bus Is divided into a non-shared address area that can be used only once and a shared address area that can be used multiple times. For the non-shared address area, it is determined not to select an already registered address. A test is generated to select an address that does not fall into the non-shared address area, and the non-shared address area is For logic simulation method for comparing the final value of the cache, characterized in that the shared address space does not perform comparison identifying the cache.
【請求項31】 上記非共有アドレス領域と上記共有ア
ドレス領域について生成するごとにテーブルにアドレス
を登録し上記非共有アドレス領域と上記共有アドレス領
域の区別をテーブル上で判定することを特徴とする請求
項30記載の論理シミュレーション方法。
31. Each time the non-shared address area and the shared address area are generated, an address is registered in a table, and a distinction between the non-shared address area and the shared address area is determined on the table. Item 30. The logic simulation method according to Item 30,
【請求項32】 上記非共有アドレス領域と上記共有ア
ドレス領域についてアドレスのビットパターンにより共
有非共有の区別を行うか又は非共有アドレスの生成にプ
ロセッサ番号またはプロセッサ番号から連想できる値を
使用することを特徴とする請求項30記載の論理シミュ
レーション方法。
32. A method according to claim 32, wherein said non-shared address area and said shared address area are distinguished between shared and non-shared by a bit pattern of an address, or a processor number or a value associated with the processor number is used to generate a non-shared address. 31. The logic simulation method according to claim 30, wherein:
【請求項33】 上記N−1次キャッシュに対する上記
プロセッサ内の第1のリクエスト発行と上記N−1次キ
ャッシュを無視して直接に上記バスに対する第2のリク
エスト発行の混在を許しかつ上記第1のリクエストに対
するN−1次キャッシュのインデックス値を上記第2の
リクエストに対するN次キャッシュのインデックス値に
対して排他的になるようにアドレスを管理することを特
徴とする請求項30記載の論理シミュレーション方法。
33. The first request issuance in the processor for the N-1st cache and the second request issuance to the bus are directly allowed ignoring the N-1th cache, and the first request is issued. 31. The logic simulation method according to claim 30, wherein an address is managed such that an index value of an N-1 level cache for the request of the second request is exclusive of an index value of an N level cache for the second request. .
【請求項34】 上記N次キャッシュのインデックス値
を上記N−1次キャッシュのインデックス値に対し排他
的になるようにビットパターンまたは複数ビットによっ
て構成された値の範囲によりアドレスを管理することを
特徴とする請求項33記載の論理シミュレーション方
法。
34. An address is managed by a bit pattern or a range of values constituted by a plurality of bits so that the index value of the N-th cache is exclusive to the index value of the N-1th cache. The logic simulation method according to claim 33, wherein
【請求項35】 上記N次キャッシュのインデックス値
が上記N−1次キャッシュに対し排他的になるようにそ
れぞれN次キャッシュには第1のテーブルを備えて非共
有アドレスを保持しN−1次キャッシュには第2のテー
ブルと第3のテーブルを備え第2のテーブルは非共有ア
ドレスを第3のテーブルは共有アドレスを保持し、非共
有アドレスを使用する場合はそれらのいずれのテーブル
にも存在しないインデックス値をもつアドレスを選択
し、共有アドレスを使用する場合は第3のテーブル又は
上記いずれのテーブルにも存在しないインデックス値を
もつアドレスを選択し、その選択したアドレスを第3の
テーブルに格納して管理することを特徴とする請求項3
3記載の論理シミュレーション方法。
35. Each N-th cache has a first table and holds a non-shared address so that the index value of the N-th cache is exclusive to the N-1 primary cache. The cache has a second table and a third table, the second table holds a non-shared address, the third table holds a shared address, and if a non-shared address is used, it exists in any of those tables. An address having an index value not to be selected is selected, and when a shared address is used, an address having an index value not present in the third table or any of the above tables is selected, and the selected address is stored in the third table. 4. The method of claim 3, wherein
3. The logic simulation method according to 3.
【請求項36】 上記共有アドレスに対する読み出し専
用又は非変更領域のアドレスと書き込みによる変更可能
領域のアドレスをそのアドレスのビットパターンから一
意的に求まるように定め、上記プロセッサにより発行す
るリクエストのアドレスを決定後それらのアドレスから
アクセスする領域が読み出し専用又は非変更領域か又は
それ以外の変更可能領域かを判定してリクエストの種別
を決定し、試験終了時に読み出し専用又は非変更領域に
ついてはキャッシュの最終値を比較し変更可能領域につ
いては比較しないことを特徴とする請求項30記載の論
理シミュレーション方法。
36. The address of a read-only or non-changeable area for the shared address and the address of a changeable area by writing are determined so as to be uniquely determined from the bit pattern of the address, and the address of a request issued by the processor is determined. After that, the type of request is determined by determining whether the area accessed from those addresses is a read-only or non-changeable area or another changeable area. At the end of the test, the final value of the cache for the read-only or non-changeable area 31. The logic simulation method according to claim 30, wherein the comparison is made and the changeable area is not compared.
【請求項37】 上記プロセッサのデータの書き込み順
序がバス上に現れたときにそのプロトコルの順序が変更
されることを許可した条件下では、同一プロセッサの異
なるコマンド間ではバスのビット幅に整合したアドレス
において同一のアドレスに異なるデータを書き込まない
ようにしてキャッシュの最終値の比較をすることを特徴
とする請求項36記載の論理シミュレーション方法。
37. Under the condition that the order of protocol writing is changed when the data writing order of the processor appears on the bus, different commands of the same processor match the bit width of the bus. 37. The logic simulation method according to claim 36, wherein the final value of the cache is compared without writing different data to the same address.
【請求項38】 上記プロセッサはデータバスのビット
幅の1/Kのビット幅の単位のメモリ書き込みコマンド
を有することを特徴とする請求項36記載の論理シミュ
レーション方法。
38. The logic simulation method according to claim 36, wherein said processor has a memory write command in a unit of a bit width of 1 / K of a bit width of a data bus.
【請求項39】 上記同一のプロセッサから同一のキャ
ッシュラインに対するアクセスにおいて上記プロセッサ
がN−1次キャッシュに対して読み出しまたは書き込み
コマンドでアクセスするとき、アクセスするアドレスの
選択は1回のみ使用可能なアドレスに限定しすでに使用
済みのアドレスを避けることを特徴とする請求項36に
記載の論理シミュレーション方法。
39. When the processor accesses the same cache line from the same processor with a read or write command to the (N−1) th cache, the address to be accessed can be selected only once. 37. The logic simulation method according to claim 36, wherein an address which has already been used is avoided by limiting the number of addresses.
【請求項40】 上記プロセッサは同一のキャッシュラ
インアドレスをアクセスするリクエストを発行すると
き、各プロセッサの書き込み対象のアドレス範囲はバス
のビット幅に整合したアドレスとしてバス幅の単位で書
き込みコマンドを有しバス幅の単位で同一のデータを書
き込まないようにしてキャッシュの最終値の比較をする
ことを特徴とする請求項36記載の論理シミュレーショ
ン方法。
40. When the processor issues a request for accessing the same cache line address, the address range to be written by each processor has a write command in the unit of a bus width as an address matching the bit width of the bus. 37. The logic simulation method according to claim 36, wherein the final value of the cache is compared without writing the same data in units of bus width.
【請求項41】 上記各プロセッサの書き込み対象のア
ドレス範囲はデータバスのビット幅の1/Kのビット幅
とすることを特徴とする請求項36記載の論理シミュレ
ーション方法。
41. The logic simulation method according to claim 36, wherein an address range to be written by each processor has a bit width of 1 / K of a bit width of a data bus.
【請求項42】 上記プロセッサがN−1次キャッシュ
またはN−2次キャッシュにアクセスするリクエストを
用いて上記検証対象回路が有するN次キャッシュとの一
致性を検証するとき、上記共有アドレスについて個々の
プロセッサ毎にリクエスト実行後のデータ値を管理し、
上記共有アドレスに関与するキャッシュラインアドレス
とそのラインを構成するデータ値の組み合わせを複数個
保持できるテーブルを使用し、試験生成時にライトリク
エストのトランザクションを生成する度にデータ値を更
新してテストし、テスト終了時に上記主記憶と全てのキ
ャッシュの状態値をみて有効であればデータ値を比較す
る請求項36記載の論理シミュレーション方法。
42. When the processor verifies the consistency with the N-level cache of the circuit to be verified using a request for accessing the N-1 level cache or the N-second level cache, each of the shared addresses is Manages data values after request execution for each processor,
Using a table capable of holding a plurality of combinations of the cache line address related to the shared address and the data value constituting the line, updating and testing the data value each time a write request transaction is generated during test generation, 37. The logic simulation method according to claim 36, wherein the data values are compared if the status values of the main memory and all the caches are valid at the end of the test.
【請求項43】 上記非検証対象回路から発行されたバ
ストランザクションに対し上記検証対象回路が受け付け
を拒絶しリクエストの再発行を促すリトライ要求をする
とき、上記非検証対象回路はリトライ要求されたトラン
ザクションをすでにキューイングされたトランザクショ
ンの最後に再キューイングすることを特徴とする請求項
30記載の論理シミュレーション方法。
43. When the circuit to be verified rejects a bus transaction issued from the circuit to be verified and makes a retry request for prompting reissuing of the request, the circuit to be verified does not execute the transaction requested to be retried. 31. The logic simulation method according to claim 30, further comprising: requeueing at the end of the transaction already queued.
【請求項44】 上記非検証対象回路が発行したリクエ
ストコードの内容又は次に発行するトランザクションの
発行前に逐次化指定を検出したときに上記検証対象回路
の応答がリトライ要求でないことを確認してから次のト
ランザクションのリクエストを発行することを特徴とす
る請求項43記載の論理シミュレーション方法。
44. When the content of the request code issued by the non-verification target circuit or the serialization designation is detected before issuing the next transaction to be issued, it is confirmed that the response of the verification target circuit is not a retry request. 44. The logic simulation method according to claim 43, wherein a request for the next transaction is issued from.
【請求項45】 N次キャッシュを保有する検証対象回
路、キャッシュを保有しない検証対象回路、非検証対象
回路でありN−1次以下のキャッシュを保有するプロセ
ッサ、非検証対象回路である主記憶と主記憶を制御する
主記憶制御装置、上記検証対象回路と上記プロセッサと
上記主記憶制御装置との間をそれぞれ接続するバス、こ
のバスに接続されバスプロトコルのチェックを行うバス
モニタから構成され、上記非検証対象回路又は上記バス
モニタにバスプロトコルの遅延動作の設定と遅延動作回
路を有するシミュレーションモデル、上記バスのバスプ
ロトコルの動作遅延を含むテストデータを生成する試験
生成部、生成されたテストデータに含まれる指示に従っ
て上記シミュレーションモデルのリセットと上記検証対
象回路の内部設定とクロック供給制御及び停止制御とテ
ストごとのシミュレーション完了後の期待値比較及びテ
スト結果判定を行うモニター部を備え、検証に用いる動
作としての動作条件を指定し、上記シミュレーションモ
デルに対するデータ値を各テストの始めに初期値として
設定しテストの終わりにそれらの最終値を期待値と比較
し上記検証対象回路の動作の正当性を確認することを特
徴とする論理シミュレーション方法。
45. A circuit to be verified having an N-order cache, a circuit to be verified having no cache, a processor which is a circuit to be verified and has a cache of N-1 or less, and a main memory which is a circuit to be verified. A main memory control device for controlling a main memory, a bus connecting the circuit to be verified with the processor and the main memory control device, and a bus monitor connected to the bus for checking a bus protocol, A simulation model having a delay operation setting and a delay operation circuit of a bus protocol in a non-verification target circuit or the bus monitor, a test generation unit that generates test data including an operation delay of the bus protocol of the bus, According to the instructions included, reset the simulation model and set the internal A monitor unit for clock supply control and stop control, comparison of expected values after completion of simulation for each test, and determination of test results is specified, operating conditions as operations used for verification are specified, and data values for the simulation model are set for each test. A logic simulation method comprising first setting initial values and comparing the final values with expected values at the end of a test to confirm the validity of the operation of the circuit to be verified.
【請求項46】 上記検証対象回路が上記非検証対象で
ある上記プロセッサからリクエストを受けて動作しかつ
上記検証対象回路が以前受信したリクエストに対応して
その内部状態が決定され新たなリクエストの受信と内部
状態の組み合わせによるさらに新たな内部状態を持つと
き、上記プロセッサのN−1次キャッシュの状態とN−
1次キャッシュへのアクセス・コマンドによりリクエス
トが上記プロセッサから発生するときは上記プロセッサ
から上記バスへのリクエストを間接的に遅らせることを
特徴とする請求項45記載の論理シミュレーション方
法。
46. The verification target circuit operates in response to a request from the non-verification target processor, and the verification target circuit determines an internal state corresponding to a previously received request and receives a new request. And a new internal state by a combination of the internal state and the internal state,
46. The logic simulation method according to claim 45, wherein when a request is issued from the processor by an access command to the primary cache, the request from the processor to the bus is indirectly delayed.
【請求項47】 上記プロセッサのコマンド遅延条件と
してコマンドとコマンドの間に遅延を指示するコマンド
を挿入するか又はバスの信号値や信号値の変化が指定し
た条件になるまで上記プロセッサからN−1次キャッシ
ュへのアクセスを遅らせることを特徴とする請求項46
記載の論理シミュレーション方法。
47. As a command delay condition of the processor, a command indicating a delay is inserted between commands, or a signal value of the bus or a change in the signal value becomes N-1 from the processor until the designated condition is reached. 47. The access to the next cache is delayed.
The described logic simulation method.
【請求項48】 上記プロセッサのN−1次キャッシュ
と上記バスとの間にバス・コマンド・キューを備え、上
記アクセス・コマンドでは遅延を指定せずに上記バス・
コマンド・キューに遅延対象及び遅延条件及び遅延サイ
クル数を指定しバス上でリクエスト発行時に遅延させる
ことを特徴とする請求項46記載の論理シミュレーショ
ン方法。
48. A bus command queue is provided between the (N−1) th level cache of the processor and the bus, and the bus command queue is specified by the access command without specifying a delay.
47. The logic simulation method according to claim 46, wherein a delay target, a delay condition, and a delay cycle number are designated in the command queue, and the delay is performed when a request is issued on the bus.
【請求項49】 上記検証対象回路が上記バスに対して
リクエストを発行後上記検証対象回路以外のエージェン
トのバッファへのキューイング動作とその溢れ状態によ
り上記エージェントからの遅れた応答を受け又上記バッ
ファの状態によりリクエストを抑止する信号を受けてリ
クエストを発行するとき、上記エージェントのバッファ
サイズを実際に使用するバッファサイズより小さく設定
し応答タイミングやリクエスト抑止タイミングを変化さ
せることを特徴とする請求項45記載の論理シミュレー
ション方法。
49. After the circuit to be verified issues a request to the bus, a queuing operation of an agent other than the circuit to be verified into a buffer and a delayed response from the agent due to an overflow state of the buffer are performed. 47. When issuing a request in response to a signal for suppressing a request depending on the state of the request, the buffer size of the agent is set smaller than the buffer size actually used, and the response timing and the request suppression timing are changed. The described logic simulation method.
【請求項50】 上記バッファサイズを設定する機能が
上記シミュレーションモデル上に備えられているときは
その機能を使用し備えられていないときはシミュレーシ
ョン時に設定することを特徴とする請求項49記載の論
理シミュレーション方法。
50. The logic according to claim 49, wherein when the function for setting the buffer size is provided on the simulation model, the function is used, and when the function is not provided, the function is set at the time of simulation. Simulation method.
【請求項51】 上記検証対象回路が上記シミュレーシ
ョンモデル以外の第1のエージェントからのリクエスト
に対しリクエスト発行元又は第2のエージェントの応答
を受けた上記検証対象回路がそれぞれ応答を返すとき、
上記リクエスト発行元又は上記第2のエージェントに応
答サイクルの遅れを指示する条件をバスプロトコルで定
義されるバスパイプラインのキューが予め設定された値
以上又は予め設定された値以下のときとすることを特徴
とする請求項45記載の論理シミュレーション方法。
51. When the circuit to be verified receives a response from the request source or the second agent to the request from the first agent other than the simulation model, the circuit to be verified returns a response.
The condition for instructing the request issuer or the second agent to delay the response cycle is when the queue of the bus pipeline defined by the bus protocol is equal to or greater than a preset value or equal to or less than a preset value. The logic simulation method according to claim 45, wherein:
【請求項52】 上記検証対象回路が上記シミュレーシ
ョンモデル以外の第1のエージェントからのリクエスト
に対しリクエスト発行元または第2のエージェントの応
答を受けて上記検証対象回路が応答を返すとき、上記リ
クエスト発行元又は上記第2のエージェントに応答サイ
クルの遅れを指示するとき、上記バス上のテスト開始か
ら数えて予め設定された個数目のトランザクションにつ
いて遅延動作を適用することを特徴とする請求項45記
載の論理シミュレーション方法。
52. When the circuit to be verified receives a response from a request issuing source or a second agent in response to a request from a first agent other than the simulation model, and the circuit to be verified returns a response, the request issuance 46. The method according to claim 45, wherein when instructing the former or the second agent to delay the response cycle, the delay operation is applied to a predetermined number of transactions counted from the start of the test on the bus. Logic simulation method.
【請求項53】 上記検証対象回路が上記シミュレーシ
ョンモデル以外の第1のエージェントからのリクエスト
に対しリクエスト発行元または第2のエージェントの応
答を受けて上記検証対象回路が応答を返すとき、上記リ
クエスト発行元又は上記第2のエージェントに応答サイ
クルの遅れを指示するとき、上記バス上のトランザクシ
ョンのアドレスが一致したとき遅延動作を適用すること
を特徴とする請求項45記載の論理シミュレーション方
法。
53. When the circuit to be verified receives a response from a request issuing source or a second agent to a request from a first agent other than the simulation model and returns a response, the circuit to be verified issues the request. 46. The logic simulation method according to claim 45, wherein when instructing the former or said second agent to delay the response cycle, a delay operation is applied when the addresses of the transactions on the bus match.
【請求項54】 上記検証対象回路がバス上の第1の信
号を処理中に上記検証対象回路以外のエージェントが上
記バス上の第2の信号に対して予め設定されたサイクル
数待ちその信号のプロトコルを満足する最初のサイクル
でその信号を駆動することを特徴とする請求項45記載
の論理シミュレーション方法。
54. While the circuit to be verified is processing the first signal on the bus, an agent other than the circuit to be verified waits a predetermined number of cycles for the second signal on the bus. The logic simulation method according to claim 45, wherein the signal is driven in the first cycle satisfying the protocol.
【請求項55】 複数のバスに接続された上記検証対象
回路が第1のバス上の第1の信号を処理中に上記検証対
象回路以外のエージェントが第2のバス上の第2の信号
に対して予め設定されたサイクル数待ちその信号のプロ
トコルを満足する最初のサイクルでその信号を駆動する
ことを特徴とする請求項45記載の論理シミュレーショ
ン方法。
55. While the circuit to be verified connected to the plurality of buses is processing the first signal on the first bus, an agent other than the circuit to be verified changes the second signal on the second bus. 46. The logic simulation method according to claim 45, wherein the signal is driven in the first cycle that satisfies the protocol of the signal after waiting for a preset number of cycles.
【請求項56】 上記検証対象回路が上記シミュレーシ
ョンモデル上の他のエージェントの信号を受信して動作
するとき、上記エージェントの信号値のビット数で表現
できる全ての値の個々についてまたはグループ化した値
の個々についてそれぞれ個別に上記エージェントの信号
の駆動を遅らせるサイクル数を指定することを特徴とす
る請求項45記載の論理シミュレーション方法。
56. When the circuit to be verified operates by receiving a signal of another agent on the simulation model, all values that can be represented by the number of bits of the signal value of the agent are individually or grouped. 46. The logic simulation method according to claim 45, wherein the number of cycles for delaying the driving of the signal of the agent is individually designated for each of.
【請求項57】 上記検証対象回路が上記シミュレーシ
ョンモデル上の他のエージェントのリクエストを受信し
て動作するとき、上記エージェントの発行するリクエス
トのアドレスが予め設定されたアドレスと一致したとき
上記エージェントは予め設定されたサイクル数待って上
記リクエストを発行することを特徴とする請求項45記
載の論理シミュレーション方法。
57. When the circuit to be verified operates upon receiving a request from another agent on the simulation model, when the address of the request issued by the agent matches a preset address, the agent The logic simulation method according to claim 45, wherein the request is issued after a set number of cycles.
【請求項58】 上記検証対象回路以外の上記エージェ
ントの動作条件及び上記バス上の信号の遅延条件は第1
の条件を適用後第2の条件を適用するように段階的に設
定可能としたことを特徴とする請求項46〜請求項57
のいずれかに記載の論理シミュレーション方法。
58. An operating condition of the agent other than the circuit to be verified and a delay condition of a signal on the bus are first.
58. The method according to claim 46, wherein the second condition is applied after the first condition is applied.
The logic simulation method according to any one of the above.
【請求項59】 上記バスモニタはトランザクション単
位に信号の履歴を記録し、試験終了または試験途中でそ
の履歴を表示することを特徴とする請求項45記載の論
理シミュレーション方法。
59. The logic simulation method according to claim 45, wherein the bus monitor records a signal history in transaction units and displays the history at the end of the test or during the test.
【請求項60】 上記非検証対象回路から上記バス上に
エラー信号を注入又は上記バス上のエラー報告信号を駆
動して上記検証対象回路又は上記シミュレーションモデ
ル上の他のエージェントにリトライ動作を行わせること
を特徴とする請求項45記載の論理シミュレーション方
法。
60. Inject an error signal from the non-verification target circuit onto the bus or drive an error report signal on the bus to cause the verification target circuit or another agent on the simulation model to perform a retry operation. The logic simulation method according to claim 45, wherein:
【請求項61】 MESI(Modified、Exc
luseived、Shared、Invalidat
ed)と称されるキャッシュのステートが4状態までの
ライトバック形式のキャッシュであるMESIステート
又はMSI(Modified、Shared、Inv
alidated)と称されるキャッシュのステートが
3状態までのライトバック形式のキャッシュであるMS
Iステートにより構成されるN次キャッシュを保有する
検証対象回路、キャッシュを保有しない検証対象回路、
非検証対象回路でありN−1次以下のキャッシュを保有
するプロセッサ、非検証対象回路である主記憶と主記憶
を制御する主記憶制御装置、上記検証対象回路と上記プ
ロセッサと上記主記憶制御装置との間をそれぞれ接続し
外部から検証対象回路の制御と結果の過程の調査を行う
バスから構成されるシミュレーションモデル、テストデ
ータを生成する試験生成部、生成されたテストデータに
含まれる指示に従って上記シミュレーションモデルのリ
セットと上記検証対象回路の内部設定とクロック供給制
御及び停止制御とテストごとのシミュレーション完了後
の期待値比較及びテスト結果判定を行うモニター部を備
え、検証に用いる動作としての動作条件を乱数と人手に
より指定した条件の組み合わせで決定し、上記シミュレ
ーションモデルに対するデータ値を各テストの始めに初
期値として設定しテストの終わりにそれらの最終値を期
待値と比較し上記検証対象回路の動作の正当性を確認す
ることを特徴とする論理シミュレーション方法。
61. MESI (Modified, Exc)
used, shared, invalidat
ed) up to four cache states
MESI state or MSI (Modified, Shared, Inv) which is a write-back type cache
The state of the cache, referred to as
MS that is a write-back cache up to 3 states
A circuit to be verified having an N-level cache constituted by an I state, a circuit to be verified having no cache,
A processor which is a non-verification target circuit and has a cache of order N-1 or less; a main storage which is a non-verification target circuit; and a main memory control device which controls the main memory; a verification target circuit, the processor and the main memory control device A simulation model composed of a bus for externally controlling the circuit to be verified and examining the result process, a test generation unit for generating test data, and an instruction included in the generated test data. A monitor unit for resetting the simulation model, setting the internal settings of the circuit to be verified, controlling clock supply and stopping, and comparing the expected value after the simulation is completed for each test and determining the test result. Determined by a combination of random numbers and manually specified conditions, Logic simulation method characterized by the data value to validate the operation of the comparison by the verification circuit with an expected value to their final values at the end of the set as the initial value testing at the beginning of each test.
【請求項62】 上記N次キャッシュが上記N−1次キ
ャッシュを包含し、上記検証対象回路が上記シミュレー
ションモデル上の他のエージェントの信号を受信して動
作するとき、上記エージェントの信号又はバス上の信号
の駆動を遅延させるサイクル数を予め設定された分布テ
ーブルに基づく乱数に従って決定することを特徴とする
請求項61記載の論理シミュレーション方法。
62. When the Nth level cache includes the N-1st level cache, and the circuit to be verified operates by receiving a signal of another agent on the simulation model, the signal on the agent or on the bus 62. The logic simulation method according to claim 61, wherein the number of cycles for delaying the driving of the signal is determined according to a random number based on a distribution table set in advance.
【請求項63】 上記分布テーブルを複数備え、個々の
遅延要素に対して分布テーブルを指定することを特徴と
する請求項62記載の論理シミュレーション方法。
63. The logic simulation method according to claim 62, wherein a plurality of the distribution tables are provided, and a distribution table is designated for each delay element.
【請求項64】 上記プロセッサがN−1次キャッシュ
に対して読み出し及び書き込みコマンドでアクセスする
ことにより上記検証対象回路の検証を行うとき、上記N
次キャッシュの初期値を乱数で決めその値に対して取り
得るN−1次キャッシュの初期状態を乱数で選択するこ
とを特徴とする請求項61記載の論理シミュレーション
方法。
64. When the processor verifies the circuit to be verified by accessing the (N−1) th cache with a read and write command,
62. The logic simulation method according to claim 61, wherein an initial value of the next cache is determined by a random number, and an initial state of the (N-1) th cache that can be taken for the value is selected by a random number.
【請求項65】 上記プロセッサから上記バスに対して
リクエストを発行するとき、そのリクエストの種類を乱
数により選択し、そのリクエスト値は予め設定された分
布テーブルに基づく乱数に従って決定することを特徴と
する請求項61記載の論理シミュレーション方法。
65. When issuing a request from the processor to the bus, the type of the request is selected by a random number, and the request value is determined according to a random number based on a preset distribution table. 63. The logic simulation method according to claim 61.
【請求項66】 上記プロセッサが上記バス上のリクエ
ストに対して上記プロセッサが包含するキャッシュのス
ヌープ結果を上記バス上に応答するとき、その応答値で
あるスヌープ値は予め設定された分布テーブルに基づく
乱数に従って決定することを特徴とする請求項61記載
の論理シミュレーション方法。
66. When the processor responds to the bus with a snoop result of a cache included in the processor in response to a request on the bus, the response snoop value is based on a preset distribution table. 62. The logic simulation method according to claim 61, wherein the logic simulation is determined according to a random number.
【請求項67】 上記非検証対象回路が上記バス上のリ
クエストに対して受け付けの可否又はデータ転送の有無
又はデータ転送経路又はエラーの有無の指示を行うレス
ポンス応答をするとき、その応答値であるレスポンス応
答値は予め設定された分布テーブルに基づく乱数に従っ
て決定することを特徴とする請求項61記載の論理シミ
ュレーション方法。
67. A response value when the non-verification target circuit responds to the request on the bus to indicate whether or not to accept the request, whether or not to transfer data, or to indicate whether or not there is a data transfer path or an error. The logic simulation method according to claim 61, wherein the response value is determined according to a random number based on a preset distribution table.
【請求項68】 上記プロセッサ内から発行されたリク
エストの対象アドレスにおけるキャッシュのインデック
スの決定及びそのキャッシュの最終状態をチェックする
ウェイの決定に乱数を用いるとき、割り付け可能な上記
インデックス及びウェイに識別記号を付し既に割り付け
済みの識別記号を除いた識別記号から乱数に従って決定
することを特徴とする請求項61記載の論理シミュレー
ション方法。
68. When a random number is used for determining an index of a cache at a target address of a request issued from within the processor and for determining a way for checking the final state of the cache, an identification symbol is assigned to the index and the way which can be allocated. 62. The logic simulation method according to claim 61, wherein the determination is made in accordance with a random number from the identification symbol excluding the identification symbol already assigned.
【請求項69】 上記検証対象回路が上記バスに対して
上記シミュレーションモデル上の他のエージェントの信
号を受信して動作するとき、上記非検証対象回路が決定
するコマンド又はアドレス又は応答値又は遅延サイクル
数に乱数から一意的に求まる値を採用し、その乱数は上
記モニタ部にて管理又は共通に管理することを特徴とす
る請求項61記載の論理シミュレーション方法。
69. A command or address determined by the non-verified circuit or a response value or a delay cycle when the circuit under verification operates on the bus by receiving a signal of another agent on the simulation model. 62. The logic simulation method according to claim 61, wherein a value uniquely determined from a random number is adopted as the number, and the random number is managed or commonly managed by the monitor unit.
【請求項70】 上記乱数の生成には上記モニタ部にて
管理する乱数生成ルーチンを使用することを特徴とする
請求項69記載の論理シミュレーション方法。
70. The logic simulation method according to claim 69, wherein a random number generation routine managed by said monitor unit is used for generating said random number.
【請求項71】 上記乱数のシードをテスト結果のログ
データとして残すことを特徴とする請求項69記載の論
理シミュレーション方法。
71. The logic simulation method according to claim 69, wherein said random number seed is left as log data of a test result.
【請求項72】 シミュレーション実行中に生成した乱
数と乱数を使用したルーチン識別子をそれぞれ保存する
ことを特徴とする請求項69記載の論理シミュレーショ
ン方法。
72. The logic simulation method according to claim 69, wherein a random number generated during execution of the simulation and a routine identifier using the random number are stored.
【請求項73】 上記乱数は予め生成されファイルにデ
ータとして格納されていることを特徴とする請求項69
記載の論理シミュレーション方法。
73. The method according to claim 69, wherein the random number is generated in advance and stored as data in a file.
The described logic simulation method.
【請求項74】 N次キャッシュを保有する検証対象回
路、キャッシュを保有しない検証対象回路、非検証対象
回路でありN−1次以下のキャッシュを保有するプロセ
ッサ、非検証対象回路である主記憶と主記憶を制御する
主記憶制御装置、上記検証対象回路と上記プロセッサと
上記主記憶制御装置との間をそれぞれ接続するバスから
構成されるシミュレーションモデル、テストデータを生
成する試験生成部、生成されたテストデータに含まれる
指示に従って上記シミュレーションモデルのリセットと
上記検証対象回路の内部設定とクロック供給制御及び停
止制御とテストごとのシミュレーション完了後の期待値
比較及びテスト結果判定を行うモニター部を備え、検証
に用いる動作としての動作条件を指定し、クロック供給
前のキャッシュのエントリの使用状況を制御し、クロッ
ク供給後のキャッシュのエントリの使用状況とエントリ
を決定するアドレスとコマンドの発生を制御し、一様乱
数発生で決定するアドレス又はコマンドからは確率的に
発生しにくい事象を高確率で発生するようデータ値を生
成し、上記シミュレーションモデルに対するデータ値を
各テストの始めに初期値として設定しテストの終わりに
それらの最終値を期待値と比較し上記検証対象回路の動
作の正当性を確認することを特徴とする論理シミュレー
ション方法。
74. A circuit to be verified having an N-order cache, a circuit to be verified having no cache, a processor being a circuit to be verified and having a cache of N-1 or less, and a main memory being a circuit not to be verified. A main storage control device for controlling main storage, a simulation model including a bus connecting the circuit to be verified with the processor and the main storage control device, a test generation unit for generating test data, A monitor unit for resetting the simulation model, setting internal settings of the circuit to be verified, controlling clock supply and stopping, and comparing expected values after completion of simulation for each test and determining test results in accordance with instructions included in the test data; Specify the operating conditions for the operation used for Control the usage of the entry, control the usage of the cache entry after the clock is supplied, and control the generation of addresses and commands that determine the entry. A data value is generated so that an event occurs with a high probability, and a data value for the simulation model is set as an initial value at the beginning of each test, and at the end of the test, the final value is compared with an expected value. A logic simulation method characterized by confirming the validity of an operation.
【請求項75】 上記N次キャッシュが上記N−1次キ
ャッシュを包含し、上記プロセッサがN−1次キャッシ
ュに対して読み出し及び書き込みコマンドによりアクセ
スし、上記プロセッサ又は上記検証対象回路に接続され
た他のエージェントがリクエストとして使用するアドレ
スの内キャッシュのインデックスを決定するアドレスの
ビットパターンを限定しその限定された範囲において乱
数によりアドレスを選択することを特徴とする請求項7
4記載の論理シミュレーション方法。
75. The Nth level cache includes the N-1st level cache, wherein the processor accesses the N-1st level cache by read and write commands and is connected to the processor or the circuit to be verified. 8. The method according to claim 7, wherein a bit pattern of an address for determining an index of a cache among addresses used as requests by another agent is limited, and an address is selected by a random number within the limited range.
5. The logic simulation method according to item 4.
【請求項76】 上記他のエージェントがリクエストと
して使用するアドレスの内キャッシュのインデックスに
使用されるビットより上位のビットから構成されるアド
レスビットパターンの種類を制限しその制限された中か
ら乱数でアドレスを選択することを特徴とする請求項7
4記載の論理シミュレーション方法。
76. The type of an address bit pattern composed of bits higher than the bit used for the index of the cache in the address used as a request by the other agent, and the address is selected by a random number from the restricted one. 8. The method of claim 7, wherein
5. The logic simulation method according to item 4.
【請求項77】 上記検証対象回路がN次のセットアソ
シアティブ方式のキャッシュを備えそのキャッシュのウ
ェイの使用可能な個数又はウェイごとに使用の可否を選
択して設定することを特徴とする請求項74記載の論理
シミュレーション方法。
77. The method according to claim 74, wherein the circuit to be verified has an N-order set associative cache, and the number of usable ways of the cache or the availability of each way is selected and set. The described logic simulation method.
【請求項78】 上記検証対象回路が上記プロセッサか
ら強制的にキャッシュの内容を無効化又は主記憶へ書き
戻すコマンドが発行され上記検証対象回路がその内部の
カウンタを順次加算又は減算しながらその無効化または
書き戻し動作を処理するとき、上記カウンタの値が予め
設定された値になったらそのカウンタの値を強制的に変
更することによりシミュレーションを省略しその省略さ
れたアドレスの使用を制限することを特徴とする請求項
74記載の論理シミュレーション方法。
78. A command is issued by the processor from the processor to forcibly invalidate the contents of the cache or write back to the main memory, and the circuit to be verified adds or subtracts an internal counter sequentially to invalidate the cache. When processing the conversion or write-back operation, when the value of the counter reaches a preset value, the value of the counter is forcibly changed, thereby omitting the simulation and restricting the use of the omitted address. 75. The logic simulation method according to claim 74, wherein:
【請求項79】 上記カウンタの値を強制的に変更する
ことにより省略されたアドレスに関する無効化又は書き
戻しを上記モニター部又は上記シミュレーションモデル
がクロックを進めずに代行することを特徴とする請求項
78記載の論理シミュレーション方法。
79. The monitor unit or the simulation model substitutes invalidation or write back of an address omitted by forcibly changing the value of the counter without advancing a clock. 78. The logic simulation method according to 78.
【請求項80】 MESI(Modified、Exc
luseived、Shared、Invalidat
ed)と称されるキャッシュのステートが4状態までの
ライトバック形式のキャッシュであるMESIステート
又はMSI(Modified、Shared、Inv
alidated)と称されるキャッシュのステートが
3状態までのライトバック形式のキャッシュであるMS
Iステートにより構成されN次キャッシュがN−1次キ
ャッシュを包含するキャッシュシステムからなるシミュ
レーションモデル、テストデータを生成する試験生成
部、生成されたテストデータに含まれる指示に従って上
記シミュレーションモデルのリセット及び内部設定とク
ロック供給制御及び停止制御とテストごとのシミュレー
ション完了後の期待値比較及びテスト結果判定を行うモ
ニター部を備え、検証に用いる動作としての動作条件と
キャッシュのステート値を指定し、上記シミュレーショ
ンモデルに対するデータ値をキャッシュのステートに応
じて動作誤りが検出できるように各テストの始めに初期
値として設定しテストの終わりにそれらの最終値を期待
値と比較し検証対象回路の動作の正当性を確認する論理
シミュレーション方法を実現させるためのプログラムを
記録したコンピュータ読み取り可能な記録媒体。
80. MESI (Modified, Exc
used, shared, invalidat
ed) up to four cache states
MESI state or MSI (Modified, Shared, Inv) which is a write-back type cache
The state of the cache, referred to as
MS that is a write-back cache up to 3 states
A simulation model composed of a cache system composed of an I state and an Nth cache including an N-1th cache; a test generation unit for generating test data; resetting and internal operation of the simulation model in accordance with instructions included in the generated test data A monitor unit for setting, clock supply control, stop control, comparison of expected values after completion of simulation for each test, and determination of test results, designating operating conditions and cache state values as operations used for verification, At the beginning of each test as an initial value so that an operation error can be detected according to the cache state, and compare the final value with the expected value at the end of the test to verify the correctness of the operation of the circuit to be verified. Logic simulation method to check A computer-readable recording medium a program for realizing.
【請求項81】 リクエスト及びレスポンス応答を駆動
するエージェントが接続されたバス、このバスに接続さ
れバスプロトコルのチェックを行うバスモニタから構成
されるシミュレーションモデル、テストデータを生成す
る試験生成部、生成されたテストデータに含まれる指示
に従って上記シミュレーションモデルのリセット及び内
部設定とクロック供給制御及び停止制御とテストごとの
シミュレーション完了後の期待値比較及びテスト結果判
定を行うモニター部を備え、検証に用いる動作としての
動作条件を指定し、上記シミュレーションモデルに対す
るデータ値を各テストの始めに初期値として設定しテス
トの途中でバスプロトコルの矛盾エラーがないことを
待値として動作の正当性を確認する論理シミュレーショ
ン方法を実現させるためのプログラムを記録したコンピ
ュータ読み取り可能な記録媒体。
81. A bus to which an agent for driving a request and a response is connected, a simulation model comprising a bus monitor connected to the bus and for checking a bus protocol, a test generation unit for generating test data, A monitor unit that performs reset and internal setting of the simulation model, clock supply control and stop control, comparison of expected values after completion of simulation for each test, and determination of test results in accordance with instructions included in the test data, and an operation used for verification. Specifies the operating conditions, correctness of operation and conflict errors middle bus protocol test data values for the simulation model is set as an initial value at the beginning of each test NYCO as year <br/> waiting value Check the logic simulation method realized Computer readable recording medium recording the order of the program.
【請求項82】 検証対象回路と非検証対象回路との間
を接続するバスから構成されるシミュレーションモデ
ル、テストデータを生成する試験生成部、生成されたテ
ストデータに含まれる指示に従って上記シミュレーショ
ンモデルのリセット及び内部設定とクロック供給制御及
び停止制御とテストごとのシミュレーション完了後の期
待値比較及びテスト結果判定を行うモニター部を備え、
検証に用いる動作としての動作条件を指定し、上記シミ
ュレーションモデルに対するデータ値を各テストの始め
に初期値として設定しテスト実行中に上記検証対象回路
の故障を示すエラーが発生しないことにより上記検証対
象回路の正当性を確認する論理シミュレーション方法を
実現させるためのプログラムを記録したコンピュータ読
み取り可能な記録媒体。
82. A simulation model comprising a bus connecting between a circuit to be verified and a circuit not to be verified, a test generation unit for generating test data, and a simulation model according to an instruction included in the generated test data. A monitor unit that performs reset and internal setting, clock supply control and stop control, and comparison of expected values after completion of simulation for each test and test result determination,
Specifies the operating conditions of the operation using the verification, the verification circuit data value during the set test run as an initial value at the beginning of each test for the simulation model
A computer-readable recording medium storing a program for realizing a logic simulation method for confirming the validity of the circuit to be verified by not generating an error indicating a failure of the computer.
【請求項83】 MESI(Modified、Exc
luseived、Shared、Invalidat
ed)と称されるキャッシュのステートが4状態までの
ライトバック形式のキャッシュであるMESIステート
又はMSI(Modified、Shared、Inv
alidated)と称されるキャッシュのステートが
3状態までのライトバック形式のキャッシュであるMS
Iステートにより構成されN次キャッシュがN−1次キ
ャッシュを包含するキャッシュシステム、リクエスト及
びレスポンス応答を駆動するエージェント、上記キャッ
シュシステム及び上記エージェント間を接続するバス、
このバスに接続されバスプロトコルとキャッシュのステ
ートの矛盾のチェックを行うバスモニタから構成される
シミュレーションモデル、テストデータを生成する試験
生成部、生成されたテストデータに含まれる指示に従っ
て上記シミュレーションモデルのリセット及び内部設定
とクロック供給制御及び停止制御とテストごとのシミュ
レーション完了後の期待値比較及びテスト結果判定を行
うモニター部を備え、検証に用いる動作としての動作条
件を指定し、上記シミュレーションモデルに対するデー
タ値を各テストの始めに初期値として設定しテストの途
中又はテストの終わりに上記バスモニタにより検出され
るキャッシュのステートとバスプロトコルの矛盾がない
ことを期待値として検証対象回路の動作の正当性を確認
する論理シミュレーション方法を実現させるためのプロ
グラムを記録したコンピュータ読み取り可能な記録媒
体。
83. MESI (Modified, Exc
used, shared, invalidat
ed) up to four cache states
MESI state or MSI (Modified, Shared, Inv) which is a write-back type cache
The state of the cache, referred to as
MS that is a write-back cache up to 3 states
A cache system including an I-state and an N-level cache including an N-1 level cache, an agent for driving a request and a response, a bus connecting the cache system and the agent,
A simulation model comprising a bus monitor connected to this bus for checking a conflict between a bus protocol and a state of a cache; a test generation unit for generating test data; resetting the simulation model in accordance with an instruction included in the generated test data And a monitor unit for performing internal settings, clock supply control and stop control, and comparing expected values after completion of simulation for each test and determining test results, designating operating conditions as operations used for verification, and data values for the simulation model. Is set as an initial value at the beginning of each test, and during the test or at the end of the test, the validity of the operation of the circuit to be verified is assumed to be an expected value with no inconsistency between the cache state detected by the bus monitor and the bus protocol. Logic simulation to check A computer-readable recording medium a program for realizing the Deployment method.
【請求項84】 検証対象回路と非検証対象回路との間
を接続するバスから構成されるシミュレーションモデ
ル、テストデータを生成する試験生成部、生成されたテ
ストデータに含まれる指示に従って上記シミュレーショ
ンモデルのリセット処理と上記検証対象回路の内部設定
とクロック供給制御及び停止制御とテストごとのシミュ
レーション完了後の期待値比較及びテスト結果判定を行
うモニター部を備え、検証に用いる動作としての動作条
件を指定し、上記シミュレーションモデルに対するデー
タ値を各テストの始めに初期値として設定しテストの終
わりにそれらの最終値を期待値と比較し検証対象回路の
動作の正当性を確認する論理シミュレーション方法にお
いて、上記検証対象回路と上記非検証対象回路に対して
各テスト毎にリセット処理を行うことを特徴とする論理
シミュレーション方法を実現させるためのプログラムを
記録したコンピュータ読み取り可能な記録媒体。
84. A simulation model comprising a bus connecting between a circuit to be verified and a circuit not to be verified, a test generation unit for generating test data, and a simulation model according to an instruction included in the generated test data. A monitor unit that performs reset processing, internal setting of the circuit to be verified, clock supply control and stop control, comparison of expected values after simulation for each test, and determination of test results, and specifies operating conditions as operations used for verification. A logic simulation method for setting a data value for the simulation model as an initial value at the beginning of each test and comparing the final value with an expected value at the end of the test to confirm the validity of the operation of the circuit to be verified. Reset the target circuit and the above non-verification target circuit for each test A computer-readable storage medium storing a program for realizing a logic simulation method characterized by performing processing.
【請求項85】 N次キャッシュを保有する検証対象回
路、キャッシュを保有しない検証対象回路、非検証対象
回路でありN−1次以下のキャッシュを保有するプロセ
ッサ、非検証対象回路である主記憶と主記憶を制御する
主記憶制御装置、上記検証対象回路と上記プロセッサと
上記主記憶制御装置との間をそれぞれ接続するバスから
構成されるシミュレーションモデル、テストデータを生
成する試験生成部、生成されたテストデータに含まれる
指示に従って上記シミュレーションモデルのリセットと
上記検証対象回路の内部設定とクロック供給制御及び停
止制御とテストごとのシミュレーション完了後の期待値
比較及びテスト結果判定を行うモニター部を備え、検証
に用いる動作としての動作条件を指定し、上記シミュレ
ーションモデルに対するデータ値を各テストの始めに初
期値として設定しテストの終わりにそれらの最終値を期
待値と比較し上記検証対象回路の動作の正当性を確認す
る論理シミュレーション方法において、上記N次キャッ
シュが上記N−1次キャッシュを包含し、上記プロセッ
サへのデータの書き込み順序がバス上に現れたときその
プロトコルの順序が変更されることを許可した条件にお
いて、複数回書き込みアクセスが行われるアドレスの選
択は、1回だけ使用可能な非共有アドレス領域と複数回
使用可能な共有アドレス領域に分離し、非共有アドレス
領域に対してはすでに登録されたアドレスを選択しない
ように決定し、共有アドレス領域に対しては非共有アド
レス領域に該当しないアドレスを選択するよう試験生成
し、試験終了時に非共有アドレス領域についてはキャッ
シュの最終値を比較し、共有アドレス領域についてはキ
ャッシュを特定した比較は行わないことを特徴とする論
理シミュレーション方法を実現させるためのプログラム
を記録したコンピュータ読み取り可能な記録媒体。
85. A circuit to be verified having an Nth-order cache, a circuit to be verified having no cache, a processor being a non-verification target circuit and having a cache of N-1 or less, a main memory being a non-verification target circuit, A main storage control device for controlling main storage, a simulation model including a bus connecting the circuit to be verified with the processor and the main storage control device, a test generation unit for generating test data, A monitor unit for resetting the simulation model, setting internal settings of the circuit to be verified, controlling clock supply and stopping, and comparing expected values after completion of simulation for each test and determining test results in accordance with instructions included in the test data; Specify the operating conditions for the operation to be used for In the logic simulation method for setting a data value to be performed as an initial value at the beginning of each test and comparing the final value with an expected value at the end of the test to confirm the validity of the operation of the circuit to be verified, Selection of an address that includes the N-1 level cache and that allows a plurality of write accesses to be performed on condition that the protocol order is changed when the data write order to the processor appears on the bus Is divided into a non-shared address area that can be used only once and a shared address area that can be used multiple times. For the non-shared address area, it is determined not to select an already registered address. A test is generated to select an address that does not fall into the non-shared address area, and the non-shared address area is For comparing the final value of the cache, and computer readable recording medium a program for realizing the logic simulation method characterized by the shared address space it does not perform comparison identifying the cache.
【請求項86】 N次キャッシュを保有する検証対象回
路、キャッシュを保有しない検証対象回路、非検証対象
回路でありN−1次以下のキャッシュを保有するプロセ
ッサ、非検証対象回路である主記憶と主記憶を制御する
主記憶制御装置、上記検証対象回路と上記プロセッサと
上記主記憶制御装置との間をそれぞれ接続するバス、こ
のバスに接続されバスプロトコルのチェックを行うバス
モニタから構成され、上記非検証対象回路又は上記バス
モニタにバスプロトコルの遅延動作の設定と遅延動作回
路を有するシミュレーションモデル、上記バスのバスプ
ロトコルの動作遅延を含むテストデータを生成する試験
生成部、生成されたテストデータに含まれる指示に従っ
て上記シミュレーションモデルのリセットと上記検証対
象回路の内部設定とクロック供給制御及び停止制御とテ
ストごとのシミュレーション完了後の期待値比較及びテ
スト結果判定を行うモニター部を備え、検証に用いる動
作としての動作条件を指定し、上記シミュレーションモ
デルに対するデータ値を各テストの始めに初期値として
設定しテストの終わりにそれらの最終値を期待値と比較
し上記検証対象回路の動作の正当性を確認することを特
徴とする論理シミュレーション方法を実現させるための
プログラムを記録したコンピュータ読み取り可能な記録
媒体。
86. A circuit to be verified having an N-order cache, a circuit to be verified having no cache, a processor which is a circuit to be verified and has a cache of N-1 or less, and a main memory which is a circuit not to be verified. A main memory control device for controlling a main memory, a bus connecting the circuit to be verified with the processor and the main memory control device, and a bus monitor connected to the bus for checking a bus protocol, A simulation model having a delay operation setting and a delay operation circuit of a bus protocol in a non-verification target circuit or the bus monitor, a test generation unit that generates test data including an operation delay of the bus protocol of the bus, According to the instructions included, reset the simulation model and set the internal A monitor unit for clock supply control and stop control, comparison of expected values after completion of simulation for each test, and determination of test results is specified, operating conditions as operations used for verification are specified, and data values for the simulation model are set for each test. At the end of the test, a program for realizing a logic simulation method characterized by setting as initial values and comparing the final values with expected values at the end of the test to confirm the validity of the operation of the circuit to be verified is recorded. Computer readable recording medium.
【請求項87】 MESI(Modified、Exc
luseived、Shared、Invalidat
ed)と称されるキャッシュのステートが4状態までの
ライトバック形式のキャッシュであるMESIステート
又はMSI(Modified、Shared、Inv
alidated)と称されるキャッシュのステートが
3状態までのライトバック形式のキャッシュであるMS
Iステートにより構成されるN次キャッシュを保有する
検証対象回路、キャッシュを保有しない検証対象回路、
非検証対象回路でありN−1次以下のキャッシュを保有
するプロセッサ、非検証対象回路である主記憶と主記憶
を制御する主記憶制御装置、上記検証対象回路と上記プ
ロセッサと上記主記憶制御装置との間をそれぞれ接続し
外部から検証対象回路の制御と結果の過程の調査を行う
バスから構成されるシミュレーションモデル、テストデ
ータを生成する試験生成部、生成されたテストデータに
含まれる指示に従って上記シミュレーションモデルのリ
セットと上記検証対象回路の内部設定とクロック供給制
御及び停止制御とテストごとのシミュレーション完了後
の期待値比較及びテスト結果判定を行うモニター部を備
え、検証に用いる動作としての動作条件を乱数と人手に
より指定した条件の組み合わせで決定し、上記シミュレ
ーションモデルに対するデータ値を各テストの始めに初
期値として設定しテストの終わりにそれらの最終値を期
待値と比較し上記検証対象回路の動作の正当性を確認す
る論理シミュレーション方法を実現させるためのプログ
ラムを記録したコンピュータ読み取り可能な記録媒体。
87. MESI (Modified, Exc.
used, shared, invalidat
ed) up to four cache states
MESI state or MSI (Modified, Shared, Inv) which is a write-back type cache
The state of the cache, referred to as
MS that is a write-back cache up to 3 states
A circuit to be verified having an N-level cache constituted by an I state, a circuit to be verified having no cache,
A processor which is a non-verification target circuit and has a cache of order N-1 or less; a main storage which is a non-verification target circuit; and a main memory control device which controls the main memory; a verification target circuit, the processor and the main memory control device A simulation model composed of a bus for externally controlling the circuit to be verified and examining the result process, a test generation unit for generating test data, and an instruction included in the generated test data. A monitor unit for resetting the simulation model, setting the internal settings of the circuit to be verified, controlling clock supply and stopping, and comparing the expected value after the simulation is completed for each test and determining the test result. Determined by a combination of random numbers and manually specified conditions, At the beginning of each test, the data values to be set are set as initial values, and at the end of the test, the final values are compared with expected values, and a program for realizing a logic simulation method for confirming the validity of the operation of the circuit to be verified is prepared. A computer-readable recording medium that has been recorded.
【請求項88】 N次キャッシュを保有する検証対象回
路、キャッシュを保有しない検証対象回路、非検証対象
回路でありN−1次以下のキャッシュを保有するプロセ
ッサ、非検証対象回路である主記憶と主記憶を制御する
主記憶制御装置、上記検証対象回路と上記プロセッサと
上記主記憶制御装置との間をそれぞれ接続するバスから
構成されるシミュレーションモデル、テストデータを生
成する試験生成部、生成されたテストデータに含まれる
指示に従って上記シミュレーションモデルのリセットと
上記検証対象回路の内部設定とクロック供給制御及び停
止制御とテストごとのシミュレーション完了後の期待値
比較及びテスト結果判定を行うモニター部を備え、検証
に用いる動作としての動作条件を指定し、クロック供給
前のキャッシュのエントリの使用状況を制御し、クロッ
ク供給後のキャッシュのエントリの使用状況とエントリ
を決定するアドレスとコマンドの発生を制御し、一様乱
数発生で決定するアドレス又はコマンドからは確率的に
発生しにくい事象を高確率で発生するようデータ値を生
成し、上記シミュレーションモデルに対するデータ値を
各テストの始めに初期値として設定しテストの終わりに
それらの最終値を期待値と比較し上記検証対象回路の動
作の正当性を確認する論理シミュレーション方法を実現
させるためのプログラムを記録したコンピュータ読み取
り可能な記録媒体。
88. A circuit to be verified having an N-level cache, a circuit to be verified having no cache, a processor being a circuit to be verified and having a cache of N-1 or less, and a main memory being a circuit not to be verified. A main storage control device for controlling main storage, a simulation model including a bus connecting the circuit to be verified with the processor and the main storage control device, a test generation unit for generating test data, A monitor unit for resetting the simulation model, setting internal settings of the circuit to be verified, controlling clock supply and stopping, and comparing expected values after completion of simulation for each test and determining test results in accordance with instructions included in the test data; Specify the operating conditions for the operation used for Control the usage of the entry, control the usage of the cache entry after the clock is supplied, and control the generation of addresses and commands that determine the entry. A data value is generated so that an event occurs with a high probability, and a data value for the simulation model is set as an initial value at the beginning of each test, and at the end of the test, the final value is compared with an expected value. A computer-readable storage medium storing a program for realizing a logic simulation method for confirming the validity of an operation.
JP12220597A 1997-05-13 1997-05-13 Logic simulation method and computer-readable recording medium recording program for implementing the logic simulation method Expired - Fee Related JP3162321B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12220597A JP3162321B2 (en) 1997-05-13 1997-05-13 Logic simulation method and computer-readable recording medium recording program for implementing the logic simulation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12220597A JP3162321B2 (en) 1997-05-13 1997-05-13 Logic simulation method and computer-readable recording medium recording program for implementing the logic simulation method

Publications (2)

Publication Number Publication Date
JPH10312311A JPH10312311A (en) 1998-11-24
JP3162321B2 true JP3162321B2 (en) 2001-04-25

Family

ID=14830160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12220597A Expired - Fee Related JP3162321B2 (en) 1997-05-13 1997-05-13 Logic simulation method and computer-readable recording medium recording program for implementing the logic simulation method

Country Status (1)

Country Link
JP (1) JP3162321B2 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3888823B2 (en) 2000-02-14 2007-03-07 松下電器産業株式会社 Semiconductor integrated circuit
JP4955205B2 (en) * 2004-11-04 2012-06-20 三菱電機株式会社 Arbitration device and arbitration method
JP4617282B2 (en) 2006-08-31 2011-01-19 富士通株式会社 Load generator and load test method
JP5256948B2 (en) * 2008-09-04 2013-08-07 富士通株式会社 Cache logic verification device, cache logic verification method, and cache logic verification program
JP6089469B2 (en) * 2012-07-13 2017-03-08 株式会社明電舎 Digital circuit simulation apparatus and program thereof.
WO2017013783A1 (en) * 2015-07-23 2017-01-26 株式会社日立製作所 Logic circuit verification method
CN112084734A (en) * 2020-09-14 2020-12-15 北京世冠金洋科技发展有限公司 Test result processing method and device and electronic equipment
CN112084668B (en) * 2020-09-14 2023-11-14 北京世冠金洋科技发展有限公司 Simulation test method and device and electronic equipment
WO2022145092A1 (en) * 2020-12-28 2022-07-07 日立Astemo株式会社 Electronic control device and method for diagnosing vehicle-mounted device
CN113515348B (en) * 2021-07-16 2023-11-14 江苏师范大学 Simulator modeling method and device based on opportunity action flow
CN116149918B (en) * 2023-04-20 2023-06-30 上海灵动微电子股份有限公司 AHB bus matrix-based test method and system
CN117422026B (en) * 2023-12-18 2024-03-26 青岛本原微电子有限公司 RISC-V architecture-based processor verification system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"システムレベル大規模論理シミュレーション手法",三菱電機技報,1996年2月,Vol.70,No.2,p.11−16

Also Published As

Publication number Publication date
JPH10312311A (en) 1998-11-24

Similar Documents

Publication Publication Date Title
US6542861B1 (en) Simulation environment cache model apparatus and method therefor
US9390024B2 (en) Bypassing a store-conditional request around a store queue
JP3162321B2 (en) Logic simulation method and computer-readable recording medium recording program for implementing the logic simulation method
US5996034A (en) Bus bridge verification system including device independent bus monitors
TWI637265B (en) Method, unit, system and computer program product for transactional storage accesses supporting differing priority levels
US20040117746A1 (en) Intent-driven functional verification of digital designs
US20060107120A1 (en) Microprocessor design support for computer system and platform validation
US10824567B2 (en) Selectively preventing pre-coherence point reads in a cache hierarchy to reduce barrier overhead
US7519865B1 (en) Systems and methods for identifying incomplete transactions
GB2567189A (en) Handling errors in buffers
US5794012A (en) Verification of strongly ordered memory accesses in a functional model of an out-of-order computer system
US7502966B2 (en) Testcase generation via a pool of parameter files
JP2023509334A (en) Cache snooping mode to extend coherence protection for specific requests
US7865345B2 (en) Simulation apparatus and method
US6496792B1 (en) Transaction checking for system architecture validation
US20220066801A1 (en) System and method for modeling memory devices with latency
US9323702B2 (en) Increasing coverage of delays through arbitration logic
US11176038B2 (en) Cache-inhibited write operations
Lebedev et al. Test environment for verification of multi-processor memory subsystem unit
Steinman et al. The alphaserver 4100 cached processor module architecture and design
Petrochenkov et al. Approaches to stand-alone verification of multicore microprocessor caches
Taylor et al. A simulation-based method for the verification of shared memory in multiprocessor systems
US11556472B1 (en) Data processing system having masters that adapt to agents with differing retry behaviors
JPH10221410A (en) Automatic logic verification system for lsi
JP4268830B2 (en) Architecture simulation system and simulation method

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees