基于FPGA的PCIE总线接口设计.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA的PCIE总线接口设计.doc

基于FPGA的PCIE总线接口设计 摘 要 PCI Express总线是一种点对点串行连接的设备连接,每个设备都拥有自己独立的数据连接,各个设备之间并发的数据传输互不影响,因此具有很高的传输速率。本设计使用Xilinx公司FPGA提供的PCIe IP硬核实现PCIe接口,并针对其高带宽的优势,实现了PCIe总线的Brust数据传输方案,并经过实际传输验证,表明该设计方案可以满足传输带宽的要求。 关键词 PCIE;FPGA;Burst读写 中图分类号:TP274 文献标识码:A 文章编号:1671-7597(2014)07-0029-03 PCI Express总线是一种完全不同于过去PCI总线的一种全新总线规范,与PCI总线共享并行架构相比,PCI Express总线是一种点对点串行连接的设备连接方式,点对点意味着每一个PCI Express设备都拥有自己独立的数据连接,各个设备之间并发的数据传输互不影响,而对于过去PCI那种共享总线方式,PCI总线上只能有一个设备进行通信,一旦PCI总线上挂接的设备增多,每个设备的实际传输速率就会下降,性能得不到保证。PCI Express总线利用串行连接特点,能轻松的将数据传输速度提到一个很高的频率,远远超出PCI总线的传输速率。 PCI Express是一种复杂的协议,它的实现可以采用专用的协议芯片,但是缺乏灵活性和可配置性,限制了系统整体性能。另一种方式是采用FPGA逻辑来实现,PCIE IP硬核一般只实现PCIE的物理层和数据链路层的协议,设计者可以在IP硬核基础上完成PCIE的TLP(数据传输层)和应用层协议,虽然开发过程较复杂,但可根据应用需要进行灵活的配置,具有良好的可移植性,能更好的发挥PCIE高带宽的优势。 Xilinx公司的Virtex 5系列FPGA芯片内嵌PCI Express Endpoint Block硬核,为实现单片可配置PCI Expres总线解决方案提供了可能。本文在研究PCI Express 接口协议和PCI Express Endpoint Block硬核的基础上,使用Virtex5 LX330T FPGA芯片设计PCI Express接口硬件电路,实现PCI Express数据传输。 1 PCIE接口Burst读写设计 1)FPGA内置PCIe硬核特点。在接口电路中,PCI Express物理层和数据链路层的电路采用Xilinx公司的PCI Express Endpoint Block plus v1.9硬核端点模块实现,能够有效完成接口物理层和数据链路层的数据处理功能,提供给上层一个事务层数据接口。 图1 设计流程图 上层电路主要由4部分电路构成,分别是核配置与辅助控制模块、数据发送控制器、数据接收控制器、BAR地址空间管理,如图1所示,最终通过BAR地址空间与用户逻辑进行交互。 各个部分的作用如下。 ①Endpoint for PCIe:FPGA内的硬核,对外负责与其他PCIe设备协议通信对内与TX、RX模块进行64bit并行与高速串行的转换。 ②PIO_TO_CTRL:PCIe核配置与辅助控制。 ③EP_RX:负责主机单字读写FPGA的状态机实现和Burst模式下写操作的数据接收。 ④EP_TX:负责主机单字读FPGA的状态机实现和Burst模式下读操作的数据发送。 ⑤EP_MEM:映射为PCIe空间的几个BAR地址空间,将电子盘控制寄存器映射到闪存阵列主控,将数据区映射到双口数据缓冲区控制器。 由于PCIe核只支持单字访问的模式,所以需要修改数据接收控制器EP_RX、数据发送控制器EP_TX、BAR地址空间管理模块EP_MEM,实现对Burst访问模式的支持。 2)TLP数据包结构。当处理器或者其他PCIe设备访问PCIe设备时,所传送的数据报文首先通过事务层被封装为一个或者多个TLP数据包,之后才能通过PCIe总线的各个层次发送出去。TLP的基本格式如图2所示。 图2 TLP的基本格式 一个完整的TLP由1个或者多个TLP前缀、TLP头、数据有效负载和摘要组成。在整个数据报文中,只有TLP头和数据有效负载需要由用户逻辑代码来完成,其他部分都是PCIe核自动生成的。 TLP头是TLP最重要的标志,包含了当前TLP的总线事物类型、路由信息等一系列信息。本文主要涉及到存储器写和存储器读事务。对于32bit地址空间的存储器读写请求,其TLP头格式如图3所示,硬核同时也支持64bit地址空间的操作。请求者通过填写TLP头内的正确信息以及地址并且将数据放在TLP头的后面发送给接收者,接收者便会解析包内的信息将正 图3 存储器读写请求报文头格式 确的数据放到自己的地址空间中。 对于存储器写请求,EP_RX控制器接收到TLP头和数据之后,只需要通过EP_ME

文档评论(0)

lmother_lt + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档