RTL の自動検証 - 2023.2 日本語

Vitis 高位合成ユーザー ガイド (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 日本語
図 1. C/RTL 検証フロー

C/RTL 協調シミュレーションでは、C テストベンチを使用し、main() 関数を実行して、ビヘイビアー シミュレーションで実行される RTL デザインを自動的に検証します。C/RTL 検証プロセスには、次の 3 つの段階があります。

  1. C シミュレーションが実行され、最上位関数またはテスト対象デザイン (DUT) への入力が入力ベクターとして保存されます。
  2. この入力ベクターは、Vivado シミュレータまたはサポートされるサードパーティ HDL シミュレータの C 合成で作成された RTL を使用して、RTL シミュレーションで使用されます。RTL からの出力またはシミュレーションの結果は、出力ベクターとして保存されます。
  3. RTL シミュレーションからの出力ベクターは C テストベンチの main() 関数に戻され、結果が正しいかどうかが検証されます。C テストベンチで、場合によっては既知の良い結果と比較することにより、結果が検証されます。

次に、HLS コンパイラから検証中に出力されるメッセージを示します。

C シミュレーション中:

INFO: [COSIM 212-14] Instrumenting C test bench ...
   Build using ".../bin/g++"
   Compiling dct_test.cpp_pre.cpp.tb.cpp
   Compiling dct_inline.cpp_pre.cpp.tb.cpp
   Compiling apatb_dct.cpp
   Generating cosim.tv.exe
INFO: [COSIM 212-302] Starting C TB testing ... 
Test passed !

この段階では、C シミュレーションが実行されているので、C テストベンチで生成されるメッセージはすべて、コンソール ビューまたはログ ファイルに出力されます。

RTL シミュレーション中:

INFO: [COSIM 212-333] Generating C post check test bench ...
INFO: [COSIM 212-12] Generating RTL test bench ...
INFO: [COSIM 212-1] *** C/RTL co-simulation file generation completed. ***
INFO: [COSIM 212-323] Starting verilog/vhdl simulation. 
INFO: [COSIM 212-15] Starting XSIM ...

この段階では、RTL シミュレーションからのメッセージはすべてコンソール ビューまたはログ ファイルに出力されます。

C テストベンチで結果をチェック中:

INFO: [COSIM 212-316] Starting C post checking ...
Test passed !
INFO: [COSIM 212-1000] *** C/RTL co-simulation finished: PASS ***

C/RTL 協調シミュレーションの要件は次のとおりです。