Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix for RUNTIME_0232 and RUNTIME_022 messages in Riviera-PRO #621

Closed
wants to merge 80 commits into from
Closed

Fix for RUNTIME_0232 and RUNTIME_022 messages in Riviera-PRO #621

wants to merge 80 commits into from

Conversation

OyvindNNL
Copy link
Contributor

When I run a simulation with VUnit in Riviera-PRO GUI using Avalon-MM BFMs from Altera I get these messages repeated every 32 ns (dependent upon clock rate):
Warning: RUNTIME_0232 altera_avalon_mm_master_bfm.sv (607): Non-existent queue entry. Returning default value.

These messages can be disabled by set sv_container_non_existent_entry_verbose 0 in startup.tcl.
However, since VUnit loads the simulation from a procedure, this global variable needs to visible in the vunit_load function.

https://www.aldec.com/resources/manuals/Riviera-PRO/tcl_predefvar.htm:

sv_container_non_existent_entry_verbose Setting this variable to 0 disables the RUNTIME_0232 and RUNTIME_0222 messages that occur when referring to a not existing entry in a SystemVerilog dynamic array, associative array, or queue. The messages are printed by default.

…iera-PRO GUI despite being disabled in startup.tcl.
@kraigher
Copy link
Collaborator

kraigher commented Feb 7, 2020

Why cannot this variable be declared global in the user side script? We want to avoid specific tool settings inside VUnit since it is not sustainable.

@OyvindNNL
Copy link
Contributor Author

The variable is declared in the startup.tcl located in the scripts folder of the Riviera-PRO installation as a global variable. I suspect the vsim command uses upvar to get the global variables instead of the global command. This means no global variables are available to the vsim command since it is called from a procedure in VUnit.

I get your point about not wanting to known and handle all the different tool specific settings. An alternative could be to use uplevel vsim instead of eval vsim in the vunit_load procedure, thereby allowing for the vsim command to run in the global variable context. This way you could also remove the global aldec and global LICENSE_QUEUE commands from vunit_load

I did a quick test and it worked fine with uplevel vsim, but I will run through the offical tests later when I have some time.

@kraigher
Copy link
Collaborator

kraigher commented Feb 8, 2020

uplevel vsim sounds like a very good solution

…able context to make sure all the global variables set by the tool is available.
@OyvindNNL
Copy link
Contributor Author

I ran a few more tests, including the official ones, and saw no problems for Riviera-PRO. I made it uplevel #0 vsim instead to make sure it runs in the global variable context regardless of the current procedure nesting.

eine and others added 22 commits February 10, 2020 15:59
* Added possibility to configure random stalls

At creation of master/slave one can provide a configuration which tells
how often a stall should occure, and if it occures what the
minimal/maximal stall length of such a stall shall be.

* Added lines for linter

* Removed whitespaces and added check for zero stall activity where not expected

* replaced configuration functions by constants configured by generic

* uncommented disabled checks

* fixed ordering of the signals in if statement and used VHDL 2008

* Fixed order of generics to be backwards compatible

based on pull request comment of 1138-4EB

* Change of stall generics to provide [0-100]% stall

* replaces stat signals with records

* only include RandomPType with use instead of all

* made random variable privat to process

* moved procedures that are private to a private package

* give meaningful name to generics to avoid comment

* fixed return value for p_actor in new_axi_stream_slave

Changed new_actor to p_actor

* added procedure drive_invalid_output

* replaced for loop with direct call to test case

* introduced new_stall_config function

* unified random stall test cases for axi_stream

* removed explicit numbers in test case

this makes it more general and percentage numbers can be varied through
the generics without having to manual change the vhdl code.

* replaced if statement for min/max evaluation by min/max functions

* reformated using black

* fixed typo

* fixed formating issues

* Fixed year of license text in axi_stream_private_pkg.vhd

* uppercased test bench variable
* json4vhdl: support b16 encodings
* tb_set_generic: test generic string length
eine and others added 23 commits August 8, 2020 10:22
Co-authored-by: Guy Eschemann <eschemann@formled.com>
…iera-PRO GUI despite being disabled in startup.tcl.
…able context to make sure all the global variables set by the tool is available.
@eine
Copy link
Collaborator

eine commented Sep 14, 2020

@OyvindNNL, it seems that you merged the changes into your master, instead of rebasing. As a result, this PR is difficult to read now. I pushed a rebased version to https://github.com/eine/vunit/commits/fix-rivierapro.

Apart from that, @LarsAsplund can this PR be merged?

@dalex78
Copy link
Contributor

dalex78 commented May 10, 2022

Replaced by (cleaner) pull request #825

@LarsAsplund, I suggest to close/refuse this merge request. I believe that there are no linked issue.

dalex78 pushed a commit to dalex78/vunit that referenced this pull request May 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet