[转]Altera Arria10 FPGA PCIe Avalon-MM DMA设计

本文深入探讨FPGA设计中的DMA工作原理,介绍如何使用双口RAM替换自定义IP,并详细讲解通过PCIe BAR访问寄存器的方法。文章还提供了Qsys连接图示例,解释了DescriptorController的内部机制及其与ReadDataMover和WriteDataMover的交互过程。

本文链接:https://blog.youkuaiyun.com/Zhu_Zhu_2009/article/details/80793919
FPGA设计
DMA原理框图如下,实际应用中把双口RAM换成自己的IP即可,首先使能了内部Descriptor Controller,那么BAR0默认连接到了Descriptor,若想通过PCIe BAR来访问寄存器,就必须得添加一个BAR4,其实可以不用使能内部的Descriptor Controller,自己添加DMA IP,手动在Qsys中连线,这样一个BAR就够了。Read Data Mover从PC读数据,这里Read Data Mover连接了两个设备,一个是Descriptor Controller内部的FIFO,用来存放DMA描述符的,另外的就是自己的数据源,Write Data Mover将数据发送到PC。

Qsys连接图如下,其中wr_dts_slave和rd_dts_slave是Descriptor Controller内部的FIFO接口,这里分配的地址是0x08012000和0x08010000,这儿分配看实际需要,这儿的地址空间不能喝自己逻辑使用的冲突即可。另一个BAR4的空间设置了地址0x08000000,BAR4的空间占用不易过大,适当是最好的。另外wr_dcm_master和rd_dcm_master连接到了Txs端口,用来更新DMA描述符状态字和发送MSI消息。本来Descriptor Controller的Control有两组端口,一个接收端口连到内部的BAR0上,肯定是用于寄存器访问,发送端口连到了Txs上。

关于BAR,参考手册,其中BAR的Size由软件根据你连接的元件自动计算,所以地址范围需要限定,不然就奔着32位总线的4GB去了,这是不可以的。

如果是真的需要4GB bar,需修改主板bios above 4GB mmio选项,参考Threadripper 1950X Max number of GPUs

驱动设计
参考我的博客:windows驱动开发-Altera PCIe DMA
————————————————
版权声明:本文为优快云博主「黑客三遍猪」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/Zhu_Zhu_2009/article/details/80793919

转载于:https://www.cnblogs.com/tubujia/p/11413271.html

1 数据表 .............................................................................................................................. 5 1.1 Arria10 Avalon-MM DMA 接口PCIe 数据表................................................................... 5 1.2 特性..................................................................................................................... 6 1.3 比较Avalon-ST,Avalon-MM 和支持DMAAvalon-MM 接口............................................ 7 1.4 发布信息 ................................................................................................................9 1.5 器件系列支持 .......................................................................................................... 9 1.6 设计实例.................................................................................................................9 1.7 调试功能.................................................................................................................9 1.8 IP Core 验证 .........................................................................................................10 1.8.1 兼容性测试环境 ..........................................................................................10 1.9 性能和资源利用 ......................................................................................................10 1.10 建议的速度等级 .................................................................................................... 10 1.11 创建PCI Express 设计........................................................................................... 11 2 Avalon-MM DMA 入门 ...................................................................................................... 13 2.1 生成Testbench ..................................................................................................... 14 2.1.1 了解仿真已生成文件 .................................................................................... 15 2.1.2 了解仿真日志文件生成.................................................................................. 16 2.2 在ModelSim 中仿真实例
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值