英特尔® Arria® 10收发器PHY用户指南

ID 683617
日期 3/28/2022
Public
文档目录

2.4.9. Enhanced PCS端口

图 24. Enhanced PCS接口PMA和PCS模块的被标识的输入和输出代表总线,而不是单独信号。

在下表中,变量代表这些参数:

  • <n>—通道数
  • <d>—串化因子
  • <s>—符号大小
  • <p>—PLL数量
表 48.  Enhanced TX PCS:并行数据,控制和时钟
名称 方向 时钟域 说明

tx_parallel_data[<n>128-1:0]

输入

与驱动FIFO写入侧的时钟同步(tx_coreclkin tx_clkout)

从FPGA架构到TX PCS的TX并行数据输入。如果在Transceiver Native PHY IP Parameter Editor中选择Enable simplified interface,那么tx_parallel_data仅包括您指定的配置所需要的比特。

您必须将无效(not active)的数据管脚接地。对于单宽度配置,下面比特是有效的(active):

  • 32-bit FPGA架构到PCS接口宽度:tx_parallel_data[31:0]. Ground [127:32].
  • 40-bit FPGA架构到PCS接口宽度:tx_parallel_data[39:0]. Ground [127:40].
  • 64-bit FPGA架构到PCS接口宽度:tx_parallel_data[63:0]. Ground [127:64].

对于双宽度配置,下面比特是有效的(active):

  • 40-bit FPGA架构到PCS接口宽度:data[103:64], [39:0]. Ground [127:104], [63:40].
  • 64-bit FPGA架构到PCS接口宽度: data[127:64], [63:0].

对于32-bit、50-bit和67-bit FPGA架构到PCS接口宽度,不支持双宽度模式。

unused_tx_parallel_data

输入

tx_clkout 当使能Enable simplified data interface时,此端口使能。将所有这些比特连接到0。当Enable simplified data interface禁用时,未使用的比特是tx_parallel_data的一部分。请参考tx_parallel_data来确定您需要接地的比特。
tx_control[<n><3>-1:0]

tx_control[<n><18>-1:0]

输入

与驱动FIFO写入侧的时钟同步(tx_coreclkin tx_clkout)

根据所选的收发器配置规则,tx_control比特有不同的功能。当Simplified data interface使能时,此总线中的比特数量会改变,因为未使用的比特显示为unused_tx_control端口的一部分。

关于详细信息,请参考Enhanced PCS TX和RX控制端口部分。

unused_tx_control[<n> <15>-1:0]

输入

与驱动FIFO写入侧的时钟同步(tx_coreclkin tx_clkout)

当使能Enable simplified data interface时使能端口。将所有这些比特连接到0。当Enable simplified data interface禁用时,未使用的比特是tx_control的一部分。

请参考tx_control来识别需要接地的比特。

tx_err_ins 输入 tx_coreclkin

对于Interlaken协议,如果已开启Enable simplified data interface,那么可以使用该比特插入同步头(synchronous header)和CRC32错误。

置位时,该周期字的同步头(synchronous header)被损坏的同步头替换。如果开启Enable Interlaken TX CRC-32 generator error insertion,那么也会插入一个CRC32错误。损坏的同步头是2'b00 (一个控制字)和2'b11 (一个数据字)。对于CRC32错误插入,用于该周期的CRC计算的字被错误地反转,从而导致Diagnostic Word of the Metaframe中错误的CRC32。

注意:不能生成Framing Control Words的同步头错误(synchronous header error)和CRC32错误,因为Frame Control Words是在嵌入在TX PCS中的帧生成器中生成的。如果使能了Transceiver Native PHY IP GUI中的CRC-32错误插入功能,那么同步头错误和CRC32错误都会被插入。

tx_coreclkin[<n>-1:0] 输入 时钟

FPGA架构时钟。驱动TX FIFO的写入侧。对于Interlaken协议,此时钟的频率从datarate/67到datarate/32。使用低于此范围的频率会导致TX FIFO下溢,并导致数据损坏。

tx_clkout[<n>-1:0]

输出

时钟

这是一个由本地CGB为非绑定配置(non bonded configurations)以及由主CGB为绑定配置(bonded configurations)生成的并行时钟。此时钟对TX Enhanced PCS的模块提供时钟。此时钟的频率等于数据速率除以PCS/PMA接口宽度。

表 49.  Enhanced RX PCS:并行数据,控制和时钟
名称 方向 时钟域 说明

