Zephyrnet Logo

How to debug licensing related issues

Date:

When you encounter a licensing issue in Vivado/ISE, what should you do next?

This blog entry covers the different issues that can come up with different types of licenses. You can click on the headings below to jump to the type of license you have.

The first thing to note is that Xilinx offers both node-locked and floating (or network floating server) licenses. 

A node-locked license is an encrypted “key” that is locked to a specific machine or dongle. The license is uncounted, meaning that there can be an unlimited number of simultaneous runs (by any one user) on a single machine. 

A network floating license allows a user to use a license from any machine that can access the identified license server. An encrypted “key” is locked to a license server host that runs the FLEX license server daemon. The license is “counted,” meaning that the FLEX license manager keeps track of the number of “seats” hosted by that server.

Below are the suggestions on how to resolve your licensing issues based on the type of license you have.

Floating license related issues:

First you will need to identify if the issue is coming from the floating license Server side or from the client end.

By “floating license Server side” we mean the server that is used to run the floating licenses.

“Client end” means the PC that is used to run the Xilinx tools where you are seeing the licensing issues.

Begin by checking the floating license Server side.

Floating license Server side:

On the client end, check if the floating license server is UP and running correctly.

Linux:

open a command prompt and CD to the location of lnx64.o, for example: ../Xilinx/Vivado/2019.1/bin/unwrapped/lnx64.o

From here, run this command:

lmutil lmstat –a –c <port_number>@<server_name> -i

(for example, lmutil lmstat –a –c 2100@server123 -i)

Windows:

Run this command from the location of win64.o, for example: C:XilinxVivado2019.1binunwrappedwin64.o

lmutil lmstat –a –c <port_number>@<server_name> -i

(for example, lmutil lmstat –a –c 2100@server123 -i)

The next thing to check is if lmgrd and xilinxd are both UP, as shown below:

1.png

If the server is not UP, you will see an error message with an indication that the server is not running.

At this stage you can concentrate on identifying the reason why it is not up and running.

The best place to start debugging is to check the floating license server debug.log file. It should show more details of why the server is not started or cannot be run.

The debug.log file gets created once you start the floating license server. The license server administrator will know the location of this file.

Based on the messages found in the log file, you should then be able do a search on the Xilinx website for this particular error/info, as there are many known issues that have been already identified and documented in Answer Records:

https://www.xilinx.com/support/answer-navigation/design-tools/licensing.html

Please also review the Vivado 2017.3 Licensing Changes Forum topic.

One of the main changes is in relation to upgrading licensing utilities to Flex 11.14.1. 

(Xilinx Answer 69377) states that when working with Vivado 2017.3 and newer Vivado releases, all of the floating license users must upgrade their license utilities to FlexLM 11.14.1.0 or newer, in order for licenses to be picked up by Vivado.

Vivado releases prior to Vivado 2017.3 and ISE 14.7 and older versions will work fine using any previous version of flexlm utilites, for exammple v11.13. However, Xilinx recommends to upgrade to FlexLM 11.14.1.0 or a newer version.

When you run the above command (lmutil lmstat…), you will also see what version of flexlm utilities the server was started with.

You should see v11.14.1 for both lmgrd and also for xilinxd as shown below:

2.png

Some cases have been seen where lmgrd starts with v11.14.1, but xilinxd is still running using an older version such as v11.13.

In this case, Vivado will still not able to identify and check out the necessary licenses from the server.

If that is the case, licensing utilities can be found and obtained from the download page of www.xilinx.com.

There are separate utilities for a Windows or Linux OS.

Once these have been downloaded and unzipped on to the server, the floating license server then needs to be started using the lmgrd from the same location that the utilities were unzipped into.

It will then in turn call the xilinxd vendor daemon (also found in the same location as lmgrd v11.14). 

Note: If your floating license is specifically pointing to a xilinxd.exe location for a particular version (i.e. pointing directly within the floating license file), then this version of the xilinxd vendor daemon is going to be called out instead of the newer v11.14.

If that is the case, either edit the lic file and point to the location of the latest xilinxd.exe or remove the path from the VENDOR line of the license file.

If your floating license server is on a Windows OS and if no Vivado tools are installed on this machine, an error such as “xilinxd exited with status 53” might be seen in the debug.log file after starting the floating license server using lmgrd v11.14. If that is the case, see (Xilinx Answer 69969) for further details on how to resolve this.

General instructions on how to start the floating license server can be found in (UG973). Chapter 3 has a section on Serving Certificate-Based Floating Licenses.

After checking the above, the next step is to examine the client’s end and see why the client machine cannot obtain the necessary licenses from the floating license server.

Client end:

There are a few common reasons on the client end why you might see this behaviour:

Environment variables:

The XILINXD_LICENSE_FILE or LM_LICENSE_FILE environment variable might not be set on a client PC with the network path (in the port@server format) to point to the license server.

