如何在XDMA中查看LTSSM状态机

简介

经常会遇到PCIe不能识别的问题,到底怎么去定位。本文以XDMA 为例,一方面复习下LTSSM状态机,一方面描述下如何通过FPGA的XDMA查看这个状态机

技术名词

LTSSM是一种常用于PCI Express(PCIe)接口的状态机,它可以控制PCIe总线的传输流程。LTSSM由多个状态组成,每个状态都代表了不同的总线传输阶段。在PCIe通信中,通过状态转移来实现数据的传输和接收。具体来说,LTSSM可以控制PCIe设备之间的握手、数据传输、错误处理等操作,保证数据在传输过程中的稳定性和完整性。

XDMA指的是跨领域内存访问(Cross Domain Memory Access),它是一种基于硬件实现的内存共享技术,可以在不同的设备之间实现高速、低延迟的数据传输。相比于传统的数据传输方式,XDMA可以大大减少数据传输的时间和成本,并且可以支持多种不同的设备之间的数据传输,包括FPGA、GPU、CPU等。

通过使用XDMA,可以将不同设备之间的数据传输延迟降至最低,同时也可以实现高速数据传输,提高系统性能和响应速度。此外,由于XDMA是一种硬件实现的技术,因此它可以保证数据传输的稳定性和安全性,本文特质xilinx的IP核。、

如何查看

首先打开vavodo,选择XDMA 的IP核。点击

需要勾选PCIe ID标签页中的Use Class Code Lookup Assistant之后才能搜索到相关itssm信号。

在编译之后。搜索LTSSM,添加debug信号。

LTSSM-Detect
Detect:检测远端阻抗以确定是否有设备
a) Detect.Quiet时,Tx处于Electrical Idle状态,LinkUp清0,以及其他复位动作
b) 只要有lane退出Electrical Idle,就进入Detect.Active,此时双方检测对端阻抗,确定对端是否有设备
c) 只要有某条/几条lane的双方均检测到对端有Rx,则进入Polling,其他没有检测成功的lane进入Electrical Idle,一条lane也没有则回到Quiet

LTSSM-Polling
Polling:发送和回复TS,bit lock,symbol lock,lane 极性在此阶段确定
TS(Training Sequences)用于初始化bit align,symbol align,交换参数。TS1主要检测PCIe链路配置信息,TS2确认TS1的检测结果
a)Polling.Active,Tx向对端发送TS1,对端Rx接收到TS1后通过其Loopback发送回来
b)当Rx收到8个连续的TS1或者收到8个TS2,这种情况下进入Polling.Configuration
c)Polling.Configuration:此时TX发送TS2(lane/link number为PAD,linkup为0)
d)当在Polling.Configuration时收到8个连续的TS2,并且在收到一个TS2之后再发出去16个TS2之后进入Configuration状态

LTSSM-Configuration
Configuration:Rx/Tx协商link number,lane number,(这步骤可以确定link width)当recovery出现错误没有进入L0也可能先进Configuration
首次从Polling进入Configuration时LinkUp=0,从recovery进入该状态是LinkUp=1
Configuration.Idle时,PCIe链路设置完毕,当收到对端8个Idle序列并且向对端发送16个Idle序列之后将LinkUp值1,数据链路层从DL_Inactive进入DL_Init,物理层进入L0

LTSSM-Recovery
Recovery:用于切换data rate,或者从L0经过Recovery.Rcvrlock再到Configuration去切换link width,此时bit lock(位锁),symbol lock(符号锁) 会重新建立

当PCIe链路需要重新训练时,进入Recovery状态。主要有以下几种情况:
(1) PCIe链路信号发现error,需要调整Bit Lock和Symbol Lock;
(2) 从L0s或者L1低功耗电源状态退出;
(3) Speed Change。因为第一次进入L0状态时,速率是2.5GT/s. 当需要进行速率调整5.0GT/s或者8.0GT/s时,需要进入Recovery状态进行Speed Change. 这个阶段,Bit Lock、Symbol Lock等都需要重新获取;
(4) 需要重新调整PCIe链路的Width;
(5) 软件触发retrain操作;

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

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

相关文章

「前端+鸿蒙」核心技术HTML5+CSS3(四)

