ARM芯片架构之coresight 时间戳组件介绍
时间戳组件(Timestamp Components)
1 关于时间戳组件(About the timestamp components)
时间戳组件在 SoC 内生成和传输时间戳信息,用于为调试和跟踪系统提供统一的时间基准。CoreSight SoC-400 提供以下时间戳相关组件:
- 时间戳生成器(Timestamp generator)
- 时间戳编码器(Timestamp encoder)
- 窄时间戳复制器(Narrow timestamp replicator)
- 窄时间戳异步桥(Narrow timestamp asynchronous bridge)
- 窄时间戳同步桥(Narrow timestamp synchronous bridge)
- 时间戳解码器(Timestamp decoder)
- 时间戳插值器(Timestamp interpolator)
这些组件用于生成全局时间戳、压缩后传输、在多个模块间分发、支持跨时钟/电源域传输、恢复压缩后的时间戳,并在局部提供更高精度。
2 时间戳生成器(Timestamp generator)
时间戳生成器(cxtsgen)提供全局时间参考,产生宽时间戳信号供系统使用。
特性:
- 提供自由运行的宽计数器,通常为 48 位或更宽。
- 输出全局标准化的时间戳。
- 支持通过 APB 接口进行配置和访问。
- 与系统时钟绑定,需要选择合适的时钟源。
3 时间戳编码器(Timestamp encoder)
时间戳编码器(cxtse)将宽时间戳压缩成窄格式,减少传输带宽。
特性:
- 接收宽位宽时间戳输入。
- 使用压缩机制减少位宽。
- 支持周期性或按需输出。
4 窄时间戳复制器(Narrow timestamp replicator)
窄时间戳复制器(cxntsreplicator)将单一路径的时间戳分发到多个模块。
特性:
- 支持 1:2 分发。
- 可选 APB 配置接口。
- 可使能或禁用输出端口。
5 窄时间戳异步桥(Narrow timestamp asynchronous bridge)
窄时间戳异步桥(cxntsasyncbridge)用于跨异步时钟域传输时间戳。
特性:
- 支持异步时钟域跨越。
- 可跨电源域,提供低功耗接口(LPI)。
- 可配置为仅主接口、仅从接口或完整桥接。
6 窄时间戳同步桥(Narrow timestamp synchronous bridge)
窄时间戳同步桥(cxntssyncbridge)用于跨同步时钟域传输。
特性:
- 支持 1:1、1:n、n:1、n:m 多种比率。
- 可插入寄存器切片以实现时序优化。
- 可选低功耗接口(LPI)。
7 时间戳解码器(Timestamp decoder)
时间戳解码器(cxtsd)恢复压缩后的时间戳。
特性:
- 接收窄时间戳输入。
- 使用差分或基准点恢复完整宽时间戳。
- 输出完整时间参考。
8 时间戳插值器(Timestamp interpolator)
时间戳插值器(cxtsintp)在局部模块内生成高分辨率时间信息。
特性:
- 接收低分辨率全局时间戳。
- 使用本地高速计数器插值。
- 输出高分辨率结果。
程序员模型补充
时间戳生成器寄存器(Timestamp generator registers)
时间戳生成器通过 APB 接口暴露寄存器模型,提供对时间戳的配置、控制和读取。
主要寄存器
-
TSGENCR - 控制寄存器
-
偏移:0x000
-
功能:使能或禁用时间戳生成器。
-
位定义:
- [0] ENABLE:1 = 使能时间戳生成;0 = 禁用。
- [31:1] 保留。
-
-
TSGENCNTL - 低 32 位计数器
- 偏移:0x004
- 功能:保存时间戳计数器的低 32 位。
- 类型:只读。
-
TSGENCNTH - 高位计数器
- 偏移:0x008
- 功能:保存时间戳计数器的高 16 位或更多,具体取决于实现位宽。
- 类型:只读。
-
TSGENID - 组件 ID 寄存器
- 偏移:0xFC0 - 0xFDC
- 功能:提供 ARM 标准组件 ID 信息。
-
TSGENPID - 外设 ID 寄存器
- 偏移:0xFE0 - 0xFFC
- 功能:提供外设识别号。
计数器特性
- 自由运行,不可写。
- 在溢出时自动回绕。
- 可通过
ENABLE
位控制启动与停止。
使用场景
- 调试工具通过读取
CNTL
和CNTH
获取完整时间戳值。 - 当
ENABLE
= 0 时,计数器保持当前值。 - 当
ENABLE
= 1 时,计数器随时钟递增。
附录 时间戳组件信号(Timestamp component signals)
本附录定义了各时间戳组件的输入和输出信号。
通用信号
-
CLK:输入时钟信号。
-
RESETn:复位信号,低有效。
-
APB 接口信号:
- PCLK, PRESETn, PADDR, PWDATA, PWRITE, PSEL, PENABLE, PRDATA, PREADY, PSLVERR。
-
时间戳输入/输出信号:
- TSIN:窄时间戳输入。
- TSOUT:窄时间戳输出。
- WIDETS:宽时间戳信号输出。
时间戳生成器(cxtsgen)
- CLK:主时钟输入。
- RESETn:复位输入。
- APB 接口:提供寄存器访问。
- WIDETS[47:0]:输出 48 位时间戳。
时间戳编码器(cxtse)
- WIDETS[47:0]:宽时间戳输入。
- TSOUT:压缩时间戳输出。
- CLK, RESETn:控制信号。
窄时间戳复制器(cxntsreplicator)
- TSIN:窄时间戳输入。
- TSOUT0, TSOUT1:两个窄时间戳输出。
- APB 接口:可选控制。
窄时间戳异步桥(cxntsasyncbridge)
- TSIN:输入窄时间戳。
- TSOUT:输出窄时间戳。
- ACLK, BCLK:两侧独立时钟。
- ARESETn, BRESETn:两侧复位。
窄时间戳同步桥(cxntssyncbridge)
- TSIN:输入窄时间戳。
- TSOUT:输出窄时间戳。
- CLK:时钟。
- RESETn:复位。
时间戳解码器(cxtsd)
- TSIN:输入压缩时间戳。
- WIDETS[47:0]:恢复的宽时间戳输出。
- CLK, RESETn:控制信号。
时间戳插值器(cxtsintp)
- WIDETS[47:0]:输入宽时间戳。
- TSOUT:插值后的高分辨率输出。
- CLK, RESETn:控制信号。