使用接口包装器模块简化在FPGA上实现PCIe的过程

news2024/11/25 12:58:20

许多最终应用程序都将基于FPGA的设计用作其解决方案的固有组件。他们通常需要PCI Express(PCIe)作为必不可少的功能,以提供与系统中其他组件的标准化接口。

从历史上看,PCI Express一直难以在FPGA中实现,因为它需要具有严格电气要求的千兆位SerDes和模拟电路。

此外,PCI Express的实现需要复杂的数字逻辑,包括物理层,数据链路层和事务层,以及具有高频运行的大型数据路径,因此很难在FPGA中实现。

在FPGA中实现PCI Express的最常用方法包括:

* ASSP / PCI Express桥接芯片

*带数字控制器软IP和内置SerDes / PHY的

FPGA *带数字控制器软IP和外部分立PHY芯片的

FPGA *带内置PCI Express硬IP的FPGA

每个解决方案都有其优点和缺点,本文将探讨不同的方法来帮助确定最佳的应用程序解决方案。

图1 – ASSP / PCIe桥接芯片

ASSP / PCI Express桥接芯片

在此实现中,桥接芯片(ASSP)通常与配套的FPGA / CPLD一起使用(上图1)。该解决方案的优势在于通常能够提供完全的PCI-E电气兼容性。但是,某些缺点可能会对实施造成问题:

*通常为两芯片解决方案,从而增加BOM和制造成本。

*随着时间的流逝,ASSP可能会过时

*通用的且通常是专有的用户界面,可能不易使用或不适合高性能应用程序。

*由于现有的ASSP仅在PCI-E 1.1(Gen1)模式下支持x1和x4链接,因此没有升级到高端PCI-E实施的途径。

*现有的ASSP仅限于端点设计。

*设计人员必须使用ASSP功能集和勘误表,这可能会限制功能。

图2 – FPGA软IP和外部PHY

FPGA /数字控制器软IP和外部分立PHY

该解决方案是先前解决方案的衍生产品,但使用了低成本,没有内置收发器。(以上图2)。此方法具有以下优点:

*中量和量大时提供较低的成本。

*完全符合PCI-E电气规范。

*对仅限端点的设计没有限制。

但是,该解决方案确实存在一些缺点,包括:

*前期IP许可证为数量非常少的项目增加了可观的成本。

*软IP消耗了FPGA面积的一部分,从而减少了可供用户使用的逻辑资源。

*与PHY芯片接口(通常通过PIPE并行接口)所消耗的FPGA I / O百分比。PIPE接口可能需要更快速度等级/更高密度的FPGA,以容纳I / O数量和PIPE频率(在某些情况下为250MHz)。

*由于现有PHY芯片仅支持x1和x4中的PCI Express 1.1规范,因此无法升级到x8或PCI Express 2.0(Gen2)。

图3 – FPGA软IP和内置SerDes / PHY

具有数字控制器soft-IP和内置SerDes / PHY的

FPGA此解决方案需要具有内置多千兆位收发器的FPGA(上面的图3)。集成数字PCI Express控制器具有以下优点:

*单芯片解决方案,降低了BOM和制造成本。

*轻松升级到x4,x8和可能的PCI Express 2.0(Gen2),具体取决于FPGA收发器的功能。

*不限于仅端点设计。

但是,该解决方案存在以下问题:

*前期IP许可证为数量非常少的项目增加了可观的成本。FPGA

*软IP消耗了一部分FPGA资源,从而减少了可供用户使用的逻辑资源。

*潜在的PHY限制可能会限制对某些低功耗状态和某些信号机制(如信标生成)的支持。

图4 –带有内置PCI Express IP的FPGA

具有内置PCI Express硬IP的FPGA

一种更好的解决方案是使用硬IP,其SerDes / PHY和数字层(MAC,数据链路,事务处理)在FPGA硅片上进行了加固(上图4)。这具有一些明显的优点:

*提供单芯片解决方案,减少BOM并简化设计和测试。

*确保根据硬IP的功能无缝升级到x4,x8和PCI-E 2.0(Gen2)。

*整个FPGA资源可供用户使用。

但是,对PCI Express使用硬IP也存在一些问题,包括:

*直到最近,它仍需要使用高端FPGA,但是低成本FPGA系列现在支持PCI Express的硬IP。

*设计人员必须使用现有功能集,限制和勘误表,而不能进行定制。

*可用的光纤接口包括数百个信号,通常很难使用。

*由于每个供应商的硬IP和光纤接口的专有性,设计迁移和/或供应商迁移很困难。

使用易于使用的光纤接口

解决问题使用接口包装器提供简单而强大的用户界面,可以解决使用PCI Express硬IP实现FPGA所固有的许多问题。

