レート変更ブロックと 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
です。inf
のサンプル時間をもつ Constant ブロックを設計の他のブロックに接続すると、速度と面積の最適化が妨げられます。リタイミング、共有およびストリーミングなどの最適化では、速度および設計の面積を改善するためにクロック レート情報が使用されます。
Constant ブロックを使用して、ブロックのサンプル時間を -1
に設定します。設計で無限大のサンプル時間をもつ Constant ブロックを識別するには、Simulink® モデル ウィンドウで、[デバッグ] タブの [情報のオーバーレイ] 、 [サンプル時間] セクションで、[色] を選択します。[サンプル時間の凡例] に、サンプル時間が Inf
の Constant ブロックが表示されます。
次の方法のいずれかを使用して、すべての Constant ブロックを特定してサンプル時間を -1
に変更できます。
プログラムでブロックのサンプル時間を
-1
に変更できるスクリプトを実行します。スクリプト例については、HDL ブロック パラメーターの特定とプログラムによる変更と表示を参照してください。HDL コード アドバイザーでチェック無限大および連続サンプル時間ソースをチェックを実行します。チェックの実行に失敗すると、無限のサンプル時間をもつ Constant ブロックなどのソースが表示されます。[設定の変更] を選択してサンプル時間を
-1
に変更するか、逆伝播により継承します。