Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7786005B2 - 検証システム、検証方法、電子機器及び記憶媒体 - Google Patents
[go: Go Back, main page]

JP7786005B2 - 検証システム、検証方法、電子機器及び記憶媒体 - Google Patents

検証システム、検証方法、電子機器及び記憶媒体

Info

Publication number
JP7786005B2
JP7786005B2 JP2025512958A JP2025512958A JP7786005B2 JP 7786005 B2 JP7786005 B2 JP 7786005B2 JP 2025512958 A JP2025512958 A JP 2025512958A JP 2025512958 A JP2025512958 A JP 2025512958A JP 7786005 B2 JP7786005 B2 JP 7786005B2
Authority
JP
Japan
Prior art keywords
module
test
verification
function
storage unit
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.)
Active
Application number
JP2025512958A
Other languages
English (en)
Other versions
JP2025529962A (ja
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.)
Beijing Youzhuju Network Technology Co Ltd
Lemon Inc Cayman Island
Original Assignee
Beijing Youzhuju Network Technology Co Ltd
Lemon Inc Cayman Island
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 Beijing Youzhuju Network Technology Co Ltd, Lemon Inc Cayman Island filed Critical Beijing Youzhuju Network Technology Co Ltd
Publication of JP2025529962A publication Critical patent/JP2025529962A/ja
Application granted granted Critical
Publication of JP7786005B2 publication Critical patent/JP7786005B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3624Debugging of software by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3648Debugging of software using additional hardware
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3698Environments for analysis, debugging or testing of software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

