HDL Counter
フリーランまたはカウント制限ハードウェア カウンター
ライブラリ:
HDL Coder /
Sources
説明
HDL Counter ブロックは、符号付き整数と符号なし整数および固定小数点のデータ型をサポートするフリーラン、カウント制限、またはモジュロ ハードウェア カウンターをモデル化します。このカウンターは、現在のサンプル時間に対する値を出力します。シミュレーション中、このブロックはオーバーフロー時のラップが原因で発生する警告およびエラーを報告しません。これらの警告を報告するには、Simulink.restoreDiagnostic
を参照してください。
既定の設定では、カウンターに入力端子はありません。カウンターは、[カウンター タイプ]、[カウント終了値]、および [語長] に基づいて、初期値からしきい値までカウント アップします。カウンターの出力データ型は、[カウンター出力データ]、[語長]、および [小数部の長さ] に依存します。
端子
入力
rst — ローカル リセット端子
スカラー
High のときにカウント値をリセットするカウンターのローカル リセット端子。
依存関係
この端子を有効にするには、[ローカル リセット端子] を設定します。
データ型: Boolean
load — 読み込み端子
スカラー
High のときにカウンターを読み込み値 load_val
に設定する読み込み端子。
依存関係
この端子を有効にするには、[読み込み端子] を設定します。
データ型: Boolean
load_val — 読み込み端子の値
スカラー
読み込み端子に High 入力が与えられたときに、カウント値の設定に読み込むデータ値。
依存関係
この端子を有効にするには、[読み込み端子] を設定します。
データ型: Boolean
enb — カウント イネーブル端子
スカラー
カウンターが前の値からカウントするかどうかを指定するイネーブル信号。この信号が High のとき、カウンターのカウントは方向に応じてアップまたはダウンを続けます。この信号が Low のとき、カウンターは直前の値を保持します。
依存関係
この端子を有効にするには、[カウント イネーブル端子] を設定します。
データ型: Boolean
dir — カウント方向端子
スカラー
カウント アップまたはカウント ダウンを指定するカウント方向。この端子は、[ステップ値] と連携し、カウント方向を決定します。
1
:この値は既定値で、加算カウンターとなります。[ステップ値] は現在のカウンター値に加算され、次の値が計算されます。0
:この値で減算カウンターとなります。[ステップ値] は現在のカウンター値から減算され、次の値が計算されます。
依存関係
この端子を有効にするには、[カウント方向端子] を設定します。
データ型: Boolean
出力
count — カウンター値
スカラー
これはカウンター値です。既定では、入力端子を有効にしていない場合、カウンターは [カウンター タイプ]、[カウント終了値]、および [語長] に基づいて決まる値までカウント アップします。
データ型: int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
count_hit — カウンター限度のインジケーター
スカラー
カウンター限度のインジケーター。boolean スカラーとして返されます。
1
: カウンターが限度に達したことを示しています。0
: カウンターが限度に達していなかったことを示しています。
依存関係
この端子を有効にするには、[カウント ヒット出力端子] パラメーターを選択します。
データ型: Boolean
パラメーター
カウンター タイプ — カウンターの動作
Free running
(既定値) | Count limited
| Modulo
フリー ラン、カウント制限、またはモジュールのハードウェア カウンターをモデル化するかを決定するカウンター動作。
Free running
(既定の設定): カウンターは、リセットされるまで [ステップ値] ずつインクリメントまたはデクリメントを続けます。Count limited
: カウンターは、[カウント終了値] と厳密に等しくなるまで [ステップ値] ずつインクリメントまたはデクリメントされます。カウント値が [カウント終了値] と厳密に等しくならないような [ステップ値] の値の場合、語長によって決まるしきい値までカウントが続きます。Modulo
: カウンターは、[カウント終了値] に達するまで [ステップ値] ずつインクリメントまたはデクリメントされます。カウント値が [カウント終了値] と厳密に等しくならないような [ステップ値] の値の場合、ラッピングしたステップ値によって決まる値にカウンターがラップされます。
プログラムでの使用
ブロック パラメーター: CountType |
型: 文字ベクトル |
値: 'Free running' | 'Count limited' | 'Modulo' |
既定の設定: 'Free running' |
初期値 — リセット後のカウンター値
0
(既定値)
カウンターをリセットする値。既定値は 0
です。
プログラムでの使用
ブロック パラメーター: CountInit |
型: 文字ベクトル |
値: 0 以上の整数 |
既定の設定: '0' |
ステップ値 — カウントのステップ値
1
(既定値)
サンプル時間ごとにカウンターに加算される値。既定値は 1
です。
プログラムでの使用
ブロック パラメーター: CountStep |
型: 文字ベクトル |
値: 0 以上の整数 |
既定の設定: '1' |
カウント終了値 — カウントのしきい値
25
(既定値)
[Count limited]
カウンターを使用している場合、カウントが [カウント終了値] に厳密に等しくなると、カウントは [初期値] からリスタートします。カウント値が [カウント終了値] を超えても、カウンターは [語長] に依存するしきい値までカウントを続けます。既定の設定は 25
です。
[Modulo]
カウンターを使用している場合、カウントが [カウント終了値] に達すると、カウントはラッピングしたステップ値によって決まる値からリスタートします。
依存関係
このパラメーターを有効にするには、[カウンター タイプ]
を [Count limited] または [Modulo]
に設定します。
プログラムでの使用
ブロック パラメーター: CountMax |
型: 文字ベクトル |
値: 0 以上の整数 |
既定の設定: '25' |
カウント開始値 — カウント元の値の基準
Initial value
(既定値) | Specify
[Count limited]
カウンターまたは [Free running]
カウンターを使用する場合、ロールオーバー後の開始値を設定するパラメーターを指定します。[Modulo]
カウンターを使用する場合、カウンターは、カウント元の値とは異なるラッピングしたステップ値にロールオーバーできます。[Specify]
に設定した場合、[カウント開始値] パラメーターがロールオーバー後の開始値となります。既定値は [Initial value]
です。
プログラムでの使用
ブロック パラメーター: CountFromType |
型: 文字ベクトル |
値: 'Initial value' | 'Specify' |
既定の設定: 'Initial value' |
カウント開始値 — カウント元の初期値
0
(既定値)
[カウント開始] が [Specify]
に設定されている場合、ロールオーバー後のカウンター値。既定値は 0 です。
プログラムでの使用
ブロック パラメーター: CountFrom |
型: 文字ベクトル |
値: 'Initial value' | 'Specify' |
既定の設定: 'Initial value' |
ローカル リセット端子 — カウンターをリセットするローカル端子
off
(既定値) | on
選択した場合、ローカルのリセット端子 rst
を作成します。
プログラムでの使用
ブロック パラメーター: CountResetPort |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
読み込み端子 — 読み込み値の端子
off
(既定値) | on
選択した場合、読み込みデータ端子 load_val
および読み込みトリガー端子 load
を作成します。
プログラムでの使用
ブロック パラメーター: CountLoadPort |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
カウント イネーブル端子 — カウントを有効にする端子
off
(既定値) | on
選択した場合、カウント イネーブル端子 enb
を作成します。
プログラムでの使用
ブロック パラメーター: CountEnbPort |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
カウント方向端子 — カウント方向の端子
off
(既定値) | on
選択した場合、カウント方向端子 dir
を作成します。
このパラメーターを有効にすると、[カウント ヒット出力端子] パラメーターが無効になります。
プログラムでの使用
ブロック パラメーター: CountDirPort |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
カウント ヒット出力端子 — カウント制限の端子
off
(既定値) | on
[count_hit] 出力端子を有効にするには、このパラメーターを選択します。
このパラメーターを有効にすると、[カウント方向端子] パラメーターがクリアされます。
プログラムでの使用
ブロック パラメーター: CountHitOutputPort |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
カウンター出力データ — 出力データ型の符号属性
Unsigned
(既定値) | Signed
出力データ型の符号属性。既定値は [Unsigned]
です。
プログラムでの使用
ブロック パラメーター: CountDataType |
型: 文字ベクトル |
値: 'Unsigned' | 'Signed' |
既定の設定: 'off' |
語長 — カウンターの語長
8
(既定値)
整数カウンターの場合、符号ビットを含むビット幅。固定小数点データ型カウンターの場合、語長。最小値は、出力データ型が [Unsigned]
の場合 1
、[Signed]
の場合 2
となります。最大値は 125
です。既定の設定は 8
です。
プログラムでの使用
ブロック パラメーター: CountWordLen |
型: 文字ベクトル |
値: 1 以上の整数 |
既定の設定: '8' |
小数部の長さ — カウンターの小数部の長さ
0
(既定値)
固定小数点データ型の小数部の長さ。既定の設定は 0
です。
プログラムでの使用
ブロック パラメーター: CountFracLen |
型: 文字ベクトル |
値: 0 以上の整数 |
既定の設定: '0' |
サンプル時間 — カウンター サンプル時間
1
(既定値)
サンプル時間。既定の設定は 1
です。次のいずれかのパラメーターが選択されている場合、このパラメーターは使用できません。ブロックはサンプル時間を入力端子から継承します。
ローカル リセット端子
読み込み端子
カウント イネーブル端子
カウント方向端子
プログラムでの使用
ブロック パラメーター: CountSampTime |
型: 文字ベクトル |
値: 1 以上の整数 |
既定の設定: '1' |
アルゴリズム
フリー ラン カウンターの動作
既定では、制御端子を有効にしていない場合、カウンターはフリー ラン モードで 0 から上向きにカウントします。このモードでは、カウンターはしきい値に達するまで、各サンプル時間単位で 1 ずつ段階的にインクリメントされます。カウントのしきい値は 2^(Word length) - 1
として計算されます。カウント値に到達すると、カウンターは初期値にリセットされます。
カウンターの動作は、指定する制御端子によって決まります。次の表は、制御信号の優先順位と、制御信号に対してカウンター値が更新される方法を示しています。
ローカル リセット、rst | 読み込みトリガー、load | カウント イネーブル、enb | カウント方向、dir | カウンターの次の値 |
---|---|---|---|---|
1 | – | – | – | 初期値 |
0 | 1 | – | – | load_val 値 |
0 | 0 | 0 | – | 現在の値 |
0 | 0 | 1 | 1 | 現在の値 + ステップ値 |
0 | 0 | 1 | 0 | 現在の値 - ステップ値 |
[ステップ値] パラメーターおよびオプションのカウント方向端子 dir
は連携して、実際のカウント方向を決定します。
dir 信号値 | ステップ値の符号 | 実際のカウント方向 |
---|---|---|
1 | + (正) | 上 |
1 | - (負) | 下 |
0 | + (正) | 下 |
0 | - (負) | 上 |
この図は、フリー ランの動作モードを示しています。この例では、カウンターの [語長] は 4
です。[初期値] は 2
、読み込み値は 7
、[ステップ値] は 1
です。[Enb] 信号が High の場合、カウンターは 1 ステップずつインクリメントされます。[Rst] 信号が High になるとき、カウンターは初期値 2
にリセットされます。[Dir] 端子が Low になると、カウンターはタイム ステップ 11s
で 4
から 3
にデクリメントされます。カウント値は、[Load] 端子が High になるときに読み込み値に関連付けられます。
カウント制限モードおよび剰余演算モード
[カウンター タイプ] パラメーターを使用して、カウンターの動作を指定できます。カウンターの [Count limited]
モードは、カウンターが [カウント終了値] に正確に達したとき、カウントを初期値にラップします。カウンターが [カウント終了値] に正確には達しない場合、この値を超える場合があります。加算カウンターの場合、カウント値は 2^(Word length) - 1
として計算されるしきい値に到達します。減算カウンターの場合、カウント値は [初期値] に到達します。このしきい値に到達するか、厳密に一致したとき、カウンターはラッピングしたステップ値で決まる値にリセットされます。
カウンターの [Modulo]
モードは、[カウント終了値] に到達するか、厳密に一致したとき、カウントをラップします。初期値から再スタートする代わりに、カウンターはラッピングしたステップ値で決まる値に戻ります。加算カウンターの場合、ラッピングしたステップ値は "[step value] - ([count to value] + 1) + [count from value]" として計算されます。減算カウンターの場合、ラッピングしたステップ値は "[count from value] - [step value] + ([count to value] + 1)" として計算されます。
この図は、[Count limited]
および [Modulo]
の動作モードを示しています。この例では、カウンターの [語長] は 4
、[初期値] は 2
、[ステップ値] は 3
、[カウント終了値] は 12
です。
[Count limited]
モードでは、カウント値は 11
に到達し、[カウント終了値] を超えて 14
に達します。しきい値が 15 (2^4-1)
であるため、カウンターはラッピングしたステップ値で決まる値にリセットされます。カウント ダウンしているとき、カウンターは [初期値] を超えて 0 に到達することがあります。そのときは、ラッピングしたステップ値で決まる値にリセットされます。
[Modulo]
モードでは、カウント値は 11
に到達すると、カウンターはラッピングしたステップ値で決まる値にリセットされます。ラッピングしたステップ値は 3 - (12 + 1) + 2 = -8
です。したがって、カウンターは値 3
(11 + (-8)
) にリセットされます。カウント ダウンしているとき、カウント値が 4
に到達すると、カウンターはラッピングしたステップ値で決まる値にリセットされます。ラッピングしたステップ値は 2 - 3 + (12 + 1) = 12
です。したがって、カウンターは値 12
にリセットされます。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための VHDL、Verilog および SystemVerilog のコードを生成します。
HDL Coder™ には、HDL の実装および合成されたロジックに影響する追加の構成オプションがあります。
このブロックには 1 つの既定の HDL アーキテクチャがあります。
一般 | |
---|---|
ConstrainedOutputPipeline | 既存の遅延を設計内で移動することによって出力に配置するレジスタの数。分散型パイプラインではこれらのレジスタは再分散されません。既定の設定は |
InputPipeline | 生成されたコードに挿入する入力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
OutputPipeline | 生成されたコードに挿入する出力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
HDL Counter への入力信号のビット幅がデータ型の制限を超えた場合、生成される HDL コードは正しくないシミュレーション結果を出力する可能性があります。より大きなビット幅を格納するには、より大きなデータ型を使用します。
ブロックではベクトルはサポートされません。ブロックの入力および出力には、スカラー型のみがサポートされます。
[Modulo]
カウンター モードで使用する読み込み値は、シミュレーションの不一致を回避するために、[カウント開始] および [カウント終了値] の範囲内である必要があります。
バージョン履歴
R2014a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)