xlinx_pcie_ip 使用笔记

PCIe基础知识及Xilinx相关IP核介绍 补发以下以前学习PCIe总结的知识。 文章目录1 关于PCIe DMA IP核1.1 PCIe 基础1.2 PCIe相关IP核 1 关于PCIe DMA IP核 1.1 PCIe 基础 PCI Express总线是为了取代PCI总线的第三代I/O技术,但是对于系统软件,PCIe是向前兼容PCI总线的,理解PCIe总线必须建立在深刻理解PCI总线的基础志上,这里由于我也是初学者,不深入展开。 为了完成XDMA的测试,有一些基本的概念就可以,如果需要后面的开发应用,就需要系统的学习一下。 点到点的数据传输 阅读详情

PCIE_ISE_学习笔记

我也是刚学习摸索赛灵思的IP核怎么与理论对应上,也有很多不足之处,欢迎大家与我交流

一.  PCIE概述    

首先需要定位的是什么时候需要用到 PCIe 的问题。(PCIe 是什么这里就不做介绍了,不然冗长的像写论文了。 )翻开电脑(台式机),主板上可以清晰的看到常用的接口,能和外面连接的插槽主要有:USB、 Ethernet、 PCIe、PCI、 SATA/PATA、 Audio、 VGA/DVI/HDMI, UART/并口。其中 Audio、VGA/DVI/HDMI制作专用数据输出, UART/并口的速率摆在那里,不适合高速数据传输,剩下的接口最大吞吐率如下:接口最大速率USB USB2.0 480Mbps, USB3.0 5Gbps(USB2.0 速率的 10 倍)Ethernet 1Gbps PCIe X8 Gen1 双向各 16Gbps, X8 Gen2 双向各 32GbpsPCI 2.112Gbps@66Mhz*32 位 SATA/PATA SATA II 3.0Gbps,SATA III 6.0Gbps 排除协议开销,OS 开销,平常使用中 USB 能达到的速度 USB2.0 一般在 30-40MB;Ethenet 如果用硬件实现较低层次的协议在 70-80MBps; PCI 有 64 位的,但是普通PC 或服务器一般是 32 位的,见过效率发挥的较好的能达到 120MB,但是 PCI 是共享总线的,如果总线有多个设备开销,这个速度就难保证了;SATA/PATA 在 PC 中一般用于存储,用自定义设备的很少见。因此,如果数据量超过100M。  
    PCI-Express(peripheralcomponent interconnect express)是一种高速串行计算机扩展总线标准,它原来的名称为“3GIO”,是由英特尔在2001年提出的,旨在替代旧的PCI,PCI-X和AGP总线标准。PCIe属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量(QOS)等功能。PCIe交由PCI-SIG(PCI特殊兴趣组织)认证发布后才改名为“PCI-Express”,简称“PCI-e”。它的主要优势就是数据传输速率高,目前最高的16X 2.0版本可达到10GB/s,而且还有相当大的发展潜力。PCI Express也有多种规格,从PCI Express x1到PCI Express x32,能满足将来一定时间内出现的低速设备和高速设备的需求。PCI-Express最新的接口是PCIe 3.0接口,其比特率为8Gbps,约为上一代产品带宽的两倍,并且包含发射器和接收器均衡、PLL改善以及时钟数据恢复等一系列重要的新功能,用以改善数据传输和数据保护性能。PCIe闪存卡的供应商包括:INTEL、IBM、LSI、OCZ、三星(计划中)、SanDisk、STEC、SuperTalent和东芝(计划中)等,而针对海量的数据增长使得用户对规模更大、可扩展性更强的系统所应用,PCIe 3.0技术的加入最新的LSI MegaRAID控制器及HBA产品的出色性能,就可以实现更大的系统设计灵活性。当然,主流主板都能能支持PCIExpress 1.0 x16,也有部分较高端的主板支持PCI Express2.0 x16。

二.简介

1.层次结构

PCIe 规范对于设备的设计采用分层的结构,有事务层、数据链路层和物理层组成,各层有都分为发送和接收两功能块。


