0

我正在开发一个关于 Nexys 3 FPGA 的项目,用 Xilinx 上的 Verilog 编写,需要一些文件输入和输出(最好是到刚刚对 FPGA 进行编程的计算机。)使用 Adept 程序,您可以写入一些特定的FPGA存储器之一的地址。您还可以从同一内存空间中的特定地址读取。

这可能是解决我的问题的完美解决方案 - 但是您如何使用 Verilog 访问这些内存?

例如:在状态 S2 中,我想读取位置 00000 的内存(我之前在步骤 S1 中时使用 Adept 加载了它。)我如何访问这些数据,处理它,然后重写不同的部分的记忆?提前致谢。

4

2 回答 2

1

我记得,Adept 在通常的 FPGA 逻辑“之外”工作,通过 JTAG 访问 RAM。它可能会将它们映射为一个大“块” - 您必须阅读文档以了解访问 RAM 的顺序。

如果您想从 Verilog 访问它们,您首先需要实例化(即直接编写一些代码“使用这样的 ram 块”)或推断 RAM 块(编写“看起来”像 RAM 行为的代码时钟 - 然后工具会计算出来)。如果您阅读合成器的文档,它将描述这两种方法。

然后,您的逻辑可以控制 RAM 的数据、地址和控制线对其进行读写。

一旦您可以制作 RAM,并知道您正在使用 Adept 写入多个 RAM 块中的哪一个,您就必须确保 FPGA 构建工具将您的 RAM 块放在正确的位置,以便您访问正确的 RAM 块与熟练。无论是那样,还是每次构建 FPGA 时,您都必须检查它的去向并更改您的 Adept 设置以访问不同的 RAM……您确定这是与您的 FPGA 通信的最佳方式吗?

于 2013-05-01T08:35:16.823 回答
1

板子有不同类型的内存,你要写哪一个?您是在写入 FPGA 内部的存储器还是板上的存储器之一?Nexyx 3 具有以下 3 个内存:

  • 16Mbyte 微米蜂窝 RAM
  • 16Mbyte 美光并行 PCM
  • 16Mbyte 美光四模 SPI PCM

有些容易访问有些更难,如果您明确要访问哪个,将更容易回答您的问题。

您也许可以从 Nexys 2 的示例文件中找到帮助:

“EDK 项目演示了如何通过 I/O 多路复用器连接 BSB 共享总线,允许访问 Nexys2-500 上的 RAM 和 FLASH 存储器。使用 EDK 11 制作。” 您可以在此处找到文件:http ://www.robotshop.com/content/ZIP/nexys2-500-edk-11-ram-flash-nexys2-500k.zip

于 2013-05-01T15:04:43.843 回答