書き込み (メモリメソッド)

インストールパッケージ: FPGAモジュール

FPGAターゲットのメモリにデータを書き込みます。

このメソッドを実装するには、メモリメソッドノードを使用します。

詳細  

ブロックダイアグラム入力
ブロックダイアグラム出力

ブロックダイアグラム入力

パラメータ説明
メモリ入力FPGAメモリを指定します。 メモリ入力には、メモリ制御器メモリ定数VI定義メモリ構成ノード、その他のメモリメソッドノードを配線できます。
アドレスFPGAターゲットのメモリ内のデータの場所を指定します。 アドレスの有効範囲は、メモリプロパティダイアログボックスで指定した要求する要素数により異なります。 たとえば、要求する要素数を65536に指定すると、アドレスの有効範囲は0~65535になります。 アドレスがアドレスの範囲を超えると、メモリメソッドノードはエラーを返し、データを書き込みません。 アドレスがアドレスの範囲を超える場合にLabVIEWが通知するように設定するには、エラー端子を追加します。
データFPGAターゲットのメモリに書き込むデータです。 FPGA VIのみからデータに直接書き込むことができます。 FPGAターゲットのメモリ内のデータは、ホストVIから直接書き込むことができません。 ホストVIからデータにアクセスするには、制御器、表示器、またはDMA FIFOを使用する必要があります。 メモリ項目を初期化していない場合、データは未定義となります。
バイト有効メモリに対する書き込み時に、有効にするバイト位置を指定します。 最下位ビットは、入力データの最下位バイトに対応します。最下位から2番目のビットは、入力データの最下位から2番目のバイトに対応します。 デフォルトでは、全ビットが1の整数 (すべてのバイトが有効) になっています。バイト有効のデータ幅は、どのようなDRAMの種類でも十分な大きさになっています。 この端子を表示するには、メモリをDRAMとして構成し、ノードを右クリックしてプルダウンメニューからバイト有効を表示を選択します。 ターゲットのバイト単位のDRAM幅に関する情報は、ターゲットハードウェアのドキュメントを参照してください。
入力有効次の処理データポイントを受信したかどうかを示します。 先行ノードからこのノードにデータを渡すには、先行ノードの出力有効出力をこの入力に配線します。

このハンドシェイク端子を表示するには、メモリをDRAMとして構成します。

ブロックダイアグラム出力

パラメータ説明
メモリ出力メモリ入力が配線されている場合、メモリ入力を返します。 配線されていない場合は、メモリ出力はメモリメソッドノードで指定したFIFOを返します。
入力準備完了このノードが新しい入力データを受信できる状態になるとTRUEを返します。 この出力を先行ノードの出力準備完了入力に配線するには、フィードバックノードを使用します。
メモ あるサイクルでこの端子がFALSEを返した場合、次のサイクルで別のノードがこのノードに送信するデータはすべて破棄されます。 LabVIEWは、次のサイクルで入力有効端子がTRUEである場合もこのデータを破棄します。
この端子を表示するには、メモリをDRAMとして構成します。

書き込み (メモリメソッド)の詳細

ブロックメモリまたはLUTを使用してメモリを実装する場合は、このメソッドを読み取りメソッドと一緒に使用します。 DRAMを使用してメモリを実装する場合は、このメソッドをデータを要求およびデータを取得メソッドと一緒に使用します。

メモ 対応する「データを要求」および「データを取得」メソッドノードは、異なるクロック領域に配置することができます。

シングルサイクルタイミングループに関する注意事項

  • このノードをシングルサイクルタイミングループ内で使用する場合は、インタフェースページで書き込みオプションをリクエスタが複数の場合のみアービトレートまたはアービトレーションなしに設定する必要があります。このため、このノードは1つのメモリ項目に対してFPGA VI内で一度しか使用できません。
    メモ 複数のアクセサを持つメモリ項目が入ったFPGAアプリケーションをシミュレーションしたときに、アービトレーションなしオプションを選択すると、不正な動作が引き起こされる場合があります。 たとえば、アプリケーションに複数のライタが含まれている場合、シミュレーションの間、それぞれのライタで指定されたメモリアドレスの更新が行われる可能性があります。 さらに、アプリケーションに複数のリーダが含まれている場合、シミュレーションの間、それぞれのリーダで指定されたメモリアドレスの評価が行われる可能性があります。
  • メモリメソッドノードの実行には、1回のクロックサイクルが必要です。
  • ターゲット指定またはVI定義メモリ項目を使用して、ブロックメモリを使用してメモリ項目を実装した場合のみ、データの保存と異なるクロック領域からそのデータにアクセスすることができます。 この実装では、各メモリ項目で1つの書き込みノードと1つの読み取りノードのみを使用できます。
    注意 複数のクロック領域にブロックメモリを使用して実装されたメモリ項目を使用する場合は、同じアドレスで同時に読み取りと書き込みを実行することが可能です。 それを実行すると、不正確なデータを読み取る可能性があります。
  • メモリがDRAMである場合、シングルサイクルタイミングループでこのメソッドを使用する必要があります。


この記事は役に立ちましたか。

役に立たなかった