P-Tile Avalon® Streaming Intel® FPGA IP for PCI Express* 用户指南

ID 683059
日期 4/04/2024
Public
文档目录

7.1.1.3. 其他调试工具

使用P-Tile Avalon® -ST IP for PCI Express上的Hard IP重配置接口和PHY重配置接口来访问其他寄存器(例如:接收器检测,通道反转等)。

图 70. 用于调试的寄存器访问

使用Hard IP重配置接口

请参考Hard IP重配置接口部分来了解关于此接口和相关地址映射的详细信息。

下表列出了PHY状态寄存器的地址偏移和比特设置。请使用Hard IP重配置接口访问这些只读寄存器。

表 113.  PHY状态的Hard IP重配置接口寄存器映射
偏移(Offset) 比特位置 寄存器
x16 (Port 0) x8 (Port 1)
0x0003E8 0x0003B0 [3:0] Lane select (0x0: Lane 0, 0x1: Lane 1, …, 0xF: Lane15)
0x0003EA 0x0003B2 [0] RX polarity
[1] RX detection
[2] RX Valid
[3] RX Electrical Idle
[4] TX Electrical Idle
0x0003EC 0x0003B4 [7] Framing error
0x0003ED 0x0003B5 [7] Lane reversal
请按照以下步骤使用Hard IP重配置接口访问PHY状态的Hard IP重配置接口寄存器映射中的寄存器:
  1. 使用IP Parameter Editor使能Hard IP重配置接口(User Avalon® -MM interface)。
  2. 使用Hard IP重配置接口信号对地址hip_reconfig_addr_i[20:0]使用hip_reconfig_writedata_i[7:0]上的通道编号的写数据来执行read-modify-write操作,从而设置您想要读取状态的通道编号。
    • hip_reconfig_write_i = 1’b1
    • hip_reconfig_addr_i[20:0] = 0x0003E8
    • hip_reconfig_writedata_i[3:0] = <Lane number>,其中 Lane number = 4’h0 for lane 0, 4’h1 for lane 1, 4’h2 for lane 2, …
  3. 通过使用Hard IP重配置接口信号从地址hip_reconfig_addr_i[20:0]执行一个读操作来读取您想要的寄存器状态。
示例1:使用寄存器读取Lane0的RX检测状态
  1. 使用IP Parameter Editor使能Hard IP重配置接口
  2. 使用Hard IP重配置接口信号对地址0x0003E8执行read-modify-write操作,将通道编号(lane number)设置为0。
    • hip_reconfig_write_i = 1’b1
    • hip_reconfig_addr_i[20:0] = 0x0003E8
    • hip_reconfig_writedata_i[3:0] = 4'h0
  3. 通过使用Hard IP重配置接口信号从地址0x0003E9[1]执行读操作,以读取RX检测寄存器的状态。
    • hip_reconfig_read_i = 1’b1
    • hip_reconfig_addr_i[20:0] = 0x0003EA
    • hip_reconfig_readdata_o[1] = 1'b1 (检测到远端接收器)

使用Hard IP重配置接口来使能和读取ECRC和LCRC错误计数

表 114.  ECRC和LCRC错误事件计数器的Hard IP重配置接口寄存器映射
偏移(Offset) 比特位置 寄存器
x16 (Port 0) x8 (Port 1)
0x000119 0x000119 [0] 使能CRC检查
0x000340 0x000308 [1:0]

事件计数器清零。

设置为2'b01,对寄存器0x00343和0x00342中定义的特定事件错误计数器清零。

设置为2'b11,对所有事件的错误计数器清零。

[4:2]

事件计数器使能。

设置为3'b111。

0x000341 0x000309 [7:0]

事件计数器通道选择。

设置为0x00。

0x000342 0x00030A [7:0]

事件编号。

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

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

0x000343 0x00030B [7:0]

组编号。

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

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

0x000344 0x00030C [7:0] 错误计数器数据比特[7:0]。
0x000345 0x00030D [7:0] 错误计数器数据比特[15:8]。
0x000346 0x00030E [7:0] 错误计数器数据比特[23:16]。
0x000347 0x00030F [7:0] 错误计数器数据比特[31:24]。
请按照以下步骤使用Hard IP重配置接口访问上表中的寄存器:
  1. 使用IP Parameter Editor使能Hard IP重配置接口(User Avalon-MM接口)。
  2. 通过使用p#_hip_reconfig_writedata[7:0]上的写数据对地址p#_hip_reconfig_address[20:0]执行read-modify-write操作来使能CRC检查。
  3. 通过使用p#_hip_reconfig_writedata[7:0]上的写数据对地址p#_hip_reconfig_address[20:0]执行read-modify-write操作来设置组编号。
  4. 通过使用p#_hip_reconfig_writedata[7:0]上的写数据对地址p#_hip_reconfig_address[20:0]执行read-modify-write操作来设置事件编号。
  5. 通过使用p#_hip_reconfig_writedata[7:0]上的写数据对地址p#_hip_reconfig_address[20:0]执行read-modify-write操作来设置事件计数器通道选择。
  6. 通过使用p#_hip_reconfig_writedata[7:0]上的写数据对地址p#_hip_reconfig_address[20:0]执行read-modify-write操作来设置事件计数器使能。
  7. 通过从地址p#_hip_reconfig_address[20:0]的读取操作来读取错误计数数据。
示例: 若要使用寄存器读取x16 Port0的LCRC错误计数:
  1. 使用IP Parameter Editor使能Hard IP重配置接口(User Avalon-MM接口)。
  2. 对地址0x000119执行read-modify-write操作以使能CRC检查。
    • p0_hip_reconfig_write = 1’b1
    • p0_hip_reconfig_address[20:0] = 0x000119
    • p0_hip_reconfig_writedata[7:0] = 8'h01
  3. 对地址0x000343执行read-modify-write操作以设置Group编号。
    • p0_hip_reconfig_write = 1’b1
    • p0_hip_reconfig_address[20:0] = 0x000343
    • p0_hip_reconfig_writedata[7:0] = 8'h02
  4. 对地址0x000342执行read-modify-write操作以设置Event编号。
    • p0_hip_reconfig_write = 1’b1
    • p0_hip_reconfig_address[20:0] = 0x000342
    • p0_hip_reconfig_writedata[7:0] = 8'h01
  5. 对地址0x000341执行read-modify-write操作以设置Event计数器通道选择。
    • p0_hip_reconfig_write = 1’b1
    • p0_hip_reconfig_address[20:0] = 0x000341
    • p0_hip_reconfig_writedata[7:0] = 8'h00
  6. 对地址0x000340执行read-modify-write操作以使能事件计数器。
    • p0_hip_reconfig_write = 1’b1
    • p0_hip_reconfig_address[20:0] = 0x000340
    • p0_hip_reconfig_writedata[7:0] = 8'h1C
  7. 通过从寄存器0x000344、0x000345、0x000346和0x000347执行读操作来读取错误计数器数据。

使用PHY重配置接口

请参考PHY重配置接口部分来了解关于如何使用此接口的详细信息。