cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Contributor
Contributor
3,946 Views
Registered: ‎05-29-2018

Using UVM with Vivado Simulator

Hello,

 

I am using Vivado 2017.4 and I have no third party simulator. I have been trying to create a testbench using UVM and have been unsuccessful. I have read many posts on the subject, and some that said Vivado doesn't support UVM. However, I downloaded the UVM library from accelera's website and looked at the code and it looks like it's just some SystemVerilog. I have tried to import it into my project and it seems like the errors were from a wrong compilation order: "uvm_object is not declared", "uvm_barrier is already declared", etc. Is there any way to compile the UVM code properly and use it in a testbench? Or what would be the cheapest simulation tool that supports UVM? Also, is Xilinx planning to support UVM within Vivado in the (near) future?

 

Thanks!

0 Kudos
7 Replies
Highlighted
Moderator
Moderator
3,911 Views
Registered: ‎05-31-2017

HI @marcel42,

 

I would suggest you to check the supported system verilog constructs from page 175 of UG900.

Highlighted
Scholar
Scholar
3,894 Views
Registered: ‎08-01-2012

@marcel42

 

UVM is a methodology with a class library written entierly in SystemVerilog. The SV support in Vivado simulator is not complete and so UVM wont be possible in it any time soon.

 

Also, afaik, UVM support is not normally a feature on base level simulator licences (you may be able to compile it yourself though). You normally need to use a more expensive licence for decent UVM support.

Highlighted
Contributor
Contributor
3,879 Views
Registered: ‎05-29-2018

Hi @richardhead and @shameera,

 

Thanks for replying quickly. I will look for another simulator.

 

Cheers,

0 Kudos
Highlighted
Explorer
Explorer
526 Views
Registered: ‎01-18-2019

Hi All,

two years have passed, I wonder if Vivado is now capable of basic UVM.

I tried this in Vivado version 2020.1 and failed:

program automatic test_program;
import uvm_pkg::*; initial begin `uvm_info("DEMO", "Hello World!", UVM_MEDIUM); end endprogram

uvm_info is seen as an undefined macro. 

However, the code editor has no problem with uvm_pkg::*;  but it does have a problem with uvm_abcdef_pkg::*;  so I guess there must some uvm_pkg already there.

Thanks

Miklos

 

0 Kudos
Highlighted
Newbie
Newbie
369 Views
Registered: ‎09-04-2020

Any chance you've experimented with this more?

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
309 Views
Registered: ‎07-03-2018

Vivado supports UVM.

Default precompiled library for UVM is -L uvm.

Please try with latest vivado version for UVM test-case.

Highlighted
Newbie
Newbie
286 Views
Registered: ‎09-04-2020

Thank You!

All I could find when I looked before was that older versions don't support it. I was surprised the header worked given that.

0 Kudos