例如,PLDA的EZDMA模块旨在包裹FPGA的PCI Express硬IP,隐藏硬IP架构接口的复杂性和局限性,并且通常解决硬IP功能问题(下面的图5)。

它是为那些几乎没有PCI Express经验或没有PCI Express经验的人而设计的,也适合有经验的设计师在寻找易于使用但功能强大的PCI Express接口解决方案。EZDMA模块通过显着减少与使用PCI Express硬IP结构接口相关的学习曲线,为设计人员提供了更短的设计周期。

图5. EZDMA接口。

EZDMA还使从PLDA的PCI Express软IP的移植变得容易,使设计人员可以灵活地选择同类最佳的解决方案,而不会花费额外的昂贵设计时间。

此外,PLDA在其PCI和PCI-X架构中整合了EZDMA接口,从而实现了从这些传统接口的无缝过渡和清晰的升级路径。

EZDMA方法不仅允许使用高端FPGA,而且还可以使用领先供应商(例如Altera和Xilinx)的低成本FPGA,从而使硬IP解决方案可用于许多类型的应用。支持的设备包括:

* Altera Stratix IV GX,Arria II GX

* Xilinx Virtex-5 LXT,FXT,TXT,Virtex-6 LXT,SXT,Spartan-6 LXT

EZDMA模块使用大约2K至5K LUT,并使用4KB的存储器,具体取决于特定的配置。PLDA EZDMA接口的其他功能包括:

*熟悉的主(DMA)/目标类型接口,添加了易于使用的高性能多通道DMA

*分散收集(DMA链接),支持多个DMA通道

*具有存储器映射的“从”接口,非常适合寄存器,存储器和I / O访问

*完全可配置用于FPGA资源优化

*支持低功耗模式

*经硬件验证的IP,已在400多种设计中部署

此外,将FPGA设计迁移到ASIC和结构化ASIC时,可以无缝使用EZDMA模块。

选择正确的FPGA – PCI Express解决方案

尽管PCI Express与FPGA接口有多种选择,但在当今的FPGA内部强化完整PCI Express控制器IP的方法正在迅速获得认可,这是一种最小化风险并减少设计时间的首选方法。用途广泛。

由于这些优点,这种方法看起来已成为未来FPGA的主流解决方案,有助于实现功能,灵活性和性能之间的平衡。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1033645.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一、博弈论概述

知人者智,自知者明;胜人者力,自胜者强;小胜者术,大胜者德。 一、什么是“博弈” (一)博弈的定义 博:博览全局;弈:对弈棋局,最后做到谋定而动。…

文件包含漏洞的 00截断

isset()函数若变量不存在则返回 FALSE;若变量存在且其值为NULL,也返回 FALSE。若变量存在且值不为NULL,则返回 TURE %00是被服务器解码为0x00发挥了截断作用。核心是chr(0)字符 00截断上传原理 - 知乎 协议参考地址&…

科研之路(2023.9.21)

惰轮 麦轮 https://mp.weixin.qq.com/s/sjb3O91auADKN7iDsut0jA 理解底盘代码

FL Studio 21内置鼓机FPC怎么用 常用编曲鼓点怎么排列

FL Studio 21内置鼓机FPC怎么用?FPC是一款模拟硬件打击垫建模的鼓机,使用方法和硬件打击垫很像,但是多出了修改采样等更加细节的功能。常用鼓点怎么排列?电子音乐中常见的鼓点有4/4拍鼓组和Trap类型鼓组。 FL Studio Win-安装包&a…

【ODPS 新品发布第 2 期】实时数仓 Hologres:推出计算组实例/支持 JSON 数据/向量计算+大模型等新能力

云布道师 阿里云 ODPS 系列产品以 MaxCompute、DataWorks、Hologres 为核心,致力于解决用户多元化数据的计算需求问题,实现存储、调度、元数据管理上的一体化架构融合,支撑交通、金融、科研、等多场景数据的高效处理,是目前国内最…

S7通信协议的挑高点

目录 1. S7协议之布尔操作 2. S7协议之PDU读取 3 S7协议之多组读取 在电气学习的路上,西门子PLC应该是每个人的启蒙PLC,从早期的S7-300/400PLC搭建Profibus-DP网络开始接触,到后来的S7-200Smart PLC,再到现在的S7-1200/1500 PLC…

leetcode 10. 正则表达式匹配

2023.9.20 感觉是目前做过dp题里最难的一题了... 本题首要的就是需要理解题意,翻了评论区我才发现之前一直理解的题意是错的。 我原来理解的 “ *匹配0次” 是指:*直接消失,不会影响到前面的字符。 但是*和前一个字符其实是连体的&#xff0…

