Hi there, I am trying to develop an UVM environment for an APB interface. According to the design the TB architecture has a single master and two slaves. I’ve created the UVM TB and printed the topology successfully. While doing the DUV-Interface connections in the top I’m facing some issues.
I have a few signals that are common to all the slaves, so to connect them I’ve used intermediate wires for connecting and it does connect them successfully but some wires are driven by the TB so it causes an error when trying to use the port as an output in the interface.
Warning-[ICPSD_W] Illegal combination of drivers
../intf/apb_slv_intf.sv, 10
Illegal combination of structural and procedural drivers.
Variable "PREADY" is driven by an invalid combination of structural and
procedural drivers. Variables driven by a structural driver cannot have any
other drivers.
This variable is declared at "../intf/apb_slv_intf.sv", 10: logic PREADY;
The first driver is at "../tb/apb_tb_top.sv", 34: assign
apb_tb_top.slv_if0.PREADY = PREADY_w;
The second driver is at "../intf/apb_slv_intf.sv", 17: output PREADY =
PREADY;
As the above warning shows there is no issue while connecting the PWRITE signal but with the PREADY above method doesn’t work as it needs to be declared as output in the slave interface. Thanks for taking your time and any feedback regarding this is greatly appreciated.