0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Xilinx FPGA的PCIE接口实现

FPGA设计论坛 来源:未知 2023-10-28 16:25 次阅读

wKgaomU8xpKAY0fdAAAAuFYhST8923.png

点击上方蓝字关注我们

随着系统性能、功能和带宽的日益增长,总线技术也在迅速的发展。海量存储,卫星通讯,高速数据采集与记录以及其他数据处理的数据吞吐量现以KMbp s为量级,未来计算机系统对带宽和扩展性的要求已经超越了第二代总线技术。由英特尔提出的第三代高性能I/O总线技术—PCIE总线解决了PCI总线的不足,它的发展将取代PCI成为新型的数据总线,其提供了更加完善的性能,更多的功能,更强的可扩展性和更低的成本。

本文研究了采用NXP公司的PC I Exp ress接口协议芯片PX1011A和Xilinx公司Spartan - 3 FPGA实现PC IE接口的硬件电路设计以及使用Xilinx公司提供的PC I Exp ress LogiCORE IP核的软件设计。

2PCIE总线和PX1011A的介绍
2. 1PCIE总线的介绍
PC I Exp ress是用来互连诸如计算和通信平台应用中外围设备的第三代I/O总线技术,第一代总线包括ISA、E ISA、VESA和微通道(Micro Channel)总线,而第二代总线则包括了PCI、PC I - X和AGP。PCI Exp ress是一种能够应用于一种设备、台式电脑、工作站、服务器、嵌入式计算机和通信平台等所有周边I/O设备互连的总线。

PC IE最初由Intel发展,并于1992年在市场发布。PC IE的体系结构继承了第二代总线体系结构最有用的特点,并且采用了计算机体系结构中新的开发成果。它保留了原先的通讯模型和下载配置机制,但抛弃了共享总线的方式,采用点到点的总线连接方式。由于它提供了更高的性能特点和越来越大的带宽,从而解决了PC I、PCI - X和AGP的许多缺点,是以后PC发展必然采用的接口总线,其必将取代PCI, PC I - X以及图形加速器(AGP) 。

PC IE总线保留了对于PCI局部总线协议全部软件的向下兼容性,即只要是PC IE的卡都可以插到带有PCI的操作系统使用;在硬件上,两者不兼容, PCIE取代PC I、PCI - X的并行多路总线结构,采用了一种串行、点到点的总线连接结构,需要的接口更少。

2. 2单通道物理层收发器PX1011A
NXP公司的PX1011A 是一款与低成本FPGA一起使用而优化的单通道2. 5Gbp s的PC I Exp ressPHY器件。它具有很小的封装,可提供卓越的发射和接收性能,符合PCI Exp ress规范v1. 0a和v1. 1。它通过采用用于传输和接收数据的同步时钟源来提高片外应用的性能。

数据由接收器的差分输入接口进入PX1011A,在被传送到解串化电路之前,这些数据将小振幅的差分信号变为轨对轨的数字信号。一个载波检测电路将检测线路上是否有数据并将这些信息传送到SERDES和PCS上。SERDES将这些数据串行为10位并行数据。然后PCS采用8位/10位解码器来恢复成8位数据格式。

在发送过程中,来自P IPE接口的8位数据通过一个8位/10位编码算法进行编码。8 位/10 位编码确保串行数据被直流平衡以避免交流耦合系统中的基带漂移,它同时确保足够的数据转换以避免接收端的时钟恢复。

PX1011A的MAC接口采用独立的时钟,由片内100MHz的基准时钟的锁相环来产生。锁相环有一个相对较高的带宽来实现可选的扩频并减少EM I。8bit 数据接口在250MHz 上运行并进行SSTL2信号发送,这种模式与流行的FPGA I/O接口兼容。