在设备的发送部分,首先根据来自设备核和应用程序的信息,在事务层形成事务层包(TLP),储存在发送缓冲器里,等待推向下层;在数据链路层,在 TLP 包上再串接一些附加信息,这些信息是对方接收 TLP 包时进行错误检查要用到的;在物理层,对TLP 包进行编码,占用链路中的可用通道,从查封发送器发送出去。事务层包( TLP),数据链路层包(DLLP),物理层( PLP)产生于各自所在层,最后通过电或光等介质和另一方通讯。这其中数据链路层包(DLLP),物理层( PLP)的包平常不需要关心,在 IP 核中封装好了。在 FPGA 上做 PCIe的功能,变成完成事务层包(TLP)处理。

2.bar空间

PCIe 通讯是靠发送 TLP 包,如果再进一步参考了PCIe 更详细的书籍就能发现读写包里都有地址信息。如果板卡向 PC 发送TLP 包,例如 MWr 包,那很好理解,地址信息就是PC 的物理地址(注意这里说的是物理地址);如果是 MRd 包,那 PC 收到后回复一个完成包,板卡从完成包分析出数据即得到 MRd 读取地址的数据。那PC 如何读写板卡的数据呢?简单的解释, PC 启动是, BIOS 探测所有的外设。对 PCIe( PCI)设备来说, BIOS 检测到板卡有多少个 BAR 空间,每个空间有多大,然后对应为这些 BAR 空间分配地址。对 PC 设备来说,它能“看”到 PCIe 板卡的空间只有 BAR 空间,也就只能访问这些 BAR 空间。也就是说,板卡可以发送合法的PCIe TLP 包,并得到 PC 端的相应;但是 PC 端访问板卡被局限在 BAR 空间。

简单来说,PC机想操作PCIE设备的内存空间,只能通过bar空间来进行操作。如下图:PC机只能看见bar空间(忽略地址起始和开始),PCIE核通过检测不同的地址来判断要进行task1还是task2。

3.中断


xilinx PCIe PIO工程仿真及验证 验证环境 window 10系统 vivado 2017.4 KC705开发板 验证目的 1)通过xilinx提供的PIOexample 入门pcie。 2)抓取pcietlp报文,学习TLP报文。 背景知识 首先了解一下pcie的应用,在PCIE中有两种数据传输方式: DMA(Direct Memory Access),直接内存访问,在该模式下,数据传送不是由CPU负... 阅读详情

相关推荐

xlinx pcie xvc