1、CSS三大特性 CSS的三大特性指的是层叠(Cascading)、继承(Inheritance)和样式(Style)。 层叠(Cascading):当多个样式规则应用于同一个元素时,CSS规定了样式的优先级,以确定哪个样式将被应用。层叠顺序由选择器的特异性、来源(如内联样式、内部样式表、外部样式表…

北京大学第一医院与智源研究院共同发布基于可信执行环境的AI医学影像挑战赛

肾动脉狭窄是导致继发性高血压及肾功能不全的常见原因,而目前针对肾动脉狭窄功能学的评估尚处于探索阶段。数据保护和可信计算环境是目前人工智能技术应用于临床研究的一大瓶颈。北京大学第一医院与北京智源人工智能研究院心脏AI 联合研究中心特发布基于可信执行环境…

Ubuntu22.04之解决:Flameshot无法截图问题(二百三十五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

Ant design vue的表格双击编辑功能(即双击开始编辑并自动获得焦点,失去焦点时完成编辑)

本文基于Ant Design Vue官方网站的表格(可编辑单元格)(表格 Table - Ant Design Vue (antdv.com))中的样板代码获得双击编辑且获得焦点、失去焦点时完成编辑的功能。 要点: (1)双击时候实现编辑&#xff…

如何使用Cloudways搭建WordPress网站(附最新Cloudways优惠码)

如今,搭建网站已经变得非常简单,这主要得益于开源的CMS建站系统的兴起。即使是不懂编程的人也能轻松搭建自己的网站,这些CMS系统提供了丰富的主题模板和插件,使用户可以通过简单的拖放和配置操作来建立自己的网站。 WordPress是目…

子网划分案例

4.2子网划分 “有类编址”的地址划分过于死板,划分的颗粒度太大,会有大量的主机号不能被充分利用,从而造成了大量的IP地址资源浪费。因此可以利用子网划分来减少地址浪费,即VLSM (Variable Length Subnet Mask),可变长…

Vue3学习- setup 使用 useRoute函数返回为 undefined,语法糖与非语法糖的错误、正确的写法情况

代码情况 import { ref,computed,watch,reactive } from vue import { RouterView,RouterLink,useRoute,useRouter } from vue-router import HelloWorld from ./components/HelloWorld.vue function toggleRoute(){const temprou useRoute()console.log(temprou); }正确 im…

国内前十款专业外盘期货交易app软件排名盘点(综合版)

随着社会经济的不断发展,现在投资者倾向于投资各种项目以获取超额收益。在选择外盘期货交易app软件时,有几个关键的因素需要考虑。首先是软件的可靠度和安全度,因为交易涉及到实际资金。因此,需要选择具备专业资质、经验丰富、充分…

mybatis问题汇总

Mapped Statements collection does not contain value for mapper.xml中namespace存在问题 使用 ${}实现关键字(表名、列名)的可变 #{} 和 ${} 的区别

Android下HWC以及drm_hwcomposer普法(上)

Android下HWC以及drm_hwcomposer普法(上) 引言 按摩得全套,错了,做事情得全套,普法分析也是如此。drm_hwcomposer如果对Android图形栈有一定研究的童鞋们应该知道它是Android提供的一个的图形后端合成处理HAL模块的实现。但是在分析这个之前…

汽车悬架分为哪几类

汽车悬架分为哪几类 1)汽车的悬架系统可根据结构分为两种:独立悬架和非独立悬架,独立悬架根据构造又可以分为CDC运动悬架(CDC电磁悬架系统)和空气悬架; 2)当前比较火热的空气悬架,是独立悬架的一种; 3)前轮主要使用麦弗逊式独立悬架 和 双叉臂悬架,后轮主要使用多…

实景三维简介

实景三维简介 一、实景三维定义 实景三维(3D real scene),是一个专业术语,对一定范围内人类生产、生活和生态空间进行真实、立体、时序化反映和表达的数字空间。 对一定范围内人类生产、生活和生态空间进行真实、立体、时序化反…

倒角距离【Chamfer Distance】

倒角距离(chamfer distance)是用于评估两组点之间的相似度的度量。给定两个点集 A 和 B,倒角距离定义为 A 中每个点到 B 中最近邻点的距离之和,加上 B 中每个点到 A 中最近邻点的距离之和。它用于各种应用,包括计算机视…

nginx 反向代理配置详解

Nginx 反向代理是一种常用的部署策略,用于将客户端请求转发到内部网络中的一个或多个服务器,这些服务器直接处理请求并返回响应给Nginx,再由Nginx转交给客户端。这种设置可以提高网站的可用性和安全性,同时也能实现负载均衡、缓存…

数据分析——分群思维、RFM实现用户分群

分群思维 按照某个指标(可以是用户生命周期、活跃度、付费)来划分用户 分群好处: 1.是用户精细化运营的基础,也就是说只有分群了才可以针对每一个群进行运营策略 2.体现用户的差异性,比较不同层级的差异更能发现问题 …

每期一个小窍门 k8s版本的 Prometheus + grafana + alertmanager 三件套部署监控落地

首先部署prometheus 首先是pvc apiVersion: v1 kind: PersistentVolumeClaim metadata:name: prometheus-data-pvcnamespace: monitor spec:accessModes:- ReadWriteManystorageClassName: "data-nfs-storage"resources:requests:storage: 10Gi然后接着 cluster-ro…

CSS+Canvas绘制最美星空(一闪一闪亮晶晶效果+流星划过)

1.效果 2.代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><style>body,html {margin: 0;padding: 0;ov…

商业应用中的AI模型选择:开源还是闭源?

评价一个AI模型“好不好”、“有没有发展”&#xff0c;往往绕不开“开源”和“闭源”这两条不同的发展路径。这两种路径各有优劣&#xff0c;从数据隐私、商业应用和社区参与三个方面来看&#xff0c;我们可以更全面地理解它们的差异和影响。 方向一&#xff1a;数据隐私 开…

【Vue】v-on事件绑定指令

作用&#xff1a; 注册事件 添加监听 提供处理逻辑 使用Vue时&#xff0c;如需为DOM注册事件&#xff0c;及其的简单&#xff0c;语法如下&#xff1a; // 内联语句&#xff1a;就是一段可执行代码 // 内联语句是在模板中写代码&#xff0c;所以它是可以直接访问到里面的数…

Android12 将成果物生成到system和vendor分区

最近工作中遇到这么个事情&#xff0c;之前项目中留存的动态库是生成在vendor分区中&#xff0c;现在需要在system_ext分区中也生成&#xff0c;以便Android的系统进程也能访问这个动态库。 因此&#xff0c;需要修改对应动态库项目的Android.bp cc_library_shared { name: &qu…