怎么才能把PCIE真正跑起来

2019-07-15 23:47发布

   学习PCIE也有两个月了,经过多次的失败,总算是实现了 xapp1052  和  xapp1030 里面的演示,但是我却
发现,对于如何把PCIE真正的用起来,我依然毫无头绪,脑子里有好多疑问:

1.就拿利用EDK实现的PCIE+DDR工程来说吧,pcie的地址是0x72e00000 ——0x72e0ffff,开了一个ipifbar0,地址
0x72e20000——0x72e2ffff,然后IPIFBAR2PCIBAR_0 = 0x00000000,PCIBAR2IPIFBAR_0 =0x74000000(DDR的
起始地址),那么我用dma传输数据时,就是在0x72e200000x74000000为基地址的两块地址之间传输么?


2.如果要将事先准备好的1K 数据通过PCIE传给PC,应该怎么操作呢?我的想法是把这些数据先写入0x74000000为基址
的地址中,然后用dma传输,但是在Xilinx SDK中,0x72e200000x74000000这两部分的地址中的数据都无法读取(其
它有些地址可读,如0x00000000),我觉得可能是一种保护吧,但是这样子我就不能验证我的想法了。


3. 对于Xilinx生成的PCIE核(如xapp1052),如果要使用的话,是必须要自己用C语言编写控制程序么?对于EDK的PCIE
工程(xapp1030),应该在SDK中编写C驱动就行了吧,还是说也需要另外编写应用程序?

    以上是一些关于PCIE我拿不准的地方,希望大家能够抽时间看看,给我一些提点,谢谢!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
lxg54321
1楼-- · 2019-07-16 01:32
machairodus 发表于 2015-7-6 16:48
不愧是北大的牛人啊!这么多的开发板都做了实例!

这些都是可以直接拿来用的么?文档后面的操作时LINUX的,看不懂啊,有windows方面的说明么?

可以直接拿来用,没有windows版本的,只有Linux,因为windows下驱动开发不方便。
顺序有些问题
1)将板卡插到PC中,开机
2)下载bit流文件到FPGA上,重启插着板卡的机器。一般用来烧写的PC和插板卡的PC不是同一台,笔记本电脑装了ISE或Vivado都能烧写,插板卡就必须是台式机了。
3)重启后先加载驱动程序,源代码中有,在sPciDriver文件夹下。
然后就可以编程了,C或C++,API在文档中有提到,头文件在源代码中有。
PCIe的传输功能就是调用两个函数而已,很简单的。除了传输外,还有用户自定义的寄存器,叫PIO接口,可以用来传一些控制信息,自己定。
做这个的师兄是大牛,现在在阿里巴巴,我并不是 最佳答案
machairodus
2楼-- · 2019-07-16 03:36
xianyoudian 发表于 2015-6-26 22:18
建议使用vivado软件

问题是我手上只有一块ML605的板子啊,VIVADO好像不支持7系列以下的开发板吧?还是说现在能支持了(以前下载了VIVADO,发现只支持7系列,就没怎么深入了解了)??
machairodus
3楼-- · 2019-07-16 06:14
 精彩回答 2  元偷偷看……
wjh_yw
4楼-- · 2019-07-16 09:46
学习学习,谢谢分享!
lxg54321
5楼-- · 2019-07-16 11:45
你好,我是北大的,我们实验室的学长之前花了两年的时间搭了个PCIe的通信库,目前已开源,被国内外很多人采用,并发表了论文,你不妨试试。
http://cecaraw.pku.edu.cn/Eng_EPEE.html
左边有download和user guide,你下载下来慢慢搭。PCIe本来就是很麻烦的,Xilinx给的IP核极其难用。有问题可以问我。
machairodus
6楼-- · 2019-07-16 17:27
lxg54321 发表于 2015-7-2 20:27
你好,我是北大的,我们实验室的学长之前花了两年的时间搭了个PCIe的通信库,目前已开源,被国内外很多人采用,并发表了论文,你不妨试试。
http://cecaraw.pku.edu.cn/Eng_EPEE.html
左边有download和user guide,你下载下来慢慢搭。PCIe本来就是很麻烦的,Xilinx给的IP核极其难用。有问题可以问我。 ...

非常感谢,我先研究研究,不懂再来问你哈!

一周热门 更多>