仅对英特尔可见 — Ixiasoft
仅对英特尔可见 — Ixiasoft
2.5.1.2.2. Gen3功能
以下小节描述 Intel® Stratix® 10收发器模块对PIPE Gen3功能的支持。
PCS支持PIPE 3.0基本规范。基于PIPE 3.0的32-bit宽接口控制PHY功能,例如:电气空闲的传输,接收器检测和速度协商和控制。
自动速度协商(ASN)
PIPE Gen3模式使能Gen1 (2.5 Gbps)、Gen2 (5.0 Gbps)和Gen3 (8.0 Gbps)信号数据速率之间的ASN。该信号速率的切换是通过频率调节以及使用固定的32-bit宽基于PIPE 3.0的接口的PMA和PCS模块的配置来完成的。
PMA切换Gen1、Gen2和Gen3数据速率之间的时钟。对于non-bonded x1通道,ASN模型在该通道中促进了速度协商。对于bonded x2、x4、x8和x16通道,ASN模型选择主通道来控制速率的切换。该主通道分配速度变化请求到其它的PMA和PCS通道。
当Hard IP或者FPGA架构请求速率变更时,启动PCIe Gen3速度协商过程。ASN然后将PCS处于复位状态,动态地关闭时钟路径以脱离当前有效的状态PCS(Standard PCS或者Gen3 PCS)。如果需要切换到Gen3,或者从Gen3中进行切换,那么ASN自动选择正确的PCS时钟路径以及多路复用器中数据通路选择。ASN模块过后发送一个请求给PMA模块进入到速率切换状态,并且等待确认速率切换完成信号。当PMA完成速率切换并且发送确认到ASN模块后,ASN使能时钟路径来建立新的PCS模块,并释放PCS复位。ASN模块置位pipe_phy_status信号表明成功地完成此过程。
速率切换
PCIe Gen3 Capability Mode Enabled | Gen1 | Gen2 | Gen3 |
---|---|---|---|
通道数据速率 | 2.5 Gbps | 5 Gbps | 8 Gbps |
PCS时钟频率 | 250 MHz | 500 MHz | 250 MHz |
FPGA架构IP时钟频率 | 62.5 MHz | 125 MHz | 250 MHz |
PIPE接口宽度 | 32-bit | 32-bit | 32-bit |
pipe_rate [1:0] | 2'b00 | 2'b01 | 2'b10 |
Gen1、Gen2和Gen3之间的速度变化顺序如下所示:
- 在FPGA架构中实现的PHY-MAC层通过pipe_rate[1:0]请求速率变化。
- ASN模块等待TX FIFO刷新(flush out)数据。然后,ASN模块置位PCS复位。
- ASN对Standard PCS和Gen3 PCS置位时钟关闭信号以动态关闭时钟。
- 当速率切换到 Gen3 速度或者从 Gen3 速度切换到其他速度时,ASN 会对时钟和数据多路复用器选择信号进行置位。
- ASN使用pipe_sw[1:0]输出信号向PMA发送速率变化请求。
- ASN持续监控来自PMA的pipe_sw_done[1:0]输入信号。
- 在ASN接收到pipe_sw_done[1:0]信号之后,它会将时钟关闭信号置低以释放时钟。
- ASN将PCS复位置低。
- ASN向PHY-MAC接口发送速度切换完成信号。这是通过向PHY-MAC接口发送pipe_phy_status信号来完成的。
Gen3发送器电路空闲生成(Gen3 Transmitter Electrical Idle Generation)
在基于PIPE 3.0的接口中,您可以在低功耗状态期间将发送器置于电气空闲状态。在发送器进入电气空闲之前,您必须发送电气空闲有序集(Electrical Idle Ordered Set),它由值为0x66的16个符号组成。在电气空闲期间,发送器差分和共模电压电平是基于PCIe Base Specification 3.0的 。
Gen3时钟补偿
当使用Gen3 PIPE收发器配置规则时,从Native PHY IP core使能此模式。
Gen3功耗状态管理
为实现功耗最小化,PCIe base specification定义了PHY层器件的低功耗状态。Gen3 PCS不实现这些节能措施,除了将发送驱动器置于低功耗状态下的电路空闲。在P2低功耗状态中,收发器没有禁用PIPE模块时钟。
CDR控制
- 控制PMA CDR以实现比特和符号对齐
- 控制PMA CDR以在分配的时间内进行偏斜去除
- 生成其他PCS模块的状态信号
齿轮箱(Gearbox)
根据PIPE 3.0规范,对于在Gen3 PCS上移动的每128比特,PHY必须发送130比特的数据。 Intel使用pipe_tx_data_valid信号(每16个模块的数据)发送累积的32比特数据。
130-bit模块按如下方式在32-bit数据通路中接收:34 (32+2-bit sync header),32,32,32。在第一个周期中,变速器将34-bit输入数据转换为32-bit数据。在接下来的三个时钟周期中,变速器将合并来自相邻周期的比特。为了使变速器正常工作,必须在数据中为每16个移位提供一个间隙,因为每个移位都包含两个额外比特,用来将初始的34比特转换为变速器中的32比特。在16个移位之后,变速器又额外发送出去了一些32比特数据。这需要输入数据流中有间隙,这通过在每16个数据模块之后驱低pipe_tx_data_valid一个周期来实现。