rx_parallel_data[<n>128-1:0]

输出

与驱动FIFO的读取侧的时钟同步(rx_coreclkinrx_clkout)

从RX PCS到FPGA架构的RX并行数据。如果在Transceiver Native PHY IP GUI中选择了Enable simplified data interface,那么rx_parallel_data仅包括您指定的配置所需要的比特。否则,此接口为128比特宽。

当FPGA架构到PCS接口宽度为64比特时,以下比特对窄于128比特的接口是有效的。您可以将未使用的比特悬空或断开。

  • 32-bit FPGA架构到PCS宽度:data[31:0]。
  • 40-bit FPGA架构到PCS宽度:data[39:0]。
  • 64-bit FPGA架构到PCS宽度:data[63:0]。

当FPGA架构到PCS接口数据宽度是128比特时,以下比特是有效的:

  • 40-bit FPGA架构到PCS宽度:data[103:64],[39:0]。
  • 64-bit FPGA架构到PCS宽度:data[127:0]。
unused_rx_parallel_data

输出

rx_clkout

当开启Enable simplified data interface时,此信号指定未使用的数据。当简化的数据接口未设置时,未使用的比特是rx_parallel_data的一部分。您可以将未使用的数据输出悬空或断开。
rx_control[<n> <20>-1:0] 输出

与驱动FIFO的读取侧的时钟同步(rx_coreclkinrx_clkout)

表明rx_parallel_data总线是控制还是数据。

关于详细信息,请参考Enhanced PCS TX和RX控制端口部分。

unused_rx_control[<n>10-1:0] 输出

与驱动FIFO的读取侧的时钟同步(rx_coreclkinrx_clkout)

这些信号仅在开启Enable simplified data interface时存在。当简化的数据接口没有设置时,未使用的比特是rx_control的一部分。这些输出可以被悬空。
rx_coreclkin[<n>-1:0] 输入 时钟

FPGA架构时钟。驱动RX FIFO的读取侧。对于Interlaken协议,此时钟的频率范围从datarate/67到datarate/32。

rx_clkout[<n>-1:0]

输出

时钟

由收发器RX PMA恢复的低速并行时钟,对RX Enhanced PCS中的模块提供时钟。此时钟的频率等于PCS/PMA接口宽度除以数据速率(datarate)。

表 50.  Enhanced PCS TX FIFO
名称 方向 时钟域 说明
tx_enh_data_valid[<n>-1:0]

输入

与驱动FIFO写入侧的时钟同步(tx_coreclkintx_clkout)

此信号的置位表明TX数据是有效的。对于10GBASE-R without 1588,将此信号连接到1'b1。对于10GBASE-R with 1588,您必须根据齿轮箱比率控制此信号。对于Basic和Interlaken,您需要根据TX FIFO标志控制此端口,以便FIFO既不上溢也不下溢。

关于详细信息,请参考Enhanced PCS FIFO操作

tx_enh_fifo_full[<n>-1:0]

输出

与驱动FIFO写入侧的时钟同步tx_coreclkin

驱动TX FIFO的写入侧的时钟可以是tx_coreclkin (FPGA架构时钟)或者tx_clkout

此信号的置位表明TX FIFO已满。由于深度始终保持不变,因此对于相位补偿模式可以忽略此信号。

关于详细信息,请参考Enhanced PCS FIFO操作

tx_enh_fifo_pfull[<n>-1:0]

输出

与驱动FIFO写入侧的时钟同步tx_coreclkin

驱动TX FIFO的写入侧的时钟可以是tx_coreclkin (FPGA架构时钟)或者tx_clkout

当TX FIFO达到半满阈值时此信号被置位。由于深度始终保持不变,因此对于相位补偿模式可以忽略此信号。

关于详细信息,请参考Enhanced PCS FIFO操作

tx_enh_fifo_empty[<n>-1:0]

输出

与驱动FIFO的读取侧的时钟同步tx_clkout

置位时,表明TX FIFO是空的。此信号置位2到3个时钟周期。由于深度始终保持不变,因此对于相位补偿模式可以忽略此信号。

关于详细信息,请参考Enhanced PCS FIFO操作

tx_enh_fifo_pempty[<n>-1:0]

输出

与驱动FIFO的读取侧的时钟同步 tx_clkout

