读取 (存储器方法)
- 更新时间2025-01-28
- 阅读时长3分钟
读取FPGA终端上可用的内存。如存储器配置为读写访问,可将该方法与写入 方法。如果将内存配置为dual port read access,标签包含 [A] 或 [B],表示节点将访问的接口。
使用实现该方法的 内存方法节点 。
输入/输出
| 选项 | 说明 |
|---|---|
| 存储器输入 | 指定FPGA内存。您可以连线内存控制内存常量“VI定义内存配置” 节点,或“内存输入”的其他“ 内存方法”节点。 |
| 地址 | 指定数据在FPGA终端内存中的位置。有效地址范围取决于 请求的元素数量常规 页面内存属性 对话框。例如,如指定请求的元素数量为1000,有效地址范围为 0至999。 如地址超出了地址范围,读取方法将返回错误且输出数据可能无效。添加错误接线端 ,以便LabVIEW在 地址 超出地址范围时通知用户。 |
| 存储器输出 | 连线了存储器输入时返回存储器输入。否则,存储器输入返回在存储器方法节点中指定的内存。 |
| 数据 | 返回从FPGA终端读取的数据。仅能在FPGA VI内直接访问数据。不能通过主控VI直接访问FPGA终端存储器中的数据。必须使用输入控件、显示控件或DMA FIFO访问主控VI的数据。 数据 数据类型是在创建内存项时显示 内存属性 对话框。如未初始化存储器项,数据为未定义类型。 |
单周期定时循环的注意事项
在单周期定时循环:
- 必须设置读取 仲裁 选项 “仅在多个请求者 时进行仲裁”或“ 接口 ”页进行仲裁从不仲裁,该节点无法在FPGA VI的其他任何位置使用相同的内存项。
注: 仿真包含多个处理器的存储器项的FPGA应用时,选择从不仲裁选项可能导致错误行为。例如,应用程序包含多个写入方,每个写入方可在仿真时更新指定的存储器地址。此外,如应用程序包含多个读取方,每个读取方可在仿真时读取指定的存储器地址。
- 存储器项使用的FPGA资源影响用户使用该节点读取存储器项的方式。
存储器块
使用存储器块实现存储器项时,读取(存储器方法)的用于生成有效数据值的周期数等于读取延迟周期的周期数。读取(存储器方法)节点图标下的数值指示延迟周期数。
在单周期定时循环内,连线至读取(存储器方法)节点的数据输出端的反馈节点或未初始化移位寄存器的数量必须大于等于读取延迟周期的值。使用反馈节点时,每个反馈节点不能显示启用接线端。如反馈节点显示启用接线端,或在读取(存储器方法)节点后未连线足够的反馈节点或未初始化的移位寄存器,FPGA VI将编译失败,且LabVIEW将返回错误。
注: 仅当 读取延迟周期 设置为 1时, LabVIEW支持在读取(内存方法)之后初始化反馈节点。查找表
使用查找表实现存储器项时,无需直接连线节点输出至反馈节点或初始化移位寄存器。在提供地址的同一个周期内可读取存储器项。
- 可使用终端范围或VI定义的仅当使用块存储器实现 存储器项 时,才能存储数据并从不同的时钟域访问数据。在上述操作中,每个存储器项仅使用一个写入方节点和一个读取方节点。
注意 在多个时钟域内使用通过存储器块实现的存储器项时,可以同步读取或写入同一个地址。但此操作可能导致读取到不正确的数据。