同期化のメカニズム - 2020.2 日本語

Vivado Design Suite ユーザー ガイド: System Generator を使用したモデル ベースの DSP デザイン (UG897)

Document ID
UG897
Release Date
2020-11-18
Version
2020.2 日本語

System Generator では、同期化のメカニズムは自動的には作成されません。設計者が明示的に作成する必要があります。

有効なポート

System Generator には、同期化に使用できるブロック (特に FIFO) が複数含まれています。複数のブロックでオプションの AXI 信号インターフェイスが提供されており、サンプルが有効なとき (TValid)、およびインターフェイスがデータ準備完了になったとき (TReady) を示します。IP の設定によっては、tvalid/tready ポートが確認できない場合場合があります。次の図に示すように、ブロックの各インターフェイスのポート群は色分けされています。インターフェイスのあるブロックはチェーン接続可能で、これで簡単にフロー制御できます。AXI インターフェイスのあるブロックには、FFT、FIR、DDS などがあります。

図 1. AXI インターフェイスを使用するブロック

不定のデータ

多くのハードウェア シミュレーション環境では、不定値があるのが一般的です。これらは、「ドントケア」または「X」と示されます。System Generator シミュレーションの値は、不定値である可能性があります。たとえば、デュアル ポート メモリ ブロックでは、メモリの両方のポートで同じアドレスに同時にアクセスしようとすると、値が不定になります。ハードウェアでの実際の動作は、どちらのポートのクロック エッジが先に到着するかなどを決定するインプリメンテーションの詳細によって異なります。値が不定になることを許容すると、システム設計の柔軟性が増します。先ほどの例で、メモリで値が不定になっても、その後の処理がその値に依存していなければ、問題ありません。

HDL 協調シミュレーションによりシミュレーションに含まれる HDL モジュールは、一般的にデータ サンプルが不定になる原因となります。Sytemm Generator で HDL 協調シミュレーション モジュールの入力に入力される不定値は、標準ロジック ベクター XXX . . . XX で表されます。

Gateway Out を駆動する不定値は、NaN (Not a Nnumber) という値になります。Simulink の Scope では、NaN 値は表されません。Gateway In を駆動する NaN も不定値になります。System Generator には、不定値を検出する Indeterminate Probe ブロックが含まれています。このブロックは、ハードウェアには変換されません。

System Generator では、演算信号が不定値になってもかまいませんが、ブール信号を不定値にすることはできません。シミュレーションでブール信号が不定値になる状況が発生した場合は、シミュレーションは中断され、エラー メッセージが表示されます。ザイリンクス ブロックには、ブール信号のみを入力として使用可能な制御ポートが含まれているものが多数あります。これらのブロックでは、制御ポートのブール信号を不定値にすることはできません。

UFix_1_0 は、ブール信号と同等のデータ型ですが、不定値に関する上記の制限はありません。