Can we ignore the following vcom-1236, vcom-1346 & vcom-1090 simulation compilation warnings?

Hi,

I implemented the UVVM VVC framework for our simple counter DUT & created my own testbench.
Simulation runs ok but Modelsim reported the following warnings which are all related to
the template scripts.

Wondering if we can ignore all these warnings. FFi see attached warnings.txt file ​

I separated them into different sections:

  • Warnings related to uvvm_util & uvvm_vvc_framework packages taken from UVVM downloaded version from GitHub UVVM-master folder

  • Warnings related to bitvis_vip_clock_generator

  • Warnings related to vvc_cmd_pkg, vvc_methods_pkg, clockcyclecounter_bfm_pkg & clockcyclecounter_vvc

The clockcyclecounter is the name of our DUT.

Under the warnings related to “vvc_cmd_pkg, vvc_methods_pkg, clockcyclecounter_bfm_pkg & clockcyclecounter_vvc”
I clearly specified what was in the line of the warning reported because I added code to the templates to get
the UVVM VVC simulation platform going.

I will appreciate if you can let me know if we can ignore all these warnings.

====================================
Most of the warnings are related to:

vcom-1236 - Shared variables must be of a protected type
vcom-1346 - Default expression of interface object is not globally static

=================================
2 of the warnings are related to:

vcom-1090 - Possible infinite loop: Process contains no WAIT statement

– Compiling architecture behave of clock_generator_vvc

** Warning: …/…/bitvis_vip_clock_generator/src/clock_generator_vvc.vhd(194): (vcom-1090) Possible infinite loop: Process contains no WAIT statement.

Related to cmd_interpreter : process

– Compiling architecture behave of clockcyclecounter_vvc

** Warning: …/…/src/clockcyclecounter_vvc.vhd(184): (vcom-1090) Possible infinite loop: Process contains no WAIT statement.

Related to cmd_interpreter : process


Tried to attach the file in warnings.txt but it was not accepted so including it below:

warnings.txt (could not attach the entire .txt file) :

=================================================
Warnings related to uvvm_util & uvvm_vvc_framework packages taken from UVVM downloaded version from GitHub UVVM-master folder

  • Compiling package adaptations_pkg

** Warning: …/…/uvvm_util/src/adaptations_pkg.vhd(70): (vcom-1236) Shared variables must be of a protected type.

Line 70: shared variable shared_default_log_destination : t_log_destination := CONSOLE_AND_LOG;

** Warning: …/…/uvvm_util/src/adaptations_pkg.vhd(389): (vcom-1236) Shared variables must be of a protected type.

