TLM与port_export_imp
返回知识网络总入口 · 配置与通信
核心结论
TLM 用事务和方法接口通信:port 发起调用,export 暴露/转接接口,imp 将调用落到组件实现,链路最终要有可用实现。
关键机制
- put/get 传送或获取事务,transport 组合请求与返回;blocking task 可等,nonblocking function 即时返回成功与否。
- export 适合封装层转接,不天然存储数据或实现业务。
- connect_phase 连接,核对事务类型、方法集合与层次方向。
- 需要缓存与速率解耦时使用 FIFO。
- 若改用 mailbox/自定义 TLM 通道绕过 sequencer,需要另外设计并发仲裁、路由和完成通知,不能继续套用 start_item/finish_item 的授权协议。
小例子或流程
producer.put_port.connect(consumer.put_imp);
// producer调用put_port.put(tr);
// consumer以对应blocking_put_imp绑定task put(packet tr)。经 env 的 export 转接时,仍要接到终端实现。
易错点
- get 的调用方向与数据流方向相反。
- 不能凭方法名相似混接 blocking/nonblocking 接口。
- export 不等于实现或缓存。
关联知识
- env与agent:封装层以 TLM 接口暴露事务通路。
- analysis广播:analysis 是适合观测广播的 TLM 方式。
- TLM_FIFO:FIFO 在方法接口上增加缓存和等待。