source "$::env(FUZDIR)/util.tcl"

proc write_tiles_txt {} {
    # Get all tiles, ie not just the selected LUTs
    set tiles [get_tiles]
    set roi_sites [get_sites -of_objects [get_pblocks 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 sites [get_sites -quiet -of_objects $tile]

        set skip_tile 1
        foreach site $sites {
            set res [lsearch $roi_sites $site]
            if { $res != -1 } {
                set skip_tile 0
                break
            }
        }

        if { [llength $sites] == 0 } {
            set skip_tile 0
        }

        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 typed_sites {}

        set clock_region "NA"

        if { [llength $sites] != 0 && $skip_tile == 0 } {
            set site_types [get_property SITE_TYPE $sites]
            foreach t $site_types s $sites {
                lappend typed_sites $t $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 URAY_ROI_TILEGRID

    place_design -directive Quick
    route_design -directive Quick
    write_checkpoint -force design.dcp
    write_bitstream -force design.bit

    write_tiles_txt
}

run