Line 389: shared variable deprecated_subprogram_list : t_deprecate_list := (others=>(others => ’ '));

– Compiling package global_signals_and_shared_variables_pkg

** Warning: …/…/uvvm_util/src/global_signals_and_shared_variables_pkg.vhd(27): (vcom-1236) Shared variables must be of a protected type.

** Warning: …/…/uvvm_util/src/global_signals_and_shared_variables_pkg.vhd(28): (vcom-1236) Shared variables must be of a protected type.

:::

** Warning: …/…/uvvm_util/src/global_signals_and_shared_variables_pkg.vhd(42): (vcom-1236) Shared variables must be of a protected type.

– Compiling package methods_pkg

** Warning: …/…/uvvm_util/src/methods_pkg.vhd(84): (vcom-1346) Default expression of interface object is not globally static.

** Warning: …/…/uvvm_util/src/methods_pkg.vhd(85): (vcom-1346) Default expression of interface object is not globally static.

:::

** Warning: …/…/uvvm_util/src/methods_pkg.vhd(2681): (vcom-1346) Default expression of interface object is not globally static.

– Compiling package body methods_pkg

– Loading package methods_pkg

** Warning: …/…/uvvm_util/src/methods_pkg.vhd(3180): (vcom-1346) Default expression of interface object is not globally static.

:::

** Warning: …/…/uvvm_util/src/methods_pkg.vhd(8784): (vcom-1346) Default expression of interface object is not globally static.

– Compiling package data_queue_pkg

** Warning: …/…/uvvm_util/src/data_queue_pkg.vhd(30): (vcom-1236) Shared variables must be of a protected type.

– Compiling package ti_data_queue_pkg

** Warning: …/…/uvvm_vvc_framework/src/ti_data_queue_pkg.vhd(31): (vcom-1236) Shared variables must be of a protected type.

– Compiling package ti_vvc_framework_support_pkg

** Warning: …/…/uvvm_vvc_framework/src/ti_vvc_framework_support_pkg.vhd(86): (vcom-1236) Shared variables must be of a protected type.

** Warning: …/…/uvvm_vvc_framework/src/ti_vvc_framework_support_pkg.vhd(108): (vcom-1236) Shared variables must be of a protected type.

** Warning: …/…/uvvm_vvc_framework/src/ti_vvc_framework_support_pkg.vhd(109): (vcom-1236) Shared variables must be of a protected type.

– Compiling package td_target_support_pkg

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_target_support_pkg.vhd(93): (vcom-1346) Default expression of interface object is not globally static.

– Loading package td_target_support_pkg

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_target_support_pkg.vhd(286): (vcom-1346) Default expression of interface object is not globally static.

– Compiling package td_vvc_framework_common_methods_pkg

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_vvc_framework_common_methods_pkg.vhd(61): (vcom-1346) Default expression of interface object is not globally static.

::::

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_vvc_framework_common_methods_pkg.vhd(419): (vcom-1346) Default expression of interface object is not globally static.

– Loading package td_vvc_framework_common_methods_pkg

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_vvc_framework_common_methods_pkg.vhd(456): (vcom-1346) Default expression of interface object is not globally static.

::::
#**Warning:
…/…/uvvm_vvc_framework/src_target_dependent/td_vvc_framework_common_methods_pkg.vhd(1070): (vcom-1346) Default expression of interface object is not globally static.

– Compiling package td_vvc_entity_support_pkg

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_vvc_entity_support_pkg.vhd(118): (vcom-1346) Default expression of interface object is not globally static.

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_vvc_entity_support_pkg.vhd(258): (vcom-1346) Default expression of interface object is not globally static.

– Loading package td_vvc_entity_support_pkg

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_vvc_entity_support_pkg.vhd(519): (vcom-1346) Default expression of interface object is not globally static.

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_vvc_entity_support_pkg.vhd(871): (vcom-1346) Default expression of interface object is not globally static.

– Compiling package td_target_support_pkg

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_target_support_pkg.vhd(93): (vcom-1346) Default expression of interface object is not globally static.

– Loading package td_target_support_pkg

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_target_support_pkg.vhd(286): (vcom-1346) Default expression of interface object is not globally static.

– Compiling package td_vvc_framework_common_methods_pkg

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_vvc_framework_common_methods_pkg.vhd(61): (vcom-1346) Default expression of interface object is not globally static.

:::

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_vvc_framework_common_methods_pkg.vhd(419): (vcom-1346) Default expression of interface object is not globally static.

– Loading package td_vvc_framework_common_methods_pkg

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_vvc_framework_common_methods_pkg.vhd(456): (vcom-1346) Default expression of interface object is not globally static.

::::

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_vvc_framework_common_methods_pkg.vhd(1070): (vcom-1346) Default expression of interface object is not globally static.

– Compiling package td_vvc_entity_support_pkg

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_vvc_entity_support_pkg.vhd(118): (vcom-1346) Default expression of interface object is not globally static.

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_vvc_entity_support_pkg.vhd(258): (vcom-1346) Default expression of interface object is not globally static.

– Loading package td_vvc_entity_support_pkg

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_vvc_entity_support_pkg.vhd(519): (vcom-1346) Default expression of interface object is not globally static.

** Warning: …/…/uvvm_vvc_framework/src_target_dependent/td_vvc_entity_support_pkg.vhd(871): (vcom-1346) Default expression of interface object is not globally static.


==============================================
Warnings related to bitvis_vip_clock_generator

– Compiling package vvc_cmd_pkg

** Warning: …/…/bitvis_vip_clock_generator/src/vvc_cmd_pkg.vhd(112): (vcom-1236) Shared variables must be of a protected type.

** Warning: …/…/bitvis_vip_clock_generator/src/vvc_cmd_pkg.vhd(137): (vcom-1236) Shared variables must be of a protected type.

** Warning: …/…/bitvis_vip_clock_generator/src/vvc_cmd_pkg.vhd(149): (vcom-1236) Shared variables must be of a protected type.

– Compiling architecture behave of clock_generator_vvc

** Warning: …/…/bitvis_vip_clock_generator/src/clock_generator_vvc.vhd(194): (vcom-1090) Possible infinite loop: Process contains no WAIT statement.

Related to cmd_interpreter : process

– Compiling package vvc_methods_pkg

** Warning: …/…/bitvis_vip_clock_generator/src/vvc_methods_pkg.vhd(123): (vcom-1236) Shared variables must be of a protected type.

** Warning: …/…/bitvis_vip_clock_generator/src/vvc_methods_pkg.vhd(124): (vcom-1236) Shared variables must be of a protected type.

** Warning: …/…/bitvis_vip_clock_generator/src/vvc_methods_pkg.vhd(125): (vcom-1236) Shared variables must be of a protected type.


======================================================
Warnings related to vvc_cmd_pkg, vvc_methods_pkg, clockcyclecounter_bfm_pkg & clockcyclecounter_vvc

– Compiling package vvc_cmd_pkg

** Warning: …/…/src/vvc_cmd_pkg.vhd(119): (vcom-1236) Shared variables must be of a protected type.

Line 119: shared variable shared_vvc_cmd : t_vvc_cmd_record := C_VVC_CMD_DEFAULT;

** Warning: …/…/src/vvc_cmd_pkg.vhd(143): (vcom-1236) Shared variables must be of a protected type.

Line 143: shared variable shared_vvc_response : t_vvc_response;

** Warning: …/…/src/vvc_cmd_pkg.vhd(155): (vcom-1236) Shared variables must be of a protected type.

Line 155: shared variable shared_vvc_last_received_cmd_idx : t_last_received_cmd_idx(t_channel’left to t_channel’right, 0 to C_MAX_VVC_INSTANCE_NUM-1) := (others => (others => -1));

– Compiling package vvc_methods_pkg

** Warning: …/…/src/vvc_methods_pkg.vhd(91): (vcom-1236) Shared variables must be of a protected type.

Line 91: shared variable shared_clockcyclecounter_vvc_config : t_vvc_config_array(0 to C_MAX_VVC_INSTANCE_NUM-1) := (others => C_CLOCKCYCLECOUNTER_VVC_CONFIG_DEFAULT);

** Warning: …/…/src/vvc_methods_pkg.vhd(92): (vcom-1236) Shared variables must be of a protected type.

Line 92: shared variable shared_clockcyclecounter_vvc_status : t_vvc_status_array(0 to C_MAX_VVC_INSTANCE_NUM-1) := (others => C_VVC_STATUS_DEFAULT);

– Compiling package clockcyclecounter_bfm_pkg

** Warning: …/…/src/clockcyclecounter_bfm_pkg.vhd(119): (vcom-1346) Default expression of interface object is not globally static.

Line 119: constant msg_id_panel : in t_msg_id_panel := shared_msg_id_panel;
Here inserted my own counter_reset BFM procedure declaration within the package and had the above constant input t_msg_id_panel declaration

** Warning: …/…/src/clockcyclecounter_bfm_pkg.vhd(136): (vcom-1346) Default expression of interface object is not globally static.

Line 136: constant msg_id_panel : in t_msg_id_panel := shared_msg_id_panel;
Here inserted my own counter_count_up BFM procedure declaration within the package given as individual signals and had the above constant input t_msg_id_panel declaration

** Warning: …/…/src/clockcyclecounter_bfm_pkg.vhd(146): (vcom-1346) Default expression of interface object is not globally static.

Line 146: constant msg_id_panel : in t_msg_id_panel := shared_msg_id_panel;
Here inserted my own counter_count_up BFM procedure declaration within the package given with t_clockcyclecounter_if record signals and had the above constant input t_msg_id_panel declaration

** Warning: …/…/src/clockcyclecounter_bfm_pkg.vhd(162): (vcom-1346) Default expression of interface object is not globally static.

Line 162: constant msg_id_panel : in t_msg_id_panel := shared_msg_id_panel;
Here inserted my own counter_hold BFM procedure declaration within the package given as individual signals and had the above constant input t_msg_id_panel declaration

** Warning: …/…/src/clockcyclecounter_bfm_pkg.vhd(172): (vcom-1346) Default expression of interface object is not globally static.

Line 172: constant msg_id_panel : in t_msg_id_panel := shared_msg_id_panel;
Here inserted my own counter_hold BFM procedure declaration within the package given with t_clockcyclecounter_if record signals and had the above constant input t_msg_id_panel declaration

– Loading package clockcyclecounter_bfm_pkg

** Warning: …/…/src/clockcyclecounter_bfm_pkg.vhd(208): (vcom-1346) Default expression of interface object is not globally static.

Line 208: constant msg_id_panel : in t_msg_id_panel := shared_msg_id_panel;
Here inserted my own counter_reset procedure implementation within the package body given as individual signals and had the above constant input t_msg_id_panel declaration

** Warning: …/…/src/clockcyclecounter_bfm_pkg.vhd(237): (vcom-1346) Default expression of interface object is not globally static.

Line 237: constant msg_id_panel : in t_msg_id_panel := shared_msg_id_panel;
Here inserted my own counter_count_up BFM procedure implementation within the package body given as individual signals and had the above constant input t_msg_id_panel declaration

** Warning: …/…/src/clockcyclecounter_bfm_pkg.vhd(261): (vcom-1346) Default expression of interface object is not globally static.

Line 261: constant msg_id_panel : in t_msg_id_panel := shared_msg_id_panel;
Here inserted my own counter_count_up BFM procedure implementation within the package body given with t_clockcyclecounter_if record signals and had the above constant input t_msg_id_panel declaration

** Warning: …/…/src/clockcyclecounter_bfm_pkg.vhd(284): (vcom-1346) Default expression of interface object is not globally static.

Line 284: constant msg_id_panel : in t_msg_id_panel := shared_msg_id_panel;
Here inserted my own counter_hold BFM procedure implementation within the package body given with t_clockcyclecounter_if record signals and had the above constant input t_msg_id_panel declaration

** Warning: …/…/src/clockcyclecounter_bfm_pkg.vhd(306): (vcom-1346) Default expression of interface object is not globally static.

Line 306: constant msg_id_panel : in t_msg_id_panel := shared_msg_id_panel;
Here inserted my own counter_hold BFM procedure implementation within the package body given with t_clockcyclecounter_if record signals and had the above constant input t_msg_id_panel declaration

– Compiling architecture behave of clockcyclecounter_vvc

** Warning: …/…/src/clockcyclecounter_vvc.vhd(184): (vcom-1090) Possible infinite loop: Process contains no WAIT statement.

Related to cmd_interpreter : process

Kind regards,

Kevin

Hi Kevin,

Yes, you can ignore these warnings. You can request Modelsim to ignore them by passing the arguments “-suppress 1346,1236,1090” with the vcom command.

Br,
Marius

Hi Marius,

Thanks for your reply.

So we can also ignore the 2 warnings related to :
“vcom-1090 - Possible infinite loop: Process contains no WAIT statement”

The possible infinite loop warning within the cmd_interpreter process of both modules contained a ‘loop’ statement

cmd_executor process of both modules included also a ‘loop’ statement but it did not report a vcom-1090 warning there.

Any further comments to this matter will appreciate. Thanks.

Kind regards,
Kevin

Hi,
yes you can ignore them, they are for the VVC processes.

Br,
Marius

Hi Marius,

Great. Thanks :slight_smile:

Kind regards,
Kevin