Finn Can't Get Get The License (No Such File Or Directory: '/tmp/finn_dev_thesis/synth_out_of_context_unxu_jk8/results_finn_design_wrapper/res.txt')

by ADMIN 149 views

Quick Summary

Finn, a popular open-source framework for designing and simulating digital circuits, is unable to access the Vivado license file despite setting the necessary environment variables. The error message indicates that a valid license was not found for the 'Synthesis' feature and 'xczu9eg' device. In this article, we will explore the possible causes of this issue and provide step-by-step debugging instructions to resolve the problem.

Details

The issue arises when running a Python script that utilizes Finn to design and synthesize a digital circuit. The script executes the export FINN_DOCKER_EXTRA command to set the necessary environment variables for accessing the Vivado license file. However, the script still fails to access the license file, resulting in a FileNotFoundError.

Vivado Log File Analysis

To further investigate the issue, we analyze the Vivado log file, which provides valuable information about the error. The log file indicates that a valid license was not found for the 'Synthesis' feature and 'xczu9eg' device. This suggests that the license file is not being accessed correctly.

License File Location

The license file is stored in the /eda/Vivado/2024.2/data/ip/core_licenses directory, with the names vivado.log and runme.log. These files are essential for accessing the Vivado license.

Last Couple of Lines of Vivado Log File

The last couple of lines of the Vivado log file are as follows:

# source headers.tcl
## set file "$origin_dir/dummy_nachiket_fooling_zsh_for_loops.h"
## set file [file normalize $file]
## set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
## set_property "file_type" "Verilog Header" $file_obj
# set obj [get_filesets sources_1]
# set_property "top" "$argv" $obj
# if {[string equal [get_filesets -quiet constrs_1] ""]} {
#   create_fileset -constrset constrs_1
# }
# set obj [get_filesets constrs_1]
# set file "[file normalize "$origin_dir/$argv.xdc"]"
# set file_added [add_files -norecurse -fileset $obj $file]
# set file "$origin_dir/$argv.xdc"
# set file [file normalize $file]
# set file_obj [get_files -of_objects [get_filesets constrs_1] [list "*$file"]]
# set_property "file_type" "XDC" $file_obj
# set obj [get_filesets constrs_1]
# if {[string equal [get_filesets -quiet sim_1] ""]} {
#   create_fileset -simset sim_1
# }
# set obj [get_filesets sim_1]
# set obj [get_filesets sim_1]
# set_property "top" "$argv" $obj
# set_property "xelab.nosort" "1" $obj
# set_property "xelab.unifast" "" $obj
# set_property strategy "Vivado Synthesis Defaults" [get synth_1]
# set_property strategy "Flow_PerfOptimized_high" [get_runs synth_1]
# set_param synth.elaboration.rodinMoreOptions {rt::set_parameter ignoreVhdlAssertStmts false}
# set obj [get_runs synth_1]
# set_property -name {steps.synth_design.args.more options} -value {-mode out_of_context} -objects $obj
# set_property STEPS.SYNTH_DESIGN.ARGS.RETIMING true [get_runs synth_1]
WARNING: [Common 17-599] Property 'STEPS.SYNTH_DESIGN.ARGS.RETIMING' is deprecated for object type 'run'. Please use '-global_retiming' instead.
# current_run -synthesis [get_runs synth_1]
# set_property strategy "Vivado Implementation Defaults" [get_runs impl_1]
# current_run -implementation [get_runs impl_1]
# puts "INFO: Project created:vivadocompile"
INFO: Project created:vivadocompile
# launch_runs -jobs 8 impl_1 -to_step route_design
[Thu May  8 03:48:56 2025] Launched synth_1...
Run output will be captured here: /tmp/finn_dev_thesis/synth_out_of_context_unxu_jk8/results_finn_design_wrapper/vivadocompile/vivadocompile.runs/synth_1/runme.log
[Thu May  8 03:48:56 2025] Launched impl_1...
Run output will be captured here: /tmp/finn_dev_thesis/synth_out_of_context_unxu_jk8/results_finn_design_wrapper/vivadocompile/vivadocompile.runs/impl_1/runme.log
# wait_on_run impl_1
[Thu May  8 03:48:56 2025] Waiting for impl_1 to finish...
[Thu May  8 03:49:16 2025] impl_1 finished
ERROR: [Vivado 12-13638] Failed runs(s) : 'synth_1'
 'synth_1' run failed with below errors.
