|  | # Copyright (C) 2017-2021  The Project X-Ray Authors | 
|  | # | 
|  | # Use of this source code is governed by a ISC-style | 
|  | # license that can be found in the LICENSE file or at | 
|  | # https://opensource.org/licenses/ISC | 
|  | # | 
|  | # SPDX-License-Identifier: ISC | 
|  | # Writes a JSON5 to filename containing timing for current design. | 
|  | # This can be used with create_timing_worksheet_db.py to compare prjxray model | 
|  | # with Vivado timing model outputs. | 
|  | link_design -part $::env(XRAY_PART) | 
|  |  | 
|  | # one pin -> 0 | 
|  | set clk_pins [get_package_pins -filter "IS_CLK_CAPABLE"] | 
|  |  | 
|  | # three pins -> 1, 2, 3 on HR banks only | 
|  | set banks [get_iobanks -filter "BANK_TYPE==BT_HIGH_RANGE"] | 
|  |  | 
|  | set data_pins "" | 
|  | foreach bank [split $banks " "] { | 
|  | append data_pins " " [get_package_pins -filter "IS_GENERAL_PURPOSE && BANK==$bank"] | 
|  | } | 
|  |  | 
|  | set fp [open $::env(TMP_FILE) w] | 
|  |  | 
|  | puts $fp "{" | 
|  | puts $fp "\t\"clk_pins\": \"$clk_pins\"," | 
|  | puts $fp "\t\"data_pins\": \"$data_pins\"" | 
|  | puts $fp "}" |