Identifty multiple producers to one impl port

Hi all,

I’m facing a situation in which I have a two ports in my scoreboard; one for master, one for all the slaves (>1). My idea was to implement the write functions for each port adding an ID to the write function for the slaves as it is seen here:
https://www.vmmcentral.org/vmartialarts/2010/02/connecting-multiple-analysis-ports-to-a-single-analysis-export/index.html

However I’m using UVM ports and I’m not entirely sure that I can apply that example in my case since I don’t find any way of binding the id to the port. Is there any solution for this environment with the mentioned scheme? Otherwise, the solution is to have one port per each slave, isn’t it?

Many thanks!!

Regards.

In reply to Hellzzar:

I think, in UVM you can’t do the same with your example’s link. I’ve never seen the write function of TLM analysis port with ID.
My suggestion: You can decode ID in monitor (depending on your slave/master) and add this ID to your transaction before writing it to your scoreboard using analysis ports. According to transaction’s ID, you can identify the source of that transaction. I saw many VIPs using this scheme.

In reply to chris_le:

Thanks for your reply Chris.

I think I will end up having multiple ports, one per slave, since I cannot extend the VIP’s functionalities.

Have a great day!

In reply to Hellzzar:

If you are using VIPs, I think VIPs should support ID features, it’s not good to have multiple ports. May I know what type of VIPs?

In reply to chris_le:

They are old agents from one of my colleagues, and the rules are that I cannot create more VIPs. There is not way of identifying where the transaction comes from by its ID since it’s independent of the agent. Therefore I need multiple ports, it’s not a problem since in reality I would have multiple modules connected to the DUT and the port receiving the transaction matters, but it’s more tiring to code.

Anyway, thank you for help!! :)