置位时,表明TX FIFO已达到指定的半满阈值。当开启此选项时,Enhanced PCS使能tx_enh_fifo_pempty端口,这是异步的。此信号置位2到3个时钟周期。由于深度始终保持不变,因此对于相位补偿模式可以忽略此信号。

关于详细信息,请参考Enhanced PCS FIFO操作

表 51.  Enhanced PCS RX FIFO
名称 方向 时钟域 说明
rx_enh_data_valid[<n>-1:0]

输出

与驱动FIFO的读取侧的时钟同步(rx_coreclkinrx_clkout)

置位时,表明rx_parallel_data是有效的。当rx_enh_data_valid信号为低电平时丢弃无效的RX并行数据。

当您选择以下参数时,此选项可用:

  • Enhanced PCS Transceiver configuration rules指定Interlaken
  • Enhanced PCS Transceiver configuration rules指定Basic,RX FIFO模式是Phase compensation
  • Enhanced PCS Transceiver configuration rules指定Basic,RX FIFO模式是Register

关于详细信息,请参考Enhanced PCS FIFO操作

rx_enh_fifo_full[<n>-1:0]

输出

与驱动FIFO写入侧的时钟同步rx_clkout

置位时,表明RX FIFO已满。此信号置位2到3个时钟周期。由于深度始终保持不变,因此对于相位补偿模式可以忽略此信号。

关于详细信息,请参考Enhanced PCS FIFO操作

rx_enh_fifo_pfull[<n>-1:0]

输出

与驱动FIFO写入侧的时钟同步rx_clkout

置位时,表明RX FIFO已达到指定的半满阈值。此信号置位2到3个时钟周期。由于深度始终保持不变,因此对于相位补偿模式可以忽略此信号。

关于详细信息,请参考Enhanced PCS FIFO操作

rx_enh_fifo_empty[<n>-1:0]

输出

与驱动FIFO的读取侧的时钟同步rx_coreclkin

驱动TX FIFO的读取侧的时钟可以是rx_coreclkin (FPGA架构时钟)或者rx_clkout

置位时表明RX FIFO是空的。由于深度始终保持不变,因此对于相位补偿模式可以忽略此信号。

关于详细信息,请参考Enhanced PCS FIFO操作

rx_enh_fifo_pempty[<n>-1:0]

输出

与驱动FIFO的读取侧的时钟同步rx_coreclkin

驱动TX FIFO的读取侧的时钟可以是rx_coreclkin (FPGA架构时钟)或者rx_clkout

置位时,表明RX FIFO已达到指定的半空阈值。由于深度始终保持不变,因此对于相位补偿模式可以忽略此信号。

关于详细信息,请参考Enhanced PCS FIFO操作

rx_enh_fifo_del[<n>-1:0]

输出

与驱动FIFO读一侧的时钟同步(rx_coreclkinrx_clkout)

置位时,表明已经从RX FIFO中删除一个字。此信号置位2到3个时钟周期。此信号用于10GBASE-R协议。

rx_enh_fifo_insert[<n>-1:0]

输出

与驱动FIFO读取侧的时钟同步(rx_coreclkinrx_clkout)

置位时,表明已经插入一个字到RX FIFO。此信号用于10GBASE-R协议。

rx_enh_fifo_rd_en[<n>-1:0]

输出

与驱动FIFO读取侧的时钟同步(rx_coreclkinrx_clkout)

仅适用于Interlaken,此信号置位时,从RX FIFO读取一个字。您需要根据RX FIFO标志来控制此信号,使FIFO既不会下溢也不会上溢。
rx_enh_fifo_align_val[<n>-1:0]

输入

与驱动FIFO读取侧的时钟同步(rx_coreclkinrx_clkout)

置位时,表明已经发现字对齐码型。此信号仅对Interlaken协议有效。

rx_enh_fifo_align_clr[<n>-1:0]

输入

与驱动FIFO的读取侧的时钟同步(rx_coreclkinrx_clkout)

置位时,FIFO复位并开始查找一个新的对齐码型。此信号仅对Interlaken协议有效。置位此信号至少4个周期。

表 52.  Interlaken帧生成器,同步器和CRC32
名称 方向 时钟域 说明
tx_enh_frame[<n>-1:0] 输出

tx_clkout

置位2或3个并行时钟周期,以指示一个新的元帧(metaframe)的开始。

tx_enh_frame_diag_status[<n> 2-1:0]

输入

tx_clkout

