用于 PCI Express* 的 英特尔® FPGA R-tile Avalon® Streaming IP用户指南

ID 683501
日期 6/26/2023
Public
文档目录

6.4.1. 使用Hard IP Reconfiguration接口使能并读取ECRC和LCRC错误计数

偏移(offset) 位的位置 寄存器
x16 8 4
0x0000_0119 x0000_0119 0x0000_0119 [0]

寄存器:AER_CAP/ADV_ERR_CAP_CTRL_OFF

字段:ECRC_CHECK_EN

x0000_036C 0x0000_032C 0x0000_02D4 [1:0] 设置成2'b11以清除计数器。
[4:2] 设置成3'b111以使能计数器。
0x0000_036D 0x0000_032D 0x0000_02D5 [7:0] 设置为0x00。保留。
0x0000_036E 0x0000_032E 0x0000_02D6 [7:0]

事件编号。

对于LCRC错误计数,设置为0x01。

对于ECRC错误计数,设置为0x02。

0x0000_036F 0x0000_032F 0x0000_02D7 [7:0]

组号。

对于LCRC错误计数,设置为0x02。

对于ECRC错误计数,设置为0x03。

0x0000_0370 0x0000_0330 0x0000_02D8 [7:0] 错误计数器数据位[7:0]。
0x0000_0371 0x0000_0331 0x0000_02D9 [7:0] 错误计数器数据位[15:8]。
0x0000_0372 0x0000_0332 0x0000_02DA [7:0] 错误计数器数据位[23:16]。
0x0000_0373 0x0000_0333 0x0000_02DB [7:0] 错误计数器数据位[31:24]。

请按照以下步骤使用Hard IP重配置接口访问上述表格中的寄存器:

  1. 使用IP Parameter Editor使能Hard IP重新配置接口。
  2. 使能寄存器AER_CAP/ADV_ERR_CAP_CTRL_OFF中的CRC检查。
  3. 设置组号和事件号。
  4. 启用计数器。
  5. 读取计数器数据。

以下是启用LCRC计数器的示例:

  1. 使用IP Parameter Editor使能Hard IP重新配置接口。
  2. 通过对寄存器AER_CAP/ADV_ERR_CAP_CTRL_OFF内的ECRC_CHECK_EN字段执行read-modify-write使能CRC检查。
    1. p0_hip_reconfig_write = 1’b1
    2. p0_hip_reconfig_address[31:0] = 0x0000_0119
    3. p0_hip_reconfig_writedata[7:0] = 8'h01
  3. 对地址0x0000_036F执行read-modify-write,将Group Number设置为0x2。
    1. p0_hip_reconfig_write = 1’b1
    2. p0_hip_reconfig_address[31:0] = 0x0000_036F
    3. p0_hip_reconfig_writedata[7:0] = 8'h02
  4. 对地址0x0000_036E执行read-modify-write,将Event Number设置为0x1。
    1. p0_hip_reconfig_write = 1’b1
    2. p0_hip_reconfig_address[31:0] = 0x0000_036E
    3. p0_hip_reconfig_writedata[7:0] = 8'h01
  5. 使用0x0对地址0x0000_036D执行read-modify-write。
    1. p0_hip_reconfig_write = 1’b1
    2. p0_hip_reconfig_address[31:0] = 0x0000_036D
    3. p0_hip_reconfig_writedata[7:0] = 8'h00
  6. 对地址0x0000_036C执行read-modify-write以设置Enable Event Counter。
    1. p0_hip_reconfig_write = 1’b1
    2. p0_hip_reconfig_address[31:0] = 0x0000_036C
    3. p0_hip_reconfig_writedata[7:0] = 8'h1C
  7. 从寄存器0x0000_0370、0x0000_0371、0x0000_0372和0x0000_0373执行读操作来读取错误计数器数据。