Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

RAM ブロックや HDL Operations ライブラリのブロックを設計する際の考慮事項

設計をモデル化する際に RAM ブロックや [HDL Operations] ライブラリのブロックを使用する方法については、以下のガイドラインに従います。

各ガイドラインに準拠要件のレベルを示す重大度レベルが割り当てられています。詳細については、HDL モデリング ガイドラインの重大度レベルを参照してください。

RAM ブロックのアクセスに関する考慮事項

ガイドライン ID

2.1.1

重大度

推奨

説明

[HDL RAMs] ブロック ライブラリには、7 つの異なる RAM ブロックと HDL FIFO ブロックがあります。ブロック名の一部に System という用語が含まれる RAM ブロックが表示される場合 (Single Port RAM System など)、名前の一部に System が含まれない (Single Port RAM など) 等価のブロックではなく、このブロックを使用することをお勧めします。ブロックの実装は hdl.RAM System object™ に基づいているため、これらのブロックの名前の一部には System が含まれます。System ブロックではベクトル入力がサポートされ、Simulink® モデルで使用する場合にはるかに高速なシミュレーションを実現します。

これらのブロックを使用する場合は、入力サンプル時間と出力サンプル時間が同じであることを確認してください。次の表に、使用可能なさまざまな RAM ブロックとその目的を示します。表の各行は、前の行の RAM ブロックよりも回路サイズが大きい RAM ブロックを示しています。これらのブロックに対して生成された HDL コードはほとんどの FPGA で RAM にマッピングされます。

ブロック名推奨される使用方法
Single Port RAM System

このブロックを使用して、モデル内の Single Port RAM ブロックを置き換えます。このブロックをモデル内で使用すると、より高速なシミュレーション結果が得られます。

ブロックの実装は hdl.RAM System object を使用する MATLAB System ブロックを使用します。このブロックを使用して読み取りおよび書き込みの順次処理を実行します。ブロックの [ブロック パラメーター] ダイアログ ボックスでは、RAM の初期値を指定できます。さまざまなアドレスに対する読み取りおよび書き込みの同時処理を実行するには、Simple Dual Port RAM System ブロックまたは Dual Port RAM System を代わりに使用します。

ブロックでは boolean 入力はサポートされません。ブロックへの入力については、boolean 型を ufix1 にキャストします。

Simple Dual Port RAM System

このブロックを使用して、モデル内の Simple Dual Port RAM ブロックを置き換えます。このブロックをモデル内で使用すると、より高速なシミュレーション結果が得られます。

ブロックの実装は hdl.RAM System object を使用する MATLAB System ブロックを使用します。このブロックを使用して読み取りおよび書き込みの同時処理を実行します。これには、データを読み取る 1 つの出力端子があります。ブロックの [ブロック パラメーター] ダイアログ ボックスでは、RAM の初期値を指定できます。

ブロックでは boolean 入力はサポートされません。ブロックへの入力については、boolean 型を ufix1 にキャストします。

Dual Port RAM System

このブロックを使用して、モデル内の Dual Port RAM ブロックを置き換えます。このブロックをモデル内で使用すると、より高速なシミュレーション結果が得られます。

ブロックの実装は hdl.RAM System object を使用する MATLAB System ブロックを使用します。このブロックを使用して読み取りおよび書き込みの同時処理を実行します。これには、読み取りデータ出力端子と書き込みデータ出力端子があります。ブロックの [ブロック パラメーター] ダイアログ ボックスでは、RAM の初期値を指定できます。書き込みデータ出力端子を使用しないで RAM 推定の精度を向上するには、代わりに Simple Dual Port RAM System ブロックを使用します。

ブロックでは boolean 入力はサポートされません。ブロックへの入力については、boolean 型を ufix1 にキャストします。

Dual Rate Dual Port RAM

このブロックには等価の System object ベース実装がありません。

このブロックを使用し、異なるクロック レートで動作する 2 つの異なるアドレスに対して読み取りおよび書き込みの同時処理を実行します。RAM の同じアドレスに対して同時アクセスを実行することはできません。

複数のクロック レートで RAM ポートを実行するには、[クロックの入力]Multiple に設定します。1 クロック サイクルでこの RAM に 2 回アクセスできます。

HDL FIFO

HDL FIFO ブロックは、先入れ先出し (FIFO) レジスタにサンプルのシーケンスを保存します。

入力 (InPush) および出力 (OutPop) をさまざまなサンプル時間で実行できます。出力サンプル時間と入力サンプル時間の比率を正の整数または 1/N (N が正の整数) として指定します。以下に例を示します。

  • 比率を 2 として指定すると、出力サンプル時間は入力サンプル時間の 2 倍になります。出力は入力よりも実行が遅くなります。

  • 比率を 1/2 として指定すると、出力サンプル時間は入力サンプル時間の半分になります。出力は入力よりも実行が速くなります。

信号 FullEmptyNum はモデル内の最速レートで実行されます。入力で FIFO の制御出力を使用する場合、レート変換を実行しなければならない可能性があります。

FIFO ブロックの入力レートと出力レートは互いに同期しています。HDL FIFO ブロックを使用する非同期の FIFO モデリングの例については、モデル hdlcoder_asynchronous_fifo を開いてください。

open_system('hdlcoder_asynchronous_fifo')

シリアルからパラレルへの変換

ガイドライン ID

2.1.2

重大度

情報

説明

Serializer1D ブロックと Deserializer1D ブロックを使用してシリアルからパラレルおよびパラレルからシリアルへの変換を実行できます。

参考

関数

関連する例

詳細