Note: the XILINXD_LICENSE_FILE environment variable is intended to be used to point to any Xilinx related licenses, whereas the LM_LICENSE_FILE environment variable tends to be used for other non-Xilinx related licenses (for example, Mentor Graphics, Synopsys licenses, etc.)

Expired version limit:

The client’s end might have installed an updated version of the Vivado release, for which the current floating license is not valid due to the Expired version limit.

You can find a description of the version limit and how it works in (Xilinx Answer 33770).

More information is available at our Licensing FAQ page in the “Expiration and Warranty Period” section:

http://www.xilinx.com/tools/faq.htm

Option file INCLUDE list:

This issue can occur when an option (.opt) file is set on a particular floating license file. An option file allows you to control who can or cannot check out a particular licensing feature or the entire license file from the floating license server.
If a user is not added into the INCLUDE list of the .opt file, a message such as “user is not on INCLUDE list for feature” will be shown in the debug.log file.
For more information regarding Flexera option file creation and management, please read the Flexnet licensing documentation.

There are some other factors that can cause the client end to be unable to Check Out the licenses from the Floating license server, however the issues listed above are the most common.

Node-locked license related issue:

When Xilinx software/tools cannot recognize the license, what could be wrong?

A few common issues in this situation are:

Windows:

License is in a folder that Vivado cannot detect:

If the Node-Locked licenses are not in the default location of %APPDATA%.Xilinx (on a Windows Operating System this is typically C:.Xilinx), and if XILINXD_LICENSE_FILE or LM_LICENSE_FILE are not set, Vivado/ISE tools will not be able to detect Node-Locked licenses.

See the “What are the search order and locations…” section of http://www.xilinx.com/tools/faq.htm for legal search paths.
 

Incorrect Host ID:

If the hostID of the license does not match the hostID of the machine being used, the feature should still show up in VLM/XLCM but will not be usable.

Linux:

License is in a folder that Vivado cannot detect:

On Linux Operating Systems, the default licensing location for Node-locked licenses is $HOME/.Xilinx.

If the licenses are not in this location, and if XILINXD_LICENSE_FILE or LM_LICENSE_FILE is not set, Vivado/ISE tools will not be able to detect Node-Locked licenses.

Incorrect Host ID:

If the hostID of the license does not match the hostID of the machine being used, the feature should still show up in VLM/XLCM but will not be usable.

Ethernet address reported as “000000000000”

There is a command issue (on Linux only) where the Ethernet address used for the Flex license HostID is being reported on some machines as “000000000000”

In this case, the Vivado Flex Licensing API does not validate the HostID and fails to grant a license.

The solution for this issue is to change the port name. For more information, please see (Xilinx Answer 60510).

Dongle Related Licensing information and known issues:

What is a dongle and why would you use it?

If you need to use a Node-Locked license on other machines, then you would need to consider purchasing and using a licensing Dongle from Flexera.

A dongle is not a memory USB stick, it is just a transferable ID (the dongle’s Host ID).

Here is an example of a Flexnet dongle:

3.png

At the node-locked license generation, you can select and specify the Dongle’s FlEX ID for this license.

See (Xilinx Answer 42410) for more details.

This allows you to transfer this dongle together with your license from one PC to another, and the Xilinx tools will then be able to detect and use this license on your different machines. 

Where to buy a Dongle?

Xilinx no longer sells Dongles.

Dongles can be purchased directly from Flexera.

For additional information or to order dongles, please contact Flexera.

Flexera’s Dongle request e-mail address is: flexid@flexerasoftware.com

Note: FLEX ID dongles are not officially supported on Linux operating systems. USB dongle licensing is supported on Windows platforms only. Per the information in (Xilinx Answer 35027), Xilinx does not deliver drivers to support USB dongles for licensing on Linux operating systems.

Although not officially supported, some customers have reported that they are able to install and successfully use Linux FlexID-9 dongle drivers for FLEX licensing.

Typically, FLEX licensing works as long as the dongle is recognized on the system.

To get the dongle’s FLEX ID and to check if the dongle is recognized, using a command prompt to CD to the location of win64.o.

For example: C:/Xilinx/Vivado/2019.2/bin/unwrapped/win64.o

From here run the following command:

lmutil lmhostid -flexid

4.jpg

If the dongle is recognized, then Vivado should have no issues in finding and using your license that is generated targeting the Dongle’s FLEX ID.

If the dongle is NOT recognized, see below for further details.

Known issues related to Dongles:

1. Vivado 2017.3 and newer versions does not detect a valid Node-Locked license when using an older HASP4 dongle.

For the solution, see (Xilinx Answer 70201)

2. A second FlexNet ID dongle is not recognized on 64-bit Windows operating systems.

For the solution, see (Xilinx Answer 43209)

3. Installing/uninstalling USB dongle drivers in Windows.

For more information, see (Xilinx Answer 47132)

If a FLEXId-9 Dongle is not recognized by Vivado, what should I do next?

Here is the debug Process:

After a dongle is plugged into a machine, and if the dongle’s drivers were installed correctly, a red light of the dongle will be ON as shown below:
4.png

