このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Dual Port RAM
(削除予定) 2 つの出力端子をもつ Dual Port RAM
Dual Port RAM は将来のリリースで削除される予定です。代わりに Dual Port RAM System を使用してください。

ライブラリ:
HDL Coder /
HDL RAMs
説明
Dual Port RAM ブロックは、読み取りと書き込みの同時処理をサポートし、読み取りデータ出力端子および書き込みデータ出力端子をもつ RAM をモデル化します。このブロックを使用して、ほとんどの FPGA で RAM にマッピングされる HDL コードを生成できます。
書き込み出力データ wr_dout
を使用する必要がなければ、Simple Dual Port RAM ブロックを使用することで、合成ツールでの RAM 推定の精度を向上できます。
書き込み中の読み取り動作
書き込み中は、Dual Port RAM ブロックの書き込み端子 (wr_dout
) の出力に新しいデータが現れます。書き込み操作と同時に同じアドレスで読み取り操作が発生すると、古いデータが読み取り出力端子 (rd_dout
) に現れます。
端子
入力
wr_en
が true の場合に RAM のメモリ位置に書き込むデータ。データは幅とデータ型を入力信号から継承します。wr_din
は double
、single
、integer
、または fixed-point (fi)
オブジェクトに、および実数または複素数にできます。
データ型: スカラーの固定小数点、整数、または複素数
データ型: int8
| int16
| int32
| int64
| Boolean
| fixed point
wr_en
が true の場合にデータを書き込むアドレス。この値は fixed-point(fi)
または integer
のいずれかにでき、符号なしで小数部の長さが 0
でなければなりません。
データ型: uint8
| uint16
| uint32
| uint64
| fixed point
wr_en
が true の場合、RAM の指定したメモリ位置にデータが書き込まれます。
データ型: Boolean
データを読み取るアドレス。この値は fixed-point(fi)
または integer
のいずれかにでき、符号なしで小数部の長さが 0
でなければなりません。
データ型: uint8
| uint16
| uint32
| uint64
| fixed point
出力
書き込みアドレス wr_addr
からの出力データ。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
読み取りアドレス rd_addr
からの出力データ。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
パラメーター
最小ビット幅は 2、最大ビット幅は 29 です。
プログラムでの使用
ブロック パラメーター: ram_size |
型: string スカラー | 文字ベクトル |
値: 最小値は 2 、最大値は 29 |
既定の設定: '8' |
アルゴリズム
RAM ブロックに対して生成された HDL コードには以下が含まれます。
読み取りデータ出力に対する 1 クロック サイクルのレイテンシ。
リセット信号はなし。HDL コードにリセットが含まれていると、一部の合成ツールで RAM が推定されないためです。
RAM ブロックのコード生成では、blockname.ext
という個別のファイルが作成されます。blockname
は、RAM ブロックの名前から派生します。ext
は、ターゲット言語のファイル名拡張子です。
RAM を初期化するために生成されるコードはシミュレーションのみを目的としています。このコードは合成ツールでは無視してかまいません。
HDL ブロック プロパティ RAMArchitecture
を使用すると、サブシステム内のすべての RAM ブロックでクロック イネーブル ロジックの生成が有効化または抑制されます。RAMArchitecture
は次の値に設定できます。
WithClockEnable
(既定の設定): クロック イネーブル信号を含む HDL テンプレートを使用した RAM と空の RAM ラッパーが生成されます。WithoutClockEnable
:クロック イネーブルを搭載しない RAM とクロック イネーブル ロジックを実装する RAM ラッパーが生成されます。
一部の合成ツールでは、クロック イネーブルを含む RAM は推定されません。合成ツールでクロック イネーブルを含む RAM 構造がサポートされず、生成された HDL コードを FPGA RAM リソースにマッピングできない場合は、RAMArchitecture
を 'WithoutClockEnable'
に設定します。設計に応じてクロック イネーブルを搭載しない RAM を生成する方法の詳細については、「RAM および ROM 入門」の例を参照してください。例を開くには、コマンド プロンプトで次のように入力します。
openExample('hdlcoder/GettingStartedWithRAMAndROMInSimulinkExample')
RAM ブロックを使用して読み取りと書き込みの同時処理を実行する場合、ハードウェアにおける書き込み中の読み取り動作を確認してください。Simulink® における RAM ブロックの書き込み中の読み取り動作は、生成された HDL コードの動作と一致します。ただし、合成ツールが RAM 推定時に同じ動作に従わない場合、ハードウェアにおける書き込み中の読み取り動作が Simulink モデルまたは生成された HDL コードと異なる動作になります。
合成ツールでは、次の理由で、生成されたコードが RAM にマッピングされないことがあります。
RAM のサイズが小さい。合成ツールでは、パフォーマンスを高めるために、小さい RAM はレジスタを使用して実装されます。
クロック イネーブル信号がある。RAM ブロックでは、クロック イネーブルを搭載または搭載しない RAM の実装に示すように、クロック イネーブル信号の生成を抑制できます。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
HDL Coder™ には、HDL の実装および合成されたロジックに影響する追加の構成オプションがあります。
このブロックには 1 つの既定の HDL アーキテクチャがあります。
一般 | |
---|---|
ConstrainedOutputPipeline | 既存の遅延を設計内で移動することによって出力に配置するレジスタの数。分散型パイプラインではこれらのレジスタは再分散されません。既定の設定は |
InputPipeline | 生成されたコードに挿入する入力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
OutputPipeline | 生成されたコードに挿入する出力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
RAMDirective | 設計内の RAM ブロックをターゲット FPGA の RAM ブロックにマッピングするかどうかを指定します。Dual Port RAM ブロックは UltraRAM にマッピングできません。UltraRAM にマッピングするには、ブロックに固定読み取り動作が必要です。詳細については、RAMDirectiveを参照してください。 |
このブロックは複素信号のコード生成をサポートしています。
Dual Port RAM System ブロックの実装は hdl.RAM
System object™ を使用する MATLAB System ブロックを使用します。このブロックを使用して読み取りおよび書き込みの同時処理を実行します。これには、読み取りデータ出力端子と書き込みデータ出力端子があります。ブロックの [ブロック パラメーター] ダイアログ ボックスでは、RAM の初期値を指定できます。書き込みデータ出力端子を使用しないで RAM 推定の精度を向上するには、代わりに Simple Dual Port RAM System ブロックを使用します。
このブロックを使用して、モデル内の Dual Port RAM ブロックを置き換えます。このブロックをモデル内で使用すると、より高速なシミュレーション結果が得られます。
バージョン履歴
R2014a で導入Dual Port RAM は非推奨になりました。このブロックは将来のリリースで削除される予定です。代わりに、Dual Port RAM System ブロックを使用してください。詳細については、Dual Port RAM Systemを参照してください。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)