response

返回知识网络总入口 · 运行与激励

核心结论

response 是 driver 返回数据/状态的可选路径,需正确 ID、兼容类型和明确消费,与请求握手完成分别管理。

关键机制

  • item_done(rsp) 附带响应,或完成后单独 put_response(rsp),同一响应不要重复发送。
  • 新 rsp 用 set_id_info(req) 保留 sequence/transaction ID。
  • get_response 或启用 response_handler,选择一致策略。
  • 默认队列容量有限,不消费会溢出;流水化需未决数与 ID 匹配约定。

小例子或流程

// driver采集结果后
rsp = bus_rsp::type_id::create("rsp");
rsp.set_id_info(req);
rsp.data = sampled_data;
seq_item_port.item_done(rsp);
// 发起sequence中
get_response(rsp);

假设双方 REQ/RSP 已一致配置,接收变量为 bus_rsp。

易错点

  • item_done() 不附 rsp,不会满足 get_response。
  • 复用仍被持有的 rsp 会覆盖结果。
  • RAL provides_responses 要匹配真实返回策略。

关联知识

原文出处与已有面试题