7 Series FPGAs Integrated Block for PCI Express IP核设计中的物理层控制核状态接口

物理层控制和状态允许用户应用程序根据数据吞吐量和电源需求来更改链路的宽度和速度。

1 Design Considerations for a Directed Link Change

Directed Link Change(定向链接更改)期间需要注意的事项有:

  • 链接更改操作(Link change operation)必须在user_lnk_up被断言且IP核处于L0状态时进行。这通常通过检查pl_ltssm_state[5:0]信号来确定。
  • 如果启用了Lane Reversal(车道反转),则不应使用链接宽度更改。
  • 目标链接宽度的更改操作必须等于或小于由pl_initial_link_width输出指示的宽度。
  • 如果pl_link_upcfg_cap被设置为1b,则PCI Express链接具有Upconfigure能力。这意味着链接宽度可以在初始协商的链接宽度和由端口和链接伙伴共同支持的任何较小链接宽度之间变化(这通常是为了链接可靠性或应用原因)。
  • 如果链接不是Upconfigure capable的,则协商的链接宽度只能变为链接伙伴和设备共同支持的较小宽度。
  • 链接速度从2.5 Gb/s更改为5.0 Gb/s之前,用户应用程序必须确保链接是5.0 Gb/s(Gen2)兼容的(即pl_link_gen2_cap为1b),并且链接伙伴也是Gen2兼容的(pl_link_partner_gen2_capable为1b)。
  • cfg_lcommand[9](硬件自主宽度禁用位)被设置为0时,表示硬件不会自主更改链路宽度,从而允许应用程序来控制这个更改。当应用需要改变链路的宽度或速度时,必须设置pl_directed_link_auton为1b(即二进制1,或逻辑真)。这个信号告诉PCIe硬件,链路宽度和/或速度的更改是由应用程序发起的,而不是由硬件自主管理的。要将链路宽度和速度恢复到原始(可能是更高的)配置,需要将pl_link_upcfg_cap设置为1b(即二进制1,或逻辑真)。这个信号可能用于触发PCIe硬件重新协商并配置到最初支持的最大链路宽度和速度。
  • 当用户应用程序试图将PCIe链路设置为一个特定的宽度,但该宽度不被链路伙伴所支持时,链路的实际宽度将退回到下一个双方共同支持的较窄的宽度。例如,用户应用程序试图将8条通道的PCIe链路(通常称为“x8”链路)设置为4条通道(即“x4”模式)操作,但是链路伙伴只支持降低到1条通道(即“x1”模式)的操作。因此,最终的链路宽度将是1条通道。
  • cfg_pcie_link_state寄存器的值为101b(表示链路正在过渡到或从PPM的L1状态转移)或110b(表示链路正在过渡到PPM的L2/L3 Ready状态)时,不应使用定向链路更改引脚(Root或Endpoint)或设置重链接位(仅适用于Root)来发起重链接这是因为在PCIe链路处于电源管理相关的过渡状态时,链路的稳定性和配置可能会受到影响。如果在这些状态下发起重链接,可能会导致链路的不稳定、配置错误或更严重的通信问题。
  • 为了简化时序收敛,允许在发起定向链路更改(Directed Link Change)之前,最多等待16个用户时钟周期来同时检查上述所有条件是否均为真。这些条件是:
  1. user_lnk_up == 1'b1:这表示用户链路已上电且可用。
  2. pl_ltssm_state[5:0] == 6'h16:这表示PCIe链路链接状态机(LTSSM, Link Training and Status State Machine)当前处于L0状态,这是正常操作状态。
  3. cfg_lcommand[9] == 1'b0:这通常与PCIe的某些特定配置或命令位相关,可能是指不允许某些类型的命令或配置。
  4. cfg_pmcsr_powerstate[1:0] == 2'b00:这表示设备处于D0电源状态,即完全上电状态。
  5. cfg_pcie_link_state[2:0] != either 3'b101 or 3'b110:这确保PCIe链路不处于过渡到PPM(Power Management Power-down Mode)的L1状态或过渡到PPM的L2/L3 Ready状态的过程中。

在PCIe系统设计中,这些检查是必要的,以确保在发起任何可能影响链路状态的操作(如定向链路更改)之前,系统处于正确的状态。由于硬件和软件的时序差异,允许有一定的缓冲时间(最多16个用户时钟周期)来确保所有条件都得到满足,从而避免潜在的时序违规或不稳定行为。

