微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 怎么才能把PCIE真正跑起来

怎么才能把PCIE真正跑起来

时间:10-02 整理:3721RD 点击:
   学习PCIE也有两个月了,经过多次的失败,总算是实现了 xapp1052  和  xapp1030 里面的演示,但是我却
发现,对于如何把PCIE真正的用起来,我依然毫无头绪,脑子里有好多疑问:
1.就拿利用EDK实现的PCIE+DDR工程来说吧,pcie的地址是0x72e00000 ——0x72e0ffff,开了一个ipifbar0,地址
0x72e20000——0x72e2ffff,然后IPIFBAR2PCIBAR_0 = 0x00000000,PCIBAR2IPIFBAR_0 =0x74000000(DDR的
起始地址),那么我用dma传输数据时,就是在0x72e20000和0x74000000为基地址的两块地址之间传输么?

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

3. 对于Xilinx生成的PCIE核(如xapp1052),如果要使用的话,是必须要自己用C语言编写控制程序么?对于EDK的PCIE
工程(xapp1030),应该在SDK中编写C驱动就行了吧,还是说也需要另外编写应用程序?
    以上是一些关于PCIE我拿不准的地方,希望大家能够抽时间看看,给我一些提点,谢谢!

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

问题是我手上只有一块ML605的板子啊,VIVADO好像不支持7系列以下的开发板吧?还是说现在能支持了(以前下载了VIVADO,发现只支持7系列,就没怎么深入了解了)?

时代在进步,vivado也的确是大势所趋!
但是现在它毕竟只支持7系列之后的芯片,相信论坛里大部分人用的也都还是V6以及之前的板子吧,不是不想用,是没条件啊!

学习学习,谢谢分享!

你好,我是北大的,我们实验室的学长之前花了两年的时间搭了个PCIe的通信库,目前已开源,被国内外很多人采用,并发表了论文,你不妨试试。
http://cecaraw.pku.edu.cn/Eng_EPEE.html
左边有download和user guide,你下载下来慢慢搭。PCIe本来就是很麻烦的,Xilinx给的IP核极其难用。有问题可以问我。

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

不愧是北大的牛人啊!这么多的开发板都做了实例!
这些都是可以直接拿来用的么?文档后面的操作时LINUX的,看不懂啊,有windows方面的说明么?
我也看过一些资料,知道后面的流程大致如下(有错请指正):
1)先生成可用的bit流文件,下载到FPGA板上;
2)将板卡插入PC,保证板卡上有bit文件的情况下重启PC,令PC发现PCIE设备;
3)之后的就不怎么清楚了,因为重启PC后提示发现新硬件,需要装驱动,头痛啊(驱动的东西部怎么懂),然后查了资料,似乎用windriver可以生成,然后照资料做了,的确是装好了驱动!但是更大的问题来了,之后要怎么做才能实现PCIE的传输功能呢?完全一抹黑啊!
希望大神能指导指导小弟,如果可以的话,希望能够加我微信(kyo801)或者qq(353076269),非常感谢!

为什么一般烧写机和插卡机不同啊?
我把板卡插入PC机后开机上电(当然用的是PC的电源),然后烧入bit流,再重启PC不行么?
windows下在驱动这么难啊!看样子还得学习下LINUX系统了,谢谢啦!
PS:如果按您所说的用两台PC,插入板卡的PC只用来做最后的驱动和调试,是不是就不需要装XILINX软件了?

非常正确,就是因为插入板卡的PC是要装Linux跑驱动的,不需要装ISE,所以分成两台机子。
这样做的另一个好处是烧写的PC可以用在线逻辑分析仪进行调试,若是同一台机子就关上ISE重启了。
可以同一台,我们也这样做过。

好的,谢谢你的解答!

大家可以关注一下 ”基于Xilinx Virtex-5LXT FPGA的四路光纤PCIE卡(4路光纤卡)”,这卡不错 ,挺牛的!

很好的资源 ,学习下

本人初学者,请问在自己生成了PCIE核之后该怎么办,编译的过程中报错,如下。请问该怎么解决啊?


你好,我最近在学习PCIE方面的知识,但遇到了很多问题,关于DMA和BAR方面的,希望您能指点一下小弟,这是我qq1148254999,或者把您的qq给我,谢谢!

非常好,谢谢

学习,向高手,牛人虚心学习

请问题主,你最后搭建出来了吗?

你好能加一下你的Q么,我的Q是:1751174079  想请教一点关于PCIE的事情,谢谢

共享目录打不开呀,兄弟

学习学习,谢谢分享!

共享的目录打不开哈,求重新共享

你好!我现在使用altera 中pcie dma核出现了一个问题,在长时间运行后,计算机会重启,这种现象的原因是什么呢?谢谢

好强哦,下载下来试试!

你好 ,我是西电的学生,目前初学PCIE有很多问题不太清楚,可以向你请教么 我的QQ是417392171

小编最后做的怎么样了?北大的哥们给的链接已经失效了,求小编共享下资源~~~

共享资料好像不能下载了,小编怎么办

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top