Success! Subscription added.
Success! Subscription removed.
Sorry, you must verify to complete this action. Please click the verification link in your email. You may re-send via your profile.
This article is dedicated to helping Quartus users convert their Quartus Prime Standard Logic Lock regions to Quartus Prime Pro Logic Lock regions using a Tcl script. This article should help users that need to bring Arria 10 from Quartus Standard to Quartus Pro.
When converting a design from Standard to Pro, there will be some Quartus setting file (qsf) lines that are commented out because they are not valid in Pro. All Quartus Standard Logic Lock qsf assignments will be commented out. The script in this article will re-read the newly created Pro qsf and generate the correct logic lock regions in Pro based on the commented out Quartus Standard Logic Locks that were commented out.
The Tcl script Migrate_LL_QS_2_QP.tcl can be used to generate a new Quartus Pro qsf file. The script can be found at the bottom of this article. Change .txt to .tcl.
The Migrate_LL_QS_2_QP.tcl will open the Quartus Pro qsf file, find the commented out Invalid logic lock assignments, and convert them to something that Pro recognizes.
Here are what the invalid assignments look like:
# Invalid assignment in <Version 21.3> "set_global_assignment -name LL_ENABLED ON -section_id L00"
# Invalid assignment in <Version 21.3> "set_global_assignment -name LL_AUTO_SIZE OFF -section_id L00"
# Invalid assignment in <Version 21.3> "set_global_assignment -name LL_STATE LOCKED -section_id L00"
# Invalid assignment in <Version 21.3> "set_global_assignment -name LL_RESERVED OFF -section_id L00"
# Invalid assignment in <Version 21.3> "set_global_assignment -name LL_CORE_ONLY OFF -section_id L00"
# Invalid assignment in <Version 21.3> "set_global_assignment -name LL_SECURITY_ROUTING_INTERFACE OFF -section_id L00"
# Invalid assignment in <Version 21.3> "set_global_assignment -name LL_IGNORE_IO_BANK_SECURITY_CONSTRAINT OFF -section_id L00"
# Invalid assignment in <Version 21.3> "set_global_assignment -name LL_PR_REGION OFF -section_id L00"
# Invalid assignment in <Version 21.3> "set_global_assignment -name LL_ROUTING_REGION_EXPANSION_SIZE 2147483647 -section_id L00"
# Invalid assignment in <Version 21.3> "set_global_assignment -name LL_WIDTH 79 -section_id L00"
# Invalid assignment in <Version 21.3> "set_global_assignment -name LL_HEIGHT 61 -section_id L00"
# Invalid assignment in <Version 21.3> "set_global_assignment -name LL_ORIGIN X0_Y32 -section_id L00"
# Invalid assignment in <Version 21.3> "set_instance_assignment -name LL_MEMBER_OF L00 -to "sub_level_instance:u_sub_level_instance_0|em_mem_test_0_top:u_em_mem_test_0_top" -section_id L00"
The script opens the Pro qsf file, parses it for the above statements, gathers all the appropriate logic lock statements for a given region, then creates the proper logic lock assignments for Pro. The script can handle Logic Locks on instances that have been created in generate statements. After processing the Pro qsf file, the script writes out a new <project>.qsf.new file. The user can then perform a diff to check the differences between the <project>.qsf.new and <project>.qsf files.
Open a Quartus Prime Pro NIOSII command shell. Navigate to the location of your <project>.qsf file.
To run the script from a NIOSII command shell.
quartus_sh -t Migrate_LL_QS_2_QP.tcl <project name>
Example:
quartus_sh -t Migrate_LL_QS_2_QP.tcl test_proj
The script has been tested against two different Arria 10 projects that required conversion from Quartus Standard Logic Locks to Quartus Pro Logic Locks. Given the limited amount of testing, this script is offered as is and the results should be analyzed thoroughly.
Community support is provided Monday to Friday. Other contact methods are available here.
Intel does not verify all solutions, including but not limited to any file transfers that may appear in this community. Accordingly, Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade.
For more complete information about compiler optimizations, see our Optimization Notice.