| # Copyright (C) 2017-2020 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 |
| source "$::env(FUZDIR)/util.tcl" |
| |
| proc write_tiles_txt {} { |
| # Get all tiles, ie not just the selected LUTs |
| set tiles [get_tiles] |
| set not_allowed_sites [get_sites -of_objects [get_pblocks exclude_roi]] |
| |
| # Write tiles.txt with site metadata |
| set fp [open "tiles.txt" w] |
| set fp_pin [open "pin_func.txt" w] |
| foreach tile $tiles { |
| set type [get_property TYPE $tile] |
| set grid_x [get_property GRID_POINT_X $tile] |
| set grid_y [get_property GRID_POINT_Y $tile] |
| set sites [get_sites -quiet -of_objects $tile] |
| |
| # There are some sites which are not allowed to be placed. |
| # This check excludes tiles in the EXCLUDE_ROI pblock |
| # be added to tilegrid.json |
| set skip_tile 0 |
| foreach site $sites { |
| set res [lsearch $not_allowed_sites $site] |
| if { $res != -1 } { |
| set skip_tile 1 |
| break |
| } |
| } |
| |
| set typed_sites {} |
| |
| set clock_region "NA" |
| |
| if [llength $sites] { |
| set site_types [get_property SITE_TYPE $sites] |
| foreach t $site_types s $sites { |
| lappend typed_sites $t $s |
| lappend typed_sites [get_property PROHIBIT $s] |
| |
| set package_pin [get_package_pins -of $s -quiet] |
| if [llength $package_pin] { |
| puts $fp_pin "$s [get_property PIN_FUNC $package_pin]" |
| } |
| set clock_region [get_property CLOCK_REGION $s] |
| } |
| } |
| if {[llength $clock_region] == 0} { |
| set clock_region "NA" |
| } |
| |
| |
| puts $fp "$type $tile $grid_x $grid_y $skip_tile $clock_region $typed_sites" |
| } |
| close $fp_pin |
| close $fp |
| } |
| |
| proc run {} { |
| # Generate grid of entire part |
| make_project_roi XRAY_ROI_TILEGRID XRAY_EXCLUDE_ROI_TILEGRID |
| |
| place_design |
| route_design |
| write_checkpoint -force design.dcp |
| write_bitstream -force design.bit |
| |
| write_tiles_txt |
| } |
| |
| run |