驱动包含在帧层诊断字(framing layer diagnostic word)(bits[33:32])中的通道状态消息。此消息插入到frame generator block生成的下一个诊断字中。该总线在tx_enh_frame脉冲前后必须保持5个时钟周期恒定。下面的编码定义为:

  • Bit[1]: 1表明通道是可操作的。0表明通道是不可操作的。
  • Bit[0]: 1表明链路是可操作的。0表明链路是不可操作的。
tx_enh_frame_burst_en[<n>-1:0]

输入

tx_clkout

如果Enable frame burst使能,那么此端口控制从TX FIFO到帧生成器的帧生成器数据读取。如果tx_enh_frame_burst_en的值为0,那么帧生成器不从TX FIFO读取数据用于当前元帧(Metaframe),而是插入SKIP字,作为元帧(Metaframe)的有效负载。当tx_enh_frame_burst_en的值为1时,帧生成器从TX FIFO读取数据用于当前元帧(Metaframe)。此端口在tx_enh_frame脉冲的前后必须保持5个时钟周期恒定。

rx_enh_frame[<n>-1:0]

输出

rx_clkout

置位时表明一个新接收的元帧的开始。此信号是脉冲展宽的。

rx_enh_frame_lock[<n>-1:0]

输出

rx_clkout

置位时表明Frame Synchronizer状态机已经实现元帧描述。此信号是脉冲展宽的。

rx_enh_frame_diag_status[2 <n>-1:0]

输出

rx_clkout

驱动包含在Framing Layer Diagnostic Word (bits[33:32])中的通道状态消息。帧锁定期间,在元帧的结尾接收到一个有效的Diagnostic Word时,此信号被锁存。下面的编码定义为:

  • Bit[1]: 1表明通道是可操作的。0表明通道是不可操作的。
  • Bit[0]: 1表明链路是可操作的。0表明链路是不可操作的。
rx_enh_crc32_err[<n>-1:0]

输出

rx_clkout

置位时表明当前元帧的一个CRC错误。在当前元帧的末尾置位。此信号置位2到3个时钟周期。

表 53.  10GBASE-R BER检查器
名称 方向 时钟域 说明
rx_enh_highber[<n>-1:0] 输出

rx_clkout

置位时表明一个大于10-4的误码率。对于10GBASE-R协议,在125 µs之内有至少16个错误时出现此BER。此信号置位2到3个时钟周期。

rx_enh_highber_clr_cnt[<n>-1:0]

输入

rx_clkout

置位时清零内部计数器,该计数器指示BER状态机进入BER_BAD_SH状态的次数。
rx_enh_clr_errblk_count[<n>-1:0] (10GBASE-R and FEC)

输入

rx_clkout

置位时,错误模块计数器复位成0。此信号的置位清零内部计数器,该计数器显示RX状态机进入RX_E状态的次数。在FEC模块使能的模式下,此信号的置位复位RX FEC模块中的状态计数器。

表 54.  模块同步器(Block Synchronizer)
名称 方向 时钟域 说明
rx_enh_blk_lock<n>-1:0] 输出

rx_clkout

置位时,表明模块同步器已经实现模块描述。此信号用于10GBASE-R和Interlaken。
表 55.  齿轮箱(Gearbox)
名称 方向 时钟域 说明
rx_bitslip[<n>-1:0] 输入

rx_clkout

rx_parallel_datarx_bitslip输入的每个正边沿移动1个比特。保持至少20个周期的rx_bitslip脉冲间隔。最大位移是< pcswidth -1>比特,这样如果PCS是64比特宽,那么您就能够移动0-63个比特。

tx_enh_bitslip[<n>-1:0] 输入 rx_clkout

此信号的值控制传递到PMA之前要滑移的tx_parallel_data比特数。

表 56.  KR-FEC
名称 方向 时钟域 说明
tx_enh_frame[<n>-1:0] 输出

tx_clkout

TX KR-FEC的异步状态标志输出,表明生成的KR FEC帧的开始
rx_enh_frame[<n>-1:0] 输出 rx_clkout RX KR-FEC的异步状态标志输出,表明生成的KR FEC帧的开始
rx_enh_frame_diag_status 输出 rx_clkout

RX KR-FEC的异步状态标志输出,表明当前接收帧的状态。

  • 00:无错误
  • 01:可纠正的错误
  • 10:不可纠正的错误
  • 11:复位条件/预锁定条件