• 検索結果がありません。

Vitis HLS での C/RTL 協調シミュレーション

ドキュメント内 Vitis 高位合成ユーザー ガイド (ページ 64-67)

シミュレーション目的でプロジェクトに C テストベンチを追加した場合、それを C/RTL 協調シミュレーションにも 使用して、RTL が C ソース コードと同じように機能するかどうかを検証できます。合成の RTL 結果を検証するには、

[C/RTL Cosimulation] ツールバー ボタン ( ) または [Solution] → [Run C/RTL cosimulation] をクリックします。

次の図に示す [Co-simulation Dialog] ダイアログ ボックスでは、検証に使用する RTL のタイプ (Verilog または VHDL) およびシミュレーションに使用する HDL シミュレータを選択できます。

図 33: [Co-simulation Dialog] ダイアログ ボックス

このダイアログボックスには、次の設定があります。

シミュレータ: Vivado Design Suite でサポートされる HDL シミュレータの 1 つを選択します。デフォルトのシミ ュレータは、[Vivado XSIM] です。

言語: シミュレーションの出力言語を Verilog にするか VHDL にするかを選択します。

• [Setup Only]: 必要なシミュレーション ファイルを作成するのみで、シミュレーションは実行しません。シミュレ ーション実行ファイルは、後でコマンド シェルから実行できます。

• [Optimizing Compile]: コンパイルに時間がかかっても、可能な場合はランタイムパフォーマンスを改善するため に最適化を実行します。

• [Input Arguments]: C テストベンチに対するコマンドライン引数を指定します。

• [Dump Trace]: シミュレーション実行時に現在のソリューションの sim/Verilog または sim/VHDL ディレクト リに書き込まれるトレース ファイル出力のレベルを指定します。選択肢は、次のとおりです。

• [all]: すべてのポートおよび信号波形データが出力され、トレースファイルに保存されます。

• [port]: 最上位ポートの波形トレース データのみが出力されます。

• [none]: トレース データは出力されません。

• [Random Stall]: 各データ転送にランダムなストールを適用します。

• [Compiled Library Location]: サードパーティ シミュレータで使用するコンパイル済みのシミュレーション ライブ ラリのディレクトリを指定します。

• [Extra Options for DATFLOW]:

• [Wave Debug]: RTL シミュレーションのすべてのプロセスを 波形を表示します。これは、Vivado XSim シミュ レータを使用する場合にのみサポートされます。オンにすると、シミュレータの GUI が起動し、シミュレー ションで生成された波形でデータフローの動作を確認できます。

• [Disable Deadlock Detection]: デッドロック検出をオフにし、協調シミュレーションのデッドロックビューア

ー を協調シミュレーションで開きます。

• [Channel Profiling (PIPO/FIFO)]: [Dataflow] ビュー に表示するプロファイル データの収集をイネーブルにし ます。

ヒント: C/RTL 協調シミュレーションの設定は、[Explorer] ビューでソリューションを右クリックし、[Solutions Settings] をクリックして、開いた [Solution Settings] ダイアログ ボックスから前もって変更できます。

C/RTL 協調シミュレーションが終了すると、コンソールに検証で問題が検出されなかったことを示す次のメッセージ が表示されます。

INFO: [Common 17-206] Exiting xsim ...

INFO: [COSIM 212-316] Starting C post checking ...

Test passed !

INFO: [COSIM 212-1000] *** C/RTL co-simulation finished: PASS ***

INFO: [COSIM 212-211] II is measurable only when transaction number is greater than 1 in RTL simulation.

Otherwise, they will be marked as NA. If user wants to calculate them, please make sure there are at

least 2 transactions in RTL simulation.

Finished C/RTL cosimulation.

シミュレーション中には、C テストベンチの printf コマンドの結果もコンソールに表示されます。

テストベンチの記述で説明するように、テストベンチでは最上位関数からの出力が合成のために検証され、出力が正 しければ、テストベンチの main() 関数に 0 が返されます。Vitis HLS は C シミュレーションと C/RTL 協調シミュレ ーションの両方に同じ戻り値を使用して、結果が正しいかどうかを判断します。C テストベンチから 0 以外の値が返 された場合、Vitis HLS でシミュレーションでエラーが発生したことがレポートされます。

シミュレーション後は協調シミュレーション レポートが自動的に開き、エラーなし (PASS) またはエラーあり (FAIL) と、レイテンシおよび II の測定の統計が表示されます。

ヒント: コンソール ウィンドウに示されるように、RTL シミュレーションのトランザクション数が 1 を超えない限 り、協調シミュレーションレポートには II NA と表示されます。テストベンチの記述で説明するように、RTL シ ミュレーションに少なくとも 2 つのトランザクションがないと、II は計算できません。

ドキュメント内 Vitis 高位合成ユーザー ガイド (ページ 64-67)