Jump to content

Version recommendation for Xilinx Installations

Recommended Posts


I'm new to FPGAs and find the Xilinx Installation process quite daunting. The installation guideline on your website is fine, but it does not recommend specific versions of Vitis/Vivado for your boards. Installing the latest version seems to not be a good idea, because certain projects on a board aren't forward compatible.

Could you maybe add a table where it states which version you recommend for which board? I'm using the Basys3, and I'm gravitating to 2020.1., but am not sure.




Link to comment
Share on other sites

Here's one opinion ( make's me think of the old saw: if you want 10 answers to a question about economics just ask 3 economists.

If you are new to FPGA development and have already purchased a development board, I'd suggest installing the version of the tools that were used to create the vendor's demo projects. This will reduce the time, complexity, and unknowns for rebuilding the demo.

Fortunately, Digilent has a few such demos for most of its boards. Unfortunately, it's not likely that all of them will have been built using the same version of the tools. This should be useful information about FPGA development. FPGA vendors have a bad habit of breaking designs using older versions of their tools, especially if they are dependent on that vendor's IP and GUI 'drag and drop' design flow. Most vendors demos do use that flow because it's what the vendors prefer, or they imagine that creating HDL code to show their customers that all of the devices on their boards actually do work is a bad investment. The truth is that, for the most part, if they just made the initial investment in creating HDL sources for their boards interfaces maintaining demos through vendor's tool versions would be a whole lot easier... and there would be no issues over the years as tool versions are released.

One caveat here is that FPGA development tools are dependent on specific OS versions ( not just Windows verses Linux, but specific Windows and Linux release versions). For the most part, older tools can be installed and will work just fine on newer OS versions.

Another reason for my advice is that vendor IP used for specific hardware that might be free one version may not be in later versions. This is common.

It doesn't hurt that older versions of the tools require significantly less disk space and download time.

At some point you might want to keep installing new tool versions but you likely won't want to get rid of older installations for older projects that you've built. Unfortunately, Xilinx has problems co-mingling tool versions installed on one host. The latest version of Vivado supports a greater variety of devices than previous versions, which is good for someone with years of project to support. Since I installed Vivado ML, though, it frequently times out trying to open on WIn10. Worse yet, the same thing happens with the other versions that I use. So I wait for 2 minutes while nothing is happening after clicking on the launcher icon only to get a message that Vivado has timed out trying to start and then it starts anyway.. and now this is how all of the versions behave.

No one is likely to create a list of preferred tool versions for particular hardware that is appropriate for general consumption because no one is going to be happen with it anyway. It would be great if board vendors provided HDL demo projects that demonstrate all of the resources on their boards; that would make the problem of tool version inconpatibitily moot; but I don't expect that to happen even though it would be less work and make everyone happier in the end.

Tool version compatibility issues is completely avoidable as it only happens with script generated IP and project scripting that is not backward compatible ( or a change in constraint syntax ). It's an issue created by the FPGA vendors that affects their customers and affiliate vendors. Occasionally, the synthesis tools will support a feature that appears in a newer version of VHDL or Verilog that a customer wants to use but this is a rare thing. The tool vendors know that their development tools are too big and complex to maintain and yet they don't seem to want, or be able, to do anything about it. It's true that the P&R part of the tools gets more complicated as more and more devices are supported but that problem has a solution.

[edit] All of the above assumes that you are one of the normal people who want to see their purchase do something.. and now. If you are just interested in learning VHDL or Verilog then the tool version doesn't matter, except for ZYNQ based boards. You can write HDL code and testbenches and try them out in simulation with no problem. Of course you don't actually need to have a board to do that. One vendor IP that I do recommend is the Clocking Wizard for most people. But there aren't too many options there so it's easy to setup from scratch for most use cases. The latest Vitis/Vivado tools come in a hefty 60 GB or so download package as opposed to the under 8 GB downloads of earlier versions, which might factor into a decision if you don't have a broadband connection. Edited by zygot
Link to comment
Share on other sites

Wow. I'm surprised the world around us works so well if the tools that build it are so brittle... I guess I'm spoilt, because software tools are so mature nowadays, and those are the only ones I've used so far. Well, good to know that this is a common problem. Thanks!

Link to comment
Share on other sites

1 hour ago, SibiHenckel said:

I'm surprised the world around us works so well if the tools that build it are so brittle

Or maybe you've just gotten accustomed to buying products that don't quite work as advertised?

1 hour ago, SibiHenckel said:

software tools are so mature nowadays, and those are the only ones I've used so far.

Perhaps, but those pesky software libraries that all software products are built with are highly dependent on compiler versions, other library versions, OS versions, kernel versions, framework versions, and so on and so on.... things can get out of hand if your tool executables and scripts take up 150 GB of disk space. FPGA vendors always need to push out support for new devices. Fortunately, for everyone involved, the pace of XIlinx tool releases has been slowing down in recent years.

I didn't mean to cause alarm, but questions about why Digilent demos don't work with a particular tool version is a common theme. New tool versions breaking old projects is more of a problem for people or companies that have to maintain sources over time.. not unlike software, but for different reasons. Depending on your interest and how long it lasts this might not even be a problem for you. But you can go to the product page for your board and see what demos are available and what tools versions they were designed in. Most of Digilent's demos are MicroBlaze based so you have twice the opportunity for problems ( HW and SW ). But do check out what's available to see the requirements.

I'll warn you that approaching FPGA development as if it is similar to software development is likely going to be an obstacle for learning, if you want to become competent at it.  But really it all depends on what your goals and objectives are. Every version of Xilinx tools ever produced has bugs so you want to stick with one version of the tools, when possible, so that you don't have to spend excessive time on tool bugs instead of those in your own project sources. 

I'd be surprised if no one posts a different answer to your question.

Edited by zygot
Link to comment
Share on other sites

  • 2 weeks later...

The cleanest answer I can offer is to install the version of Vivado that was lasted used with Digilent's provided example projects; in the case of the Basys 3 this is Vivado 2020.1, https://digilent.com/reference/programmable-logic/basys-3/start#example_projects, which is what zygot recommended.

If you're going to modify an existing pure HDL document, you can probably (nothing is guaranteed) use it in whatever version of Vivado you prefer. A non-HDL project, like many Microblaze or other IP/processor based projects, like zygot indicated, will be hit and miss about it successfully "compiling" on other versions of Vivado. This isn't to say that it isn't impossible to make the demos work on other versions; you just might be doing some extra troubleshooting and debugging of cryptic errors in Vivado/SDK/Vitis just like Digilent would be doing.

As a more general/alternate approach for which version to install, I'd recommend installing one of the (relatively speaking) older versions of the Xilinx software, if only so you don't have to wait so long for the software to download and install.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...