Jim Lewis
-
Jim Lewis replied to the topic case splitting in the forum OSVVM 6 months ago
Just a quick note, release 2024.07 will have a CreateJitterClock:
`
procedure CreateJitterClock (
signal Clk : inout std_logic ;
signal CoverID : inout CoverageIdType ;
constant Name : in string ;
constant Period : in time ;
constant DutyCycle : in real := 0.5 ;…[Read more] -
Jim Lewis replied to the topic Mixed language simulation and synthesis support in the forum VHDL 6 months, 1 week ago
The IEEE group that works on EDA standards in general and spawns out groups like the IEEE 1076 WG is named DASC. You can find their website here: https://dasc.org/ You can certainly work through them to form such a working group.
-
Jim Lewis replied to the topic VHDL Assert that prints the entity instance name and path in the forum VHDL 6 months, 1 week ago
You should be able to surround the process with
`– synthesis translate_off
process …
end process;
— synthesis translate_on -
Jim Lewis replied to the topic Interrupt Handling in OSVVM AddressBus Model Independent Transactions in the forum OSVVM 6 months, 1 week ago
Hi Lars,
OSVVM has an InterruptHandler.vhd in OsvvmLibraries/Common/Src. It handles switching records for you. When there is no interrupt pending, it connects the transaction record of TransRec to the AddressBus VC (such as Axi4Manager or Axi4LiteManager). When an interrupt is pending it connects the InterruptRec to the AddressBusVC.The…[Read more]
-
Jim Lewis replied to the topic The #if in VHDL in the forum VHDL 6 months, 1 week ago
Hi Hassan,
It is part of VHDL-2019. It is called Conditional Analysis. I have heard that vendors support it in older revisions.For details, see my presentation, VHDL-2019: Just the New Stuff Part 1: Interfaces, Conditional Analysis, File IO, and Environment. I did this through Aldec as one of their events. You should be able to register…[Read more]
-
Jim Lewis replied to the topic AxiStreamReceiver: Multiple Drivers on Transaction Record. in the forum OSVVM 6 months, 1 week ago
Hi Lars,
OSVVM has an InterruptHandler.vhd in OsvvmLibraries/Common/Src. It handles switching records for you. When there is no interrupt pending, it connects the transaction record of TransRec to the AddressBus VC (such as Axi4Manager or Axi4LiteManager). When an interrupt is pending it connects the InterruptRec to the AddressBusVC.The…[Read more]
-
Jim Lewis replied to the topic Ethernet VIP Documentation in the forum OSVVM 6 months, 2 weeks ago
Hi Steve,
No documentation yet. Set the test case that is for now in TestStandAlone/Tb_xMii.vhd.The VC are streaming interfaces that accept SendBurst and GetBurst.
Best Regards,
Jim -
Jim Lewis replied to the topic Bug in AxiStream Receiver for SetAxiStreamOptions that changes WaitForGet in the forum OSVVM 6 months, 3 weeks ago
Hi Hassan,
The 2024.07 release will have a limited set of predefined events added to OSVVM. One of them will signal that the test case has initialized the VC and the VC can start handler type operation.I have an initial proof of concept test case working at this point and expect to release it to the Dev branch sometime soon.
In addition,…[Read more]
-
Jim Lewis replied to the topic Dissecting usage of DelayCoveragePkg in the forum OSVVM 7 months ago
> What is the meaning of writing something like this: GenBin(2,10,2)
If this is the only GenBin for a given coverage model, this does not change anything.
Note the coverage model that I edited into the previous discussion for the AxiStreamTransmitter. If I instead did:
AddBins (BurstCov.BurstDelayCov, 80, GenBin(2,8,2)) ; -- 80% Small…
[Read more] -
Jim Lewis replied to the topic Dissecting usage of DelayCoveragePkg in the forum OSVVM 7 months 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 7 months 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 7 months 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 7 months, 2 weeks 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 7 months, 2 weeks 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 7 months, 2 weeks 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 7 months, 2 weeks 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 7 months, 2 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 7 months, 2 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 7 months, 2 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 7 months, 2 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] - Load More