3基于PX1011A收发器芯片的硬件电路设计
3. 1PX1011A收发器芯片硬件电路设计
PC IE接口硬件电路如图1 所示,包括三个部分:第一部分是PX1011A 与FPGA 的连接信号线,包括8位的接收发送信号TXD [ 7: 0 ]和RXD [ 7: 0 ] ,控制信号RX_DATAK、RX_VAL ID、RX_CLK、RX_E IDLE、RX_POLAR、RX_PHY_STAT、TX_DATAK、TX_CLK、TX_EIDLE、TX_COMP、TX_DET_LOOP、TX_PWRDN0、TX_PWRDN1,状态信号STAT0、STAT1、STAT2和复位信号RESET。第二部分是PX1011A与PCIE接口的连接信号线,包括差分接收信号,差分发送信号, 差分时钟信号。第三部分是PCIExp ress的配置接口,包括PCIE _ TMS、PCIE _ TCK、PCIE_TDO、PCIE_TD I和PCIE_TRST。

FPGA 选用Xilinx 公司的Spartan - 3 系列XC3S1000,采用90nm 材料生产,容量高、成本低。具有业界一流的区块和分布,具有多达784个I/O、MicroB laze 32位R ISC软处理器和支持乘法累加器(MAC)功能(专用18x18乘法器提供高达3300 亿
次MAC /秒)的嵌入XtremeDSP功能。

Xilinx Spartan - 3 PCI Exp ress设计包括一个PCI Exp ress P IPE Endpoint LogiCore。Xilinx低成本Spartan - 3系列提供PCI Exp ress协议层核。PC IE P IPE Endpoint LogiCORE整合了分立的PCIE PHY,提供了全面的、完全符合PC I Exp ress基础规范( PCIExp ressBase Specification) v1. 1的PCIE端点解决方案。

wKgaomU8xpKARt7FAAB6UaBvi60955.jpg

3. 2PCB布线
PCB布线时有以下注意点:终端阻抗布线尽量降低容性;一组信号,避免在参考层断续;高速信号尽量在一层布线,不要打孔,否则要在过孔处打一个U形的地孔;微波传输带,差分信号布线线宽5mil,间距7mil;带状传输线,差分信号布线线宽5mil,间
距5mil。信号之间的间距在5 ×4 = 20mil以上,高压和边缘尖锐的信号尽量远离差分线,避免干扰。

接口上数据采用SSTL2信号发送,传送速率达到250MB / s。每组数据发送端需串行一个25欧姆电阻,数据接收端上拉50欧姆电阻,提高信号的阻抗匹配。TD和RX每组为8位250MB / s信号,为了减少信号间的延时误差,每组信号布线时尽量等长。

4P IPE Core实现PC IE总线协议
4. 1Xilinx PC I Exp ress P IPE Core
Xilinx PCI Exp ress P IPE Core符合PC I Exp ress Base Specification v1. 1 规范的协议和电特性兼容,提供完整的端点解决方案,包括物理链接与处理和配置管理模块。支持同步点对点通信,上行和下行流程控制,与PCI Exp ress处理排序规则完全兼容。有效的链接带宽利用率,误差检测和恢复。支持最大为512字节的有效负载,经过Xilinx专有的测试平台验证的设计,通过PC I - SIG的认证大会( com2p liance workshop) 。

P IPE Core包括传输层,数据链路层,物理层,配置管理层四个模块。这些模块包括产生和进行传输包、数据流的控制管理,初始化,电源管理,数据保护,误码检测,物理接口初始化,并串转换以及其他的接口操作。各个模块的具体连接关系如图2 所
示。

wKgaomU8xpKAaDYqAABmAMi6_Vw758.jpg

4. 2数据接收和发送的时序分析
数据的接收和发送都包含以下接口信号:传输时钟trn_clk,利用PCIE端口的100MHz差分时钟输入,通过Core的内部DCM产生62. 50MHz时钟,传输和配置模块的操作都在trn_clk的上升沿变化;传输复位信号trn_reset_n,低有效;传输链路挂起信号
trn_lnk_up_n,在Core与连接方取消通信时产生,所有存在端口的传输包都会丢失。

