レート変更ブロックと Constant ブロックの使用方法
次のガイドラインは、モデルでのレート変換を実行可能なブロックおよび設計の Constant ブロックなどのソース ライブラリのブロックを設計で使用する方法を示します。各ガイドラインに準拠要件のレベルを示す重大度レベルが割り当てられています。詳細については、HDL モデリング ガイドラインの重大度レベルを参照してください。
レート変換ブロックの使用
ガイドライン ID
2.5.1
重大度
推奨
説明
レート変換をモデル化するには、さまざまな方法があります。レート変換をモデル化する方法により、設計のタイミングおよびリソース要件が決まります。このガイドラインは、レート変換のモデル化のさまざまなアプローチを示します。
サンプルレートの増加
次の表に、設計のサンプルレートを増加させるために使用できるブロックを示します。これらのブロックを使用する場合は、ブロック パラメーターを既定の設定のままにします。
レート変換方法
ブロック | バイパス レジスタを生成するかどうか | ゼロ パディングを生成するかどうか | メモ |
---|---|---|---|
Repeat (DSP System Toolbox) | いいえ | いいえ | このブロックを使用するには、DSP System Toolbox™ がインストールされていなければなりません。 |
Rate Transition | いいえ | いいえ | なし |
Upsample (DSP System Toolbox) | はい | はい | このブロックを使用するには、DSP System Toolbox がインストールされていなければなりません。このブロックを使用する場合、バイパス レジスタの影響およびハードウェア リソースの使用に対するゼロ パディングのロジックを検討します。 |
Rate Transition ブロックで、単位遅延を発生させずに入力信号をアップサンプリングするには、Rate Transition ブロックの [ブロック パラメーター] ダイアログ ボックスで次を行います。
[データ転送中の整合性を確保] チェック ボックスをオフにします。
このチェック ボックスをオフにして、[確定的にデータ転送を確保 (最大遅延)] チェック ボックスが消えるようにします。
ブロックの出力端子サンプル時間を、入力端子サンプル時間の整数倍に設定します。[サンプル時間の倍数] に小数値
1/n
を指定します。ここでn
は整数です。[サンプル時間の倍数] で値1/n
を使用している限り、ブロック パラメーター [出力端子のサンプル時間オプション] のどの値でも選択できます。
入力クロックと出力クロックが互いに同期しない場合、Repeat ブロックと Rate Transition ブロックで生成される HDL コードでバイパス レジスタの挿入を避けるには、モデル内の Repeat ブロックと Rate Transition ブロックの後に 1 つの単位遅延を挿入します。
サンプル レートを増加させる場合、ブロックの [初期条件] パラメーターを使用できます。このパラメーターは、[データ転送中の整合性を確保] チェック ボックスをオンのままにした場合のアップサンプリングに使用されます。初期値は、Rate Transition ブロックから作成された状態用に生成された HDL コードに伝播されます。
サンプルレートの減少
サンプル レートを減少させるには、Downsample (DSP System Toolbox) または Rate Transition ブロックを使用できます。Downsample ブロックを使用するには DSP System Toolbox がインストールされていなければなりません。これらのブロックを使用する場合は、ブロック パラメーターを既定の設定のままにします。
入力信号をダウンサンプリングする場合、HDL コード生成のブロック パラメーターを既定の設定のままにできるため、Rate Transition ブロックを使用します。[データ転送中の整合性を確保] および [確定的にデータ転送を確保 (最大遅延)] チェック ボックスを選択したままにしなければなりません。このモードでは、HDL コードに追加のバイパス レジスタが生成されます。
サンプル レートを減少させる場合、ブロックの [初期条件] パラメーターを使用できます。ダウンサンプリングする場合、このパラメーターはバイパス レジスタとして実装され、最初のクロック サイクルで入力から出力に渡されるため認識されません。初期値は、Rate Transition ブロックから作成された状態用に生成された HDL コードに伝播されます。
Constant ブロックの離散および有限サンプル時間の使用
ガイドライン ID
2.5.2
重大度
推奨
説明
既定では、Constant ブロックの [サンプル時間] パラメーターは inf
です。Constant ブロックを使用するときは、[サンプル時間] を -1
に設定します。設計で無限大のサンプル時間をもつ Constant ブロックを識別するには、Simulink® モデル ウィンドウで、[デバッグ] タブの [情報のオーバーレイ] 、 [サンプル時間] セクションで、[色] を選択します。
ストリーミング、共有、クロックレート パイプライン、遅延の均衡化など、レイテンシを追加または処理する最適化を設計で有効にして HDL コードを生成する場合、[サンプル時間] が inf
に設定された Constant ブロックのサンプル時間は、サンプル時間がテスト対象デバイス (DUT) 出力に伝播しなければ HDL Coder™ で解決されます。たとえば、次のモデルの DUT では、無限大のサンプル時間をもつ Constant ブロックと Ground ブロックが Product ブロックで固定のサンプル時間をもつ信号にマージされてから DUT 出力に送られているため、レイテンシを追加する最適化を使用した HDL コードを生成できます。[サンプル時間の凡例] では、無限大のサンプル時間はピンクで表示され、固定のサンプル時間は赤で表示されます。
Product ブロックの HDL ブロック プロパティ [OutputPipeline] を 3
にして HDL コードと生成モデルを生成すると、生成されたモデルから、無限大のサンプル時間が出力パイプライン遅延をもつ固定のサンプル時間に解決されてから適用され、他の信号パスに遅延の均衡化が適用されていることがわかります。
inf
のサンプル時間が DUT 出力に伝播するブロックの場合、次のいずれかの方法でブロックのサンプル時間を特定して -1
に変更できます。
プログラムでブロックのサンプル時間を
-1
に変更できるスクリプトを実行します。スクリプト例については、HDL ブロック パラメーターの特定とプログラムによる変更と表示を参照してください。HDL コード アドバイザーでチェック無限大および連続サンプル時間ソースをチェックを実行します。チェックの実行に失敗すると、無限のサンプル時間をもつ Constant ブロックなどのソースが表示されます。[設定の変更] を選択してサンプル時間を
-1
に変更するか、逆伝播により継承します。
Downsample ブロックのサンプル オフセットの動的な変更
ガイドライン ID
2.5.3
重大度
情報
説明
[サンプル オフセット] パラメーターを使用して、Downsample (DSP System Toolbox) ブロックのサンプル オフセットを調整できます。ただし、このブロック パラメーターを使用してオフセットを設定すると、シミュレーション中にサンプル オフセットを動的に変更できません。
Downsample ブロックのサンプル オフセットを動的に変更するには、[サンプル オフセット] パラメーターではなく、Simulink ブロックを使用して入力信号のサンプル オフセットを調整します。
次の図では、HDL Counter ブロックおよび Switch ブロックを使用して Downsample ブロックのサンプル オフセットを動的に変更するモデルを示します。このモデルでは、リセット信号をもつ HDL Counter ブロックを使用して、目的のダウンサンプリング周期で入力信号をラッチしています。カウンターのリセットのタイミングを変更してサンプル オフセットを調整します。このモデルでは、バイパス レジスタの生成を抑制するために、Delay ブロックが出力端子に接続されています。
Downsample ブロックを使用するための DSP System Toolbox ライセンスがない場合は、Downsample ブロックの代わりに Rate Transition ブロックを使用することもできます。