同期または非同期のブラック ボックス モジュールをインポートするには、そのモジュールのクロッキングに関する Model Composer 情報をコンフィギュレーション M 関数に通知する必要があります。Model Composer では、クロックおよびクロック イネーブルはほかのポート タイプとは異なる方法で処理されます。インポートされたモジュールのクロックポートには、常に対応するクロック イネーブル ポートが必要です (その逆も同様)。つまり、クロックとクロック イネーブルはペアで定義する必要があり、インポートされたモジュールでペアとして存在する必要があります。これは、同期クロックが 1 つのデザインでも複数の独立クロックを持つデザインでも同じです。
SysgenBlockDescriptor
には addClkCEPair
というメソッドがあり、クロック サブシステム ドメインを使用してクロック、クロック イネーブル、およびクロック周期を定義するのに使用できます。クロック ドメイン情報は、同期シングル クロック デザインには不要です。
最初のパラメーターは、モジュールに表示されるクロック ポートの名前を定義します。2 番目のパラメーターは、モジュールに表示されるクロック イネーブル ポートの名前を定義します。
クロックとクロック イネーブルのペアのポート名は、次の命名規則に従う必要があります。
- クロック ポートには
clk
という文字列を含めます。 - クロック イネーブル ポートには
ce
という文字列を含めます。 -
clk
およびce
以外の文字列を同じにします (例:my_clk_1
とmy_ce_1
)。
3 番目のパラメーターは、クロックとクロック イネーブル ポートのレートの関係を定義します。このレート パラメーターは、 Simulink® サンプル レートではなく、クロックのサンプル周期と必要なクロック イネーブルのサンプル周期の関係を Model Composer に示すものです。レート パラメーターの値は、クロック レートとそれに対応するクロック イネーブル レートの比を定義する整数値です。
複数の独立したクロックを持つデザインでは、4 番目および 5 番目のパラメーターは必須です。
4 番目のパラメーターは、クロックとクロック イネーブルのペアをグランドに接続するかどうかをブール値で定義します。true
に設定すると、クロックおよびクロック イネーブルの両方がシミュレーション中にグランドに接続されます。false に接続すると、クロックおよびクロック イネーブルのレートが変わります。
5 番目のパラメーターは、クロック/クロック イネーブルのペアのクロック周期を定義します。複数の独立クロックを持つデザインでは、クロック周期を設定するのに、ブラック ボックス SysgenPortDescriptor
の clockDomain
プロパティを使用する必要があります。
例:
rate_data = this_block.port('<port_name>').rate;
clkDomain_data = this_block.port(<port_name>).clockDomain;
this_block.addClkCEPair('clk',ce',rate_data, false, clkDomain_data);