PCIE-Precode

2024-08-29 04:44
文章标签 pcie precode

本文主要是介绍PCIE-Precode,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Transmitter Precode Request:

Precoding可以有效的降低Burst errors(突发连续)的影响,但是Bit Error Rate(BER将上升为之前的两倍.

​​​​​​[FPGA 实现及PCIe IP 核知识点] PCIe为什么要增加Precoding-FPGA常见问题论坛-FPGA CPLD-ChipDebug

需要注意的点:

(1)detect状态下,Precoding会关闭(无论任何速率);

(2)Precoding的打开需要在进入当前速率之前打开,通过在进入到Recovery.Speed之前发送EQ TS2 或者128b/130b EQ TS2 Ordered Sets(其中Transmitter Precode Request位需要设为1)来开启(对于每个高于32GT/s速率的情况,需要独立进行precoding request)(开启前tx);

 如果自己的rx在进入Recovery.Speed之前的Recovery.RcvrCfg状态下收到了8个连续的EQ TS2或者128b/130b EQ TS2,这个rx对应的tx的Transmitter Precode Request bit设为1,那么tx在退出Recovery.Speed到更高速率的情况下需要打开precoding功能;一旦打开就持续到下次recovery.rcvrcfg(为了进入Recovery.Speed)中收到收到了8个连续的EQ TS2或者128b/130b EQ TS2(Transmitter Precode Request0,相同速率下)(开启前rx

针对32GT/s或者大于其速率的情况,如果在当前速率下已经打开precoding,在recovery状态下发送的TS1中的Transmitter Precoding On比特需要置为1(开启过程中)

对于打开precoding的lane0(tx),需要把32.0 GT/s Status Register中的Transmitter Precoding On 比特置为1,rx收到相关打开precoding的指示之后,也需要把32.0 GT/s Status Register中的Transmitter Precoding On 比特置为1(64GT/S下类似)(开启后需要记录寄存器);

(3)仅仅32GT/s,64GT/s下使用,32GT/s以下无法使用;

(4) 如果在没有执行equalization或者no equalization机制下运行在32GT/s或者更高的速率下,那么会根据上一次eq中的信息来确定是否要执行precoding,如果再次之前从来没有执行过eq,那么precoding就不需要打开。

(5)仅scrambled的bit需要precoded ;

(6)针对64GT/s下的precoding:

TS0不需要precoding;

Only scrambled bits on a 2-bit aligned boundary are precoded, when both bits are scrambled and precoding is enabled.

这篇关于PCIE-Precode的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1116879

相关文章

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo

FPGA PCIE驱动,windriver驱动 wdf驱动 windows linux PCIE DMA驱动 支持win10 server2016

一:相关介绍         本人一直从事fpga pcie dma驱动开发,可以开发windwos Linux 原生驱动 wdf 或者基于第三方库的windriver。支持win10 win server。提供稳定的驱动库,或者源码,开发者可以不关心底层驱动直接使用封装的库。 二:PCIE 驱动开发的稳定性和高效性: 本驱动库均已经进行了实际交付使用,通过了严格的jun

《PCI Express体系结构导读》随记 —— 第II篇 第7章 PCIe总线的数据链路层与物理层(7)

接前一篇文章:《PCI Express体系结构导读》随记 —— 第II篇 第7章 PCIe总线的数据链路层与物理层(6) 7.1 数据链路层的组成结构 7.1.1 数据链路层的状态 3. DL_Active状态 当数据链路层处于DL_Active状态时,PCIe链路可以正常工作。此时数据链路层可以从事务层和物理层正常接收和发送TLP、并处理DLLP,此时数据链路

【精讲】PCIe基础篇——Non-Prefetchable Prefetchable MMIO

MMIO 有两种, Non-Prefetchable MMIO:非预取内存空间 Prefetchable MMIO :可预取内存空间 Prefetchable MMIO:将MMIO的一个区域设置为可预取的,允许CPU提前获取该区域中的数据,以预测请求者在不久的将来可能需要比实际请求更多的数据。对数据进行这种小规模缓存是安全的,因为读取数据不会改变目标设备上的任何状态信息。也就是说,

【精讲】PCIe基础篇——Memory IO 地址空间

在早期的PC中,IO设备中的内部寄存器/存储是通过IO地址空间(由Intel定义)来访问的。然而,由于与IO地址空间相关的一些限制和不良影响(我们在这里不讨论),IO地址空间很快就失去了软件和硬件供应商的青睐。这导致IO设备的内部寄存器/存储被映射到内存地址空间(通常称为Memory mapped IO,或MMIO)。然而,由于早期的软件是使用IC地址空间来访问IO设备上的内部寄存

【精讲】PCIe基础篇——BAR(Base Address Register)详解

一、为什么需要BAR         系统中的每个设备中,对地址空间的大小和访问方式可能有不同的需求,例如,一个设备可能有256字节的内部寄存器/存储,应该可以通过IO地址空间访问,而另一个设备可能有16KB的内部寄存器/存储,应该可以通过基于MMIO的设备访问。哪些地址应该使用哪种方式(IO或Memory)来访问它们的内部位置,这是系统软件(即BIOS和OS内核)的工作。因此设备必须为系统软件

PCIe物理层LTSSM状态机解析

目录 1、Detect 2、Polling 3、Configuration 4、L0 5、Recovery 6、L0s/L1/L2 7、Hot Reset 8、Disabled 9、Loopback 在PCIe链路可以正常工作之前,需要对PCIe链路进行链路训练,在这个过程中,就会用LTSSM状态机。LTSSM全称是Link Training and Status St

PCIe 复位:必须了解的PERST#

1.什么是PERST#    PERST#作为 Fundamental Reset,是直接通过边带信号PERST#(PCI Express Reset)产生的。Fundamental Reset会复位整个PCIe设备,初始化所有与状态机相关的硬件逻辑,端口状态以及配置空间中的配置寄存器等(every state machine and all the hardware logic, port s

PCIe Gen4 ltssm协商过程

本章节我们以gen4 Endpoint为例介绍PCIe ltssm(链路状态机)协商过程。 正常PCIe设备链路状态跳变为   detect-->polling-->configuration-->L0(gen1)-->recovery-->L0(gen3)-->recovery-->L0(gen4)。 需要注意的是在进入configuration状态之前,因为物理层还未收到有效数据(例如在P

BIOS工程师标准作业书 之 PCIE 问题如何处理

bios 工程师作为最基层的岗位,做事情一定要按部就班,肯定不能随意发挥。PCI 作为服务器中最主要的总线,也是最容易出bug 的地方。所以我整理了这篇文章。 当前x86系统PCIe架构中面临的挑战以及问题 系统设计中使用了不同供应商的硬件模块,不同的硬件模块都有各自的错误处理和报错机制。 在这么复杂的系统中,如何快速定位故障的模块,并使系统重新健康的上线工作 如何在复杂的系统中,找到问题