読み取り (メモリメソッド)

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

FPGAターゲットのメモリからデータを読み取ります。 メモリが読み取りメソッドと書き込みメソッドの両方に構成されている場合、このメソッドを書き込みメソッドと併用できます。 デュアルポート読み取りアクセスのためにメモリを構成する場合、ラベルにはこのノードがアクセスするインタフェースを示す[A]または[B]が含まれます。

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

詳細  

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

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

パラメータ説明
メモリ入力FPGAメモリを指定します。 メモリ入力には、メモリ制御器メモリ定数VI定義メモリ構成ノード、その他のメモリメソッドノードを配線できます。
アドレスFPGAターゲットのメモリ内のデータの場所を指定します。 アドレスの有効範囲は、メモリプロパティダイアログボックスの一般ページで指定する要求する要素数により異なります。 たとえば、要求する要素数1000に指定すると、アドレスの有効範囲は0~999になります。 アドレスがアドレスの範囲を超えると、読み取りメソッドはエラーを返し、出力データが無効になる場合があります。 アドレスがアドレスの範囲を超える場合にLabVIEWが通知するように設定するには、エラー端子を追加します。

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

パラメータ説明
メモリ出力メモリ入力が配線されている場合、メモリ入力を返します。 配線されていない場合は、メモリ出力はメモリメソッドノードで指定したFIFOを返します。
データFPGAターゲットのメモリから読み取られたデータを返します。 データは、FPGA VI内のみから直接アクセスできます。 FPGAターゲットのメモリ内のデータは、ホストVIから直接アクセスできません。 ホストVIからデータにアクセスするには、制御器、表示器、またはDMA FIFOを使用する必要があります。 データデータタイプは、メモリ項目を作成した際にメモリプロパティダイアログボックスで構成したデータタイプです。 メモリ項目を初期化していない場合、データは未定義となります。

読み取り (メモリメソッド)の詳細

DRAMメモリで読み取りメソッドを使用することはできません。 その代わりにデータを要求およびデータを取得メソッドを使用してください。

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

シングルサイクルタイミングループ内でこのノードを使用する場合は、以下の点を考慮してください。

  • インタフェースページの読み取りアービトレーションオプションをリクエスタが複数の場合のみアービトレートまたはアービトレーションなしに設定する必要があり、このノードは1つのメモリ項目に対してFPGA VI内で一度しか使用できません。
    メモ 複数のアクセサを持つメモリ項目が入ったFPGAアプリケーションをシミュレーションしたときに、アービトレーションなしオプションを選択すると、不正な動作が引き起こされる場合があります。 たとえば、アプリケーションに複数のライタが含まれている場合、シミュレーションの間、それぞれのライタで指定されたメモリアドレスの更新が行われる可能性があります。 さらに、アプリケーションに複数のリーダが含まれている場合、シミュレーションの間、それぞれのリーダで指定されたメモリアドレスの評価が行われる可能性があります。
  • このノードを使用したメモリ項目からの読み取り方法は、メモリ項目が使用するFPGAリソースの種類によって異なります。

    ブロックメモリ

    ブロックメモリを使用してメモリ項目を実装した場合、読み取り (メモリメソッド) で有効なデータ値を生成するのに必要なサイクル数は、読み取りレイテンシサイクルの数と等しくなります。 読み取り (メモリメソッド) ノードの上に表示されているアイコンの下の数字は、レイテンシ数を示します。

    シングルサイクルタイミングループの内側で、読み取り (メモリメソッド) ノードのデータ出力に配線されたフィードバックノードまたは初期化されていないシフトレジスタは、読み取りレイテンシサイクル数と同じか、それよりも多くする必要があります。 フィードバックノードを使用した場合、各フィードバックノードで有効化端子を表示しないようにする必要があります。 フィードバックノードのいずれかに有効化端子が表示されているか、読み取り (メモリメソッド) の後に、十分なフィードバックノードまたは初期化されていないシフトレジスタが配線されていないと、FPGA VIはコンパイルに失敗し、LabVIEWによってエラーが返されます。

    メモ 読み取り (メモリメソッド) に続くフィードバックノードの初期化は、読み取りレイテンシサイクル1に設定されている場合にのみLabVIEWでサポートされています。

    ルックアップテーブル

    ルックアップテーブルを使用してメモリ項目を実装した場合、直接フィードバックノードや初期化されていないシフトレジスタにノード出力を配線する必要はありません。 メモリ項目は、アドレスを指定したサイクルと同じサイクル中に読み取ることができます。

  • ターゲット指定またはVI定義メモリ項目を使用して、ブロックメモリを使用してメモリ項目を実装した場合のみ、データの保存と異なるクロック領域からそのデータにアクセスすることができます。 この実装では、各メモリ項目で1つの書き込みノードと1つの読み取りノードのみを使用できます。
    注意 複数のクロック領域にブロックメモリを使用して実装されたメモリ項目を使用する場合は、同じアドレスで同時に読み取りと書き込みを実行することが可能です。 それを実行すると、不正確なデータを読み取る可能性があります。


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

役に立たなかった