ERROR: [Common 17-345] A valid license was not found for feature 'Synthesis' and/or device 'xczu9eg'. Please run the Vivado License Manager for assistance in determining
which features and devices are licensed for your system.
Resolution: Check the status of your licenses in the Vivado License Manager. For debug help search Xilinx Support for "Licensing FAQ". If you are using a license server, verify that the license server is up and running a version of the xilinx daemon that is compatible with the version of Xilinx software that you are using. Note: Vivado 2021.1 and later versions require upgrading your license server tools to the Flex 11.17.2.0 versions. Please confirm with your license admin that the correct version of the license server tools are installed.

wait_on_runs: Time (s): cpu = 00:00:09 ; elapsed = 00:00:20 . Memory (MB): peak = 1460.258 ; gain = 0.000 ; free physical = 3432 ; free virtual = 29476
ERROR: [Common 17-39] 'wait_on_runs' failed due to earlier errors.

    while executing
"wait_on_run impl_1"
    (file "n_design_wrapper.tcl" line 156)
INFO: [Common 17-206] Exiting Vivado at Thu May  8 03:49:16 2025...

Debugging Steps

To resolve the issue, follow these debugging steps:

  1. Verify License File Location: Ensure that the license file is stored in the correct location, i.e., /eda/Vivado/2024.2/data/ip/core_licenses.
  2. Check License File Names: Verify that the license file names are correct, i.e., vivado.log and runme.log.
  3. Run Vivado License Manager: Run the Vivado License Manager to check the status of your licenses. This will help determine which features and devices are licensed for your system.
  4. Verify License Server: If you are using a license server, verify that the license server is up and running a version of the xilinx daemon that is compatible with the version of Xilinx software that you are using.
  5. Upgrade License Server Tools: If you are using Vivado 2021.1 or later versions, upgrade your license server tools to the Flex 11.17.2.0 versions.
  6. Confirm License Admin: Confirm with your license admin that the correct version of the license server tools are installed.

By following these debugging steps, you should be able to resolve the issue and access the Vivado license file correctly.

Conclusion

Q: What is the issue with Finn not being able to access the Vivado license file?

A: The issue arises when Finn is unable to access the Vivado license file despite setting the necessary environment variables. This results in a FileNotFoundError and prevents Finn from running successfully.

Q: What are the possible causes of this issue?

A: The possible causes of this issue include:

  • The license file is not stored in the correct location.
  • The license file names are incorrect.
  • The Vivado License Manager is not running correctly.
  • The license server is not up and running a compatible version of the xilinx daemon.
  • The license server tools are not upgraded to the latest version.

Q: How can I verify the license file location?

A: To verify the license file location, follow these steps:

  1. Check the Vivado documentation to ensure that the license file is stored in the correct location.
  2. Verify that the license file names are correct.
  3. Check the Vivado log file to ensure that the license file is being accessed correctly.

Q: What are the steps to run the Vivado License Manager?

A: To run the Vivado License Manager, follow these steps:

  1. Open the Vivado License Manager.
  2. Check the status of your licenses.
  3. Verify that the features and devices are licensed for your system.

Q: How can I verify the license server?

A: To verify the license server, follow these steps:

  1. Check the license server status.
  2. Verify that the license server is up and running a compatible version of the xilinx daemon.
  3. Check the license server tools version to ensure that it is upgraded to the latest version.

Q: What are the steps to upgrade the license server tools?

A: To upgrade the license server tools, follow these steps:

  1. Check the Vivado documentation to ensure that the license server tools are upgraded to the latest version.
  2. Download the latest version of the license server tools.
  3. Install the latest version of the license server tools.

Q: How can I confirm with my license admin?

A: To confirm with your license admin, follow these steps:

  1. Contact your license admin to verify that the correct version of the license server tools are installed.
  2. Verify that the license server is up and running a compatible version of the xilinx daemon.
  3. Check the license server status to ensure that it is working correctly.

Q: What are the common issues that can cause this problem?

A: The common issues that can cause this problem include:

  • Incorrect license file location.
  • Incorrect license file names.
  • Vivado License Manager not running correctly.
  • License server not up and running a compatible version of the xilinx daemon.
  • License server tools not upgraded to the latest version.

Q: How can I troubleshoot this issue?

A: To troubleshoot this issue, follow these steps:

  1. Check the Vivado log file to identify the error message.
  2. Verify the license file location and names.
  3. Run the Vivado License Manager to check the status of your licenses.
  4. Verify the license server status and version.
  5. Upgrade the license server tools to the latest version.

By following these Q&A, you should be able to troubleshoot and resolve the issue of Finn not being able to access the Vivado license file.