发送数据端口包括P IPE Core准备接收32位数据的trn_ tdst_ rdy_n信号,用户有效数据trn _ tsrc _rdy_n,发送32 位数据trn _ td [ 31: 0 ] ,帧开始信号trn_tsof_n和帧结束信号trn_tesof_n。接收端口第一个包的长度是其它包的两倍,其余时序与发送信号类似,具体如图3所示。

wKgaomU8xpOAPKXgAABk09sKYzY583.jpg

4. 3FPGA设计
选用Xilinx公司的ISE软件并采用Verilog硬件描述语言可对该IP核进行行为级描述和逻辑综合,同时可将生成的网表文件设计实现,包括逻辑综合及布局布线。具体设计过程中,需要先加载P IPE Core,这要求ISE为8. 1 以上版本,同时要取得IP
Core的使用授权。

配置P IPE Core, 需要确定设备的生产厂商Vendor ID,设备编号Device ID,类型Class Code, I/O方式的地址存储器空间BAR,有效载荷大小等信息。

在Core Generation之后,根据P IPE Core提供的文件加载各模块的源文件。至此,带PCIE总线协议的接口已经建立好,用户应用程序在模块中添加。

5结束语
实验结果表明,以PX1011A 和Xilinx公司的Spartan - 3 FPGA搭建的×1 PCIE平台最高传输速率可达150MB / s,能够满足高速信号传输的性能要求。随着器件的发展和IP 核的开发, 多通道的PCIE总线技术将会迅速发展。PCI Exp ress总线取代捉襟见肘的PCI总线已是大势所趋,它能给电脑硬件的发展提供一种高性能的总线平台,充分发挥各硬件子系统的性能,并为这些子系统今后的性能提升开辟更广阔的空间。

wKgaomU8xpOAM-uQAABUdafP6GM467.jpg

精彩推荐 至芯科技FPGA就业培训班——助你步入成功之路、10月29号西安中心开课、欢迎咨询! FPGA测试面临哪些挑战?测试方案是什么? SDRAM控制器软核的Verilog设计扫码加微信邀请您加入FPGA学习交流群

wKgaomU8xpOAVV2qAABiq3a-ogY503.jpgwKgaomU8xpOAJqlHAAACXWrmhKE945.png

欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!

点个在看你最好看


原文标题:基于Xilinx FPGA的PCIE接口实现

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1603

    文章

    21328

    浏览量

    593265

