Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

HDL コード生成のための Triggered Subsystem の使用

Triggered Subsystem ブロックは、制御信号がトリガー値をもつたびに実行される Subsystem ブロックです。ブロックの詳細については、Triggered Subsystem を参照してください。

ベスト プラクティス

HDL コード生成をターゲットにしているモデルで Triggered Subsystem を使用するときは、次のことを検討します。

  • 合成結果を Simulink® 結果と一致せさるために、FPGA 上で (同期クロックをもつ) 登録済みのロジックを使用してトリガー端子を駆動する。

  • Triggered Subsystem の出力信号に単位遅延を加えることが推奨される。こうすることで、コード ジェネレーターによって余分なバイパス レジスタが HDL コード内に挿入されることを回避できます。

  • Triggered Subsystem を使用すると、合成結果に次のように影響する可能性がある。

    • システム クロックの速度がわずかに低下する場合がある。

    • Triggered Subsystem インスタンスの数とサブシステムあたりの出力端子の数に対応して、生成コードでより多くのリソースが使用される。

Signal Builder ブロックの使用

出力を Signal Builder ブロックから Triggered Subsystem に接続するときに、Rate Transition ブロックを使用しなければならない場合があります。Triggered Subsystem のすべての端子を同じレートで実行するには、次を行います。

  • トリガー ソースが Signal Builder ブロックであるが、その他の Triggered Subsystem の入力が他のソースから取り込まれている場合、トリガー入力の前に Rate Transition ブロックを信号パスに挿入する。

  • すべての入力 (トリガーを含む) が Signal Builder ブロックから取り込まれている場合は、レートが同じであるため、特別なアクションは必要ない。

トリガーをクロックとして使用

Triggered Subsystem 内でトリガーをクロックとして使用すると、生成コードにおいて設計を異なるクロック領域に分割できます。[コンフィギュレーション パラメーター] ダイアログ ボックスの [クロック エッジ] 設定が、Triggered Subsystem 内の Trigger ブロックの [トリガー タイプ] と一致していることを確認します。

たとえば、次のモデル化が可能になります。

  • 同じレート、異なる位相で動作するクロックをもつ設計。

  • 外部または内部のクロック デバイダーによって駆動される複数のクロック領域。

  • レートが互いの整数倍ではない複数のクロックで駆動される複数のクロック領域。

  • 内部生成されるクロック。

  • 低電力設計のクロック ゲート。

メモ

Triggered Subsystem のクロックとしてトリガーを使用すると、テストベンチのシミュレーション中に 1 サイクルのタイミングの不一致が生じる場合があります。

必要条件

Triggered Subsystem のクロックとしてトリガーを使用する場合、Triggered Subsystem の各入力または出力データ信号は、サブシステムのすぐ外側とすぐ内側に遅延をもっていなければなりません。これらの遅延は、異なるレートで動作している複数の領域間の同期インターフェイスの役割を果たします。

トリガーをクロックとして指定する

  • [HDL コード生成][グローバル設定][最適化] タブで、[トリガー信号をクロックとして使用] を選択します。

  • makehdl または hdlset_param を使用して TriggerAsClock プロパティを設定します。たとえば、トリガー信号をモデル myModel 内の DUT サブシステム myDUT 内にある Triggered Subsystem のクロックとして使用する HDL コードを生成するには、次のように入力します。

    makehdl ('myModel/myDUT','TriggerAsClock','on')

制限

HDL Coder™ は、以下の条件を満たす Triggered Subsystem の HDL コード生成をサポートします。

  • Triggered Subsystem が DUT ではない。

  • サブシステムのトリガー "および" 有効化が "どちらも" 行われていない。

  • トリガー信号がスカラーである。

  • Triggered Subsystem の出力に初期値 0 がある。

  • Triggered Subsystem のすべての入出力 (トリガー信号を含む) が同じレートで実行される。

  • Trigger ブロックの [出力端子の表示] パラメーターが [オフ] に設定されている。

  • Triggered Subsystem 内の Inport ブロックでは [外部信号を遅延して入力をラッチ] チェック ボックスは選択されていない。

  • DUT に以下のブロックが含まれている場合、RAMArchitectureWithClockEnable に設定されている。

    • Dual Port RAM

    • Simple Dual Port RAM

    • Single Port RAM

  • Triggered Subsystem に以下のブロックが含まれていない。

    • Discrete-Time Integrator

    • CIC Decimation

    • CIC Interpolation

    • FIR Decimation

    • FIR Interpolation

    • Downsample

    • Upsample

    • HDL Verifier™ の HDL Cosimulation ブロック

    • Rate Transition

    • Pixel Stream FIFO (Vision HDL Toolbox™)

    • PN Sequence Generator ([トリガー信号をクロックとして使用] オプションが選択されている場合)