2 Directed Link Width Change

Directed Link Width Change(定向链路宽度更改),是指由用户应用程序驱动来更改PCIe(Peripheral Component Interconnect Express)链路的宽度。这个过程确保了应用程序可以根据需要动态地调整链路的带宽,以适应不同的工作负载和数据传输需求。

图3-57展示了必须由用户应用程序实现的定向链路宽度更改过程。

3 Directed Link Speed Change

定向链路速度更改是一个由用户应用程序驱动来更改PCIe链路速度的过程。图3-58展示了该过程,其中target_link_speed是应用程序驱动的新链路速度请求。

注意:不应该仅仅通过驱动pl_directed_link_change引脚到特定的值(例如10或11)来在Root Port上发起链路速度更改,除非Root Port的RP_AUTO_SPD属性被设置为11。

4 Directed Link Width and Speed Change

用户应用程序需要实现定向链路宽度和速度更改的功能。图3-59描述了这一过程,其中target_link_width[1:0]表示应用程序驱动的新链路宽度请求,而target_link_speed表示应用程序驱动的新链路速度请求。

注意:通过直接设置pl_directed_link_change引脚为10或11来在Root Port上发起链路速度更改,那么这一操作只有在Root Port的RP_AUTO_SPD属性被设置为11时才是允许的。

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

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

相关文章

C++STL---模拟实现string