学习路之PHP--lumen安装配置

一、下载lumen源码 composer create-project --prefer-dist laravel/lumen blog 安装lumen-generator composer require flipbox/lumen-generator 二、配置 bootstrap\app.php 97行 $app->register(Flipbox\LumenGenerator\LumenGeneratorServiceProvider::class);三、生成…

MQ - 24 RabbitMQ集群架构设计与实现

文章目录 导图集群构建节点发现元数据存储数据可靠性镜像队列仲裁队列安全控制传输加密身份认证资源鉴权可观测性总结导图 集群构建 集群构建由节点发现和元数据存储两部分组成。RabbitMQ 也是一样的实现思路。 节点发现 在节点发现方面,RabbitMQ 通过插件化的方式支持了多…

Centos下载配置Maven

Linux下安装配置Maven 注意:没配置JDK的先把JDK给配置了,JDK环境变量名为JAVA_HOME 1、安装wget命令 如果需要通过使用wget命令,直接通过网络下载maven安装包时,需要在linux系统中安装wget命令。 yum -y install wget2、下载m…

基于SpringBoot的企业客户管理系统的设计与实现【附PPT|万字文档(LW)和搭建文档】

主要功能 后台登录: 可注册员工:工号、密码、姓名、身份证、手机、邮箱 员工: ①首页、个人中心、修改密码、个人信息 ②客户信息管理、项目信息管理、项目收益管理等 后台登录: 管理员: ①首页、个人中心、修改密码、…

【Flowable】Flowable自动生成的数据库表的含义

一、Flowable简介 Flowable是一个开源的工作流引擎,它的主要目标是提供一个灵活、可扩展、可靠的流程管理系统。Flowable通过提供一组API和工具,使组织能够自动化和管理其业务流程。 二、Flowable中的数据库 Flowable使用数据库来存储和管理其运行时的…

qt matlab 混合编程

1.环境的说明 matlab 2021a qt 5.12.10 qt creator 4.13.1 opencv 4.3.0 eigen-3.4.0/eigen-3.4.0 2.matlab 中导出dill 以aberr_analy1的导出dill举例 命令行中输入:deploytool 2. 选择LIbrarycompiler 3type 选择c 4,选择相应的 5. 点击package 选择保存的路径…

“新KG”视点 | 漆桂林——知识图谱和大语言模型的共存之道

OpenKG 大模型专辑 导读 知识图谱和大型语言模型都是用来表示和处理知识的手段。大模型补足了理解语言的能力,知识图谱则丰富了表示知识的方式,两者的深度结合必将为人工智能提供更为全面、可靠、可控的知识处理方法。在这一背景下,OpenKG组织…

psd-tools

安装 使用 PSD document layers Exporting data to PIL Exporting data to Numpy psd_tools.api.layers PixelLayer TypeLayer 参考资料 psd-tools/psd-tools psd-tools psd-tools/usage 使用psd-tools更改文本层的文本 psd_tools设置文本 https://blog.csdn.net/qq_4010957…

位移贴图的实现原理

在以前的文章中介绍过GLTF编辑器 , 编辑器可以对模型的各种材质纹理进行编辑修改,但是有一些新手用户可能对这些材质纹理不太了解,所以我收集了一些资料对这些材质纹理做一下详细的介绍,今天这篇文章主要是介绍位移贴图。 1、什么…

Leetcode 386. 字典序排数

文章目录 题目代码&#xff08;9.22 首刷看解析&#xff09; 题目 Leetcode 386. 字典序排数 代码&#xff08;9.22 首刷看解析&#xff09; 迭代DFS class Solution { public:vector<int> lexicalOrder(int n) {vector<int> ret(n);int number 1;for(int i 0…

vue下载Excel文件

前端vue实现导出Excel文件 用到的是 上代码 var wb XLSX.utils.table_to_book(document.querySelector(#my-table));//关联dom节点 这个是表格绑定的id名称var wbout XLSX.write(wb, {bookType: xlsx,bookSST: true,type: array})try {FileSaver.saveAs(new Blob([wbout], {…

【C++】STL详解(七)—— stack和queue的使用及模拟实现

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C学习 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【C】STL…

IDEA断点常用5种方式——条件断点(循环)、回退、表达式执行、中断(不执行后续代码)、指定异常(常用寻找空指针位置)

1、条件断点 主要用于循环体内&#xff0c;指定循环的数据加入条件。 2、断点回退 用于回退看之前的参数。 3、表达式执行 获取值或者给值重新赋值。 长表达式可以使用线上的JSON转为实体类&#xff0c;进行模拟数据。也可以根据不同环境给变量重新赋值。 4、强制中断…