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

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

6.16.1. 使用PRBS数据码型生成器和检查器

使用 Arria® 10 PRBS生成器和检查器来仿真流量并轻松分析高速链路的特征,而无需完全实现任何上层协议栈层。 PRBS生成器生成一种自对齐码型,并包括已知数量的独特序列。由于PRBS码型是由Linear Feedback Shift Register (LFSR,线性反馈移位寄存器)生成的,因此可以根据前一个码型确定下一个码型。当PRBS检查器接收到已接收码型的一部分时,它可生成下一个比特序列,以验证已接收的下一个数据序列是否正确。

Standard和Enhanced数据路径间共享PRBS生成器和检查器。因而,只有一组控制信号和寄存器。来自各PCS和共享PRBS生成器的数据线在发送到PMA之前为MUX。使能PRBS生成器后,选择PRBS数据线上的数据被发送到PMA。PCS中的数据或PRBS生成器中生成的数据可在任何时候被发送到PMA。

PRBS生成器和检查器可配置成两种宽度的PCS-PMA接口:10比特和64比特。PRBS9适用于10-bit和64-bitPCS-PMA宽度。所有其它PRBS码型仅适用于64-bitPCS-PMA宽度。仅当PCS-PMA接口宽度配置成10位或64位才能使用PRBS生成器和检查器码型。对于任何其他PCS-PMA宽度,为确保对PRBS模块提供正确的时钟,使用PRBS生成器和检查器之前,必须将宽度重配置成10比特或64比特。例如,当收发器配置成20-bit PCS/PMA接口时,必须在设置PRBS生成器和检查器之前,先将PCS-PMA宽度重配置成10比特。PRBS设置不会自动更改PCS/PMA宽度。

PRBS9的10-bit PCS-PMA宽度适用于较低的频率测试。您可以根据数据速率在10-bit或64-bit宽度中配置PRBS9。FPGA架构-PCS接口必须运行在所建议的FPGA内核的速度范围。因此,必须在两种比特宽度模式的其中一种中配置PRBS9,从而使FPGA架构-PCS接口并行时钟运行在此操作范围中。

示例:

  • 如果您想要使用PRBS9,并且数据速率是2.5 Gbps,那么您可以在10-bit模式(PCS-PMA宽度 = 10)下使用PRBS9。在这种情况下,并行时钟频率 = 数据速率 / PCS-PMA宽度 = 2500 Mbps/10 = 250 MHz。
  • 如果您想要使用PRBS9,并且数据速率是6.4 Gbps,那么您可以在64-bit模式(PCS-PMA宽度 = 64)下使用PRBS9。在这种情况下,并行时钟频率 = 数据速率 / PCS-PMA宽度 = 6400 Mbps/64 = 100 MHz。
  • 如果您想要使用PRBS9,并且数据速率是12.5 Gbps,那么您可以在64-bit模式(PCS-PMA宽度 = 64)下使用PRBS9。在这种情况下,并行时钟频率 = 数据速率 / PCS-PMA宽度 = 12500 Mbps/64 = 195.3125 MHz。
表 291.   PRBS支持的多项式和数据宽度当数据速率低于3 Gbps时,使用PRBS9的10-bit模式。
码型 多项式 64-Bit 10-Bit
PRBS7 G(x) = 1+ x6 + x7 X  
PRBS9 G(x) = 1+ x5 + x9 X X
PRBS15 G(x) = 1+ x14 + x15 X  
PRBS23 G(x) = 1+ x18 + x23 X  
PRBS31 G(x) = 1+ x28 + x31 X  

PRBS检查器具有下列可供FPGA架构使用的控制和状态信号:

  • rx_prbs_done—指示PRBS序列已完成一个完整周期。在使用rx_prbs_err_clr进行复位前一直保持高电平。
  • rx_prbs_err—如果发生错误则变为高电平。此信号进行了脉冲扩展,以便能够在RX FPGA CLK域中采集到。
  • rx_prbs_err_clr—用于复位rx_prbs_err信号。

在Quartus Prime软件的Native PHY IP Parameter Editor中使能PRBS检查器控制和状态端口。

使用PRBS模块时,通过PRBS软核累加器来计算所累加的比特和错误的数量。有关使用累加器和读取错误值的详细信息,请参考PRBS软核累加器部分。

表 292.  用于绑定和非绑定设计的PRBS生成器的寄存器映射
重配置地址(HEX) 重配置比特 属性名 相关地址 属性编码 比特编码 说明
0x006 [2:0] tx_pma_data_sel 0x8 prbs_pat 3'b100 选择PRBS生成器模块
[3] prbs9_dwidth   prbs9_10b 1'b1 在10-bit模式下使能PRBS9
prbs9_64b 1'b0 在64-bit模式下使能PRBS9
[6] prbs_clken   prbs_clk_dis 1'b0 禁用PRBS生成器时钟
prbs_clk_en 1'b1 使能PRBS生成器时钟
0x007 [7:4] prbs_gen_pat 0x8 prbs_7 4'b0001 使能PRBS7码型
prbs_9 4'b0010 使能PRBS9码型
prbs_15 4'b0100 使能PRBS15码型
prbs_23 4'b1000 使能PRBS23码型
prbs_31 4'b0000 使能PRBS31码型
0x008 [4] prbs_gen_pat 0x7 prbs_7 1'b0 使能PRBS7码型
prbs_9 1'b0 使能PRBS9码型
prbs_15 1'b0 使能PRBS15码型
prbs_23 1'b0 使能PRBS23码型
prbs_31 1'b1 使能PRBS31码型
[6:5] tx_pma_data_sel 0x6 prbs_pat 2'b00 使能PRBS生成器
0x110 [2:0] ser_mode   sixty_four_bit 3'b011 64-bit模式
ten_bit 3'b100 10-bit模式
0x111 [4:0] x1_clock_source_sel 0x119 xn_non_bonding64 5'b11000 使能xn non bonding
表 293.  用于绑定和非绑定设计的PRBS检查器的寄存器映射
重配置地址(HEX) 重配置比特 属性名 相关地址 属性编码 比特编码 说明
0x00A [7] prbs_clken   prbs_clk_dis 1'b0 禁用PRBS检查器时钟
prbs_clk_en 1'b1 使能PRBS检查器时钟
0x00B [3:2] rx_prbs_mask   prbsmask1024 2'b11 计数器阈值为1023
prbsmask128 2'b00 计数器阈值为127
prbsmask256 2'b01 计数器阈值为255
prbsmask512 2'b10 计数器阈值为511
[7:4] prbs_ver 0xC prbs_7 4'b0001 使能PRBS7码型
prbs_9 4'b0010 使能PRBS9码型
prbs_15 4'b0100 使能PRBS15码型
prbs_23 4'b1000 使能PRBS23码型
prbs_31 4'b0000 使能PRBS31码型
0x00C [0] prbs_ver 0xB prbs_7 1'b0 使能PRBS7码型
prbs_9 1'b0 使能PRBS9码型
prbs_15 1'b0 使能PRBS15码型
prbs_23 1'b0 使能PRBS23码型
prbs_31 1'b1 使能PRBS31码型
[3] prbs9_dwidth   prbs9_10b 1'b1 PRBS9 10-bit
prbs9_64b 1'b0 PRBS9 64-bit
0x13F [3:0] deser_factor   10 4'b0001 10-bit模式
64 4'b1110 64-bit模式
64x1_clcok_source_sel设置更改成xN non bonding前,您必须读取并保存寄存器0x111[5:0]中的值。要禁用PRBS生成器,请将原始值写回到read-modify-write地址。