PCIe基础知识
1.1 书
(1)《PCIe入门》
(2)《PCIe体系结构导读》(作者在客上连载)
http://blog.sina.com.cn/s/articlelist_1685243084_0_2.html
(3)Addison.Wesley.PCI.Express.System.Architecture.eBook-LiB.chm
系列博文:
(4)【老男孩读PCIe系列】
老男孩读PCIe之五:TLP结构
http://www.ssdfans.com/blog/2017/08/03/%E8%80%81%E7%94%B7%E5%AD%A9%E8%AF%BBpcie%E4%B9%8B%E4%BA%94%EF%BC%9Atlp%E7%BB%93%E6%9E%84/
老男孩读PCIe之六:配置和地址空间
http://www.ssdfans.com/blog/2017/08/03/%E8%80%81%E7%94%B7%E5%AD%A9%E8%AF%BBpcie%E4%B9%8B%E5%85%AD%EF%BC%9A%E9%85%8D%E7%BD%AE%E5%92%8C%E5%9C%B0%E5%9D%80%E7%A9%BA%E9%97%B4/
(5)【PCIe扫盲系列博文】
PCIe扫盲系列博文连载目录篇(第一阶段)
http://blog.chinaaet.com/justlxy/p/5100053251
第二阶段的目录篇地址为:
http://blog.chinaaet.com/justlxy/p/5100053328
第三阶段的目录篇地址为:
http://blog.chinaaet.com/justlxy/p/5100053481
第四阶段的目录篇地址为:
http://blog.chinaaet.com/justlxy/p/5100057779
第五阶段的目录篇地址为:
http://blog.chinaaet.com/justlxy/p/5100061871
1.2 DMA、PIO
(1)PCIE的DMA和PIO介绍
https://blog.csdn.net/weixin_33895475/article/details/85974370
1.3 TLP包格式
(1)【重点看:3 PCIE事务交互】
图解PCIE原理(从软件角度)
https://blog.csdn.net/mao0514/article/details/74783913
1.4 配置空间
(1)【14】PCIe架构下memory空间、IO空间、PCIe配置空间简介
https://blog.csdn.net/linjiasen/article/details/87944672
(2)如何访问pcie整个4k的配置空间
https://blog.csdn.net/mao0514/article/details/26072229
(3)从cpu角度理解PCIe
https://blog.csdn.net/qq_21792169/article/details/83340013
1.5 其他
(1)菜鸟5小时速成FPGA PCIE设计高手教程
https://wenku.baidu.com/view/d890041b59eef8c75fbfb3ff.html
(2)PCI与PCIe学习一——硬件篇
https://blog.csdn.net/u013253075/article/details/80835489
1.5 解决问题
Xilinx官方论坛
https://forums.xilinx.com/t5/PCI-Express/bd-p/PCIe
AR# 35920 Xilinx Solution Center for PCI Express - Documentation
https://www.xilinx.com/support/answers/35920.html
AR# 65176 Xilinx PCI Express - General Answer Records
https://www.xilinx.com/support/answers/65176.html
- PCIe官方例程(vivado环境)
说明:下面PCIe的 3个工程中的结构都类似,把其中一个源码结构分析清楚了,其它2个也类似。
2.1 PCIe的第一个 IP:PCIe硬核(PIO模式)
IP:7 series intergrated block for PCI Express = PCIe 硬核
example design:pcie_7x_0_ex
xilinx文档:PG054
【说明:PG054中文版】
xilinx PCIE2.0接口 EP端设计总结
http://www.docin.com/p-1964324614.html
参考博文:
(1)源码结构
【说明:IP example design 详细分析】
PCIe学习(一):PCIe基础及生成PIO例程分析
https://blog.csdn.net/cllovexyh/article/details/79828833#commentBox
(2)上板调试
【说明:mcs固化V7+windriver驱动+ila抓波形】
Vivado vc707 pcie传输实验(超详细)
https://blog.csdn.net/binghui_w/article/details/83277925
2.2 XAPP1052(PIO模式、DMA模式)
说明:
- XAPP1052可以实现DMA模式,但官方给的testbench里只有PIO模式的仿真,DMA模式的仿真需要自己另写。
- XAPP1052有很多bug: (1)官方源码结构中没有存储,需要加FIFO;(2)仿真PIO模式时有bug;(3)仿真DMA模式没提供;(4)仿真DMA模式要设置寄存器;TLP size要满足要求;一次DMA不超过4KB;(4)上板调试有乱序问题。
xilinx文档:XAPP1052
参考博文:
(1) 源码结构
【说明:源码分析+PIO流程代码分析+DMA流程代码分析】
Xilinx FPGA 的PCIE 设计
https://blog.csdn.net/eagle217/article/details/81736822
【说明:源码分析】
PCIe学习(二):PCIe DMA关键模块分析之一
https://blog.csdn.net/cllovexyh/article/details/79835111
PCIe学习(三):PCIe DMA关键模块分析之二
https://blog.csdn.net/cllovexyh/article/details/79855813
(2) 仿真PIO模式
【说明:仿真PIO问题】
仿真Xilinx的PCIe时使用pio_writeReadBack_test0测试问题分析
https://www.mianbaoban.cn/blog/1010859-407788.html
(3) 仿真DMA模式
DMA模式需注意:
RC、EP端寄存器的bus master enable 位需使能;
如何理解Xilinx的BMD?
https://www.mianbaoban.cn/blog/1010859-407913.html
Problems of PCIE DMA simulation
https://forums.xilinx.com/t5/PCI-Express/Problems-of-PCIE-DMA-simulation/m-p/329263
TLP size不能超出RC、EP的max payload size;
一次DMA不能超出4kB范围;
写testbench
【说明:testbench代码分析】
xapp1052之dma_test.v
https://blog.csdn.net/Buyi_Shizi/article/details/51251404\
(4) 上板调试
【说明: 上板+乱序分析解决】
vivado pcie DMA传输实战
https://blog.csdn.net/binghui_w/article/details/83449079
【说明:上板+DMA流程+乱序】
FPGA-PCIe开发
https://blog.csdn.net/LWF729882492/article/details/79754525
2.3 PCIe的第三个 IP:XDMA(DMA模式)
IP:DMA/Bridge Subsystem for PCI Express = XDMA = PCIe 硬核(PCIe第一个IP)+ DMA
example design:xdma_0_ex
xilinx文档:PG195
参考博文:
(1) 源码结构
【说明:流程+源码分析】
XILINX PCIE DMA/Bridge Subsystem for PCI Express (XDMA)笔记
https://blog.csdn.net/Real003/article/details/83628398
视频教程:
http://training.eeworld.com.cn/video/15225