[関連出願への相互参照]
本願は、2022年8月31日に提出された番号が202211062729.2である中国特許出願の優先権を主張し、その出願に開示されている内容の全体が本願の一部として援用される。
[技術分野]
本開示の実施例は、検証システム、検証方法、電子機器及び記憶媒体に関する。
現在、電子情報産業の急速な発展に伴い、システムオンチップ(System On Chip, SoC)の規模は、ますます大規模化しており、チップ開発作業量全体の平均70%近くを占めるチップ検証作業がますます複雑になり、チップのリスク管理に対する要件もますます高くなっている。
超大規模(Very Large Scale Integration, VLSI)集積回路チップに関連する集積回路ハードウェアモデルは非常に複雑になり、対応する設計と検証の計算量も大幅に増加している。したがって、非常に複雑な機能テストシナリオの場合には、電子設計の自動化(Electronic Design Automation, EDA)シミュレーションの速度、容量、効率ではSoC検証のニーズを満たすことができなくなるため、ハードウェアアクセラレーションによる検証技術が登場している。
ハードウェアアクセラレーション検証技術は、ハードウェアシミュレータを通じてチップ設計を検証し、テスト対象の設計(Design Under Test, DUT)をプロセッサアレイ又はフィールドプログラマブルゲートアレイ(Field Programmable Gate Array, FPGA)にマッピングし、マッピングされている同等のシステムを検証する。
ハードウェアアクセラレーション検証手段の速度は、ソフトウェアシミュレーションと比較して質的に向上されてきた。ソフトウェアシミュレーションの平均レートは、例えば、1[KHz]であるが、ハードウェアアクセラレーションのシミュレーション検証方法では、例えば、平均2[MHz]に達することが可能であり、検証効率が大幅に向上されている。
本開示の少なくとも一実施例は、シミュレーション検証機器と、前記シミュレーション検証機器にそれぞれ作成される第1部分及び第2部分と、を含む検証システムを提供し、前記第1部分は、それぞれテスト対象と接続される第1マスタモジュールと少なくとも1つの第2スレーブモジュールとを含み、前記テスト対象は、テストモジュールと、前記テストモジュールの周囲に接続される複数の対象インターフェースと、を含み、前記複数の対象インターフェースは、メモリアクセスインターフェースを含み、前記第2スレーブモジュールは、記憶ユニットを含み、前記記憶ユニットは、前記メモリアクセスインターフェースと接続され、前記第2部分は、第1ダイレクトプログラミングインターフェース、第2ダイレクトプログラミングインターフェース、関数ライブラリモジュール、及びテストケースモジュールを含み、前記テストケースモジュールは、少なくとも1つのテストケースを提供するように構成され、前記第1ダイレクトプログラミングインターフェースは、前記第1マスタモジュールと通信し、前記第1ダイレクトプログラミングインターフェースは、前記テストケースを実行することに応答して、前記関数ライブラリモジュールの中の少なくとも1つの第1関数を呼び出して、前記テストモジュールのレジスターのフロントドアアクセスを実現するように構成され、前記第2ダイレクトプログラミングインターフェースは、前記第1部分の前記記憶ユニットと通信し、前記第2ダイレクトプログラミングインターフェースは、前記テストケースを実行することに応答して、前記関数ライブラリモジュールの中の少なくとも1つの第2関数を呼び出して、前記記憶ユニットのバックドアアクセスを実現するように構成される。
本開示の少なくとも1つの実施例は、前記テストモジュールに基づいて、レジスター転送レベルコードのコンパイルを実行するステップと、前記第1部分、前記テスト対象、前記テストモジュール、前記第1マスタモジュール及び前記第2スレーブモジュールに基づいて、包括的なコンパイルを実行し、コンパイルされている前記第1部分を取得するステップと、前記シミュレーション検証機器の使用モードを選択し、前記使用モードに従って、少なくとも1つのコンパイルオプションに、コンパイルされている前記第1部分を追加し、第1アセンブラツールを呼び出して前記検証システムを分解し、前記シミュレーション検証機器のためのハードウェア情報ライブラリを生成し、アクセラレータのコンパイルを実現するステップと、前記第2部分の行動モデリング言語のコードをコンパイルするステップと、コンパイルされている前記第1部分及び前記第2部分を実行して、検証結果を取得するステップと、を含む、上記の検証システムに基づく検証方法をさらに提供する。
本開示の少なくとも1つの実施例は、処理モジュールとメモリとを含む電子機器を提供し、前記メモリに、コンピュータプログラムが格納され、前記コンピュータプログラムが前記処理モジュールによって実行されるときに、上記のいずれか1つの実施例に記載の検証方法を実現する。
本開示の少なくとも1つの実施例は、コンピュータプログラムが格納されているコンピュータ読み取り可能な記憶媒体を提供し、前記コンピュータプログラムが処理モジュールによって実行されるときに、上記の実施例のうちのいずれかで説明されている検証方法を実現する。
本開示の実施例をより明確に説明するために、実施例に使用する必要がある図面を以下に簡単に紹介する。明らかに、以下の説明における図面は、本開示のいくつかの実施例にすぎず、当業者であれば、創造的な努力をすることなく、これらの図面に基づいて他の図面を得ることができる。
図1は、本開示のいくつかの実施例によって提供される検証システムの概略ブロック図である。 図2は、本開示の一実施例によって提供される検証システムのソフトウェア側の概略ブロック図である。 図3は、本開示のいくつかの実施例によって提供される検証システムの第1マスタモジュールの概略ブロック図である。 図4は、本開示のいくつかの実施例によって提供される第1マスタモジュール及び第2スレーブモジュールのアドレス空間の概略図である。 図5は、本開示のいくつかの実施例によって提供される検証方法のフローチャートである。 図6は、図5の検証方法のステップS5の実行プロセスのフローチャートである。 図7は、本開示の別のいくつかの実施例によって提供される検証方法のフローチャートである。 図8は、本開示のいくつかの実施例によって提供される電子機器のブロック図である。
本開示の実施例における技術的解決手段を、本開示の実施例における添付の図面を参照して以下に明確かつ完全に説明する。明らかに、説明される実施例は、本開示の実施例の一部にすぎず、すべての実施例ではない。本開示の実施例に基づいて、創造的な努力なしに当業者によって得られる他のすべての実施例は、本開示の保護の範囲内に含まれる。
別段に明記されていない限り、本開示の実施例で使用されるすべての用語(技術用語及び科学用語を含む)は、本開示が属する当業者によって一般に理解されるのと同じ意味を有する。また、通常の辞書で定義されているような用語は、関連する技術の文脈での意味と一致する意味を持つように解釈されるべきであり、そのように本開示の実施例で明示的に記載されていない限り、理想化された意味又は高度に形式化された意味で解釈されるべきではないことも理解されるべきである。
本開示の実施例で使用される「第1」、「第2」及び類似の単語は、あらゆる順序、量、又は重要性を示すものではなく、異なる構成要素を区別するためにのみ使用される。「1つ」、「一」、又は「当該」などの類似した単語は、量的制限を示すのではなく、少なくとも1つがあると示す。同様に、「含む」又は「含有」などの類似した単語は、その単語の前に現れる要素又は物が、他の要素又は物を排除することなく、その単語の後に列挙される要素又は物及びそれらの等価物を含むことを意味する。「接続」又は「連結」などの類似した言葉は、物理的又は機械的な接続に限定されず、直接的又は間接的な電気的接続を含むことができ、通信接続も含む。
本開示の実施例では、本開示の実施例による方法のステップを示すためにフローチャートを用いる。前のステップ又は後のステップは必ずしも順に実行される必要はないということを理解するべきである。代わりに、様々なステップを逆の順序で又は同時に処理することができる。同時に、これらのプロセスに他の操作を追加し、或いは、これらのプロセスから1つ又は複数のステップを削除してもよい。
本開示の研究から分かるように、ハードウェアシミュレーションのアクセラレーション検証プラットフォームは、FPGAベースの検証プラットフォームを含み、FPGAベースの検証プラットフォームは、HAPS又はZEBUなどを含む。しかし、FPGAベースの検証プラットフォームは、容量が制限され、合成に時間がかかり、デバッグが難しく、大きなシステムを手動でパーティションに分割する必要があり、クロックツリーを変更する必要があることなどの制限があるため、FPGAベースの検証プラットフォームは、EDAシミュレーションに代わる機能シミュレーションのアクセラレーションには適してはいない。
本開示の研究から、現在の一部のシミュレーションアクセラレーション解決手段には次の欠点があることも判明している。
第1に、ユニバーサル検証手法(Universal Verification Methodology, UVM)に基づくシミュレーションアクセラレーションは、シミュレーションアクセラレーションを行う際に元のUVM環境とテストケースを再利用できるが、UVM関連の方法論のシェルは、解析がより複雑であり、アクセラレーションパフォーマンスが低く、UVMを合成することが可能であるシミュレーションアクセラレーションの検証プラットフォームに移行するには、多くの時間と労力がかかる最適化作業が必要になる。
第2に、組み込みインターフェースに基づくシミュレーションアクセラレーションが高速であるが、テストプラットフォームを合成することが可能である形式で作成し、シミュレーションアクセラレータに統合する必要があり、再利用性が非常に低くなり、様々なテストプラットフォームをシミュレーションアクセラレータと組み合わせる場合に、それらを書き換え、解析し、デバッグする必要があり、作業負荷が大きい。
本開示の少なくとも一実施例は、シミュレーション検証機器と、シミュレーション検証機器にそれぞれ作成される第1部分及び第2部分と、を含む検証システムを提供し、第1部分は、それぞれテスト対象と接続される第1マスタモジュールと少なくとも1つの第2スレーブモジュールとを含み、テスト対象は、テストモジュールと、テストモジュールの周囲に接続される複数の対象インターフェースと、を含み、複数の対象インターフェースは、アクセスインターフェースを含み、第2スレーブモジュールは、アクセスインターフェースと接続される記憶ユニットを含み、第2部分は、第1ダイレクトプログラミングインターフェース、第2ダイレクトプログラミングインターフェース、関数ライブラリモジュール、及びテストケースモジュールを含み、テストケースモジュールは、少なくとも1つのテストケースを提供するように構成され、第1ダイレクトプログラミングインターフェースは、第1マスタモジュールと通信し、第1ダイレクトプログラミングインターフェースは、テストケースを実行することに応答して、関数ライブラリモジュールの中の少なくとも1つの第1関数を呼び出して、テストモジュールのレジスターのフロントドアアクセスを実現するように構成され、第2ダイレクトプログラミングインターフェースは、第1部分の記憶ユニットと通信し、第2ダイレクトプログラミングインターフェースは、テストケースを実行することに応答して、関数ライブラリモジュールの中の少なくとも1つの第2関数を呼び出して、記憶ユニットのバックドアアクセスを実現するように構成される。
本開示の上記の実施例の検証システムは、第1ダイレクトプログラミングインターフェース及び第2ダイレクトプログラミングインターフェースを提供することにより、検証システムのソフトウェア側とハードウェア側の同期を実現し、テストモジュールの機能検証の際に、レジスターの読み書きや記憶ユニットのアクセスと記憶などの操作を容易に実現することができ、シミュレーション時間を削減し、チップの検証効率を向上させ、システムレベル及び/又はモジュールレベルでチップの再利用可能な検証を実現し、幅広い応用が期待できる。
図1は、本開示のいくつかの実施例によって提供される検証システムの概略ブロック図である。図2は、本開示のいくつかの実施例によって提供される検証システムのソフトウェア側の概略ブロック図である。
例えば、図1に示されているように、検証システム1000は、シミュレーション検証機器100と、シミュレーション検証機器100にそれぞれ作成される第1部分200及び第2部分300を含む。例えば、第1部分200は、ハードウェア記述(HDL)言語に基づいて作成されるように構成されるハードウェア側である。第2部分300は、行動モデリング言語に基づいて作成されるように構成されるソフトウェア側である。例えば、ハードウェア記述言語は、Verilog、SystemVerilogなどを含み、行動モデリング言語は、C言語又は(C++言語とも呼ばれる)CPP言語などを含む。
例えば、図1に示されているように、第1部分200は、それぞれテスト対象230と接続される第1マスタモジュール210及び少なくとも1つの第2スレーブモジュール220を含む。テスト対象230は、テストモジュール231と、テストモジュール231の周囲に接続される複数の対象インターフェースと、を含む。複数の対象インターフェースは、少なくとも1つのメモリアクセスインターフェース232を含む。第2スレーブモジュール220は、メモリアクセスインターフェース232と接続される記憶ユニット221を含む。
例えば、テストモジュール231は、テスト対象の設計(Design Under Test、DUT)であり、例えば、DUTは、RTL(Register Transfer Level、レジスター転送レベル)設計コードによって実現される。
例えば、図1に示されているように、第2部分300は、第1ダイレクトプログラミングインターフェース310、第2ダイレクトプログラミングインターフェース320、関数ライブラリモジュール330、及びテストケースモジュール340を含む。テストケースモジュール340は、少なくとも1つのテストケースを提供するように構成される。
例えば、第1ダイレクトプログラミングインターフェース310及び/又は第2ダイレクトプログラミングインターフェース320は、いずれも、ダイレクトプログラミング言語インターフェース(Direct Programming Interface)であり、それらのダイレクトプログラミング言語インターフェースは、(例えば、SystemVerilog等の)ハードウェア記述言語と(例えば、C/C++等の)ソフトウェアプログラミング言語との間で相互に呼び出しを行うためのインターフェースである。
例えば、関数ライブラリモジュール330は、他のプログラムに提供するために、複数の関数に基づいて関数ライブラリを作成するように構成され、例えば、関数ライブラリモジュール330は、静的ライブラリを選択することができる。関数ライブラリモジュール330は、その内部に、少なくとも1つの第1関数と少なくとも1つの第2関数とを含み、第1関数が呼び出されて使用されるときにレジスターの構成を実現することが可能であり、第2関数が呼び出されて使用されるときに記憶ユニットのアクセスと記憶を実現することができる。
例えば、図1に示されているように、第1ダイレクトプログラミングインターフェース310は、第1マスタモジュール210と通信し、且つ、第1ダイレクトプログラミングインターフェース310は、テストケースモジュール340からのテストケースの実行に応答して、関数ライブラリモジュール330の中の少なくとも1つの第1関数を呼び出して、テストモジュール231のレジスターのフロントドアアクセスを実現するように構成される。例えば、フロントドアアクセスは、フロントドアのデータ読み取り操作及び/又はフロントドアのデータ書き込み操作を含み、それに応じて、第1関数は、レジスターによって読み取られる関数及び/又はそれによって書き込まれる関数を含む。
例えば、図1に示されているように、第2ダイレクトプログラミングインターフェース320は、第1部分200の記憶ユニット221と通信し、且つ、第2ダイレクトプログラミングインターフェース320は、テストケースからのテストケースの実行に応答して、関数ライブラリモジュール330の中の少なくとも1つの第2関数を呼び出して、記憶ユニット221のバックドアアクセスを実現するように構成される。例えば、バックドアアクセスは、バックドアのデータロード操作及び/又はバックドアのデータエクスポート操作を含み、それに応じて、第2関数は、記憶ユニットによってロードされる関数及び/又はそれによってエクスポートされる関数を含む。
いくつかの例において、本開示の実施例の「フロントドアアクセス」は、(例えば、AMBAプロトコル等の)レジスター構成バスを介して、CPU(中央処理装置、Central Processing Unit)をシミュレートして、バスを介して読み取り及び書き込み命令を出し、バスタイミングに従って、DUTのレジスターの実際の値を読み書きする。フロントドアアクセスの際には実際のRTL伝送が行われ、且つ、フロントドアアクセスでは、バスタイミングプロトコルに依存して伝送するため、フロントドアアクセスの際にはシミュレーション時間がかかる。例えば、フロントドアアクセスは、ドメインごとに読み書きできない。
いくつかの例において、本開示の実施例における「バックドアアクセス」は、記憶ユニットの二次元アレイを直接的に読み取るアクセス方法を指す。バックドアアクセスの際にはシミュレーション時間がかからない。例えば、バックドアアクセスは、ドメインごとに読み書きできる。
本開示の上記実施例の検証システムは、第1ダイレクトプログラミングインターフェース及び第2ダイレクトプログラミングインターフェースを提供することにより、検証システムのソフトウェア側とハードウェア側の同期を実現し、テストモジュールの機能検証の際に、レジスターの読み書きや記憶ユニットのアクセスなどを容易に実現することができ、シミュレーション時間を削減し、チップ機能の検証効率を向上させ、システムレベル及びモジュールレベルでチップの再利用可能な検証を実現し、幅広い応用が期待できる。
いくつかの例において、第1部分200のテスト対象230は、検証システム100のハードウェア側の最上層であり、例えば、テスト対象230のテストモジュール231は、SoCチップのIP(Intellectual Property)モジュールを含む。例えば、テストモジュール231は、検証システム100によって検証されるSOCの中の独立したIPであってもよい。例えば、当該SOCは、X86、ARM、RISC-Vなどの命令セットのマイクロアーキテクチャに基づくものであってもよく、本開示の実施例はこれらには限定されない。テストモジュール231は、汎用性を有し、チップの中の主要なIPに適しているが、例えば、テストモジュール231は、GPGPU(汎用グラフィックスプロセッサ)を含むが、これには限定されず、本開示の実施例は、これを限定せず、繰り返しては説明しない。本開示の上記実施例の検証システムは、SoCにおけるIPレベルモジュールのシミュレーション検証アクセラレーション及びソフトウェアbare metalの開発に適用可能であり、シミュレーション検証に必要な時間が大幅に短縮される。
なお、本開示の実施例におけるテストモジュール231は、いくつかのシナリオではIPモジュールレベルに属してもよく、他のシナリオではサブシステムレベルに属してもよい。本開示の実施例は、これを制限するものではなく、本開示の保護範囲には影響を及ぼさない。
なお、本開示の実施例における第1マスタモジュール及び第2スレーブモジュールは、それぞれ、テスト対象に対してマスタモジュール又はスレーブモジュールと呼ばれ、これらは、本開示の説明を明確かつ簡潔にするための単なる命名方法であり、本開示の実施例はこれらには限定されず、本開示の実施例の保護範囲もこれらによっては限定されない。
いくつかの例において、シミュレーション検証機器100は、第1プロセッサを含み、且つ、第1プロセッサは、並列接続される複数の第2プロセッサを含む、すなわち、第2プロセッサは、第1プロセッサに対して、サブプロセッサとなる。
例えば、シミュレーション検証機器は、CadenceのPalladium機器を含み、Palladium機器の基礎となるアーキテクチャは、CPUプロセッサと特定用途向け集積回路である。Palladium機器のプロセッサは、多数のプロセッサで並列接続されて構成されるため、並列チャネルを通じてシミュレーション検証のアクセラレーションを行うことができる。
本開示の実施例は、Palladium機器などのシミュレーション検証機器に基づいて、ハードウェアシミュレーションのアクセラレーション検証を実行し、より少ない変更でチップRTLの互換性を維持でき、優れたデバッグ性能と高い信号可視性を有し、プラットフォームの互換性が高く、SystemVerilog、又はSystem C、又はSystem CPPをサポート可能であり、さらに、SoC設計を手動で分割する必要がなく、追加の人的投資なども必要ないため、チッププロジェクトの検証時間要件とチップ納品品質を十分に満たすことができる。
なお、本開示の実施例の検証システムで用いられるシミュレーション検証機器は、Palladium機器には限定されず、プロセッサに基づいて構築される他のシミュレーション検証機器であってもよく、本開示の実施例は、これを限定せず、繰り返して説明しない。
いくつかの例において、第2部分300は、C言語又はCPP言語に基づいて作成されるように構成され、例えば、第2部分300は、CadenceのコンパイルソフトウェアXceliumで動作するソフトウェア側である。このように、本開示の実施例による検証システムは、C言語又はCPP言語コードをコンパイルした後に、関連する命令の実行を容易に実現することができ、広く使用されており、研究開発担当者の開発作業を容易にする。
いくつかの例において、第1マスタモジュール210は、読み取り及び/又は書き込み命令を生成し、テストモジュール231のレジスターを構成し、グローバルリセットなどのリセットを発生するために使用される。例えば、図1及び図2に示されているように、第2部分200は、第1部分200の第1マスタモジュール210を駆動するための駆動モジュール350をさらに含み、これにより、第1マスタモジュール210は、テストモジュール231のレジスターを構成してグローバルリセットを実行する。
いくつかの例において、第1マスタモジュール210及び第2スレーブモジュール220は、検証ユニットコンポーネント(Verification IP、VIP)に基づいて、シミュレーション検証機器100に対して設計されるAVIP(Accelerated Verification IP)である。
例えば、図2に示されているように、第1マスタモジュール210は、AMBA MASTERと称されてもよいアドバンストマイクロプロセッサバスアーキテクチャのマスタモジュールを含む、すなわち、第1マスタモジュール210は、AMBA標準バスプロトコルをサポートする。同様に、駆動モジュール350は、AMBA MASTER Driverと称されてもよい。例えば、第2スレーブモジュール220は、また、AMBA SLAVEと称されるアドバンストマイクロプロセッサバスアーキテクチャのスレーブモジュールを含む、すなわち、第2スレーブモジュール220は、AMBA標準バスプロトコルをサポートする。
本開示の上記の実施例の検証システムは、複数の標準バスプロトコルをサポートできるAVIPを用いることにより、モジュールレベル及びサブシステムレベルでのより広範なバスプロトコル検証を可能にする。
例えば、図1に示されているように、第1部分200は、クロック励振源モジュール240をさらに含む。クロック励振源モジュール240は、DUTなどによって使用されるシステムクロック信号をハードウェア側に提供するのに使用される。例えば、クロック信号のクロック周波数は、1[GHz]であってもよい。これは単なる例示であり、本開示を限定するものではない。
例えば、図1に示されているように、テスト対象230の複数の対象インターフェースは、第1インターフェース233a、第2インターフェース233b、第3インターフェース233c、及び第4インターフェース233dのうちの少なくとも1つを含む。
例えば、図1に示されているように、第1インターフェース233aは、クロック励振源モジュール240と接続されて、クロック信号を受信する。本開示の検証システムは、同期デジタルシステムの機能、性能、及び安定性を促進するように、グローバルクロックによって駆動されてもよい。
例えば、図1に示されているように、第2インターフェース233bは、割り込み要求信号を受信するように構成される。例えば、割り込み要求信号は、該当するハードウェアの現在の動作状態を停止し、割り込み要求信号に対応する操作タスクに切り替え、当該操作タスクの処理が完了した後に、元に切り替えることで、信号の競合を回避する。
例えば、図1に示されているように、第1マスタモジュール210は、第3インターフェース233cと接続されて、テストモジュール231のレジスターを構成する。例えば、図1に示されているように、第1マスタモジュール210は、第4インターフェース233dと接続されて、第1部分200をリセットする。
例えば、図1の例において、メモリアクセスインターフェース232の数は2つであり、第2スレーブモジュール220の数は2つであり、第2スレーブモジュール220の各々は、いずれも記憶ユニット221を含む。このように、記憶ユニット221とメモリアクセスインターフェース232とが1対1に対応しており、このようにして、各記憶ユニット221とテストモジュール231との間にデータ伝送路を形成することが可能であり、記憶ユニットのバックドアアクセスを実現することができる。これは単なる例示であり、本開示を限定するものではない。
例えば、図1に示されているように、第2スレーブモジュール220の記憶ユニット221は、レジスターデータを格納するのに使用される、すなわち、第2スレーブモジュール220の検証システム100における主な役割は、検証システムのメモリとして機能するという役割である。例えば、フロントドア書き込み操作を実現するために、本開示の実施例は、メモリアクセスインターフェース232を通じて、フロントドア書き込み操作により書き込まれたデータを記憶ユニット221に格納することができる。
例えば、図1に示されているように、必要に応じて、第1部分200は、レートマッチングブリッジ250をさらに含んでもよく、レートマッチングブリッジ250は、それぞれ第2スレーブモジュール220及びメモリアクセスインターフェース232と接続されるように構成される。本開示の実施例は、レートマッチングブリッジ250を通じて、読み書き速度を変換及び処理させ、それによって、テストモジュール231とメモリユニット221との間でクロックドメインを跨いでデータを伝送する準安定状態とクロック信号の不一致などの問題とを回避することができる。
いくつかの例において、第2スレーブモジュール220の記憶ユニット221の中のデータソースは、2つのタイプを含む。1つめは、フロントドア書き込み動作を通じてデータをテストモジュール231のレジスターに書き込み、レートマッチングブリッジ250を介してクロックドメインを跨いでそれを第2スレーブモジュール220の記憶ユニット221に伝送することである。2つめは、バックドアのデータロード操作を通じてデータを記憶ユニット221に導入することである。
いくつかの例において、第2スレーブモジュール220の記憶ユニット221は、仮想記憶空間を有する。例えば、本開示は、Palladium機器を介して記憶空間の一部を記憶ユニット221に割り当てることができる。これは単なる例示であり、本開示の実施例を限定するものではない。
例えば、図2に示されているように、第1ダイレクトプログラミングインターフェース310は、C言語又はCPP言語に基づくダイレクトプログラミングインターフェース(C/C++ DPI)を含み、第2ダイレクトプログラミングインターフェース320は、C言語又はCPP言語に基づく、ワンタイムアクセスのダイレクトプログラミングインターフェース(MARG DPI)を含む。例えば、MARG DPIは、1回限りの記憶と読み取りに比較的適したタイプのインターフェースである。
本開示の実施例は、DPIインターフェースを介して検証システムのソフトウェア側とハードウェア側を接続し、これにより、DPIのCPPインターフェース関数を介して第1マスタモジュール210が、例えば、AMBAバスのレジスターのバックドアアクセス(例えば、フロントドアの読み書き操作)を完了できるようにする。さらに、設定されたMARG DPIに基づいて、第2スレーブモジュール220の記憶ユニット221は、MARG DPIに対応するCPPインターフェース関数を呼び出すことによって、記憶ユニット221のバックドアアクセスを直接的に実現することができ、これにより、記憶ユニットのデータロード及びデータエクスポートを実現することができる。
本開示の実施例で用いられる上記の第1関数又は第2関数等のCPPインターフェース関数は、例えば、第1関数が、レジスターの読み取り及び/又は書き込みに関連する関数を含んでもよく、第2関数が、記憶ユニットによってロード及び/又はエクスポートされた関数を含んでもよい。本開示の実施例で用いられるCPPインターフェース関数は、CPP言語で記述され及びパッケージ化されており、呼び出しが簡単で、より複雑な機能を実現することが可能であり、及びチップ要件により適した機能を有するテストケースを実現することが可能であり、また、ソフトウェア側とハードウェア側の同期を実現し、シミュレーションアクセラレーションの効率を大幅に向上させている。
図3は、本開示のいくつかの実施例によって提供される検証システムの第1マスタモジュールの概略ブロック図である。
例えば、図3に示されているように、第1マスタモジュール210は、メインコア211と第3スレーブモジュール212とを含む。例えば、第3スレーブモジュール212は、第1マスタモジュール210に埋め込まれており、第3スレーブモジュール212は、埋め込み型アドバンストペリフェラルバスのスレーブモジュール、すなわち、埋め込み型APBモジュールである。
なお、本開示の実施例における第3スレーブモジュール212は、メインコア211に対してスレーブモジュールと呼ばれ、これは、単なる命名方法であり、本開示の実施例は、これらには限定されず、本開示の実施例の保護範囲もこれらによっては限定されない。
いくつかの例において、第1マスタモジュール210のメインコア211はAVIPコアであり、第1マスタモジュール210のメインコア211は、合成可能であるRTLコードを含む。
例えば、図3に示されているように、メインコア211は、第1ダイレクトプログラミングインターフェース310及び第3インターフェース233cにそれぞれ接続され、テストケースの第1関数に対応するレジスターアクセス命令(すなわち、テストモジュール231のレジスターに対して、読み取り操作又は書き込み操作を実行するための命令)を取得して、テストモジュール231のレジスターを構成する。
例えば、ユーザーがテストケースを実行して第1関数を呼び出すときに、第1マスタモジュール210のメインコア211は、レジスターアクセス命令を取得して、テストモジュール231のレジスターを構成する。
いくつかの例において、メインコア211は、レジスターアクセス命令に関連する制御データをさらに取得することができる。制御データは、レジスターに対して読み取り操作又は書き込み操作を行うときに必要な基本データ、例えば、メモリのベースアドレスやメモリの基本幅などを含む。これは単なる例示であり、本開示を限定するものではない。
例えば、図3に示されているように、第1マスタモジュール210の第3スレーブモジュール212は、それぞれメインコア211及び第4インターフェース233dと接続され、これにより、第4インターフェース233dに、メインコア211が生成するリセット信号を伝送して、第1部分200をリセットする。例えば、各テストケースでは、シミュレーションを実行する前に、ハードウェア側の内部のすべてのコアの状態とすべてのメモリの状態が初期状態になるように、リセットする必要がある。
いくつかの例において、第2スレーブモジュール220がAMBAモジュールである場合に、APBモジュール、又はAXIモジュール、又はACEモジュールなどの異なるタイプの複数のAMBAモジュールにインスタンス化されてもよい。これは単なる例示であり、本開示を限定するものではない。
いくつかの例において、第2スレーブモジュール220をインスタンス化するときに、宣言する必要があるAMBAパラメータは、メモリのサイズ、メモリのベースアドレス、及びサポートされ得る現在進行中の(Outstanding)動作の深さのうちの少なくとも1つを含む。これは単なる例示であり、本開示を限定するものではない。
いくつかの例において、第1マスタモジュール210、第2スレーブモジュール220、及び第3スレーブモジュール212には、それぞれ独立した記憶空間が配置されている。例えば、検証システム1000の初期構成を完了した後に、例えば、第1マスタモジュール210、第2スレーブモジュール220、第3スレーブモジュール212などの各モジュールに記憶空間を割り当てる必要がある。
図4は、本開示のいくつかの実施例によって提供される第1マスタモジュール及び第2スレーブモジュールのアドレス空間の概略図である。
いくつかの例において、第1マスタモジュール210のアドレスオフセットは、0x0000_0000であり、第3スレーブモジュール212のアドレスオフセットは、0x0010_0000(1M Byte)である。例えば、図4に示されているように、第1マスタモジュール210のアドレス範囲は、1MBのサイズを有する0x0000_0000~0x000F_FFFFと、1MBのサイズを有する0x0010_0000~0x001F_FFFFと、を含む。例えば、図4に示されているように、2つの第2スレーブモジュール220のうちの一方のアドレス範囲は、1GBのサイズを有する0x4000_0000~0x7FFF_FFFFであり、他方の第2スレーブモジュール220のアドレス範囲は、2GBのサイズを有する0x8000_0000~0xFFFF_FFFFである。これは単なる例示であり、本開示を限定するものではない。
いくつかの例において、第2部分300は、プロファイルをさらに含む。テストケースは、フロントドアアクセスのために、プロファイルの少なくとも1つの第1関数に基づいて、ケース構成を実行するように構成されるか、又は、バックドアアクセスのために、プロファイルの少なくとも1つの第2関数に基づいて、ケース構成を実行するように構成される。
いくつかの例において、関数ライブラリモジュール330は、テストケース及びプロファイルに基づいて、行動モデリング言語を通じてコンパイルして生成される静的ライブラリを含む。
例えば、図2の例において、テストケースモジュール340によって提供されるテストケースは、test0~test3を含み、異なるテストケースは、要件を満たす機能を検証するために、異なる関数を呼び出す。例えば、図2に示すように、テストケースモジュール340の場合に、test_entry()を用いてプロファイルを呼び出し、関連するテストケースを提供することができる。test_entry()は、ユーザーがテスト対象のテストケースを編集するための入り口であり、test_entry()では、関連するテストケースの構成を完了するために、プロファイル(例えば、.cfgファイル)を呼び出す。検証システム1000は、ユーザーに、レジスターのバックドアアクセス及びバックドアアクセスを構成するためのAPIを提供することができ、例えば、プロファイルが、C/CPPによってコンパイルされ、静的ライブラリuser libを生成し、APIインターフェースによってさらに解析され、例えば、レジスターの読み書きを完了する。
本開示の上記の実施例のシミュレーションアクセラレーション検証は、C/CPPコードに基づいて構築されたテストケースを用いるため、環境が比較的単純になり、複雑な方法論がなく、シミュレーション環境を迅速にセットアップすることができ、実行速度が非常に速い。
いくつかの例において、第1関数は、レジスターの読み取り関数reg_read、レジスターの書き込み関数reg_write、レジスターの読み出しチェック関数reg_read_check、レジスターの書き込み読み出し及びチェック関数reg_write_check、及びレジスターのポーリングウェイクアップ読み出し関数poll_reg_equalのうちの少なくとも1つを含む。
例えば、関数reg_writeは、特定のレジスターアドレスに32bitデータを直接的に書き込むのに使用され、関数reg_readは、特定のレジスターアドレスにある32bitデータを直接的に読み取るのに使用される。
例えば、関数reg_read_checkは、特定のアドレスレジスターに書き込まれるデータが予期されるとおりであるか否かをチェックするのに使用され、例えば、特定のアドレスレジスターに書き込まれるデータは、関数reg_writeを通じて書き込まれるデータであってもよい。
例えば、関数reg_read_checkは、まず、特定のアドレスレジスターからデータを読み取り、次に、読み取ったデータと予期されるデータとを比較し、比較結果が同じであるときに、チェックに合格し、比較結果が異なるときに、現在の操作を停止し、エラーを報告する。本開示の実施例は、関数reg_read_checkを通じて、特定のアドレスのレジスターにデータを書き込み、予期される結果と読み取った結果とを自動的に比較することができ、これは、より高度な自動化が可能であり、検証担当者の作業効率を向上させることができる。
関数reg_write_checkの作用及び方法については、関数reg_read_checkを参照してもよく、その違いは、関数reg_write_checkは、データを特定のアドレスレジスターに書き込むことをさらに含むが、ここでは繰り返して説明しない。
例えば、関数poll_reg_equalは、特定のアドレスレジスターから読み取られる値が予期される値と等しくなるまで、特定のアドレスレジスターに対して、連続して数回ポーリングして値を読み取り、等しくない場合に、続けて読み取り、読み取った回数が、ユーザーが設定する(例えば、10000等の)最大ポーリング回数を超えるときに、エラーを報告し、ポーリングを終了し、同じアドレスレジスターから値を複数回読み取っても予期される値と等しくない場合に、エラーを報告し、読み取りサイクルを終了する。
例えば、関数poll_reg_equalは、第2関数が第2スレーブモジュールの記憶ユニットのバックドアアクセスを実行する前に、一部のレジスターをポーリングしてウェイクアップする必要がある場合には、関連するレジスターをポーリングしてウェイクアップし、レジスターデータの読み書き結果を順番にチェックすることができる。
いくつかの例において、第2関数は、記憶ユニットのポーリングウェイクアップ読み取り関数poll_mem_equal、記憶ユニットの初期化関数mem_init、記憶ユニットのデータロード関数mem_load、及び記憶ユニットのデータエクスポート関数のうちの少なくとも1つを含む。
いくつかの例において、記憶ユニットのデータエクスポート関数は、記憶ユニットのマルチバイト読み取り関数又は記憶ユニットのデータキャプチャ関数mem_dumpを含み、関数mem_dump及び記憶ユニットのマルチバイト読み取り関数から読み出されるデータセグメントの長さは異なり、関数mem_dumpから読み出されるデータセグメントの長さは、記憶ユニットのマルチバイト読み取り関数から読み出されるデータセグメントの長さよりも長くなる。
例えば、記憶ユニットのマルチバイト読み取り関数は、関数mem_read32又は関数mem_read64を含む。関数mem_read32は、特定の記憶ユニットアドレスの32bitデータを直接的に読み出すのに使用され、関数mem_read64は、特定の記憶ユニットアドレスの64bitデータを直接的に読み出すのに使用される。
例えば、関数mem_dumpは、記憶ユニットからデータをキャプチャし、記憶ユニットの中のデータを16進数形式で、自己命名の16進数形式のファイル(hexファイル)にキャプチャすることができる。
例えば、関数mem_loadは、読み取り可能なファイルを16進形式で検証システムにロードすることができる。この16進形式のファイルは、2次元アレイであり、前にアドレスがあり、後ろにデータがあり、関数mem_loadは、各データのアドレスに基づいて、対応する記憶空間に、各データをロードする。
例えば、関数poll_mem_equalは、特定のアドレスの記憶ユニットから読み取られる値が予期される値と等しくなるまで、指定されたアドレスのレジスターに対して、連続して数回ポーリングして値を読み取り、等しくない場合に、続けて読み取り、読み取り回数が、ユーザーが設定する(例えば、10000等の)最大ポーリング回数を超えるときに、エラーを報告し、ポーリングを終了し、同じアドレスの記憶ユニットから値を複数回読み取っても予期される値と等しくない場合に、エラーを報告し、読み取りサイクルを終了する。
例えば、関数mem_initは、使用されるアドレス範囲の中の記憶ユニットを初期化するのに使用され、前回でテストケースを実行した後に、記憶ユニットに残っているデータが次のテストケースの実行及び結果比較に影響を与えることを防止する。関数mem_initは、設定されたアドレス範囲の記憶ユニットを初期化し、主に次の5つの主なモードがある。
モード0: 記憶ユニットのすべての値は、0x0000_0000に初期化される。
モード1: 記憶ユニットのすべての値は、0xFFFF_FFFFに初期化される。
モード2: 記憶ユニットの値は、各記憶ユニットのアドレスの値に初期化される。
モード3: 記憶ユニットの値は、0x0から始まり、毎回0x4ずつ増加する値に初期化される。
モード4: 記憶ユニットの値は、0から始まり、毎回1ずつ増加する値に初期化される。
上記のモード及び対応する機能は、単なる例示であり、本開示の実施例を限定するものではない。
いくつかの例において、関数ライブラリモジュール330は、ファイル比較関数file_cmp及び/又はリセット関数glb_rstを含んでもよい。
例えば、関数file_cmpは、2つのhexファイルを比較して、比較結果を取得することができる。本開示の実施例のテストケースにおいて、ユーザーは、file_cmp関数定義で、比較する必要がある2つのHEXファイルの名称を自己指定することができる。
例えば、関数glb_rstは、第1部分200をリセットし、第1部分200におけるモジュールの状態をリセットすることができる。
いくつかの例において、テストケースモジュール340によって提供される複数のテストケースのそれぞれは、完全に同一ではなくてもよく、各テストケースに対応する関数は、1つ又は複数であってもよく、例えば、各テストケースは、上記の任意の1つの関数又は複数の関数の組み合わせであってもよい。本開示の実施例は、これを限定せず、実際の検証ニーズに応じて自由に調整でき、ここでは繰り返して説明しない。
なお、本開示の実施例の関数ライブラリモジュール330に含まれる関数は、上記の例には限定されず、検証要件を満たすために使用される他の対応する関数であってもよい。これは網羅的ではなく、ここで繰り返して説明しない。
本開示の少なくとも1つの実施例は、上記の任意の実施例に記載の検証システムに基づいて実現することが可能である検証方法をさらに提供する。検証システムに基づく検証方法の具体的な実施形態及び技術的効果に関しては、本開示の上記の実施例によって提供される検証システムを参照することができる。
図5は、本開示のいくつかの実施例によって提供される検証方法のフローチャートである。
例えば、図5に示されているように、本開示の少なくとも1つの実施例によって提供される検証方法は、ステップS1~S5を含む。
ステップS1、テストモジュール231に基づいて、RTLコードをコンパイルする。
ステップS2、第1部分200、テスト対象230、テストモジュール231、第1マスタモジュール210及び第2スレーブモジュール220に基づいて、包括的なコンパイルを実行し、コンパイルされている第1部分200を取得する。
ステップS3、シミュレーション検証機器100の使用モードを選択し、使用モードに従って、コンパイルされている第1部分200を少なくとも1つのコンパイルオプションに追加し、第1アセンブラツールを呼び出して検証システム1000を分解し、シミュレーション検証機器100のためのハードウェア情報ライブラリを生成し、アクセラレータのコンパイルを実現する。
ステップS4、第2部分300の行動モデリング言語のコードをコンパイルする。
ステップS5、コンパイルされている第1部分200と第2部分300を実行して、検証結果を取得する。
いくつかの例において、本開示の検証方法は、検証が合格になるように、検証結果に従ってデバッグするプロセス又はステップをさらに含む。
いくつかの例において、本開示の検証方法は、検証結果をシミュレーション検証機器100によって視覚化するように構成するプロセス又はステップをさらに含む。視覚化方法は、チャート、テキスト、波形チャートなどを含むが、これらには限定されない。これにより、検証結果をタイムリー、便利かつ正確に反映できるため、検証作業の管理と実行に寄与する。
例えば、ステップS1において、テストモジュール231に基づいてRTLコードコンパイルを行うステップは、以下のプロセス又はステップをさらに含む。第2コンパイルツールを使用して、テストモジュール231のRTLファイルリスト及び対応するRTLファイルをコンパイルし、例えば、テストモジュール230を含むvg形式のDUTネットリストを生成する、といったように、テストモジュール230を含む所定の形式のDUTネットリストを生成する。当該生成されるDUTネットリストは、シミュレーション検証機器100によって実行するように構成される。なお、本開示の実施例におけるDUTネットリストの設定形式は、vg形式には限定されず、edif形式などの他の形式であってもよく、本開示の実施例はこれには限定されない。
例えば、ステップS1において、第2コンパイルツールは、Cadenceのコンパイルツールvavlog又はコンパイルツールvaelabを含む。もちろん、これは単なる例示であり、本開示を限定するものではない。
例えば、ステップS2において、第1部分200、テスト対象230、テストモジュール231、第1マスタモジュール210及び第2スレーブモジュール220に基づいて、包括的なコンパイルを実行し、コンパイルされている第1部分200を取得するステップは、以下のステップ又はプロセスを含む。シミュレーション検証機器100の第3コンパイルツールに基づいて、第1部分200、テスト対象230、テストモジュール231、第1マスタモジュール210、及び(例えば、図1に示されている2つの第2スレーブモジュール220等の)第2スレーブモジュール220及びクロック励振源モジュール240に対して、包括的なコンパイルを実行して、コンパイルされているハードウェア側を取得する。
例えば、第3コンパイルツールは、CadenceのPalladiumベースのVLANツールを含む。もちろん、これは単なる例示であり、本開示を限定するものではない。
例えば、ステップS2において、本開示の実施例における包括的なコンパイルの対象は、第1部分200、テスト対象230、テストモジュール231、第1マスタモジュール210、及び第2スレーブモジュールを含むだけではなく、包括的なコンパイルを行うために、例えば、コンパイルに必要なCadence AVIPファイル及び他の必要な周辺テストリソースをさらに含むが、これは本開示の実施例の説明の焦点ではないため、ここで網羅的に繰り返して説明しない。したがって、このステップの包括的なコンパイルにより、コンパイルされているハードウェア側を生成することができる。
例えば、ステップS3において、シミュレーション検証機器100の使用モードを選択し、使用モードに従って、コンパイルされている第1部分200を少なくとも1つのコンパイルオプションに追加してアクセラレータをコンパイルし、第1アセンブラツールを呼び出して検証システムを分解し、シミュレーション検証機器のためのハードウェア情報ライブラリを生成するステップは、以下のプロセス又はステップを含む。Palladium機器のIXCOMモードを選択し、IXCOMモードに従ってコンパイルされている第1部分200を少なくとも1つのコンパイルオプションに追加し、第1アセンブラツールを呼び出して、検証システム1000を分解し、ハードウェア情報ライブラリ(hardware lib)を生成する。例えば、ハードウェア情報ライブラリは、RTL、シミュレーション環境、コンパイル環境などの情報のlibライブラリを含む。これは単なる例示であり、本開示を限定するものではない。
本開示の実施例は、PalladiumのIXCOMモードを用いて、設計における合成不能な部分との互換性が高まり、設計の一部をシミュレーション検証機器に応用して他のモードと互換性があり、検証の作業負荷を軽減し、コストを削減し、検証効率を向上させることができる。
例えば、ステップS3において、Cadenceに基づくIXCOMコンパイルツールを介して、包括的なコンパイルによって生成されるコンパイル済みの第1部分200を、-z1、-ua+1xua、-dpi、-timescaleなどのコンパイルオプションに追加してコンパイルし、CadenceのVXEなどの第1アセンブラツールを呼び出して、検証システム1000全体に対して、分解(例えば、自然言語プログラミングを機械語に組み立てる)などの処理を行い、また、シミュレーション検証機器100に直接的に使用することが可能であるハードウェア情報ライブラリを生成することができ、これにより、アクセラレータのコンパイルを完了する。これは単なる例示であり、本開示を限定するものではない。
例えば、ステップS4において、行動モデリング言語は、CPP言語であってもよく、すなわち、ステップS4は、第2部分300のCPPコードをコンパイルするのに使用される。
例えば、ステップS4において、主に、例えば、具体的に呼び出される第1関数及び/又は第2関数のタイプの設定、呼び出される第1関数及び/又は第2関数の組み合わせ方法、第1関数及び/又は第2関数の具体的な設定(例えば、レジスターの読み書きアドレス、具体的に書き込まれているデータ)、及び比較のための第1参照ファイル(詳細は以下を参照)などを含む、ユーザーによって設定されるテストケースのCPPコードをコンパイルする。そのため、検証システムは、最終実行時に、当該ステップS4で生成される静的ライブラリファイルを呼び出し、これにより、ユーザーが設定するテストケースは、シミュレーションアクセラレーション検証プロセス中に有効になり、テスト機能を完了することができる。
いくつかの例において、本開示の検証方法は、テストモジュールを構成する上記のレジスターがテストモジュール231の目標要件を満たすか否かを検査するプロセス又はステップをさらに含む。
例えば、異なるテストモジュール231に対して、本開示の実施例のテストケースモジュール340によって提供されるテストケースはいずれも異なり、同じテストモジュール231が複数の異なるテストケースに基づいて、複数の異なるテストケースを開発することもでき、異なるテストケースは、異なる関数の設定、レジスター設定、予期データ結果などに対応するため、AMBAバスのレジスターには異なるデータが書き込まれる。
いくつかの例において、本開示の実施例にしたがってシミュレーション検証機器100において作成される第1部分200及び第2部分300は、シミュレーション検証機器100に基づいて構築される検証環境を表し、検証環境が、互いにインタラクションを行うことが可能であるハードウェア側とソフトウェア側とに分けられる。例えば、第1部分200をPalladium機器などのシミュレーション検証機器100に移植し、ハードウェア側と第1部分200とを接続して、通信可能なサーバーなどの他の機器に配置してもよい。もちろん、第1部分200と第2部分300は、例えば、Palladium機器によって共に実行されてもよく、本開示の実施例はこれには限定されない。
図6は、図5の検証方法のステップS5の実行プロセスのフローチャートである。例えば、図6に示されているように、ステップS5の一例は、少なくともステップS51~ステップS53を含む。
ステップS51、テストモジュール231が第1モジュールであるということに応答して、バックドアアクセスにより記憶ユニット221の第1データを読み出し、第1参照ファイルを取得する。
ステップS52、テストモジュール231が第2モジュールであるということに応答して、バックドアアクセスにより記憶ユニット222の第2データを読み出し、第2ファイルを取得する。
ステップS53、第2ファイルと第1参照ファイルとを比較して、検証結果を取得する。
例えば、ステップS51において、バックドアアクセスを介して記憶ユニット221の第1データを読み出して第1参照ファイルを取得するステップは、以下のプロセス又はステップを含む。(例えば、テストケースが初めて実行された後の)テストケースの実行終了に応答して、バックドアアクセスにより、記憶ユニット221の第1データを読み取り、自己命名の第1ターゲット16進形式ファイルを取得し、第1ターゲット16進形式ファイルに基づいて、標準バージョンの第2ターゲット16進形式ファイルを生成して、第1参照ファイルを取得する。
例えば、第1ターゲット16進形式ファイルは、第1hexファイルであり、第2ターゲット16進形式ファイルは、goldenバージョンの第2hexファイルである。これは単なる例示であり、本開示を限定するものではない。
例えば、ステップS52において、第2モジュールは、第1モジュールに基づいて更新されるモジュールとして構成される。第2モジュールは、チップの開発中に、第1モジュールに基づいて継続して反復的に更新されるテストモジュールである。したがって、テストモジュール231の中でRTLコードが変更され、反復的に更新されるたびに、テストケースを再実行する必要があり、RTL機能が変更されたか否かをテストし、第1参照ファイルを用いてRTLを校正する。
例えば、ステップS52において、バックドアアクセスによって記憶ユニット221の第2データを読み出して第2ファイルを取得するステップは、以下のプロセス又はステップを含む。テストケースを再度実行し、バックドアアクセスによって記憶ユニット221の第2データを読み出し、第2ファイルを取得する。例えば、当該ステップS52におけるテストケースは、理論的には、上記のステップS51で初めて実行されるテストケースと同じであると予想されるため、検証に合格しているか否かを判断することができる。
例えば、ステップS53において、第1参照ファイルと第2ファイルとを比較し、検証結果を取得するステップは、以下のプロセス又はステップを含む。第1参照ファイルと第2ファイルとの比較結果が同じである場合に、検証に合格し、グラフィカルインターフェースに、例えば、「testcase pass」等の文字又はパターンを印刷し、プロセスが終了し、第2ファイルと第1参照ファイルとの比較結果が異なる場合に、検証が失敗し、グラフィカルインターフェースに、例えば、「testcase fail」等の文字又はパターンを印刷することができ、テストケースをデバッグし、また、テストモジュール231のRTLコードをチェックすることもできる。したがって、変更及びデバッグした後に、再度実行し、比較プロセスを繰り返して、比較結果が同じになると、検証に合格してプロセスが終了する。
したがって、検証が失敗する場合に、ステップS52でバックドアアクセスを通じて記憶ユニット221の第2データを読み出して第2ファイルを取得するステップは、以下のプロセス又はステップをさらに含む。テストケースをデバッグし、デバッグされているテストケースを実行して、バックドアアクセスを通じて記憶ユニット221の第2データを読み取り、第2ファイルを取得する。例えば、ステップS52のデバッグ後のテストケースは、ステップS51で初めて実行されるテストケースに対して、同じケースで構成されるため、実際のプロセスにおけるテストケースの誤りによる検証失敗の問題を回避することが可能であり、シミュレーション検証プロセスを円滑に進めることができる。
いくつかの例において、ステップS52について、テストケースを再び実行する前に、また、テストケースをデバッグすることができるが、本開示の実施例は、これには限定されない。
いくつかの例において、コンパイルされている第1部分200と第2部分300を実行するときに、Makefileの中のパッケージ化されている命令Make emu_runを実行することによって、Palladium機器のグラフィカルインターフェースを直接的に開始し、このようにして、グラフィカルインターフェースに、テストケースの実行結果及び対応する必要なログ情報を印刷し、これにより、ユーザーは、さらなるデバッグや結果の記録を行うことができる。
本開示の実施例の検証ファイル及び基本的な検証プロセスは汎用的であり、検証の作業負荷を軽減するのに寄与する。検証作業の深化に伴い、検証ケースの数は増加し、検証ケースの複雑さも増しており、設計を継続的に反復し、回帰テストの作業を自動化することで、プロジェクトの品質を確保し、面倒なタスクの作業負荷を軽減する。
図7は、本開示の他のいくつかの実施例によって提供される検証方法のフローチャートである。
例えば、図7に示されているように、本開示のいくつかの実施例によって提供される検証方法は、ステップT1~T8を含む。
ステップT1、テストケースを初めて実行する。
ステップT2、バックドアアクセスにより記憶ユニットの第1データを読み出し、第1参照ファイルを取得する。
ステップT3、テストケースを再度実行する。
ステップT4、バックドアアクセスにより記憶ユニットの第2データを読み出し、第2ファイルを取得する。
ステップT5、第1参照ファイルのデータと第2ファイルのデータとを比較する。
ステップT6、第2ファイルのデータが第1参照ファイルのデータと同じであるか否かを判断し、同じである場合に、ステップT8に進み、異なる場合に、検証が失敗し、ステップT7のテストケースのデバッグとテストモジュールのRTLチェックを実行し、判断結果が同じになるまでステップT3からステップT6を繰り返して実行し、そして、ステップT8に進む。
ステップT8、検証が合格になり、検証プロセスを終了する。
例えば、ステップT2の第1参照ファイルは、goldenバージョンの第2hexファイルである。
例えば、ステップT3のテストケースは、検証が失敗する場合にデバッグされた後のテストケースであってもよく、ステップT3を開始する前にテストケースをデバッグすることによって得られるテストケースであってもよい。本開示の実施例は、これには制限されない。
本開示の実施例は、上述のテストケースの検証プロセスに基づいて、一定の汎用性を備える自動化プロセスを実現することができ、それにより、単純で効率的で再利用性の高いハードウェアアクセラレーションテスト方法及びプロセスを実現し、チップ検証プロジェクトの時間を大幅に節約し、チップ検証効率を大幅に向上させる。
図8は、本開示の少なくとも1つの実施例によって提供される電子機器の概略構造図である。当該電子機器400は、処理モジュール410とメモリ420とを含む。メモリ420は、コンピュータプログラムを格納し、コンピュータプログラムが処理モジュール410によって実行されるときに、本開示の少なくともいくつかの実施例の検証方法を実現する。
本開示の実施例における電子機器は、ラップトップコンピュータ、タブレットコンピュータなどのモバイル端末、及びデスクトップコンピュータ、従来のサーバー、クラウドサーバーなどの固定端末を含むが、これらには限定されない。図8に示されている電子機器は一例に過ぎず、本開示の実施例の機能及び使用範囲を限定するものではない。
例えば、本開示の実施例によれば、フローチャートを参照して上記で説明されているプロセスは、コンピュータソフトウェアプログラムとして実現されてもよい。例えば、本開示の実施例は、非一時的なコンピュータ読み取り可能な媒体に組み込まれているコンピュータプログラムを含むコンピュータプログラム製品を含み、当該コンピュータプログラムは、フローチャートに示される方法を実行するためのプログラムコードを含む。当該コンピュータプログラムが処理モジュール801によって実行されるときに、本開示の実施例の検証方法を実行する。
なお、本開示における上述したコンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な信号媒体、コンピュータ読み取り可能な記憶媒体、又は上記2つの任意の組み合わせであってもよい。コンピュータ読み取り可能な記憶媒体は、例えば、電気、磁気、光学、電磁、赤外線、又は半導体のシステム、装置又はデバイス、又はそれらの任意の組み合わせであってもよいが、これらに限定されない。コンピュータ読み取り可能な記憶媒体のより具体的な例としては、1つ又は複数のワイヤを備えた電気接続、ポータブルコンピュータディスク、ハードドライブ、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能なプログラマブル読み取り専用メモリ(EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、光記憶デバイス、磁気記憶デバイス、又は上記の任意の適切な組み合わせを含むが、これらに限定されない。本開示において、コンピュータ読み取り可能な媒体は、プログラムを含むか又は格納する任意の有形媒体であってよく、当該プログラムは、命令実行システム、装置、又はデバイスによって使用されてもよいし、又はそれらと組み合わせて使用されてもよい。本開示の実施例において、コンピュータ読み取り可能な信号媒体は、ベースバンド内で伝播され、又は搬送波の一部として伝播され、その中にコンピュータ読み取り可能なプログラムコードが組み込まれたデータ信号を含んでもよい。このように伝播されるデータ信号は、電磁信号、光信号、又は上記の任意の適切な組み合わせを含むがこれらに限定されない、多くの形式をとることができる。コンピュータ読み取り可能な信号媒体は、命令実行システム、装置、又はデバイスによって使用され、又はそれらと組み合わせて使用されるプログラムを伝送、伝播、又は送信できるコンピュータ読み取り可能な記憶媒体以外の任意のコンピュータ読み取り可能な媒体であってもよい。コンピュータ読み取り可能な媒体上に含まれるプログラムコードは、ワイヤ、光ケーブル、RF(無線周波数)など、又はそれらの任意の適切な組み合わせを含むが、これらに限定されない任意の適切な媒体で送信されてもよい。
上記コンピュータ読み取り可能な媒体は、上記電子機器に含まれてもよいし、当該電子機器に組み込まれずに独立して存在してもよい。
なお、本開示の実施例において、電子機器400の具体的な機能及び技術的効果については、検証方法に関する上記の説明を参照してもよいが、ここでは繰り返して説明しない。
次の点について説明する必要がある。
(1) 本開示の実施例の図面には、本開示の実施例に関連する構造のみが含まれており、他の構造について共通の設計を参照することができる。
(2) 本開示の実施例及び実施例における特徴は、矛盾なければ互いに組み合わせて新たな実施例を得ることができる。
以上は本開示の具体的な実施形態に過ぎないが、本開示の保護範囲はこれに限定されず、本開示の保護範囲は、特許請求の範囲の保護範囲に従うべきである。

Claims (20)

  1. 検証システムであって、当該検証システムは、
    シミュレーション検証機器と、前記シミュレーション検証機器にそれぞれ作成される第1部分及び第2部分と、を含み、
    前記第1部分は、それぞれテスト対象と接続される第1マスタモジュール及び少なくとも1つの第2スレーブモジュールを含み、
    前記テスト対象は、テストモジュールと、前記テストモジュールの周囲に接続される複数の対象インターフェースと、を含み、前記複数の対象インターフェースは、メモリアクセスインターフェースを含み、前記第2スレーブモジュールは、記憶ユニットを含み、前記記憶ユニットは、前記メモリアクセスインターフェースと接続され、
    前記第2部分は、第1ダイレクトプログラミングインターフェース、第2ダイレクトプログラミングインターフェース、関数ライブラリモジュール、及びテストケースモジュールを含み、前記テストケースモジュールは、少なくとも1つのテストケースを提供するように構成され、
    前記第1ダイレクトプログラミングインターフェースは、前記第1マスタモジュールと通信し、前記第1ダイレクトプログラミングインターフェースは、前記テストケースを実行することに応答して、前記関数ライブラリモジュールの中の少なくとも1つの第1関数を呼び出して、前記テストモジュールのレジスターのフロントドアアクセスを実現するように構成され、
    前記第2ダイレクトプログラミングインターフェースは、前記第1部分の前記記憶ユニットと通信し、前記第2ダイレクトプログラミングインターフェースは、前記テストケースを実行することに応答して、前記関数ライブラリモジュールの中の少なくとも1つの第2関数を呼び出して、前記記憶ユニットのバックドアアクセスを実現するように構成される、
    検証システム。
  2. 前記第1部分は、ハードウェア記述言語に基づいて作成されるように構成されるハードウェア側であり、
    前記第2部分は、行動モデリング言語に基づいて作成されるように構成されるソフトウェア側である、請求項1に記載の検証システム。
  3. 前記シミュレーション検証機器は、第1プロセッサを含み、前記第1プロセッサが並列接続される複数の第2プロセッサを含む、請求項1に記載の検証システム。
  4. 前記第1ダイレクトプログラミングインターフェースは、C言語又はCPP言語に基づくダイレクトプログラミングインターフェースを含み、前記第2ダイレクトプログラミングインターフェースは、C言語又はCPP言語に基づくワンタイムアクセスのダイレクトプログラミングインターフェースを含む、請求項3に記載の検証システム。
  5. 前記第1部分は、クロック信号を提供するためのクロック励振源モジュールをさらに含み、前記複数の対象インターフェースは、第1インターフェース、第2インターフェース、第3インターフェース、及び第4インターフェースのうちの少なくとも1つをさらに含み、
    前記第1インターフェースは、前記クロック励振源モジュールと接続されて、前記クロック信号を受信し、
    前記第2インターフェースは、割り込み要求信号を受信するように構成され、
    前記第1マスタモジュールは、前記第3インターフェースと接続されて、前記テストモジュールのレジスターを構成し、
    前記第1マスタモジュールは、前記第4インターフェースと接続されて、前記第1部分をリセットする、請求項1に記載の検証システム。
  6. 前記第1マスタモジュールは、アドバンストマイクロプロセッサバスアーキテクチャのマスタモジュールを含み、前記第2スレーブモジュールは、アドバンストマイクロプロセッサバスアーキテクチャのスレーブモジュールを含み、
    前記第1マスタモジュールは、メインコア及び第3スレーブモジュールを含み、前記メインコアは、前記第1ダイレクトプログラミングインターフェース及び前記第3インターフェースにそれぞれ接続され、これにより、前記メインコアは、前記テストケースの前記第1関数に対応するレジスターアクセス命令を取得して、前記テストモジュールのレジスターを構成し、
    前記第3スレーブモジュールは、それぞれ、前記メインコア及び前記第4インターフェースと接続され、これにより、前記第4インターフェースに、前記メインコアが生成するリセット信号を伝送して、前記第1部分をリセットする、請求項5に記載の検証システム。
  7. 前記第1部分は、レートマッチングブリッジをさらに含み、前記レートマッチングブリッジは、それぞれ、前記第2スレーブモジュール及び前記メモリアクセスインターフェースと接続されるように構成される、請求項1に記載の検証システム。
  8. 前記第2部分は、プロファイルをさらに含み、
    前記テストケースは、前記フロントドアアクセスのために、前記プロファイルの前記少なくとも1つの第1関数に基づいて、ケース構成を実行するように構成されるか、又は、前記バックドアアクセスのために、前記プロファイルの前記少なくとも1つの第2関数に基づいて、ケース構成を実行するように構成され、
    前記関数ライブラリモジュールは、前記テストケース及び前記プロファイルに基づいて、前記行動モデリング言語を通じてコンパイルして生成される静的ライブラリを含む、請求項2に記載の検証システム。
  9. 前記少なくとも1つの第1関数は、レジスター読み取り関数、レジスター書き込み関数、レジスター読み出しチェック関数、レジスター書き込み読み出し及びチェック関数、及びレジスターポーリングウェイクアップ読み出し関数のうちの少なくとも1つを含み、
    前記少なくとも1つの第2関数は、記憶ユニットポーリングウェイクアップ読み取り関数、記憶ユニット初期化関数、記憶ユニットデータロード関数、及び記憶ユニットデータエクスポート関数のうちの少なくとも1つを含む、請求項1に記載の検証システム。
  10. 前記第1マスタモジュール、前記第2スレーブモジュール、及び前記第3スレーブモジュールには、それぞれ独立している記憶空間が配置されている、請求項6に記載の検証システム。
  11. 検証のための方法であって、当該方法は、
    前記テストモジュールに基づいて、レジスター転送レベルコードのコンパイルを実行するステップと、
    前記第1部分、前記テスト対象、前記テストモジュール、前記第1マスタモジュール及び前記第2スレーブモジュールに基づいて、包括的なコンパイルを実行し、コンパイルされている前記第1部分を取得するステップと、
    前記シミュレーション検証機器の使用モードを選択し、前記使用モードに従って、少なくとも1つのコンパイルオプションに、コンパイルされている前記第1部分を追加し、第1アセンブラツールを呼び出して前記検証システムを分解し、前記シミュレーション検証機器のためのハードウェア情報ライブラリを生成し、アクセラレータのコンパイルを実現するステップと、
    前記第2部分の行動モデリング言語のコードをコンパイルするステップと、
    コンパイルされている前記第1部分及び前記第2部分を実行して、検証結果を取得するステップと、を含む、請求項1~10のうちのいずれか一項に記載の検証システムに基づく方法。
  12. 前記シミュレーション検証機器は、Palladium機器を含み、
    前記第1部分は、ハードウェア記述言語に基づいて作成されるように構成されるハードウェア側であり、前記第2部分は、行動モデリング言語に基づいて作成されるように構成されるソフトウェア側である、請求項11に記載の方法。
  13. 前記テストモジュールに基づいて、レジスター転送レベルコードのコンパイルを実行するステップは、
    第2コンパイルツールを使用して、前記テストモジュールのレジスター転送レベルファイルリスト及び対応するレジスター転送レベルファイルをコンパイルし、前記テスト対象を含む所定の形式のテストモジュールのネットリストを生成し、生成されている前記テストモジュールのネットリストは、前記シミュレーション検証機器によって実行されるように構成される、請求項11に記載の方法。
  14. 前記第1部分、前記テスト対象、前記テストモジュール、前記第1マスタモジュール及び前記第2スレーブモジュールに基づいて、包括的なコンパイルを実行し、コンパイルされている前記第1部分を取得するステップは、前記第1部分が、クロック信号を提供するためのクロック励振源モジュールをさらに含むことに応答して、
    前記シミュレーション検証機器の第3コンパイルツールに基づいて、前記第1部分、前記テスト対象、前記テストモジュール、前記第1マスタモジュール、前記第2スレーブモジュール及び前記クロック励振源モジュールに対して、包括的なコンパイルを実行して、コンパイルされている前記ハードウェア側を取得するステップを含む、請求項12に記載の方法。
  15. 前記シミュレーション検証機器の使用モードを選択し、前記使用モードに従って、少なくとも1つのコンパイルオプションに、コンパイルされている前記第1部分を追加し、第1アセンブラツールを呼び出して前記検証システムを分解し、前記シミュレーション検証機器のためのハードウェア情報ライブラリを生成するステップは、
    前記Palladium機器のIXCOMモードを選択し、前記IXCOMモードに従ってコンパイルされている前記第1部分を少なくとも1つのコンパイルオプションに追加し、前記第1アセンブラツールを呼び出して、前記検証システムを分解し、前記ハードウェア情報ライブラリを生成するステップを含む、請求項12に記載の方法。
  16. 前記コンパイルされている前記第1部分と前記第2部分を実行して、検証結果を取得するステップは、
    前記テストモジュールが第1モジュールであるということに応答して、前記バックドアアクセスにより前記記憶ユニットの第1データを読み出し、第1参照ファイルを取得するステップと、
    前記テストモジュールが第2モジュールであるということに応答して、前記バックドアアクセスにより前記記憶ユニットの第2データを読み出し、第2ファイルを取得するステップであって、前記第2モジュールは、前記第1モジュールに基づいて更新されるように構成される、ステップと、
    前記第2ファイルと前記第1参照ファイルとを比較して、前記検証結果を取得する、請求項11に記載の方法。
  17. 前記バックドアアクセスにより前記記憶ユニットの第1データを読み出し、第1参照ファイルを取得するステップは、
    前記テストケースの実行終了に応答して、前記バックドアアクセスにより、前記記憶ユニットの前記第1データを読み取り、自己命名の第1ターゲット16進形式ファイルを取得するステップと、
    前記第1ターゲット16進形式ファイルに基づいて、標準バージョンの第2ターゲット16進形式ファイルを生成して、前記第1参照ファイルを取得するステップと、を含む、請求項16に記載の方法。
  18. 前記バックドアアクセスにより、前記記憶ユニットの第2データを読み出し、第2ファイルを取得するステップは、
    前記テストケースをデバッグし、デバッグされているテストケースを実行して、前記バックドアアクセスにより、記憶ユニットの前記第2データを読み取り、前記第2ファイルを取得するステップを含む、請求項16に記載の方法。
  19. 電子機器であって、当該電子機器は、
    処理モジュールとメモリとを含み、
    前記メモリは、コンピュータプログラムを格納し、前記コンピュータプログラムが前記処理モジュールによって実行されるときに、請求項11に記載の方法を実現する、
    電子機器。
  20. コンピュータプログラムが格納されているコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムが処理モジュールによって実行されるときに、請求項11に記載の方法を実現する、コンピュータ読み取り可能な記憶媒体。
JP2025512958A 2022-08-31 2023-08-30 検証システム、検証方法、電子機器及び記憶媒体 Active JP7786005B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202211062729.2A CN117667655B (zh) 2022-08-31 2022-08-31 验证系统、验证方法、电子设备以及存储介质
CN202211062729.2 2022-08-31
PCT/CN2023/115777 WO2024046362A1 (zh) 2022-08-31 2023-08-30 验证系统、验证方法、电子设备以及存储介质

Publications (2)

Publication Number Publication Date
JP2025529962A JP2025529962A (ja) 2025-09-09
JP7786005B2 true JP7786005B2 (ja) 2025-12-15

Family

ID=90064958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2025512958A Active JP7786005B2 (ja) 2022-08-31 2023-08-30 検証システム、検証方法、電子機器及び記憶媒体

Country Status (7)

Country Link
US (1) US20250200259A1 (ja)
EP (1) EP4560478A4 (ja)
JP (1) JP7786005B2 (ja)
KR (1) KR102916889B1 (ja)
CN (1) CN117667655B (ja)
TW (1) TWI837026B (ja)
WO (1) WO2024046362A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117892561B (zh) * 2024-03-14 2024-07-26 深圳市邦正精密机械股份有限公司 一种用于psa机的贴合压力实时监测评估方法
CN117933153B (zh) * 2024-03-21 2024-06-04 成都电科星拓科技有限公司 I3c总线验证系统
CN118569164A (zh) * 2024-08-02 2024-08-30 南京云程半导体有限公司 Emu测试方法、装置、电子设备及存储介质
CN119201695B (zh) * 2024-09-03 2025-09-05 北京中科昊芯科技有限公司 一种指令验证方法、装置、电子设备及存储介质
CN119292906B (zh) * 2024-09-27 2025-11-11 山东云海国创云计算装备产业创新中心有限公司 一种自动化接口信号验证管控方法,装置、设备及介质
CN119201097B (zh) * 2024-11-22 2025-02-18 北京数渡信息科技有限公司 一种用于集成电路芯片验证的通用验证系统
CN119201757B (zh) * 2024-11-28 2025-03-07 沐曦集成电路(上海)股份有限公司 一种仿真验证的加速系统
CN119201756A (zh) * 2024-11-28 2024-12-27 沐曦集成电路(上海)有限公司 一种基于dfi接口的仿真验证系统
CN119311498B (zh) * 2024-12-17 2025-05-09 北京欣博电子科技有限公司 测试方法及测试平台
CN119377138B (zh) * 2024-12-31 2025-05-13 长沙金维集成电路股份有限公司 基于SoC系统的消息打印方法、装置、电子设备、存储介质及计算机程序产品
CN119720890B (zh) * 2025-02-28 2025-06-27 北京开源芯片研究院 一种硬件验证方法、装置、电子设备及存储介质
CN120068746B (zh) * 2025-03-11 2025-11-18 沐曦集成电路(上海)股份有限公司 基于软件存储模型的验证系统
CN119862829B (zh) * 2025-03-24 2025-07-11 北京开源芯片研究院 芯片验证平台的调用方法、装置、电子设备及存储介质
CN120262332B (zh) * 2025-06-06 2025-08-22 国网经济技术研究院有限公司 自主可控直流保护系统的校验码上送保信子站方法及系统
CN120597792B (zh) * 2025-08-08 2025-10-28 瀚博半导体(上海)股份有限公司 用于芯片算法模块验证与调试的方法和装置
CN120874704B (zh) * 2025-09-29 2025-11-28 沐曦集成电路(上海)股份有限公司 多语言数据交互结构及包含其的芯片验证ip和验证系统
CN120995948B (zh) * 2025-10-27 2026-01-27 中国人民解放军军事科学院国防科技创新研究院 支持多种验证场景的仿真验证系统及方法
CN121351722B (zh) * 2025-12-18 2026-02-27 瀚博半导体(上海)股份有限公司 一种软件hdl协同仿真系统中的时序同步方法
CN121364977B (zh) * 2025-12-22 2026-04-10 上海壁仞科技股份有限公司 一种芯片访存验证方法、设备、介质及程序产品
CN121501633B (zh) * 2026-01-12 2026-04-28 北京国科天迅科技股份有限公司 芯片验证方法
CN121562508B (zh) * 2026-01-19 2026-03-31 沐曦科技(成都)有限公司 一种cpu仿真加速系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005008495A2 (en) 2003-07-11 2005-01-27 Unisys Corporation Maintenance interface unit for servicing multiprocessor systems
JP2007004832A (ja) 1996-12-20 2007-01-11 Texas Instr Inc <Ti> データ処理システムのデバッグ中にマルチワード命令レジスタを利用する方法
WO2020152231A1 (en) 2019-01-22 2020-07-30 Advantest Corporation Automated test equipment for testing one or more devices under test, method for automated testing of one or more devices under test, and computer program using a buffer memory

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182258B1 (en) * 1997-06-03 2001-01-30 Verisity Ltd. Method and apparatus for test generation during circuit design
US6571373B1 (en) * 2000-01-31 2003-05-27 International Business Machines Corporation Simulator-independent system-on-chip verification methodology
US7562001B2 (en) * 2005-07-29 2009-07-14 International Business Machines Corporation Creating a behavioral model of a hardware device for use in a simulation environment
KR101375171B1 (ko) * 2006-12-30 2014-03-18 삼성전자주식회사 시스템 온 칩 모델 검증 방법 및 장치
US8042086B2 (en) * 2007-12-21 2011-10-18 Oracle America, Inc. Method and apparatus for verifying integrated circuit design using a constrained random test bench
CN104657245B (zh) * 2013-11-20 2017-01-04 上海华虹集成电路有限责任公司 基于amba总线的模块级uvm验证平台的自动生成装置
US10503855B2 (en) * 2017-01-23 2019-12-10 Concertal Systems, Inc. Methods and systems for system design automation (SDA) of mixed signal electronic circuitry including embedded software designs
US10922462B1 (en) * 2019-11-22 2021-02-16 SiFive, Inc. Intellectual property block validation and design integration for integrated circuits
JP2022049470A (ja) * 2020-09-16 2022-03-29 キオクシア株式会社 論理シミュレーション検証システム、論理シミュレーション検証方法、およびプログラム
CN112131829A (zh) * 2020-09-18 2020-12-25 山东云海国创云计算装备产业创新中心有限公司 一种芯片寄存器的验证方法、系统及相关装置
CN112131147B (zh) * 2020-09-21 2022-07-08 成都海光微电子技术有限公司 一种控制器验证方法、装置、系统、电子设备及存储介质
US11392533B1 (en) * 2020-12-30 2022-07-19 Cadence Design Systems, Inc. Systems and methods for high-speed data transfer to multiple client devices over a communication interface
CN113408240B (zh) * 2021-06-25 2023-12-22 上海阵量智能科技有限公司 芯片验证方法及装置、存储介质
CN113505066B (zh) * 2021-07-09 2024-07-12 合肥肇观电子科技有限公司 用于验证被测试模块的方法以及验证系统
CN113688046B (zh) * 2021-08-26 2023-08-25 中国科学院上海高等研究院 用于处理器仿真验证的大规模用例生成方法
CN114139475B (zh) * 2021-12-07 2026-02-27 上海西井科技股份有限公司 芯片验证方法、系统、设备及存储介质
CN114330177B (zh) * 2021-12-23 2025-06-06 山东云海国创云计算装备产业创新中心有限公司 芯片寄存器的系统级验证方法、系统、设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007004832A (ja) 1996-12-20 2007-01-11 Texas Instr Inc <Ti> データ処理システムのデバッグ中にマルチワード命令レジスタを利用する方法
WO2005008495A2 (en) 2003-07-11 2005-01-27 Unisys Corporation Maintenance interface unit for servicing multiprocessor systems
WO2020152231A1 (en) 2019-01-22 2020-07-30 Advantest Corporation Automated test equipment for testing one or more devices under test, method for automated testing of one or more devices under test, and computer program using a buffer memory

Also Published As

Publication number Publication date
WO2024046362A1 (zh) 2024-03-07
CN117667655A (zh) 2024-03-08
EP4560478A4 (en) 2025-10-22
KR20250057799A (ko) 2025-04-29
US20250200259A1 (en) 2025-06-19
TW202411872A (zh) 2024-03-16
JP2025529962A (ja) 2025-09-09
EP4560478A1 (en) 2025-05-28
CN117667655B (zh) 2026-03-24
KR102916889B1 (ko) 2026-01-26
TWI837026B (zh) 2024-03-21

Similar Documents

Publication Publication Date Title
JP7786005B2 (ja) 検証システム、検証方法、電子機器及び記憶媒体
US12093631B2 (en) Method, system and verifying platform for system on chip verification
CN102508753B (zh) Ip核验证系统
CN112434478B (zh) 仿真逻辑系统设计的虚拟接口的方法及相关设备
CN100476837C (zh) 一种支持随机指令测试的微处理器fpga验证装置
CN115809620B (zh) 仿真逻辑系统设计的方法、电子设备和存储介质
CN115543797A (zh) 基于uvm的总线转换桥验证方法、装置、设备及存储介质
CN117910398A (zh) 仿真逻辑系统设计的方法、电子装置和存储介质
CN115732025A (zh) Ram访问冲突的验证方法及验证装置
US8874968B1 (en) Method and system for testing a processor designed by a configurator
CN119088365A (zh) 一种性能仿真模型构建方法、装置和性能仿真方法
CN116306392A (zh) 芯片仿真装置、方法、电子设备和存储介质
CN118504478B (zh) 仿真逻辑系统设计的方法、电子装置和存储介质
US12073155B2 (en) Method and system for building hardware images from heterogeneous designs for electronic systems
CN221746452U (zh) 硬件仿真工具和接口适配器
Koivula Virtual prototype based SoC Co-verification
US20180011956A1 (en) Data Injection In Emulation Without Rebooting
CN120387404A (zh) 仿真逻辑系统设计的方法、电子设备和存储介质
CN118364756A (zh) 验证系统、验证方法、电子设备和存储介质
CN117172203A (zh) 处理脚本命令的方法、电子设备和存储介质
CN121543531A (zh) 异构核验证方法、装置、终端、基站和芯片
CN120951899A (zh) 基于uvm的芯片总线验证方法、装置、电子设备及存储介质
CN120386677A (zh) 硬件仿真工具、接口适配器和硬件仿真系统
CN118915562A (zh) 处理逻辑系统设计的信号的方法、器件、电子装置和存储介质
CN118332982A (zh) 验证方法、验证系统、设备以及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250228

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20250228

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20250326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250722

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20251022

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20251104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20251203

R150 Certificate of patent or registration of utility model

Ref document number: 7786005

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150