我们这篇文章进行string的模拟实现。 为了防止标准库和我们自己写的string类发生命名冲突,我们将我们自己写的string类放在我们自己的命名空间中: 我们先来搭一个class string的框架: namespace CYF{ public://各种成员函数 priva…

基于单片机智能防触电装置的研究与设计

摘 要 : 针对潮湿天气下配电线路附近易发生触电事故等问题 , 对单片机的控制算法进行了研究 , 设 计 了 一 种 基 于 单片机的野外智能防触电装置。 首先建立了该装置的整体结构框架 , 再分别进行硬件设计和软件流程分析 &#xf…

IDEA升级web项目为maven项目乱码

今天将一个java web项目改造为maven项目。 首先&#xff0c;创建一个新的maven项目&#xff0c;将文件拷贝到新项目中。 其次&#xff0c;将旧项目的jar包&#xff0c;在maven的pom.xml做成依赖 接着&#xff0c;把没有maven坐标的jar包在编译的时候也包含进来 <build>…

实战教程:使用Go的net/http/fcgi包打造高性能Web应用

实战教程&#xff1a;使用Go的net/http/fcgi包打造高性能Web应用 简介理解FCGI协议FastCGI工作原理CGI与FastCGI对比其他接口对比 初步使用net/http/fcgi包设置和配置基础环境一个简单的FastCGI应用示例本地测试与调试 深入net/http/fcgi包的高级用法探索net/http/fcgi的主要功…

气膜建筑的运行保障:应对停电的解决方案—轻空间

气膜建筑作为一种现代化的建筑形式&#xff0c;以其独特的结构和多样的应用赢得了广泛关注。这种建筑依靠风机不断往内部吹气来维持其结构形态&#xff0c;那么如果遇到停电的情况&#xff0c;该如何确保其正常运行呢&#xff1f; 气膜建筑的供风系统 气膜建筑内部的气压维持依…

信创崛起:从安可到国产化,中国信息技术创新之路

在信息技术迅速演进的时代背景下&#xff0c;几个核心概念日益凸显其重要性&#xff1a;安全可靠&#xff08;简称安可&#xff09;、信息技术创新&#xff08;简称信创&#xff09;&#xff0c;以及国产化。这些概念紧密关联&#xff0c;共同服务于一个宏伟目标——构建一个独…

MFC 发起 HTTP Post 请求 发送MES消息

文章目录 获取Token将获取的Token写入JSON文件 将测试参数发送到http首先将测试参数写入到TestData.JSON文件rapidjson 库需要将CString 进行类型转换才能使用&#xff0c;将CString 转换为const char* 发送JSON 参数到http中&#xff0c;并且获取返回结果写入TestFinish.JSON文…

SpringSecurity6从入门到实战之SpringSecurity快速入门

SpringSecurity6从入门到实战之SpringSecurity快速入门 环境准备 依赖版本号springsecurity6.0.8springboot3.0.12JDK17 这里尽量与我依赖一致,免得在学习过程中出现位置的bug等 创建工程 这里直接选择springboot初始化快速搭建工程,导入对应的jdk17进行创建 直接勾选一个web…

Redhat9 LAMP安全配置方案及测试

目录 数据库主机 安装Mariadb数据库服务 设置mariadb开机自动启动 Php主机 部署Apache服务器 设置apache服务开机自启 安装php 安装 phpMyAdmin 打开测试机 更新软件包列表&#xff1a; 首先&#xff0c;确保你的软件包列表是最新的。打开终端并输入以下命令&#xf…

Linux查看设备信息命令

dmidecode | grep Product Name 查看grub版本号&#xff1a;rpm -qa | grep -i "grub" 客户端操作系统版本&#xff1a; cat /etc/issue cat /etc/redhat-release 处理器品牌及型号&#xff1a; less /proc/cpuinfo |grep model

【TCP协议中104解析】wireshark抓取流量包工具,群殴协议解析基础

Tcp ,104 ,wireshark工具进行解析 IEC104 是用于监控和诊断工业控制网络的一种标准&#xff0c;而 Wireshark则是一款常用的网络协议分析工具&#xff0c;可以用干解析TEC104 报文。本文将介绍如何使用 Wireshark解析 IEC104报文&#xff0c;以及解析过 程中的注意事项。 一、安…

AI图书推荐:用ChatGPT和Python搭建AI应用来变现

《用ChatGPT和Python搭建AI应用来变现》&#xff08;Building AI Applications with ChatGPT API&#xff09;将ChatGPT API与Python结合使用&#xff0c;可以开启构建非凡AI应用的大门。通过利用这些API&#xff0c;你可以专注于应用逻辑和用户体验&#xff0c;而ChatGPT强大的…

Axios的使用简单说明

axios 请求方式和参数 axios 可以发送 ajax 请求&#xff0c;不同的方法可以发送不同的请求: axios.get&#xff1a;发送get请求 axios.post&#xff1a;发送post请求 axios.put&#xff1a;发送put请求 axios.delete&#xff1a;发送delete请求 无论哪种方法&#xff0c;第一…

【2】:向量与矩阵

向量 既有大小又有方向的量叫做向量 向量的模 向量的长度 单位向量 (只表示方向不表示长度) 向量的加减运算 向量求和 行向量与列向量的置换 图形学中竖着写 向量的长度计算 点乘&#xff08;计算向量间夹角&#xff09; 点乘满足的运算规律 交换律、结合律、分配…

MouseBoost Pro for Mac v3.4.7 鼠标右键助手 安装教程【支持M芯片】

MouseBoost Pro for Mac v3.4.7 鼠标右键助手 安装教程【支持M芯片】 原文地址&#xff1a;https://blog.csdn.net/weixin_48311847/article/details/139201501

Kibana创建ElasticSearch 用户角色

文章目录 1, ES 权限参考2, 某应用的管理员权限&#xff1a;可以open/close/delete/cat/read/write 索引3, 某应用的读写权限&#xff1a;可以cat/read/write 索引 &#xff08;不能删除索引或数据&#xff09;4, 某应用的只读权限 1, ES 权限参考 https://www.elastic.co/gui…

Notepad++不显示CRLF的方法

View -> Show Symbol -> 去掉勾选 Show All Characters

【教程】PaddleOCR高精度文字识别

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ PaddleOCR/doc/doc_ch/quickstart.md at main PaddlePaddle/PaddleOCR GitHub 安装 pip install paddlepaddle -i https://mirror.baidu.com/pypi/s…

新版idea配置git步骤及项目导入

目录 git安装 下载 打开git Bash 配置全局用户名及邮箱 查看已经配置的用户名和邮箱 在IDEA中设置Git 问题解决 项目导入 git安装 下载 进入官网 Git - Downloads 点击所属本机系统&#xff0c;window如下图 选择64位安装 按照默认步骤一直下一步即可 打开git Bash …

HackTheBox-Machines--Beep

Beep测试过程 1 信息收集 nmap端口扫描 gryphonwsdl ~ % nmap -sC -sV 10.129.137.179 Starting Nmap 7.94 ( https://nmap.org ) at 2024-05-28 14:39 CST Nmap scan report for 10.129.229.183 Host is up (0.28s latency). Not shown: 988 closed tcp ports (conn-refused…