If the red light is not ON, this is an indication that there is most likely an issue with the dongle’s drivers.

In this case, follow the steps outlined in (Xilinx Answer 47132), to get this recognized on this Windows OS.

Note: For step 6 from (Xilinx Answer 47132), you will need to copy both haspsrm_win64.dll and haspsrm_win32.dll  into %windir%System32 and then both of these libraries (haspsrm_win64.dll and haspsrm_win32.dll) also need to be copied into %windir%SysWOW64.

If you only copy haspsrm_win32.dll into %windir%System32 and haspsrm_win64.dll into %windir%SysWOW64, this will not work, because both of these files need to be present in both locations as outlined above.

Once you have done the above, restart the PC. The light on the dongle should go red, indicating the Dongle is successfully detected.

Please also check (Xilinx Answer 70201) for the following issue:

If the FlexNet dongle is an older HASP4 dongle and not a newer HASP HL dongle, then Vivado 2017.3 (and later Vivado releases) will not be able to detect this dongle and the license will not get checked out.

If an older Dongle (i.e. HASP4) is used, the options are:

  • Order a newer HASP HL dongle to use with the newer tools
  • Re-generate your license to target a NIC ID (Network Interface Card ID) or a DISK_SERIAL_NUM instead of your dongle’s ID.

IP Core License related issues:

With any IP Core licensing issue, you will need to identify if there is an issue with an IP Core license file itself (a license installation issue, an expired version limit of the license file or an incorrect/missing IP Core license for a particular IP in the design, etc.) or if there is an issue with Xilinx tools not being able to find and check out a valid IP Core license file, either from the floating license server or from a local machine.

If you see an IP Core licensing error in Vivado, to identify exactly which IPs are in the design and which licenses are found for these IP Cores, open Vivado and select “Report IP Status” which can be found under the Reports tab.

Alternatively you can run the “report_ip_status” Tcl command in the Tcl Console and this will generate the IP Status Summary.

The IP Status Summary will include information on all of the IPs found in the design as well as the licenses found for these IPs.

You should see either Purchased/Bought, Hardware_Evaluation (HW_Eval), Design_Linking or Included.

For the bitstream generation, a bought (full) IP Core license is required or a Full Hardware Evaluation IP core license.

If you see Design_Linking across an IP Core, that is the reason for the IP Core licensing error in Vivado.

Limitations of the LogiCORE IP Core Full System Hardware Evaluation license and the LogiCORE IP Core Design Linking license can be found in the Answer Records below:

(Xilinx Answer 42380)What are the features/limitations of a LogiCORE IP Core Hardware Evaluation license?

(Xilinx Answer 42379)What are the features/limitations of a LogiCORE IP Core Simulation-Only (Design-Linking) license?

XILINXD_LICENSE_FILE variable

If a license is listed as Design_Linking, but you do have a valid license that was installed correctly and appears in Vivado License Manager (VLM), it could be that Vivado is unable to detect the location of this IP Core license.

Even if the IP core Node-Locked licenses are in the default location of %APPDATA%.Xilinx (Normally C:.Xilinx on Windows, or $HOME/.Xilinx on Linux), it is suggested to set the XILINXD_LICENSE_FILE environment variable to point to this .Xilinx folder.

Vivado will then look here for the IP Core license.

The next step is to re-open Vivado and do the report_ip_status scan once again.

Then check if this time, you are seeing either Purchased/Bought or HW_Eval (and not Design_Linking) for all of the IPs found in the design.

If that is the case, the next step is to update the current netlist.

Netlist updates:

Cases have been seen where the user has added a new valid license, but bitstream generation still fails due to an IP Core related licensing issue.

The problem here is that the current netlist was not updated after the new Full or a HW Eval license was added.

When an IP core is generated, the licensing information is stored in the netlist file and it stays the same even if the license situation changes. (for example if you had no license and then added a full purchased license (or an evaluation one) afterwards).

In this case you will need to update the output products on the IP in question (or if it is a Block Design, do this on the BD instead) to update the netlist.

Otherwise, if the output products are not updated, the netlist will not update, and an old license will still be pointed to even after a valid license was installed.

Following the steps in (Xilinx Answer 58758) should help you to resolve this IP Core licensing issue.

IP Cache:

In some cases, the IP Cache also needs to be cleared.

You can clear the IP cache in two ways.

In the GUI under the IP settings, there is a button that clears the IP cache of the project:

5.png

Alternatively, IP cache can be cleared by running the following Tcl command:

config_ip_cache -clear_output_repo

 

If none of the above tips helped with answering your question, why not post your query on the Install & Licensing forum board:

https://forums.xilinx.com/t5/Installation-and-Licensing/bd-p/INSTALLBD

Checkout PrimeXBT
Trade with the Official CFD Partners of AC Milan
The Easiest Way to Way To Trade Crypto.
Source: https://forums.xilinx.com/t5/Design-and-Debug-Techniques-Blog/How-to-debug-licensing-related-issues/ba-p/1045006

spot_img

Latest Intelligence

spot_img