Quartus® Prime Pro Edition User Guide: Platform Designer

ID 683609
Date 4/01/2024
Public
Document Table of Contents

7.13. Apply Presets to a New Board

The get_presets command allows you to determine if an instance has a preset that matches the current configuration. apply_presets allows you to apply presets to your board.
Table 212.  Scripting Command to Apply Presets to New Board
Return Command Argument
No return value apply_presets

Applies the presets that you specify to the Platform Designer system that your specify.

<systemName_ipName_presetName>

systemName_ipName_presetName consists of systems name, instance name, and preset name.

String[] get_presets

Determines if the instance has a preset that matches the current configuration

<instance_name> <enable_board_filter> <enable_matched_preset>

enable_matched_preset indicates whether to perform filtering based on the module instance's parameters and/or pin assignments values.

Example 1: Change Board and Apply Built-in Preset to Components

$ qsys-script --script=board_migration.tcl --quartus-project=project \
--system-file=top_system.qsys

board_migration.tcl content for a single hierarchy system example:

package require -exact qsys 24.1 
 
set_project_property BOARD {new board} 
set_project_property DEVICE {new part} 
set_project_property DEVICE_FAMILY {new family} 
 
apply_presets {{top_system,top_ipinst0, top_ipinst0_preset0}}

board_migration.tcl content for a multiple hierarchy system example:

package require -exact qsys 24.1 
 
set_project_property BOARD {new board} 
set_project_property DEVICE {new part} 
set_project_property DEVICE_FAMILY {new family} 
 
apply_presets {{top_system,top_ipinst0, top_ipinst0_preset0} \
{top_system,top_ipinst1, top_ipinst1_preset1} {sub_system_name,subipinst0, subip_preset0}}

Initially, you must change the board for the project in the Quartus® Prime software (Assignments > Device > Board) before you can run the script.

Example 2: Determine If System Instances are Already Configured in the New Board

$ qsys-script --script=board_migration.tcl --quartus-project=project \
--system-file=top_system.qsys

board_migration.tcl content for a single hierarchy system example:

package require -exact qsys 24.1 
 
set_project_property BOARD {new board} 
set_project_property DEVICE {new part} 
set_project_property DEVICE_FAMILY {new family} 
 
set module_list [get_instances] 
 
foreach module $module_list { 
  set num_matched_preset [llength [get_presets $module true true]] 
  if ($num_matched_preset > 0) { 
    # do something when the instance configured  
  } 
}

get_presets supports the optional enable_matched_preset argument that allows you to determine if the instance has a preset that matches the current configuration.