为什么我无法写入/读取自定义AXI lite外设的寄存器

时间:2018-01-24 15:29:36

标签: vhdl fpga vivado zynq vivado-hls

我正在使用Zynq板,其中创建了自定义AXI 4 lite从属外设,然后从IP存储库添加。然后,这些块已成功与Run Connection Automation连接。然后成功生成比特流。

此外,SDK已推出。有一个空白的C项目,其中包含简单的ZYNQ PS代码。遵循pdf“设计自定义AXI4 lite Slave Peripheral ”(下图中显示的那个)更改了此代码。

  

自定义AXI从属外设的写入和读取功能

enter image description here

现在SDK执行没有任何错误,但是当我在SDK监视器上观察地址时,没有写入数据(如下图所示)。

enter image description here

我哪里可能出错或者我错过了什么? 在Vivado 16.2上使用vhdl。

我已经尝试过:使用XSDB控制台使用命令进行处理

mwr -force 0x43C00000 0x01234

没有变化。

  

选中Vivado地址编辑器以包含相同的基址   包括xparamters.h

非常感谢您提前...

更新:xparameters.h文件与vivado地址编辑器没有相同的基址和高地址。因此尝试将链接器脚本中的“内存区域”更改为来自DDR enter image description here的RAM,

现在,当在“变量”窗口中观察时,当点击“Step Into”按钮时,我确实得到了值enter image description here的预期变化。 XSDB控制台输出和内存监视器输出保持不变。

hardware platform specification文件确实显示了具有正确预期基数和高地址的自定义AXI lite。enter image description here

1 个答案:

答案 0 :(得分:0)

Hardware_platform specified

  • 导致此问题的原因之一是与要使用的调试配置相关联的硬件平台不同。

当我们在IP中进行一些更改并更新它们时,将位流导出到SDK时,将创建一个新的硬件平台。假设较旧的是TOP_WRAPPER_hw_platform_0,现在将创建新的TOP_WRAPPER_hw_platform_1

此新平台应在调试配置设置Hardware platform中进行更新。

进一步在调试配置设置中需要勾选以下内容 在目标设置下

  • 重置整个系统
  • 编程FPGA

在“应用程序”标签下

  • 下载应用程序

  • 停在“主要”位置