Jim Lewis
-
Jim Lewis replied to the topic Dissecting usage of DelayCoveragePkg in the forum OSVVM 2 months, 2 weeks ago
> Q1. When the GenBin has 3 numbers, why does it always end with 1? This means that we are creating a single bin that has the specified range? This means that any integer can occur in that range with equal probability?
The third parameter indicates how many bins to split a range into. As you observed, this puts it all in one bin. It is indeed…[Read more]
-
Jim Lewis replied to the topic Optional ports on AXI stream transmitter and receiver cannot be left unused in the forum OSVVM 2 months, 2 weeks ago
There was. It was removed as it did not work in one of the vendors. I will need to add it back.
-
Jim Lewis replied to the topic Optional ports on AXI stream transmitter and receiver cannot be left unused in the forum OSVVM 2 months, 3 weeks ago
Hi Hassan
The AXI interface has a number of optional signals. How to handle these is the interesting proposition. Their width can be configured. The current VC leaves them unconstrained. This means they have to be connected, even if unused and connected to a 0 width std_logic_vector(0 downto 1).That said, can their impact be minimized.…[Read more]
-
Jim Lewis replied to the topic SBRD package issue with Modelsim FPGA edition in the forum OSVVM 3 months ago
This is just the VHDL signal use model when reading it after assigning it in a process. Since RTL does not allow wait for 0 ns, it is limited to testbenches.
Verilog assignments have the same sort of issue.
-
Jim Lewis replied to the topic SBRD: Check API uses AffirmIf, why GetAffirmCount is 0? in the forum OSVVM 3 months ago
Hi Ajeetha,
Next time please provide a complete testable example, such as I have provided below. Try running this.library osvvm ;
context osvvm.OsvvmContext ;
use osvvm.ScoreboardPkg_int.all ;entity TbSB_GetAffirmCount_1 is
end TbSB_GetAffirmCount_1 ;architecture GetAffirmCount_1 of TbSB_GetAffirmCount_1 is
begin
ControlProc :…[Read more]
-
Jim Lewis replied to the topic SBRD package issue with Modelsim FPGA edition in the forum OSVVM 3 months ago
Do:
stim : process
begin
SB_int <= NewID("COUNT_SB");
wait for 0 ns; -- let SB_int to update
report ("SB_int: " & integer'image(SB_int.Id));
i_up_or_down <= '0';
push(SB_int, 2);
. . . -
Jim Lewis replied to the topic SBRD package issue with Modelsim FPGA edition in the forum OSVVM 3 months ago
Hi Ajeetha,
Nope. That is integer’left.Put a “wait for 0 ns” before reading the signal. That allows a simulation cycle to go by and the signal to update to the value assigned by NewID.
Jim
-
Jim Lewis replied to the topic Generic testControlProc – can this be a pattern? in the forum OSVVM 3 months ago
Depending on what becomes the pattern, it could be a concurrent procedure call (if it encapsulates the entire process), a sequential procedure call (if it only encapsulates most of the process), or as you suggested an entity (but may be more than we need).
Also note that OSVVM’s TbUtilPkg has a CreateClock and a CreateReset
-
Jim Lewis replied to the topic Generic testControlProc – can this be a pattern? in the forum OSVVM 3 months ago
Some of what is in the ControlProc is pretty standard. Some of it is not.
The main items above that are custom are:
UartScoreboard <= NewID("UART_SB", NUM_UARTS) ;
. . .
osvvm_uart.ScoreboardPkg_Uart.WriteScoreboardYaml(FileName => GetTestName & "_sb_Uart.yml") ;Long term, we should be able to do the UartScoreboard as a constant:
constant…
[Read more] -
Jim Lewis replied to the topic Dissecting the OSVVM AXI Master BFM in the forum OSVVM 3 months ago
> I can see that the scripts use the explicit name of the file for analyze and run_test TCL commands. However, it is also possible to just do a file search and with the filenames in a list, iterate over the list and call analyze or run_test for each of them.
> Why isn’t it done in this way?
It comes down to testing philosophy. I see the s…[Read more]
-
Jim Lewis replied to the topic Running AXI4 Simulation from OSVVM Libraries repository in the forum OSVVM 3 months ago
The following are primary API commands. Note that library sets the
– library []
– Make LibraryName found in library directory specified by path the active library.
– Create the LibraryName if it does not exist.
– If path is not specified, use the library directory specified by SetLibraryDirectory.
– analyze [/] [options]…[Read more] -
Jim Lewis replied to the topic Riviera / MATLAB Cosim with OSVVM Scripting in the forum OSVVM 3 months ago
Thanks. I will get the updates in OSVVM scripting.
-
Jim Lewis replied to the topic Riviera / MATLAB Cosim with OSVVM Scripting in the forum OSVVM 3 months ago
Hi Brad,
Did you add “global aldec” or “global ALDEC”? Your note above seemed to indicate that it is lower case. OTOH, the error messages are referencing an upper case $ALDEC. I should note if I do “puts $aldec” it works. If I do “puts $ALDEC” it does not work.There is no “$aldec” in $PATH_TO_SIM_DIR right?
Cheers,
Jim -
Jim Lewis replied to the topic Can OSVVM Verification Component be used in VUnit based testbench? in the forum OSVVM 3 months ago
Currently to get the HTML and JUnit XML reports you must use OSVVM scripting. The problem is that both the scripts and the VHDL code writes to the files.
-
Jim Lewis replied to the topic Log, Alert and Affirm in OSVVM in the forum OSVVM 3 months ago
I use alerts in protocol checkers. If a VC receives a transaction done event when a transaction is not active, that is an alert and not an affirmation – think of the older intel X86 interfaces that used the signal nRdy to indicate a transaction is complete – receiving a stray nRdy is a bad thing.
-
Jim Lewis replied to the topic Check functions in OSVVM in the forum OSVVM 3 months ago
More direct control refers to output formatting when a check passes or fails.
-
Jim Lewis replied to the topic Dissecting the OSVVM AXI Master BFM in the forum OSVVM 3 months ago
> From my knowledge, VHDL already contains resolution functions for scenarios where something has multiple drivers. So are new functions required to resolve records with multiple drivers?
VHDL has a resolution function for std_ulogic named resolved. Its non-driving element is ‘Z’. Its default value is ‘U’. If you do not initialize it, then…[Read more] -
Jim Lewis replied to the topic Riviera / MATLAB Cosim with OSVVM Scripting in the forum OSVVM 3 months ago
Hi Brad,
Cool. If we end up needing that, it will be added. However, that said, I am curious as to why it is needed. Normally variable expansion is done in the calling scripts.So if I do:
SetExtendedSimulateOptions "-dbg -t 0 -ieee_nowarn -dataset {./sim} -datasetname {sim} -loadvhpi $aldec/bin/aldec_matlab_cosim.dll:ml2hdl"
Then I…[Read more]
-
Jim Lewis replied to the topic GHDL workarounds – any known ones? in the forum OSVVM 3 months ago
Hi Ajeetha,
Since you are creating a code generator I recommend that when it uses ScoreboardIDType that it always uses a selected path that includes the library and package as that way if people using the generated code add to it they too will not have any issues – and they will have a safe example from which to template.If your generator…[Read more]
-
Jim Lewis replied to the topic GHDL workarounds – any known ones? in the forum OSVVM 3 months ago
Hi Ajeetha,
WRT scoreboards, there are no known issues with either GHDL or NVC.There is a subtle VHDL thing with using or referencing multiple generic packages that declare a type – such as ScoreboardIDType that is declared in ScoreboardGenericPkg.
If you reference only one Scoreboard package instance, such as ScoreboardPkg_slv, then the…[Read more]
- Load More