PCIE:端点设备FPGA可以对端点存储器进行读写吗
问题有两个:1、如果PC发一个写事务包(MWr),数据写到这个端点存储器里了,我该怎么在FPGA里得到这个数据进行一些其他逻辑操作。
2、在FPGA怎样往这个端点存储器里的某个地址写一个数据。
总之实现的操作就是,pc发一个控制信息给FPGA,FPGA完成某些操作后 ,完成的状态让PC读走。
希望各位给个思路~
居然没人
按照你的描述,FPGA实现了一个EP的功能,那么PC相当于就是RC了,RC已经可以访问EP的BAR0了。表示PCIE链路已经通了。 你的问题是FPGA怎么得到EP BAR空间的数据,这个其实有些让人费解,因为实际上EP的BAR空间映射的就是EP用户的Memory空间,事实上这块Memory本身应该就在FPGA里,EP本身不会实现 这块Memory的,所以这块memory应该是你FPGA设计本身需要实现的。而RC已经可以访问EP的BAR (读写),说明这块memory已经存在了。
建议你仔细检查你FPGA的Top,一定有一块逻辑(在pcie EP之外),实现了这块Memory。只要找到memory的接口,那么FPGA自然可以读写Memory的数据。如果没有memory,实际上不大可能,你可以找EP的IP手册,EP的出口端会有将受到的memory读写TLP转化成memory读写请求的接口信号。
如你所说,确实有一个这样的memory,现在已经开始使用了,这个memory是一个双口ram,因为例程生成的时候这个ram的很多接口没有引出,没当做双口ram。谢谢-
RC通过访问EP的BAR获得的地址是不是就是FPGA在RC这边的映射地址?还有就是如果RC要跟FPGA实现数据交互是不是可以直接操作这个地址,即向这个地址写或读?
好好好好好好好好好好
好好好好好好好好好好好好好好
你说的都没错,就是这样
大神太牛了
您好,我遇到了跟您一样的问题。
我生成IPcore时开辟了512字节的bar0空间,目前在pc端可以读写数据到这个空间。
我想实现的是在pc端写数据到bar0,在fpga读取这个数据进行操并将结果存回bar0,最后让pc读取这个结果。
我现在在fpga没有找到这个bar0空间。我用了sample里面的PIO_EP_MEM_ACCESS,但结果好像不对。
我现在比较困惑这个bar0的位置
FPGA的大神真多,受教,一会儿就试试!
您好,看了您在帖子中的回复,还是有点不太明白。
我生成IPcore时开辟了512字节的bar0空间,目前在pc端可以读写数据到这个空间。
我想实现的是在pc端写数据到bar0,在fpga读取这个数据进行操并将结果存回bar0,最后让pc读取这个结果。
我现在在fpga没有找到这个bar0空间。我用了sample里面的PIO_EP_MEM_ACCESS,但结果好像不对。
我现在比较困惑这个bar0的位置
仔细看一下IP的使用手册,看看BAR ram是不是在ip里面,如果不在,那或许你得外挂一块ram或者自己开发一个读写ip的接口了。
1、提供基于Xilinx/Altera FPGA的高性能计算(HPC)硬件平台、FGPA加速卡,本硬件加速平台基于PCI Express总线,采用超高性能FPGA作为运算节点。在高性能计算(High Performance Computing)上表现出卓越的性能。尤其适合于大规模逻辑运算。具备高性能、低功耗、低成本、可编程的特性。
2、本平台为我司自主研发,可以根据用户实际需要进行修改定制:
定制算法与逻辑;
定制PC机驱动与演示程序;
支持win7、win10 64位/32位操作系统,支持Linux操作系统;
3、本平台应用场景
FPGA加速卡(平台)在数据中心、算法加速、大数据分析、高性能计算、服务器加速等常见的一些加速应用场景如下:
大数据分析 文本搜索/分析 机器学习 认知计算 算法验证
卷积神经网络 深度神经网络 网络安全
语音识别 视频编码 图像识别和处理 压缩/解压缩
加密/解密 分布式存储… …
上海奥世
