ZHCAFN4 August   2025 AFE7900 , AFE7901 , AFE7903 , AFE7906 , AFE7950 , AFE7951 , AFE7953 , AFE7954 , AFE7955 , AFE7958

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
  5. 2使用 BRINGUP_AFE 模块的硬件设置
  6. 3存储器与 BRINGUP_AFE 模块之间的接口
  7. 4BRINGUP_AFE 模块中控制寄存器和状态标志的配置
    1. 4.1 指令集
  8. 5使用 BRINGUP_AFE 模块启动
  9. 6支持错误解码的启动
  10. 7总结
  11. 8参考资料

BRINGUP_AFE 模块中控制寄存器和状态标志的配置

BRINGUP_AFE 模块使用 32 位寄存器来控制模块,并存储启动状态。每个 32 位寄存器均可使用 ctrl_data_locctrl_datactrl_data_loadsts_data_out 端口访问。Ctrl_data_loc 用于选择要修改或读取的 32 位寄存器。在设置 ctrl_data 后,对 ctrl_data_load 执行 0-1-0 切换操作,即可将 ctrl_data_loc 的 32 位数据修改为 ctrl_dataSts_data_out 实时反映 BRINGUP_AFE 模块中 ctrl_data_loc 的 32 位数据。

表 4-1 状态和控制寄存器映射
地址 字段名称 访问 默认值 说明
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" 时有效

控制寄存器的更新步骤

  1. ctrl_data_loc 设置为需要加载 ctrl_data 的寄存器地址。
  2. 设置 ctrl_data
  3. ctrl_data_load 置位为 1。
  4. 等待 2 个 BRINGUP_AFE 时钟周期。
  5. ctrl_data_load 置位为 0。

控制或状态寄存器的读取步骤

  1. 将 ctrl_data_loc 设置为所需地址。
  2. 从 sts_data_out 读取数据。