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对接。 8 F, ~: w4 j$ F* G
XDMA的内部额框图如下: : B) \3 }) b: ^& k2 ^5 B
# L- i4 f! T$ F, K% B
对XDMA的内部描述如下: 1 I* i+ X6 h6 Y; i' R) {
1、AXI4、 AXI4-Stream,必须选择其中一个,用来数据传输 2、 AXI4-Lite Master,可选,用来实现PCIE BAR 地址到 AXI4-Lite 寄存器地址的映射,可用来读写用户逻辑寄存器 3、 AXI4-Lite Slave,可选,用来将XDMA 内部寄存器开放给用户逻辑,用户逻辑可以通过此接口访问 XDMA内部寄存器,不会映射到BAR 4、AXI4 Bypass 接口,可选,用来实现PCIE 直通用户逻辑访问,可用于低延迟数据传输
# w1 D0 O4 c' h# j
首先选择XDMA IP如下:
: R( I# b1 Y& K' q* t
+ {) l, T. R9 t' h
双击点开该IP的配置: : ^0 e& i& n- Q3 o% T
0 f8 i$ Z6 d" E2 s# w: {
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协议,简化我们的操作 * g( C8 x/ m- E; ~& M% f( [
~% ]6 Z8 S, }: s# g. O/ ?( U( T
1、厂商ID,专属于Xilinx的PCIE的ID,是固定的。 2、设备ID,与厂商ID一起指明数据的类型,被使用选择PCIE上位机的软件驱动。 3、版本ID,指明使用该PCIE IP进行设置的版本 4、子厂商ID,用来更近一步的区分Xilinx旗下的厂商 5、子系统ID,用来识别板卡的的ID 6、PCIE在实验中承担的角色,这里我们选择默认即可
, ~/ H2 w1 r3 E5 _+ T) S
% n1 a0 u( I9 z5 \' m: t
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 直通用户逻辑访问,可用于低延迟数据传输,这里不选择。
6 _: q E; t% {) q, Q, H. e
' a7 B4 L! @$ }; y5 s$ t' T
1、选择消息中断,因为下面的工程中使用了2个中断,所以这里我们选择2 2、引脚中断,这里选不选择意义不大
( `* O/ n! u0 O- T( @
其余的默认设置即可。 - L' U) P+ K9 \' O
. s7 q9 K+ A" D
1、2、Number of DMA Read Channel(H2C)和Number of DMA Write Channel(C2H)通道数,对于PCIE2.0 来说最大 只能选择 2,也就是 XDMA 可以提供最多两个独立的写通道和两个独立的读通道,独立的通道对于实际应用中 有很大的作用,在带宽允许的前提前,一个PCIE 可以实现多种不同的传输功能,并且互不影响。这里我们选择1。 5 U% o3 [: r4 U) g( S1 C* L6 R
其余的默认即可。 7 v* [" M7 U' d$ E
4 r/ B9 C% g" S: P$ Q% I$ D
这里我们不共享任何逻辑。 ! z2 Z% x' j2 s
经过上面的设置,我们已经定制了常规的XDMA IP,接下来讲解常用的Block Design设计。
4 E0 x* W! t J. a1 m" O# V& S. a* K/ U- k
1 Q/ a* L/ o+ K) j0 L8 e5 L( H |