首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从PCIe Verilog内核实现DMA?

如何从PCIe Verilog内核实现DMA?
EN

Stack Overflow用户
提问于 2015-02-01 13:31:24
回答 1查看 1.2K关注 0票数 4

我在一个开发板上有一个PCIe生成的内核/端点,它带有xilinx核心生成器工具,用于spartan6 fpga,我对它做了一些修改,以启用spartan6并每隔几秒钟发送一次。

此外,我在我的linux桌面上做了一个简单的C内核模块,我插入了开发板。它注册设备,分配内存,为设备启用总线主控,并处理中断等。

我现在要做的是从板到PC的DMA传输,然后在完成后发送一个中断,这样cpu就可以去读它了。我不是Verilog专家,我所拥有的代码似乎无法实现任何DMA功能。

我在网上找不到任何相关信息,所以这是我最后的希望。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-02 10:21:12

上述评论的原文:

您是否在生成的PCIe核心之上实现了事务层?如果你的高密度脂蛋白技能不是很高的话,你为什么不使用免费的PCIe核心呢?PCIe是一件很大的事情..。

是的,Xilinx IPCore生成器在链接层的顶部添加了一个非常简单的PIO接口来处理简单的PIO事务。注: PIO交易已经过时,不允许使用新设备。

目前,我知道两个比较好的IPCores:

  1. 西里布
代码语言:javascript
复制
- free educational license
- create the IPCore for your FPGA device online and download a netlist
- free linux and windows drivers (the linux driver will be included in the standard kernel)
- 8-bit and 32-bit FIFO interface and a memory interface
- linux-driver mapps FPGA to `/dev/xillybus_read` `/dev/xillybus_write` devices

  1. 里法
代码语言:javascript
复制
- I'm not sure if this core is still maintained
- free driver
- it has a strange interface with up to 12 FIFO channels
- free HDL sources

所有这些核心都需要为您的设备/板生成一个PCIe内核。核心本身提供事务处理,..。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28263230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档