You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
During use of VPR in which execution is broken into multiple substeps, it is possible for VPR to produce an output .place and .route file combination that is not self-consistent with respect to its digest data, leading to errors if both are read back for post-processing (in this case, graphics generation). The inconsistency appears to be introduced when a relative path to the .net file in the .place file is replaced with an absolute path and is a change that was made sometime since 5/27/2024 vs. previous methods for writing out the .place file header.
Expected Behaviour
In the test described below, correct output is the generation of a screenshot of a routing solution for a trivial circuit placed on a toy architecture.
Current Behaviour
This issue was discovered running a Silicon Compiler CI test on an updated version of VPR. Normally Silicon Compiler is tested on a fixed commit hash of VPR that we qualify for use (currently 9dd5ff6). Silicon Compiler's flow management for FPGA synthesis and place and route relies on being able to control the file paths for input and output files at each step of operation, so that it can manage an execution flow's file I/O on behalf of the user. In one of its CI tests, it verifies that it can generate a routing solution screenshot by rereading the place and route solution from a neighboring directory tree and running PNG graphics generation of the routing solution as a separate step.
Our near-term solution will be to adopt use of the --verify_file_digests off command line option to suppress the hash checks. This issue is raised as a courtesy to encourage dialog about whether the current file header + hash validation solution is robust against all end use cases of interest to VPR developers and users.
Steps to Reproduce
download vpr_hash_error_testcase_cleaned.tar.gz
containing output generated from the CI test described above. Warning: the setup has been lightly modified from original form to fix path issues and then retested to show that below commands should work.
tar -xzvf vpr_hash_error_testcase_cleaned.tar.gz
cd test_fpgaflow_screenshot0/build/adder/_screenshot_job0_NoneNone/screenshot/0/
./replay.sh
Context
Your Environment
VTR revision used: See above
Operating System and version: Ubuntu 20.04
Compiler version: gcc 10.5.0
The text was updated successfully, but these errors were encountered:
During use of VPR in which execution is broken into multiple substeps, it is possible for VPR to produce an output .place and .route file combination that is not self-consistent with respect to its digest data, leading to errors if both are read back for post-processing (in this case, graphics generation). The inconsistency appears to be introduced when a relative path to the .net file in the .place file is replaced with an absolute path and is a change that was made sometime since 5/27/2024 vs. previous methods for writing out the .place file header.
Expected Behaviour
In the test described below, correct output is the generation of a screenshot of a routing solution for a trivial circuit placed on a toy architecture.
Current Behaviour
This issue was discovered running a Silicon Compiler CI test on an updated version of VPR. Normally Silicon Compiler is tested on a fixed commit hash of VPR that we qualify for use (currently 9dd5ff6). Silicon Compiler's flow management for FPGA synthesis and place and route relies on being able to control the file paths for input and output files at each step of operation, so that it can manage an execution flow's file I/O on behalf of the user. In one of its CI tests, it verifies that it can generate a routing solution screenshot by rereading the place and route solution from a neighboring directory tree and running PNG graphics generation of the routing solution as a separate step.
During qualification of a more current VPR version (specifically, de31f09), the CI test described above (https://github.com/siliconcompiler/siliconcompiler/blob/4d825a4a6eecd652ad20ea7034ec75faacd5273a/tests/flows/test_fpgaflow.py#L70) failed when VPR threw an error that the digest for the placement file did not match the expected value.
Possible Solution
Our near-term solution will be to adopt use of the
--verify_file_digests off
command line option to suppress the hash checks. This issue is raised as a courtesy to encourage dialog about whether the current file header + hash validation solution is robust against all end use cases of interest to VPR developers and users.Steps to Reproduce
vpr_hash_error_testcase_cleaned.tar.gz
containing output generated from the CI test described above. Warning: the setup has been lightly modified from original form to fix path issues and then retested to show that below commands should work.
Context
Your Environment
The text was updated successfully, but these errors were encountered: