マルチレート モデルのタイミング コントローラー
マルチレート モデルは、複数のサンプル レートで実行されるブロックを含むモデルです。さまざまなサンプル レートで動作するブロックを追加するか、シングル レートのモデルに対してストリーミング、共有、クロックレート パイプラインなどの HDL 最適化を有効にすることで、マルチレート モデルを作成できます。マルチレート モデルで、HDL Coder™ は、モデルのタイミング信号を定義する "タイミング コントローラー" エンティティを作成します。これらのタイミング信号は、クロック、リセット、外部クロック イネーブル入力およびクロック イネーブル出力などの信号です。タイミング コントローラーは、1 つ以上のカウンターを使用して単一の基本クロックから必要なレートを生成し、複数のクロック イネーブルを作成します。
単一クロック モードでは、以下のようになります。
マルチレート モデルがある場合、HDL Coder はタイミング コントローラーを生成します。
基本クロック レートはモデル内で最も速いレートです。
マルチレート モデルから生成される HDL コードでは DUT のベース速度に対応する単一の基本クロック入力が使用されます。
複数クロック モードでは、以下のようになります。
DUT にクロック デバイダーが必要なダウンサンプリング演算が含まれている場合、HDL Coder はタイミング コントローラーを生成します。タイミング コントローラーの出力はクロック イネーブル信号で、実行されるレートはタイミング コントローラーの基本クロックより整数倍遅くなります。
複数クロック モードでは、基本クロック レートはありません。
マルチレート モデルから生成された HDL コードでは DUT 内のレートごとに 1 つのクロック入力が使用されます。複数クロック モードで生成されるクロック デバイダーの数は、さまざまなレート全体に対する一意のダウンサンプリング要求の数によって決まります。
タイミング コントローラーの命名
タイミング コントローラーは、必要なレートと位相の情報が含まれる一連のクロック イネーブルを生成して、各クロック イネーブルの名前で設計のクロックを制御します。クロック イネーブルの命名には、モデルの基本レートに対するクロック イネーブルが示されます。モデルの基本レートは DUT にない可能性があります。この命名規則により、生成された HDL コードにサンプル レートの色をマッピングする際の命名が一貫します。サンプル レートの色の詳細については、サンプル時間情報の表示を参照してください。
たとえば、モデルの基本レートが DUT 内で使用されない場合、モデルの基本レートがモデル内で最速レートであるため、タイミング コントローラーのクロックは enb
ではなく enb_1_2_0
とラベルが付けられます。この場合、enb_1_2_0
は、モデルの基本レートが DUT ベース速度の 2 倍であることを意味します。
タイミング コントローラー エンティティ定義はそれぞれ個別のコード ファイルに書き込まれます。タイミング コントローラー ファイルおよびエンティティの名前は、DUT の名前から派生します。タイミング コントローラーの名前を形成するには、HDL Coder で DUT の名前に TimingControllerPostfix
プロパティの値を付加します。たとえば、DUT の名前が my_test
の場合、既定のケースでは HDL Coder は TimingControllerPostfix
値 _tc
を追加してタイミング コントローラーの名前を my_test_tc
とします。