UVM Connect needs wait() before first peek()

In reply to jstickle:

Hi,

I did not have access to a Mentor license for quite a while.

File uvmc-2.3.1/src/connect/sc/uvmc_channels.h:264 reads

wait_connected(); // [Bugzilla 77644]

This leads to the following compilation error using native UVMC in Questa Ultrasim:

sccom -DSC_INCLUDE_DYNAMIC_PROCESSES -DQUESTA -I/usr/local/mentor/questa_sim-2019.3_2/questasim/verilog_src/uvmc-2.3.1/src/connect/sc srs.cpp 
Start time: 11:44:58 on Oct 28,2019

QuestaSim-64 sccom 2019.3_2 compiler 2019.09 Sep 24 2019

In file included from /usr/local/mentor/questa_sim-2019.3_2/questasim/verilog_src/uvmc-2.3.1/src/connect/sc/uvmc.h:41:0,
                 from srs.cpp:4:
/usr/local/mentor/questa_sim-2019.3_2/questasim/verilog_src/uvmc-2.3.1/src/connect/sc/uvmc_channels.h: In instantiation of 'void uvmc::uvmc_tlm1_channel_proxy<T1, T2, CVRT_T1, CVRT_T2>::peek(T2&) const [with T1 = a_tr; T2 = a_tr; CVRT_T1 = uvmc_converter<a_tr>; CVRT_T2 = uvmc_converter<a_tr>]':
srs.cpp:33:1:   required from here
/usr/local/mentor/questa_sim-2019.3_2/questasim/verilog_src/uvmc-2.3.1/src/connect/sc/uvmc_channels.h:264:5: error: passing 'const uvmc::uvmc_tlm1_channel_proxy<a_tr, a_tr, uvmc_converter<a_tr>, uvmc_converter<a_tr> >' as 'this' argument discards qualifiers [-fpermissive]
     wait_connected(); // [Bugzilla 77644]
     ^
In file included from /usr/local/mentor/questa_sim-2019.3_2/questasim/verilog_src/uvmc-2.3.1/src/connect/sc/uvmc.h:37:0,
                 from srs.cpp:4:
/usr/local/mentor/questa_sim-2019.3_2/questasim/verilog_src/uvmc-2.3.1/src/connect/sc/uvmc_common.h:189:8: note:   in call to 'void uvmc::uvmc_proxy_base::wait_connected()'
   void wait_connected();
        ^
** Error: (sccom-6142) Compilation failed.
End time: 11:45:00 on Oct 28,2019, Elapsed time: 0:00:02
Errors: 1, Warnings: 0

Making uvmc-2.3.1/src/connect/sc/uvmc_channels.h:264

const_cast< this_type * >( this )->wait_connected(); // [Bugzilla 77644]

as I suggested on May 05, 2015 corrects that error.

Regards,
Elmar