当前位置:   article > 正文

【ZYNQ逻辑】AXI接口转换模块设计_acz702 和 zynq7015

acz702 和 zynq7015

【前言】

DDR作为大容量存储器件,在FPGA设计中占有十分重要的地位。对于xilinx的7系列fpga以及Zynq-7000系列SoC来说,要想实现数据对DDR的读写,通用的解决方案是使用mig软核作为控制器,控制数据的读写进行。

ACZ702和ACZ7015开发板使用的主控器件隶属于Zynq-7000系列。与ACX720所使用的Artix-7系列的XC7A35T器件不同的是,这些器件PS侧自带有硬核DDR控制器,PL端(FPGA逻辑部分)可以通过AXI总线使用PS端的DDR控制器完成对DDR的读写操作。用户可以参考下帖了解ZYNQ系列器件的DDR3存储器件相关知识:【ZYNQ】ZYNQ器件的DDR3存储器使用相关知识介绍

因此,为了腾出更多管脚资源用于其他外设,在设计ACZ702和ACZ7015开发板板卡时,没有特别预留管脚用于mig软核控制DDR,PS端通过AXI总线共享DDR控制器,用于读写DDR。用户在使用这些开发板时,如果需要读写PS侧的DDR,需要使用AXI总线将数据传输到PS端,借用PS端DDR控制器完成操作。为了简化用户的工作量,我们设计了一个用于AXI转换的模fifo_axi4_adapter。



【模块结构及说明】

早期的fifo_axi4_adapter模块对DDR的读写由一个模块实现,效率较低,因此后期对fifo_axi4_adapter模块进行了优化。优化后的fifo_axi4_adapter模块结构如下:

整个模块基于读写FIFO的数据量以及剩余空间,自动完成对DDR3的读写。这里的读写两个FIFO会对数据进行缓存,同时,解决上下游模块常常处于不同时钟域的问题。fifo_to_axi4模块会不断对写fifo中的数据进行判断,只要数据量满足一次突发,便会将数据读出,通过AXI4总线接口的写事务通道,将数据写入指定DDR3地址中;而axi4_to_fifo模块则会不断对读FIFO的剩余空间进行判断,当读FIFO中的空间足以容纳一次突发的数据量时,便会通过AXI4总线接口的读事务通道,将指定DDR3地址中的数据读出,存进读FIFO中。

因此,对于用户而言,只需要操作读写FIFO,便能完成对DDR3指定地址的读写操作。

【例程及文档】

小梅哥ZYNQ系列开发板对应文档教材中,凡涉及到DDR3的逻辑设计,均使用到了该模块。用户可以直接通过文档教程对应章节和配套例程进行学习,这里仅提供使用mig对fifo_axi4_adapter模块进行仿真验证的例程。

---------------------------------已置顶发⬆-----------------------------


 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号