Jim Lewis
-
Jim Lewis replied to the topic Generic testControlProc – can this be a pattern? in the forum OSVVM 8 months, 3 weeks 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 8 months, 3 weeks 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 8 months, 3 weeks 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 8 months, 3 weeks 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 8 months, 3 weeks 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 8 months, 3 weeks 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 8 months, 3 weeks 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 8 months, 3 weeks 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 8 months, 3 weeks 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 8 months, 3 weeks 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 8 months, 3 weeks 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 8 months, 3 weeks 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 8 months, 3 weeks 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]
-
Jim Lewis replied to the topic Dissecting the OSVVM AXI Master BFM in the forum OSVVM 8 months, 3 weeks ago
The DelayCoverage models divide a transfer into segments that are BurstLength in length. For beats (transfers within that burst length) there is BeatDelay between each item transferred on the interface. After BurstLength there is BurstDelay before the next item is transferred. Each of BurstLength, BeatDelay, and BurstLength is randomized using…[Read more]
-
Jim Lewis replied to the topic Log, Alert and Affirm in OSVVM in the forum OSVVM 8 months, 3 weeks ago
> Q2. Why does one need “Alert” functions when “Affirm” functions also exists?
Alert is for parameter checks – like is max >= min. These are properties that if violated, the design (or test case) is broken.Affirm is for self checking. Each check is counted. A test quality is a function of the number of checks and we report that.
-
Jim Lewis replied to the topic Check functions in OSVVM in the forum OSVVM 8 months, 3 weeks ago
What you find in the documentation is what is what is officially supported.
The scoreboard package was released to our classes in 2006. The AlertLog capability was added in 2015. So there is some history there. Certainly doing
Get(TRec, Data) ;
expectedData := pop(SbID) ;
AffirmIfEqual(TbID, Data, expectedData) ;Is very similar…[Read more]
-
Jim Lewis replied to the topic Dissecting the OSVVM AXI Master BFM in the forum OSVVM 8 months, 3 weeks ago
The Axi4Manager has a TransactionDispatcher, which receives transactions from the Test Sequencer (TestCtrl) and dispatches these out to interface handlers (such as WriteAddressHandler). The interface handlers connect to the DUT and represent independently running pieces of the VC. The communication between the TransactionDispatcher and…[Read more]
-
Jim Lewis replied to the topic Riviera / MATLAB Cosim with OSVVM Scripting in the forum OSVVM 8 months, 3 weeks ago
Hi Brad,
Short answer: yes you must run either simulate or RunTest to get the coverage reportsBehind the scenes when simulate finishes it saves the code coverage data base. When a test suite finishes, the code coverage from each test case is merged together. When the build finishes, it merges together the coverage from each test suite and…[Read more]
-
Jim Lewis replied to the topic Dissecting the OSVVM AXI Master BFM in the forum OSVVM 8 months, 3 weeks ago
Hi Hassan
OSVVM VC creates an AlertLogID for different classes of checkers. It is helps tracking the sources of errors – hence accelerates debug. In your own VC, you can get by with just a ModelID.Params is another singleton data structure that holds settings for the VC. It is setup like a generalized union of values.
Best Regards,
Jim -
Jim Lewis replied to the topic Riviera / MATLAB Cosim with OSVVM Scripting in the forum OSVVM 8 months, 3 weeks ago
Hi Brad,
First thing to determine is what switches you need set to vcom and vsim.If you look at the log or html log, you can determine what OSVVM is currently doing – or you can read the OsvvmProjectScripts.tcl (older releases) or OsvvmScriptsCore.tcl (renamed in 2024.05 to support future refactoring).
You can use SetExtendedAnalyzeOptions…[Read more]
- Load More