其他分享
首页 > 其他分享> > UVM入门与进阶学习笔11——TLM通信(3)

UVM入门与进阶学习笔11——TLM通信(3)

作者:互联网

目录


通信管道

TLM通信的实现方式的共同点在于都是端对端的,同时target一端需实现传输方法,例如put()或者get()。

TLM FIFO

在这里插入图片描述

Analysis Port

在这里插入图片描述

initiator.ap.connect(target1.aimp);
initiator.ap.connect(target2.aimp);
initiator.ap.connect(target3.aimp);

Analysis TLM FIFO

在这里插入图片描述

initiator.ap.connect(tlm_analysis_fifo1.analysis_export);
target1.get_port.connect(tlm_analysis_fifo1.get_export);
initiator.ap.connect(tlm_analysis_fifo2.analysis_export);
target2.get_port.connect(tlm_analysis_fifo2.get_export);
initiator.ap.connect(tlm_analysis_fifo3.analysis_export);
target3.get_port.connect(tlm_analysis_fifo3.get_export);

Request & Response通信管道

uvm_put_export #(REQ) put_request_export;
uvm_put_export #(RSP) put_response_export;
uvm_get_peek_export #(RSP) get_peek_response_export;
uvm_get_peek_export #(REQ) get_peek_request_export;
uvm_analysis_port #(REQ) request_ap;
uvm_analysis_port #(RSP) response_ap;
uvm_master_imp #(REQ, RSP, this_type, uvm_tlm_fifo #(REQ), uvm_tlm_fifo #(RSP)) master_export;
uvm_slave_imp #(REQ, RSP, this_type, uvm_tlm_fifo #(REQ), uvm_tlm_fifo #(RSP)) slave_export;

在这里插入图片描述

initiator.put_port.connect(req_rsp_channel.put_request_export);
target.get_peek_port.connect(req_rsp_channel.get_peek_request_export);
target.put_port.connect(req_rsp_channel.put_response_export);
initiator.get_peek_port.connect(req_rsp_channel.get_peek_response_export);

在这里插入图片描述
也可利用另一种连接方式:

initiator.master_port.connect(req_rsp_channel.master_export);
target.slave_port.connect(req_rsp_channel.slave_export);

标签:11,initiator,进阶,get,analysis,export,uvm,tlm,UVM
来源: https://blog.csdn.net/weixin_41979380/article/details/122615821