内容纲要
# TLM2.0的建模时间精度
TLM2.0支持两种不同的建模时间精度
- 粗略时间精度
- 适用于操作系统启动时间级别的评估以及多核架构评估
- 处理器运算可以超前于仿真时间
- 每次传输事务支持2个时间点:起始和结束
- 支持直接存储器接口(DMI)
- 精确时间精度
- 时钟周期级别的精度
- 适用于架构级别的评估
- 处理器运算与仿真时间完全同步
- 每次传输事务支持4个时间点:开始请求、结束请求、开始响应、结束响应
TLM2.0的接口类型
- 阻塞传输接口:
void b_transport(TRANS& trans, sc_time& delay);
- 包括时间标记
- 通常用于粗略时间精度
- 仅提供正向传输
- 非阻塞传输接口:
nb_transport_fw(TRANS&, PHASE&, sc_time&);
nb_transport_bw(TRANS&, PHASE&, sc_time&);
- 包括时间标记和传输阶段
- 通常用于精确时间精度
- 包括正向和反向传输
- 直接存储器访问接口:
get_direct_mem_ptr(TRANS& trans, tlm_dmi& dmi_data);
invalidate_direct_mem_ptr(sc_dt::uint64 start_range, sc_dt:uint64 end_range);
- 调试传输接口
transport_dbg(TRANS& trans);