User Tools


Taming Vivado

As with all software, Vivado has a number of “features” which you will sometimes have to deal with. This page is to help with a number of commonly encountered issues you may need to understand.

1. General Errors

Sometimes your design will not compile and gives elaboration errors. How to debug this case?

Elaboration errors occur when the syntax of all your files are correct (no missing semicolons or keywords) but when the simulator tries to wire all your modules together into a complete design it had a problem. Typical errors are wrong numbers of ports when you instance something, referencing a module not in your project, …

If there is an elaboration error, it will give a filename. Go open that file (File→Text Editor→Open File) and see what the error message is.

2. Wedged or Frozen Simulation

Before implementing anything in this section remember that anytime you make a change to your verilog code the simulation needs to be rerun. Your code describes your circuit and if you change it you change the circuit you are simulating.

2.1 Have you turned it off and on again?

It sounds cliche, but it often works. Sometimes relaunching the simulation isn't sufficient and the old simulation needs to be closed by exiting out of the simulator completely. To do this, what we mean is this:

- When you are simulating, a blue bar appears near the top of the window that is labelled “Simulation”. - There is an 'X at the right end of that bar. - Click that 'X'. - Now, run the simulation again.

Or, you may need to completely exit Vivado and restart it.

2.2 Are Multiple Copies of Vivado Running?

This is a common problem. Make sure there is only one copy of Vivado running. Sometimes the GUI will be gone but there is a Vivado process running. You can run “Task Manager” in Windows and look for a Vivado process if nothing else works. If you find any Vivado processes running, kill them. If you don't have permissions to kill them (they are left from some other user - should never happen), power cycle your entire machine.

2.3 Set Force Recompile to True

Note: This should have already been done if you followed all of the instructions in the Creating a new Vivado Project tutorial.

Run the following command in the tcl console:

   set_property INCREMENTAL true [get_filesets sim_1]

OR do the following steps:

  1. In Vivado, right click on Simulate and select Simulation settings.
  2. On the right side there is an 'Advanced' tab. Open it.
  3. Check the first box where it says, “Enable Incremental Compilation”
  4. Exit out of your simulation if you haven't already and reopen it. If this doesn't work you may need to restart Vivado after making the change.

2.4 Clearing the Cache

This entails deleting everything in your project EXCEPT the project file (.xpr extension), your design sources (the .sv files), and your TCL files.

This is DANGEROUS in that every semester a few students mistakenly delete all their source files when they do this. Before doing so, make a copy of them somewhere safe (emailing them to yourself is a good option).

  1. Exit out of Vivado.
  2. Open your file explorer and navigate to your project (if you are running LabConnect it should be in your J-Drive, otherwise it will just be wherever you created the project).
  3. There will be several files including a .xpr file, which is your actual project, your .tcl files, and a .srcs file, which has all of your source code. All 3 of these are very important. Do NOT delete them! There are directories, however, that are created every time you open your project in Vivado and run a simulation or run other analysis tools. You may delete “proj.sim” to get rid of anything in your simulator that might be preventing new simulations from being started or running correctly.
  4. Now reopen Vivado and open your project, or open your .xpr file and it will automatically be opened in Vivado.

Sometimes you will get errors about not being able to delete some files - this can be a sign that multiple Vivado processes are running. See above to fix.

3. Redo Your Project

We have seen cases where the only thing that fixes it is to create a new project with the same files. Here are the steps to do so:

  1. Make a new directory.
  2. Locate and copy all .sv, .xdc, and .tcl files from the existing project over to the new directory.
    • When you let Vivado create your .sv files, it usually buries them deep in a directory with a .srcs on the end of the name. Find them all and copy them over.
  3. Start Vivado and create a new project in the new location.
  4. Add all the source files.
  5. Add the constraint file.

At this point you have a clean project with just the files you need.