EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
为什么使用XDMA IP而不使用我们前面介绍的PCIE IP,因为前面介绍的IP需要我们自己构建TLP包,还有分散收集策略,基于该IP使用起来PCIE还是有点困难。但是XDMA就特别简单了,他不需要FPGA设计者熟悉PCIE协议,直接将PCIE协议转换成AXI4与AXI_Lite协议,可以直接对DDR进行操作。XDMA内部的分散收集操作、TLP组包、DMA操作等等进行了完整的封装。我们可以把XDMA IP看成我们经常使用的ZYNQ IP,他的BAR空间被AXI_Lite总线进行读写操作用于寄存器的配置,AXI总线用于大数据的传输直接与DDR对接。
: H1 F" O. z6 r
XDMA的内部额框图如下: & b$ }& q/ P! @* s7 ?; V: I
8 k9 I2 [- R2 r! V
对XDMA的内部描述如下:
& ~7 w3 n. s/ c
1、AXI4、 AXI4-Stream,必须选择其中一个,用来数据传输 2、 AXI4-Lite Master,可选,用来实现PCIE BAR 地址到 AXI4-Lite 寄存器地址的映射,可用来读写用户逻辑寄存器 3、 AXI4-Lite Slave,可选,用来将XDMA 内部寄存器开放给用户逻辑,用户逻辑可以通过此接口访问 XDMA内部寄存器,不会映射到BAR 4、AXI4 Bypass 接口,可选,用来实现PCIE 直通用户逻辑访问,可用于低延迟数据传输
8 O; c x# t! F7 K" g5 Y* [6 i
首先选择XDMA IP如下: 6 P' h7 e: J+ C0 R" z1 q7 C6 D x
- o5 R7 c2 D% {0 ?1 B
双击点开该IP的配置:
) a# ?) g" ]2 h1 }/ ^" p9 X
' b: J+ b2 d6 T; m
1、该IP是作为Endpoint来进行PCIE操作的 2、IP定制的模式是高级,这样一来可供选择的IP定制选项就会增多 3、PCIE硬核的位置,这里我们的芯片只有一个硬核,所以这里默认即可 4、lane的个数,与开发板相对应,这里选择2个 5、XDMA将PCIE转换成AXI协议,这个就是AXI协议的位宽 6、该片子的高速串行接口是GTP口,支持PCIE Gen1 Gen2协议,速度分别是2.5GT/s 5GT/s,这里选择最大速度5 GT/s 7、PCIE参考时钟的频率,与板子的时钟情况有关,这里是100MHz 8、AXI总线的时钟频率,这里我们选择125MHz 9、这里我们直接将PCIE协议转换成AXI协议,而不选择AXI Stream协议,简化我们的操作
j7 c4 F. z& ?8 ^
3 B H; [# W9 c5 e
1、厂商ID,专属于Xilinx的PCIE的ID,是固定的。 2、设备ID,与厂商ID一起指明数据的类型,被使用选择PCIE上位机的软件驱动。 3、版本ID,指明使用该PCIE IP进行设置的版本 4、子厂商ID,用来更近一步的区分Xilinx旗下的厂商 5、子系统ID,用来识别板卡的的ID 6、PCIE在实验中承担的角色,这里我们选择默认即可
% T. g2 j7 j$ Z, A- u$ \
9 {0 `+ v1 F) `. F: `/ J& ]5 i( i
1、首先使能 PCIE to AXI Lite Master InteRFace ,这样可以在主机一侧通过PCIE 来访问用户逻辑侧寄存器或者其他AXI4-Lite 总线设备 2、主机侧PCIE BAR 地址与用户逻辑侧地址是不一样的,这个设置就是进行BAR 地址到AXI 地址的转换,比如主机一侧 BAR 地址为0, IP 里面转换设置为 0x80000000,则主机访问 BAR 地址 0 转换到AXI LIte 总线地址就是0x80000000,这点的理解特别重要 3、选择64bit 使能 4、用来实现PCIE 直通用户逻辑访问,可用于低延迟数据传输,这里不选择。
7 r' o1 U+ Y2 b
- l& M. }( Q7 }7 a/ u! j
1、选择消息中断,因为下面的工程中使用了2个中断,所以这里我们选择2 2、引脚中断,这里选不选择意义不大 # Y/ l3 O8 Z4 E2 {: {( X0 r
其余的默认设置即可。 9 F' G! L8 E$ F1 v0 `4 e- ?
, P" R, c2 J, K0 `. }0 G) N
1、2、Number of DMA Read Channel(H2C)和Number of DMA Write Channel(C2H)通道数,对于PCIE2.0 来说最大 只能选择 2,也就是 XDMA 可以提供最多两个独立的写通道和两个独立的读通道,独立的通道对于实际应用中 有很大的作用,在带宽允许的前提前,一个PCIE 可以实现多种不同的传输功能,并且互不影响。这里我们选择1。
# d* @' C2 N; E: O* y% K
其余的默认即可。 " W# t$ W! q( ?0 f" {$ U/ v
. r$ K: G+ X9 Q
这里我们不共享任何逻辑。
9 e2 i$ H( }- H* d
经过上面的设置,我们已经定制了常规的XDMA IP,接下来讲解常用的Block Design设计。 # r. N/ V: x: |$ K* s4 v2 [8 R
3 {$ A. M2 y* C5 b5 b
$ y: x5 d) V# t7 K, J9 A |