happyeverydaya的个人空间 https://blog.eetop.cn/989312 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

Xilinx PCI Express核总线接口Master DMA设计与实现

已有 3277 次阅读| 2012-8-23 15:05 |个人分类:技术交流

  

      

Xilinx公司Virtex-5/6/7系列FPGA提供了PCIEIP核,在核中固化了物理层和数据链路层的相关设计,向用户开放事务层接口,在进行PCI-Express相关设计时,用户只需要配置相关参数来完成物理层和数据链路层的设计,从而只专注于事务层设计与开发,缩短了产品的研发周期。


DMA采用第一方DMA则完全由接口卡上的逻辑电路来完成,与快取内存结合在一起,提高了数据的存取及传输性能。使用Verilog HDL语言编写,实现了处理器内存与用户逻辑之间数据的高效传输。

 

釆用Xilinx开发板ML555和ML605,进行HOST内存与FPGA之间的数据传输,实际测试中,采用Windows 2000/XP/Win7操作系统,Windriver PCIE驱动,性能指标如下

x4通道,PCIE Gen1 2.5Gbps/laneFPGA传输数据到HOST内存的速率稳定后达到0.85GB/s达到理论带宽的85%HOST内存传输数据到FPGA的速率稳定后达到0.81 GB/s,达到理论带宽的81%

x8通道,PCIE Gen1 2.5Gbps/laneFPGA传输数据到HOST内存的速率稳定后达到1.6GB/s达到理论带宽的80%HOST内存传输数据到FPGA的速率稳定后达到1.5 GB/s,达到理论带宽的75%

x4通道,PCIE Gen2 5.0Gbps/laneFPGA传输数据到HOST内存的速率稳定后达到1.65GB/s达到理论带宽的82%HOST内存传输数据到FPGA的速率稳定后达到1.57 GB/s,达到理论带宽的76%

 

技术交流和合作邮箱:neteasy163z@163.com

 

DMA方式硬件结构如图所示,采用自顶向下设计方法,将FPGA内部逻辑划分为7个模块。

(1)PCIE核接口模块:该模块完成与Xilinx PCIE核接口信号的对接及对PCIE核的初始化配置
(2)
发送引擎模块:该模块按照PCIE协议将待发送的数据和寄存器信息封装成事务包传输到PCIE核接口模块
(3)
接收引擎模块:该模块按照协议将从PCIE核接口模块接收下来的事务包解封装,并根据TLP头标中的信息将数据分流,分别写入接收控制寄存器或是接收FIFO
(4)DMA
控制模块:DMA控制寄存器由中断寄存器、接收控制寄存器和发送控制寄存器构成
(5)
输入输出缓存模块:两个独立的FIFO数据通道,一个用于PCIE发送引擎模块到用户逻辑模块传输数据时的缓存(称为发送FIFO);另一个用于用户逻辑模块到PCIE接收引擎模块传输数据时的缓存(称为接收FIFO)
(6)
用户逻辑模块:配置和读取DMA控制寄存器及控制数据的输入输出。用户逻辑通过读取寄存器的值来控制中断和数据的传输

(7)
用户接口模块:提供用户简单的数据接口通道和控制信号,屏蔽复杂的控制操作并简化用户操作


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 0

    评论
  • 访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-23 23:24 , Processed in 0.025448 second(s), 18 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部