复位和唤醒输出也是可选的,xlinxip没有唤醒,复位的可以接到用户复位,方便手动复位。除了时钟和serdes信号,还需要注意B1(PERST#)/C2(WAKE#)。时钟方案选择随路时钟方案,SSC选项并不太好设置,有时候在BIOS里面找不到。1,准备一张pcie扩展卡、一根连接线用于PC到FPGA原型设备连接。有了定义就可以和FPGA测做管脚绑定了。未完待续..........PCIE引脚定义需要在。...

timewh的专栏 3415

LabVIEW FPGA PCIe开发讲解-7.2节:目前主流的4大Xilinx FPGA PCIe DMA通信IP核讲解

LabVIEW FPGA PCIe开发讲解-7.2节:目前主流的4大Xilinx FPGA PCIe DMA通信IP核讲解(Xilinx官方XAPP1052和XMDA IP、以色列Xillybus多通道DMA IP、国外RIFFA IP、北大EPEE IP)-结论是Xillybus简单易用更方便! 1、要开发一个带PCIe或者PXIe接口的FPGA板卡出来,除了硬件本身外,最重要的就是FPGA芯片里面的PCIe通信代码编写,俗称下位机FPGA编程;还有中间层的驱动文件编写以及上位机PC端的应用程序开发。 2

qq_40694786的博客 4720

Vivado IP核生态全解析:从免费到收费,如何选择与授权实战

本文全面解析Vivado IP核生态,从免费到收费IP核的选择与授权实战。详细介绍了Xilinx免费IP核的隐藏技能、开源IP核的避坑法则,以及收费IP核的选型策略和License采购技巧。帮助开发者高效选择适合的IP核,优化项目开发流程,提升性能与成本效益。

weixin_29193259的博客 225

XDMA在Xilinx Ultrascale+上的Linux驱动开发详解

深入解析XDMA在Xilinx Ultrascale+平台的Linux驱动实现机制,涵盖设备树配置、DMA通道管理与性能优化,帮助开发者高效利用xdma实现高速数据传输。

weixin_35414484的博客 1204

Xilinx PCIe 开发指南——使用FPGA构建高性能应用

通过使用Xilinx的IP核,我们可以减少开发时间,并确保PCIe接口的正确实现。Xilinx PCIe IP核支持各种常见的PCIe功能,包括数据传输、配置空间访问和中断处理等。在物理层,PCIe通过不同的通道和速率来进行数据传输。在示例代码中,我们定义了一个简单的模块,用于处理PCIe传输中的数据。本文将介绍基于Xilinx FPGA的PCIe开发方法,重点探讨如何配置和使用PCIe接口以构建高性能、低延迟的应用。以下给出一个简单的示例代码,展示了如何编写基于Xilinx FPGA的PCIe应用。

持续更新 1229

基于Xilinx FPGA实现PCIE2.0接口

1 理论知识 1.1 总线发展 1、ISA总线。工业标准架构总线(ISA),传输速率为16MBps,扩展ISA(EISA),传输速率为32MBps; 2、PCI总线。第一版:PCI总线,工作频率33MHz,数据位宽32bit,传输速率为133MBps。 第二版:PCI总线,工作频率33MHz,数据位宽64bit,传输速率为266MBps。第三版:PCI总线,工作频率66MHz,数据位宽64bit,传输速率为532MBps。 3、PCIX总线。第一版:PCIX总线,工作频率133MHz,数据位宽64b

m0_46498597的博客 3430

FPGA PCIE接口设计:从协议到DMA的工程实践

PCIE作为高速串行计算机扩展总线,在FPGA板卡设计中扮演着不可替代的角色。其协议分层清晰,事务层通过TLP报文实现主机与设备通信,而链路训练状态机LTSSM决定了链路能否稳定协商到目标速率。FPGA工程师利用厂商IP核集成物理层与链路层,重点在配置空间、BAR映射和DMA逻辑上。DMA传输能大幅提升数据吞吐,但必须处理好地址对齐和缓存一致性等问题。围绕从PIO到XDMA的实践路径,内容涵盖PCIE接口设计的协议要点、IP核配置、RTL实现与调试技巧,为FPGA开发者提供一套可落地的工程方法。

weixin_33910191的博客 186

FPGA实现PCIE接口设计:硬核配置、驱动开发与调试实战

PCIE作为新一代高速串行总线,以点对点传输和分层协议替代了传统并行PCI架构,从根本上突破了并行总线的带宽瓶颈。在FPGA设计中,利用厂商提供的PCIE硬核,开发者无需深入物理层与数据链路层细节,即可将精力聚焦于事务层之上的应用逻辑,这极大降低了高速接口的开发门槛。基于这一原理,FPGA在高速数据采集、实时信号处理等场景中展现出显著价值。本文围绕Virtex-6 FPGA与WinDriver驱动组合,系统阐述PCIE协议分层、硬核参数配置、BAR空间映射、DMA缓冲管理及中断处理机制,并结合ChipSco

weixin_29179311的博客 91

Xilinx开发工具授权系统详解与License配置实战

看到这里你应该明白:Xilinx许可证不是一个孤立的技术点,而是贯穿整个FPGA开发生命周期的核心支柱。它影响着:✅ 工具能否启动;✅ IP能否调用;✅ 团队协作效率;✅ 项目交付节奏;甚至可以说,谁掌握了License管理体系,谁就掌握了研发资源的调度权。在未来,随着CI/CD自动化流程普及,建议将License配置纳入Docker镜像或Kubernetes ConfigMap中,实现“即插即用”的标准化部署。

weixin_42103128的博客 1035

CANoe: Panel的上位机控制方法

本文介绍了不同于IG的报文控制方法,实现了Panel面板的控制模式。

Jonsnow3zz的博客 1407

modbus-esp8266库深度解析:工业级Modbus协议栈实现

Modbus是一种广泛应用于工业自动化领域的通用串行通信协议,其核心在于标准化的功能码、寄存器模型与帧结构设计。基于RTU、ASCII和TCP三种传输变体,Modbus协议通过主从架构实现设备间可靠数据交互,具备低开销、高兼容性与强实时性等技术价值。在边缘计算与工业物联网场景中,它被广泛用于PLC通信、传感器数据采集、HMI集成及远程固件升级(FOTA)等关键任务。针对ESP8266/ESP32等Wi-Fi微控制器平台,modbus-esp8266库提供了完整协议栈支持,涵盖多实例并发、回调驱动架构、零拷贝

weixin_42315569的博客 349

【科研学习】Demo3D2015安装包以及图文安装步骤

安装包 点击下图的.exe文件,安装 不需要解压,打开注册机 如下图: 点击上图的.exe文件,出现下图 先点击 patch 打开安装目录下的Demo3D.licensing.dll文件,然后点击Generate,生成dvt-license文件,保存即可 打开安装完成的Demo3D 2015(64-bit),一般破解没完成的,会出现一个request a license 的问题,点击find license 的那一行 点击后找到自己Generate,生成dvt

KaelCui的博客 1万+

利用featureCounts实现高效转录本定量:从比对到下游分析

本文详细介绍了利用featureCounts工具进行RNA-seq转录本定量的完整流程。从软件安装、输入文件准备,到核心命令参数解析与批量样本处理,再到将生成的计数矩阵无缝衔接至DESeq2进行差异表达分析,提供了从比对到下游分析的一站式实战指南。文章重点阐述了featureCounts在效率与易用性上的优势,并分享了常见问题排查与性能优化技巧,帮助研究者高效完成转录本定量这一关键步骤。

weixin_29069131的博客 318

ADS2019学习笔记:三、SPICE model导入

以BZX84-C33 SPICE model为例,学习如何在ADS2019中导入SPICE model。

qq_42945911的博客 6493

【数据集】中国区域地面气象要素驱动数据集(CMFD)2.0

中国区域地面气象要素驱动数据集(CMFD)2.0

WW、forever的博客 2979

电阻基础知识及应用电路仿真(Multisim)

本文围绕硬件工程师必备的电阻知识,从基础知识、实操、应用仿真三方面做系统讲解:基础上明确电阻的核心参数、分类、串并联计算及核心特性;实操中详解贴片/色环电阻的阻值读取、贴片封装换算,重点区分0Ω电阻(贴装跳线,实现功能选通/调试等)与磁珠(高频吸噪)的差异及选型;应用上介绍限流、分压、上拉/下拉、阻抗匹配、过压/过流保护五大典型电路的设计公式、选型原则和实操要点,同时给出电阻通用的选型、测量和布线设计规范,形成完整的电阻应用知识体系。

XU157303764的博客 2775

YOLOv8自定义训练:车牌识别全流程(从标注到推理,附可视化代码)

车牌检测全流程实践指南 摘要:本文详细介绍了基于YOLOv8的车牌检测完整实现方案。针对车牌检测中的三大难点(小目标、多角度、光照变化),提供了从数据准备到模型部署的全流程解决方案。重点包括:1)数据采集与标注规范;2)针对小目标的YOLOv8模型优化配置;3)K-means锚框聚类方法;4)训练参数调优策略。通过实际验证,该方法可获得95%以上的检测准确率,并附有完整的代码实现和可视化工具,便于开发者快速复现应用。 (字数:149字)

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 850

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: FPGA构造IIC时序——switch1848为例
下一篇: Zynq学习_____以太网三部曲(一)理论篇
fzhykx
博客等级 码龄9年 458粉丝 17原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值