ZHCAFN4 August 2025 AFE7900 , AFE7901 , AFE7903 , AFE7906 , AFE7950 , AFE7951 , AFE7953 , AFE7954 , AFE7955 , AFE7958
BRINGUP_AFE 模块使用 32 位寄存器来控制模块,并存储启动状态。每个 32 位寄存器均可使用 ctrl_data_loc、 ctrl_data、ctrl_data_load 和 sts_data_out 端口访问。Ctrl_data_loc 用于选择要修改或读取的 32 位寄存器。在设置 ctrl_data 后,对 ctrl_data_load 执行 0-1-0 切换操作,即可将 ctrl_data_loc 的 32 位数据修改为 ctrl_data。Sts_data_out 实时反映 BRINGUP_AFE 模块中 ctrl_data_loc 的 32 位数据。
| 地址 | 位 | 字段名称 | 访问 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 0x0 | 0:0 | bringup_finished | R | 0x0 | "1" 表示启动已完成 |
| 0x0 | 1:1 | 无效 | R | 0x0 | 无效字段。数据不相关。 |
| 0x0 | 2:2 | bringup_err_sticky | R | 0x0 |
如果置位,表示发生了启动错误。 粘滞标志。切换到 clear_bringup_err 以清除此标志 |
| 0x0 | 3:3 | bringup_halt | R | 0x0 |
指示 BRINGUP_AFE 是否处于停止状态。 启动完成或在 stop_at_bringup_fail = "1" 时发生启动错误 |
| 0x0 | 4:4 | unknown_instruction | R | 0x0 |
模块无法解析当前指令。 预计不会发生 |
| 0x0 | 5:5 | module_ready_flag | R | 0x0 | 状态标志指示模块是否准备好启动 |
| 0x0 | 6:6 | bu_cycles_ovr | R | 0x0 | 如果 bu_cycle 大于 2**32,则设置溢出标志 |
| 0x0 | 7:7 | give_sysref_now | R | 0x0 |
置位 give_sysref_now 标志后,在单脉冲 sysref 的情况下发送 sysref。 将 sysref 发送至 AFE 后,切换到 continue_bringup。 对于连续 sysref,则忽略 |
| 0x0 | 10:8 | 无效 | R | 0x0 | 无效字段。数据不相关。 |
| 0x0 | 11:11 | data_valid | R | 0x0 | 用于调试。Mem_data_valid 端口的值 |
| 0x0 | 12:12 | 无效 | R | 0x0 | 无效字段。数据不相关。 |
| 0x0 | 15:13 | 无效 | R | 0x0 | 无效字段。数据不相关。 |
| 0x0 | 23:16 | spi_data | R | 0x0 | 用于调试。从器件读回当前指令的 Spi 数据 |
| 0x0 | 31:24 | 无效 | R | 0x0 | 无效字段。数据不相关。 |
| 0x1 | 31:0 | curr_instr | R | 0x0 | 用于调试。指示当前指令 |
| 0x2 | 31:0 | 无效 | R | 0x0 | 无效字段。数据不相关。 |
| 0x3 | 31:0 | 无效 | R | 0x0 | 无效字段。数据不相关。 |
| 0x4 | 31:0 | bu_cycle | R | 0x0 | 启动所需的时钟周期数。当 start_bringup = 0 时复位 |
| 0x5 | 31:0 | mem_addr | R | 0x0 | 用于调试。与 mem_addr 端口的值相同 |
| 0x6 | 31:0 | mem_data | R | 0x0 | 用于调试。与 mem_data 端口的值相同 |
| 0x7 | 31:0 | BRINGUP_AFE_version | R | 0x100 | 指示 BRINGUP_AFE 模块型号。 |
| 0x8 | 31:0 | current_bu_err_code | R | 0x0 | 发生任一启动错误时的错误代码。 |
| 0x10 | 0:0 | clear_bringup_err | R/W | 0x0 | 切换以清除 bringup_err_sticky |
| 0x10 | 1:1 | stop_at_bringup_fail | R/W | 0x1 | 如果置位,模块会在启动错误时停止。否则忽略启动错误并继续 |
| 0x10 | 2:2 | continue_bringup | R/W | 0x0 | 切换到此选项,以便在模块因启动错误而停止后继续启动 |
| 0x10 | 4:3 | RSVD | R/W | 0x0 | 保留。请勿更改默认值。 |
| 0x10 | 5:5 | ovr_instr | R/W | 0x0 | 覆盖指令。是否覆盖当前指令 |
| 0x10 | 6:6 | ovr_instr_trig | R/W | 0x0 | 0-1-0 切换操作触发执行 ovr_val_instr。仅在 bringup_halt 为 1 时可行。 |
| 0x10 | 7:7 | RSVD | R/W | 0x0 | 保留。请勿更改默认值。 |
| 0x10 | 8:8 | start_bringup | R/W | 0x0 |
在启动期间,始终将此标志维持在高电平。 提供一个 0 --> 1 脉冲来触发启动。 在变更到 1 之前,0 可至少保持在 5 个时钟周期 |
| 0x10 | 31:9 | RSVD | R/W | 0x0 | 保留。请勿更改默认值。 |
| 0x11 | 31:0 | RSVD | R/W | 0x100000 | 保留。请勿更改默认值。 |
| 0x12 | 31:1 | RSVD | R/W | 0x0 | 保留。请勿更改默认值。 |
| 0x13 | 31:2 | ovr_val_instr | R/W | 0x0 |
覆盖当前指令的值。 仅当 ovr_instr = "1" 时有效 |
控制寄存器的更新步骤
控制或状态寄存器的读取步骤