読み取り (メモリメソッド)
- 更新日2025-01-28
- 5分で読める
FPGAターゲットで使用可能なメモリから読み取ります。メモリが読み取りと書き込みの両方のアクセス用に構成されている場合は、このメソッドを書き込み メソッドです。メモリをデュアルポート読み取りアクセスの場合、ラベルにはこのノードがアクセスするインタフェースを示す [A] または [B] が含まれます。
を使用します。このメソッドを実装する メモリメソッドノード 。
入力/出力
| オプション | 説明 |
|---|---|
| メモリ入力 | FPGAメモリを指定します。配線できます。メモリ制御器、メモリ定数VI定義メモリ構成 ノード、またはメモリ入力への別の メモリメソッドノード。 |
| アドレス | FPGAターゲットのメモリ内のデータの場所を指定します。有効 な アドレス範囲は、の 一般 ページメモリプロパティ ダイアログボックス。たとえば、要求する要素数を1000に指定すると、アドレスの有効範囲は0~999になります。 アドレスがアドレスの範囲を超えると、読み取りメソッドはエラーを返し、出力データが無効になる場合があります。追加エラー端子 を使用して、アドレスが アドレス 範囲を超えた場合にLabVIEWから通知されるようにします。 |
| メモリ出力 | メモリ入力が配線されている場合、メモリ入力を返します。配線されていない場合は、メモリ出力はメモリメソッドノードで指定したFIFOを返します。 |
| データ | FPGAターゲットのメモリから読み取られたデータを返します。データは、FPGA VI内のみから直接アクセスできます。FPGAターゲットのメモリ内のデータは、ホストVIから直接アクセスできません。ホストVIからデータにアクセスするには、制御器、表示器、またはDMA FIFOを使用する必要があります。 データ データタイプは、メモリ項目を作成する際の メモリプロパティ ダイアログボックス。メモリ項目を初期化していない場合、データは未定義となります。 |
DRAMメモリで読み取りメソッドを使用することはできません。を使用します。データを要求 し、代わりに データを取得 メソッドを使用してください。
シングルサイクルタイミングループに関する注意事項
このノードをシングルサイクルタイミングループ:
- で読み取り アービトレーション オプションを設定する必要があります。インタフェース ページで リクエスタが複数の場合のみアービトレート またはアービトレーションなし 。FPGA VIの他の場所では、このノードを同じメモリ項目と一緒に使用することはできません。
メモ 複数のアクセサを持つメモリ項目が入ったFPGAアプリケーションをシミュレーションしたときに、アービトレーションなしオプションを選択すると、不正な動作が引き起こされる場合があります。たとえば、アプリケーションに複数のライタが含まれている場合、シミュレーションの間、それぞれのライタで指定されたメモリアドレスの更新が行われる可能性があります。さらに、アプリケーションに複数のリーダが含まれている場合、シミュレーションの間、それぞれのリーダで指定されたメモリアドレスの評価が行われる可能性があります。
- このノードを使用したメモリ項目からの読み取り方法は、メモリ項目が使用するFPGAリソースの種類によって異なります。
Block Memory
ブロックメモリを使用してメモリ項目を実装した場合、読み取り (メモリメソッド) で有効なデータ値を生成するのに必要なサイクル数は、読み取りレイテンシサイクルの数と等しくなります。読み取り (メモリメソッド) ノードの上に表示されているアイコンの下の数字は、レイテンシ数を示します。
シングルサイクルタイミングループの内側で、読み取り (メモリメソッド) ノードのデータ出力に配線されたフィードバックノードまたは初期化されていないシフトレジスタは、読み取りレイテンシサイクル数と同じか、それよりも多くする必要があります。フィードバックノードを使用した場合、各フィードバックノードで有効化端子を表示しないようにする必要があります。フィードバックノードのいずれかに有効化端子が表示されているか、読み取り (メモリメソッド) の後に、十分なフィードバックノードまたは初期化されていないシフトレジスタが配線されていないと、FPGA VIはコンパイルに失敗し、LabVIEWによってエラーが返されます。
メモ LabVIEWは 、読み取りレイテンシサイクルが1に設定されている場合にのみ、読み取り (メモリメソッド) に続くフィードバックノードの初期化をサポートします。ルックアップテーブル
ルックアップテーブルを使用してメモリ項目を実装した場合、直接フィードバックノードや初期化されていないシフトレジスタにノード出力を配線する必要はありません。メモリ項目は、アドレスを指定したサイクルと同じサイクル中に読み取ることができます。
- ターゲット指定またはVI定義ブロックメモリを使用してメモリ 項目 を実装する場合にのみ、メモリ項目を使用してデータを保存し、別のクロック領域からデータにアクセスします。この実装では、各メモリ項目で1つの書き込みノードと1つの読み取りノードのみを使用できます。
注意 複数のクロック領域にブロックメモリを使用して実装されたメモリ項目を使用する場合は、同じアドレスで同時に読み取りと書き込みを実行することが可能です。それを実行すると、不正確なデータを読み取る可能性があります。