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

许多最终应用程序都将基于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.xdnf.cn/news/139659.html

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

相关文章

【AI视野·今日Robot 机器人论文速览 第三十八期】Thu, 21 Sep 2023

AI视野今日CS.Robotics 机器人学论文速览 Thu, 21 Sep 2023 Totally 39 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers Model-free tracking control of complex dynamical trajectories with machine learning Authors Zheng Meng Zhai, Mohammad…

聊聊wireshark的进阶使用功能 | 京东云技术团队

1. 前言 emmm,说起网络知识学习肯定离不来wireshark工具,这个工具能够帮助我们快速地定位网络问题以及帮助正在学习网络协议这块的知识的同学验证理论与实际的一大利器,平时更多的只是停留在初步的使用阶段。也是利用部门内部的网络兴趣小组…

小米笔试题——01背包问题变种

这段代码的主要思路是使用动态规划来构建一个二维数组 dp,其中 dp[i][j] 表示前 i 个产品是否可以组合出金额 j。通过遍历产品列表和可能的目标金额,不断更新 dp 数组中的值,最终返回 dp[N][M] 来判断是否可以组合出目标金额 M。如果 dp[N][M…

Flowable主要子流程介绍

1. 内嵌子流程 (1)说明 内嵌子流程又叫嵌入式子流程,它是一个可以包含其它活动、分支、事件,等的活动。我们通常意义上说的子流程通常就是指的内嵌子流程,它表现为将一个流程(子流程)定…

【word格式】mathtype公式插入 | 段落嵌入后格式对齐 | 字体大小调整 |空心字体

1. 公式嵌入 推荐在线latex编辑器,可以截图转 latex 识别率很高 https://www.latexlive.com/home 美中不足,不开会员每天只能用3次识别。 通过公式识别后,输出选择align环境,然后在mathtype中直接粘贴latex就可以转好。 2.公式…

什么是语法糖?Java中有哪些语法糖?

什么是语法糖?Java中有哪些语法糖? 语法糖 语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法,这种语法对…

JavaWeb开发-08-MySQL(三)

一.多表查询 -- 多表查询: 数据准备 -- 部门管理 create table tb_dept(id int unsigned primary key auto_increment comment 主键ID,name varchar(10) not null unique comment 部门名称,create_time datetime not null comment 创建时间,update_time datetime not null comm…

数字赋能 融链发展 ——2023工博会数字化赋能专精特新“小巨人”企业高质量发展论坛顺利举行

编者按:2023年政府工作报告提出“加快传统产业和中小企业数字化转型”要求,按照《“十四五”促进中小企业发展规划》《关于开展中小企业数字化转型城市试点工作的通知》等文件的部署,通过开展城市试点,支持地方政府综合施策&#…

JVM 参数详解

GC有两种类型:Scavenge GC 和Full GC 1、Scavenge GC 一般情况下,当新对象生成,并且在Eden申请空间失败时,就会触发Scavenge GC,堆的Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到…

绿色计算产业发展白皮书:2022年OceanBase助力蚂蚁集团减排4392tCO2e

9 月 15 日,绿色计算产业联盟在 2023 世界计算大会期间重磅发布了《绿色计算产业发展白皮书(2023 版)》。蚂蚁集团作为指导单位之一,联合参与了该白皮书的撰写。 白皮书中指出,落实“双碳”战略,绿色计算已…

LLM(二)| LIMA:在1k高质量数据上微调LLaMA1-65B,性能超越ChatGPT

本文将介绍在Lit-GPT上使用LoRA微调LLaMA模型,并介绍如何自定义数据集进行微调其他开源LLM 监督指令微调(Supervised Instruction Finetuning) 什么是监督指令微调?为什么关注它? 目前大部分LLM都是decoder-only&…

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…

stm32之PWM呼吸灯

呼吸灯是灯从渐亮到渐灭周而复始形成的一个效果。由于51没有PWM所以需要定时器模拟PWM才能实现呼吸灯的效果&#xff0c;但是stm32的通用定时器是有PWM模式的&#xff0c;所以不需要再用软件模拟&#xff0c;精准度也高。 本实验用的基于stm32f103C8t6。在PB8引脚上接了一个le…

rabbitMQ (1)

文章目录 1. RabbitMQ 介绍1.1 几个重要概念1.2 RabbitMq 的工作原理 2 RabbitMQ 安装3. RabbitMQ 入门操作3.1 添加依赖3.2 生产者代码3.3 消费者代码 4. Work Queues5. 管理端页面创建队列 1. RabbitMQ 介绍 引用 &#xff1a; RabbitMQ 是一个消息中间件&#xff1a;它接受…

扩展pytest接口自动化框架-MS数据解析功能

【软件测试行业现状】2023年了你还敢学软件测试&#xff1f;未来已寄..测试人该何去何从&#xff1f;【自动化测试、测试开发、性能测试】 开篇 MeterSphere的数据源通过html页面上传后&#xff0c;需要将请求方式进行拆分。 get接口的参数&#xff0c;常以params的方式进行传…

arcgis js 缓冲区分析(GP服务)

arcgis文档中的有提供缓冲区的接口 geometryService&#xff0c;但要4.19后版本才提供 案例中使用的版本为4.16&#xff0c;因此这里的缓冲区分析借助gp工具 新建服务 1、打开arcmap 选择工具将要存放的文件夹&#xff0c;右键> new > Toolbox 对新建好的工具的mode…

343. 整数拆分

题目&#xff1a; 343. 整数拆分 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入: n 2 输出: 1 解释: 2 1 1, 1 1 1。 示例 2: 输…

spring:实现初始化动态bean|获取对象型数组配置文件

0. 引言 近期因为要完成实现中间件的工具包组件&#xff0c;其中涉及要读取对象型的数组配置文件&#xff0c;并且还要将其加载为bean&#xff0c;因为使用了spring 4.3.25.RELEASE版本&#xff0c;很多springboot的相关特性无法支持&#xff0c;因此特此记录&#xff0c;以方…

Springboot2 Pandas Pyecharts 量子科技专利课程设计大作业

数据集介绍 1.背景 根据《中国科学&#xff1a;信息科学》期刊上的一篇文章&#xff0c;量子通信包括多种协议与应用类型&#xff1a; 基于量子隐形传态与量子存储中继等技术&#xff0c;可实现量子态信息传输&#xff0c;进而构建量子信息网络&#xff0c;已成为当前科研热点&…

HTTP参数类型中的Query和Body参数

在接口中常见到query参数和body参数&#xff0c;那么它对应的传参方式是&#xff1f; ★ query查询参数 ---> params ---> route.params.参数 ★ body请求体参数 ---> data ---> route.query.参数 总结&#xff1a; GET请求只能传Query参数&#xff0c; POST请…