xapp1171文档官方链接: https://www.xilinx.com/support/documentation/application_notes/xapp1171-pcie-central-dma-subsystem.pdf (PCI Express Endpoint-DMA Initiator Subsystem)
xapp1171官方文档对应的Vivado工程链接:https://pan.baidu.com/s/1wzhESHuRi2JuLH5WSU_M6A 提取码:wqut ,工程中给出来的是一个生成这个工程的脚本,包括Zynq ZC706开发板和Kintex-7 KC705开发板的工程脚本。
我这里以恢复Kintex-7 KC705的工程为例:
1.首先我们用Vivado新建一个空工程,放在任何文件夹下都可以。我的Vivado版本是2016.4,在Tcl Console下source $PATH/kintexGenerationScript.tcl
我们看到在TCL Console中报如下错误:
同时在C:\Users\10242\AppData\Roaming\Xilinx\Vivado目录下生成了project_1工程文件。
别急,我们把kintexSubsystemFiles文件夹复制到C:\Users\10242\AppData\Roaming\Xilinx\Vivado目录下:
2.关掉刚刚新生成的打开界面project_1(2),以及删除C:\Users\10242\AppData\Roaming\Xilinx\Vivado\ project_1工程文件夹,如果不删除会提示已经存在那些工程需要的文件夹。
3.再次执行source C:/Users/10242/AppData/Roaming/Xilinx/Vivado/kintexSubsystemFiles/kintexGenerationScript.tcl ,此时报还是如下错误,并且在Diagram中生成了一些符号:
报错提示说:
ERROR: [BD 5-390] IP definition not found for VLNV: xilinx.com:ip:util_vector_logic:1.0
ERROR: [Common 17-39] 'create_bd_cell' failed due to earlier errors.
这是在Vivado库中找不到util_vector_logic:1.0元件
4.我们在Diagram中按下CTRL+I,打开IP库:
在IP库中搜索util_vector_logic
双击会看到生成util_vector_logic元件
同时看到TCL Console中出现命令:
create_bd_cell -type ip -vlnv xilinx.com:ip:util_vector_logic:2.0 util_vector_logic_0
5.与kintexGenerationScript.tcl中的212行代码对比可以知道这是我的Vivado中的util_vector_logic元件为2.0版本,而脚本中写的是1.0,所以我们需要把212行改成:
set ddr_reset_inv [ create_bd_cell -type ip -vlnv xilinx.com:ip:util_vector_logic:2.0 ddr_reset_inv ]
保存好修改后的脚本,重复执行第二至第五步,直到全部正确调用元器件的版本号。需要修改mig_7series、blk_mem_gen等等好几个IP的版本
6.脚本没问题后,执行脚本后出来的框图如下:
来个放大版本的图:
7.下面是CDMA的配置:
8.axi_interconnect_1
9.PCIE主要就是看一下BAR的配置:
10.Bram配置:
11.Bram mem配置: