Can somebody help me with OCP pipelined request and response?

,

Hi, guys. I am new to UVM and wondering if anyone can help me with idea how to make an OCP UVC in which I have one master device UVC and one slave device UVC. During the data transfer, the master request is accepted immediately, while the slave response is returned in the same or a later cycle.
I already have all classes ready and working for the case of non-pipelined request . Just don’t know how to create the slave device driver to match new functionality required. Should I use queues or semaphore or something else? Each help is welcome. Thanks!

In reply to Nikola Stanojev:

See if this helps.

In reply to dave_59:
Hi, Dave and first of all thank You for this fast reply. The link You sent me is really useful, but when I start developing the code for slave driver, in OCP protocol, I don’t understand how to configure it to do the required tasks.

If You have just a little time, please take a look at the specs of OCP protocol (page 114):
OCP SPECIFICATION

Me and my colleagues start by using SystemVerilog queues as a tool, but it never worked correctly. I also found that articleabout using semaphore but cannot understand how it works in OCP protocol. I am completely new to the whole uvm thing and appreciate any help.

Thank You in advance for helping me on this!

In reply to dave_59:

Any ideas? Thank You so much.

In reply to Nikola Stanojev:

UVM is not just one click. It is more complicated and you Need as a Basis good knwoledge in SystemVerilog.
I recommend to look for Training modules in the Verification Academy.

In reply to chr_sue:
Thank You. I will, for sure.