hobbyiclearner
Full Member level 2
- Joined
- Oct 27, 2014
- Messages
- 142
- Helped
- 2
- Reputation
- 4
- Reaction score
- 2
- Trophy points
- 18
- Activity points
- 1,296
Hello,
I am a basic user of VHDl and wanted to know if there is any VHDL equivalent of systemverilog.
Thanks,
Hobbyiclearner
Only when you ignore OSVVM. See my post on OSVVM for more.But when it comes to testbench writing (random constraint solving, functional coverage, object-oriented programming), or integrating C models with your testbench or your design, VHDL has no equivalent,
OSVVM bases its randomization on a functional coverage model - either point or cross coverage. OSVVM does a random walk across the coverage model to randomly select the next test values to apply. You could say the coverage model and current coverage is used to solve what to do next - but it is not anything like a constraint solver.Why do we not need a constraint solver?
Actually you are doing more work. The intelligent coverage random walk is done by a method call (RandCovPoint - see the examples), so from a user perspective, it is no more work than SystemVerilog. OTOH, when you look at the whole process, OSVVM is less work. In SystemVerlog you write functional coverage and randomization constraints - two perspectives of the same thing. In OSVVM, we write functional coverage and use it for randomization.In the meantime I think I rather like the constraint solver and the amount of work it saves compared to not having constrained randomization.
OO is neither good, nor bad. On the other hand, SystemVerilog marketing droids are in the habit of claiming verification requires OO. VHDL doesn't require OO to do advanced verification. Due to the marketing droid claims, it is necessary to point this out. Of course Verilog is a very different language, so perhaps to make up for its differences, it needs OO to do advanced verification.And why is OO a bad thing for verification?
Slight misquote there. By writing the coverage and doing a random walk across the coverage model, OSVVM does ~5x less iterations than a uniform distribution. Most solvers strive to have a uniform distribution.I think my favorite part in that blog post has to be the part where OSVVM is ~ 5x faster than SV.
Apples and oranges.So I guess by changing the relevant SV code from rand to randc I suddenly "created a 5x speedup"?
Reuse pre-dates OO. Reuse works just fine in VHDL. Always has. Packages facilitate creation of utility libraries, such as OSVVM. Generics allow entities and, with VHDL-2008, packages to be parametrized. With VHDL-2008, generics can constants, types, subprograms, or packages. With these features creation of things like parametrized scoreboards is fairly straight forward.As for OO, who would ever want to have some extra abstraction to help reuse their IP.
This is definitely something we need to work on.My big problem with all this is the market.
You cant go ahead and use OSVVM without being considered "a bit strange" and be asked "why didnt you use SV, like everyone else".
I think it is more than that. OSVVM community now has over 1200 members.Without some market adoption, it is very hard to convince people to stick with VHDL for verification.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?