芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 2494|回复: 0

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

[复制链接]

该用户从未签到

59

主题

80

帖子

1315

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1315
发表于 2023-5-19 16:54:33 | 显示全部楼层 |阅读模式
【前言】

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模块结构如下:



image.png

整个模块基于读写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模块进行仿真验证的例程。


ch38_acz702_fifo_axi4_adapter.rar (156.94 KB, 下载次数: 161)

ch38_acz7015_fifo_axi4_adapter.rar (240.67 KB, 下载次数: 160)



更多关于ACZ702开发板相关内容,可查看“【ACZ702】Zynq开发板用户自助服务手册”
http://www.corecourse.cn/forum.php?mod=viewthread&tid=28719


更多ACZ7015开发板相关内容,欢迎访问
【开发板使用】【ACZ7015】Zynq开发板用户自助服务手册
http://www.corecourse.cn/forum.php?mod=viewthread&tid=29414



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

GMT+8, 2024-3-28 22:46 , Processed in 0.115191 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表