How to check the connectivity of tb and dut signals using SVA?

Hello:
I need to know how to check the connectivity of two signals using system verilog assertions.
Here I have property called p_connect_check,

  property p_connect_check (en, tb_sig, dut_sig);
         @(posedge clk) disable iff(en)
            (tb_sig == dut_sig) ;
  endproperty : p_connect_check

Here the exact issue is I am checking the AXI signals connectivity where the checker starts from disable(en), but the checker fails until awvalid signal goes high.

Basically, I wanted to know how to connection are properly done in DUT using assertion.
Note: The above logic is based on my idea, I would appreciate for other practical/recommended method.

Thanks in advance.

In reply to @VlsiYJ:

Just sharing my thoughts here :

  • The idea of checking “connections” with assertions is laborious.
  • The performance is going to suffer, as you will have way too many assertions.
  • You may end up making the same mistake in the assertion, that you may be doing when connecting the signals. Assertions work best when the “coder” and “assertion writer” are two different people. Having two people for verifying just connectivity isn’t worth it :) A peer review may be faster and optimal.
  • In most of my designs, if I have messed up a connection, the test/simulation will fail in some unexpected way, and can be debugged to a incorrect connection. If your test doesn’t fail with incorrect connections then it implies either your stimulus isn’t good enough, or the incorrect connection doesn’t really matter for functionality.
  • Protocol checkers/assertions are usually sufficient to identify issue with the DUT not driving/responding to AXI signals correctly. The point here is that higher level assertions at the monitor/DUT interface are more efficient, and give you more ROI.

Disclaimer, just my thoughts. Your exact usecase may be different and may warrant assertions for connections.

In reply to @VlsiYJ:

There’s no awvalid in your assertions.

Usually there are better approaches to validate connectivity:

In reply to KillSteal:

Thanks for your thoughts!

In reply to dave_59:

In reply to @VlsiYJ:
There’s no awvalid in your assertions.
Usually there are better approaches to validate connectivity:
Questa Check Connect - Static+Dynamic IP & SoC Connectivity | Siemens Software

Thanks dave.

Here the assertion example for awvalid,


a_AWVALID  : assert property (p_connect_check(en, blocka.o_awvalid, blockb.i_awvalid))
else begin $error ("AWVALID    : Assertion Error"); end

likewise, there is a similar assertion checker for each signals.
The assertion is failing until awvalid signal is set to ‘1’.
From reset to awvalid set to 1, assertion fails.