AXI memory mapped to PCI Express 理解及仿真

验证环境

win10 64bit

modelsim 10.6d 64bit

vivado 2017.4

KC705开发板

AXI memory mapped to PCI Express 

系统框图

AXI memory mapped to PCI Express 理解及仿真_第1张图片

功能分析

此ip可以分为两部分, AXI MM/S bridge + AXI-S Enhanced pcie.

AXI MM/S bridge

用户侧逻辑接口为标准AXI4总线,通过 AXI MM/S bridge 模块,转换成 AXI-stream 数据流

AXI-S Enhanced pcie

相当于 “7 series intergrated block for pci express” 这个ip core。

由于AXI-stream 协议不携带地址属性,转换成AXI4总线后,用户接口直接对接AXI4,可以很方便使用很多现成AXI4接口的ip核,应用起来更方便。

register block

包含桥核中用于动态映射AXI4的寄存器使用AXIBAR参数将内存映射(MM)地址范围提供给一个地址作为PCIe地址      

slave bridge

only support the INCR burst type .

链接到 axi interconnect 作为一个slave设备,处理axi master(例如CPU)的读写请求。

slave bridge 提供一种AXI memory address 到pcie address转换的方法,axi master的写请求被转换成1个或者多个MemWr TLP,

最多支持8个活动的写请求。axi master的读请求被转换成MemRd,同时compeletion timeout timer检测开启, 等待收到compeletions,返回数据给axi master, 最多支持8个活动的读请求。

master bridge

only support the INCR burst type .

master bridge 处理从 AXI-S enhance pcie收到 MemWr, MemRd tlp报文,将pcie域的地址翻译为AXI memory域的地址。


 

FIXED:burst中的每个transfer都使用相同的地址v
INCR:burst中的每个transfer的地址在上一个transfer的基础上递增
WRAP:与INCR burst类似,只是地址会卷绕(就是增加到某个地址后又回到最低地址)

General Design Guidelines

clock

AXI memory mapped to PCI Express 理解及仿真_第2张图片

AXI memory mapped to PCI Express 理解及仿真_第3张图片

AXI memory mapped to PCI Express 理解及仿真_第4张图片

参考时钟必须通过IBUFDSGTE原语接入,axi_aclk 输出时钟可以供其他相关AXI接口时钟,例如axi_interconnect的*_ACK管脚,和 axi_ctl_aclk管脚。axi_aclk不是和free-run 时钟,不能用作用户逻辑的系统时钟。

reset

AXI memory mapped to PCI Express 理解及仿真_第5张图片

AXI memory mapped to PCI Express 理解及仿真_第6张图片

AXI memory mapped to PCI Express 理解及仿真_第7张图片

axi_aresetn与axi_aclk 同步。

BAR and Address Translation

AXI memory mapped to PCI Express 理解及仿真_第8张图片

C_AXIBAR_n表示AXI总线基地址,C_AXIBAR_HIGHADDR_n表示AXI总线最高地址,空间大小为8KB~2GB且必须为偶数。

AXI memory mapped to PCI Express 理解及仿真_第9张图片

example1

AXI memory mapped to PCI Express 理解及仿真_第10张图片

C_AXIBAR_0 = 0x12340000 (AXI_BAR0地址空间的基地址)

C_AXIBAR_HIGHADDR_0 = 0x1234FFFF (AXI_BAR0 地址空间最大地址)

AXI_AWADDR = 0x12340ABC (用户下发指令,操作AXI地址0x12340ABC)

C_AXIBAR2PCIEBAR_0=0x5671XXXX (Bits 15-0 do not matter as the lower 16-bits hold the
actual lower 16-bits of the PCIe address), AXI_BAR0映射到PCIE_BAR0地址。

最后经过计算,实际操作的物理地址为0x56710ABC.

AXI memory mapped to PCI Express 理解及仿真_第11张图片

example2

AXI memory mapped to PCI Express 理解及仿真_第12张图片

仿真流程

生成exampe工程

生成example过程比较简单,我这里全部保持默认属性,直接 open ip example 就行, example工程中自带仿真工程。

AXI memory mapped to PCI Express 理解及仿真_第13张图片

仿真模型说明

仿真模型框图

AXI memory mapped to PCI Express 理解及仿真_第14张图片

traffic generator 负责生TLP(MRd,MWr)报文, 首先对 AXI BRAM 地址0写入0x01020304 , 然后读AXI BRAM地址0,

提取返回cplD中数据,比较是否等于0x01020304.

仿真结果如下,用户只需要理解AXI_BRAM的AXI4 interface时序,从而开发自己的功能。 
AXI memory mapped to PCI Express 理解及仿真_第15张图片

你可能感兴趣的:(PCIE,FPGA,仿真,pcie,axi,memory,mapped,to,pcie)