SPI read data

In reply to Sandeep Gaur:

Just review your code quickly, it seems the issue happened because you created new object handle spi_wr_rd_req (copied from wr_rd_request) in collect_wr_rd_req task.



task spi_bfm::collect_wr_rd_req (spi_trans wr_rd_request); // {
@(posedge spi_intf.sample_clk)
spi_wr_rd_req = new wr_rd_request;

The response read data was stored in spi_wr_rd_req object, instead of wr_rd_request object handler (spi_seq_item object) which was used to send back to your sequence.

To fix, do not create new object, use assignment only:


spi_wr_rd_req = wr_rd_request;