Converting Quartus Prime Standard Logic Lock Regions to Quartus Prime Pro Logic Lock Regions

cancel
Showing results for 
Search instead for 
Did you mean: 
363 Discussions

Converting Quartus Prime Standard Logic Lock Regions to Quartus Prime Pro Logic Lock Regions

Converting Quartus Prime Standard Logic Lock Regions to Quartus Prime Pro Logic Lock Regions

Description

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.

Tcl script

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.

Script Description

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.

Running the script

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

Disclaimer

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.

 

Attachments
Version history
Last update:
‎09-03-2022 07:55 AM
Updated by:
Contributors