PCIe时钟偏差补偿 (Clock Tolerance Compliance)

简介: PCIe时钟偏差补偿 (Clock Tolerance Compliance)

1. PCIe 时钟偏差


1.1 PCIe 时钟偏差出现的原因


为了减少EMI电磁辐射,芯片厂家往往会对时钟进行扩频(Spread Spectrum Clocking,SSC)。即便不进行SSC,受限于PLL工艺,时钟频率也很难做到与期望频率完全一致。


这样一来,PCIe发送端与接收端存在时钟偏差,尤其是频率偏差。当收发端时钟存在偏差时,如果不对时钟偏差进行补偿,收发端比特速率不匹配势必会导致数据包接收出错。





1.2 PCIe 时钟偏差补偿


为了实现收发端间的有效数据包正确传输,PCIe采用插入SKIP有序集的方式来对时钟偏差进行补偿。发送端(Tx)周期性地在传输lane上发送SKIP有序集,接收端(Rx)接收SKIP有序集并存入其弹性缓存(elastic buffer)中。Rx通过这种删除/插入SKP的方式,来达到补偿时钟偏差的目的。




1.2.1 8b/10b


8b/10b编码时(Gen1/Gen2),Tx发送的SKIP有序集由4个符号组成,以COM符号开始,后面跟着3个SKP符号。若Tx速率快于Rx,Rx从SKIP有序集中删除一个SKP;若Tx速率慢于Rx,Rx从SKIP有序集中插入一个SKP。Rx接收的SKIP有序集为1*COM+(1~5)*SKP。Tx发送有序集的时间间隔为1180~1538符号。




1.2.2 128b/130b


128b/130编码时(Gen3/Gen4/Gen5),Tx发送的SKIP有序集由16个符号组成。Rx接收的SKIP有序集可以为8,12,16,20,24符号。Tx发送有序集的时间间隔为370~375符号。


跟8b/10b下的SKIP有序集相比,128b/130b时的有序集是16SKP+1SKP_END(or SKP_END_CTL) + 3*other symbol。SKP symbol值为0xaa@gen3, 0x99@gen4/gen5。


SKIP_END symbol值为0xe1,SKP_END_CTL值为0x78。




Tx端发送SKIP有序集的原则:


1. 最快1180/370个符号周期、最慢1538/375个符号周期需发送一次SKIP有序集;


2. 多条lane上的SKIP有序集需同时发送,必要时可用PAD字符填充;


3. 发送SKIP有序集不能打乱正常包的发送(即需在包的边界进行插入),发送长包时可在长包发送完城后可集中一次发送多个SKIP有序集;


4. 发送逻辑闲时仍需发送SKIP有序集;


5. Low Power状态时SKIP interval timer需复位。




仿真中遇到的问题


1. SNPS PCIe VIP 报错

遇到问题:

UVM_ERROR */pciesvc_phy.svp(14136) @ *ns: uvm_test_top.*.host_env.io[0].port0.pl0[register_fail:ACTIVE_PL:SKP_OS:phy_max_rx_skp_interval] ReceivePhy: Exceeded maximum interval of 1538 symbol times on lane 0 before receiving a skp ordered set



解决办法:


VIP config中加大skp interval

目录
相关文章
|
缓存 移动开发 JavaScript
PCIe 参考时钟架构 (Refclk Architecture)
PCIe 参考时钟架构 (Refclk Architecture)
5102 0
PCIe 参考时钟架构 (Refclk Architecture)
|
6月前
|
存储
数字电路基础(Digital Circuit Basis )-1
数字电路基础(Digital Circuit Basis )
数字电路基础(Digital Circuit Basis )-1
|
6月前
|
算法
【Simulink】采用延时补偿的三相并网逆变器FCS-MPC
【Simulink】采用延时补偿的三相并网逆变器FCS-MPC
|
调度 C++
NR HARQ (四)dynamic codebook
上篇提到type-1 HARQ-ACK codebook,即semi-static codebook,UE要为每个PDSCH候选位置生成反馈,也会包含实际没有下行传输的PDSCH,再加上配置CBG的场景,HARQ-ACK 码本中包含的无用信息会更多,开销确实很大。因而,Type-2 HARQ-ACK 码本即dynamic 码本就出现了,目前看实网中一般都用的dynamic 码本,还没有见过semi-static 码本,长话短说,下面就看下相关内容。
|
芯片 iOS开发
MCU 5V tolerant是什么意思?
MCU 5V tolerant是什么意思?
深入理解AMBA总线(十四)AXI Ordering Model、非对齐访问等
深入理解AMBA总线(十四)AXI Ordering Model、非对齐访问等
1289 0
|
异构计算 SoC
深入理解AMBA总线(三)APB interconnect的补充
深入理解AMBA总线(三)APB interconnect的补充
286 0
【UCIe】UCIe Clock Gating
【UCIe】UCIe Clock Gating
533 0
【UCIe】UCIe Clock Gating