ultrascale学习笔记之PL通过AXI-HP加速读写PS-DDR

1.版本说明

2.概述

  • 本文建立在有一定的ZYNQ开发基础之上;
  • 本文主要描述PL使用HP口读写PS-DDR操作流程;
  • 描述在VIVADO条件下,修改blockdesign的一些参数选项,从而提供AXI的速度;
  • 描述在ultraScale器件下,配置blockdesign时遇到的一些问题,并记录解决方法;

3.流程

3.1.blockdesign配置

如下图所示,在ZYNQ-UltraScale中,产生一个 S_AXI_HP0_FPD接口,然后根据PL端需求外接 AXI Interconnect,进而扩展多个HP口;
在这里插入图片描述

如下图所示,双击“接口1/2/3”,弹出新的窗口,按下图提示参数,修改其中的“Basic”选项,其中Data Width 可以根据PL需要修改,
建议:Data Width:ZYNQ选择64,UltraScale选择128;
建议:MAX Burst Length:16
建议:Num Write Outstanding: >= 2
建议:Num Read Outstanding: >= 2
注:Outstanding功能很重要,后面会说。
在这里插入图片描述

3.2.自动地址划分

正常开发过程中,当我们设计完blockdesign以后,通常会软件验证blockdesign模块是否有效(快捷键F6),是否有异常错误,直到安全正常通过设计;
如果验证通过,恭喜你,一切顺利,继续开发;
但是只要涉及到HP/GP,必然会需要进行地址划分,对于地址划分模块,首次打开时,处于地址未划分状态,需要进行地址划分,否则软件验证/编译将会报错;
如下图所示,未分配地址的截图:
在这里插入图片描述

根据ZYNQ设计经验,一般此处会直接点击“AUTO Assign Address”,但是由于UltraScale的地址系统比ZYNQ复杂,因此自动划分会报错,需要手动调整;
在这里插入图片描述

3.3.手动调整地址划分

地址划分之前,需要明白各个端口地址范围:ZYNQ查看UG585, UltraScale查看UG1085;
在这里插入图片描述

对于:Master HPM0接口,主要用于PS控制PL的外设模块,地址空间:0xA400_0000-0xAFFF_FFFF,如果没有使用VCU,则地址对应:0xA000_0000-0xAFFF_FFFF,共256MB;
对于:Master HPM1接口,主要用于PS控制PL的外设模块,地址空间:0xB000_0000-0xBFFF_FFFF;共256MB;
对于:Slave HP接口,主要用于PL读写PS的存储空间包括:OCM/QSPI/DDR_LOW/DDR_HIGH;
考虑到UltraScale的地址空间比较复杂,为了简化开发,只需要划分DDR_LOW,其余设置为Unmap
在这里插入图片描述

在这里插入图片描述

最终结果:
在这里插入图片描述

4.Outstanding功能

通过上面的设置,我们已经配置好了GP/HP;接下来需要PL端的RTL实现通过HP的AXI接口读写PS的DDR;
Outstanding功能注要提供类似流水线的AXI-加速功能;
分析AXI-Write时序:
在这里插入图片描述

同理:AXI-Read也能再Outstanding > 2时进行AXI加速;

5.后序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值