クロッキング モード - 2021.2 日本語

Vitis Model Composer ユーザー ガイド (UG1483)

Document ID
UG1483
Release Date
2021-10-22
Version
2021.2 日本語

Model Composer ハードウェア協調シミュレーション ブロックを関連付けられている FPGA ハードウェアと同期させる方法は複数あります。シングル ステップ クロック モードでは、FPGA に Simulink からクロックが供給されます。フリーランニング クロック モードでは、内部クロックが使用され、Simulink がハードウェア協調シミュレーション ブロックをウェークアップしたときに非同期にサンプリングされます。

シングル ステップ クロック

シングル ステップ クロック モードでは、ハードウェアをソフトウェア シミュレーションとロックステップで動作させます。これは、各シミュレーション サイクルでハードウェアに 1 つのクロック パルスを供給する方法です (FPGA が入力/出力レートよりも速くクロック供給を受ける場合は複数クロック パルスを供給)。このモードの場合、ハードウェア協調シミュレーション ブロックは元のモデルに対してビットごとまたはサイクルごとに比較されます。

ハードウェア協調シミュレーション ブロックは、Simulink がウェークアップしたときにのみ FPGA ハードウェアのクロック信号を生成するので、Simulink モデルのシミュレーションの残りの部分からのオーバーヘッドや、Simulink と FPGA ボード間の通信オーバーヘッド (バス レイテンシなど) により、ハードウェアで達成されるパフォーマンスが著しく制限されます。通信のオーバーヘット (ロジック数が多い、ハードウェアが大幅にオーバークロックされるなど) に対して FPGA 内の計算能力が高ければ、ハードウェアでシミュレーション時間を大幅に短縮できます。

フリーランニング クロック

フリーランニング クロック モードでは、ハードウェアはソフトウェア シミュレーションに対して非同期に動作します。Simulink により FPGA クロックが生成されるシングル ステップ クロック モードとは異なり、フリーランニング モードではハードウェア クロックが FPGA 内で継続的に動作します。このモードでは、Simulink がハードウェア協調シミュレーションブロックをウェークアップしたときにのみ Simulink がハードウェアの内部ステートをサンプリングするので、シミュレーションは元のモデルとビット精度およびサイクル精度で動作しません。FPGA ポート I/O は Simulink のイベントとは同期しなくなります。Simulink ポートでイベントが発生すると、その時点での値がハードウェアの対応するポートから読み出されるか、そのポートに書き込まれます。ただし、ポートのイベント間にハードウェアで経過したクロック サイクル数はわからないので、ハードウェアの現在のステートを元の Model Composer モデルと照合することはできません。ストリーミング アプリケーションでは、FPGA はフルスピードで動作し、Simulink とは定期的にしか同期しないため、実際にはこれは非常に好ましい状況です。

フリーランニング クロック モードでは、Model Composer モデルに同期メカニズムを明示的に構築する必要があります。ハードウェア協調シミュレーション ブロックの出力ポートとして使用されるステータス レジスタがこの例で、条件が満たされたときにハードウェアで設定されます。Model Composer モデルの残りの部分は、ステータス レジスタをポーリングして、ハードウェアのステートを判断できます。

クロック モードの選択

すべてのハードウェア ボードでフリーランニング クロックがサポートされるわけではありませんが、サポートされる場合は、ハードウェア協調シミュレーション ブロックのパラメーター ダイアログ ボックスでクロッキング モードを選択できます。協調シミュレーションのクロッキング モードを変更するには、シミュレーションの開始前に、パラメーター ダイアログ ボックスの Clock SourceSingle stepped または Free running をオンにします。

注記: ハードウェア協調シミュレーション ブロックで使用可能なクロッキング オプションは、使用する FPGA ボードによって異なり、フリーランニング クロック ソースがサポートされないボードの場合は、ダイアログ ボックスにオプションは表示されません。
図 1. [Single stepped] をオン

M-Hwcosim を使用してフリーランニング クロックのオン/オフをプログラミングで切り替える方法については、M-Hwcosim MATLAB クラス の run の説明を参照してください。