原文标题:基于Xilinx FPGA的PCIE接口实现

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    高性能NVMe主机控制器,Xilinx FPGA PCIe 3

    Self-test管理、IO(Page)读写、DMA读写和数据擦除功能,提供用户一个简单高效的接口实现高性能存储解决方案。NVMe Host Controller IP DMA读写的顺序传输长度可以配置
    发表于 04-20 14:41

    Xilinx FPGA NVMe主机控制器IP,高性能版本介绍应用

    接口实现PCIe SSD的DMA读写功能;提供1个DMA-AXI4-Stream-In/Out或DMA-FIFO-In/Out接口实现DMA数据的输入和输出ØDMA读写的顺序传输长
    发表于 03-09 13:56

    PCIe控制器(FPGA或ASIC),PCIe-AXI-Controller

    Transaction Layer的所有功能特性,不仅内置DMA控制器,而且具备AXI4用户接口,提供一个高性能,易于使用,可定制化的PCIe-AXI互连解决方案,同时适用于ASIC和FPGA
    的头像 发表于 02-21 15:15 266次阅读
    <b class='flag-5'>PCIe</b>控制器(<b class='flag-5'>FPGA</b>或ASIC),<b class='flag-5'>PCIe</b>-AXI-Controller

    Xilinx FPGA NVMe Host Controller IP,NVMe主机控制器

    DMA命令接口实现PCIe SSD的DMA读写功能;提供1个DMA-AXI4-Stream-In/Out或DMA-FIFO-In/Out接口实现DMA数据的输入和输出ØDMA读写的
    发表于 02-21 10:16

    TC1728没有LIN接口,只有UART接口,可以用UART接口实现LIN接口吗?

    TC1728没有LIN接口,只有UART接口。可以用UART接口实现LIN接口吗?
    发表于 02-06 06:51

    基于XML语言描述的接口实现方法

    电子发烧友网站提供《基于XML语言描述的接口实现方法.pdf》资料免费下载
    发表于 11-06 10:39 0次下载
    基于XML语言描述的<b class='flag-5'>接口实现</b>方法

    关于xilinx FPGA pcie测试问题

    FPGA pcie dma测试 流程:金手指和电脑连接之后,先加载程序,pc重启; 现象:pc无法开机。 FPGA pcie x8,pc x16,直接连接上去的 请问这是什么情况呀,为
    发表于 09-13 18:21

    全爱科技Atlas200I A2 AI加速模块-FPGA PCIE接口验证平台

    Xilinx的官方PCIE 2.0 IP核或0 IP核,用来实现PCIE 硬核IP的例化; 使用DMA控制器,实现
    发表于 09-05 14:39

    基于FPGAPCIE通信测试

    本文介绍一个FPGA开源项目:PCIE通信。该工程围绕Vivado软件中提供的PCIE通信IP核XDMA IP建立。Xilinx提供了XDMA的开源驱动程序,可在Windows系统或者
    的头像 发表于 09-04 16:45 1316次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>PCIE</b>通信测试

    基于FPGAPCIE I/O控制卡通信方案

    本文介绍一个FPGA 开源项目:PCIE I/O控制卡。上一篇文章《FPGA优质开源项目– PCIE通信》开源了基于FPGA
    的头像 发表于 09-01 16:18 1530次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>PCIE</b> I/O控制卡通信方案

    基于AMD FPGAPCIE DMA逻辑实现

    AMD FPGA自带PCIE硬核,实现PCIE协议,把串行数据转换为并行的用户数据
    的头像 发表于 07-14 15:53 1049次阅读
    基于AMD <b class='flag-5'>FPGA</b>的<b class='flag-5'>PCIE</b> DMA逻辑<b class='flag-5'>实现</b>

    使用Xilinx FPGA实现OFDM系统

    OFDM中调制使用IFFT,解调使用IFFT,在OFDM实现系统中,FFT和IFFT时必备的关键模块。在使用Xilinx的7系列FPGA(KC705)实现OFDM系统时,有以下几种选择
    的头像 发表于 07-10 10:50 663次阅读
    使用<b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>OFDM系统

    基于AMD FPGAPCIE DMA逻辑实现

    AMD FPGA自带PCIE硬核,实现PCIE协议,把串行数据转换为并行的用户数据,以UltraScale系列FPGA为例,其支持Gen1
    的头像 发表于 06-09 09:34 978次阅读
    基于AMD <b class='flag-5'>FPGA</b>的<b class='flag-5'>PCIE</b> DMA逻辑<b class='flag-5'>实现</b>

    Xilinx 7系列FPGA高性能接口与2.5V/3.3V外设IO接口设计

    Xilinx 7系列FPGA IO Bank分为HP Bank和HR Bank,HP IO接口电压范围为1.2V~1.8V,可以实现高性能,HR IO
    发表于 05-15 09:27 2465次阅读
    <b class='flag-5'>Xilinx</b> 7系列<b class='flag-5'>FPGA</b>高性能<b class='flag-5'>接口</b>与2.5V/3.3V外设IO<b class='flag-5'>接口</b>设计

    如果不使用FPGA自带的SERDES,可否适用LVDS接口实现其功能?

    如果不使用FPGA自带的SERDES,可否适用LVDS接口实现其功能?
    发表于 05-08 17:37