当前位置: 首页 > 工具软件 > monitor_agent > 使用案例 >

synopsys svt_axi_slave_agent实现机制小结

那昊
2023-12-01

svt_axi_slave_agent中封装了:

  • svt_axi_slave_sequencer sequencer
  • svt_mem axi-slave_mem
  • svt_axi_slave driver
  • svt_axi_slave_vif vif
  • svt_axi_slave_monitor monitor

在monitor中定义了一个TLM端口:

uvm_blocking_peek_imp#(`SVT_AXI_SLAVE_TRANSACTION_TYPE, svt_axi_slave_monitor) response_request_imp

在sequencer中定义了一个TLM端口:

uvm_blocking_peek_port#(`SVT_AXI_SLAVE_TRANSACTION_TYPE) response_request_port

在sequence中body函数定义如下:

forever begin
p_sequencer.response_request_port.peek(req_resp);

  req_resp.randomize; //随机各种延时及bresp和rresp的类型
  
  put_write_transaction_data_to_mem(req_resp);
  
  get_read_data_from_mem_to_ransaction(req_resp);
   $cast(req, req_resp);

  `uvm_send(req) //send to driver
   
  end
 类似资料: