Jim Lewis
-
Jim Lewis replied to the topic Writing a Test Plan, Identifying Transactions, and Documenting BFMs/MIT in the forum OSVVM 1 year, 5 months ago
Hopefully this gets the topic started. Hopefully others will comment too. It is a long topic and I probably missed some things. I may have an entirely different perspective than others.
-
Jim Lewis replied to the topic Writing a Test Plan, Identifying Transactions, and Documenting BFMs/MIT in the forum OSVVM 1 year, 5 months ago
Documenting a Verification Component needs to address
- What does the VC need to do
- How do I use the VC
- What transactions does the VC support
I note that the Axi4_VC_users_guide in OsvvmLibraries/Documentation primarily addresses the last two. Rather than addressing the first one, it assumes that is must support all operations on the AXI4…[Read more]
-
Jim Lewis replied to the topic Writing a Test Plan, Identifying Transactions, and Documenting BFMs/MIT in the forum OSVVM 1 year, 5 months ago
Why Randomize
Our goal is to thoroughly test a design. For some designs, directed testing will get the job done.For some designs, there are too many variations to be able to test every variation in the system. Variations can be a multiplying factor in testing a design. If the design can limit the variations in the system, the system can…[Read more]
-
Jim Lewis replied to the topic Writing a Test Plan, Identifying Transactions, and Documenting BFMs/MIT in the forum OSVVM 1 year, 5 months ago
Implementing Transactions
The behavior of a transaction can either be implemented in a verification component (VC) or in the subprogram body (as SendCmd above suggests). Note the acronym BFM means bus functional model and can refer to either a VC or subprogram body. BFM means the model implements only the interface behavior and not internal…[Read more] -
Jim Lewis replied to the topic Writing a Test Plan, Identifying Transactions, and Documenting BFMs/MIT in the forum OSVVM 1 year, 5 months ago
Lets address, 2. Identifying Transactions:
A transaction is an abstract representation of an atomic action on an interface. For a UART transmitter, it is sending one word on the interface. For an Axi4Lite interface, it is Write and Read operations on the interface.
For the simple interface we look at in our Comprehensive VHDL…[Read more]
-
Jim Lewis replied to the topic Writing a Test Plan, Identifying Transactions, and Documenting BFMs/MIT in the forum OSVVM 1 year, 5 months ago
Hi Dave,
I suspect a proper response to this may end up being a couple of blog posts in length. Lets start with a couple of references:Comprehensive Functional Verification by Bruce Wile, John Goss, and Wolfgang Roesner covers test plans. I have not read the whole book. It is on my some day maybe list.
Peet James Snug 2000 paper on…[Read more]
-
Jim Lewis replied to the topic Configuring the AXI-Lite WSTRB in the forum OSVVM 1 year, 5 months ago
The X”DEADBEUU” you are seeing is due to the masking of the lower byte.
-
Jim Lewis replied to the topic Configuring the AXI-Lite WSTRB in the forum OSVVM 1 year, 5 months ago
Hi Adam,
If you are using the OSVVM Axi4Lite VC, the best way to get word addresses is to just throw away the lower address bits and do full word writes to the interface. Hence, the transaction calls would still use the addresses X”0000″, X”0004″, X”0008″, …, but since you are throwing away the lower two address bits, the memory would see it…[Read more] -
Jim Lewis replied to the topic Configuring the AXI-Lite WSTRB in the forum OSVVM 1 year, 5 months ago
Hi Adam,
Is your question, how do you connect AXI4 up to a memory that only supports word addressing? The memory would ignore the lower bits of address that correspond to the byte addresses and it would ignore strb totally. If there is a write data operation as signified by Valid and Ready, then all 32 bits get written into memory. There is…[Read more] -
Jim Lewis replied to the topic Configuring the AXI-Lite WSTRB in the forum OSVVM 1 year, 5 months ago
Hi Adam,
I am not sure what that means. What are you trying to do? In Axi4Lite, strb is a byte strobe that indicates the corresponding 8 bits is part of the write. The strb will be active when Valid is active. This may be multiple clock cycles if Ready is not also active.Does the dpRAM only accept full 32 bit writes? Maybe this device…[Read more]
-
Jim Lewis replied to the topic Learning OSVVM with AXI4 in the forum OSVVM 1 year, 5 months ago
Hi Adam,
The AxiStreamTransmitter and AxiStreamReceiver both have randomization in them. There is a corresponding test case that has good examples in it, TbStream_SendGetRandom1.vhd. You can find it in OsvvmLibraries/AXI4/AxiStream/TestCases. It was just updated (meaning just before this post) to better show the different use models for…[Read more] -
Jim Lewis replied to the topic Learning OSVVM with AXI4 in the forum OSVVM 1 year, 5 months ago
Oops. It took me until now to push the files to GitHub properly.
-
Jim Lewis replied to the topic Barrier synchronization with integer_barrier in the forum OSVVM 1 year, 5 months ago
Agreed that SetDebugMode is enough for what you are doing. SetInteractiveMode = SetDebugMode + SetLogSignals + Stop Simulation when analyze or simulate error occurs.
I use SetInteractiveMode false when running a set of simulations in CI or as a regression as I want to see results from all tests, but SetInteractiveMode when debugging.
-
Jim Lewis replied to the topic Simulating Backpressure with the AXIS VC in the forum OSVVM 1 year, 5 months ago
Hi Adam,
Adding random delays is a work in progress. I am posted about updates in https://osvvm.org/forums/topic/learning-osvvm-with-axi4#post-2209.Best Regards,
Jim -
Jim Lewis replied to the topic Learning OSVVM with AXI4 in the forum OSVVM 1 year, 5 months ago
Hi Adam,
I just pushed a new version of Axi4Manager.vhd with random delays. They maintain backward compatibility, and hence, you have to turn on the randomization features. No documentation yet. I still have to add random delays to Axi4Memory and Axi4Subordinate – I also need to add them to the VTI versions of the VC. Also the initial delay…[Read more] -
Jim Lewis replied to the topic Barrier synchronization with integer_barrier in the forum OSVVM 1 year, 5 months ago
Hi Jason,
Resolution functions are a VHDL-1987 feature. So Ashenden’s VHDL Designers Guide should have a good description of them. I will describe them briefly here too.In VHDL-2008, element based resolution functions were extended to support array objects. So std_logic_vector is now defined as:
subtype std_logic_vector is (resolved)…
[Read more] -
Jim Lewis replied to the topic Learning OSVVM with AXI4 in the forum OSVVM 1 year, 5 months ago
Hi Adam,
WRT randomness in dispatching each channel, that is what I am currently working on. I added it to AxiStream in a Beta form in an earlier OSVVM release – it has changed some on the Dev branch. I will be adding it to Axi4 VC next. Each channel will be independent, so a write data should randomly happen prior to write address, as will…[Read more] -
Jim Lewis replied to the topic OSVVM, Questa – Fails to Compile OSVVM in the forum OSVVM 1 year, 6 months ago
Hi Jamie,
The working library (denoted as work in VHDL) is the library into which you are currently compiling. Hence, the OSVVM packages use the name work to reference items (use work.TranscriptPkg.all).Currently VHDL context clauses do not allow the usage of the library work. Hence, you see the usage of OSVVM there.
Diving a little…[Read more]
-
Jim Lewis replied to the topic Simulating Backpressure with the AXIS VC in the forum OSVVM 1 year, 7 months ago
Hi Adam,
I have added some beta features to the 2023.04 release to see if we can address this better. As a Beta feature, there is no documentation yet – as it may change. See AxiStream/TestCases/TbStream_SendGetRandom1.vhd.Best Regards,
Jim -
Jim Lewis wrote a new post 1 year, 7 months ago
OSVVM 2023.04 Release Summary of 2023.04 Changes Updated co-simulation environment to support both Streaming Interfaces as well as Address Bus Interfaces. More details […]
- Load More