|
| 1 | +# |
| 2 | +# SPDX-FileCopyrightText: Copyright (C) 2025 Altera Corporation |
| 3 | +# SPDX-License-Identifier: MIT-0 |
| 4 | +# |
| 5 | + |
| 6 | +# |
| 7 | +# This script is created by first going into Quartus and select the menu: |
| 8 | +# Project -> Organize Quartus Prime Settings File |
| 9 | +# |
| 10 | +# Then export the project to TCL: |
| 11 | +# Project -> Generate Tcl File for Project... |
| 12 | +# |
| 13 | +# We then take that TCL file and reformat it for our needs. We discard ancilary |
| 14 | +# settings that are of no real use and we remove all .qsys and .ip references |
| 15 | +# because we will restore those into future project creations as we reconstruct |
| 16 | +# the project from raw source. |
| 17 | +# |
| 18 | +# The default format of the pin assignments may or may not be desirable, it will |
| 19 | +# list all pin locations first followed by all pin instance assignments. If we |
| 20 | +# wish to sort this list placing all assignments for a given pin together, we |
| 21 | +# can do this: |
| 22 | +# |
| 23 | +# Duplicate the original generated TCL file and call it pins_only.tcl. Edit the |
| 24 | +# file to remove all entries but the pin assignments. Also remove any entity |
| 25 | +# references at the ends of any lines, each line should end with the |
| 26 | +# "-to <target>" value. Then we can run this command line to sort the pin |
| 27 | +# assignments: |
| 28 | +# |
| 29 | +# []$ awk '{print $NF,$0}' pins_only.tcl | sort -s -k 1,1 | cut -f2- -d' ' > sorted_pins_only.tcl |
| 30 | +# |
| 31 | + |
| 32 | +package require ::quartus::project |
| 33 | + |
| 34 | +set PROJECT_NAME "no_pins_top" |
| 35 | +if [project_exists $PROJECT_NAME] { |
| 36 | + post_message -type error "project already exists..." |
| 37 | + post_message -type error "'$PROJECT_NAME'" |
| 38 | + qexit -error |
| 39 | +} |
| 40 | +project_new $PROJECT_NAME |
| 41 | + |
| 42 | +set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files |
| 43 | +set_global_assignment -name VERILOG_FILE ../hw_base/no_pins_top.v |
| 44 | +set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 |
| 45 | +set_global_assignment -name MAX_CORE_JUNCTION_TEMP 100 |
| 46 | +set_global_assignment -name FAMILY "Agilex 5" |
| 47 | +set_global_assignment -name TOP_LEVEL_ENTITY no_pins_top |
| 48 | +set_global_assignment -name BOARD default |
| 49 | +set_global_assignment -name DEVICE A5ED013BM16AE4SCS |
| 50 | +set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 256 |
| 51 | +set_global_assignment -name STRATIXV_CONFIGURATION_SCHEME "ACTIVE SERIAL X4" |
| 52 | +set_global_assignment -name ACTIVE_SERIAL_CLOCK AS_FREQ_100MHZ |
| 53 | +set_global_assignment -name DEVICE_INITIALIZATION_CLOCK OSC_CLK_1_100MHZ |
| 54 | +set_global_assignment -name USE_HPS_COLD_RESET SDM_IO10 |
| 55 | +set_global_assignment -name USE_CONF_DONE SDM_IO16 |
| 56 | +set_global_assignment -name USE_INIT_DONE SDM_IO0 |
| 57 | +set_global_assignment -name SDM_DIRECT_TO_FACTORY_IMAGE SDM_IO13 |
| 58 | +set_global_assignment -name PWRMGT_VOLTAGE_OUTPUT_FORMAT "LINEAR FORMAT" |
| 59 | +set_global_assignment -name PWRMGT_LINEAR_FORMAT_N "-12" |
| 60 | +set_global_assignment -name NUMBER_OF_SLAVE_DEVICE 2 |
| 61 | +set_global_assignment -name ON_CHIP_BITSTREAM_DECOMPRESSION OFF |
| 62 | +set_global_assignment -name HPS_DAP_SPLIT_MODE "SDM PINS" |
| 63 | +set_global_assignment -name HPS_DAP_NO_CERTIFICATE on |
| 64 | +set_global_assignment -name AUTO_RESTART_CONFIGURATION OFF |
| 65 | +set_global_assignment -name ENABLE_SIGNALTAP OFF |
| 66 | +set_global_assignment -name POWER_APPLY_THERMAL_MARGIN ADDITIONAL |
| 67 | +set_global_assignment -name STRATIX_JTAG_USER_CODE 66666666 |
| 68 | +set_global_assignment -name USE_CHECKSUM_AS_USERCODE OFF |
| 69 | +set_global_assignment -name HPS_INITIALIZATION "HPS FIRST" |
| 70 | +set_global_assignment -name QSPI_OWNERSHIP HPS |
| 71 | +set_global_assignment -name INI_VARS "asm_enable_advanced_devices=on" |
| 72 | +set_global_assignment -name NUM_PARALLEL_PROCESSORS 4 |
| 73 | + |
| 74 | +set_location_assignment PIN_C2 -to emif_hps_emif_mem_0_mem_ca[0] |
| 75 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_ca[0] |
| 76 | +set_location_assignment PIN_D3 -to emif_hps_emif_mem_0_mem_ca[1] |
| 77 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_ca[1] |
| 78 | +set_location_assignment PIN_C3 -to emif_hps_emif_mem_0_mem_ca[2] |
| 79 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_ca[2] |
| 80 | +set_location_assignment PIN_B3 -to emif_hps_emif_mem_0_mem_ca[3] |
| 81 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_ca[3] |
| 82 | +set_location_assignment PIN_A6 -to emif_hps_emif_mem_0_mem_ca[4] |
| 83 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_ca[4] |
| 84 | +set_location_assignment PIN_B5 -to emif_hps_emif_mem_0_mem_ca[5] |
| 85 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_ca[5] |
| 86 | +set_location_assignment PIN_E10 -to emif_hps_emif_mem_0_mem_ck_c |
| 87 | +set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_ck_c |
| 88 | +set_location_assignment PIN_A4 -to emif_hps_emif_mem_0_mem_cke |
| 89 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_cke |
| 90 | +set_location_assignment PIN_E9 -to emif_hps_emif_mem_0_mem_ck_t |
| 91 | +set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_ck_t |
| 92 | +set_location_assignment PIN_C7 -to emif_hps_emif_mem_0_mem_cs |
| 93 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_cs |
| 94 | +set_location_assignment PIN_L7 -to emif_hps_emif_mem_0_mem_dmi[0] |
| 95 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dmi[0] |
| 96 | +set_location_assignment PIN_K5 -to emif_hps_emif_mem_0_mem_dmi[1] |
| 97 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dmi[1] |
| 98 | +set_location_assignment PIN_D13 -to emif_hps_emif_mem_0_mem_dmi[2] |
| 99 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dmi[2] |
| 100 | +set_location_assignment PIN_B11 -to emif_hps_emif_mem_0_mem_dmi[3] |
| 101 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dmi[3] |
| 102 | +set_location_assignment PIN_H6 -to emif_hps_emif_mem_0_mem_dq[0] |
| 103 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[0] |
| 104 | +set_location_assignment PIN_H7 -to emif_hps_emif_mem_0_mem_dq[1] |
| 105 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[1] |
| 106 | +set_location_assignment PIN_M3 -to emif_hps_emif_mem_0_mem_dq[10] |
| 107 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[10] |
| 108 | +set_location_assignment PIN_L4 -to emif_hps_emif_mem_0_mem_dq[11] |
| 109 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[11] |
| 110 | +set_location_assignment PIN_M4 -to emif_hps_emif_mem_0_mem_dq[12] |
| 111 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[12] |
| 112 | +set_location_assignment PIN_G4 -to emif_hps_emif_mem_0_mem_dq[13] |
| 113 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[13] |
| 114 | +set_location_assignment PIN_H3 -to emif_hps_emif_mem_0_mem_dq[14] |
| 115 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[14] |
| 116 | +set_location_assignment PIN_H5 -to emif_hps_emif_mem_0_mem_dq[15] |
| 117 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[15] |
| 118 | +set_location_assignment PIN_D15 -to emif_hps_emif_mem_0_mem_dq[16] |
| 119 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[16] |
| 120 | +set_location_assignment PIN_C13 -to emif_hps_emif_mem_0_mem_dq[17] |
| 121 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[17] |
| 122 | +set_location_assignment PIN_C10 -to emif_hps_emif_mem_0_mem_dq[18] |
| 123 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[18] |
| 124 | +set_location_assignment PIN_D10 -to emif_hps_emif_mem_0_mem_dq[19] |
| 125 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[19] |
| 126 | +set_location_assignment PIN_G5 -to emif_hps_emif_mem_0_mem_dq[2] |
| 127 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[2] |
| 128 | +set_location_assignment PIN_C8 -to emif_hps_emif_mem_0_mem_dq[20] |
| 129 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[20] |
| 130 | +set_location_assignment PIN_D9 -to emif_hps_emif_mem_0_mem_dq[21] |
| 131 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[21] |
| 132 | +set_location_assignment PIN_D14 -to emif_hps_emif_mem_0_mem_dq[22] |
| 133 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[22] |
| 134 | +set_location_assignment PIN_C15 -to emif_hps_emif_mem_0_mem_dq[23] |
| 135 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[23] |
| 136 | +set_location_assignment PIN_A8 -to emif_hps_emif_mem_0_mem_dq[24] |
| 137 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[24] |
| 138 | +set_location_assignment PIN_B8 -to emif_hps_emif_mem_0_mem_dq[25] |
| 139 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[25] |
| 140 | +set_location_assignment PIN_A9 -to emif_hps_emif_mem_0_mem_dq[26] |
| 141 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[26] |
| 142 | +set_location_assignment PIN_B9 -to emif_hps_emif_mem_0_mem_dq[27] |
| 143 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[27] |
| 144 | +set_location_assignment PIN_B13 -to emif_hps_emif_mem_0_mem_dq[28] |
| 145 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[28] |
| 146 | +set_location_assignment PIN_A13 -to emif_hps_emif_mem_0_mem_dq[29] |
| 147 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[29] |
| 148 | +set_location_assignment PIN_G6 -to emif_hps_emif_mem_0_mem_dq[3] |
| 149 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[3] |
| 150 | +set_location_assignment PIN_B14 -to emif_hps_emif_mem_0_mem_dq[30] |
| 151 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[30] |
| 152 | +set_location_assignment PIN_A14 -to emif_hps_emif_mem_0_mem_dq[31] |
| 153 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[31] |
| 154 | +set_location_assignment PIN_M6 -to emif_hps_emif_mem_0_mem_dq[4] |
| 155 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[4] |
| 156 | +set_location_assignment PIN_N5 -to emif_hps_emif_mem_0_mem_dq[5] |
| 157 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[5] |
| 158 | +set_location_assignment PIN_M5 -to emif_hps_emif_mem_0_mem_dq[6] |
| 159 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[6] |
| 160 | +set_location_assignment PIN_L6 -to emif_hps_emif_mem_0_mem_dq[7] |
| 161 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[7] |
| 162 | +set_location_assignment PIN_L3 -to emif_hps_emif_mem_0_mem_dq[8] |
| 163 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[8] |
| 164 | +set_location_assignment PIN_J5 -to emif_hps_emif_mem_0_mem_dq[9] |
| 165 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dq[9] |
| 166 | +set_location_assignment PIN_J7 -to emif_hps_emif_mem_0_mem_dqs_c[0] |
| 167 | +set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dqs_c[0] |
| 168 | +set_location_assignment PIN_J3 -to emif_hps_emif_mem_0_mem_dqs_c[1] |
| 169 | +set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dqs_c[1] |
| 170 | +set_location_assignment PIN_C11 -to emif_hps_emif_mem_0_mem_dqs_c[2] |
| 171 | +set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dqs_c[2] |
| 172 | +set_location_assignment PIN_A11 -to emif_hps_emif_mem_0_mem_dqs_c[3] |
| 173 | +set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dqs_c[3] |
| 174 | +set_location_assignment PIN_K7 -to emif_hps_emif_mem_0_mem_dqs_t[0] |
| 175 | +set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dqs_t[0] |
| 176 | +set_location_assignment PIN_J4 -to emif_hps_emif_mem_0_mem_dqs_t[1] |
| 177 | +set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dqs_t[1] |
| 178 | +set_location_assignment PIN_D12 -to emif_hps_emif_mem_0_mem_dqs_t[2] |
| 179 | +set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dqs_t[2] |
| 180 | +set_location_assignment PIN_B10 -to emif_hps_emif_mem_0_mem_dqs_t[3] |
| 181 | +set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_dqs_t[3] |
| 182 | +set_location_assignment PIN_E15 -to emif_hps_emif_mem_0_mem_reset_n |
| 183 | +set_instance_assignment -name IO_STANDARD "1.1-V LVSTL" -to emif_hps_emif_mem_0_mem_reset_n |
| 184 | +set_location_assignment PIN_E14 -to emif_hps_emif_oct_0_oct_rzqin |
| 185 | +set_instance_assignment -name IO_STANDARD "1.1-V" -to emif_hps_emif_oct_0_oct_rzqin |
| 186 | +set_location_assignment PIN_A7 -to emif_hps_emif_ref_clk_0_clk |
| 187 | +set_location_assignment PIN_B6 -to "emif_hps_emif_ref_clk_0_clk(n)" |
| 188 | +set_instance_assignment -name IO_STANDARD "1.8-V" -to hps_osc_clk |
| 189 | +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to hps_uart0_RX |
| 190 | +set_location_assignment PIN_F24 -to hps_uart0_RX |
| 191 | +set_instance_assignment -name IO_STANDARD "1.8-V" -to hps_uart0_RX |
| 192 | +set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to hps_uart0_TX |
| 193 | +set_location_assignment PIN_C27 -to hps_uart0_TX |
| 194 | +set_instance_assignment -name IO_STANDARD "1.8-V" -to hps_uart0_TX |
| 195 | + |
| 196 | +export_assignments |
| 197 | + |
| 198 | +project_close |
| 199 | + |
0 commit comments