Simple Dual Port RAM
(削除予定) 単一の出力端子をもつ Dual Port RAM
Simple Dual Port RAM は将来のリリースで削除される予定です。代わりに Simple Dual Port RAM System を使用してください。

ライブラリ:
HDL Coder /
HDL RAMs
説明
Simple Dual Port RAM ブロックは、読み取りと書き込みの同時処理をサポートし、読み取りデータ用の単一の出力端子をもつ RAM をモデル化します。このブロックを使用して、ほとんどの FPGA で RAM にマッピングされる HDL コードを生成できます。
Simple Dual Port RAM は Dual Port RAM に似ていますが、Dual Port RAM には書き込みデータ出力端子と読み取りデータ出力端子の両方があります。
書き込み中の読み取り動作
書き込み操作中に同じアドレスで読み取り操作が発生すると、出力のデータは古いデータになります。
端子
入力
wr_en が true の場合に RAM のメモリ位置に書き込むデータ。データは幅とデータ型を入力信号から継承します。wr_din は double、single、integer、または fixed-point (fi) オブジェクトに、かつ、実数または複素数にできます。
データ型: スカラーの固定小数点、整数、または複素数
データ型: int8 | int16 | int32 | int64 | 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
出力
読み取りアドレス 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、ブロック RAM、または UltraRAM メモリにマッピングするかどうかを指定します。RAMDirectiveも参照してください。 |
このブロックは複素信号のコード生成をサポートしています。
Simple Dual Port RAM System ブロックの実装は hdl.RAM System object™ を使用する MATLAB System ブロックを使用します。このブロックを使用して読み取りおよび書き込みの同時処理を実行します。これには、データを読み取る 1 つの出力端子があります。ブロックの [ブロック パラメーター] ダイアログ ボックスでは、RAM の初期値を指定できます。
このブロックを使用して、モデル内の Simple Dual Port RAM ブロックを置き換えます。このブロックをモデル内で使用すると、より高速なシミュレーション結果が得られます。
バージョン履歴
R2014a で導入Simple Dual Port RAM は非推奨になりました。このブロックは将来のリリースで削除される予定です。代わりに、Simple Dual Port RAM System ブロックを使用してください。詳細については、Simple 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)